2.35.8 (unstable); 2013-02-21 Murray Cumming Fix the build with --enable-warnings=fatal. * glib/src/threads.hg: The GThread definition is now deprecated, meaning it should only be used via a pointer. However, we depend on it, so this temporarily undefs the deprecation, so we can still use those checks elsewhere in the build. It looks like we will have to do a third version of Glib::Threads, after already replacing Glib::Thread. This fixes make distcheck. 2013-02-21 Kjell Ahlstedt Signal*::connect(): Make them less thread-unsafe. * glib/glibmm/main.cc: Make SignalTimeout::connect(), connect_seconds(), SignalIdle::connect() and SignalChildWatch::connect() less thread-unsafe by moving conn_node->install() to before g_source_attach(). * glib/glibmm/main.h: Describe that the Signal*::connect*() methods that return a sigc::connection are not thread-safe. Bug #396958. 2013-02-20 Kjell Ahlstedt Signal[Timeout|Idle]::connect_once() docs: Warn about thread-unsafety. * glib/glibmm/main.cc: Fix an incomplete comment. * glib/glibmm/main.h: SignalTimeout::connect_once(), connect_seconds_once(), SignalIdle::connect_once(): Describe the caution necessary because sigc::trackable-derived objects are not thread-safe. Bug #396963. 2013-02-20 Kjell Ahlstedt ThreadPool::push() docs: Note that sigc::trackable is not thread-safe. * glib/glibmm/threadpool.h: push(): Describe how sigc::trackable-derived classes can be used in a thread-safe way. * glib/src/threads.hg: create(): Correct the description added in the previous commit. Bug #512348. 2013-02-20 Kjell Ahlstedt Threads::Thread::create(): Update the documentation. * examples/thread/thread.cc: Don't derive from sigc::trackable. * glib/src/threads.hg: create(): Describe how sigc::trackable-derived classes can be used in a thread-safe way. Bug #512348. 2013-01-30 Kjell Ahlstedt Predefine G_OS_UNIX or G_OS_WIN32 in Doxygen's configuration file. * docs/reference/Doxyfile.in: Predefine either G_OS_UNIX or G_OS_WIN32, depending on HOST_WINDOWS_NATIVE. Update to Doxygen 1.8.3 status. * glib/src/iochannel.hg: Remove the DOXYGEN_SHOULD_SKIP_THIS that was added just to get Windows-specific methods included in the documentation. 2013-01-30 Kjell Ahlstedt DBus::[Connection|Proxy]: Change ifdef G_OS_LINUX to ifdef G_OS_UNIX. * gio/src/dbusconnection.[ccg|hg]: * gio/src/dbusproxy.[ccg|hg]: Change G_OS_LINUX to G_OS_UNIX. Glib does not define G_OS_LINUX. Correct function declarations for DBus::Proxy::call(). 2013-01-29 Kjell Ahlstedt gmmproc: Improve the conversion of documentation to Doxygen format. * tools/defs_gen/docextract.py: Handle 'Since ' without a colon. * tools/m4/signal.m4: * tools/pm/Output.pm: When a function declaration is surrounded by ifdef/endif, put its documentation inside the ifdef/endif. * tools/pm/DocsParser.pm: Handle 'Since ' without a colon. Escape most backslashes, not just \r and \n. Convert more to something that Doxygen understands. 2013-01-27 Kjell Ahlstedt Documentation: Fix many warnings from Doxygen. * gio/src/gio_docs_override.xml: * glib/src/glib_docs_override.xml: Move "Since: n.m" from the to the entries. gmmproc adds a period at the end of the @return Doxygen command, and Doxygen warns for "@newin{n,m}.". * glib/glibmm/interface.h: * glib/glibmm/stringutils.h: * glib/glibmm/vectorutils.h: * gio/src/*.hg: * glib/src/*.hg: (Here "*" means "many", not "all") Examples of changes: Add missing @param. Change names of parameters, to make them equal in function declaration and @param command. Change "@name" to "@a name". Change " giomm: Add the TlsPassword class. * gio/src/tlspassword.{ccg,hg}: * gio/src/filelist.am: Add the new sources containing the constructor, methods, properties and virtual functions and include the sources in the build. * gio/src/gio_vfuncs.defs: Add the GTlsPassword virtual functions so that they are recognized by gmmproc. * tools/m4/convert_gio.m4: Add an enum conversion. 2012-11-13 José Alburquerque giomm: Add the GTls* GTypes to the extra defs generation utility. * tools/extra_defs_gen/generate_defs_gio.cc: Add the GTypes. * gio/src/gio_signals.defs: And regenerate the signal and property defs file. 2012-11-13 José Alburquerque giomm.h: Re-add an accidentally removed include. * gio/giomm.h: Re-add 'simpleaction.h' which was accidentally removed. Also re-sort the includes by the base filename (without the .h) as they were before. 2012-11-12 José Alburquerque giomm.h: Include missing headers. * gio/giomm.h: Include all the headers generated from the .hg files. 2012-11-11 José Alburquerque giomm: Add the TlsCertificate class. * gio/src/filelist.am: * gio/src/tlscertificate.{ccg,hg}: Add the sources wrapping the constructors, methods and (most) properties and include the sources in the build. * gio/src/enums.hg: Add the TlsCertificateFlags enum (wrapping the C enum). * tools/extra_defs_gen/generate_defs_gio.cc: Add the GTlsCertificate GType to the list of types for which signal and property defs are to be generated. * gio/src/gio_signals.defs: Regenerate the signal and property defs file. * tools/m4/convert_gio.m4: Add necessary conversions. * gio/src/gio_extra_objects.defs: Add TlsClientConnection to avoid a gmmproc docs warning. 2012-11-08 José Alburquerque gmmproc: _WRAP_CTOR: Handle *_new() functions with a final GError**. * tools/pm/WrapParser.pm (on_wrap_ctor): Add code to parse an additional "errthrow" optional option in a _WRAP_CTOR() macro. * tools/pm/Output.pm (output_wrap_ctor): Pass the "errorthrow" option along as a string to: (get_ctor_properties): Ignore the final GError** parameter of the C *_new() function because it does not form part of the property list that the constructor to has to set. Bug #687959. 2012-11-07 José Alburquerque DesktopAppInfo: Add some new getter methods. * gio/src/desktopappinfo.hg: Add the get_keywords(), get_startup_wm_class(), get_generic_name(), get_show_in(), get_nodisplay() and get_categories() getter methods wrapping the corresponding C functions. 2012-11-06 José Alburquerque Variant: Don't refsink variants created using the custom cast ctor. * glib/src/variant.ccg: * glib/src/variant.hg: * glib/src/variant_basictypes.cc.m4: Remove the call to g_variant_ref_sink() in the create() methods of the variant types that use the custom cast constructor to wrap the newly created C object because the custom cast constructor already refsinks the object if necessary. 2012-11-06 José Alburquerque MemoryOutputStream: Add the steal_as_bytes() method. * gio/src/memoryoutputstream.{ccg,hg}: Add the method that wraps the corresponding C function. 2012-11-06 José Alburquerque AppInfo: Add create_duplicate(). * gio/src/appinfo.{hg,ccg}: Add the new method (which creates a duplicate of the AppInfo). Also, use gmmproc's optional parameter functionality to wrap the launch_default_for_uri() method without the optional AppLaunchContext parameter. 2012-11-06 José Alburquerque Variant< std::vector >: Add create_from_object_paths(). * glib/src/variant.hg: Add the new method that creates a variant of vector of strings out of object paths. This is so the type of the variant is rightly set to G_VARIANT_TYPE_OBJECT_PATH_ARRAY and not G_VARIANT_TYPE_BYTESTRING_ARRAY in case some application needs to make a distinction. Also _IGNORE the g_variant_get_objv() and g_variant_dup_objv() functions because it's possible to get object paths from a variant of vector of strings if it contains them with the existing getter methods because object paths are merely strings. * glib/src/variantiter.hg: Add an _IGNORE. * glib/src/checksum.ccg: * glib/src/convert.ccg: Whitespace. 2012-11-05 José Alburquerque Regenerate the XML docs files for glibmm and giomm. * gio/src/gio_docs.xml: * glib/src/glib_docs.xml: These files now include enum XML documentation. * glib/src/glib_extra_objects.defs: Add IOChannel to avoid a gmmproc documentation warning. 2012-11-04 José Alburquerque gmmproc: Make enum documentation possible. * tools/defs_gen/docextract.py (enum_name_pattern): Add a new regular expression that recognizes gtk-doc enum comment blocks (though imperfectly because it also catches things such as structure comment blocks). (identifier_patterns): Append the new enum_name_pattern to the list of patterns used to test each gtk-doc block's identifier to see what type of block it is. (parse_file): Do not add a particular gtk-doc block if it has been marked as a block initially thought to be an enum comment block but later found not to be so. (skip_to_identifier): Mark the current comment block as an enum type if the enum_name_pattern matches the identifier. (process_params): Mark the current block as invalid if the block was recognized as an enum type but no parameters are found or if any of the parameter names are not all caps. (parse_dir): Include .h files for processing because gtk-doc enum comment blocks are included in those files. * tools/defs_gen/docextract_to_xml.py: Add an option to not print out enum docs. Assume that enum docs should be printed out by default. * tools/pm/DocsParser.pm (parse_on_start): (parse_on_end): Add logic to correctly parse an tag (which is just like the already existing and tags. The only difference is in the name of the tags. The function name syntax is the same as a C function name, the signal name has the form 'CStructName::signal-name' while the enum name has the form 'CEnumName') (lookup_enum_description): Add this subroutine that gets the the description of the specified enum. (lookup_enum_value_documentation): Add this subroutine that gets the description of an enum value as a Doxygen block. (lookup_documentation): Use the new remove_example_code subroutine described below. (remove_example_code): Add this subroutine that removes example code from the specified text so that it can be used in other places. * tools/pm/Enum.pm (c_prefix): Add a new field to the class storing the enum's C prefix. This field is used when looking up an enum's value documentation. (parse_values): Modified to store the C prefix of the enum. (build_element_list): Modified to lookup the documentation of the values of the enum and insert the Doxygen block just before each value. This allows Doxygen to document each value of the enum. * tools/pm/Output.pm (output_wrap_enum): Modified to lookup the description of the enum previously parsed by the DocParser and merge it with an already passed in comment for the enum which is then passed as before to the _ENUM macro. * tools/m4/enum.m4: Whitespace correction. Bug #544694.