Fixes various warts in header files, such as:
* macros
  -added parens to prevent problems with operator precedence
  -removed ; at end
* removed SSIZE_MAX, since ssize_t is no longer used
* removed some misinformation about NULL and function pointers
  from a comment.
* added some more INLINE definitions for MSVC and C99 compilers
* fixed occurences of 2<<n where 1<<n is obviously is what was
  meant (esp. clear upon reading the comments).

##################################
diff -ur include/parrot/interp_guts.h include/myparrot/interp_guts.h
--- include/parrot/interp_guts.h Thu Dec 27 11:08:48 2001
+++ include/myparrot/interp_guts.h Fri Feb 22 17:38:04 2002
@@ -5,7 +5,7 @@
 #ifndef INTERP_GUTS_H
 #define INTERP_GUTS_H

-#define DO_OP(PC,INTERP) PC = ((INTERP->op_func_table)[*PC])(PC,INTERP);
+#define DO_OP(PC,INTERP) (PC = ((INTERP->op_func_table)[*PC])(PC,INTERP))

 #endif /* INTERP_GUTS_H */

diff -ur include/parrot/io.h include/myparrot/io.h
--- include/parrot/io.h Thu Feb 21 18:53:34 2002
+++ include/myparrot/io.h Fri Feb 22 17:43:14 2002
@@ -17,9 +17,6 @@
 #if !defined(PARROT_IO_H_GUARD)
 #define PARROT_IO_H_GUARD

-#ifndef SSIZE_MAX
-#define SSIZE_MAX 8192
-#endif

 #ifndef STDIN_FILENO
 # define STDIN_FILENO 0
diff -ur include/parrot/packfile.h include/myparrot/packfile.h
--- include/parrot/packfile.h Mon Feb 11 11:57:12 2002
+++ include/myparrot/packfile.h Fri Feb 22 17:46:58 2002
@@ -8,8 +8,8 @@

 #include <parrot/parrot.h>

-#define PF_NCONST(pf)  (pf)->const_table->const_count
-#define PF_CONST(pf,i) (pf)->const_table->constants[i]
+#define PF_NCONST(pf)  ((pf)->const_table->const_count)
+#define PF_CONST(pf,i) ((pf)->const_table->constants[(i)])


 /*
diff -ur include/parrot/parrot.h include/myparrot/parrot.h
--- include/parrot/parrot.h Thu Feb 21 18:53:34 2002
+++ include/myparrot/parrot.h Fri Feb 22 17:52:28 2002
@@ -75,21 +75,21 @@

 /* define some shortcuts for dealing with function pointers */
 /* according to ANSI C, casting between function and non-function pointers
is
- * no good.  So we should use "funcptr_t" in place of void* when dealing
with
- * function pointers and NULLfunc in place of NULL */
+ * no good, except in the special case of NULL.  So we should use
"funcptr_t"
+ * in place of void* when dealing with function pointers*/
 typedef void (*funcptr_t)(void);
-#define NULLfunc (funcptr_t)0
+#define NULLfunc NULL

 /* Provide support for inline keyword where available.  Just make sure to
use
  * "INLINE" instead and it will DTRT. */
-#ifdef __cplusplus
+#if  defined(__cplusplus) || (defined(__STDC__)&&__STDC_VERSION__>199901L)
     #define INLINE inline
+#elif defined(__GNUC__)
+    #define INLINE __inline__
+#elif definded(_MSC_VER)
+    #define INLINE __inline
 #else
-    #ifdef __GNUC__
-        #define INLINE __inline__
-    #else
-        #define INLINE
-    #endif
+    #define INLINE
 #endif

 /* On Win32 we need the constant O_BINARY for open() (at least for Borland
C),
diff -ur include/parrot/pmc.h include/myparrot/pmc.h
--- include/parrot/pmc.h Thu Feb 21 18:53:34 2002
+++ include/myparrot/pmc.h Fri Feb 22 17:53:10 2002
@@ -47,30 +47,30 @@
      * classes. It is suggested that you alias these within an individual
      * class's header file
      */
-    PMC_private0_FLAG   = 2 << 0,
-    PMC_private1_FLAG   = 2 << 1,
-    PMC_private2_FLAG   = 2 << 2,
-    PMC_private3_FLAG   = 2 << 3,
-    PMC_private4_FLAG   = 2 << 4,
-    PMC_private5_FLAG   = 2 << 5,
-    PMC_private6_FLAG   = 2 << 6,
-    PMC_private7_FLAG   = 2 << 7,
+    PMC_private0_FLAG   = 1 << 0,
+    PMC_private1_FLAG   = 1 << 1,
+    PMC_private2_FLAG   = 1 << 2,
+    PMC_private3_FLAG   = 1 << 3,
+    PMC_private4_FLAG   = 1 << 4,
+    PMC_private5_FLAG   = 1 << 5,
+    PMC_private6_FLAG   = 1 << 6,
+    PMC_private7_FLAG   = 1 << 7,

     /* The rest of the flags are for use by Parrot */

     /* Set if the PMC has a destroy method that must be called */
-    PMC_active_destroy_FLAG = 2 << 8,
+    PMC_active_destroy_FLAG = 1 << 8,
     /* Set if the PMC can hold multiple PMCs. (Hash, array, list,
        whatever) */
-    PMC_is_container_FLAG   = 2 << 9,
+    PMC_is_container_FLAG   = 1 << 9,
     /* Set to true if the PMC data pointer points to something that
        looks like a string or buffer pointer */
-    PMC_is_buffer_ptr_FLAG  = 2 << 10,
+    PMC_is_buffer_ptr_FLAG  = 1 << 10,
     /* Set to true if the data pointer points to a PMC */
-    PMC_is_PMC_ptr_FLAG     = 2 << 11,
+    PMC_is_PMC_ptr_FLAG     = 1 << 11,
     /* Set to true if the PMC has a private GC function. For PMCs the
        GC system can't snoop into */
-    PMC_private_GC_FLAG     = 2 << 12
+    PMC_private_GC_FLAG     = 1 << 12
 } PMC_flags;

 /* XXX add various bit test macros once we have need of them */
diff -ur include/parrot/rx.h include/myparrot/rx.h
--- include/parrot/rx.h Thu Feb 21 18:53:34 2002
+++ include/myparrot/rx.h Fri Feb 22 17:56:22 2002
@@ -79,11 +79,11 @@
 BOOLVAL bitmap_match(Bitmap, INTVAL);
 void bitmap_destroy(Bitmap);

-#define RX_dUNPACK(pmc)            rxinfo *rx=(rxinfo *)pmc->data
-#define RxCurChar(rx)              (char)string_ord(rx->string, rx->index)
+#define RX_dUNPACK(pmc)            rxinfo *rx=(rxinfo *)(pmc)->data
+#define RxCurChar(rx)              ((char)string_ord((rx)->string,
(rx)->index))

-#define RxAdvance(rx)              RxAdvanceX(rx, 1)
-#define RxAdvanceX(rx, x)          rx->index += x * rx->whichway
+#define RxAdvance(rx)              RxAdvanceX((rx), 1)
+#define RxAdvanceX(rx, x)          ((rx)->index += (x) * (rx)->whichway)

 #define RxCaseInsensitive_on(rx)   RxFlagOn(rx,
enum_rxflags_case_insensitive)
 #define RxCaseInsensitive_off(rx)  RxFlagOff(rx,
enum_rxflags_case_insensitive)
@@ -101,10 +101,10 @@
 #define RxReverse_off(rx)          RxFlagOff(rx, enum_rxflags_reverse)
 #define RxReverse_test(rx)         RxFlagTest(rx, enum_rxflags_reverse)

-#define RxFlagOn(rx, flag)         (rx->flags |=  flag)
-#define RxFlagOff(rx, flag)        (rx->flags &= ~flag)
-#define RxFlagTest(rx, flag)       (rx->flags  &  flag)
+#define RxFlagOn(rx, flag)         ((rx)->flags |=  (flag))
+#define RxFlagOff(rx, flag)        ((rx)->flags &= ~(flag))
+#define RxFlagTest(rx, flag)       ((rx)->flags  &  (flag))

-#define RxFlagsOff(rx)             rx->flags = enum_rxflags_none
+#define RxFlagsOff(rx)             ((rx)->flags = enum_rxflags_none)

 #endif /* PARROT_RX_H_GUARD */
diff -ur include/parrot/unicode.h include/myparrot/unicode.h
--- include/parrot/unicode.h Thu Feb 21 18:53:34 2002
+++ include/myparrot/unicode.h Fri Feb 22 17:59:44 2002
@@ -46,7 +46,7 @@
                       (uv) < 0x800   ? 2 : \
                       (uv) < 0x10000 ? 3 : 4 )

-#define UTF16SKIP(s) ( UNICODE_IS_HIGH_SURROGATE(*s) ? 2 : 1 )
+#define UTF16SKIP(s) ( UNICODE_IS_HIGH_SURROGATE(*(s)) ? 2 : 1 )

 /*

diff -ur include/parrot/warnings.h include/myparrot/warnings.h
--- include/parrot/warnings.h Thu Feb 21 18:53:34 2002
+++ include/myparrot/warnings.h Fri Feb 22 18:00:38 2002
@@ -10,9 +10,9 @@

 #include "parrot/parrot.h"

-#define PARROT_WARNINGS_on(interp, flag)   interp->warns->classes |=  flag
-#define PARROT_WARNINGS_off(interp, flag)  interp->warns->classes &= ~flag
-#define PARROT_WARNINGS_test(interp, flag) interp->warns->classes &   flag
+#define PARROT_WARNINGS_on(interp, flag)   ((interp)->warns->classes |=
(flag))
+#define PARROT_WARNINGS_off(interp, flag)  ((interp)->warns->classes &=
~(flag))
+#define PARROT_WARNINGS_test(interp, flag) ((interp)->warns->classes &
(flag))

 INTVAL
 Parrot_warn(struct Parrot_Interp *, INTVAL warnclass, const char* message,
....);



Reply via email to