2.33.13:

2012-09-25  Murray Cumming  <murrayc@murrayc.com>

	gio_docs.xml: Replace &colon; with :.

        * gio/src/gio_docs.xml: This fixes the build.

2012-09-24  Murray Cumming  <murrayc@murrayc.com>

        Update the *_methods defs files.

        * gio/src/gio_methods.defs:
        * glib/src/glib_functions.defs:
        * glib/src/gobject_functions.defs: Updated with tools/gen_scripts/

2012-09-24  Murray Cumming  <murrayc@murrayc.com>

        Update the docs XML files.

        * gio/src/gio_docs.xml:
        * glib/src/glib_docs.xml: Updated with tools/gen_scripts/

2012-09-24  José Alburquerque  <jaalburquerque@gmail.com>

	Converter[Input|Output]Stream: Correct whitespace typos.

	* gio/src/converterinputstream.hg:
	* gio/src/converteroutputstream.hg:

2012-09-24  José Alburquerque  <jaalburquerque@gmail.com>

	giomm: Add the Converter[Input|Output]Stream classes.

	* gio/src/converterinputstream.{ccg,hg}:
	* gio/src/converteroutputstream.{ccg,hg}:
	* gio/src/filelist.am: Add the new sources adding the constructors,
	create methods, the methods and properties of the new classes.  Add
	the sources to the build.
	* gio/src/gio_signals.defs:
	* tools/extra_defs_gen/generate_defs_gio.cc: Add the two new GTypes to
	the extra defs generation utility and regenerate the signal and
	property defs file to get the properties of the new classes.
	* tools/m4/convert_gio.m4: Add the necessary Converter conversions.

2012-09-20  José Alburquerque  <jaalburquerque@gmail.com>

	giomm: Add the PollableOutputStream interface.

	* gio/src/pollableoutputstream.{ccg,hg}:
	* gio/src/filelist.am: Add the sources adding the new interface
	methods and virtual functions and include the sources in the build.
	* gio/src/gio_extra_objects.defs: Add the new object in this file to
	avoid a gmmproc documentation warning.
	* gio/src/gio_vfuncs.defs: Add the new interface virtual functions.

2012-09-20  José Alburquerque  <jaalburquerque@gmail.com>

	giomm: Add the PollableInputStream interface.

	* gio/src/pollableinputstream.{ccg,hg}:
	* gio/src/filelist.am: Add the sources adding the new interface
	methods and virtual functions and include the sources in the build.
	* gio/src/gio_extra_objects.defs: Mention the new object in this file
	to avoid the gmmproc documentation warnings.
	* gio/src/gio_vfuncs.defs: Add the new interface virtual functions but
	alphabetize the existing entries by class name.

2012-09-19  José Alburquerque  <jaalburquerque@gmail.com>

	_WRAP_VFUNC: Prepend @throws clause to vfuncs that throw errors.

	* tools/pm/Output.pm (output_wrap_vfunc_h): Prepend a Doxygen @throws
	clause to the declaration of virtual functions that throw Glib::Error.

2012-09-18  José Alburquerque  <jaalburqu@svn.gnome.org>

	Gio::DBus::Connection: Add the call_[finish|sync]() with UnixFDLists.

	* gio/src/dbusconnection.{hg,ccg}: Add the methods using gmmproc's
	output parameter functionality.  Also add the cancellable and
	non-cancellable asynchronous call() methods that were #ifdef'ed out
	because of the missing call_finish() method.
	* tools/m4/convert_gio.m4: Add a necessary enum conversion.

	Bug #662371.

2012-09-18  José Alburquerque  <jaalburqu@svn.gnome.org>

	gmmproc: _WRAP_METHOD: Allow setting parameters from C output params.

	* tools/m4/convert_base.m4 (_INITIALIZATION): Insert newlines between
	a possible series of statements that has been specified as an
	initialization.  For example, the declaration, assignment and the
	g_free() call would each be on a seperate line in the following (from
	datainputstream.hg):

	_INITIALIZATION(`std::string&',`return-char*',`char* tmp = $4; $3 = tmp; g_free(tmp)')

	* tools/pm/Function.pm (FLAG_PARAM_OPTIONAL):
	(FLAG_PARAM_OUTPUT): Added new constant flags representing if a
	parameter is optional or if it is an output parameter.
	(EXPORT_OK): Exported the above flags so they can be used in other
	modules.
	(param_optional): Renamed to param_flags.  Redesigned it to store a
	possible combination of both flags above and not just if a parameter
	is optional.
	(parse_param): Modified the subroutine to look for an '>>' in a
	possible '{.*}' following the current parameter name which would
	signal that the parameter is an output parameter.  The syntax for
	signaling if a parameter is optional, is an output parameter or should
	be mapped to a specific C parameter would be:

	cpp_param_name{c_param_name>>?}

	c_param_name means that the C++ parameter should be mapped to the C
	parameter no matter the parameter order of either.  The '>>' means
	that the parameter should be set from the C parameter because the C
	parameter is an output parameter.   Finally, the '?' means that the
	parameter is optional thus overloads should be generated without that
	paramter.  All three components within the {} are optional.  A '.' may
	be used instead of the c parameter name if the C++ parameter name is
	the same as the C parameter name.

	(possible_args_list): Modified to use the param_flags variable.

	* tools/pm/Output.pm (output_wrap_vfunc_h): Modified to receive the
	new return type from convert_args_cpp_to_c() (see below).
	(output_wrap_meth): Modified to receive the new return from
	convert_args_cpp_to_c (see below) and pass them to the _METHOD() and
	_STATIC_METHOD() macros.
	(convert_args_cpp_to_c): Modified to generate a
	list of C declarations for any possible C output parameters and to
	generate a list of _INITIALIZE() macros to initialize the C++
	parameters from the C output parameters.  The function returns an array
	of three strings (the convert macros, the possible C declarations and
	the _INITIALIZE() macros in that order).

	* tools/pm/WrapParser.pm (string_split_commas): Modified the
	subroutine to ignore '>>' if they are in '{}' (so that the '>>' can
	signal that a parameter should be set from a C output parameter.

	* tools/m4/method.m4 (_METHOD, _STATIC_METHOD): Rewrote to accept
	C declarations of possible C output parameters and _INITIALIZE macros
	which would initialize the appropriate C++ parameters from the output
	variables and insert them appropriately in the generated code.

	Bug #662371.

2012-09-18  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

	Improve the use of _IGNORE. Don't use gio_others.defs.

	* gio/src/applicationcommandline.hg: Change a _CONVERSION (due to the
	exclusion of gio_others.defs).
	* gio/src/dbusintrospection.hg:
	* gio/src/fileinfo.hg: Add _IGNORE.
	* gio/src/fileiostream.hg:
	* gio/src/fileoutputstream.hg: Correct an _IGNORE.
	* gio/src/gio.defs: Don't include gio_others.defs. One of its entries is
	wrong and all of them also exist (in correct form) in gio_methods.defs or
	gio_signals.defs.
	* glib/src/convert.hg:
	* glib/src/regex.hg: Add _IGNORE.
	* glib/src/date.hg:
	* glib/src/fileutils.hg:
	* glib/src/markup.hg:
	* glib/src/optionentry.hg:
	* glib/src/shell.hg:
	* glib/src/spawn.hg:
	* glib/src/thread.hg:
	* glib/src/threads.hg:
	* glib/src/unicode.hg:
	* glib/src/uriutils.hg: Remove _IGNORE(g_iconv).
	* glib/src/variantiter.hg: Add an _IGNORE. Remove _IGNORE(g_variant_iter_new).

2012-09-18  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

	gmmproc: Improve the search for unwrapped methods.

	* tools/pm/GtkDefs.pm: lookup_method_set_weak_mark(): New function.
	get_unwrapped(): Correct the search when methods from more than one class
	have been wrapped.
	GtkDefs::Function::new(): Take into account that a method (g_iconv) may be
	nameless. After this change the patch of g_iconv in glib_functions.defs.patch
	is probably unnecessary but harmless.
	* tools/pm/WrapParser.pm: on_wrap_method_docs_only(), on_wrap_ctor():
	Call GtkDefs::lookup_method_set_weak_mark().
	on_wrap_method(): Call GtkDefs::lookup_method_set_weak_mark() if the method
	is static.

2012-09-14  José Alburquerque  <jaalburquerque@gmail.com>

	_CLASS_GOBJECT: Allow classes to have custom wrap() functions.

	* tools/m4/class_gobject.m4 (_CUSTOM_WRAP_FUNCTION): Add this new
	macro which can be used in _CLASS_GOBJECT classes so that if they want
	they can write their own implementation of their Glib::wrap()
	function.  This is useful for modules such as gstreamermm that want to
	keep certain classes (like the plug-ins) from being registered on
	startup but then do a one time registration of the wrap_new() function
	in the Glib::wrap() function before calling Glib::wrap_auto() which
	can then find the wrap_new() function if necessary.

	Bug #684006.

2012-09-14  José Alburquerque  <jaalburquerque@gmail.com>

	generate_wrap_init.pl: Allow classes in files to not be registered.

	* tools/m4/class_shared.m4: Add a new _NO_WRAP_INIT_REGISTRATION macro
	used in the generate_wrap_init.pl script to recognize a file whose
	classes should not be registered by wrap_init().
	* tools/generate_wrap_init.pl.in (exclude_from_wrap_init): Include a
	hash map to determine if the classes in a file should not be
	registered with the wrapping system by the wrap_init() function.
	(main): Modified to see if the new _NO_WRAP_INIT_REGISTRATION macro is
	used in a file and store a true/false value in the hash map for the
	specified file.  Also, modified to not include the includes, the
	*_get_type() function declarations, the wrap_new() function
	declarations and the *::get_type() invocations of the classes in the
	file marked for no registration.

	Bug #684006.

2012-09-16  Murray Cumming  <murrayc@murrayc.com>

	File: Add remove_async() and remove_finish().

        * gio/src/file.[hg|ccg]: As for the sync version, we 
	rename delete to remove, because the sync vesion would be 
	delete(), which uses a C++ keyword.

2012-09-15  Murray Cumming  <murrayc@murrayc.com>

        Simplified lots of code by using the {?} _WRAP_METHOD() syntax.

        * gio/src/application.[hg|ccg]:
        * gio/src/bufferedinputstream.[hg|ccg]:
        * gio/src/datainputstream.[hg|ccg]:
        * gio/src/dataoutputstream.[hg|ccg]:
        * gio/src/dbusconnection.[hg|ccg]:
        * gio/src/fileenumerator.[hg|ccg]:
        * gio/src/initable.[hg|ccg]:
        * gio/src/inputstream.[hg|ccg]:
        * gio/src/iostream.[hg|ccg]:
        * gio/src/outputstream.[hg|ccg]:
        * gio/src/resolver.[hg|ccg]:
        * gio/src/seekable.[hg|ccg]:
        * gio/src/socket.[hg|ccg]:
        * gio/src/socketaddressenumerator.[hg|ccg]:
        * gio/src/socketclient.[hg|ccg]: This relatively new gmmproc syntax lets 
	us avoid the manual implementations and declarations just to have
	overloads without the Cancellable parameters.
        * gio/src/unixconnection.hg: This had no method overloads without
	Cancellable parameters but now it does.

2012-09-15  Murray Cumming  <murrayc@murrayc.com>

	Gio::File: Correct the commit again

        * gio/src/file.[hg|ccg]: make_directory() was missing a {?}.

2012-09-15  Murray Cumming  <murrayc@murrayc.com>

	Gio::File: Correct the previous commit.

        * gio/src/file.[hg|ccg]: Do not use {?} with query_file_type()
	because it cannot cope with also having a default parameter value
	on an earlier parameter.

2012-09-15  Murray Cumming  <murrayc@murrayc.com>

        Gio::File: Simplify the code by using {?} in _WRAP_METHOD()

        * gio/src/file.[hg|ccg]: This relatively new gmmproc syntax lets 
	us avoid the manual implementations and declarations just to have
	overloads without the Cancellable parameters.

2012-09-15  Murray Cumming  <murrayc@murrayc.com>

	AppLaunchContext: Add setenv(), unsetenv() and get_environment().

        * gio/src/applaunchcontext.hg: Wrap these C functions.

2012-09-12  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

	Use std::time_t instead of ::time_t.

	* build/c_std.m4:
	* glib/src/date.[hg|ccg]: Use std::time_t instead of ::time_t. Only
	std::time_t is required to be declared in <ctime>, which is recommended
	instead of <time.h> in C++ programs.

2012-09-12  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

	Use std::size_t and std::ptrdiff_t.

	* glib/glibmm/arrayhandle.h:
	* glib/glibmm/containers.h:
	* glib/glibmm/listhandle.h:
	* glib/glibmm/slisthandle.h:
	* glib/glibmm/vectorutils.h: Use std::size_t and std::ptrdiff_t instead
	of ::size_t and ::ptrdiff_t. Only the std versions are required to be
	declared in <cstddef>.
	* examples/network/resolver.cc:
	* glib/glibmm/containerhandle_shared.h:
	* glib/glibmm/helperlist.h:
	* glib/glibmm/main.h:
	* glib/glibmm/vectorutils.cc: Use std::size_t instead of ::size_t.
	* glib/src/convert.hg: Use std::size_t instead of ::size_t in a comment.
	* glib/glibmm/property.cc:
	* glib/glibmm/ustring.h: Use std::ptrdiff_t instead of ::ptrdiff_t.