2.28.1:

2011-06-13  Kalev Lember  <[email protected]>

       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  <[email protected]>

       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  <[email protected]>

       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  <[email protected]>

       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  <[email protected]>

       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  <[email protected]>

       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  <[email protected]>

       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<Connection>&
         conn{RET}, const Glib::RefPtr<AsyncResult>& 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<Connection>&',`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  <[email protected]>

       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  <[email protected]>

       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  <[email protected]>

       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  <[email protected]>

       gmmproc: Use NULL for optional properties.

       * tools/pm/Output.pm(get_ctor_properties): Use NULL instead of
       static_cast<char*>(0) for properties that are optional as is done in
       convert_args_cpp_to_c().

2011-06-01  José Alburquerque  <[email protected]>

       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<char*>(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  <[email protected]>

       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  <[email protected]>

       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