summaryrefslogtreecommitdiff
path: root/perlio.c
diff options
context:
space:
mode:
authorCharles Bailey <bailey@newman.upenn.edu>1999-09-06 02:39:11 +0000
committerbailey <bailey@newman.upenn.edu>1999-09-06 02:39:11 +0000
commit424a8fe95d507998fe8750793da1b35bd6d7074b (patch)
tree2e7697b05952df05643698777bf236009c43d158 /perlio.c
parentf0585323684fd5b018ff6d479ece5c134dabef3e (diff)
parent0bf7eb25e9e238046abce47d15e2fa3d10558a02 (diff)
downloadperl-424a8fe95d507998fe8750793da1b35bd6d7074b.tar.gz
Integrate mainline 5.05_61
p4raw-id: //depot/vmsperl@4084
Diffstat (limited to 'perlio.c')
-rw-r--r--perlio.c33
1 files changed, 24 insertions, 9 deletions
diff --git a/perlio.c b/perlio.c
index 9230b0c004..4c22d3b3cf 100644
--- a/perlio.c
+++ b/perlio.c
@@ -143,7 +143,8 @@ PerlIO_canset_cnt(PerlIO *f)
void
PerlIO_set_cnt(PerlIO *f, int cnt)
{
- if (cnt < -1 && ckWARN_s(WARN_INTERNAL))
+ dTHX;
+ if (cnt < -1 && ckWARN_d(WARN_INTERNAL))
Perl_warner(aTHX_ WARN_INTERNAL, "Setting cnt to %d\n",cnt);
#if defined(USE_STDIO_PTR) && defined(STDIO_CNT_LVALUE)
FILE_cnt(f) = cnt;
@@ -156,23 +157,24 @@ PerlIO_set_cnt(PerlIO *f, int cnt)
void
PerlIO_set_ptrcnt(PerlIO *f, STDCHAR *ptr, int cnt)
{
+ dTHX;
#ifdef FILE_bufsiz
STDCHAR *e = FILE_base(f) + FILE_bufsiz(f);
int ec = e - ptr;
- if (ptr > e + 1 && ckWARN_s(WARN_INTERNAL))
+ if (ptr > e + 1 && ckWARN_d(WARN_INTERNAL))
Perl_warner(aTHX_ WARN_INTERNAL, "Setting ptr %p > end+1 %p\n", ptr, e + 1);
- if (cnt != ec && ckWARN_s(WARN_INTERNAL))
+ if (cnt != ec && ckWARN_d(WARN_INTERNAL))
Perl_warner(aTHX_ WARN_INTERNAL, "Setting cnt to %d, ptr implies %d\n",cnt,ec);
#endif
#if defined(USE_STDIO_PTR) && defined(STDIO_PTR_LVALUE)
- FILE_ptr(f) = ptr;
+ FILE_ptr(f) = ptr;
#else
- Perl_croak(aTHX_ "Cannot set 'ptr' of FILE * on this system");
+ Perl_croak(aTHX_ "Cannot set 'ptr' of FILE * on this system");
#endif
#if defined(USE_STDIO_PTR) && defined(STDIO_CNT_LVALUE)
- FILE_cnt(f) = cnt;
+ FILE_cnt(f) = cnt;
#else
- Perl_croak(aTHX_ "Cannot set 'cnt' of FILE * on this system");
+ Perl_croak(aTHX_ "Cannot set 'cnt' of FILE * on this system");
#endif
}
@@ -183,6 +185,7 @@ PerlIO_get_cnt(PerlIO *f)
#ifdef FILE_cnt
return FILE_cnt(f);
#else
+ dTHX;
Perl_croak(aTHX_ "Cannot get 'cnt' of FILE * on this system");
return -1;
#endif
@@ -195,6 +198,7 @@ PerlIO_get_bufsiz(PerlIO *f)
#ifdef FILE_bufsiz
return FILE_bufsiz(f);
#else
+ dTHX;
Perl_croak(aTHX_ "Cannot get 'bufsiz' of FILE * on this system");
return -1;
#endif
@@ -207,6 +211,7 @@ PerlIO_get_ptr(PerlIO *f)
#ifdef FILE_ptr
return FILE_ptr(f);
#else
+ dTHX;
Perl_croak(aTHX_ "Cannot get 'ptr' of FILE * on this system");
return NULL;
#endif
@@ -219,6 +224,7 @@ PerlIO_get_base(PerlIO *f)
#ifdef FILE_base
return FILE_base(f);
#else
+ dTHX;
Perl_croak(aTHX_ "Cannot get 'base' of FILE * on this system");
return NULL;
#endif
@@ -284,6 +290,7 @@ PerlIO_getname(PerlIO *f, char *buf)
#ifdef VMS
return fgetname(f,buf);
#else
+ dTHX;
Perl_croak(aTHX_ "Don't know how to get file name");
return NULL;
#endif
@@ -378,7 +385,7 @@ PerlIO_vprintf(PerlIO *f, const char *fmt, va_list ap)
Off_t
PerlIO_tell(PerlIO *f)
{
-#ifdef HAS_FTELLO
+#if defined(USE_64_BIT_STDIO) && defined(HAS_FTELLO) && !defined(USE_FTELL64)
return ftello(f);
#else
return ftell(f);
@@ -389,7 +396,7 @@ PerlIO_tell(PerlIO *f)
int
PerlIO_seek(PerlIO *f, Off_t offset, int whence)
{
-#ifdef HAS_FSEEKO
+#if defined(USE_64_BIT_STDIO) && defined(HAS_FSEEKO) && !defined(USE_FSEEK64)
return fseeko(f,offset,whence);
#else
return fseek(f,offset,whence);
@@ -487,7 +494,11 @@ PerlIO_setpos(PerlIO *f, const Fpos_t *pos)
int
PerlIO_setpos(PerlIO *f, const Fpos_t *pos)
{
+#if defined(USE_64_BIT_STDIO) && defined(USE_FSETPOS64)
+ return fsetpos64(f, pos);
+#else
return fsetpos(f, pos);
+#endif
}
#endif
#endif
@@ -506,7 +517,11 @@ PerlIO_getpos(PerlIO *f, Fpos_t *pos)
int
PerlIO_getpos(PerlIO *f, Fpos_t *pos)
{
+#if defined(USE_64_BIT_STDIO) && defined(USE_FSETPOS64)
+ return fgetpos64(f, pos);
+#else
return fgetpos(f, pos);
+#endif
}
#endif
#endif