avoid "mysterious" compile-time failures without messages
[p5sagit/p5-mst-13.2.git] / iperlsys.h
index f616533..91389a2 100644 (file)
@@ -127,10 +127,32 @@ public:
 #endif
 };
 
-#define PerlIO_canset_cnt(f)   1
-#define PerlIO_has_base(f)     1
-#define PerlIO_has_cntptr(f)   1
-#define PerlIO_fast_gets(f)    1
+
+
+#ifdef USE_STDIO_PTR
+#  define PerlIO_has_cntptr(f)         1       
+#  ifdef STDIO_CNT_LVALUE
+#    define PerlIO_canset_cnt(f)       1      
+#    ifdef STDIO_PTR_LVALUE
+#      define PerlIO_fast_gets(f)      1        
+#    endif
+#  else
+#    define PerlIO_canset_cnt(f)       0      
+#  endif
+#else  /* USE_STDIO_PTR */
+#  define PerlIO_has_cntptr(f)         0
+#  define PerlIO_canset_cnt(f)         0
+#endif /* USE_STDIO_PTR */
+
+#ifndef PerlIO_fast_gets
+#define PerlIO_fast_gets(f)            0        
+#endif
+
+#ifdef FILE_base
+#define PerlIO_has_base(f)             1
+#else
+#define PerlIO_has_base(f)             0
+#endif
 
 #define PerlIO_stdin()         PL_piStdIO->Stdin()
 #define PerlIO_stdout()                PL_piStdIO->Stdout()
@@ -612,6 +634,7 @@ class IPerlProc
 {
 public:
     virtual void       Abort(void) = 0;
+    virtual char *     Crypt(const char* clear, const char* salt) = 0;
     virtual void       Exit(int status) = 0;
     virtual void       _Exit(int status) = 0;
     virtual int                Execl(const char *cmdname, const char *arg0,
@@ -649,6 +672,7 @@ public:
 };
 
 #define PerlProc_abort()       PL_piProc->Abort()
+#define PerlProc_crypt(c,s)    PL_piProc->Crypt((c), (s))
 #define PerlProc_exit(s)       PL_piProc->Exit((s))
 #define PerlProc__exit(s)      PL_piProc->_Exit((s))
 #define PerlProc_execl(c, w, x, y, z)                                  \
@@ -691,6 +715,7 @@ public:
 #else  /* PERL_OBJECT */
 
 #define PerlProc_abort()       abort()
+#define PerlProc_crypt(c,s)    crypt((c), (s))
 #define PerlProc_exit(s)       exit((s))
 #define PerlProc__exit(s)      _exit((s))
 #define PerlProc_execl(c,w,x,y,z)                                      \