? glibmm_disable_default_signal_handlers.patch
? examples/child_watch/child_watch
? examples/iochannel_stream/Makefile
? examples/iochannel_stream/Makefile.in
? examples/iochannel_stream/example
? examples/options/example
? glib/glibmm/optioncontext.cc
? glib/glibmm/optioncontext.h
? glib/glibmm/optionentry.cc
? glib/glibmm/optionentry.h
? glib/glibmm/optiongroup.cc
? glib/glibmm/optiongroup.h
? glib/glibmm/private/optioncontext_p.h
? glib/glibmm/private/optionentry_p.h
? glib/glibmm/private/optiongroup_p.h
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/glibmm/ChangeLog,v
retrieving revision 1.201
diff -u -p -r1.201 ChangeLog
--- ChangeLog	14 Apr 2006 10:13:46 -0000	1.201
+++ ChangeLog	25 Apr 2006 13:52:02 -0000
@@ -1,3 +1,15 @@
+2006-04-25  Murray Cumming  <murrayc@murrayc.com>
+
+	* configure.in:
+	* glib/glibmmconfig.h.in:
+	* scripts/reduced.m4: Added a --enable-api-default-signal-handlers option. This defines 
+	GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED, which is used to #ifdef default signal handlers.
+	This saves on library code size (less code and API symbols) and application code size and 
+	loading time (less virtual methods, which must be imported and resolved at load time) and 
+	per-object memory size (smaller object sizes because of less virtual methods.) 
+	* tools/m4/class_interface.m4:
+	* tools/m4/class_shared.m4: Put default signal handler code in #ifdefs.
+
 2.10.1:
 
 2006-04-12  Murray Cumming  <murrayc@murrayc.com>
Index: configure.in
===================================================================
RCS file: /cvs/gnome/glibmm/configure.in,v
retrieving revision 1.65
diff -u -p -r1.65 configure.in
--- configure.in	14 Apr 2006 10:13:46 -0000	1.65
+++ configure.in	25 Apr 2006 13:52:02 -0000
@@ -224,6 +224,9 @@ if test "x$enable_use_deprecations" = "x
    AC_SUBST(DISABLE_DEPRECATED_CFLAGS)
 fi
 
+# Offer the ability to omit some API from the library, 
+# to reduce the code size:
+GLIBMM_ARG_ENABLE_API_DEFAULT_SIGNAL_HANDLERS()
 
 # Add an --enable-deprecated-api option:
 AC_ARG_ENABLE(deprecated-api, [AC_HELP_STRING([--enable-deprecated-api],
Index: glib/glibmmconfig.h.in
===================================================================
RCS file: /cvs/gnome/glibmm/glib/glibmmconfig.h.in,v
retrieving revision 1.15
diff -u -p -r1.15 glibmmconfig.h.in
--- glib/glibmmconfig.h.in	6 Apr 2006 12:42:27 -0000	1.15
+++ glib/glibmmconfig.h.in	25 Apr 2006 13:52:02 -0000
@@ -46,6 +46,7 @@
 #undef GLIBMM_CAN_ASSIGN_NON_EXTERN_C_FUNCTIONS_TO_EXTERN_C_CALLBACKS
 #undef GLIBMM_CAN_USE_NAMESPACES_INSIDE_EXTERNC
 #undef GLIBMM_HAVE_ALLOWS_STATIC_INLINE_NPOS
+#undef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
 #endif
 
 #ifdef GLIBMM_MSC
@@ -58,6 +59,7 @@
   #define GLIBMM_CAN_USE_DYNAMIC_CAST_IN_UNUSED_TEMPLATE_WITHOUT_DEFINITION 1
   #define GLIBMM_CAN_ASSIGN_NON_EXTERN_C_FUNCTIONS_TO_EXTERN_C_CALLBACKS 1
   #define GLIBMM_CAN_USE_NAMESPACES_INSIDE_EXTERNC 1
+  #define GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED 1
   #pragma warning (disable: 4786 4355 4800 4181)
 #endif
 
Index: scripts/reduced.m4
===================================================================
RCS file: scripts/reduced.m4
diff -N scripts/reduced.m4
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ scripts/reduced.m4	25 Apr 2006 13:52:02 -0000
@@ -0,0 +1,19 @@
+## GLIBMM_ARG_ENABLE_API_DEFAULT_SIGNAL_HANDLERS()
+##
+## Provide the --enable-api-default-signal-handlers configure argument, enabled
+## by default.
+##
+AC_DEFUN([GLIBMM_ARG_ENABLE_API_DEFAULT_SIGNAL_HANDLERS],
+[
+  AC_ARG_ENABLE([api-exceptions],
+      [  --enable-api-default-signal-handlers  Build exceptions API.
+                              [[default=yes]]],
+      [glibmm_enable_api_default_signal_handlers="$enableval"],
+      [glibmm_enable_api_default_signal_handlers='yes'])
+
+  if test "x$glibmm_enable_api_default_signal_handlers" = "xyes"; then
+  {
+    AC_DEFINE([GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED],[1], [Defined when the --enable-api-default-signal-handlers configure argument was given])
+  }
+  fi
+])
Index: tools/m4/class_interface.m4
===================================================================
RCS file: /cvs/gnome/glibmm/tools/m4/class_interface.m4,v
retrieving revision 1.5
diff -u -p -r1.5 class_interface.m4
--- tools/m4/class_interface.m4	14 Dec 2003 11:53:04 -0000	1.5
+++ tools/m4/class_interface.m4	25 Apr 2006 13:52:02 -0000
@@ -52,10 +52,12 @@ public:
 
 protected:
 
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
   //Callbacks (default signal handlers):
   //These will call the *_impl member methods, which will then call the existing default signal callbacks, if any.
   //You could prevent the original default signal handlers being called by overriding the *_impl method.
 _IMPORT(SECTION_PH_DEFAULT_SIGNAL_HANDLERS)
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
 
   //Callbacks (virtual functions):
 _IMPORT(SECTION_PH_VFUNCS)
@@ -91,12 +93,17 @@ void __CPPNAME__`'_Class::iface_init_fun
   g_assert(klass != 0); 
 
 _IMPORT(SECTION_PCC_CLASS_INIT_VFUNCS)
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
 _IMPORT(SECTION_PCC_CLASS_INIT_DEFAULT_SIGNAL_HANDLERS)
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
 }
 
 _IMPORT(SECTION_PCC_VFUNCS)
 
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
 _IMPORT(SECTION_PCC_DEFAULT_SIGNAL_HANDLERS)
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
 ')
 
 
Index: tools/m4/class_shared.m4
===================================================================
RCS file: /cvs/gnome/glibmm/tools/m4/class_shared.m4,v
retrieving revision 1.3
diff -u -p -r1.3 class_shared.m4
--- tools/m4/class_shared.m4	13 Mar 2004 15:20:19 -0000	1.3
+++ tools/m4/class_shared.m4	25 Apr 2006 13:52:02 -0000
@@ -18,7 +18,9 @@ protected:
 _IMPORT(SECTION_H_VFUNCS)
 
   //Default Signal Handlers::
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
 _IMPORT(SECTION_H_DEFAULT_SIGNAL_HANDLERS)
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
 ')
 
 
@@ -64,10 +66,12 @@ ifdef(`__BOOL_NO_DERIVED_CLASS__',`dnl
 
 protected:
 
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
   //Callbacks (default signal handlers):
   //These will call the *_impl member methods, which will then call the existing default signal callbacks, if any.
   //You could prevent the original default signal handlers being called by overriding the *_impl method.
 _IMPORT(SECTION_PH_DEFAULT_SIGNAL_HANDLERS)
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
 
   //Callbacks (virtual functions):
 _IMPORT(SECTION_PH_VFUNCS)
@@ -108,13 +112,18 @@ void __CPPNAME__`'_Class::class_init_fun
   CppClassParent::class_init_function(klass, class_data);
 
 _IMPORT(SECTION_PCC_CLASS_INIT_VFUNCS)
+
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
 _IMPORT(SECTION_PCC_CLASS_INIT_DEFAULT_SIGNAL_HANDLERS)
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
 }
 ')dnl
 
 _IMPORT(SECTION_PCC_VFUNCS)
 
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
 _IMPORT(SECTION_PCC_DEFAULT_SIGNAL_HANDLERS)
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
 ')
 
 
@@ -143,7 +152,9 @@ _IMPORT(SECTION_CC_SIGNALPROXIES)
 
 _IMPORT(SECTION_CC_PROPERTYPROXIES)
 
+#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
 _IMPORT(SECTION_CC_DEFAULT_SIGNAL_HANDLERS)
+#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
 
 _IMPORT(SECTION_CC_VFUNCS)
 _IMPORT(SECTION_CC_VFUNCS_CPPWRAPPER)
