[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MiNT] setjmp.h and csetjmp

Something woke me up last night....
It was about my tiny patch in include/setjmp.h

After changing it several times, I finally made a special implementation of longjmp() for C++.
So the most logical and readable implementation should be :

#ifdef __cplusplus
// C++ specific version
/* Normal version */

In my previous patch, I used #ifndef instead of #ifdef.
It does the same, but it is less logical.

I have attached a new patch to this message.
Frank, if you think this is better, you could commit it.
However, it will affect only the include readability, the generated code will be strictly the same.

If you think this has no importance, just ignore this message.
Sorry for the inconvenience.

diff -aurN mintlib-CVS/include/setjmp.h mintlib-CVS-patch-20071215/include/setjmp.h
--- mintlib-CVS/include/setjmp.h	2007-12-15 10:25:53.000000000 +0100
+++ mintlib-CVS-patch-20071215/include/setjmp.h	2007-12-15 10:26:57.437500000 +0100
@@ -25,16 +25,16 @@
 #define _longjmp(__jb,__v)	(siglongjmp(__jb, __v))
 #define setjmp(__jb)		(sigsetjmp(__jb, 1))
-#ifndef __cplusplus
-#define longjmp(__jb,__v)	(siglongjmp(__jb, __v))
-#else /* __cplusplus */
+#ifdef __cplusplus
 // <csetjmp> needs a real function instead of a macro.
 static inline void
 longjmp (sigjmp_buf env, int val)
 	siglongjmp(env, val);
-#endif /* __cplusplus */
+#else /* not __cplusplus */
+#define longjmp(__jb,__v)	(siglongjmp(__jb, __v))
+#endif /* not __cplusplus */
 #endif /* __USE_BSD */