[ID 20001112.008] perlio.c's PerlIO_getpos ingores error return
[p5sagit/p5-mst-13.2.git] / perlsdio.h
index c4a1179..6ce82d8 100644 (file)
 
 #ifdef STDIO_CNT_LVALUE
 #define PerlIO_canset_cnt(f)           1      
+#define PerlIO_set_cnt(f,c)            (FILE_cnt(f) = (c))          
 #ifdef STDIO_PTR_LVALUE
+#ifdef STDIO_PTR_LVAL_NOCHANGE_CNT
 #define PerlIO_fast_gets(f)            1        
 #endif
-#define PerlIO_set_cnt(f,c)            (FILE_cnt(f) = (c))          
-#else
+#endif /* STDIO_PTR_LVALUE */
+#else /* STDIO_CNT_LVALUE */
 #define PerlIO_canset_cnt(f)           0      
 #define PerlIO_set_cnt(f,c)            abort()
 #endif
 
 #ifdef STDIO_PTR_LVALUE
-#define PerlIO_set_ptrcnt(f,p,c)       (FILE_ptr(f) = (p), PerlIO_set_cnt(f,c))          
+#ifdef STDIO_PTR_LVAL_NOCHANGE_CNT
+#define PerlIO_set_ptrcnt(f,p,c)      STMT_START {FILE_ptr(f) = (p), PerlIO_set_cnt(f,c);} STMT_END
+#else
+#ifdef STDIO_PTR_LVAL_SETS_CNT
+/* assert() may pre-process to ""; potential syntax error (FILE_ptr(), ) */
+#define PerlIO_set_ptrcnt(f,p,c)      STMT_START {FILE_ptr(f) = (p); assert(FILE_cnt(f) == (c));} STMT_END
+#define PerlIO_fast_gets(f)            1        
 #else
 #define PerlIO_set_ptrcnt(f,p,c)       abort()
 #endif
+#endif
+#endif
 
 #else  /* USE_STDIO_PTR */