2.28.1: 2011-06-13 Kalev Lember Removed doctooldir variable from pkgconfig files * glib/glibmm{,-uninstalled}.pc.in: Removed doctooldir variable now that the scripts are in mm-common. https://bugzilla.redhat.com/show_bug.cgi?id=712474 Bug #652461 2011-06-13 José Alburquerque m4 Macros: _INITIALZE: Modify so that $1 substitutes C++ type w/o &. * tools/m4/convert_base.m4 (_INITIALIZE): Changed the macro so that $1 substitutes the C++ type without the final ampersand (&) for convenience. 2011-06-12 José Alburquerque gmmproc: Use '.' instead of '-' in parameter reordering. * tools/pm/Function.pm (parse_param): Use a '.' instead of a '-' to signify that the C++ parameter name should be used as the C parameter name to map the current C++ parameter to. 2011-06-09 José Alburquerque Gio::DBus::Connection::emit_signal(): Say why convert empty strings. * gio/src/dbusconnection.ccg (emit_signal): Explain why empty strings are converted to NULL when passed to the C API. 2011-06-08 José Alburquerque Gio::DBus::Connection::emit_signal(): Replace empty strings with NULL. * gio/src/dbusconnection.ccg (emit_signal): Pass NULL to the C function call where strings are empty allowing emitting signals to all listeners. Bug #645072 (Yannick Guesnet). 2011-06-07 José Alburquerque M4 Macros: Rename the _INITIALIZER macro to _INITIALIZATION. * tools/m4/convert_base.m4 (_INITIALIZER): Rename the macro to _INITIALIZATION to be more consistent with the _CONVERSION macro. 2011-06-07 José Alburquerque gmmproc: _WRAP_METHOD: Add the possibility of an output parameter. * tools/pm/Output.pm (output_wrap_meth): Modified to test if there is a parameter mapping in the current C++ function from the hypothetical C name 'RET' to a C++ parameter index. If so, that parameter is treated as an output parameter. This allows wrap statements such as: _WRAP_METHOD(static void get_finish(Glib::RefPtr& conn{RET}, const Glib::RefPtr& res), g_bus_get_finish, errthrow ) Where the 'conn' parameter is an output parameter. The output parameter name and type are passed to the _STATIC_METHOD and _METHOD macros (along with the wrap line number). (convert_args_cpp_to_c): Modified to process the C++ parameters dealing with the possibility of an output parameter. * tools/pm/Function.pm: Typo. * tools/m4/method.m4 (_METHOD): (_STATIC_METHOD): Both modified to accept an optional output parameter name, type and wrap line number and if they exist to ensure that the output parameter is correctly set to the return of the C function. To do that it uses the new _INITIALIZE macro. * tools/m4/convert_base.m4 (_INITIALIZER): (_INITIALIZE): Add macros (similar to the _CONVERSION/_CONVERT macros) used to record how to initialize a C++ type from a C type and later to initialize an output parameter of the C++ type. The _INITIALIZER macro has much the same syntax as the _CONVERSION macro. For example: _INITIALIZER(`Glib::RefPtr&',`GDBusConnection*', `$3 = Glib::wrap($4)') Describes how to initialize a C++ reference to a Glib::RefPtr that contains a Gio::DBus::Connection from its corresponding C type. $3 represents the output parameter name and $4 represents the C return. The _INITIALIZE macro can then be appropriately used by the _METHOD and _STATIC_METHOD macros to initialize the output parameters passed to them by gmmproc. 2011-06-06 José Alburquerque gmmproc: _WRAP_[CREATE|CTOR|METHOD]: Support parameter reordering. * tools/pm/Function.pm (param_mappings): Add a new hash member mapping C parameter names to C++ parameter indices. The map is specified by appending a {name[?]} to the desired C++ parameter name in the C++ method declaration. A '-' in place of a C parameter name means to use the C++ parameter name. (parse_param): Modified to detect parameter mappings and set the appropriate mapping in the above new member. No mappings occur if none are specified. * tools/pm/Output.pm (convert_args_cpp_to_c): (get_ctor_properties): Modified to use the new C param names to C++ param indices mappings member above to allow reordering of parameters in the C++ method declaration. 2011-06-05 José Alburquerque gmmproc: Do not use NULL for optional parameters or properties. * tools/pm/Output.pm (convert_args_cpp_to_c): (get_ctor_properties): Substitute 0 instead of NULL for optional parameters or properties. 2011-06-04 Murray Cumming Fix the build with --enable-warnings=fatal. * tests/glibmm_nodetree/main.cc: Comment out a set-but-not-used variable. 2011-06-01 José Alburquerque gmmproc: Use NULL for optional properties. * tools/pm/Output.pm(get_ctor_properties): Use NULL instead of static_cast(0) for properties that are optional as is done in convert_args_cpp_to_c(). 2011-06-01 José Alburquerque gmmproc: _WRAP_[CREATE|CTOR]: Add optional parameter functionality. * tools/pm/Function.pm (new_ctor): Modified to initialize the new param_optional and possible_args_list members. * tools/pm/FunctionBase.pm (args_names_only): Typo. (get_declaration): Make sure that spacing is correct if the declaration is a constructor's declaration. * tools/pm/Output.pm (output_wrap_meth): Store the number of possible declarations instead of computing it each time in the for loop. (output_wrap_ctor): (output_wrap_create): Modified as output_wrap_meth() to loop through the list of the possible combination of arguments to output convenience overloads for the constructors and create() methods. (get_ctor_properties): Modified as convert_args_cpp_to_c() to accept an optional index specifying which argument list out of the possible ones to use and to insert a static_cast(0) for optional parameters not in the specified argument list. * tools/m4/class_gobject.m4: Added a blank line after the create() methods definitions. 2011-05-31 José Alburquerque gmmproc: _WRAP_METHOD: Add optional parameter functionality. * tools/pm/Function.pm (param_optional): Add new member bool array to represent which parameters are optional. (possible_args_list): Add new member string array containing a list of the possible argument combination based on existing optional parameters. (possible_args_list): Added recursive function to generate the list of possible parameter combinations. The first in the list (the zeroth element) always includes all the paramters. (new): Modified to initialize the new members above. (parse_param): Modified to see if parameters are optional by checking if the name ends with '{?}'. * tools/pm/FunctionBase.pm (args_names_only): (args_types_and_names): (args_types_and_names_with_default_values): Modified to accept an optional index representing the desired argument list to use out of the possible combinations. (get_declaration): New subroutine returning any of the possible declarations based on optional arguments. (get_num_possible_args_list): New subroutine returning the number of possible combination of arguments. * tools/pm/Output.pm (output_wrap_meth): Modified to loop through the possible arguments list and generate a _METHOD or _STATIC_METHOD for all the possible combination of arguments. (convert_args_cpp_to_c): Modified as above to accept an optional index parameter representing the argument list for which to generate _CONVERT macros. For optional arguments a NULL is placed in the C function call. 2011-05-27 Kjell Ahlstedt gmmproc: Protect documentation with m4 quotes. * tools/pm/DocsParser.pm: * tools/pm/Output.pm: Method documentation read from xxx_docs.xml, and property documentation read from xxx_signals.defs are better protected with m4 quotes and __BT__ and __FT__ macros in the input to the m4 macro processor. Bug #603930