Ok, patch attached below. I also removed the include of cdefs.h in dispatch.h, as it no longer seems required. Joakim On 10 nov 2009, at 12.50, Robert Watson wrote:
On Mon, 9 Nov 2009, Joakim Johansson wrote:
I'd certainly be glad with that approach and would happily provide the simple diffs for it if the maintainers are happy with it, it would definitely look cleaner.
Kevin/Robert?
I'm not sure I have any specific opinion on this, but if we're going to be defining __BEGIN_DECLS/__END_DECLS variations in dispatch.h, let's go whole hog (as it were) and use __DISPATCH_BEGIN_DECLS.
Robert
Joakim
On 7 nov 2009, at 16.55, Paolo Bonzini wrote:
On 11/06/2009 11:29 PM, Robert Watson wrote:
+ +#ifndef __BEGIN_DECLS +# if defined(__cplusplus) +# define __BEGIN_DECLS extern "C" { +# define __END_DECLS }; +# else /* __BEGIN_DECLS */ +# define __BEGIN_DECLS +# define __END_DECLS +# endif /* __BEGIN_DECLS */ +#endif /* __BEGIN_DECLS */ Just remove cdefs.h completely and do s/__BEGIN_DECLS/__DISPATCH_BEGIN_DECLS/ (similarly for END)? Paolo
libdispatch-dev mailing list libdispatch-dev@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/libdispatch-dev
_______________________________________________ libdispatch-dev mailing list libdispatch-dev@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/libdispatch-dev
-----
/usr/bin/svn diff Index: dispatch/benchmark.h =================================================================== --- dispatch/benchmark.h (revision 147) +++ dispatch/benchmark.h (working copy) @@ -32,7 +32,7 @@ #include <dispatch/base.h> // for HeaderDoc #endif
-__BEGIN_DECLS +__DISPATCH_BEGIN_DECLS /*! * @function dispatch_benchmark @@ -78,6 +78,6 @@ uint64_t dispatch_benchmark_f(size_t count, void *ctxt, void (*func)(void *)); -__END_DECLS +__DISPATCH_END_DECLS #endif Index: dispatch/group.h =================================================================== --- dispatch/group.h (revision 147) +++ dispatch/group.h (working copy) @@ -33,7 +33,7 @@ */ DISPATCH_DECL(dispatch_group); -__BEGIN_DECLS +__DISPATCH_BEGIN_DECLS /*! * @function dispatch_group_create @@ -268,6 +268,6 @@ void dispatch_group_leave(dispatch_group_t group); -__END_DECLS +__DISPATCH_END_DECLS #endif Index: dispatch/time.h =================================================================== --- dispatch/time.h (revision 147) +++ dispatch/time.h (working copy) @@ -28,7 +28,7 @@ #include <stdint.h> -__BEGIN_DECLS +__DISPATCH_BEGIN_DECLS struct timespec; @@ -108,6 +108,6 @@ dispatch_time_t dispatch_walltime(const struct timespec *when, int64_t delta); -__END_DECLS +__DISPATCH_END_DECLS #endif Index: dispatch/dispatch.h =================================================================== --- dispatch/dispatch.h (revision 147) +++ dispatch/dispatch.h (working copy) @@ -25,12 +25,19 @@ #include <Availability.h> #include <TargetConditionals.h> #endif -#include <sys/cdefs.h> #include <stddef.h> #include <stdint.h> #include <stdbool.h> #include <stdarg.h> +#if defined(__cplusplus) +# define __DISPATCH_BEGIN_DECLS extern "C" { +# define __DISPATCH_END_DECLS }; +#else +# define __DISPATCH_BEGIN_DECLS +# define __DISPATCH_END_DECLS +#endif + #ifndef __OSX_AVAILABLE_STARTING #define __OSX_AVAILABLE_STARTING(x, y) #endif Index: dispatch/source.h =================================================================== --- dispatch/source.h (revision 147) +++ dispatch/source.h (working copy) @@ -240,7 +240,7 @@ DISPATCH_VNODE_REVOKE = 0x40, }; -__BEGIN_DECLS +__DISPATCH_BEGIN_DECLS /*! * @function dispatch_source_create @@ -580,6 +580,6 @@ uint64_t interval, uint64_t leeway); -__END_DECLS +__DISPATCH_END_DECLS #endif Index: dispatch/semaphore.h =================================================================== --- dispatch/semaphore.h (revision 147) +++ dispatch/semaphore.h (working copy) @@ -34,7 +34,7 @@ */ DISPATCH_DECL(dispatch_semaphore); -__BEGIN_DECLS +__DISPATCH_BEGIN_DECLS /*! * @function dispatch_semaphore_create @@ -107,6 +107,6 @@ long dispatch_semaphore_signal(dispatch_semaphore_t dsema); -__END_DECLS +__DISPATCH_END_DECLS #endif /* __DISPATCH_SEMAPHORE__ */ Index: dispatch/once.h =================================================================== --- dispatch/once.h (revision 147) +++ dispatch/once.h (working copy) @@ -26,7 +26,7 @@ #include <dispatch/base.h> // for HeaderDoc #endif -__BEGIN_DECLS +__DISPATCH_BEGIN_DECLS /*! * @typedef dispatch_once_t @@ -72,6 +72,6 @@ #define dispatch_once_f(x, y, z) do { if (__builtin_expect(*(x), ~0l) != ~0l) dispatch_once_f((x), (y), (z)); } while (0) #endif -__END_DECLS +__DISPATCH_END_DECLS #endif Index: dispatch/queue.h =================================================================== --- dispatch/queue.h (revision 147) +++ dispatch/queue.h (working copy) @@ -111,7 +111,7 @@ typedef void (^dispatch_block_t)(void); #endif -__BEGIN_DECLS +__DISPATCH_BEGIN_DECLS /*! * @function dispatch_async @@ -563,6 +563,6 @@ void *context, dispatch_function_t work); -__END_DECLS +__DISPATCH_END_DECLS #endif Index: dispatch/object.h =================================================================== --- dispatch/object.h (revision 147) +++ dispatch/object.h (working copy) @@ -26,7 +26,7 @@ #include <dispatch/base.h> // for HeaderDoc #endif -__BEGIN_DECLS +__DISPATCH_BEGIN_DECLS /*! * @function dispatch_debug @@ -190,6 +190,6 @@ void dispatch_resume(dispatch_object_t object); -__END_DECLS +__DISPATCH_END_DECLS #endif Index: src/source_private.h =================================================================== --- src/source_private.h (revision 147) +++ src/source_private.h (working copy) @@ -109,7 +109,7 @@ DISPATCH_PROC_REAP = 0x10000000, }; -__BEGIN_DECLS +__DISPATCH_BEGIN_DECLS #if HAVE_MACH /*! @@ -126,6 +126,6 @@ dispatch_mig_server(dispatch_source_t ds, size_t maxmsgsz, dispatch_mig_callback_t callback); #endif -__END_DECLS +__DISPATCH_END_DECLS #endif Index: src/legacy.h =================================================================== --- src/legacy.h (revision 147) +++ src/legacy.h (working copy) @@ -93,7 +93,7 @@ typedef void (*dispatch_queue_finalizer_function_t)(void *, dispatch_queue_t); -__BEGIN_DECLS +__DISPATCH_BEGIN_DECLS /*! * @function dispatch_queue_attr_create @@ -759,6 +759,6 @@ #endif /* HAVE_MACH */ -__END_DECLS +__DISPATCH_END_DECLS #endif Index: src/private.h =================================================================== --- src/private.h (revision 147) +++ src/private.h (working copy) @@ -65,7 +65,7 @@ /* LEGACY: Use DISPATCH_API_VERSION */ #define LIBDISPATCH_VERSION DISPATCH_API_VERSION -__BEGIN_DECLS +__DISPATCH_BEGIN_DECLS DISPATCH_NOTHROW void @@ -120,6 +120,6 @@ dispatch_mach_msg_get_context(mach_msg_header_t *msg); #endif -__END_DECLS +__DISPATCH_END_DECLS #endif Index: src/queue_private.h =================================================================== --- src/queue_private.h (revision 147) +++ src/queue_private.h (working copy) @@ -32,7 +32,7 @@ #include <dispatch/base.h> // for HeaderDoc #endif -__BEGIN_DECLS +__DISPATCH_BEGIN_DECLS /*! @@ -117,6 +117,6 @@ } dispatch_queue_offsets; -__END_DECLS +__DISPATCH_END_DECLS #endif