perl 5.003_06: perlsdio.h
Perl 5 Porters [Thu, 3 Oct 1996 20:31:46 +0000 (16:31 -0400)]
Date: Fri, 13 Sep 1996 17:24:01 -0400
From: John Stoffel <jfs@jfs.fluent.com>
Subject: Re: 5.003_05 is available.

Undef Irix getc_unlocked and putc_unlocked #defines.

Date: Thu, 03 Oct 1996 16:31:46 -0400 (EDT)
From: Charles Bailey <bailey@HMIVAX.HUMGEN.UPENN.EDU>
Subject: VMS patches to 5.003_05

perlsdio.h

index ff32cdd..c371441 100644 (file)
 #define PerlIO_close(f)                        fclose(f)
 #define PerlIO_puts(f,s)               fputs(s,f)
 #define PerlIO_putc(f,c)               fputc(c,f)
-#define PerlIO_ungetc(f,c)             ungetc(c,f)
+#if defined(VMS) && defined(__DECC)
+   /* Unusual definition of ungetc() here to accomodate fast_sv_gets()'
+    * belief that it can mix getc/ungetc with reads from stdio buffer */
+   int decc$ungetc(int __c, FILE *__stream);
+#  define PerlIO_ungetc(f,c) ((c) == EOF ? EOF : \
+          ((*(f) && !((*(f))->_flag & _IONBF) && \
+          ((*(f))->_ptr > (*(f))->_base)) ? \
+          ((*(f))->_cnt++, *(--(*(f))->_ptr) = (c)) : decc$ungetc(c,f)))
+#else
+#  define PerlIO_ungetc(f,c)           ungetc(c,f)
+#endif
 #define PerlIO_getc(f)                 getc(f)
 #define PerlIO_eof(f)                  feof(f)
 #define PerlIO_getname(f,b)            fgetname(f,b)
 #undef setvbuf
 #undef fscanf
 #undef fgets
+#undef getc_unlocked
+#undef putc_unlocked
 #define fprintf    _CANNOT _fprintf_
 #define stdin      _CANNOT _stdin_
 #define stdout     _CANNOT _stdout_