#ifdef PERLIO_IS_STDIO
void
-PerlIO_init()
+PerlIO_init(void)
{
/* Does nothing (yet) except force this file to be included
in perl binary. That allows this file to force inclusion
#undef PerlIO_tmpfile
PerlIO *
-PerlIO_tmpfile()
+PerlIO_tmpfile(void)
{
return tmpfile();
}
PerlIO *f;
int cnt;
{
- if (cnt < 0)
+ if (cnt < -1)
warn("Setting cnt to %d\n",cnt);
#if defined(USE_STDIO_PTR) && defined(STDIO_CNT_LVALUE)
FILE_cnt(f) = cnt;
void
PerlIO_set_ptrcnt(f,ptr,cnt)
PerlIO *f;
-char *ptr;
+STDCHAR *ptr;
int cnt;
{
#ifdef FILE_bufsiz
- char *e = (char *)(FILE_base(f) + FILE_bufsiz(f));
- int ec = e - ptr;
- if (ptr > e)
- warn("Setting ptr %p > base %p\n",ptr, FILE_base(f)+FILE_bufsiz(f));
+ STDCHAR *e = FILE_base(f) + FILE_bufsiz(f);
+ int ec = e - ptr;
+ if (ptr > e + 1)
+ warn("Setting ptr %p > end+1 %p\n", ptr, e + 1);
if (cnt != ec)
warn("Setting cnt to %d, ptr implies %d\n",cnt,ec);
#endif
#if defined(USE_STDIO_PTR) && defined(STDIO_PTR_LVALUE)
- FILE_ptr(f) = (STDCHAR *) ptr;
+ FILE_ptr(f) = ptr;
#else
croak("Cannot set 'ptr' of FILE * on this system");
#endif
}
#undef PerlIO_get_ptr
-char *
+STDCHAR *
PerlIO_get_ptr(f)
PerlIO *f;
{
#ifdef FILE_ptr
- return (char *) FILE_ptr(f);
+ return FILE_ptr(f);
#else
croak("Cannot get 'ptr' of FILE * on this system");
return NULL;
}
#undef PerlIO_get_base
-char *
+STDCHAR *
PerlIO_get_base(f)
PerlIO *f;
{
#ifdef FILE_base
- return (char *) FILE_base(f);
+ return FILE_base(f);
#else
croak("Cannot get 'base' of FILE * on this system");
return NULL;
return fdopen(fd,mode);
}
+#undef PerlIO_reopen
+PerlIO *
+PerlIO_reopen(name, mode, f)
+const char *name;
+const char *mode;
+PerlIO *f;
+{
+ return freopen(name,mode,f);
+}
#undef PerlIO_close
int
return feof(f);
}
+#undef PerlIO_getname
+char *
+PerlIO_getname(f,buf)
+PerlIO *f;
+char *buf;
+{
+#ifdef VMS
+ return fgetname(f,buf);
+#else
+ croak("Don't know how to get file name");
+ return NULL;
+#endif
+}
+
#undef PerlIO_getc
int
PerlIO_getc(f)
#ifdef HAS_SETLINEBUF
setlinebuf(f);
#else
+# ifdef __BORLANDC__ /* Borland doesn't like NULL size for _IOLBF */
+ setvbuf(f, Nullch, _IOLBF, BUFSIZ);
+# else
setvbuf(f, Nullch, _IOLBF, 0);
+# endif
#endif
}
PerlIO *f;
int ch;
{
- putc(ch,f);
+ return putc(ch,f);
}
#undef PerlIO_ungetc
PerlIO *f;
int ch;
{
- ungetc(ch,f);
+ return ungetc(ch,f);
}
#undef PerlIO_read
-int
+SSize_t
PerlIO_read(f,buf,count)
PerlIO *f;
void *buf;
-size_t count;
+Size_t count;
{
return fread(buf,1,count,f);
}
#undef PerlIO_write
-int
+SSize_t
PerlIO_write(f,buf,count)
PerlIO *f;
const void *buf;
-size_t count;
+Size_t count;
{
return fwrite1(buf,1,count,f);
}
#if (defined(PERLIO_IS_STDIO) || !defined(USE_SFIO)) && !defined(HAS_VPRINTF)
int
-vprintf(fd, pat, args)
+vprintf(pat, args)
+char *pat, *args;
+{
+ _doprnt(pat, args, stdout);
+ return 0; /* wrong, but perl doesn't use the return value */
+}
+
+int
+vfprintf(fd, pat, args)
FILE *fd;
char *pat, *args;
{
#ifndef PerlIO_vsprintf
int
-PerlIO_vsprintf(s,n,fmt,ap)
-char *s;
-const char *fmt;
-int n;
-va_list ap;
+PerlIO_vsprintf(char *s, int n, const char *fmt, va_list ap)
{
int val = vsprintf(s, fmt, ap);
if (n >= 0)
{
- if (strlen(s) >= n)
+ if (strlen(s) >= (STRLEN)n)
{
PerlIO_puts(PerlIO_stderr(),"panic: sprintf overflow - memory corrupted!\n");
my_exit(1);