summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2009-07-02 13:12:38 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2009-07-02 13:12:38 +0000
commite916ac2821c96950a8cfc72b5870b679cc4b1078 (patch)
tree27a5e1c0bb6a7278d57882758a7a0715a09b3554 /libs
parent5b97b137663d0990d1a3ac172f01b200a45e4692 (diff)
upgrade to glibmm 2.16
git-svn-id: svn://localhost/ardour2/branches/3.0@5303 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs')
-rw-r--r--libs/glibmm2/COPYING.tools339
-rw-r--r--libs/glibmm2/ChangeLog2399
-rw-r--r--libs/glibmm2/INSTALL5
-rw-r--r--libs/glibmm2/Makefile.am113
-rw-r--r--libs/glibmm2/NEWS424
-rw-r--r--libs/glibmm2/README3
-rw-r--r--libs/glibmm2/build_shared/Makefile_build.am_fragment59
-rw-r--r--libs/glibmm2/build_shared/Makefile_build_gensrc.am_fragment130
-rw-r--r--libs/glibmm2/build_shared/Makefile_conditional.am_fragment0
-rw-r--r--libs/glibmm2/build_shared/Makefile_gensrc.am_fragment42
-rw-r--r--libs/glibmm2/glib/Makefile.am2
-rw-r--r--libs/glibmm2/glib/glibmm-2.4.pc1
-rw-r--r--libs/glibmm2/glib/glibmm-2.4.pc.in1
-rw-r--r--libs/glibmm2/glib/glibmm.h13
-rw-r--r--libs/glibmm2/glib/glibmm/Makefile.am17
-rw-r--r--libs/glibmm2/glib/glibmm/Makefile.in358
-rw-r--r--libs/glibmm2/glib/glibmm/arrayhandle.h10
-rw-r--r--libs/glibmm2/glib/glibmm/checksum.cc160
-rw-r--r--libs/glibmm2/glib/glibmm/checksum.h224
-rw-r--r--libs/glibmm2/glib/glibmm/class.cc10
-rw-r--r--libs/glibmm2/glib/glibmm/class.h10
-rw-r--r--libs/glibmm2/glib/glibmm/containerhandle_shared.h60
-rw-r--r--libs/glibmm2/glib/glibmm/containers.cc10
-rw-r--r--libs/glibmm2/glib/glibmm/containers.h13
-rw-r--r--libs/glibmm2/glib/glibmm/convert.cc15
-rw-r--r--libs/glibmm2/glib/glibmm/convert.h10
-rw-r--r--libs/glibmm2/glib/glibmm/date.cc27
-rw-r--r--libs/glibmm2/glib/glibmm/date.h77
-rw-r--r--libs/glibmm2/glib/glibmm/debug.cc10
-rw-r--r--libs/glibmm2/glib/glibmm/debug.h16
-rw-r--r--libs/glibmm2/glib/glibmm/dispatcher.cc10
-rw-r--r--libs/glibmm2/glib/glibmm/dispatcher.h10
-rw-r--r--libs/glibmm2/glib/glibmm/error.cc15
-rw-r--r--libs/glibmm2/glib/glibmm/error.h12
-rw-r--r--libs/glibmm2/glib/glibmm/exception.cc15
-rw-r--r--libs/glibmm2/glib/glibmm/exception.h10
-rw-r--r--libs/glibmm2/glib/glibmm/exceptionhandler.cc10
-rw-r--r--libs/glibmm2/glib/glibmm/exceptionhandler.h10
-rw-r--r--libs/glibmm2/glib/glibmm/fileutils.cc14
-rw-r--r--libs/glibmm2/glib/glibmm/fileutils.h8
-rw-r--r--libs/glibmm2/glib/glibmm/helperlist.h13
-rw-r--r--libs/glibmm2/glib/glibmm/i18n-lib.h30
-rw-r--r--libs/glibmm2/glib/glibmm/i18n.h10
-rw-r--r--libs/glibmm2/glib/glibmm/init.cc10
-rw-r--r--libs/glibmm2/glib/glibmm/init.h12
-rw-r--r--libs/glibmm2/glib/glibmm/interface.cc10
-rw-r--r--libs/glibmm2/glib/glibmm/interface.h23
-rw-r--r--libs/glibmm2/glib/glibmm/iochannel.cc51
-rw-r--r--libs/glibmm2/glib/glibmm/iochannel.h76
-rw-r--r--libs/glibmm2/glib/glibmm/keyfile.cc273
-rw-r--r--libs/glibmm2/glib/glibmm/keyfile.h153
-rw-r--r--libs/glibmm2/glib/glibmm/listhandle.h12
-rw-r--r--libs/glibmm2/glib/glibmm/main.cc28
-rw-r--r--libs/glibmm2/glib/glibmm/main.h86
-rw-r--r--libs/glibmm2/glib/glibmm/markup.cc16
-rw-r--r--libs/glibmm2/glib/glibmm/markup.h14
-rw-r--r--libs/glibmm2/glib/glibmm/miscutils.cc10
-rw-r--r--libs/glibmm2/glib/glibmm/miscutils.h10
-rw-r--r--libs/glibmm2/glib/glibmm/module.cc8
-rw-r--r--libs/glibmm2/glib/glibmm/module.h8
-rw-r--r--libs/glibmm2/glib/glibmm/nodetree.cc20
-rw-r--r--libs/glibmm2/glib/glibmm/nodetree.h774
-rw-r--r--libs/glibmm2/glib/glibmm/object.cc13
-rw-r--r--libs/glibmm2/glib/glibmm/object.h12
-rw-r--r--libs/glibmm2/glib/glibmm/objectbase.cc20
-rw-r--r--libs/glibmm2/glib/glibmm/objectbase.h25
-rw-r--r--libs/glibmm2/glib/glibmm/optioncontext.cc20
-rw-r--r--libs/glibmm2/glib/glibmm/optioncontext.h34
-rw-r--r--libs/glibmm2/glib/glibmm/optionentry.cc62
-rw-r--r--libs/glibmm2/glib/glibmm/optionentry.h28
-rw-r--r--libs/glibmm2/glib/glibmm/optiongroup.cc11
-rw-r--r--libs/glibmm2/glib/glibmm/optiongroup.h10
-rw-r--r--libs/glibmm2/glib/glibmm/pattern.cc12
-rw-r--r--libs/glibmm2/glib/glibmm/pattern.h10
-rw-r--r--libs/glibmm2/glib/glibmm/priorities.h65
-rw-r--r--libs/glibmm2/glib/glibmm/private/Makefile.am15
-rw-r--r--libs/glibmm2/glib/glibmm/private/Makefile.in106
-rw-r--r--libs/glibmm2/glib/glibmm/private/checksum_p.h8
-rw-r--r--libs/glibmm2/glib/glibmm/private/nodetree_p.h8
-rw-r--r--libs/glibmm2/glib/glibmm/private/uriutils_p.h8
-rw-r--r--libs/glibmm2/glib/glibmm/property.cc10
-rw-r--r--libs/glibmm2/glib/glibmm/property.h10
-rw-r--r--libs/glibmm2/glib/glibmm/propertyproxy.cc10
-rw-r--r--libs/glibmm2/glib/glibmm/propertyproxy.h15
-rw-r--r--libs/glibmm2/glib/glibmm/propertyproxy_base.cc10
-rw-r--r--libs/glibmm2/glib/glibmm/propertyproxy_base.h10
-rw-r--r--libs/glibmm2/glib/glibmm/quark.cc11
-rw-r--r--libs/glibmm2/glib/glibmm/quark.h12
-rw-r--r--libs/glibmm2/glib/glibmm/random.cc11
-rw-r--r--libs/glibmm2/glib/glibmm/random.h12
-rw-r--r--libs/glibmm2/glib/glibmm/refptr.h26
-rw-r--r--libs/glibmm2/glib/glibmm/regex.cc8
-rw-r--r--libs/glibmm2/glib/glibmm/regex.h141
-rw-r--r--libs/glibmm2/glib/glibmm/sarray.h10
-rw-r--r--libs/glibmm2/glib/glibmm/shell.cc8
-rw-r--r--libs/glibmm2/glib/glibmm/shell.h10
-rw-r--r--libs/glibmm2/glib/glibmm/signalproxy.cc10
-rw-r--r--libs/glibmm2/glib/glibmm/signalproxy_connectionnode.cc10
-rw-r--r--libs/glibmm2/glib/glibmm/signalproxy_connectionnode.h12
-rw-r--r--libs/glibmm2/glib/glibmm/slisthandle.h12
-rw-r--r--libs/glibmm2/glib/glibmm/spawn.cc186
-rw-r--r--libs/glibmm2/glib/glibmm/spawn.h385
-rw-r--r--libs/glibmm2/glib/glibmm/streamiochannel.cc10
-rw-r--r--libs/glibmm2/glib/glibmm/streamiochannel.h10
-rw-r--r--libs/glibmm2/glib/glibmm/stringutils.cc10
-rw-r--r--libs/glibmm2/glib/glibmm/stringutils.h10
-rw-r--r--libs/glibmm2/glib/glibmm/thread.cc8
-rw-r--r--libs/glibmm2/glib/glibmm/thread.h20
-rw-r--r--libs/glibmm2/glib/glibmm/threadpool.cc10
-rw-r--r--libs/glibmm2/glib/glibmm/threadpool.h10
-rw-r--r--libs/glibmm2/glib/glibmm/timer.cc12
-rw-r--r--libs/glibmm2/glib/glibmm/timer.h10
-rw-r--r--libs/glibmm2/glib/glibmm/timeval.cc14
-rw-r--r--libs/glibmm2/glib/glibmm/timeval.h13
-rw-r--r--libs/glibmm2/glib/glibmm/unicode.cc8
-rw-r--r--libs/glibmm2/glib/glibmm/unicode.h12
-rw-r--r--libs/glibmm2/glib/glibmm/uriutils.cc57
-rw-r--r--libs/glibmm2/glib/glibmm/uriutils.h101
-rw-r--r--libs/glibmm2/glib/glibmm/ustring.cc273
-rw-r--r--libs/glibmm2/glib/glibmm/ustring.h671
-rw-r--r--libs/glibmm2/glib/glibmm/utility.cc11
-rw-r--r--libs/glibmm2/glib/glibmm/utility.h13
-rw-r--r--libs/glibmm2/glib/glibmm/value.cc10
-rw-r--r--libs/glibmm2/glib/glibmm/value.h10
-rw-r--r--libs/glibmm2/glib/glibmm/value_custom.cc10
-rw-r--r--libs/glibmm2/glib/glibmm/value_custom.h10
-rw-r--r--libs/glibmm2/glib/glibmm/wrap.cc15
-rw-r--r--libs/glibmm2/glib/glibmm/wrap.h20
-rw-r--r--libs/glibmm2/glib/glibmm/wrap_init.cc3
-rw-r--r--libs/glibmm2/glib/glibmm/wrap_init.h10
-rw-r--r--libs/glibmm2/glib/glibmmconfig.h1
-rw-r--r--libs/glibmm2/glib/glibmmconfig.h.in1
-rw-r--r--libs/glibmm2/glib/src/Makefile.am1
-rw-r--r--libs/glibmm2/glib/src/Makefile.in98
-rw-r--r--libs/glibmm2/glib/src/Makefile_list_of_hg.am_fragment7
-rw-r--r--libs/glibmm2/glib/src/checksum.ccg53
-rw-r--r--libs/glibmm2/glib/src/checksum.hg116
-rw-r--r--libs/glibmm2/glib/src/convert.ccg15
-rw-r--r--libs/glibmm2/glib/src/convert.hg10
-rw-r--r--libs/glibmm2/glib/src/date.ccg27
-rw-r--r--libs/glibmm2/glib/src/date.hg77
-rw-r--r--libs/glibmm2/glib/src/fileutils.ccg14
-rw-r--r--libs/glibmm2/glib/src/fileutils.hg8
-rw-r--r--libs/glibmm2/glib/src/glib_docs.xml16146
-rw-r--r--libs/glibmm2/glib/src/glib_docs_override.xml64
-rw-r--r--libs/glibmm2/glib/src/glib_enums.defs176
-rw-r--r--libs/glibmm2/glib/src/glib_functions.defs1043
-rw-r--r--libs/glibmm2/glib/src/gmodule_enums.defs2
-rw-r--r--libs/glibmm2/glib/src/gmodule_functions.defs6
-rw-r--r--libs/glibmm2/glib/src/gobject_enums.defs19
-rw-r--r--libs/glibmm2/glib/src/gobject_functions.defs502
-rw-r--r--libs/glibmm2/glib/src/iochannel.ccg51
-rw-r--r--libs/glibmm2/glib/src/iochannel.hg10
-rw-r--r--libs/glibmm2/glib/src/keyfile.ccg273
-rw-r--r--libs/glibmm2/glib/src/keyfile.hg20
-rw-r--r--libs/glibmm2/glib/src/markup.ccg16
-rw-r--r--libs/glibmm2/glib/src/markup.hg8
-rw-r--r--libs/glibmm2/glib/src/module.ccg8
-rw-r--r--libs/glibmm2/glib/src/module.hg8
-rw-r--r--libs/glibmm2/glib/src/nodetree.ccg1
-rw-r--r--libs/glibmm2/glib/src/nodetree.hg760
-rw-r--r--libs/glibmm2/glib/src/optioncontext.ccg15
-rw-r--r--libs/glibmm2/glib/src/optioncontext.hg14
-rw-r--r--libs/glibmm2/glib/src/optionentry.ccg47
-rw-r--r--libs/glibmm2/glib/src/optionentry.hg21
-rw-r--r--libs/glibmm2/glib/src/optiongroup.ccg11
-rw-r--r--libs/glibmm2/glib/src/optiongroup.hg10
-rw-r--r--libs/glibmm2/glib/src/regex.ccg8
-rw-r--r--libs/glibmm2/glib/src/regex.hg12
-rw-r--r--libs/glibmm2/glib/src/shell.ccg8
-rw-r--r--libs/glibmm2/glib/src/shell.hg10
-rw-r--r--libs/glibmm2/glib/src/signalproxy.h.m48
-rw-r--r--libs/glibmm2/glib/src/spawn.ccg186
-rw-r--r--libs/glibmm2/glib/src/spawn.hg386
-rw-r--r--libs/glibmm2/glib/src/template.macros.m48
-rw-r--r--libs/glibmm2/glib/src/thread.ccg8
-rw-r--r--libs/glibmm2/glib/src/thread.hg20
-rw-r--r--libs/glibmm2/glib/src/unicode.ccg8
-rw-r--r--libs/glibmm2/glib/src/unicode.hg12
-rw-r--r--libs/glibmm2/glib/src/uriutils.ccg45
-rw-r--r--libs/glibmm2/glib/src/uriutils.hg93
-rw-r--r--libs/glibmm2/glib/src/value_basictypes.cc.m410
-rw-r--r--libs/glibmm2/glib/src/value_basictypes.h.m410
-rw-r--r--libs/glibmm2/scripts/Makefile.in15
-rwxr-xr-xlibs/glibmm2/scripts/depcomp33
-rw-r--r--libs/glibmm2/scripts/dk-feature.m4101
-rw-r--r--libs/glibmm2/scripts/macros.m42
-rw-r--r--libs/glibmm2/tools/Makefile.am2
-rw-r--r--libs/glibmm2/tools/Makefile.in38
-rw-r--r--libs/glibmm2/tools/enum.pl2
-rw-r--r--libs/glibmm2/tools/extra_defs_gen/Makefile.am10
-rw-r--r--libs/glibmm2/tools/extra_defs_gen/Makefile.in64
-rw-r--r--libs/glibmm2/tools/extra_defs_gen/generate_defs_gio.cc72
-rw-r--r--libs/glibmm2/tools/extra_defs_gen/generate_defs_glib.cc6
-rw-r--r--libs/glibmm2/tools/extra_defs_gen/generate_extra_defs.cc67
-rw-r--r--libs/glibmm2/tools/extra_defs_gen/generate_extra_defs.h10
-rw-r--r--libs/glibmm2/tools/m4/Makefile.am2
-rw-r--r--libs/glibmm2/tools/m4/Makefile.in38
-rw-r--r--libs/glibmm2/tools/m4/Makefile_list_of_sources.am_fragment2
-rw-r--r--libs/glibmm2/tools/m4/base.m42
-rw-r--r--libs/glibmm2/tools/m4/class_gobject.m417
-rw-r--r--libs/glibmm2/tools/m4/class_interface.m425
-rw-r--r--libs/glibmm2/tools/m4/class_shared.m422
-rw-r--r--libs/glibmm2/tools/m4/convert_gio.m4123
-rw-r--r--libs/glibmm2/tools/m4/convert_glib.m411
-rw-r--r--libs/glibmm2/tools/m4/convert_gtkmm.m43
-rw-r--r--libs/glibmm2/tools/m4/ctor.m414
-rw-r--r--libs/glibmm2/tools/pm/DocsParser.pm24
-rw-r--r--libs/glibmm2/tools/pm/Makefile.am2
-rw-r--r--libs/glibmm2/tools/pm/Makefile.in36
-rw-r--r--libs/glibmm2/tools/pm/Output.pm6
211 files changed, 26318 insertions, 4008 deletions
diff --git a/libs/glibmm2/COPYING.tools b/libs/glibmm2/COPYING.tools
new file mode 100644
index 0000000000..d511905c16
--- /dev/null
+++ b/libs/glibmm2/COPYING.tools
@@ -0,0 +1,339 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/libs/glibmm2/ChangeLog b/libs/glibmm2/ChangeLog
index af229af44e..0c5c955a49 100644
--- a/libs/glibmm2/ChangeLog
+++ b/libs/glibmm2/ChangeLog
@@ -1,4 +1,2272 @@
-2.14.2:
+2.20.0
+
+2009-03-15 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * configure.in: bump rev to 2.20.0
+ * NEWS: update for release
+
+2009-03-09 Daniel Elstner <danielk@openismus.com>
+
+ * tools/extra_defs_gen/generate_extra_defs.cc (get_properties):
+ Replace nested double quotes in the docs string by single quotes
+ to ease the parsing pain of gmmproc.
+
+2.19.8:
+
+2009-02-23 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/gio_enums.defs: Regenerated, adding
+ FILE_CREATE_REPLACE_DESTINATION and Error::TOO_MANY_OPEN_FILES.
+ * gio/src/gio_signals.defs: Regenerated.
+ * go/src/mountoperation: Added the aborted signal.
+
+2009-02-22 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/drive.hg: Remove extra ;s on the new signalsl, to avoid
+ compiler warnings.
+
+2.19.3
+
+2009-02-20 Jonathon Jongsma <jonathon@quotidian.org>
+
+ * docs/reference/Makefile.am: fix distcheck issue
+
+2009-02-20 Jonathon Jongsma <jonathon@quotidian.org>
+
+ * NEWS:
+ * configure.in: update for 2.19.3 release
+
+2009-02-17 Daniel Elstner <danielk@openismus.com>
+
+ * glib/glibmm/debug.h: Remove mention of G_GNUC_PRETTY_FUNCTION in
+ comment because a code maintenance tool of André Klapper complained
+ about it.
+ * glib/glibmm/objectbase.cc: Likewise.
+
+2009-02-06 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/gio_methods.defs: Regenerated.
+
+ * gio/src/filterinputstream.hg: Added get/set_close_base_stream().
+ * gio/src/filteroutputstream.hg: Added get/set_close_base_stream().
+ * gio/src/unixinputstream.hg: Added get_fd() and get/set_close_fd().
+ * gio/src/unixoutputstream.hg: Added get_fd() and get/set_close_fd().
+
+ * gio/src/datainputstream.[hg|ccg]: Added read_until_async(),
+ read_until_finish(), read_line_async() and read_line_finish().
+ Added documentation for read_until() and read_line().
+
+2009-02-06 Murray Cumming <murrayc@murrayc.com>
+
+ * tools/extra_defs_gen/generate_defs_gio.cc: Added unix types.
+ * gio/src/gio_signals.defs: Regenerated.
+ * gio/src/bufferedinputstream.hg: Added buffer_size property.
+ * gio/src/bufferedoutputstream.hg: Added buffer_size and auto_grow
+ properties.
+ * gio/src/datainputstream.hg: Added byte_order and newline_type
+ properties.
+ * gio/src/dataoutputstream.hg: Added byte_order property.
+ * gio/src/filterinputstream.hg: Added close_base_ stream property.
+ * gio/src/filteroutputstream.hg:
+ * gio/src/unixinputstream.hg: Added fd and close_fd properties.
+ * gio/src/unixoutputstream.hg: Added fd and close_fd properties.
+
+2009-02-05 Theppitak Karoonboonyanan <thep@linux.thai.net>
+
+ * docs/reference/Doxyfile.in:
+ * docs/reference/Makefile.am: Allow glibmm to build outside the source
+ tree. Bug #570216
+
+2009-02-05 Murray Cumming <murrayc@murrayc.com>
+
+ * glib/src/regex.hg: create(): For the version when
+ GLIBMM_EXCEPTIONS_ENABLED is not defined, do not specify default
+ parameter values because we have an extra error parameter.
+ Bug #570648 (Bernd Buschinski)
+
+2009-01-20 Deng Xiyue <manphiz@gmail.com>
+
+ * Change license header to mention Lesser General Public License
+ version 2.1 instead of Library General Public License, to be
+ consistent with COPYING.
+
+2.19.2:
+
+2009-01-19 Tao Wang <dancefire@gmail.com>
+
+ * glib/src/nodetree.hg: Do not use a non-ASCII dash character, to
+ avoid the MSVC++ warning C4819 with Visual Studio 2008.
+ Bug #568072
+
+2009-01-09 Murray Cumming <murrayc@murrayc.com>
+
+ * glib/glibmm/wrap.h: wrap_auto_interface<>(): Add a warning to give a
+ clue when the dynamic_cast fails, for instance if you are doing some
+ incorrect multiple inheritance.
+
+2009-01-08 Daniel Elstner <danielk@openismus.com>
+
+ * glib/glibmm/ustring.h (ustring::compose): Add an overload which
+ takes only a format string and no arguments to be substituted. It
+ is essentially a null-operation as long as the format string does
+ not contain any invalid argument references. Bug #506394.
+
+2009-01-06 Jonathon Jongsma <jonathon@quotidian.org>
+
+ * glib/src/uriutils.ccg: fix a memory leak in the uri utility functions
+ caused by not freeing the returned C string. Bug #566845 (Jason Kasper)
+
+2009-01-03 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/file.ccg: Added implementation of the
+ make_directory_with_parents() method overload that takes no parameter.
+ Bug #566003 (Philip Belemezov).
+
+2008-12-24 Murray Cumming <murrayc@murrayc.com>
+
+ * glib/src/spawn.ccg:
+ * glib/src/spawn.hg: Added Glib::spawn_*() alternative API for when
+ GLIBMM_EXCEPTIONS_ENABLED is not enabled (when compiling without
+ C++ exceptions.)
+ Bug #565487
+ (Jonathon Jongsma)
+
+2008-12-14 Jonathon Jongsma <jonathon@quotidian.org>
+
+ * NEWS: update for follow-up release
+
+2008-12-14 Jonathon Jongsma <jonathon@quotidian.org>
+
+ * configure.in: bump to 2.19.1
+
+2008-12-14 Jonathon Jongsma <jonathon@quotidian.org>
+
+ * gio/src/drive.hg: Wrap new signals 'changed', 'disconnected', and
+ 'eject_button' with the no_default_handler option so that we don't break ABI
+ by adding new virtual functions
+
+=== 2.19.0 ===
+
+2008-12-12 Jonathon Jongsma <jonathon@quotidian.org>
+
+ * NEWS: update for release
+
+2008-12-12 Jonathon Jongsma <jonathon@quotidian.org>
+
+ * tests/giomm_ioerror/main.cc:
+ * tests/giomm_simple/main.cc: use common filenames so that people other than
+ murrayc can run the tests without errors
+
+2008-12-12 Jonathon Jongsma <jonathon@quotidian.org>
+
+ * gio/src/memoryoutputstream.hg: Fix a copy-paste error where I accidentally
+ left a FilterOutputStream type in
+
+2008-12-02 Jonathon Jongsma <jonathon@quotidian.org>
+
+ * gio/src/memoryoutputstream.ccg:
+ * gio/src/memoryoutputstream.hg: Added MemoryOutputStream, but needs a bit
+ of work on the constructor yet
+
+2008-12-02 Jonathon Jongsma <jonathon@quotidian.org>
+
+ * gio/src/Makefile_list_of_hg.am_fragment:
+ * gio/src/emblem.ccg:
+ * gio/src/emblem.hg:
+ * gio/src/emblemedicon.ccg:
+ * gio/src/emblemedicon.hg:
+ * tools/m4/convert_gio.m4: add Emblem and EmblemedIcon classes
+
+2008-12-02 Jonathon Jongsma <jonathon@quotidian.org>
+
+ * tools/m4/convert_glib.m4: add a conversion for Glib::KeyFile&
+ * gio/src/desktopappinfo.hg: wrap the new create_from_keyfile() function.
+ In addition, I removed the _WRAP_CTOR and _WRAP_CREATE usage from the
+ desktop_id constructor and wrapped all of the static create* functions using
+ _WRAP_METHOD since these functions do a lot of error handling and can fail
+ to create an object under some circumstances.
+
+2008-12-02 Jonathon Jongsma <jonathon@quotidian.org>
+
+ * docs/reference/Makefile.am: rebuild docs when a giomm header file is
+ changed (similar to how we handle glibmm)
+
+2008-12-02 Jonathon Jongsma <jonathon@quotidian.org>
+
+ * gio/giomm/contenttype.cc:
+ * gio/giomm/contenttype.h: add content_type_from_mime_type()
+
+2008-12-02 Jonathon Jongsma <jonathon@quotidian.org>
+
+ Wrap a bunch of new / missed API
+
+ * gio/src/appinfo.hg:
+ * gio/src/appinfo.ccg: AppInfo::get_commandline(), can_delete(), do_delete()
+ (need better name?), reset_type_associations(), launch_default_for_uri()
+ * gio/src/cancellable.hg: add commented-out make_pollfd() since I'm not sure
+ yet whether it's useful with the C++ API or not
+ * gio/src/drive.hg: Added signals 'changed', 'disconnected', and
+ 'eject_button'
+ * gio/src/icon.hg:
+ * gio/src/icon.ccg: Added Icon::create(string) and Icon::to_string()
+ * gio/src/mount.hg:
+ * gio/src/mount.ccg: Added Mount::guess_content_type_sync(), is_shadowed(),
+ shadow(), and unshadow()
+
+2008-12-01 Jonathon Jongsma <jonathon@quotidian.org>
+
+ * configure.in: bump requirement to glib 2.19.x
+ * gio/src/gio_docs.xml:
+ * gio/src/gio_enums.defs:
+ * gio/src/gio_methods.defs:
+ * gio/src/gio_signals.defs:
+ * glib/src/glib_docs.xml:
+ * glib/src/glib_enums.defs:
+ * glib/src/glib_functions.defs:
+ * glib/src/gmodule_enums.defs:
+ * glib/src/gmodule_functions.defs:
+ * glib/src/gobject_enums.defs:
+ * glib/src/gobject_functions.defs: update the .defs to start on 2.19.x API
+
+2008-12-01 Jonathon Jongsma <jonathon@quotidian.org>
+
+ * Makefile.am: add some convenience rules for generating the .defs files
+
+2008-09-22 Dave Foster <daf@minuslab.net>
+
+ * glib/glibmm/main.h:
+ * glib/glibmm/main.cc: Added SignalIdle::connect_once,
+ SignalTimeout::connect_once, and SignalTimeout::connect_seconds_once.
+
+2008-12-10 Przemysław Grzegorczyk <pgrzegorczyk@gmail.com>
+
+ * Cleaned up glib includes since in the future, only glib.h (and
+ glib-object.h, etc) will be allowed to be included directly.
+ Bug #563987
+
+2008-12-01 Hubert Figuiere <hub@figuiere.net>
+
+ * glib/src/markup.ccg: Change the way unused variables
+ are marked. Bug #562716
+
+2008-11-29 Hubert Figuiere <hub@figuiere.net>
+
+ * glib/src/nodetree.hg: Fix -Wshadow warnings. Bug #555743.
+
+2008-10-20 Jonathon Jongsma <jonathon@quotidian.org>
+
+ * NEWS:
+ * configure.in: bump version to 2.18.1, prepare NEWS for release
+
+2008-10-20 Jonathon Jongsma <jonathon@quotidian.org>
+
+ * Makefile.am: updated the release-announce template
+
+2008-10-16 Armin Burgmeier <armin@openismus.com>
+
+ * glib/glibmm/ustring.h: Fixed the const char* specialization for
+ Stringify<> by making the string_ member a const Glib::ustring instead
+ of a const Glib::ustring&. Also enabled the char[N] specialization for
+ string literals.
+
+ * tests/glibmm_ustring_compose/main.cc: Enabled the test for the
+ specialization for string literals.
+ Bug #506410 (Szilárd Pfeiffer)
+
+2008-10-15 José Alburquerque <jaalburqu@svn.gnome.org>
+
+ * tools/extra_defs_gen/generate_extra_defs.cc: Modify signal and props
+ generation tool to generate interface signals.
+
+2008-10-15 Armin Burgmeier <armin@openismus.com>
+
+ * gio/src/fileenumerator.hg:
+ * gio/src/fileenumerator.ccg: Made FileEnumerator::next_file not add
+ an additional reference to the return value, because the C version
+ creates a new object. Also, changed ownership of the list returned by
+ FileEnumerator::next_files_finish to be deep instead of shallow. Bug
+ #556387.
+
+2008-10-09 Armin Burgmeier <armin@openismus.com>
+
+ * gio/src/fileinfo.hg: Rename FILE_TYPE_UNKNOWN to FILE_TYPE_NOT_KNOWN
+ because the former is a #define on Windows in winbase.h, included from
+ windows.h. Keep FILE_TYPE_UNKNOWN for compatibility if it is not
+ already defined.
+
+2008-10-09 Armin Burgmeier <armin@openismus.com>
+
+ * MSVC_Net2008/Makefile.am: Removed README from EXTRA_DIST to fix
+ `make dist'.
+
+2008-10-08 Armin Burgmeier <armin@openismus.com>
+
+ * MSVC_Net2005/examples/dispatcher2/dispatcher2.vcproj:
+ * MSVC_Net2005/examples/dispatcher/dispatcher.vcproj:
+ * MSVC_Net2005/examples/options/options.vcproj:
+ * MSVC_Net2005/examples/thread/thread.vcproj:
+ * MSVC_Net2005/examples/thread_pool/thread_pool.vcproj:
+ * MSVC_Net2005/giomm/giomm.vcproj:
+ * MSVC_Net2005/glibmm/glibmm.vcproj: Adapt to the new MSVC++ DLL
+ naming convention.
+
+ * MSVC_Net2008/: Added MSVC 2008 project files.
+
+ * configure.in:
+ * Makefile.am: Add the new files to the build.
+
+2008-10-04 Jonathon Jongsma <jonathon@quotidian.org>
+
+ * gio/src/error.hg: add a workaround for the HOST_NOT_FOUND symbol
+ conflicts, as suggested by Szilárd Pfeiffer in Bug #529496
+ * tests/giomm_ioerror/main.cc: add a test for this
+
+2008-09-19 Armin Burgmeier <armin@openismus.com>
+
+ * tools/pm/DocsParser.pm (convert_tags_to_doxygen): Keep @param and
+ @throws intact, so these can be used in *_docs_override_xml. Bug
+ #539891.
+
+2008-09-22 Armin Burgmeier <armin@arbur.net>
+
+ * MSVC_Net2005/glibmm/glibmm.vcproj: Added uriutils.cc and nodetree.cc
+ to the project.
+
+2008-09-22 Armin Burgmeier <armin@arbur.net>
+
+ * MSVC_Net2005/examples/dispatcher2/dispatcher2.vcproj:
+ * MSVC_Net2005/examples/dispatcher/dispatcher.vcproj:
+ * MSVC_Net2005/examples/markup/markup.vcproj:
+ * MSVC_Net2005/examples/options/options.vcproj:
+ * MSVC_Net2005/examples/thread/thread.vcproj:
+ * MSVC_Net2005/examples/thread_pool/thread_pool.vcproj:
+ * MSVC_Net2005/giomm/giomm.vcproj:
+ * MSVC_Net2005/glibmm/glibmm.vcproj:
+ * MSVC_Net2005/tests/giomm_simple/giomm_simple.vcproj:
+ * MSVC_Net2005/tests/glibmm_value/glibmm_value.vcproj: Fixed the MSVC
+ build of the examples and tests if configure did not run before.
+
+=== 2.18.0 ===
+
+2008-09-21 Jonathon Jongsma <jonathon@quotidian.org>
+
+ * Makefile.am: fix a minor issue in the release target
+
+2008-09-21 Jonathon Jongsma <jonathon@quotidian.org>
+
+ * NEWS: Add news for 2.18 release
+ * configure.in: bump version number for release
+ * Makefile.am: update release mail template slightly
+
+2008-09-08 Murray Cumming <murrayc@murrayc.com>
+
+ * COPYING.tools:
+ * Makefile.am: Added COPYING.tools with the GPL because the tools/*.cc
+ file is GPL. Bug #550789.
+
+=== 2.17.3 ===
+
+2008-09-03 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * NEWS: update for release
+ * configure.in: bump version for release
+
+2008-08-26 Szilárd Pfeiffer <szilard.pfeiffer@gmail.com>
+
+ * glib/src/nodetree.hg: Implemented clone function to merge the
+ constructors into that and fixed clear function the operator=
+ function.
+ * tests/glibmm_nodetree/main.cc: Simplified the test case.
+ Bug #547901.
+
+2008-08-27 Armin Burgmeier <armin@arbur.net>
+
+ * MSVC_Net2005/glibmm/glibmm.rc.in:
+ * MSVC_Net2005/giomm/giomm.rc.in: Replaced #include "afxres.h" by
+ #include <windows.h> which does the job equally well, and allows
+ compilation with the freely available Visual Studio Express compiler.
+
+2008-08-27 Armin Burgmeier <armin@arbur.net>
+
+ * glib/glibmm/ustring.cc: Only include config.h when HAVE_CONFIG_H is
+ defined, to allow building glibmm with MSVC without having generated
+ config.h before. The only thing config.h is used for is the
+ SIZEOF_WCHAR_T define anyway, and this is not needed for a MSVC build.
+ Bug #549343.
+
+2008-08-26 Murray Cumming <murrayc@murrayc.com>
+
+ * tests/glibmm_nodetree/main.cc: Actually use the copy constructor (or operator=),
+ instead of just copying the pointer.
+
+2008-08-26 Murray Cumming <murrayc@murrayc.com>
+
+ * glib/src/nodetree.hg: Added an operator=() because we have a copy constructor.
+ Moved some code into a private clear() method so we can reuse it.
+
+2008-08-26 Szilárd Pfeiffer <szilard.pfeiffer@gmail.com>
+
+ * glib/src/nodetree.hg: Added a copy constructor. Therefore, take
+ store the data by value instead of reference, taking it by const reference.
+ * tests/glibmm_nodetree/main.cc: Test the copy constructor.
+ Bug #547909.
+
+2008-08-15 Szilárd Pfeiffer <szilard.pfeiffer@gmail.com>
+
+ * glib/src/nodetree.hg: Fixed pointer handling problem in find_child.
+ Bug #547909.
+
+2008-08-15 Szilárd Pfeiffer <szilard.pfeiffer@gmail.com>
+
+ * tests/glibmm_nodetree/main.cc: Implement the C++ version of GNode test
+ case.
+ Bug #547889
+
+2008-07-29 Szilárd Pfeiffer <szilard.pfeiffer@gmail.com>
+
+ * glib/src/nodetree.hg: Use const_cast<> in the necessary const member
+ functions instead of gobj() to fix the compilation when using these.
+ Bug #546485.
+
+2008-08-08 Armin Burgmeier <armin@arbur.net>
+
+ * MSVC_Net2005/: Moved from MSVC_Net2003
+
+ * MSVC_Net2005/glibmm.sln:
+ * MSVC_Net2005/glibmm/glibmm.vcproj:
+ * MSVC_Net2005/examples/dispatcher/dispatcher.vcproj: Converted to
+ project files for Visual Studio 2005.
+
+ * MSVC_Net2005/glibmm/glibmm.rc.in: Removed the #include "resource.h"
+ since there is no resource.h in the project, and the resource still
+ seems to compile.
+
+ * MSVC_Net2005/giomm/giomm.rc.in:
+ * MSVC_Net2005/giomm/giomm.vcproj:
+ * MSVC_Net2005/giomm/Makefile.am: Added giomm to the MSVC project.
+
+ * MSVC_Net2005/tests/giomm_simple/giomm_simple.vcproj:
+ * MSVC_Net2005/tests/giomm_simple/Makefile.am: Added giomm_simple to
+ the MSVC project.
+
+ * MSVC_Net2005/tests/Makefile.am:
+ * MSVC_Net2005/Makefile.am:
+ * Makefile.am:
+ * configure.in: Adapted build files.
+
+=== 2.17.2 ===
+
+2008-08-06 Jonathon Jongsma <jonathon.jongsma@collabora.co.uk>
+
+ * NEWS: update for 2.17.2
+ * configure.in: bump version
+
+2008-08-06 Murray Cumming <murrayc@murrayc.com>
+
+ * configure.in:
+ * tests/Makefile.am:
+ * tests/glibmm_ustring_compose/main.cc: Added a test case.
+ * glib/glibmm/ustring.h: Added a ustring::Stringify<>
+ template specialization so that ustring::compose() works with
+ const char* arguments, though it still needs to be fixed to
+ work for string literals.
+ Bug #506410 (Szilárd Pfeiffer).
+
+2008-08-06 Murray Cumming <murrayc@murrayc.com>
+
+ * glib/src/nodetree.hg: Make gobject_ and data_ private,
+ to remove them from protected API. Patch from Szilárd Pfeiffer.
+ Bug #546485.
+ Make gobj() inline.
+
+2008-08-04 Murray Cumming <murrayc@murrayc.com>
+
+ * glib/glibmm/propertyproxy.h: Added some API documentation
+ about the need to register a new GType when adding properties.
+ Bug #523043 (Moritz Ulrich).
+
+2008-08-02 Murray Cumming <murrayc@murrayc.com>
+
+ * docs/reference/glibmm_header.html_fragment: Change the Main
+ Page link to link to gtkmm.org/documentation.shtml
+
+2008-07-29 Murray Cumming <murrayc@murrayc.com>
+
+ * glib/glibmm/Makefile.am: Remove the mention of tree.cc here to
+ fix the build. Generated files should never be menioned there.
+
+2008-07-29 Murray Cumming <murrayc@murrayc.com>
+
+ * glib/src/nodetree.hg: Hand-code the TraverseType enum, to add
+ a prefix to the values.
+ * tests/glibmm_nodetree/main.cc: Adapted.
+
+2008-07-29 Murray Cumming <murrayc@murrayc.com>
+
+ * glib/src/nodetree.hg: find(), find_child(), traverse(), foreach():
+ Rearrange the parameters so we can have default values.
+ * tests/glibmm_nodetree/main.cc: Adapted.
+
+2008-07-29 Murray Cumming <murrayc@murrayc.com>
+
+ * glib/src/nodetree.hg: Move the TraverseFlags enum into
+ the class, and hand-code it to avoid problems with _WRAP_ENUM().
+ * tests/glibmm_nodetree/main.cc: Adapted.
+ Bug #545050 (Szilárd Pfeiffer).
+
+2008-07-29 Murray Cumming <murrayc@murrayc.com>
+
+ * configure.in:
+ * glib/glibmm.h:
+ * glib/src/Makefile_list_of_hg.am_fragment:
+ * glib/src/nodetree.hg:
+ * glib/src/tree.hg: Renamed to nodetree.hg
+ * tests/Makefile.am:
+ * tests/glibmm_tree/Makefile.am:
+ * tests/glibmm_tree/main.cc: Renamed to glibmm_nodetree/
+
+2008-07-29 Murray Cumming <murrayc@murrayc.com>
+
+ * glib/src/tree.hg: Renamed Glib::Tree to Glib::NodeTree to avoid
+ confusion with GTree, because we actually wrap GNode, but do not like
+ that name. As discussed in bug #520778.
+ * tests/glibmm_tree/main.cc: Adapted.
+
+2008-07-29 Murray Cumming <murrayc@murrayc.com>
+
+ * Makefile.am: Build the docs at the end, after the tests, to
+ save time when testing API changes.
+
+ * glib/src/tree.hg: Const corrections: Add const and non-const versions
+ of many methods, instead of returning non-const objects from const methods.
+ find().
+ Changed max_height() to get_max_height() for consistency.
+ * tests/glibmm_tree/main.cc: Adapted to changed API.
+
+2008-07-29 Szilárd Pfeiffer <szilard.pfeiffer@gmail.com>
+
+ * glib/src/tree.hg: Make the callbacks take a Tree<> instead of just
+ the data, so they can use methods on the tree (which can be a node
+ in the tree).
+ gobject_: Make this protected.
+ Provide the this pointer as data to g_node_new() so we can retrieve
+ it later.
+ Removed children_ and parent_ because we don't need a separate store now that
+ we can get the C++ instance from the gobject instance.
+ owns_gobject_: Removed because it is was always true, so the gobject was
+ always destroyed (and still is).
+ * tests/glibmm_tree/main.cc: Updated for the changed API.
+ Bug #520778.
+
+2008-07-25 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/volumemonitor.hg: Added the drive_eject_button signal.
+
+2008-07-25 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/gio_enums.defs: Hacked in a replacement
+ enum for Gio::Error::HOST_NOT_FOUND as
+ Gio::Error::HOST_WAS_NOT_FOUND, to avoid a clash with
+ a netdb.h define.
+ Bug #529496.
+ * configure.in:
+ * tests/Makefile.am:
+ * tests/giomm_ioerror/Makefile.am:
+ * tests/giomm_ioerror/main.cc: Added a test to make sure
+ that our hacked-in enum value stays hacked in.
+
+2008-07-25 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/gio_enums.defs:
+ * gio/src/gio_methods.defs:
+ * gio/src/gio_signals.defs: Regenerated.
+ * gio/src/mount.hg: Corrected an _IGNORE().
+ * gio/giomm/contenttype.cc:
+ * gio/giomm/contenttype.h: Added content_type_guess_for_tree().
+
+2008-07-23 Damien Carbery <damien.carbery@sun.com>
+
+ * scripts/macros.m4: Change grep to use -i when checking for GNU m4.
+ This fixes the test on Solaris. Bug #423990.
+
+=== 2.17.1 ===
+
+2008-07-16 Jonathon Jongsma <jonathon.jongsma@collabora.co.uk>
+
+ * NEWS: update for new release
+
+2008-07-16 Jonathon Jongsma <jonathon.jongsma@collabora.co.uk>
+
+ * configure.in: bump version and min required glib version
+
+2008-07-16 Jens Georg <mail@jensge.org>
+
+ * MSVC_Net2003/glibmm/glibmm.vcproj: Mention new source files
+ for regex and keyfile.
+ Bug #543292.
+
+2008-07-16 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/file.ccg:
+ * gio/src/file.hg: Added make_directory_with_parents(),
+ query_file_type(), monitor().
+ * gio/src/fileenumerator.ccg:
+ * gio/src/fileenumerator.hg: Added get_container().
+ * gio/src/mount.hg: Added guess_content_type() and
+ guess_content_type_finish().
+ * gio/src/themedicon.hg: Added prepend_name().
+ * gio/src/volume.hg: Added get_activation_root().
+ * tools/m4/convert_gio.m4: Added a necessary conversion.
+
+2008-07-15 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/gio_methods.defs:
+ * glib/src/glib_functions.defs: Regenerated with h2def.py
+ * glib/src/checksum.hg: Added reset().
+
+2008-07-15 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/appinfo.ccg:
+ * gio/src/appinfo.hg: Avoid a circular include to fix the build.
+
+2008-07-15 Benjamin Herr <ben@0x539.de>
+
+ * gio/src/volumemonitor.hg: Removed some unnecessary ; characters,
+ to avoid warnings.
+ Bug #542929.
+
+2008-07-14 Murray Cumming, <murrayc@murrayc.com>
+
+ * tools/m4/convert_gio.m4:
+ * gio/src/appinfo.hg: get_display(), get_startup_notify_id():
+ Take a list of Gio::File, not filepath string. Now that the C API is
+ properly documented we know that this is correct. It's an API break
+ but this function could nothave worked before.
+
+ * glib/src/glib_docs.xml: Regenerate.
+ * glib/src/glib_docs_override.xml: Add overrides for
+ g_key_file_load_from_file() and g_key_file_get_value() to mention
+ exceptions.
+
+2008-06-30 Johannes Schmid <jhs@gnome.org>
+
+ * glib/glibmm/containerhandle_shared.h:
+ Improve documentation of Glib::OwnershipType (#540875)
+
+2008-07-02 Armin Burgmeier <armin@arbur.net>
+
+ * gio/src/file.ccg: Pass NULL to the underlying C function for the
+ etags parameter in the various replace_contents functions. Also bug
+ #540656.
+
+2008-06-28 Armin Burgmeier <armin@arbur.net>
+
+ * gio/src/file.ccg: Pass NULL to the underlying C function for the
+ etags parameter in various *_replace functions. Otherwise, existing
+ files are not overwritten. Bug #540656.
+
+2008-06-23 Murray Cumming <murrayc@murrayc.com>
+
+ * configure.in:
+ * examples/Makefile.am:
+ * examples/keyfile/Makefile.am:
+ * examples/keyfile/example.ini:
+ * examples/keyfile/main.cc: Added a little KeyFile example. I am
+ surprised that we do not seem to have one somewhere already.
+ I need to move all these glibmm examples into gtkmm-documentation some
+ time.
+
+2008-06-19 Murray Cumming <murrayc@murrayc.com>
+
+ * glib/src/tree.hg: Some whitespace changes. And more use of typedefs
+ to simplify the code.
+
+2008-06-19 Levi Bard <taktaktaktaktaktaktaktaktaktak@gmail.com>
+
+ * glib/src/tree.hg: Some minor changes to deal with TODOs.
+ Bug #538803.
+
+2008-06-17 Chris Vine <chris@cvine.freeserve.co.uk>
+
+ * glib/src/thread.hg: document that the slot object passed to
+ Glib::Thread::create() should not represent a non-static method of
+ a class derived from sigc::trackable.
+ See bug #512348.
+
+=== 2.17.0 ===
+
+2008-06-16 Jonathon Jongsma <jonathon.jongsma@collabora.co.uk>
+
+ * NEWS:
+ * configure.in: update for new release
+
+2008-06-13 Levi Bard <taktaktaktaktaktaktaktaktaktak@gmail.com>
+
+ * glib/glibmm.h:
+ * glib/glibmm/Makefile.am:
+ * glib/src/Makefile_list_of_hg.am_fragment:
+ * glib/src/tree.ccg:
+ * glib/src/tree.hg: Added Glib::Tree, a wrapper for GNode, providing
+ an N-ary tree container, more or less like a standard C++ container.
+ * configure.in:
+ * tests/Makefile.am: Added some test code for this new API.
+ Bug #520778
+
+2008-06-13 Murray Cumming <murrayc@murrayc.com>
+
+ * glib/src/date.hg: Used @newin2p18 on the new API and made some
+ slight corrections to the new reference documentation comments.
+
+2008-06-11 José Alburquerque <jaalburqu@svn.gnome.org>
+
+ * tests/glibmm_date/Makefile.am: Contents of files in
+ tests/glibmm_date/ (main.cc and Makefile.am) were duplicated when I
+ applied patch in bug #536721 to already existing files before 6/9
+ commit. Fixed main.cc already, so now repaired Makefile.am.
+
+2008-06-10 José Alburquerque <jaalburqu@svn.gnome.org>
+
+ * tests/glibmm_date/main.cc: Removed duplicate code so test can
+ compile.
+
+2008-06-09 José Alburquerque <jaalburqu@svn.gnome.org>
+
+ * glib/src/date.ccg:
+ * glib/src/date.hg: Added copy constructor and assignment operator;
+ Made GDate constructor visible.
+
+ * configure.in:
+ * tests/Makefile.am:
+ * tests/glibmm_date/Makefile.am:
+ * tests/glibmm_date/main.cc: Added simple test to test Glib::Date.
+
+This is svn trunk for new API, wrapping glib 2.17/18. See also the glibmm-2-16 branch.
+
+2008-04-25 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * gio/src/drive.hg:
+ * gio/src/volume.hg: add TypeTraits implementations for Drive and Volume
+ similar to the one added for Mount.
+
+2008-04-23 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * gio/src/mount.hg: Add a TypeTraits implementation for
+ Glib::RefPtr<Gio::Mount> so that we can wrap implementor types that don't
+ have a wrapper (e.g. GHalMount in gvfs). Fixes bug #529533
+
+2008-04-24 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * glib/glibmm/wrap.cc: Improve the error message when failing to wrap a
+ particular type of object to give a hint about initializing the library
+ since we get so many questions about this (bug #529648)
+
+2.16.2:
+
+2008-04-18 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * NEWS:
+ * configure.in: bump to 2.16.2 for release
+
+2008-04-16 Murray Cumming <murrayc@murrayc.com>
+
+ * glib/src/spawn.hg: Moved the enum back out of the doxygen group,
+ because that results in the enums group being inside the spawn group.
+
+2008-04-16 Murray Cumming <murrayc@murrayc.com>
+
+ * glib/src/spawn.hg: Addded doxygen documentation based on the
+ C documentation.
+ Bug #528271 (Jonathon Jongsma)
+
+2008-04-13 Murray Cumming <murrayc@murrayc.com>
+
+ * glib/src/optionentry.ccg: set_long_name(): Do not use NULL for an
+ empty string, because "" has a special meaning to GOptionEntry - it
+ is the definition of G_OPTION_REMANING.
+ * examples/options/main.cc: Add an entry with the long name
+ G_OPTION_REMAINING, to list additional non-named arguments. More
+ explicit API should be added for this.
+ Bug #526831 (Christian Lundgren).
+
+2008-04-13 Murray Cumming <murrayc@murrayc.com>
+
+ * glib/glibmm/ustring.cc erase(): Create an end iterator and use it,
+ instead of just using the std::string(iterator) erase implementation,
+ because that only removes one byte, which can make the whole string
+ invalid UTF-8.
+ Bug #527687 (Jarro).
+
+2008-04-11 Murray Cumming <murrayc@murrayc.com>
+
+ * glib/src/optionentry.ccg:
+ * glib/src/optionentry.hg: Hand-code set_description(),
+ set_arg_description() and set_long_name(), to free any existing string,
+ to maybe fix a (possible) leak found by valgrind.
+
+2008-03-29 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * Makefile.am: add some more convenience targets for making releases
+
+2.16.1:
+
+2008-03-28 Tim Retout <tim@retout.co.uk>
+
+ * glib/glibmm/helperlist.h (operator[]): Add a newline before
+ the semicolon at the end of the 'for' loop. Fixes g++ 4.3 warning.
+
+2008-03-29 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * NEWS: updated
+ * configure.in: bump to 2.16.1
+
+2008-03-29 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/file.hg:
+ * gio/src/file.ccg: query_default_handler(), set_display_name(),
+ query_info(), query_filesystem_info(): Do not take an extre reference,
+ because the C functions all provide new objects with an initial
+ reference. I checked.
+
+2008-03-28 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/file.ccg: create(), replace(): Do not take an extra reference,
+ because the C function has given us a new instance with an initial
+ reference. The leak stopped the stream from really replacing the file,
+ because that only happens when it is closed.
+
+2008-03-28 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/file.hg:
+ * gio/src/outputstream.hg: Documentation: Remove/fix mentions of 0 when
+ we mean something else.
+
+2008-03-24 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * gio/src/desktopappinfo.hg:
+ * gio/src/unixinputstream.hg:
+ * gio/src/unixmount.hg:
+ * gio/src/unixoutputstream.hg: don't wrap these unix-specific types when
+ building on MS Windows (bug #524126)
+
+2008-03-18 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/file.hg: Include giomm/error.h Because Gio::Error is thrown
+ by some of these methods and it is annoying to have to include it
+ separately just to catch that.
+
+2.16.0:
+
+2008-03-10 Tim Mooney <murrayc@murrayc.com>
+
+ * glib/glibmm/object.cc: Include string.h to fix the build with
+ SUN CC.
+ Bug #498438.
+
+2008-03-07 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * glib/glibmm.h: add an include for checksum.h which was added in the 2.15.x
+ series.
+
+2008-03-05 Murray Cumming <murrayc@murrayc.com>
+
+ * MAINTAINERS: Added Jonathon Jongsma as co-maintainer.
+
+2008-03-05 Murray Cumming <murrayc@murayc.com>
+
+ * tools/m4/convert_gio.m4: Use __CONVERT_CONST_REFPTR_TO_P_SUN() instead
+ of __CONVERT_REFPTR_TO_P() to maybe fix the build with Sun CC.
+ (Simon Zheng)
+
+2008-03-04 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * Makefile.am: updated the 'release' target to give a bit more helpful error
+ messages
+
+2008-03-04 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/gio_docs.xml: Regenerated with docextract_to_xml.py.
+ * gio/src/gio_docs_override.xml: Overrode g_file_query_exists() to
+ mention an exception instead of an error. G_IO_ERROR_* now does not
+ appear in any of our documentation.
+
+2.15.8:
+
+2008-03-03 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/bufferedinputstream.hg:
+ * gio/src/bufferedoutputstream.hg:
+ * gio/src/datainputstream.hg:
+ * gio/src/dataoutputstream.hg:
+ * gio/src/fileinputstream.hg:
+ * gio/src/fileoutputstream.hg:
+ * gio/src/filterinputstream.hg:
+ * gio/src/filteroutputstream.hg:
+ * gio/src/inputstream.hg:
+ * gio/src/memoryinputstream.hg:
+ * gio/src/mount.hg:
+ * gio/src/outputstream.hg:
+ * gio/src/seekable.hg:
+ * gio/src/unixinputstream.hg:
+ * gio/src/unixoutputstream.hg: Put these in a Streams doxygen group.
+ We should think of some more groups, maybe by looking at the C
+ documentation.
+
+2008-03-03 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/file.ccg:
+ * gio/src/file.hg: load_contents(), load_contents_finish(),
+ load_partial_contents_finish(): Use char*& instead of char** for contents,
+ though that is not that great either. Use std::string& instead of char**
+ for etag_out. Added method overloads without cancellable.
+ We might want other method overloads in future.
+
+2008-02-29 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * Makefile.am: added 'release' target which will run distcheck, tag the
+ repository with the current version and upload the tarball to
+ master.gnome.org
+
+2008-02-27 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/asyncresult.hg:
+ * gio/src/file.hg:
+ * gio/src/fileenumerator.hg:
+ * gio/src/fileinputstream.hg:
+ * gio/src/fileoutputstream.hg:
+ * gio/src/gio_docs_override.xml:
+ * gio/src/inputstream.hg:
+ * gio/src/outputstream.hg: Correct hand-coded documentation,
+ to talk about throwing exceptions rather than setting or returning
+ errors.
+ * gio/src/mount.hg: Add class documentation based on the C documentation.
+
+2008-02-27 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/gio_docs.xml: Regenerated with docextract_to_xml.py.
+ * gio/src/gio_docs_override.xml: Override some documentation that
+ mentions the GCancellable being optional, or that talks about setting
+ errors instead of throwing them.
+
+2.15.7:
+
+2008-02-26 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/gio_methods.defs: Regenerated.
+ * gio/src/file.ccg:
+ * gio/src/file.hg: Added query_filesystem_info_async() and
+ query_filesystem_info_finish() because these were added to the C API.
+ * gio/src/themedicon.hg: Added append_name() because this was added to
+ the C API.
+
+2008-02-25 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * docs/reference/Doxyfile.in: 'upgraded' the doxygen config file since
+ doxygen was complaining about obsolete options
+ * gio/giomm/contenttype.h:
+ * gio/src/bufferedinputstream.hg:
+ * gio/src/file.hg:
+ * gio/src/fileoutputstream.hg:
+ * gio/src/outputstream.hg:
+ * glib/src/checksum.hg:
+ * glib/src/keyfile.hg: fixed a bunch of minor doxygen warnings
+
+2008-02-25 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * docs/reference/doxygen_to_devhelp.xsl: add path separators between the
+ reference prefix and the link filenames
+ * docs/reference/Makefile.am: remove trailing slash from the reference
+ prefix (fixes bug #518673)
+
+2008-02-25 Wouter Bolsterlee <wbolster@svn.gnome.org>
+
+ * gio/src/file.hg:
+ * gio/src/gio_docs.xml:
+ * gio/src/gio_methods.defs:
+ * gio/src/gio_vfuncs.defs:
+
+ Initial work for another API change:
+ g_file_contains_file() has been renamed to
+ g_file_has_prefix() (with the parameter order swapped!)
+
+2008-02-25 Wouter Bolsterlee <wbolster@svn.gnome.org>
+
+ * glib/src/uriutils.ccg:
+ * glib/src/uriutils.hg:
+
+ g_uri_get_scheme has been renamed to g_uri_parse_scheme
+ in GLib trunk. Updated accordingly.
+
+2008-02-24 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * docs/reference/Makefile.am: dist xml/index.xml to satisfy build-deps for
+ building the devhelp book from the tarball. Fixes distcheck.
+
+2.15.6:
+
+2008-02-24 Marko Anastasov <marko.anastasov@gmail.com>
+
+ * gio/src/inputstream.hg: Updated the todo regarding read().
+
+2008-02-22 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/fileattributeinfolist.hg: Added dup().
+ * gio/src/gio_others.defs: Added signals for GMount and GVolume.
+ This deals with the gmmproc warnings.
+
+2008-02-21 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/desktopappinfo.hg: Revert the change from José which removed
+ use of _WRAP_CTOR() and _WRAP_CREATE(). We really do want to use these
+ so we instantiate derived GTypes.
+
+2008-02-21 Marko Anastasov <marko.anastasov@gmail.com>
+
+ * gio/src/desktopappinfo.hg: Made is_hidden() const.
+
+2008-02-21 José Alburquerque <jaalburqu@svn.gnome.org>
+
+ * gio/src/desktopappinfo.hg: Used _WRAP_METHOD instead of _WRAP_CREATE
+ for create() to allow docs from C API to be used
+
+2008-02-21 José Alburquerque <jaalburqu@svn.gnome.org>
+
+ * gio/src/desktopappinfo.hg: Renamed new_from_file() to
+ create_from_file()
+
+2008-02-21 José Alburquerque <jaalburqu@svn.gnome.org>
+
+ * gio/src/desktopappinfo.hg: Added create(), create_from_file()
+ is_hidden() and set_desktop_env()
+ * tools/m4/convert_gio.m4: Added DesktopAppInfo conversion
+
+2008-02-21 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/gio_methods.defs: Regenerated with h2defs.py
+
+ * gio/src/gio_signals.defs: Corrected the GMountOperation::ask-question
+ definition.
+ * gio/src/mountoperation.hg: Wrapped the ask-question signal, though
+ I wonder if it really works.
+
+ * gio/src/memoryinputstream.ccg:
+ * gio/src/memoryinputstream.hg:
+ Added add_data(const void* data, gssize len).
+
+ * gio/src/gio_others.defs: Added g_themed_icon_get_names()
+ because h2defs.py cannot seem to parse it.
+ * gio/src/Makefile.am: Mention gio_methods.defs.
+ * gio/src/themedicon.hg: Attempted to wrap get_names(), but I get a
+ gmmproc error.
+
+2008-02-20 Marko Anastasov <marko.anastasov@gmail.com>
+
+ * gio/src/desktopappinfo.hg: Removed a todo regarding
+ DesktopAppInfoLookup. We will not wrap it as it is an interface
+ that is used by backends.
+
+2008-02-20 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * docs/reference/Makefile.am: updated some build dependencies that were
+ causing issues after adding the xml/devhelp build rules. Also removed some
+ cruft that was supposedly setting the doxygen image path for gtk stock icons
+ (presumably copied from the gtkmm build rules). Should Fix Bug #517423
+
+2008-02-20 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/appinfo.hg:
+ * gio/src/bufferedinputstream.hg:
+ * gio/src/drive.hg:
+ * gio/src/file.hg:
+ * gio/src/filemonitor.hg:
+ * gio/src/icon.hg:
+ * gio/src/seekable.hg:
+ * gio/src/volume.hg:
+ * gio/src/volumemonitor.hg: Comment out _WRAP_VFUNC() lines because
+ we decided that they are not useful (people will not create new
+ implementations with giomm) and are a potential source of errors.
+
+2008-02-20 Murray Cumming <murrayc@murrayc.com>
+
+ * tools/m4/convert_gio.m4:
+ * gio/src/file.hg: equal(), get_relative_file(), contains_file(): Take
+ const File parameters.
+
+2008-02-15 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * docs/reference/Makefile.am: I should have tested this more thoroughly --
+ we apparently need to use relative paths in the reference_prefix variable.
+ Also add the devhelp file to the all-local target so it gets built by
+ default on a simple 'make' and not just on 'make install'
+
+2008-02-15 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * docs/reference/Makefile.am: install the stylesheet in the gmmproc dir
+ instead of the documentation directory. This allows other libraries to get
+ a path to the stylesheet by querying the just-added gmmprocdir variable.
+ Also, it doesn't really belong in the documentation directory since it's not
+ technically documentation.
+
+2008-02-15 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * docs/reference/doxygen_to_devhelp.xsl: make this more general instead of
+ hard-coding the name and title and reference path into the stylesheet --
+ instead pass them as parameters on the commandline
+ * docs/reference/Makefile.am: use new GMMPROC_DIR variable. Also install
+ the doxygen_to_devhelp.xsl stylesheet so that other libraries can use the
+ installed version instead of having everybody copy the file into their own
+ library if they want to generate a devhelp book
+
+2008-02-15 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * configure.in: add a GMMPROC_DIR variable so the individual
+ Makefile.am files don't need to duplicate the information about where
+ gmmproc is to be installed
+ * glib/glibmm-2.4.pc.in: add new gmmprocdir variable so that interested
+ libraries can query it with `pkg-config --variable gmmprocdir glibmm-2.4`
+ * tools/Makefile.am:
+ * tools/m4/Makefile.am:
+ * tools/pm/Makefile.am: use the new GMMPROC_DIR variable
+
+2008-02-14 Marko Anastasov <marko.anastasov@gmail.com>
+
+ * gio/src/dataoutputstream.hg: Removed get/set_newline_type(),
+ which doesn't exist in the C API.
+
+2008-02-13 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * docs/reference/Doxyfile.in:
+ * docs/reference/Makefile.am:
+ * docs/reference/doxygen_to_devhelp.xsl: generate and install a devhelp book
+ for glibmm like we do for gtkmm. It would be nice to make the xsl
+ stylesheet general and shared between gtkmm and glibmm (and eventually other
+ libraries as well), but for now I just duplicated it here
+
+2008-02-12 Marko Anastasov <marko.anastasov@gmail.com>
+
+ * gio/src/gio_methods.defs: Regenerated with h2defs.py.
+
+ * gio/src/unixinputstream.hg:
+ * gio/src/unixoutputstream.hg: Made wrapped constructors protected.
+
+ * gio/src/bufferedinputstream.hg:
+ * gio/src/datainputstream.hg:
+ * gio/src/dataoutputstream.hg: Ditto for Data*Streams,
+ and marked some hand-wrapped functions to ignore.
+
+ * gio/src/mountoperation.hg: Wrote a note about ask_question signal,
+ still to be wrapped.
+
+ * gio/src/volume.hg: Added should_automount().
+
+ * gio/giomm: Updated svn:ignore properties.
+
+2.15.5:
+
+2008-02-11 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * gio/src/file.ccg:
+ * gio/src/file.hg:
+ * gio/src/gio_enums.defs:
+ * gio/src/gio_vfuncs.defs:
+ * gio/src/mount.ccg:
+ * gio/src/mount.hg:
+ * gio/src/volume.ccg:
+ * gio/src/volume.hg:
+ * tools/m4/convert_gio.m4: update to match new gio API which adds a
+ GMountMountFlags argument to all mount operations
+
+2008-02-11 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * configure.in: bump glib requirement to 2.15.5 (bug #515727)
+
+2008-02-09 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/gio_vfuncs.defs: Added hand-written vfunc .defs for
+ GVolume and GVolumeMonitor.
+ * gio/src/volume.hg:
+ * gio/src/volumemonitor.hg: Added vfuncs, though not using all C++ types
+ yet. I am not really sure that these will ever be useful (if anyone will
+ ever want to implement them in C++).
+
+2008-02-09 Murray Cumming, <murrayc@murrayc.com>
+
+ * gio/giomm.h:
+ * gio/src/Makefile_list_of_hg.am_fragment:
+ * gio/src/simpleasyncresult.ccg:
+ * gio/src/simpleasyncresult.hg: removed SimpleAsyncResult because I
+ do not believe it is really public API. If we are wrong then we
+ can resurrect it from svn later.
+
+2008-02-09 Takao Fujiwara <Takao.Fujiwara@Sun.COM>
+
+ * glib/glibmm/Makefile.am:
+ * glib/glibmm/i18n-lib.h: Actually install this header,
+ and make the header guards unique.
+ Bug #515133
+
+2.15.4:
+
+2008-02-07 Murray Cumming <murrayc@murrayc.com>
+
+ * glib/glibmm/Makefile.am:
+ * glib/glibmm/main.h: Moved the Priorities enum into
+ * glib/glibmm/priorities.h:
+ Though all the giomm stuff seems to already include main.h anyway.
+ It probably shouldn't, and then we can include priorities.h only.
+
+ * gio/src/bufferedinputstream.hg:
+ * gio/src/file.hg:
+ * gio/src/fileenumerator.hg:
+ * gio/src/fileinputstream.hg:
+ * gio/src/fileoutputstream.hg:
+ * gio/src/gio_methods.defs:
+ * gio/src/inputstream.hg:
+ * gio/src/outputstream.hg: Use Glib::PRIORITY_DEFAULT instead of
+ G_PRIORITY_DEFAULT.
+
+ * glib/src/iochannel.ccg: Add some ifdefs to avoid unused parameter
+ warnings when exceptions are disabled, because our current trick for
+ that is now causing another warning instead.
+
+2008-02-06 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * gio/src/datainputstream.ccg:
+ * gio/src/datainputstream.hg: change the read_line() and read_until() APIs
+ so that they are actually useable. These functions now return a boolean
+ value to indicate that the end of the stream was reached and return the
+ string data via reference argument. See bug #514097 for more information
+
+2008-02-06 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/gio_methods.defs: Regenerated with h2defs.py
+
+ * configure.in: Depend on gio-unix-2.0 when not on win32.
+ * gio/src/Makefile_list_of_hg.am_fragment:
+ * gio/src/unixinputstream.ccg:
+ * gio/src/unixinputstream.hg:
+ * gio/src/unixoutputstream.ccg: Mentioned this as unix-specific files
+ so they are built.
+
+ * gio/src/bufferedoutputstream.hg: Fixed a parameter type to fix the
+ build, after a change in gio.
+
+2008-02-05 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/file.ccg:
+ * gio/src/file.hg: Added an overload of query_default_handler()
+ without the cancellable.
+
+2008-02-05 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/Makefile_list_of_hg.am_fragment:
+ * gio/src/vfs.ccg:
+ * gio/src/vfs.hg: Remove these because they are not API - they
+ are declarations of entry points for dynamically-loadable modules.
+
+2008-02-04 Marko Anastasov <marko.anastasov@gmail.com>
+
+ * gio/src/file.ccg:
+ * gio/src/file.hg: Added copy_async(), with overloads without
+ slot_progress (which is optional and would run in the main loop),
+ with documentation. Wrapped copy_finish(), query_default_handler().
+
+2008-02-04 José Alburquerque <jaalburqu@svn.gnome.org>
+
+ * gio/src/desktopappinfo.ccg:
+ * gio/src/desktopappinfo.hg: Added DesktopAppInfo but not to
+ Makefile_list_of_hg.am_fragment yet (need to use gio-unix-2.0.pc to
+ compile correctly)
+
+2008-02-04 José Alburquerque <jaalburqu@svn.gnome.org>
+
+ * gio/src/bufferedoutputstream.ccg: Changed size param of
+ create_sized() to type gsize (in agreement with declaration) to fix
+ compilation
+
+2008-02-04 Murray Cumming <murrayc@murrayc.com>
+
+ * tools/m4/class_interface.m4: Allow _CLASS_INTERFACE() to take two
+ extra optional paremeters to specify the base class, so that appropriate
+ code is generated when we derive from another Interface - which seems
+ appropriate when the GInterface has a prerequisite.
+ * gio/src/loadableicon.ccg:
+ * gio/src/loadableicon.hg: Derive from Icon, because it is a prerequisite
+ of this interface. Use the extra _CLASS_INTERFACE() parameters.
+ * gio/src/fileicon.hg: Do not derive from Icon because that happens
+ through LoadableIcon now. But do use _IMPLEMENTS_INTERFACE(Icon) here,
+ because only a Glib::Object can actually implement an interface.
+
+2008-02-04 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * gio/src/file.hg: remove an obsolete TODO
+ * gio/src/gio_vfuncs.defs: add LoadableIcon vfunc definitions
+ * gio/src/loadableicon.ccg:
+ * gio/src/loadableicon.hg: wrap some methods of LoadableIcon. Some vfuncs
+ need to be wrapped yet
+
+2008-02-04 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * gio/src/bufferedoutputstream.hg: switch back create_sized() size parameter
+ to gsize since glib switched their declaration due to bug #514013.
+
+2008-02-03 José Alburquerque <jaalburqu@svn.gnome.org>
+
+ * gio/src/unixinputstream.ccg:
+ * gio/src/unixinputstream.hg:
+ * gio/src/unixmount.ccg:
+ * gio/src/unixmount.hg:
+ * gio/src/unixoutputstream.ccg:
+ * gio/src/unixoutputstream.hg: Added these, but not to
+ Makefile_list_of_hg.am_fragment to avoid compile errors (need
+ gio-unix-2.0.pc to compile correctly)
+ * gio/src/vfs.hg: Moved forward decs to top (was between class doc and
+ declaration)
+
+2008-02-03 José Alburquerque <jaalburqu@svn.gnome.org>
+
+ * gio/src/Makefile_list_of_hg.am_fragment:
+ * gio/src/vfs.ccg:
+ * gio/src/vfs.hg:
+ * tools/m4/convert_gio.m4: Added Vfs
+
+2008-02-04 Murray Cumming <murrayc@murrayc.com>
+
+ * tools/extra_defs_gen/generate_defs_gio.cc: Added types.
+ * gio/src/gio_signals.defs: Regenerated.
+ * gio/src/Makefile_list_of_hg.am_fragment:
+ * gio/src/filenamecompleter.hg:
+ * gio/src/themedicon.hg: Added FilenameCompleter and ThemedIcon.
+
+2008-02-03 José Alburquerque <jaalburqu@svn.gnome.org>
+
+ * gio/src/bufferedoutputstream.ccg: changed size param of
+ create_sized() to type guint (in agreement with declaration)
+ * gio/src/file.ccg:
+ * gio/src/file.hg: added non-cancellable set_attribute_string(),
+ set_attribute_byte_string(), set_attribute_{uint32, int32, uint64,
+ int64}
+
+2008-02-03 Murray Cumming <murrayc@murrayc.com>
+
+ * tools/extra_defs_gen/generate_defs_gio.cc: Added types.
+ * gio/src/gio_signals.defs: Regenerated.
+
+ * tools/m4/convert_gio.m4:
+ * gio/src/drive.hg:
+ * gio/src/filterinputstream.hg:
+ * gio/src/filteroutputstream.hg:
+ * gio/src/mount.hg:
+ * gio/src/mountoperation.hg:
+ * gio/src/volume.hg:
+ * gio/src/volumemonitor.hg: Added signals and properties.
+
+ * gio/src/file.ccg:
+ * gio/src/file.hg: Added query_filesystem_info() without a cancellable.
+
+2008-02-03 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/filemonitor.hg: Add class documentation, now that there is
+ some in gio.
+ * gio/src/volumemonitor.hg: Add class documentation.
+ Remove _DO_NOT_DERIVE_GTYPE because gio no longer abuses the type
+ system - see bug #511814.
+
+2008-02-02 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * gio/giomm.h:
+ * gio/src/Makefile_list_of_hg.am_fragment:
+ * gio/src/memoryinputstream.ccg:
+ * gio/src/memoryinputstream.hg: add MemoryInputStream class
+
+2008-02-02 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * gio/src/dataoutputstream.ccg: fix copy/paste error
+
+2008-02-02 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * gio/src/Makefile_list_of_hg.am_fragment:
+ * gio/src/datainputstream.hg:
+ * gio/src/dataoutputstream.hg: add DataOutputStream class
+ * gio/src/dataoutputstream.ccg:
+ * gio/src/enums.ccg:
+ * gio/src/enums.hg: moved the DataStream enums to a common enums header
+ since they're needed by both the input and output data streams.
+ * gio/giomm.h: add new headers
+
+2008-02-02 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * gio/src/bufferedoutputstream.ccg:
+ * gio/src/bufferedoutputstream.hg: add BufferedOutputStream class
+
+2008-02-02 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * gio/giomm.h:
+ * gio/src/Makefile_list_of_hg.am_fragment:
+ * gio/src/filteroutputstream.ccg:
+ * gio/src/filteroutputstream.hg:
+ * tools/m4/convert_gio.m4: add FilterOutputStream class
+
+2008-02-03 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/file.ccg:
+ * gio/src/file.hg: find_enclosing_mout(), append_to(): Reordered
+ parameters and added overload without cancellable. Removed superfluous
+ monitor_file() overload.
+
+2008-02-03 Murray Cumming <murrayc@murrayc.com>
+
+ * tools/m4/convert_gio.m4:
+ * gio/src/bufferedinputstream.hg: Move a signal-specific conversion
+ here, because these conversions are unusual and shouldn't be used by
+ mistake elsewhere, and when they are next to the signal then it is
+ more obvious why they take a reference (also fixed).
+
+2008-02-02 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * gio/giomm.h: add new header files to the main include
+ * gio/src/datainputstream.hg: add FIXME note about not being able to tell
+ error conditions from empty strings on read_line() / read_until()
+
+2008-02-02 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * gio/giomm/Makefile.am: add slot_async.h private header to EXTRA_DIST so
+ that it gets distributed. I didn't add it to the
+ sublib_files_extra_general_h variable, since then it would get installed
+
+2008-02-02 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * gio/src/Makefile_list_of_hg.am_fragment:
+ * gio/src/datainputstream.ccg:
+ * gio/src/datainputstream.hg:
+ * tools/m4/convert_gio.m4: add DataInputStream class
+
+2008-02-02 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * gio/src/gio_vfuncs.defs:
+ * gio/src/Makefile_list_of_hg.am_fragment:
+ * gio/src/bufferedinputstream.ccg:
+ * gio/src/bufferedinputstream.hg: add BufferedInputStream class
+ * gio/giomm/slot_async.cc:
+ * gio/giomm/slot_async.h: split out the SlotProxy_async_callback so it
+ doesn't have to be implemented in every file
+ * gio/src/drive.ccg:
+ * gio/src/file.ccg:
+ * gio/src/file.hg:
+ * gio/src/fileenumerator.ccg:
+ * gio/src/fileinputstream.ccg:
+ * gio/src/fileoutputstream.ccg:
+ * gio/src/inputstream.ccg:
+ * gio/src/mount.ccg:
+ * gio/src/outputstream.ccg:
+ * gio/src/volume.ccg: use the common SlotProxy_async_callback function in
+ all of these files
+ * tools/m4/convert_gio.m4: add conversion for Cancellable
+ * gio/giomm/Makefile.am: indenting changes
+
+2008-02-02 Marko Anastasov <marko.anastasov@gmail.com>
+
+ * gio/src/volumemonitor.hg: Removed VolumeMonitorEvent enum def,
+ which does not exist any more in the C API.
+ * gio/src/volume.hg: Added get_identifier(), enumerate_identifiers().
+
+2008-02-02 Marko Anastasov <marko@marko.anastasov.name>
+
+ * gio/src/volume.hg: Added get_mount().
+ * gio/src/gio_enums.defs: Regenerated with enums.pl.
+ * gio/src/gio_methods.defs: Regenerated with h2defs.py.
+
+2008-02-02 Kjartan Maraas <kmaraas@gnome.org>
+
+ * tests/giomm_simple/main.cc: Fix compile with GCC 4.3.
+
+2008-02-02 Murray Cumming <murrayc@murrayc.com>
+
+ * build_shared/Makefile_gensrc.am_fragment: Use the local .pm files
+ for gmmproc instead of installed ones. This was a regression that I
+ introduced when I added gio to the build.
+ * tools/pm/DocsParser.pm: append_parameter_docs(): Ignore error
+ parameters because they are almost always wrapped as exceptions.
+
+2008-02-01 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * gio/src/Makefile.am:
+ * gio/src/appinfo.hg:
+ * gio/src/gio_vfuncs.defs:
+ * tools/m4/convert_gio.m4:
+ * tools/m4/convert_glib.m4: Add Gio::AppInfo vfuncs
+
+2008-02-02 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/file.ccg:
+ * gio/src/file.hg: Added overloads of create_file(), remove(), trash(),
+ make_directory(), make_symbolic_link(), query_settable_attributes(),
+ and query_writable_namespaces() without cancellable parameters.
+ The set_attribute_*() methods still need this to be done.
+
+2008-02-02 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/cancellable.hg: Added the signal.
+ * gio/src/file.ccg:
+ * gio/src/file.hg: Added copy_attributes(), added mount_enclosing_volume()
+ mount_enclosing_volume_finish(), find_enclosing_mount(), and
+ find_enclosing_mount_finish().
+ Added a mount_mountable() overload with no parameters.
+ set_attributes_from_info(): Reordered parameters so we can have default
+ values.
+
+2008-02-02 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/giomm/contenttype.cc:
+ * gio/giomm/contenttype.h: Use convert_return_gchar_ptr_to_ustring()
+ because it releases the gchar* and checks for NULL.
+ Removed the ontent_type_guess() that takes a basic_string<guchar>
+ because I doubt anybody would use that. Added one that takes a
+ gchar* and size, and one that takes a std::string (for when the data is
+ a string).
+
+2008-01-31 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * gio/giomm/contenttype.cc: put content_type functions in the Gio namespace
+ which was accidentally omitted.
+
+2008-01-31 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * gio/giomm.h: forgot to add new contenttype.h header
+ * gio/giomm/Makefile.am: forgot to install contenttype.h header
+
+2008-01-31 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * gio/giomm/Makefile.am:
+ * gio/giomm/contenttype.cc:
+ * gio/giomm/contenttype.h: wrap content_type_* functions
+
+2008-01-29 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/file.hg: get_child_for_display_name():
+ Change the display_name parameter to a ustring because
+ the C documentation says it should be UTF-8.
+ * gio/src/fileinfo.hg: Add get_attribute_as_string(), which
+ returns a UTF-8 string.
+ (Note that no other gio documentation mentions UTF-8.)
+ Thanks to Iain Nicol.
+
+2.15.3:
+
+2008-01-27 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/fileattribute.ccg:
+ * gio/src/fileattribute.hg: Split into
+ * gio/src/fileattributeinfo.ccg:
+ * gio/src/fileattributeinfo.hg: and
+ * gio/src/fileattributeinfolist.ccg:
+ * gio/src/fileattributeinfolist.hg
+
+ * gio/giomm.h:
+ * gio/src/Makefile_list_of_hg.am_fragment:
+ * gio/src/file.hg:
+ * gio/src/fileinfo.hg:
+ * gio/src/outputstream.hg:
+ * gio/src/seekable.hg:
+ * glib/src/optionentry.hg: Adapted.
+
+ * tools/pm/DocsParser.pm: substitute_identifiers():
+ Tried (unsuccessfully) to remove G:: prefixes in generated documentation.
+
+2008-01-27 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/appinfo.hg:
+ * gio/src/asyncresult.hg:
+ * gio/src/cancellable.hg:
+ * gio/src/drive.hg:
+ * gio/src/error.hg:
+ * gio/src/file.hg:
+ * gio/src/fileattribute.hg:
+ * gio/src/fileenumerator.hg:
+ * gio/src/fileicon.hg:
+ * gio/src/fileinfo.hg:
+ * gio/src/fileinputstream.hg:
+ * gio/src/fileoutputstream.hg:
+ * gio/src/filterinputstream.hg:
+ * gio/src/icon.hg:
+ * gio/src/inputstream.hg:
+ * gio/src/loadableicon.hg:
+ * gio/src/mount.hg:
+ * gio/src/mountoperation.hg:
+ * gio/src/outputstream.hg:
+ * gio/src/seekable.hg:
+ * gio/src/simpleasyncresult.hg:
+ * gio/src/volume.hg: Do not include gio.h from our public headers, to
+ avoid polluting the namespace.
+
+2008-01-27 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/appinfo.ccg:
+ * gio/src/appinfo.hg: Make equal() non virtual - equal_vfunc() is instead.
+ * gio/src/file.ccg:
+ * gio/src/file.hg: Make equal() non virtual - equal_vfunc() is instead.
+ replace_contents(), replace_contents_async(), replace_contents_finish():
+ Reordered parameters to allow default values, and added method overloads.
+
+2008-01-25 Murray Cumming <murrayc@murrayc.com>
+
+ * tools/m4/convert_gio.m4:
+ * gio/src/filterinputstream.hg: Added the _CLASS_* macro so this type
+ is really wrapped.
+
+2008-01-25 Murray Cumming <murrayc@murrayc.com>
+
+ * tools/m4/class_shared.m4: Added _DO_NOT_DERIVE_GTYPE for use in .hg
+ files when we do not want to derive a new GType, meaning of course that
+ we cannot have default signal handlers or vfuncs.
+ * gio/src/volumemonitor.hg: Use _DO_NOT_DERIVE_GTYPE, because
+ gio tries to call every type that derives from G_TYPE_VOLUME_MONITOR,
+ which seems unwise to me - bug #511814.
+ This makes gtkmm-documentation/examples/book/volumes not crash.
+
+2008-01-24 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * gio/giomm.h: add missing headers to the main include header
+
+2008-01-23 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/error.hg: Renamed Gio::IOError to
+ Gio::Error.
+ * gio/src/fileenumerator.ccg:
+ * gio/src/fileenumerator.hg: Added method overloads of close() and
+ next_file() without the cancellable parameter.
+
+2008-01-23 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/Makefile_list_of_hg.am_fragment:
+ * gio/src/error.ccg:
+ * gio/src/error.hg: Wrapped GIOErrorEnum as Gio::Error exception.
+ (This is registered in wrap_init()), so that the correct exception
+ is thrown.
+ * gio/giomm.h: Include error.h
+
+2008-01-23 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/file.ccg:
+ * gio/src/file.hg: Added a read() method overload with no
+ cancellable parameter.
+ * tests/giomm_simple/main.cc: Try loading the contents of a file.
+ Seems to work, though there is an unknown GError domain when the file
+ does not exist.
+
+2.15.2:
+
+2008-01-21 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/gio_methods.defs: Regenerated.
+ * gio/src/file.ccg:
+ * gio/src/file.hg:
+ * gio/src/fileinputstream.ccg:
+ * gio/src/fileinputstream.hg:
+ * gio/src/fileoutputstream.ccg:
+ * gio/src/fileoutputstream.hg: More overloads, parameter reordering,
+ and documentation.
+
+2008-01-21 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/inputstream.ccg:
+ * gio/src/inputstream.hg: Added method overloads and documentation.
+
+2008-01-20 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/fileinputstream.ccg:
+ * gio/src/fileinputstream.hg:
+ * gio/src/fileoutputstream.ccg:
+ * gio/src/fileoutputstream.hg: Ignore functions that are just
+ duplicates of the ones in Seekable, and mention Seekable more in
+ the documentation.
+ * gio/src/seekable.hg: Expand the class documentation.
+ * gio/src/outputstream.ccg:
+ * gio/src/outputstream.hg: Added method overloads and documentation.
+
+2008-01-20 Murray Cumming <murrayc@murrayc.com>
+
+ * glib/glibmm/objectbase.cc:
+ * glib/glibmm/objectbase.h: Added connect_property_changed_with_return()
+ because connect_property_changed() does not return a sigc::connection.
+ Bug #433984 (Philip Langdale, Kalle Vahlman).
+
+2008-01-20 Murray Cumming <murrayc@murrayc.com>
+
+ * glib/src/checksum.ccg:
+ * glib/src/checksum.hg: Added class documentation. Corrected constructor
+ documentation and added operator bool() to check for a failure in the
+ constructor.
+
+2008-01-20 Marko Anastasov <marko@marko.anastasov.name>
+
+ * tools/enum.pl: Handle possible parenthesis when matching enum
+ values declared as shifted ones. Bug #498621.
+
+2008-01-20 Naveen Verma <ernaveenverma@gmail.com>
+
+ * glib/src/checksum.[hg|ccg]:
+ * glib/src/Makefile_list_of_hg.am_fragment:
+ Added Checksum, wrapping GChecksum Bug #510235.
+
+2008-01-20 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/inputstream.hg: Ignore g_input_stream_clear_pending() as well as
+ the other implementation functions.
+ * gio/src/outputstream.hg: Ignore the equivalent functions here,
+ assuming that they are also only for implementations.
+
+2008-01-20 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/fileinfo.hg: FileAttributeMatcher::create(): Add a default
+ value and documentation.
+ * gio/src/file.ccg:
+ * gio/src/file.hg:
+ * gio/src/mount.ccg:
+ * gio/src/mount.hg: const corrections for Slot* and Cancellable
+ parameters.
+
+2008-01-20 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/file.hg:
+ * gio/src/file.ccg: enumerate_children(), enumerate_children_async(),
+ query_info(), query_info_async(), query_exists(): Reorder parameters to
+ add default values, add documentation, make const.
+
+2008-01-18 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/mount.ccg:
+ * gio/src/mount.hg: Added unmount(), remount(), and
+ eject(), based on code from José Alburquerque in bug #510080.
+ * gio/src/volume.hg: Added documentation.
+
+2008-01-18 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/drive.ccg:
+ * gio/src/drive.hg: poll_for_media(): Added documentation.
+ Wrapped 2 vfuncs (though the .defs still need to be written).
+ * gio/src/file.ccg:
+ * gio/src/file.hg: move(), copy(), replace(): Rearranged the parameters so we
+ can have default values, and added some documentation.
+ set_display_name(), set_display_name_async(): Take a ustring instead
+ of a std::string. Added documentation.
+
+ * gio/src/fileattribute.ccg:
+ * gio/src/fileattribute.hg: Added FileAttributeInfoList::add().
+ Added FileAttributeInfoList::empty().
+
+ * tools/m4/convert_gio.m4:
+ * gio/src/appinfo.hg:
+ * gio/src/fileenumerator.hg: Move the ListHandle conversions to the
+ .hg files because the ownership is specific to each use.
+
+2008-01-18 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/drive.hg:
+ * gio/src/volumemonitor.hg: Wrapped functions that reurn GLists.
+
+2008-01-18 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/appinfo.hg:
+ * gio/src/icon.hg: Removed operator= and operator!= for these RefPtr<>
+ specializations, because they are unobvious and conflict with the generic
+ ones.
+
+2008-01-17 Marko Anastasov <marko.anastasov@gmail.com>
+
+ * gio/src/inputstream.ccg:
+ * gio/src/inputstream.hg: Fixed const-ness of Cancellables.
+ * gio/src/fileinputstream.ccg:
+ * gio/src/fileinputstream.ccg:
+ * gio/src/fileoutputstream.ccg:
+ * gio/src/fileoutputstream.hg: Added an overload of query_info_async(),
+ * gio/src/outputstream.ccg:
+ * gio/src/outputstream.hg: write_async(), splice_async() without
+ the Cancellable.
+
+ Patch from José Alburquerque, bug #510080.
+
+2008-01-17 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/file.hg:
+ * gio/src/drive.ccg:
+ * gio/src/drive.hg: eject(),
+ * gio/src/volume.ccg:
+ * gio/src/volume.hg: eject(),
+ * tools/m4/convert_gio.m4: Wrapped GMountUnmountFlags enum as
+ MountUnmountFlags, and used it.
+
+ * gio/src/file.ccg:
+ * gio/src/file.hg: unmount_mountable(), eject(): Reorder the
+ parameters and add a default flag value.
+
+2008-01-17 Marko Anastasov <marko.anastasov@gmail.com>
+
+ * gio/src/filterinputstream.ccg:
+ * gio/src/filterinputstream.hg:
+ * gio/src/Makefile_list_of_hg.am_fragment: Added FilterInputStream.
+
+ Updated svn:ignore properties.
+
+2008-01-16 Murray Cumming <murrayc@murrayc.com>
+
+ * tools/extra_defs_gen/generate_defs_gio.cc: Added Mount and
+ VolumeMonitor.
+ * gio/src/gio_signals.defs: Regenerated.
+
+ * gio/src/Makefile_list_of_hg.am_fragment:
+ * gio/src/mount.ccg:
+ * gio/src/mount.hg: Added Mount
+ * gio/src/volumemonitor.hg:
+ * gio/src/volumemonitor.ccg: Added VolumeMonitor.
+
+ * tools/m4/convert_gio.m4: Added necessary conversions.
+
+2008-01-16 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/Makefile_list_of_hg.am_fragment:
+ * tools/m4/convert_gio.m4:
+ * gio/src/filemonitor.hg:
+ * gio/src/filemonitor.hg: Added FileMonitor.
+ * gio/src/file.hg: Tried to wrap monitor_file() and
+ monitor_directory but there is a problem with the GError in
+ the generated code.
+
+ * tools/extra_defs_gen/generate_defs_gio.cc: Added GFileMonitor.
+
+2008-01-16 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/seekable.ccg:
+ * gio/src/seekable.hg: Added methods and vfuncs (though the .defs
+ do not exist for the vfuncs yet.)
+
+2008-01-16 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/file.hg: Added query_file_exists().
+ * glib/src/uriutils.hg:uri_unescape_string(), uri_escape_string():
+ Change the illegal_characters and reserved_chars_allowed parameters
+ to std::string, because they may not be UTF-8
+ See bug #508773.
+
+2008-01-15 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/drive.ccg:
+ * gio/src/drive.hg: eject(), poll_for_media()
+ * gio/src/volume.ccg:
+ * gio/src/volume.hg: mount(), eject():
+ Add method overloads that take no slot.
+
+ * glib/src/uriutils.hg: Fix a typo to fix the build.
+
+2008-01-15 Murray Cumming <murrayc@murrayc.com>
+
+ * glib/src/uriutils.hg: Improved the documentation for uri_unescape_string(),
+ based on the improved C documentation.
+
+2008-01-15 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/drive.ccg:
+ * gio/src/drive.hg:
+ * gio/src/file.ccg:
+ * gio/src/file.hg:
+ * gio/src/fileenumerator.ccg:
+ * gio/src/fileenumerator.hg:
+ * gio/src/fileinputstream.ccg:
+ * gio/src/fileinputstream.hg:
+ * gio/src/fileoutputstream.ccg:
+ * gio/src/fileoutputstream.hg:
+ * gio/src/inputstream.ccg:
+ * gio/src/inputstream.hg:
+ * gio/src/outputstream.ccg:
+ * gio/src/outputstream.hg:
+ * gio/src/volume.ccg:
+ * gio/src/volume.hg: *_async() functions: Rearrange the parameters,
+ so the (optional) cancellable is always after the slot,
+ and so flags and io_priority are always at the end, so they can have
+ default values.
+
+2008-01-15 Murray Cumming <murrayc@murrayc.com>
+
+ * tools/m4/Makefile_list_of_sources.am_fragment:
+ * tools/m4/convert_gio.m4:
+ * tools/m4/convert_glib.m4:
+ * tools/m4/convert_gtkmm.m4: Moved the gio conversions into
+ their own .m4 file, to make it easier to find them.
+
+ * gio/src/cancellable.ccg:
+ * gio/src/cancellable.hg: Use _WRAP_METHOD() for get_current(),
+ which also fixes the refcounting.
+ * glib/src/uriutils.hg: Added documentation and default parameter
+ values.
+
+2.15.1:
+
+2008-01-12 Murray Cumming <murrayc@murrayc.com>
+
+ * glib/glibmm.h: Added uriutils.h
+ * glib/glibmm/private/Makefile.am: Renamed some variables to
+ avoid clashes with the build_shared/ variables, which caused
+ a dist failure involving wrap_init.h
+
+2008-01-11 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/appinfo.hg: Added class documentation.
+ * gio/src/asyncresult.hg:
+ * gio/src/cancellable.hg:
+ * gio/src/drive.hg:
+ * gio/src/file.hg:
+ * gio/src/fileattribute.hg:
+ * gio/src/fileenumerator.hg:
+ * gio/src/fileicon.hg:
+ * gio/src/fileinfo.hg:
+ * gio/src/fileinputstream.hg:
+ * gio/src/fileoutputstream.hg:
+ * gio/src/icon.hg:
+ * gio/src/inputstream.hg:
+ * gio/src/loadableicon.hg:
+ * gio/src/mountoperation.hg:
+ * gio/src/outputstream.hg:
+ * gio/src/seekable.hg:
+ * gio/src/simpleasyncresult.hg:
+ * gio/src/volume.hg: Added @newin2p16 to
+ the documentation.
+
+ * glib/src/Makefile_list_of_hg.am_fragment:
+ * glib/src/uriutils.ccg:
+ * glib/src/uriutils.hg: Added wrappers of (some) of
+ these new g_uri_* functions. Not yet documented.
+
+2008-01-11 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/file.ccg:
+ * gio/src/file.hg: Rename create() to create_file(),
+ create_async() to create_file_async() and
+ create_finish() to create_file_finish() to slightly
+ reduce confusion with the static create*() methods.
+
+2008-01-11 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/Makefile_list_of_hg.am_fragment:
+ * gio/src/seekable.ccg:
+ * gio/src/seekable.hg: Added the Seekable interface, though it
+ has not methods yet.
+ * gio/src/fileinputstream.hg:
+ * gio/src/fileoutputstream.hg: Derive/implement Seekable.
+ * gio/src/icon.hg:
+ * gio/src/inputstream.hg:
+ * gio/src/loadableicon.hg:
+ * gio/src/mountoperation.hg:
+ * gio/src/outputstream.hg:
+ * gio/src/simpleasyncresult.hg:
+ * gio/src/volume.hg: Added class documentation, based on the C
+ documentation.
+
+2008-01-10 Marko Anastasov <marko.anastasov@gmail.com>
+
+ * gio/src/appinfo.ccg:
+ * gio/src/appinfo.hg: Wrapped AppInfo and AppLaunchContext, without
+ the vfuncs.
+ * tools/m4/convert_glib.m4: New conversions.
+ The previous comment on build was not valid.
+
+2008-01-10 Marko Anastasov <marko.anastasov@gmail.com>
+
+ * gio/src/appinfo.ccg:
+ * gio/src/appinfo.hg:
+ * gio/src/Makefile_list_of_hg.am_fragment:
+ Added AppInfo, with only two methods before we see why it
+ doesn't get included in the build.
+
+2008-01-10 Marko Anastasov <marko.anastasov@gmail.com>
+
+ * gio/src/drive.hg:
+ * gio/src/drive.ccg: Added poll_for_media, poll_for_media_finish.
+ * gio/src/fileinputstream.hg:
+ * gio/src/fileoutputstream.hg:
+ * gio/src/inputstream.hg:
+ * gio/src/volume.hg: Modified *_finish functions to take a const
+ AsyncResult.
+
+2008-01-10 Marko Anastasov <marko.anastasov@gmail.com>
+
+ * gio/src/drive.hg: Added missing capability checking functions.
+ * gio/giomm: Updated svn:ignore properties.
+
+2008-01-10 Jonathon Jongsma <jjongsma@gnome.org>
+
+ * gio/src/mountoperation.hg: api change in reply() virtual function and
+ addition of MountOperationResult enumeration
+ * tools/m4/convert_glib.m4: add MountOperationResult enum conversion
+ * gio/src/gio_enums.defs: re-generate enums
+ * gio/src/gio_methods.defs: re-generate methods
+
+2008-01-10 Murray Cumming <murrayc@murrayc.com>
+
+ * Makefile.am:
+ * build_shared/Makefile_build.am_fragment:
+ * build_shared/Makefile_build_extra.am_fragment:
+ * build_shared/Makefile_build_gensrc.am_fragment:
+ * build_shared/Makefile_gensrc.am_fragment:
+ * build_shared/Makefile_gensrc_platform.am_fragment:
+ Copy (and very slightly adjust) the build_shared/ files from
+ gtkmm, which has had multiple sub-libraries for a long time.
+ * gio/giomm/Makefile.am:
+ * gio/src/Makefile.am:
+ * gio/src/Makefile_list_of_hg.am_fragment:
+ * glib/glibmm/Makefile.am:
+ * glib/glibmm/private/Makefile.am:
+ * glib/src/Makefile.am:
+ * glib/src/Makefile_list_of_hg.am_fragment:
+ Adapt to the structure (variable names, mostly) needed by the
+ newer build_shared/ files, so that the giomm library is actually
+ built.
+
+ * tools/m4/convert_glib.m4:
+ * gio/giomm/init.cc:
+ * gio/giomm/init.h:
+ * gio/src/asyncresult.ccg:
+ * gio/src/drive.ccg:
+ * gio/src/drive.hg:
+ * gio/src/file.ccg:
+ * gio/src/file.hg:
+ * gio/src/fileattribute.ccg:
+ * gio/src/fileinputstream.hg:
+ * gio/src/fileoutputstream.hg:
+ * gio/src/volume.ccg:
+ * gio/src/volume.hg: Various build fixes, including adding a flags
+ parameter to unmount and eject methods.
+
+2008-01-10 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/giomm.h: Correct an include.
+ * gio/src/asyncresult.hg:
+ * gio/src/cancellable.hg:
+ * gio/src/drive.hg:
+ * gio/src/file.hg:
+ * gio/src/fileattribute.hg:
+ * gio/src/fileenumerator.hg:
+ * gio/src/fileicon.hg:
+ * gio/src/fileinfo.hg:
+ * gio/src/fileinputstream.hg:
+ * gio/src/fileoutputstream.hg:
+ * gio/src/outputstream.hg:
+ * gio/src/simpleasyncresult.hg:
+ * gio/src/volume.ccg:
+ * gio/src/volume.hg: Correct several includes to use giomm/ instead of
+ glibmm/.
+
+ * configure.in:
+ * examples/Makefile.am_fragment:
+ * tests/Makefile.am_fragment: Include/Link giomm too.
+
+ * tests/Makefile.am:
+ * tests/giomm_simple/Makefile.am:
+ * tests/giomm_simple/giomm_simple.cc:
+ Added a little test, which shows that the library is not being built
+ properly - we get undefined symbols.
+
+2008-01-10 Murray Cumming <murrayc@murrayc.com>
+
+ * tools/extra_defs_gen/generate_defs_gio.cc: Added some types used so
+ far. There are probably more that should be added here.
+ * tools/extra_defs_gen/generate_extra_defs.cc: get_properties():
+ Added warnings and a check to avoid a crash when
+ g_object_interface_list_properties() returns a NULL paramspec, but a
+ non-null properties count, as is happening with GVolume.
+ * gio/src/gio_signals.defs: Generated this from generate_defs_gio.
+
+2008-01-09 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/Makefile_list_of_hg.am_fragment:
+ * gio/src/loadableicon.ccg:
+ * gio/src/loadableicon.hg: Added this, though no methods or vfuncs are
+ wrapped yet.
+ * tools/m4/convert_glib.m4:
+ * gio/src/fileicon.hg:
+ * gio/src/fileinfo.hg: Derive from LoadableIcon and implement it.
+ set_modification_time(): Take a const TimeVal.
+ * gio/src/fileinputstream.ccg:
+ * gio/src/fileinputstream.hg: Added documentation and a version of
+ seek() without the cancellable parameter.
+ * gio/src/gio_docs.xml: Generated from docextract_to_xml.py so we get
+ documentation for methods created by _WRAP_METHOD().
+
+2008-01-09 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/file.ccg:
+ * gio/src/file.hg: Added method documentation for most *_async methods.
+ See also GTK+ bug #508297.
+ Removed one superfluous load_partial_contents_async() method overload.
+ * gio/src/fileenumerator.hg: Corrected documentation for close_async().
+
+2008-01-08 Murray Cumming <murrayc@murrayc.com>
+
+ * configure.in: Uncomment GTKMM_DOXYGEN_INPUT_SUBDIRS to fix the
+ reference documentation build (no idea when this happened) and add
+ gio to the list of directories.
+
+ * glib/src/optioncontext.ccg:
+ * glib/src/optioncontext.hg: Added get_help().
+
+ * gio/src/gio_enums.defs: Regenerated with enums.pl
+ * gio/src/gio_methods.defs: Regenerated with h2defs.py.
+
+ * tools/m4/convert_glib.m4:
+ * gio/src/fileattribute.hg: Renamed FileAttributeFlags to
+ FileAttributeInfoFlags, as it is in gio.
+
+ * gio/src/fileenumerator.hg:
+ * gio/src/asyncresult.hg:
+ * gio/src/cancellable.hg:
+ * gio/src/drive.hg:
+ * gio/src/file.hg: Added class documentation, and some method
+ documentation, based on the C documentation.
+ Many giomm classes still need documentation.
+
+2008-01-08 Murray Cumming <murrayc@murrayc.com>
+
+ * gio/src/asyncresult.hg:
+ * gio/src/cancellable.hg:
+ * gio/src/fileattribute.hg:
+ * gio/src/fileenumerator.hg:
+ * gio/src/fileinputstream.hg:
+ * gio/src/fileoutputstream.hg:
+ * gio/src/icon.hg:
+ * gio/src/inputstream.hg:
+ * gio/src/mountoperation.hg:
+ * gio/src/outputstream.hg:
+ * gio/src/simpleasyncresult.hg:
+ Made some whitespace more consistent with the rest of glibmm.
+ In particular, white space alignment in .hg files will often be even worse
+ when seen in the generated .h files.
+
+ * gio/src/drive.hg: get_icon(),
+ * gio/src/file.hg: read(),
+ * gio/src/fileicon.hg: get_file(),
+ * gio/src/fileinfo.hg: get_icon(),
+ * gio/src/volume.hg: get_drive(), get_icon():
+ For the const versions, actually return a const RefPtr.
+
+2.15.0:
+
+2007-12-28 Marko Anastasov <marko.anastasov@gmail.com>
+
+ * tools/extra_defs_gen/generate_defs_gio.cc:
+ * tools/extra_defs_gen/Makefile.am: Build a separate extra defs
+ generating program for gio. Currently the program would crash
+ with get_defs() calls with gio types.
+ * configure.in: Define GIOMM_CFLAGS and GIOMM_LIBS.
+
+2007-12-28 Marko Anastasov <marko.anastasov@gmail.com>
+
+ * gio/src/gio_enums.defs:
+ * gio/src/gio_methods.defs: Regenerated with enums.pl and h2defs.py.
+
+2007-12-28 Marko Anastasov <marko.anastasov@gmail.com>
+
+ * gio/src/icon.ccg:
+ * gio/src/icon.hg:
+ * gio/src/inputstream.ccg:
+ * gio/src/inputstream.hg:
+ * gio/src/Makefile_list_of_hg.am_fragment: Added files missing from
+ the import.
+
+ Set svn:ignore properties for gio.
+
+2007-12-28 Murray Cumming <murrayc@murrayc.com>
+
+ * configure.in: Mention the new gio/giommconfig.h in AM_CONFIG_HEADER().
+ * gio/Makefile.am: Change references to the giomm-2.0.pc to giomm-2.4.pc.
+ * gio/src/Makefile_list_of_hg.am_fragment: Remove icon.hg and inputstream.hg
+ because they do not exist in svn.
+ * gio/src/outputstream.hg: Comment out set_pending() because gmmproc complains
+ about the wrong number of parameters.
+
+ This fixes the build, though I don't know yet if everything is working properly.
+
+2007-12-28 Marko Anastasov <marko.anastasov@gmail.com>
+
+ * configure.in: Fixed typo.
+
+2007-12-28 Marko Anastasov <marko.anastasov@gmail.com>
+
+ * gio/*:
+ * configure.in:
+ * Makefile.am:
+ * tools/m4/convert_glib.m4: Checked in sources from giomm. Build
+ needs to be fixed to work with scripts in build_shared/.
+
+2007-12-28 Murray Cumming <murrayc@murrayc.com>
+
+ * glib/glibmm/ustring.h: Added @newin2p16 to compose() and format()
+ documentation.
+ * glib/src/keyfile.ccg:
+ * glib/src/keyfile.hg: set_double_list(): Make the ArrayHandle argument const.
+ This could not have been used before.
+
+2007-12-28 Murray Cumming <murrayc@murrayc.com>
+
+ * glib/src/keyfile.hg: Add class documentation from the glibmm-2-14 branch.
+
+2007-12-28 Murray Cumming <murrayc@murrayc.com>
+
+ * tools/m4/class_gobject.m4:
+ * tools/m4/ctor.m4:
+ _INITIALLY_UNOWNED_SINK: Rename from INITIALLY_UNOWNED_SINK,
+ for consistency, because this could be used directly from .ccg files
+ that use _CONSTRUCT().
+ Remove the debug code for the else case.
+
+2007-12-28 Murray Cumming <murrayc@murrayc.com>
+
+ * tools/m4/class_gobject.m4:
+ * tools/m4/ctor.m4:
+ Added the _DERIVES_INITIALLY_UNOWNED macro, for use
+ after _CLASS_GOBJECT(), if the C type derives
+ from GInitiallyUnowned rather than just GObject.
+ (Not for use with GtkObject-derived classes).
+ This does g_object_ref_sink() so that we get a normally-behaved
+ GObject.
+
+2007-12-28 Murray Cumming <murrayc@murrayc.com>
+
+ * scripts/c_std.m4: Added this, to fix the build. I forgot to
+ add this when merging the change from glibmm-2-14 on 2007-10-22.
+
+2007-12-28 Murray Cumming <murrayc@murrayc.com>
+
+ * glib/glibmm/refptr.h: Use @newin2p16 in the reset() documentation.
+
+2007-12-28 Murray Cumming <murrayc@murrayc.com>
+
+ * glib/glibmm/refptr.h: Deprecate clear(), replacing it with
+ reset(), because people often do treemodel.clear() when they
+ mean treemodel->clear(). reset() is consistent with std::auto_ptr<>.
+
+2007-12-28 Daniel Elstner <danielk@openismus.com>
+
+ * tools/pm/Output.pm (output_wrap_property): Refuse to generate
+ a wrapper for a construct-only property which is also write-only,
+ and display an error message accordingly. (#436789)
+
+2007-12-28 Murray Cumming <murrayc@murrayc.com>
+
+ * glib/glibmm/error.cc:
+ * glib/glibmm/exception.cc:
+ * glib/src/convert.ccg:
+ * glib/src/date.ccg: Include glib.h instead of gmessages.h or
+ gtestutils.h so this builds with all versions of glib.
+
+2007-12-17 Marko Anastasov <marko.anastasov@gmail.com>
+
+ * glib/glibmm/exception.cc:
+ * glib/glibmm/error.cc:
+ * glib/src/date.ccg:
+ * glib/src/convert.ccg: Include gtestutils.h instead of gmessages.h
+ for g_assert* adapting to glib head.
+
+2007-11-20 Sebastien Bacher <seb128@ubuntu.com>
+
+ * glib/glibmm/object.cc: fix build issue when using gcc4.3 (#498438)
2007-10-22 Murray Cumming <murrayc@murrayc.com>
@@ -24,7 +2292,11 @@
g*mmconfig.h so the *_DISABLE_DEPRECATED define is set for deprecated
classes also when included from other code.
-2.14.1:
+2007-10-05 Philipp Kerling <philipp@gmail.com>
+
+ * tools/extra_defs_gen/generate_extra_defs.cc:
+ Also create defs for interfaces, by refing and unrefing them
+ temporarily.
2007-09-29 Rémi Cardona <remi@gentoo.org>
@@ -54,18 +2326,33 @@
* tools/m4/class_interface.m4: Use wrap_auto_interface<>()
instead of wrap_auto() for interfaces.
-2.14.0:
-
2007-09-06 Daniel Elstner <danielk@openismus.com>
- * glib/src/regex.{ccg,hg} (Regex): Some cosmetic cleanup. Also
- replace C-style casts in default argument values with static_cast<>.
- (escape_string): Wrap missing function.
- (match_full): Rename to and add as overloads of match().
- (match_all_full): Rename to and add as overloads of match_all().
- (split_full): Rename to and add as overloads of split().
-
- This has freeze-break approval from the release team.
+ * glib/src/regex.{ccg,hg} (Regex): Some cosmetic cleanup. Also
+ replace C-style casts in default argument values with static_cast<>.
+ (escape_string): Wrap missing function.
+ (match_full): Rename to and add as overloads of match().
+ (match_all_full): Rename to and add as overloads of match_all().
+ (split_full): Rename to and add as overloads of split().
+
+2007-09-03 Daniel Elstner <danielk@openismus.com>
+
+ * glib/glibmm/ustring.cc (ustring::FormatStream::FormatStream): Use
+ the global C++ locale instead of forcing the environment's locale
+ onto the formatting stream. This lifts an unnecessary restriction
+ at the cost of requiring users to call std::locale::global().
+ * glib/glibmm/ustring.h (ustring): Advertise the new compose and
+ format API in the class documentation.
+ (ustring::format): Correct a couple of cut'n'paste mistakes -- ouch.
+ Also add two more overloads so that format() now takes up to eight
+ arguments. Extent the method documentation, too.
+ (ustring::Stringify): Explicitly declare the class as noncopyable.
+ (ustring::compose): Qualify calls to method ustring::compose_argv()
+ in order to avoid surprising name lookup results in the context of
+ the template instantiation.
+
+ * docs/reference/Doxyfile.in (PREDEFINED): Add GLIBMM_HAVE_WIDESTREAM
+ so that the wide stream I/O operators show up in the documentation.
2007-08-16 Jonathon Jongsma <jjongsma@gnome.org>
@@ -74,6 +2361,94 @@
and footer to make it easier to integrate with library.gnome.org, per a
request by Frederic Peters
+2007-08-15 Daniel Elstner <danielk@openismus.com>
+
+ * glib/glibmm/ustring.{cc,h} (ustring::compose_argv): Rename
+ "format" argument to "fmt" to avoid name clashes with the method
+ of the same name.
+ (ustring::compose): Make the type of each substitution parameter
+ a template argument, and invoke ustring::format() implicitly for
+ non-string arguments. Explicit invocation of ustring::format() is
+ still necessary in order to apply I/O manipulators to an argument.
+ (ustring::Stringify): New auxiliary template class used in the
+ implementation of ustring::compose().
+
+ * examples/compose/main.cc (show_examples): Omit explicit calls
+ to ustring::format() where possible.
+
+2007-08-12 Daniel Elstner <danielk@openismus.com>
+
+ * examples/compose: New example demonstrating the message
+ compose and format features.
+ * examples/compose/main.cc: New file.
+ * examples/compose/Makefile.am: New file.
+
+ * examples/Makefile.am (example_dirs): Add compose directory.
+ * configure.in (AC_CONFIG_FILES): Add examples/compose/Makefile.
+
+2007-08-12 Daniel Elstner <danielk@openismus.com>
+
+ * build_shared/Makefile_build.am_fragment (all_includes): Add
+ -I$(top_builddir) in order to allow <config.h> to be included.
+
+ * glib/glibmm/ustring.{cc,h}: Include <config.h> for the
+ definition of SIZEOF_WCHAR_T.
+ (ustring::FormatStream::stream): Replace accessor with template
+ method that passes its argument onto the stream. Add overload
+ for "const char*" to enable the use of UTF-8 string literals as
+ arguments to ustring::format().
+ (ustring::FormatStream::FormatStream): Handle exceptions on
+ failure to initialize the locale gracefully.
+ (ustring::format): Adapt to the modified stream() method.
+ (operator<<): Add missing call to ustring::raw() to get the
+ number of bytes instead of code points. Oops.
+
+2007-08-12 Daniel Elstner <danielk@openismus.com>
+
+ * glib/glibmm/ustring.{cc,h}: Add preliminary implementation of
+ a message compose and format API (bug #399216). The API design
+ is not final and still open for discussion.
+ (ustring::compose): New set of static methods for composing
+ internationalized text messages by substituting placeholders
+ in a template string.
+ (ustring::format): New set of static methods for locale-dependent
+ formatting of numbers and other streamable objects to strings.
+ (ustring::compose_argv): New static method which implements the
+ common functionality of the compose() overloads.
+ (ustring::FormatStream): New helper class which implements the
+ type-independent functionality of the format() templates.
+ (operator>>): New operator overload for std::wistream.
+ (operator<<): New operator overload for std::wostream.
+
+2007-08-12 Daniel Elstner <danielk@openismus.com>
+
+ * scripts/dk-feature.m4: New file, defining M4 utility macros for
+ feature testing. These macros are part of my personal autoconf
+ library and are not specific to glibmm, as indicated by the "DK_"
+ namespace prefix.
+
+ * configure.in (AC_INIT): Switch to the non-deprecated usage of
+ AC_INIT() by passing project name and version number as arguments.
+ This is necessary to define a couple of auxiliary macros.
+ (AC_PREREQ): Bump Autoconf version requirement to 2.58.
+ (AC_CONFIG_SRCDIR): Point to project-specific source file.
+ (AC_CONFIG_MACRO_DIR): Declare scripts/ as M4 directory.
+ (AM_INIT_AUTOMAKE): Switch to non-deprecated usage.
+ (AC_CHECK_SIZEOF): Use to determine the size of wchar_t.
+ (DK_CHECK_FEATURE): Use new feature test macro to check for
+ support of wide-character streams.
+
+ * config.h.in (SIZEOF_WCHAR_T): Add #undef template.
+ * glib/glibmmconfig.h.in (GLIBMM_HAVE_WIDE_STREAM): Likewise.
+
+2007-08-04 Daniel Elstner <daniel.kitta@gmail.com>
+
+ * containerhandle_shared.h (TypeTraits<bool>): Rewrite completely
+ broken type adapter (bug #406960).
+ * src/keyfile.{ccg,hg}: Fix the implementation to correctly use
+ ArrayHandle<>. Fix compilation with the new ArrayHandle<bool>
+ code.
+
2.13.9:
2007-07-28 Murray Cumming <murrayc@murrayc.com>
diff --git a/libs/glibmm2/INSTALL b/libs/glibmm2/INSTALL
index 5458714e1e..d3c5b40a94 100644
--- a/libs/glibmm2/INSTALL
+++ b/libs/glibmm2/INSTALL
@@ -2,7 +2,7 @@ Installation Instructions
*************************
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
-2006 Free Software Foundation, Inc.
+2006, 2007 Free Software Foundation, Inc.
This file is free documentation; the Free Software Foundation gives
unlimited permission to copy, distribute and modify it.
@@ -67,6 +67,9 @@ The simplest way to compile this package is:
all sorts of other programs in order to regenerate files that came
with the distribution.
+ 6. Often, you can also type `make uninstall' to remove the installed
+ files again.
+
Compilers and Options
=====================
diff --git a/libs/glibmm2/Makefile.am b/libs/glibmm2/Makefile.am
index 633050b5bf..249db9878b 100644
--- a/libs/glibmm2/Makefile.am
+++ b/libs/glibmm2/Makefile.am
@@ -1,14 +1,14 @@
ACLOCAL_AMFLAGS = -I scripts
-SUBDIRS = tools glib scripts
+SUBDIRS = tools glib gio examples scripts tests MSVC_Net2005 MSVC_Net2008 docs
DIST_SUBDIRS = $(SUBDIRS)
EXTRA_DIST = build_shared/Makefile_build.am_fragment \
build_shared/Makefile_build_gensrc.am_fragment \
build_shared/Makefile_gensrc.am_fragment \
- build_shared/Makefile_gensrc_platform.am_fragment \
- build_shared/Makefile_build_extra.am_fragment \
- CHANGES README.win32
+ build_shared/Makefile_conditional.am_fragment \
+ README.win32 \
+ COPYING COPYING.tools
all-local:
@@ -27,7 +27,7 @@ dist-hook:
echo; echo
-# include $(top_srcdir)/docs/Makefile_web.am_fragment
+include $(top_srcdir)/docs/Makefile_web.am_fragment
doc_tarball_files = \
docs/images/*.gif \
@@ -60,5 +60,106 @@ doc-clean: doc-clean-recursive
doc-rebuild:
(cd docs && $(MAKE) $(AM_MAKEFLAGS) doc-rebuild)
-.PHONY: post-html post-html-local post-html-recursive doc-clean doc-clean-recursive doc-rebuild
+SVN_REV=`svnversion -n`
+URL_KEY=URL:
+SVN_PATH=`svn info |grep "$(URL_KEY)" |sed -e "s/$(URL_KEY)\s*//"`
+ROOT_KEY=Repository Root:
+SVN_ROOT=`svn info |grep "$(ROOT_KEY)" |sed -e "s/$(ROOT_KEY)\s*//"`
+
+tag-release: distcheck
+ @svn cp -r$(SVN_REV) -m "tag $(PACKAGE) $(VERSION)" $(SVN_PATH) $(SVN_ROOT)/tags/$(PACKAGE)-$(VERSION) \
+ || (echo "Tagging failed. Do you have local changes that are not committed?" \
+ && echo "Try running 'svn update'." && false)
+ @echo "Release Tagged."
+
+upload-release: tag-release
+ scp $(DIST_ARCHIVES) master.gnome.org:
+ @echo "Tarball uploaded. Now run install-module on master.gnome.org"
+ @echo "[hint: make install-module]"
+
+RELEASE_ANNOUNCE_LIST = gnome-announce-list@gnome.org, gtkmm-list@gnome.org
+release-announce:
+ @echo "Please send the following announcement to:"
+ @echo "$(RELEASE_ANNOUNCE_LIST)"
+ @echo ""
+ @echo "Subject: ANNOUNCE: $(PACKAGE) $(VERSION) released"
+ @echo ""
+ @echo "============================== CUT HERE =============================="
+ @echo "* ABOUT $(PACKAGE) *"
+ @echo ""
+ @echo " $(PACKAGE) is a C++ API for glib and gio. It is useful on its own "
+ @echo " and is a dependency of gtkmm, the C++ API for GTK+."
+ @echo ""
+ @echo " $(PACKAGE) $(GLIBMM_RELEASE) wraps new API in glib $(GLIBMM_RELEASE), including the gio library, "
+ @echo " and is API/ABI-compatibile with older versions of glibmm back to "
+ @echo " version 2.4. It is a version of the glibmm-2.4 API."
+ @echo ""
+ @echo " For more information, please visit http://gtkmm.org/"
+ @echo ""
+ @echo "* DOWNLOAD *"
+ @echo ""
+ @echo " Source packages for $(PACKAGE) (as well as API-stable bindings for the "
+ @echo " rest of the GNOME platform) can be downloaded from:"
+ @echo ""
+ @echo " http://www.gtkmm.org/download.shtml"
+ @echo ""
+ @echo "* DEVELOPMENT *"
+ @echo ""
+ @echo " There is active discussion on the mailing list: "
+ @echo " http://www.gtkmm.org/mailinglist.shtml"
+ @echo " and in the #c++ channel on irc.gnome.org"
+ @echo ""
+ @echo " gtkmm and $(PACKAGE) stay in-sync with GTK+ by following the official "
+ @echo " GNOME release schedule:"
+ @echo ""
+ @echo " http://www.gnome.org/start/unstable/"
+ @echo ""
+ @echo "* CHANGES *"
+ @echo ""
+ @echo " --- INSERT NEWS HERE ---"
+ @echo "============================== CUT HERE =============================="
+
+install-module:
+ ssh master.gnome.org install-module $(DIST_ARCHIVES)
+
+release: upload-release release-announce
+
+#FIXME: use generic paths, rather than my particular paths
+H2DEF = env python /opt/gnome2/share/pygobject/2.0/codegen/h2def.py
+DEFS_INC_DIR = /opt/gnome2/include
+GEN_ENUM = env perl ./tools/enum.pl
+GEN_EXTRA_DEFS_GLIB = ./tools/extra_defs_gen/generate_extra_defs
+GEN_EXTRA_DEFS_GIO = ./tools/extra_defs_gen/generate_defs_gio
+DOCEXTRACT = /home/jonathon/gnome-build/pygobject/codegen/docextract_to_xml.py
+
+defs: glib-defs gio-defs docextract
+ @echo
+ @echo "*** Make sure to examine the .defs files to make sure they look reasonable"
+ @echo
+
+glib-defs:
+ $(H2DEF) $(DEFS_INC_DIR)/glib-2.0/glib/*.h > glib/src/glib_functions.defs
+ $(H2DEF) $(DEFS_INC_DIR)/glib-2.0/gobject/*.h > glib/src/gobject_functions.defs
+ $(H2DEF) $(DEFS_INC_DIR)/glib-2.0/gmodule.h > glib/src/gmodule_functions.defs
+ $(GEN_ENUM) $(DEFS_INC_DIR)/glib-2.0/glib/*.h > glib/src/glib_enums.defs
+ $(GEN_ENUM) $(DEFS_INC_DIR)/glib-2.0/gobject/*.h > glib/src/gobject_enums.defs
+ $(GEN_ENUM) $(DEFS_INC_DIR)/glib-2.0/gmodule.h > glib/src/gmodule_enums.defs
+
+gio-defs:
+ $(H2DEF) $(DEFS_INC_DIR)/glib-2.0/gio/*.h \
+ $(DEFS_INC_DIR)/gio-unix-2.0/gio/*.h > gio/src/gio_methods.defs
+ $(GEN_ENUM) $(DEFS_INC_DIR)/glib-2.0/gio/*.h \
+ $(DEFS_INC_DIR)/gio-unix-2.0/gio/*.h > gio/src/gio_enums.defs
+ $(GEN_EXTRA_DEFS_GIO) > gio/src/gio_signals.defs
+
+docextract:
+ $(DOCEXTRACT) -s ../glib/glib \
+ -s ../glib/docs/reference/glib \
+ -s ../glib/gobject \
+ -s ../glib/docs/reference/gobject > glib/src/glib_docs.xml
+ $(DOCEXTRACT) -s ../glib/gio \
+ -s ../glib/docs/reference/gio > gio/src/gio_docs.xml
+
+
+.PHONY: post-html post-html-local post-html-recursive doc-clean doc-clean-recursive doc-rebuild release tag-release upload-release release-announce install-module defs glib-defs gio-defs docextract
diff --git a/libs/glibmm2/NEWS b/libs/glibmm2/NEWS
index c65cc36191..d784d122c1 100644
--- a/libs/glibmm2/NEWS
+++ b/libs/glibmm2/NEWS
@@ -1,3 +1,427 @@
+2.20.0 (stable):
+
+* Documentation fixes (Daniel Elstner)
+
+2.19.8 (unstable):
+(2.19.4 to 2.19.8 were skipped)
+
+* Added FILE_CREATE_REPLACE_DESTINATION enum value.
+* Added Error::TOO_MANY_OPEN_FILES error code.
+* Fix some compiler warnings about extra ;s.
+ (Murray Cumming)
+
+2.19.3 (unstable):
+
+* New API:
+ * BufferedInputStream: buffer_size property
+ * BufferedOutputStream: buffer_size, auto_grow properties
+ * DataInputStream: byte_order, newline_type properties
+ * DataOutputStream: byte_order property
+ * FilterInputStream: close_base_stream property, get/set_close_base_stream()
+ * FilterOutputStream: close_base_stream property, get/set_close_base_stream()
+ * UnixInputStream: fd and close_fd properties, get_fd(), get/set_close_fd()
+ * UnixOutputStream: fd and close_fd properties, get_fd(), get/set_close_fd()
+* Make licenses consistent with eachother (library gpl vs. lesser gpl, etc)
+ (Deng Xiyue)
+* Fixed some problems when building with exceptions disabled (Murray Cumming)
+* Build fixes (Theppitak Karoonboonyanan)
+
+2.19.2 (unstable):
+
+* File: Added make_directory_with_parents() method overload with no parameter.
+ Bug #566003 (Philip Belemezov).
+* NoteTree: Do not use a non-ASCII dash character in a comment, to
+ avoid the MSVC++ warning C4819 with Visual Studio 2008.
+ (Tao Wang) Bug #568072
+* spawn_*() functions: Added alternative API for when
+ GLIBMM_EXCEPTIONS_ENABLED is not enabled. (Murray Cumming)
+ Bug #565487 (Jonathon Jongsma)
+* uri_*() functions: Fix memory leak.
+ (Jonathan Jongsma) Bug #566845 (Jason Kasper)
+* ustring: Add an overload which takes only a format string and no arguments
+ to be substituted. (Daniel Elstner) Bug #506394.
+
+2.19.1 (unstable):
+
+ * Fix accidental ABI breakage in 2.19.0 caused by adding default handlers for
+ new Gio::Drive signals
+
+2.19.0 (unstable):
+
+ * wrapped new glib 2.19.x API
+ * Gio::AppInfo: get_commandline(), can_delete(), do_delete(),
+ reset_type_associations(), launch_default_for_uri()
+ * Gio::Drive: new signals changed, disconnected, and eject_button
+ * Gio::Icon: create(std::string), to_string()(),
+ * Gio::Mount: guess_content_type_sync(), is_shadowed(), shadow(), unshadow()
+ * Gio::content_type_from_mine_type();
+ * Gio::DesktopAppInfo: create_from_keyfile()
+ * Gio::Emblem: new class
+ * Gio::EmblemedIcon: new class
+ * Gio::MemoryOutputStream: new class
+ * Bugs Fixed:
+ * 555743 - warning in glibmm
+ * 562716 - warning fixing cause more warnings.
+ * 396963 - Add Glib::signal_idle().connect_once()
+ * Thanks to contributions from Przemysław Grzegorczyk, Dave Foster, Hubert
+ Figuiere, and Jonathon Jongsma for changes in this release
+
+2.18.1 (stable):
+
+ * Many windows build improvements
+ * Bugs fixed:
+ * 506410 - Call of overloaded Stringify is ambiguous
+ * 529496 - Gio::Error::HOST_NOT_FOUND clashes with a netdb.h #define
+ * 539891 - Can't use doxygen commands in *_override.xml
+ * 555576 - name clash in fileinfo.h with winbase.h from VS2005
+ * 556315 - Extra defs generation utility forgets to generate signals for inter...
+ * 556387 - FileEnumerator::next_file reference counting problems
+ * Thanks to contributions from Armin Burgmeier, Jonathon Jongsma, José
+ Alburquerque, Murray Cumming, and Szilárd Pfeiffer
+
+2.18.0 (stable):
+
+ * Bug #550789: Fixed a licensing issue with some of the tools distributed with
+ the source tarball (Murray Cumming)
+
+2.17.3 (unstable):
+
+ * More Glib::NodeTree improvements (Szilárd Pfeiffer, Murray Cumming)
+ * Windows build fixes (Armin Burgmeier)
+
+2.17.2 (unstable):
+
+ * Changes to API that was added in this unstable series:
+ * Glib::Tree (wrapper around GNode) renamed to Glib::NodeTree to avoid
+ confusion with GTree
+ * pass the node to the traversal the callback (Szilárd Pfeiffer)
+ * Move TraverseFlags inside the NodeTree class (Murray Cumming)
+ * New API:
+ * Added the drive_eject_button signal (Murray Cumming)
+ * Bug Fixes:
+ * #423990: glibmm et al don't recognize new GNU m4 (Damien Carbery)
+ * #529496: Gio::Error::HOST_NOT_FOUND clashes with a netdb.h #define (Murray
+ Cumming)
+ * #523043: Initialization of Glib::ObjectBase for derived types should be
+ mentioned in documentation (Moritz Ulrich)
+ * #506410: Call of overloaded Stringify is ambiguous (Szilárd Pfeiffer,
+ Murray Cumming)
+
+2.17.1 (unstable):
+
+ * New API: (Murray Cumming)
+ * Gio::File: make_directory_with_parents(), query_file_type(), monitor().
+ * Gio::FileEnumerator: get_container().
+ * Gio::Mount: guess_content_type() and guess_content_type_finish().
+ * Gio:ThemedIcon: prepend_name().
+ * Gio::Volume: get_activation_root().
+ * Bug Fixes:
+ * #512348: provide documentation about threadsafety of
+ Glib::Thread::create() when the slot object is of type sigc::trackable (Chris Vine)
+ * #538803: minor fixes to Glib::Tree (Levi Bard)
+ * #540656: Pass NULL in a couple functions instead of an empty string allow
+ files to be overwritten (Armin Burgmeier)
+ * #540875: add documentation for Glib::OwnershipType (Johannes Schmid)
+ * #542929: Fix some compiler warnings (Benjamin Herr)
+ * Fix AppLaunchContext::get_display(),
+ AppLaunchContext::get_startup_notify_id() to use a list of Gio::File, not
+ filepath string. properly documented we know that this is correct. It's an
+ API break but this function could nothave worked before. (Murray)
+ * Bug #543292: Fix visual studio project file (Jens Georg)
+ * Added Keyfile example (Murray Cumming)
+
+2.17.0 (unstable):
+
+ * Added copy constructor and assignment operator, made GDate constructor visible (José
+ Alburquerque)
+ * Added Glib::Tree, a wrapper for GNode, providing an N-ary tree container, more or
+ less like a standard C++ container (Levi Bard)
+ * Bug #529648 - give helpful warning message when library user forgets to initialize the
+ library (Jonathon Jongsma)
+ * Bug #529533 - Fix bug that prevented for Gio::Mount, Gio::Drive, and Gio::Volume from
+ being wrapped for some backend implementations (Jonathon Jongsma)
+
+2.16.2 (stable):
+
+ * Bug 526831 – G_OPTION_REMAINING no longer works with OptionEntry (Murray
+ Cumming)
+ * Bug 527687 – ustring::erase(iterator) incorrect for non ascii character
+ (Murray Cumming)
+ * add API documentation for spawn_* functions (Murray Cumming)
+ * fix possible memory leak in OptionEntr (Murray Cumming)
+
+2.16.1 (stable):
+
+* Reference-counting bugfix in Gio::File::create() and Gio::File::replace()
+ (Murray Cumming)
+* Include Gio::Error header in headers that have API that can throw this
+ exception (Murray Cumming)
+* Improve documentation (Murray Cumming)
+* Build fixes for giomm on win32 (Jonathon Jongsma)
+* fix warning with g++ 4.3 (Tim Retout)
+
+2.16.0 (stable):
+
+Changes compared to glibmm 2.14:
+
+* New Gio API. Check for giomm-2.4 with pkg-config to use this.
+ (Marko Anastasov, Jonathon Jongsma, José Alburquerque, Murray Cumming)
+* New Glib::Checksum class.
+ (Naveen Verma, Murray Cumming)
+* New uri helper functions: uri_unescape_string(), uri_parse_scheme(),
+ uri_escape_string().
+ (Murray Cumming)
+
+2.15.8 (unstable):
+
+* File: load_contents(), load_contents_finish(), load_partial_contents_finish():
+ Use char*& instead of char** for contents.
+ Use std::string& instead of char** for etag_out.
+ Added method overloads without cancellable.
+ (Murray Cumming)
+* Improved documentation: Mention exceptions instead of errors.
+
+2.15.7 (unstable):
+
+* File:
+ - Added query_filesystem_info_async() and
+ query_filesystem_info_finish() because these were added to the C API.
+ (Murray Cumming)
+ - Renamed contains_file() to file_has_prefix() because this was changed in the
+ C API.
+ (Wouter Bolsterlee)
+* ThemedIcon: Added append_name() because this was added to the C API.
+ (Murray Cumming)
+
+Glib:
+* Renamed uri_get_scheme() to uri_parse_scheme() because this was changed
+ in the C API.
+ (Wouter Bolsterlee)
+
+Documentation:
+* Corrections to the .devhelp file generation.
+ (Jonathon Jongsma. Bug #518673)
+
+
+2.15.6 (unstable):
+
+Gio:
+* Removed most vfuncs, because they are not useful to application developers,
+ and are a likely source of errors. (Murray Cumming)
+* DesktopAppInfo:
+ - Added Added create(), create_from_file(),
+ is_hidden() and set_desktop_env()
+ Renamed new_from_file() to create_from_file().
+ (José Alburquerque)
+* File: equal(), get_relative_file(), contains_file(): Take const File
+ parameters.
+* FileAttributeInfoList: Added dup().
+* MemoryInputStream: Added add_data(const void* data, gssize len).
+* Mount: Really added signals.
+* MountOperation: Wrapped the ask-question signal.
+ (Murray Cumming)
+* Volume:
+ - Added should_automount().
+ (Marko Anastasov)
+ - Really added signals.
+ (Murray Cumming)
+* UnixOutputStream, DataOutputStream, DataInputStream: Made constructors
+ protected.
+ (Marko Anastasov)
+
+
+Documentation:
+* Install a devhelp file like the existing gtkmm one.
+ (Jonathon Jongsma)
+
+2.15.5 (unstable)
+
+Gio:
+* File, Mount, Volume:
+ Updated for latest gio API changes, adding a MountFlags parameter to some
+ methods.
+ (Jonathon Jongsma)
+* Volume, VolumeMonitor, Added some vfuncs, though we might remove these
+ later as they seem useless and likely to be sources of problems.
+ (Murray Cumming)
+
+Glib:
+* Actually install gi18n-lib.h
+ (Takao Fujiwara. Bug #515133)
+
+2.15.4 (unstable):
+
+Glib:
+
+* AppInfo: Added vfuncs.
+ (Jonathon Jongsma)
+* Added BufferedOutputStream, DataInputStream and DataOutputStream, and
+ FilterOutputStream.
+ (Jonathon Jongsma)
+* Cancellable: Added the signal.
+ (Murray Cumming)
+* Added ContentType functions.
+ (Jonathon Jongsma)
+* File:
+ - Added overloads of create_file(), remove(), trash(),
+ make_directory(), make_symbolic_link(), query_settable_attributes(),
+ query_writable_namespaces(), query_filesystem_info(),
+ query_default_handler() and mount_mountable(() without cancellable
+ parameters.
+ (Murray Cumming)
+ - Added copy_attributes(), added mount_enclosing_volume(),
+ mount_enclosing_volume_finish(), find_enclosing_mount(), and
+ find_enclosing_mount_finish().
+ (Murray Cumming)
+ - set_attributes_from_info(): Reordered parameters so we can have default
+ values.
+ (Murray Cumming)
+ - Added copy_async(), with overloads without slot_progress. copy_finish(),
+ query_default_handler().
+ (Marko Anastasov)
+ - find_enclosing_mount(), append_to(): Reordered parameters and added
+ overloads without cancellable.
+ (Murray Cumming)
+ - Added non-cancellable set_attribute_string(), set_attribute_byte_string(),
+ set_attribute_{uint32, int32, uint64, int64}.
+ (José Alburquerque)
+* Added FilenameCompleter.
+ (Murray Cumming)
+* LoadableIcon:
+ - Derive from Icon, and no longer derive FileIcon from Icon directly.
+ (Murray Cumming)
+ - Wrapped some vfuncs and some extra methods.
+ (Jonathon Jongsma)
+* Added MemoryInputStream.
+ (Jonathon Jongsma)
+* Added ThemedIcon
+ (Murray Cumming)
+* Added UnixInputStream, UnixOutputStream, and DesktopAppInfo, available only
+ on Unix/Linux.
+ (José Alburquerque, Murray Cumming)
+* Volume: Added get_mount(), get_identifier(), enumerate_identifiers().
+ (Marko Anastasov)
+* VolumeMonitor: Added signals and properties.
+ (Murray Cumming)
+
+Build:
+* Use local gmmproc files again, instead of only installed ones.
+ (Murray Cumming)
+* Fix compile with GCC 4.3.
+ (Kjartan Maraas)
+
+
+2.15.3 (unstable):
+
+Gio:
+* FilterInputStream: Really wrap this.
+* VolumeMonitor: Workaround a crash in gio due to the
+ eccentric use of the GType system to discover GVolumeMonitor
+ implementations. See gio bug #511814.
+* Added Gio::Error exception.
+* Added more method overloads without optional parameters, and
+ reordered more parameters to allow default values.
+ (Murray Cumming)
+* giomm.h: Added includes.
+ (Jonathan Jongsma)
+
+* Note that there are some examples in the gtkmm-documentation module.
+
+
+2.15.2 (unstable):
+
+Glib:
+
+* Checksum: New class, wrapping GChecksum.
+ (Naveen Verma. Bug #510235)
+* ObjectBase: Added connect_property_changed_with_return()
+ because connect_property_changed() does not return a sigc::connection.
+ Bug #433984 (Philip Langdale, Kalle Vahlman).
+* enums.pl .defs generator: Handle parantheses.
+ (Marko Anastasov. Bug #498621)
+
+Gio:
+* Added FilterInputStream, Mount, FileMonitor, VolumeMonitor.
+ (Marko Anastasov, Murray Cumming)
+* Many methods' parameters have been reordered so we can
+ add default parameter values.
+* Many methods now have overloads with less parameters.
+ (Murray Cumming, José Alburquerque, Marko Anastasov)
+
+
+2.15.1 (unstable):
+
+Gio:
+* Actually build the giomm library.
+* Added API reference documentation.
+ (Murray Cumming)
+* Added AppInfo and AppLaunchContext.
+* Drive:
+ - Added poll_for_media() and poll_for_media_finish().
+ - Added capability-checking functions.
+ (Marko Anastasov)
+* File: Renamed create() to create_file(),
+ create_async() to create_file_async() and
+ create_finish() to create_file_finish() to slightly
+ reduce confusion with the static create*() methods.
+* FileInputStream, FileOutputStream: Derive from Seekable.
+ (Murray Cumming)
+* FileInputStream, InputStream, Volume: Modified *_finish
+ functions to take a const AsyncResult.
+ (Marko Anastasov)
+* Added LoadableIcon.
+ (Murray Cumming)
+* MountOperation: Added MountOperationResult enumeration and make
+ reply() take this instead of a bool.
+ (Jonathon Jongsma)
+
+ (Murray Cumming)
+
+Glib:
+* Added uri_unescape_string(), uri_get_scheme() and uri_escape_string().
+ (Murray Cumming
+
+
+2.15.0 (unstable):
+
+* New giomm library (check for giomm-2.4 with pkg-config)
+ in the glibmm tarball. This wraps the new gio API in glib 2.15/16.
+ However, this API could change considerably before the stable
+ glibmm 2.16 is released.
+ (Marko Anastasov)
+* ustring:
+ - Added compose() to substitute placeholders in a format string, as an
+ equivalent to sprintf(), to help internationalization/translation.
+ - Added format() to simplify the common task of converting a value
+ (such as a number) to a string, with optional stream formatting
+ parmatters. This uses the regular C++ stream API in its implementation.
+ (Daniel Elstner, Openismus)
+* Glib::RefPtr: Deprecate clear(), replacing it with
+ reset(), because people often do treemodel.clear() when they
+ mean treemodel->clear(). reset() is consistent with std::auto_ptr<>.
+ But the method is still there so the compiler still can't help
+ you to avoid the mistake.
+ (Murray Cumming)
+* KeyFile: set_integer_list(), set_boolean_list(), set_double_list()
+ actually work now without crashing.
+ (Daniel Elstner, Openismus)
+* gmmproc:
+ - Refuse to generate a wrapper for a construct-only
+ property which is also write-only, and display a warning.
+ (Daniel Elstner, bug #436789)
+ - Added _DERIVES_INITIALLY_UNOWNED to sink floating
+ references in constructor of classes that wrap
+ GInitiallyUnowned-derived GTypes. Plus _INITIALLY_UNOWNED_SINK
+ for hand-written constructors.
+ (Murray Cumming)
+* Build:
+- Fix build for glib 2.15 by including
+ gtestutils.h instead of gmessages.h to get g_assert(),
+ though I am angry that this API break has been allowed.
+ (Murray Cumming)
+- Fix build for pre-releases of gcc 4.3 - also an include
+ issue. (Sebastien Bacher, #498438)
+
2.14.2:
* Build: Hopefully fix the build on NetBSD-4.99.6/amd64.
diff --git a/libs/glibmm2/README b/libs/glibmm2/README
index 8b13789179..341c67e439 100644
--- a/libs/glibmm2/README
+++ b/libs/glibmm2/README
@@ -1 +1,4 @@
+This is glibmm, a C++ API for parts of glib that are useful for C++.
+See http://www.gtkmm.org
+
diff --git a/libs/glibmm2/build_shared/Makefile_build.am_fragment b/libs/glibmm2/build_shared/Makefile_build.am_fragment
index 95a39412e9..2707becfaa 100644
--- a/libs/glibmm2/build_shared/Makefile_build.am_fragment
+++ b/libs/glibmm2/build_shared/Makefile_build.am_fragment
@@ -2,36 +2,19 @@
## The gtkmm development team.
##
## **** Common rules for inclusion in Makefile.am ****
+## Included by Makefile_build_gensrc.am_fragment
##
-##
-## Used variable: Example content:
-##
-## sublib_name = glibmm
-## sublib_cflags = $(GLIBMM_CFLAGS)
-## files_built_*_cc =
-## files_built_*_h = proxy.h
-## files_extra_cc = array.cc class.cc closure.cc
-## files_extra_h = array.h boxedtype.h class.h
-## files_extra_all_cc = array.cc class.cc closure.cc
-## files_extra_all_h = array.h boxedtype.h class.h
-##
-## Returned variable: Usage example:
-##
-## files_all_*_cc libglibmm_la_SOURCES = $(files_all_*_cc)
-## common_ldflags libglibmm_la_LDFLAGS = $(common_ldflags)
-files_all_general_cc = $(files_built_general_cc) $(files_extra_cc)
-files_all_posix_cc = $(files_built_posix_cc)
-files_all_win32_cc = $(files_built_win32_cc)
+include $(srcdir)/../src/Makefile_list_of_hg.am_fragment
# Support for DLL on mingw using libtool > 1.4
-# When creating DLLs on win32, we need to explicitly add a few extra
+# When creating DLLs on win32, we need to explicitly add a few extra
# libraries at link time to resolve symbols (remember a dll is like an
# executable).
if PLATFORM_WIN32
extra_win32_defines = \
-D$(shell echo $(sublib_name) | tr [:lower:] [:upper:])_BUILD
-no_undefined = -no-undefined -Wl,--export-all-symbols
+no_undefined = -no-undefined -Wl,--export-all-symbols
win32_dlls_extra_libs = $(sublib_win32_dlls_libs)
else
extra_win32_defines =
@@ -39,33 +22,29 @@ no_undefined =
win32_dlls_extra_libs =
endif
-common_ldflags = -version-info $(LIBGLIBMM_SO_VERSION) $(no_undefined)
+common_ldflags = -version-info $(sublib_libversion) $(no_undefined)
-all_includes = -I$(top_builddir)/glib -I$(top_srcdir)/glib \
+# All modules can include all other modules,
+# for instance, so that gdkmm can use headers in pangomm.
+all_includes = -I$(top_builddir)/$(sublib_topdir) -I$(top_srcdir)/$(sublib_topdir) \
+ -I$(top_builddir)/glib -I$(top_srcdir)/glib -I$(top_builddir) \
+ -I$(top_builddir)/gio -I$(top_srcdir)/gio \
$(sublib_cflags) $(GTHREAD_CFLAGS)
-extra_defines = -DG_LOG_DOMAIN=\"$(sublib_name)\" $(extra_win32_defines) \
- $(DISABLE_DEPRECATED_CFLAGS) $(DISABLE_DEPRECATED_API_CFLAGS)
-
-dist_sources = $(files_built_all_cc) $(files_extra_all_cc) \
- $(files_built_all_h) $(files_extra_all_h)
+dist_sources = $(files_all_built_cc) $(files_all_extra_cc) $(files_all_built_h) $(files_all_extra_h)
DISTFILES = $(DIST_COMMON) $(dist_sources) $(TEXINFOS) $(EXTRA_DIST)
-DEFS = @DEFS@ $(strip $(extra_defines))
+
+DEFS = @DEFS@ -DG_LOG_DOMAIN=\"$(sublib_name)\" $(extra_win32_defines)
DEFAULT_INCLUDES =
-INCLUDES = $(strip $(all_includes))
+
+# DISABLE_DEPRECATED_CFLAGS and DISABLE_DEPRECATED_API_CFLAGS are empty unless the appropriate --enable-*=no options are specified to configure:
+INCLUDES = $(strip $(all_includes)) $(DISABLE_DEPRECATED_CFLAGS) $(DISABLE_DEPRECATED_API_CFLAGS)
sublib_includedir = $(includedir)/$(sublib_libname)/$(sublib_name)
-if OS_WIN32
-sublib_include_HEADERS = $(files_built_general_h) \
- $(files_built_win32_h) \
- $(files_extra_h)
-else
-sublib_include_HEADERS = $(files_built_general_h) \
- $(files_built_posix_h) \
- $(files_extra_h)
-endif
+sublib_include_HEADERS = $(files_all_built_h) $(files_all_extra_h)
maintainer-clean-local:
- (cd $(srcdir) && rm -f $(files_built_all_cc) $(files_built_all_h))
+ (cd $(srcdir) && rm -f $(files_all_built_cc) $(files_all_built_h))
+
diff --git a/libs/glibmm2/build_shared/Makefile_build_gensrc.am_fragment b/libs/glibmm2/build_shared/Makefile_build_gensrc.am_fragment
index 67bed45d78..22ee8c45f5 100644
--- a/libs/glibmm2/build_shared/Makefile_build_gensrc.am_fragment
+++ b/libs/glibmm2/build_shared/Makefile_build_gensrc.am_fragment
@@ -1,66 +1,86 @@
-## Copyright (c) 2001
+## Copyright (c) 2001-2004
## The gtkmm development team.
##
-## **** Common rules for inclusion in Makefile.am ****
+## Included by src/Makefile_list_of_hg.am_fragment
##
+## This Makefile.am helper transforms lists of source files that are
+## specific to a sublibrary (atkmm, pangomm, gdkmm or gtkmm) into more
+## generic lists. These lists of files are processed by the automake
+## rules contained in Makefile_build.am_fragment (sublib/sublibmm
+## directory) and Makefile_gensrc.am_fragment (sublib/src directory).
+##
+## The input variables are:
+## * defined in sublib/src/Makefile_list_of_hg.am_fragment:
+## files_posix_hg, files_win32_hg, files_general_hg,
+## files_general_deprecated_hg.
+## * defined sublib/sublibmm/Makefile.am:
+## sublib_files_extra_posix_[cc|h],
+## sublib_files_extra_win32_[cc|h],
+## sublib_files_extra_general_[cc|h],
+## sublib_files_extra_general_deprecated_[cc|h]
##
-## Used variable: Example content:
-##
-## sublib_name = gtkmm
-## sublib_cflags = $(GTKMM_CFLAGS)
-## files_extra_cc = stock_id.cc
-## files_extra_h = base.h stock_id.h
-##
-## Returned variable: Usage example:
-##
-## files_all_general_cc libgtkmm_la_SOURCES = $(files_all_general_cc)
-## files_all_posix_cc libgtkmm_la_SOURCES = $(files_all_posix_cc)
-## files_all_win32_cc libgtkmm_la_SOURCES = $(files_all_win32_cc)
-## common_ldflags libgtkmm_la_LDFLAGS = $(common_ldflags)
+## The output variables are:
+## files_all_hg: all .hg files (general, all platforms, deprecated)
+## files_hg: general and platform-specific .hg files
+## files_built_cc, files_built_h: generated source files that
+## will be compiled on the target platform
+## + corresponding headers.
+## files_all_built_cc, files_all_built_h: all generated source
+## files + corresponding headers.
+## files_extra_cc, files_extra_h : general and platform-specific
+## source files and corresponding headers
+## files_all_extra_cc, files_all_extra_h: all extra source files
+## and corresponding headers.
+## !!! deprecated files not included !!!
+
+# Built files
+
+files_all_hg = \
+ $(files_posix_hg) \
+ $(files_win32_hg) \
+ $(files_general_hg) \
+ $(files_general_deprecated_hg)
-include $(srcdir)/../src/Makefile_list_of_hg.am_fragment
-include $(top_srcdir)/build_shared/Makefile_gensrc_platform.am_fragment
+if OS_WIN32
+files_hg = $(files_general_hg) $(files_win32_hg) $(files_general_deprecated_hg)
+else
+files_hg = $(files_general_hg) $(files_posix_hg) $(files_general_deprecated_hg)
+endif
-files_built_general_cc = $(files_general_hg:.hg=.cc) wrap_init.cc
-files_built_general_h = $(files_general_hg:.hg=.h)
-files_built_posix_cc = $(files_posix_hg:.hg=.cc)
-files_built_posix_h = $(files_posix_hg:.hg=.h)
-files_built_win32_cc = $(files_win32_hg:.hg=.cc)
-files_built_win32_h = $(files_win32_hg:.hg=.h)
+files_built_cc = $(files_hg:.hg=.cc) wrap_init.cc
+files_built_h = $(files_hg:.hg=.h)
-files_built_all_cc = $(files_built_general_cc) \
- $(files_built_posix_cc) \
- $(files_built_win32_cc)
-files_built_all_h = $(files_built_general_h) \
- $(files_built_posix_h) \
- $(files_built_win32_h)
+files_all_built_cc = $(files_all_hg:.hg=.cc) wrap_init.cc
+files_all_built_h = $(files_all_hg:.hg=.h)
-include $(top_srcdir)/build_shared/Makefile_build_extra.am_fragment
-include $(top_srcdir)/build_shared/Makefile_build.am_fragment
+# Extra files
-cvsignore:
- ( \
- echo ".deps"; \
- echo ".libs"; \
- echo "*.la"; \
- echo "*.lo"; \
- echo "Makefile"; \
- echo "Makefile.in"; \
- echo; \
- list='$(strip $(files_built_all_cc) $(files_built_all_h))'; \
- for file in $$list; do \
- echo "$$file"; \
- done \
- ) >$(srcdir)/.cvsignore
- ( \
- echo "Makefile"; \
- echo "Makefile.in"; \
- echo; \
- list='$(strip $(files_all_hg:.hg=_p.h))'; \
- for file in $$list; do \
- echo "$$file"; \
- done \
- ) >$(srcdir)/private/.cvsignore
+files_all_extra_cc = \
+ $(sublib_files_extra_posix_cc) \
+ $(sublib_files_extra_win32_cc) \
+ $(sublib_files_extra_general_cc) \
+ $(sublib_files_extra_general_deprecated_cc)
-.PHONY: cvsignore
+files_all_extra_h = \
+ $(sublib_files_extra_posix_h) \
+ $(sublib_files_extra_win32_h) \
+ $(sublib_files_extra_general_h) \
+ $(sublib_files_extra_general_deprecated_h)
+files_all_extra_h += wrap_init.h
+if OS_WIN32
+files_extra_cc = \
+ $(sublib_files_extra_win32_cc) \
+ $(sublib_files_extra_general_cc)
+files_extra_h = \
+ $(sublib_files_extra_win32_h) \
+ $(sublib_files_extra_general_h)
+else
+files_extra_cc = \
+ $(sublib_files_extra_posix_cc) \
+ $(sublib_files_extra_general_cc)
+files_extra_h = \
+ $(sublib_files_extra_posix_h) \
+ $(sublib_files_extra_general_h)
+endif
+files_extra_h += wrap_init.h
diff --git a/libs/glibmm2/build_shared/Makefile_conditional.am_fragment b/libs/glibmm2/build_shared/Makefile_conditional.am_fragment
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/libs/glibmm2/build_shared/Makefile_conditional.am_fragment
diff --git a/libs/glibmm2/build_shared/Makefile_gensrc.am_fragment b/libs/glibmm2/build_shared/Makefile_gensrc.am_fragment
index 4f561da40f..6302b37f13 100644
--- a/libs/glibmm2/build_shared/Makefile_gensrc.am_fragment
+++ b/libs/glibmm2/build_shared/Makefile_gensrc.am_fragment
@@ -2,50 +2,61 @@
## The gtkmm development team.
##
## **** Common rules for inclusion in Makefile.am ****
-##
+## Included from something/src/Makefile.am
##
## Used variable: Example content:
##
## sublib_name = gdkmm
-## sublib_namespace = Gdk
+## sublib_namespace = Gdk
+
## files_defs = gdk.defs gdk_pixbuf.defs
-tools_dir_m4 = $(top_srcdir)/tools/m4
-tools_dir_pm = $(top_srcdir)/tools/pm
+tools_dir = $(top_srcdir)/tools
+tools_dir_m4= $(top_srcdir)/tools/m4
+tools_dir_pm= $(top_srcdir)/tools/pm
-gensrc_destdir = $(srcdir)/../$(sublib_name)
-stamp_dir = $(srcdir)/.stamps
+gensrc_destdir = $(srcdir)/../$(sublib_name)
+stamp_dir = $(srcdir)/.stamps
include $(top_srcdir)/tools/Makefile_list_of_sources.am_fragment
tools_m4 = $(files_tools_m4:%.m4=$(tools_dir_m4)/%.m4)
-tools_pm = $(files_tools_pm:%.pm=$(tools_dir_pm)/%.pm)
+# tools_pm = $(files_tools_pm:%.pm=$(tools_dir_pm)/%.pm)
-include $(srcdir)/Makefile_list_of_hg.am_fragment
-include $(top_srcdir)/build_shared/Makefile_gensrc_platform.am_fragment
+include $(srcdir)/../src/Makefile_list_of_hg.am_fragment
files_all_ccg = $(files_all_hg:%.hg=%.ccg)
files_h = $(files_all_hg:%.hg=$(gensrc_destdir)/%.h)
files_cc = $(files_all_hg:%.hg=$(gensrc_destdir)/%.cc)
files_stamp = $(files_all_hg:%.hg=$(stamp_dir)/stamp-%)
+#The gmmproc from this glibmm:
gmmproc_in = $(top_srcdir)/tools/gmmproc.in
gmmproc_path = $(top_builddir)/tools/gmmproc
+
+
+# We use our own m4 and pm files as well as the ones installed by gtkmm:
+# Our override m4 include seems to need to be before the default one.
gmmproc_args = -I $(tools_dir_m4) --defs $(srcdir)
run_gmmproc = $(PERL_PATH) -I$(tools_dir_pm) $(gmmproc_path) $(gmmproc_args)
+
gen_wrap_init_in = $(top_srcdir)/tools/generate_wrap_init.pl.in
gen_wrap_init_path = $(top_builddir)/tools/generate_wrap_init.pl
-gen_wrap_init_args = --namespace=$(sublib_namespace)
+gen_wrap_init_args = --namespace=$(sublib_namespace) --parent_dir=$(sublib_parentdir)
run_gen_wrap_init = $(PERL_PATH) $(gen_wrap_init_path) $(gen_wrap_init_args)
-EXTRA_DIST = Makefile_list_of_hg.am_fragment $(files_defs) $(files_all_hg) $(files_all_ccg)
+EXTRA_DIST = Makefile_list_of_hg.am_fragment \
+ $(files_defs) $(files_all_hg) $(files_all_ccg)
-$(stamp_dir)/stamp-%: %.hg %.ccg $(gmmproc_in) $(tools_m4) $(tools_pm) $(files_defs)
+$(stamp_dir)/stamp-%: %.hg %.ccg $(tools_m4) $(files_defs)
$(run_gmmproc) $(notdir $*) $(srcdir) $(gensrc_destdir)
- @echo 'timestamp' >$@
+ @echo 'timestamp' > $@
+
+sublib_srcdir = $(srcdir)/../src
+files_hg_with_path = $(patsubst %.hg,$(sublib_srcdir)/%.hg,$(files_all_hg))
-$(gensrc_destdir)/wrap_init.cc: $(gen_wrap_init_in) $(files_all_hg)
+$(gensrc_destdir)/wrap_init.cc: $(gen_wrap_init_path) $(files_hg_with_path)
$(run_gen_wrap_init) $(files_all_hg:%.hg=$(srcdir)/%.hg) >$@
create-stamp-dir:
@@ -57,6 +68,3 @@ endif
maintainer-clean-local:
rm -rf $(stamp_dir)
-
-.PHONY: create-stamp-dir
-
diff --git a/libs/glibmm2/glib/Makefile.am b/libs/glibmm2/glib/Makefile.am
index 3477451135..933a1e8895 100644
--- a/libs/glibmm2/glib/Makefile.am
+++ b/libs/glibmm2/glib/Makefile.am
@@ -10,5 +10,3 @@ glibmm_config_DATA = glibmmconfig.h
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = glibmm-2.4.pc
-
- \ No newline at end of file
diff --git a/libs/glibmm2/glib/glibmm-2.4.pc b/libs/glibmm2/glib/glibmm-2.4.pc
index c50ae1e78b..df92335df7 100644
--- a/libs/glibmm2/glib/glibmm-2.4.pc
+++ b/libs/glibmm2/glib/glibmm-2.4.pc
@@ -2,6 +2,7 @@ prefix=/usr/local
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
+gmmprocdir=@GMMPROC_DIR@
Name: GLibmm
Description: C++ wrapper for GLib
diff --git a/libs/glibmm2/glib/glibmm-2.4.pc.in b/libs/glibmm2/glib/glibmm-2.4.pc.in
index db098824be..554651e3ad 100644
--- a/libs/glibmm2/glib/glibmm-2.4.pc.in
+++ b/libs/glibmm2/glib/glibmm-2.4.pc.in
@@ -2,6 +2,7 @@ prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
+gmmprocdir=@GMMPROC_DIR@
Name: GLibmm
Description: C++ wrapper for GLib
diff --git a/libs/glibmm2/glib/glibmm.h b/libs/glibmm2/glib/glibmm.h
index af82e057d4..e51986ccb4 100644
--- a/libs/glibmm2/glib/glibmm.h
+++ b/libs/glibmm2/glib/glibmm.h
@@ -1,20 +1,20 @@
-/* $Id: glibmm.h 417 2007-06-12 13:38:39Z murrayc $ */
+/* $Id: glibmm.h 779 2009-01-19 17:58:50Z murrayc $ */
/* glibmm - a C++ wrapper for the GLib toolkit
*
* Copyright 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -25,6 +25,7 @@
#include <glibmmconfig.h>
//#include <glibmm/i18n.h> //This must be included by the application, after system headers such as <iostream>.
#include <glibmm/arrayhandle.h>
+#include <glibmm/checksum.h>
#include <glibmm/class.h>
#include <glibmm/containerhandle_shared.h>
#include <glibmm/convert.h>
@@ -45,6 +46,7 @@
#include <glibmm/markup.h>
#include <glibmm/miscutils.h>
#include <glibmm/module.h>
+#include <glibmm/nodetree.h>
#include <glibmm/objectbase.h>
#include <glibmm/object.h>
#include <glibmm/optioncontext.h>
@@ -66,6 +68,7 @@
#include <glibmm/threadpool.h>
#include <glibmm/timer.h>
#include <glibmm/timeval.h>
+#include <glibmm/uriutils.h>
#include <glibmm/ustring.h>
#include <glibmm/value.h>
#include <glibmm/wrap.h>
diff --git a/libs/glibmm2/glib/glibmm/Makefile.am b/libs/glibmm2/glib/glibmm/Makefile.am
index e9ccf63703..973a33b833 100644
--- a/libs/glibmm2/glib/glibmm/Makefile.am
+++ b/libs/glibmm2/glib/glibmm/Makefile.am
@@ -5,8 +5,11 @@ SUBDIRS = private
sublib_name = glibmm
sublib_libname = glibmm-2.4
+sublib_libversion = $(LIBGLIBMM_SO_VERSION)
sublib_namespace = Glib
sublib_cflags = $(GLIBMM_CFLAGS)
+sublib_topdir = glib
+sublib_win32_dlls_libs =
sublib_files_extra_posix_cc =
sublib_files_extra_win32_cc =
@@ -59,6 +62,7 @@ sublib_files_extra_general_h = \
exceptionhandler.h \
helperlist.h \
init.h \
+ i18n-lib.h \
i18n.h \
interface.h \
iochannel.h \
@@ -69,6 +73,7 @@ sublib_files_extra_general_h = \
object.h \
objectbase.h \
pattern.h \
+ priorities.h \
property.h \
propertyproxy.h \
propertyproxy_base.h \
@@ -89,17 +94,13 @@ sublib_files_extra_general_h = \
value_custom.h \
wrap.h
-include $(top_srcdir)/build_shared/Makefile_build_gensrc.am_fragment
+include $(top_srcdir)/build_shared/Makefile_build.am_fragment
-files_built_general_cc += value_basictypes.cc
-files_built_general_h += signalproxy.h value_basictypes.h
+sublib_files_extra_general_cc += value_basictypes.cc
+sublib_files_extra_general_h += signalproxy.h value_basictypes.h
lib_LTLIBRARIES = libglibmm-2.4.la
-if OS_WIN32
-libglibmm_2_4_la_SOURCES = $(files_all_general_cc) $(files_all_win32_cc)
-else
-libglibmm_2_4_la_SOURCES = $(files_all_general_cc) $(files_all_posix_cc)
-endif
+libglibmm_2_4_la_SOURCES = $(files_built_cc) $(files_extra_cc)
libglibmm_2_4_la_LDFLAGS = $(common_ldflags)
libglibmm_2_4_la_LIBADD = $(GLIBMM_LIBS)
diff --git a/libs/glibmm2/glib/glibmm/Makefile.in b/libs/glibmm2/glib/glibmm/Makefile.in
index b2323730c9..d5a0b1f76a 100644
--- a/libs/glibmm2/glib/glibmm/Makefile.in
+++ b/libs/glibmm2/glib/glibmm/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.10 from Makefile.am.
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,6 +14,8 @@
@SET_MAKE@
+# Built files
+
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
@@ -33,16 +35,21 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-DIST_COMMON = $(am__sublib_include_HEADERS_DIST) \
- $(srcdir)/../src/Makefile_list_of_hg.am_fragment \
+DIST_COMMON = $(srcdir)/../src/Makefile_list_of_hg.am_fragment \
$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(sublib_include_HEADERS) \
$(top_srcdir)/build_shared/Makefile_build.am_fragment \
- $(top_srcdir)/build_shared/Makefile_build_extra.am_fragment \
- $(top_srcdir)/build_shared/Makefile_build_gensrc.am_fragment \
- $(top_srcdir)/build_shared/Makefile_gensrc_platform.am_fragment
+ $(top_srcdir)/build_shared/Makefile_build_gensrc.am_fragment
subdir = glib/glibmm
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/scripts/c_std.m4 \
+ $(top_srcdir)/scripts/cxx.m4 $(top_srcdir)/scripts/cxx_std.m4 \
+ $(top_srcdir)/scripts/dk-feature.m4 \
+ $(top_srcdir)/scripts/docgen.m4 \
+ $(top_srcdir)/scripts/glibmm_check_perl.m4 \
+ $(top_srcdir)/scripts/macros.m4 \
+ $(top_srcdir)/scripts/reduced.m4 $(top_srcdir)/scripts/sun.m4 \
+ $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
@@ -62,41 +69,39 @@ libLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(lib_LTLIBRARIES)
am__DEPENDENCIES_1 =
libglibmm_2_4_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__libglibmm_2_4_la_SOURCES_DIST = convert.cc date.cc fileutils.cc \
- iochannel.cc keyfile.cc markup.cc module.cc optioncontext.cc \
- optionentry.cc optiongroup.cc regex.cc shell.cc spawn.cc \
- thread.cc unicode.cc wrap_init.cc value_basictypes.cc class.cc \
- containers.cc debug.cc dispatcher.cc error.cc exception.cc \
- exceptionhandler.cc init.cc interface.cc main.cc miscutils.cc \
- object.cc objectbase.cc pattern.cc property.cc \
- propertyproxy.cc propertyproxy_base.cc quark.cc random.cc \
- signalproxy.cc signalproxy_connectionnode.cc \
+am__libglibmm_2_4_la_SOURCES_DIST = checksum.cc convert.cc date.cc \
+ fileutils.cc iochannel.cc keyfile.cc markup.cc module.cc \
+ optioncontext.cc optionentry.cc optiongroup.cc regex.cc \
+ shell.cc spawn.cc thread.cc nodetree.cc unicode.cc uriutils.cc \
+ wrap_init.cc class.cc containers.cc debug.cc dispatcher.cc \
+ error.cc exception.cc exceptionhandler.cc init.cc interface.cc \
+ main.cc miscutils.cc object.cc objectbase.cc pattern.cc \
+ property.cc propertyproxy.cc propertyproxy_base.cc quark.cc \
+ random.cc signalproxy.cc signalproxy_connectionnode.cc \
streamiochannel.cc stringutils.cc threadpool.cc timer.cc \
timeval.cc ustring.cc utility.cc value.cc value_custom.cc \
- wrap.cc
-am__objects_1 = convert.lo date.lo fileutils.lo iochannel.lo \
- keyfile.lo markup.lo module.lo optioncontext.lo optionentry.lo \
- optiongroup.lo regex.lo shell.lo spawn.lo thread.lo unicode.lo
-am__objects_2 = $(am__objects_1) wrap_init.lo value_basictypes.lo
-am__objects_3 = class.lo containers.lo debug.lo dispatcher.lo error.lo \
+ wrap.cc value_basictypes.cc
+am__objects_1 = checksum.lo convert.lo date.lo fileutils.lo \
+ iochannel.lo keyfile.lo markup.lo module.lo optioncontext.lo \
+ optionentry.lo optiongroup.lo regex.lo shell.lo spawn.lo \
+ thread.lo nodetree.lo unicode.lo uriutils.lo
+am__objects_2 =
+@OS_WIN32_FALSE@am__objects_3 = $(am__objects_1) $(am__objects_2) \
+@OS_WIN32_FALSE@ $(am__objects_2)
+@OS_WIN32_TRUE@am__objects_3 = $(am__objects_1) $(am__objects_2) \
+@OS_WIN32_TRUE@ $(am__objects_2)
+am__objects_4 = $(am__objects_3) wrap_init.lo
+am__objects_5 = class.lo containers.lo debug.lo dispatcher.lo error.lo \
exception.lo exceptionhandler.lo init.lo interface.lo main.lo \
miscutils.lo object.lo objectbase.lo pattern.lo property.lo \
propertyproxy.lo propertyproxy_base.lo quark.lo random.lo \
signalproxy.lo signalproxy_connectionnode.lo \
streamiochannel.lo stringutils.lo threadpool.lo timer.lo \
timeval.lo ustring.lo utility.lo value.lo value_custom.lo \
- wrap.lo
-am__objects_4 =
-@OS_WIN32_FALSE@am__objects_5 = $(am__objects_3) $(am__objects_4)
-@OS_WIN32_TRUE@am__objects_5 = $(am__objects_3) $(am__objects_4)
-am__objects_6 = $(am__objects_5)
-am__objects_7 = $(am__objects_2) $(am__objects_6)
-am__objects_8 = $(am__objects_4)
-am__objects_9 = $(am__objects_8)
-@OS_WIN32_FALSE@am_libglibmm_2_4_la_OBJECTS = $(am__objects_7) \
-@OS_WIN32_FALSE@ $(am__objects_9)
-@OS_WIN32_TRUE@am_libglibmm_2_4_la_OBJECTS = $(am__objects_7) \
-@OS_WIN32_TRUE@ $(am__objects_9)
+ wrap.lo value_basictypes.lo
+@OS_WIN32_FALSE@am__objects_6 = $(am__objects_2) $(am__objects_5)
+@OS_WIN32_TRUE@am__objects_6 = $(am__objects_2) $(am__objects_5)
+am_libglibmm_2_4_la_OBJECTS = $(am__objects_4) $(am__objects_6)
libglibmm_2_4_la_OBJECTS = $(am_libglibmm_2_4_la_OBJECTS)
libglibmm_2_4_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
@@ -121,18 +126,6 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
-am__sublib_include_HEADERS_DIST = convert.h date.h fileutils.h \
- iochannel.h keyfile.h markup.h module.h optioncontext.h \
- optionentry.h optiongroup.h regex.h shell.h spawn.h thread.h \
- unicode.h signalproxy.h value_basictypes.h arrayhandle.h \
- class.h containerhandle_shared.h containers.h debug.h \
- dispatcher.h error.h exception.h exceptionhandler.h \
- helperlist.h init.h i18n.h interface.h listhandle.h main.h \
- miscutils.h object.h objectbase.h pattern.h property.h \
- propertyproxy.h propertyproxy_base.h quark.h random.h refptr.h \
- sarray.h signalproxy_connectionnode.h slisthandle.h \
- streamiochannel.h stringutils.h threadpool.h timer.h timeval.h \
- ustring.h utility.h value.h value_custom.h wrap.h wrap_init.h
sublib_includeHEADERS_INSTALL = $(INSTALL_HEADER)
HEADERS = $(sublib_include_HEADERS)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
@@ -158,10 +151,12 @@ CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@ $(strip $(extra_defines))
+DEFS = @DEFS@ -DG_LOG_DOMAIN=\"$(sublib_name)\" $(extra_win32_defines)
DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED_API_CFLAGS = @DISABLE_DEPRECATED_API_CFLAGS@
DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
@@ -183,6 +178,8 @@ GMMPROC_DIR = @GMMPROC_DIR@
GREP = @GREP@
GTHREAD_CFLAGS = @GTHREAD_CFLAGS@
GTHREAD_LIBS = @GTHREAD_LIBS@
+GTKMMPROC_MERGECDOCS = @GTKMMPROC_MERGECDOCS@
+GTKMM_DOXYGEN_INPUT = @GTKMM_DOXYGEN_INPUT@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -195,9 +192,11 @@ LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
+M4 = @M4@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
+NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
@@ -207,6 +206,7 @@ PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL_PATH = @PERL_PATH@
PKG_CONFIG = @PKG_CONFIG@
RANLIB = @RANLIB@
SED = @SED@
@@ -263,172 +263,122 @@ sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
SUBDIRS = private
sublib_name = glibmm
sublib_libname = glibmm-2.4
+sublib_libversion = $(LIBGLIBMM_SO_VERSION)
sublib_namespace = Glib
sublib_cflags = $(GLIBMM_CFLAGS)
+sublib_topdir = glib
+sublib_win32_dlls_libs =
sublib_files_extra_posix_cc =
sublib_files_extra_win32_cc =
-sublib_files_extra_general_cc = \
- class.cc \
- containers.cc \
- debug.cc \
- dispatcher.cc \
- error.cc \
- exception.cc \
- exceptionhandler.cc \
- init.cc \
- interface.cc \
- main.cc \
- miscutils.cc \
- object.cc \
- objectbase.cc \
- pattern.cc \
- property.cc \
- propertyproxy.cc \
- propertyproxy_base.cc \
- quark.cc \
- random.cc \
- signalproxy.cc \
- signalproxy_connectionnode.cc \
- streamiochannel.cc \
- stringutils.cc \
- threadpool.cc \
- timer.cc \
- timeval.cc \
- ustring.cc \
- utility.cc \
- value.cc \
- value_custom.cc \
- wrap.cc
-
+sublib_files_extra_general_cc = class.cc containers.cc debug.cc \
+ dispatcher.cc error.cc exception.cc exceptionhandler.cc \
+ init.cc interface.cc main.cc miscutils.cc object.cc \
+ objectbase.cc pattern.cc property.cc propertyproxy.cc \
+ propertyproxy_base.cc quark.cc random.cc signalproxy.cc \
+ signalproxy_connectionnode.cc streamiochannel.cc \
+ stringutils.cc threadpool.cc timer.cc timeval.cc ustring.cc \
+ utility.cc value.cc value_custom.cc wrap.cc \
+ value_basictypes.cc
sublib_files_extra_posix_h =
sublib_files_extra_win32_h =
-sublib_files_extra_general_h = \
- arrayhandle.h \
- class.h \
- containerhandle_shared.h \
- containers.h \
- debug.h \
- dispatcher.h \
- error.h \
- exception.h \
- exceptionhandler.h \
- helperlist.h \
- init.h \
- i18n.h \
- interface.h \
- iochannel.h \
- keyfile.h \
- listhandle.h \
- main.h \
- miscutils.h \
- object.h \
- objectbase.h \
- pattern.h \
- property.h \
- propertyproxy.h \
- propertyproxy_base.h \
- quark.h \
- random.h \
- refptr.h \
- sarray.h \
- signalproxy_connectionnode.h \
- slisthandle.h \
- streamiochannel.h \
- stringutils.h \
- threadpool.h \
- timer.h \
- timeval.h \
- ustring.h \
- utility.h \
- value.h \
- value_custom.h \
- wrap.h
-
+sublib_files_extra_general_h = arrayhandle.h class.h \
+ containerhandle_shared.h containers.h debug.h dispatcher.h \
+ error.h exception.h exceptionhandler.h helperlist.h init.h \
+ i18n-lib.h i18n.h interface.h iochannel.h keyfile.h \
+ listhandle.h main.h miscutils.h object.h objectbase.h \
+ pattern.h priorities.h property.h propertyproxy.h \
+ propertyproxy_base.h quark.h random.h refptr.h sarray.h \
+ signalproxy_connectionnode.h slisthandle.h streamiochannel.h \
+ stringutils.h threadpool.h timer.h timeval.h ustring.h \
+ utility.h value.h value_custom.h wrap.h signalproxy.h \
+ value_basictypes.h
files_posix_hg =
files_win32_hg =
-files_general_hg = convert.hg date.hg fileutils.hg iochannel.hg keyfile.hg markup.hg module.hg optioncontext.hg optionentry.hg optiongroup.hg regex.hg shell.hg spawn.hg thread.hg unicode.hg
-files_all_hg = $(files_general_hg) $(files_posix_hg) $(files_win32_hg)
-@OS_WIN32_FALSE@files_hg = $(files_general_hg) $(files_posix_hg)
-@OS_WIN32_TRUE@files_hg = $(files_general_hg) $(files_win32_hg)
-files_built_general_cc = $(files_general_hg:.hg=.cc) wrap_init.cc \
- value_basictypes.cc
-files_built_general_h = $(files_general_hg:.hg=.h) signalproxy.h \
- value_basictypes.h
-files_built_posix_cc = $(files_posix_hg:.hg=.cc)
-files_built_posix_h = $(files_posix_hg:.hg=.h)
-files_built_win32_cc = $(files_win32_hg:.hg=.cc)
-files_built_win32_h = $(files_win32_hg:.hg=.h)
-files_built_all_cc = $(files_built_general_cc) \
- $(files_built_posix_cc) \
- $(files_built_win32_cc)
-
-files_built_all_h = $(files_built_general_h) \
- $(files_built_posix_h) \
- $(files_built_win32_h)
-
-@OS_WIN32_FALSE@files_extra_cc_tmp = $(sublib_files_extra_general_cc) $(sublib_files_extra_posix_cc)
-@OS_WIN32_TRUE@files_extra_cc_tmp = $(sublib_files_extra_general_cc) $(sublib_files_extra_win32_cc)
-@OS_WIN32_FALSE@files_extra_h_tmp = $(sublib_files_extra_general_h) $(sublib_files_extra_posix_h)
-@OS_WIN32_TRUE@files_extra_h_tmp = $(sublib_files_extra_general_h) $(sublib_files_extra_win32_h)
-files_extra_cc = $(files_extra_cc_tmp)
-files_extra_h = $(files_extra_h_tmp) wrap_init.h
-files_extra_all_cc = $(sublib_files_extra_general_cc) $(sublib_files_extra_posix_cc) $(sublib_files_extra_win32_cc)
-files_extra_all_h = $(sublib_files_extra_general_h) \
- $(sublib_files_extra_posix_h) $(sublib_files_extra_win32_h) \
- wrap_init.h
-files_all_general_cc = $(files_built_general_cc) $(files_extra_cc)
-files_all_posix_cc = $(files_built_posix_cc)
-files_all_win32_cc = $(files_built_win32_cc)
+files_general_hg = checksum.hg convert.hg date.hg fileutils.hg iochannel.hg keyfile.hg markup.hg \
+ module.hg optioncontext.hg optionentry.hg optiongroup.hg regex.hg \
+ shell.hg spawn.hg thread.hg nodetree.hg unicode.hg uriutils.hg
+
+files_general_deprecated_hg =
+files_all_hg = \
+ $(files_posix_hg) \
+ $(files_win32_hg) \
+ $(files_general_hg) \
+ $(files_general_deprecated_hg)
+
+@OS_WIN32_FALSE@files_hg = $(files_general_hg) $(files_posix_hg) $(files_general_deprecated_hg)
+@OS_WIN32_TRUE@files_hg = $(files_general_hg) $(files_win32_hg) $(files_general_deprecated_hg)
+files_built_cc = $(files_hg:.hg=.cc) wrap_init.cc
+files_built_h = $(files_hg:.hg=.h)
+files_all_built_cc = $(files_all_hg:.hg=.cc) wrap_init.cc
+files_all_built_h = $(files_all_hg:.hg=.h)
+
+# Extra files
+files_all_extra_cc = \
+ $(sublib_files_extra_posix_cc) \
+ $(sublib_files_extra_win32_cc) \
+ $(sublib_files_extra_general_cc) \
+ $(sublib_files_extra_general_deprecated_cc)
+
+files_all_extra_h = $(sublib_files_extra_posix_h) \
+ $(sublib_files_extra_win32_h) $(sublib_files_extra_general_h) \
+ $(sublib_files_extra_general_deprecated_h) wrap_init.h
+@OS_WIN32_FALSE@files_extra_cc = \
+@OS_WIN32_FALSE@ $(sublib_files_extra_posix_cc) \
+@OS_WIN32_FALSE@ $(sublib_files_extra_general_cc)
+
+@OS_WIN32_TRUE@files_extra_cc = \
+@OS_WIN32_TRUE@ $(sublib_files_extra_win32_cc) \
+@OS_WIN32_TRUE@ $(sublib_files_extra_general_cc)
+
+@OS_WIN32_FALSE@files_extra_h = $(sublib_files_extra_posix_h) \
+@OS_WIN32_FALSE@ $(sublib_files_extra_general_h) wrap_init.h
+@OS_WIN32_TRUE@files_extra_h = $(sublib_files_extra_win32_h) \
+@OS_WIN32_TRUE@ $(sublib_files_extra_general_h) wrap_init.h
@PLATFORM_WIN32_FALSE@extra_win32_defines =
# Support for DLL on mingw using libtool > 1.4
-# When creating DLLs on win32, we need to explicitly add a few extra
+# When creating DLLs on win32, we need to explicitly add a few extra
# libraries at link time to resolve symbols (remember a dll is like an
# executable).
@PLATFORM_WIN32_TRUE@extra_win32_defines = \
@PLATFORM_WIN32_TRUE@ -D$(shell echo $(sublib_name) | tr [:lower:] [:upper:])_BUILD
@PLATFORM_WIN32_FALSE@no_undefined =
-@PLATFORM_WIN32_TRUE@no_undefined = -no-undefined -Wl,--export-all-symbols
+@PLATFORM_WIN32_TRUE@no_undefined = -no-undefined -Wl,--export-all-symbols
@PLATFORM_WIN32_FALSE@win32_dlls_extra_libs =
@PLATFORM_WIN32_TRUE@win32_dlls_extra_libs = $(sublib_win32_dlls_libs)
-common_ldflags = -version-info $(LIBGLIBMM_SO_VERSION) $(no_undefined)
-all_includes = -I$(top_builddir)/glib -I$(top_srcdir)/glib \
- $(sublib_cflags) $(GTHREAD_CFLAGS)
-
-extra_defines = -DG_LOG_DOMAIN=\"$(sublib_name)\" $(extra_win32_defines) \
- $(DISABLE_DEPRECATED_CFLAGS) $(DISABLE_DEPRECATED_API_CFLAGS)
+common_ldflags = -version-info $(sublib_libversion) $(no_undefined)
-dist_sources = $(files_built_all_cc) $(files_extra_all_cc) \
- $(files_built_all_h) $(files_extra_all_h)
+# All modules can include all other modules,
+# for instance, so that gdkmm can use headers in pangomm.
+all_includes = -I$(top_builddir)/$(sublib_topdir) -I$(top_srcdir)/$(sublib_topdir) \
+ -I$(top_builddir)/glib -I$(top_srcdir)/glib -I$(top_builddir) \
+ -I$(top_builddir)/gio -I$(top_srcdir)/gio \
+ $(sublib_cflags) $(GTHREAD_CFLAGS)
+dist_sources = $(files_all_built_cc) $(files_all_extra_cc) $(files_all_built_h) $(files_all_extra_h)
DISTFILES = $(DIST_COMMON) $(dist_sources) $(TEXINFOS) $(EXTRA_DIST)
DEFAULT_INCLUDES =
-INCLUDES = $(strip $(all_includes))
-sublib_includedir = $(includedir)/$(sublib_libname)/$(sublib_name)
-@OS_WIN32_FALSE@sublib_include_HEADERS = $(files_built_general_h) \
-@OS_WIN32_FALSE@ $(files_built_posix_h) \
-@OS_WIN32_FALSE@ $(files_extra_h)
-
-@OS_WIN32_TRUE@sublib_include_HEADERS = $(files_built_general_h) \
-@OS_WIN32_TRUE@ $(files_built_win32_h) \
-@OS_WIN32_TRUE@ $(files_extra_h)
+# DISABLE_DEPRECATED_CFLAGS and DISABLE_DEPRECATED_API_CFLAGS are empty unless the appropriate --enable-*=no options are specified to configure:
+INCLUDES = $(strip $(all_includes)) $(DISABLE_DEPRECATED_CFLAGS) $(DISABLE_DEPRECATED_API_CFLAGS)
+sublib_includedir = $(includedir)/$(sublib_libname)/$(sublib_name)
+sublib_include_HEADERS = $(files_all_built_h) $(files_all_extra_h)
lib_LTLIBRARIES = libglibmm-2.4.la
-@OS_WIN32_FALSE@libglibmm_2_4_la_SOURCES = $(files_all_general_cc) $(files_all_posix_cc)
-@OS_WIN32_TRUE@libglibmm_2_4_la_SOURCES = $(files_all_general_cc) $(files_all_win32_cc)
+libglibmm_2_4_la_SOURCES = $(files_built_cc) $(files_extra_cc)
libglibmm_2_4_la_LDFLAGS = $(common_ldflags)
libglibmm_2_4_la_LIBADD = $(GLIBMM_LIBS)
all: all-recursive
.SUFFIXES:
.SUFFIXES: .cc .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/build_shared/Makefile_build_gensrc.am_fragment $(srcdir)/../src/Makefile_list_of_hg.am_fragment $(top_srcdir)/build_shared/Makefile_gensrc_platform.am_fragment $(top_srcdir)/build_shared/Makefile_build_extra.am_fragment $(top_srcdir)/build_shared/Makefile_build.am_fragment $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/build_shared/Makefile_build.am_fragment $(srcdir)/../src/Makefile_list_of_hg.am_fragment $(top_srcdir)/build_shared/Makefile_build_gensrc.am_fragment $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
@@ -463,8 +413,8 @@ install-libLTLIBRARIES: $(lib_LTLIBRARIES)
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
f=$(am__strip_dir) \
- echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
- $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
else :; fi; \
done
@@ -472,8 +422,8 @@ uninstall-libLTLIBRARIES:
@$(NORMAL_UNINSTALL)
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
p=$(am__strip_dir) \
- echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
- $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
done
clean-libLTLIBRARIES:
@@ -493,6 +443,7 @@ mostlyclean-compile:
distclean-compile:
-rm -f *.tab.c
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/checksum.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/class.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/containers.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/convert.Plo@am__quote@
@@ -511,6 +462,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/markup.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/miscutils.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nodetree.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/object.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/objectbase.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/optioncontext.Plo@am__quote@
@@ -534,6 +486,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timer.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timeval.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unicode.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/uriutils.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ustring.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utility.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/value.Plo@am__quote@
@@ -661,8 +614,8 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
+ $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
@@ -687,8 +640,8 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
@@ -698,13 +651,12 @@ ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
- here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
@@ -874,33 +826,7 @@ uninstall-am: uninstall-libLTLIBRARIES uninstall-sublib_includeHEADERS
maintainer-clean-local:
- (cd $(srcdir) && rm -f $(files_built_all_cc) $(files_built_all_h))
-
-cvsignore:
- ( \
- echo ".deps"; \
- echo ".libs"; \
- echo "*.la"; \
- echo "*.lo"; \
- echo "Makefile"; \
- echo "Makefile.in"; \
- echo; \
- list='$(strip $(files_built_all_cc) $(files_built_all_h))'; \
- for file in $$list; do \
- echo "$$file"; \
- done \
- ) >$(srcdir)/.cvsignore
- ( \
- echo "Makefile"; \
- echo "Makefile.in"; \
- echo; \
- list='$(strip $(files_all_hg:.hg=_p.h))'; \
- for file in $$list; do \
- echo "$$file"; \
- done \
- ) >$(srcdir)/private/.cvsignore
-
-.PHONY: cvsignore
+ (cd $(srcdir) && rm -f $(files_all_built_cc) $(files_all_built_h))
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/libs/glibmm2/glib/glibmm/arrayhandle.h b/libs/glibmm2/glib/glibmm/arrayhandle.h
index ab6bda9259..3595b9fbf4 100644
--- a/libs/glibmm2/glib/glibmm/arrayhandle.h
+++ b/libs/glibmm2/glib/glibmm/arrayhandle.h
@@ -2,21 +2,21 @@
#ifndef _GLIBMM_ARRAYHANDLE_H
#define _GLIBMM_ARRAYHANDLE_H
-/* $Id: arrayhandle.h 32 2003-04-21 17:39:41Z murrayc $ */
+/* $Id: arrayhandle.h 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/checksum.cc b/libs/glibmm2/glib/glibmm/checksum.cc
new file mode 100644
index 0000000000..4aabe472f3
--- /dev/null
+++ b/libs/glibmm2/glib/glibmm/checksum.cc
@@ -0,0 +1,160 @@
+// Generated by gtkmmproc -- DO NOT MODIFY!
+
+
+#include <glibmm/checksum.h>
+#include <glibmm/private/checksum_p.h>
+
+/* $Id$ */
+
+/* Copyright (C) 2002 The gtkmm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <glibmm/utility.h>
+#include <glibmm/checksum.h>
+
+namespace Glib
+{
+
+Checksum::Checksum(ChecksumType type)
+: gobject_(g_checksum_new((GChecksumType)type))
+{
+}
+
+Checksum::operator bool() const
+{
+ return gobject_ != 0;
+}
+
+gssize Checksum::get_length(ChecksumType checksum_type)
+{
+ return g_checksum_type_get_length((GChecksumType)checksum_type);
+}
+
+std::string Checksum::compute_checksum(ChecksumType type, const std::string& data)
+{
+ return Glib::convert_return_gchar_ptr_to_ustring(g_compute_checksum_for_string(((GChecksumType)type), data.c_str(), data.size()));
+}
+
+void Checksum::update(const std::string& data)
+{
+ g_checksum_update(gobj(), (const guchar*)data.c_str(), data.size());
+}
+
+} // Glib namespace
+
+
+namespace
+{
+} // anonymous namespace
+
+
+namespace Glib
+{
+
+Glib::Checksum wrap(GChecksum* object, bool take_copy /* = false */)
+{
+ return Glib::Checksum(object, take_copy);
+}
+
+} // namespace Glib
+
+
+namespace Glib
+{
+
+
+Checksum::Checksum()
+:
+ gobject_ (0) // Allows creation of invalid wrapper, e.g. for output arguments to methods.
+{}
+
+Checksum::Checksum(const Checksum& src)
+:
+ gobject_ ((src.gobject_) ? g_checksum_copy(src.gobject_) : 0)
+{}
+
+Checksum::Checksum(GChecksum* castitem, bool make_a_copy /* = false */)
+{
+ if(!make_a_copy)
+ {
+ // It was given to us by a function which has already made a copy for us to keep.
+ gobject_ = castitem;
+ }
+ else
+ {
+ // We are probably getting it via direct access to a struct,
+ // so we can not just take it - we have to take a copy of it.
+ if(castitem)
+ gobject_ = g_checksum_copy(castitem);
+ else
+ gobject_ = 0;
+ }
+}
+
+Checksum& Checksum::operator=(const Checksum& src)
+{
+ GChecksum *const new_gobject = (src.gobject_) ? g_checksum_copy(src.gobject_) : 0;
+
+ if(gobject_)
+ g_checksum_free(gobject_);
+
+ gobject_ = new_gobject;
+
+ return *this;
+}
+
+Checksum::~Checksum()
+{
+ if(gobject_)
+ g_checksum_free(gobject_);
+}
+
+GChecksum* Checksum::gobj_copy() const
+{
+ return g_checksum_copy(gobject_);
+}
+
+
+void Checksum::reset()
+{
+g_checksum_reset(gobj());
+}
+
+void Checksum::update(const guchar* data, gsize length)
+{
+g_checksum_update(gobj(), data, length);
+}
+
+void Checksum::get_digest(guint8 * buffer, gsize * digest_len) const
+{
+g_checksum_get_digest(const_cast<GChecksum*>(gobj()), buffer, digest_len);
+}
+
+std::string Checksum::get_string() const
+{
+ return Glib::convert_const_gchar_ptr_to_stdstring(g_checksum_get_string(const_cast<GChecksum*>(gobj())));
+}
+
+std::string Checksum::compute_checksum(ChecksumType type, const guchar* data, gsize length)
+{
+ return Glib::convert_return_gchar_ptr_to_stdstring(g_compute_checksum_for_data(((GChecksumType)type), data, length));
+}
+
+
+} // namespace Glib
+
+
diff --git a/libs/glibmm2/glib/glibmm/checksum.h b/libs/glibmm2/glib/glibmm/checksum.h
new file mode 100644
index 0000000000..841c6f0a1e
--- /dev/null
+++ b/libs/glibmm2/glib/glibmm/checksum.h
@@ -0,0 +1,224 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GLIBMM_CHECKSUM_H
+#define _GLIBMM_CHECKSUM_H
+
+
+/* $Id$ */
+
+/* Copyright (C) 2002 The gtkmm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+
+#include <glib.h>
+#include <string>
+
+#ifndef DOXYGEN_SHOUD_SKIP_THIS
+extern "C" { typedef struct _GChecksum GChecksum; }
+#endif
+
+namespace Glib
+{
+
+/** Computes the checksum for data.
+ * This is a generic API for computing checksums (or "digests") for a sequence of arbitrary bytes,
+ * using various hashing algorithms like MD5, SHA-1 and SHA-256. Checksums are commonly used in various environments and specifications.
+ *
+ * glibmm supports incremental checksums by calling update() as long as there's data available and then using get_string()
+ * or get_digest() to compute the checksum and return it either as a string in hexadecimal form, or as a raw sequence of bytes.
+ * To compute the checksum for binary blobs and NULL-terminated strings in one go, use the static compute_checksum() convenience functions().
+ *
+ * @newin2p16
+ */
+class Checksum
+{
+ public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+ typedef Checksum CppObjectType;
+ typedef GChecksum BaseObjectType;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+ Checksum();
+
+ // Use make_a_copy=true when getting it directly from a struct.
+ explicit Checksum(GChecksum* castitem, bool make_a_copy = false);
+
+ Checksum(const Checksum& src);
+ Checksum& operator=(const Checksum& src);
+
+ ~Checksum();
+
+ GChecksum* gobj() { return gobject_; }
+ const GChecksum* gobj() const { return gobject_; }
+
+ ///Provides access to the underlying C instance. The caller is responsible for freeing it. Use when directly setting fields in structs.
+ GChecksum* gobj_copy() const;
+
+protected:
+ GChecksum* gobject_;
+
+private:
+
+
+public:
+
+ /**
+ * @class ChecksumType:
+ * @a CHECKSUM_MD5: Use the MD5 hashing algorithm
+ * @a CHECKSUM_SHA1: Use the SHA-1 hashing algorithm
+ * @a CHECKSUM_SHA256: Use the SHA-256 hashing algorithm
+ *
+ * The hashing algorithm to be used by Checksum when performing the
+ * digest of some data.
+ *
+ * Note that the ChecksumType enumeration may be extended at a later
+ * date to include new hashing algorithm types.
+ *
+ * @newin2p16
+ */
+ /** @addtogroup glibmmEnums Enums and Flags */
+
+/**
+ * @ingroup glibmmEnums
+ */
+enum ChecksumType
+{
+ CHECKSUM_MD5,
+ CHECKSUM_SHA1,
+ CHECKSUM_SHA256
+};
+
+
+ /** Creates a new Checksum, using the checksum algorithm @a checksum_type.
+ * If the checksum_type is not known, then operator bool() will return false.
+ *
+ * @param type checksum type, one of defined above.
+ */
+ explicit Checksum(ChecksumType checksum_type);
+
+ /** Returns true if the Checksum object is valid.
+ * This will return false, for instance, if an unsupported checksum type was provided to the constructor.
+ */
+ operator bool() const;
+
+
+ /** Resets the state of the @a checksum back to it's initial state.
+ *
+ * @newin2p18
+ */
+ void reset();
+
+
+ /** Feeds @a data into an existing Checksum. The checksum must still be
+ * open, that is g_checksum_get_string() or g_checksum_get_digest() must
+ * not have been called on @a checksum.
+ *
+ * @newin2p16
+ * @param data Buffer used to compute the checksum.
+ * @param length Size of the buffer, or -1 if it is a null-terminated string.
+ */
+ void update(const guchar* data, gsize length);
+
+ /** Feeds data into an existing Checksum.
+ * The checksum must still be open, that is get_string() or get_digest() must not have been called on the checksum.
+ *
+ * @param data Buffer used to compute the checksum
+ */
+ void update(const std::string& data);
+
+
+ /** Gets the digest from @a checksum as a raw binary vector and places it
+ * into @a buffer. The size of the digest depends on the type of checksum.
+ *
+ * Once this function has been called, the Checksum is closed and can
+ * no longer be updated with g_checksum_update().
+ *
+ * @newin2p16
+ * @param buffer Output buffer.
+ * @param digest_len An inout parameter. The caller initializes it to the size of @a buffer.
+ * After the call it contains the length of the digest.
+ */
+ void get_digest(guint8 *buffer, gsize *digest_len) const;
+
+
+ /** Gets the digest as an hexadecimal string.
+ *
+ * Once this function has been called the Checksum can no longer be
+ * updated with g_checksum_update().
+ * @return The hexadecimal representation of the checksum. The
+ * returned string is owned by the checksum and should not be modified
+ * or freed.
+ *
+ * @newin2p16.
+ */
+ std::string get_string() const;
+
+
+ /** Computes the checksum for a binary @a data of @a length. This is a
+ * convenience wrapper for g_checksum_new(), g_checksum_get_string()
+ * and g_checksum_free().
+ * @param checksum_type A ChecksumType.
+ * @param data Binary blob to compute the digest of.
+ * @param length Length of @a data.
+ * @return The digest of the binary data as a string in hexadecimal.
+ * The returned string should be freed with g_free() when done using it.
+ *
+ * @newin2p16.
+ */
+ static std::string compute_checksum(ChecksumType type, const guchar* data, gsize length);
+
+ /** Computes the checksum of a string.
+ *
+ * @param checksum_type A ChecksumType
+ * @param str The string to compute the checksum of.
+ * @result The checksum as a hexadecimal string.
+ */
+ static std::string compute_checksum(ChecksumType type, const std::string& str);
+
+
+ //We don't use _WRAP_METHOD because this is not really a GCheckSum function:
+ /** Gets the length in bytes of digests of type @a checksum_type.
+ *
+ * @param checksum_type A ChecksumType.
+ * @result The checksum length, or -1 if @a checksum_type is not supported.
+ */
+ static gssize get_length(ChecksumType checksum_type);
+
+
+};
+
+} //namespace Glib
+
+
+namespace Glib
+{
+
+ /** A Glib::wrap() method for this object.
+ *
+ * @param object The C instance.
+ * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
+ * @result A C++ instance that wraps this C instance.
+ *
+ * @relates Glib::Checksum
+ */
+Glib::Checksum wrap(GChecksum* object, bool take_copy = false);
+
+} // namespace Glib
+
+
+#endif /* _GLIBMM_CHECKSUM_H */
+
diff --git a/libs/glibmm2/glib/glibmm/class.cc b/libs/glibmm2/glib/glibmm/class.cc
index 0606f431bb..23c769a92c 100644
--- a/libs/glibmm2/glib/glibmm/class.cc
+++ b/libs/glibmm2/glib/glibmm/class.cc
@@ -1,19 +1,19 @@
// -*- c++ -*-
-/* $Id: class.cc 336 2006-10-04 12:06:14Z murrayc $ */
+/* $Id: class.cc 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright (C) 1998-2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/class.h b/libs/glibmm2/glib/glibmm/class.h
index 96b58b5653..3c2810b7d4 100644
--- a/libs/glibmm2/glib/glibmm/class.h
+++ b/libs/glibmm2/glib/glibmm/class.h
@@ -2,22 +2,22 @@
#ifndef _GLIBMM_CLASS_H
#define _GLIBMM_CLASS_H
-/* $Id: class.h 291 2006-05-12 08:08:45Z murrayc $ */
+/* $Id: class.h 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright 2001 Free Software Foundation
* Copyright (C) 1998-2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/containerhandle_shared.h b/libs/glibmm2/glib/glibmm/containerhandle_shared.h
index 9f31a30dc3..d5851a8326 100644
--- a/libs/glibmm2/glib/glibmm/containerhandle_shared.h
+++ b/libs/glibmm2/glib/glibmm/containerhandle_shared.h
@@ -2,21 +2,21 @@
#ifndef _GLIBMM_CONTAINERHANDLE_SHARED_H
#define _GLIBMM_CONTAINERHANDLE_SHARED_H
-/* $Id: containerhandle_shared.h 322 2006-09-19 20:36:43Z murrayc $ */
+/* $Id: containerhandle_shared.h 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -29,7 +29,6 @@
#include <list>
#include <glib-object.h>
-#include <glib/gmem.h>
#include <glibmm/refptr.h>
#include <glibmm/ustring.h>
#include <glibmm/wrap.h>
@@ -54,11 +53,16 @@ namespace Glib
/**
* @ingroup ContHandles
*/
+
+//! Ownership of the container
+/*! Defines how and if the container will release the list and
+ * its elemens when it is destroyed
+ */
enum OwnershipType
{
- OWNERSHIP_NONE = 0,
- OWNERSHIP_SHALLOW, //Release the list, but not its elements, when the container is deleted
- OWNERSHIP_DEEP //Release the list, and its elements, when the container is deleted.
+ OWNERSHIP_NONE = 0, /*!< Do not release anything */
+ OWNERSHIP_SHALLOW, /*!< Release the list, but not its elements, when the container is deleted */
+ OWNERSHIP_DEEP /*!< Release the list, and its elements, when the container is deleted. */
};
@@ -314,40 +318,22 @@ struct TypeTraits<std::string>
{ g_free(const_cast<CTypeNonConst>(str)); }
};
-/** Specialization for bool
+/** Specialization for bool.
* @ingroup ContHelpers
*/
template <>
struct TypeTraits<bool>
{
- typedef bool CppType;
- typedef gboolean* CType;
- typedef gboolean* CTypeNonConst;
-
- static CType to_c_type (CppType val) { return (int*)GINT_TO_POINTER(val); }
- static CType to_c_type (CType ptr) { return ptr; }
-
- static CppType to_cpp_type(CType ptr)
- {
- if(ptr)
- {
- //We use this for gboolean too, because it is actually an int.
- return GPOINTER_TO_INT(ptr);
- }
- else
- return CppType();
- }
-
- static void release_c_type(CType /* ptr */)
- {
-
- }
+ typedef bool CppType;
+ typedef gboolean CType;
+ typedef gboolean CTypeNonConst;
+
+ static CType to_c_type (CppType item) { return static_cast<CType>(item); }
+ static CType to_c_type (CType item) { return item; }
+ static CppType to_cpp_type (CType item) { return (item != 0); }
+ static void release_c_type (CType) {}
};
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
#ifndef GLIBMM_HAVE_TEMPLATE_SEQUENCE_CTORS
/* The STL containers in Sun's libCstd don't support templated sequence
@@ -368,6 +354,4 @@ void fill_container(Cont& container, In pbegin, In pend)
} // namespace Glib
-
#endif /* _GLIBMM_CONTAINERHANDLE_SHARED_H */
-
diff --git a/libs/glibmm2/glib/glibmm/containers.cc b/libs/glibmm2/glib/glibmm/containers.cc
index 29f5b9aa0b..4f4eba0409 100644
--- a/libs/glibmm2/glib/glibmm/containers.cc
+++ b/libs/glibmm2/glib/glibmm/containers.cc
@@ -1,22 +1,22 @@
// -*- c++ -*-
-/* $Id: containers.cc 2 2003-01-07 16:59:16Z murrayc $ */
+/* $Id: containers.cc 779 2009-01-19 17:58:50Z murrayc $ */
/* containers.h
*
* Copyright (C) 1998-2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/containers.h b/libs/glibmm2/glib/glibmm/containers.h
index 6736e0ecc7..38a9b549b2 100644
--- a/libs/glibmm2/glib/glibmm/containers.h
+++ b/libs/glibmm2/glib/glibmm/containers.h
@@ -2,29 +2,28 @@
#ifndef _GLIBMM_CONTAINERS_H
#define _GLIBMM_CONTAINERS_H
-/* $Id: containers.h 229 2005-11-23 07:22:43Z murrayc $ */
+/* $Id: containers.h 779 2009-01-19 17:58:50Z murrayc $ */
/* containers.h
*
* Copyright (C) 1998-2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <glib/glist.h>
-#include <glib/gslist.h>
+#include <glib.h>
#include <glibmm/sarray.h> /* for backward compatibility */
#include <iterator>
diff --git a/libs/glibmm2/glib/glibmm/convert.cc b/libs/glibmm2/glib/glibmm/convert.cc
index 0d13461950..0ca7db3b84 100644
--- a/libs/glibmm2/glib/glibmm/convert.cc
+++ b/libs/glibmm2/glib/glibmm/convert.cc
@@ -10,23 +10,24 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <glib/gconvert.h>
-#include <glib.h>
-#include <glib/gunicode.h>
+//#include <glib/gtestutils.h> //For g_assert() in glib >= 2.15.0
+//#include <glib/gmessages.h> //For g_assert() in glib < 2.15.0
+#include <glib.h> //For g_assert() in all versions of glib.
+
#include <glibmm/utility.h>
diff --git a/libs/glibmm2/glib/glibmm/convert.h b/libs/glibmm2/glib/glibmm/convert.h
index 81d24f96a1..25bdf2b9d0 100644
--- a/libs/glibmm2/glib/glibmm/convert.h
+++ b/libs/glibmm2/glib/glibmm/convert.h
@@ -9,22 +9,22 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <glib/gtypes.h> /* for gsize */
+#include <glib.h> /* for gsize */
#include <glibmm/error.h>
#include <glibmm/ustring.h>
diff --git a/libs/glibmm2/glib/glibmm/date.cc b/libs/glibmm2/glib/glibmm/date.cc
index eb71cf314a..de375e1406 100644
--- a/libs/glibmm2/glib/glibmm/date.cc
+++ b/libs/glibmm2/glib/glibmm/date.cc
@@ -10,22 +10,23 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <glib/gmem.h>
-#include <glib.h>
+//#include <glib/gtestutils.h> //For g_assert() in glib >= 2.15.0
+//#include <glib/gmessages.h> //For g_assert() in glib < 2.15.0
+#include <glib.h> //For g_assert() in all versions of glib.
#include <ctime>
#include <algorithm>
@@ -61,6 +62,20 @@ Date::Date(const GDate& castitem)
gobject_ (castitem)
{}
+Date::Date(const Date& other)
+{
+ g_date_clear(&gobject_, 1);
+ g_date_set_julian(&gobject_, other.get_julian());
+}
+
+Date& Date::operator=(const Date& other)
+{
+ if (&other != this)
+ g_date_set_julian(&gobject_, other.get_julian());
+
+ return *this;
+}
+
void Date::clear()
{
g_date_clear(&gobject_, 1);
diff --git a/libs/glibmm2/glib/glibmm/date.h b/libs/glibmm2/glib/glibmm/date.h
index 1efdcd6b62..87b40aa060 100644
--- a/libs/glibmm2/glib/glibmm/date.h
+++ b/libs/glibmm2/glib/glibmm/date.h
@@ -9,16 +9,16 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -28,8 +28,7 @@
#include <glibmm/ustring.h>
-#include <glib/gdate.h>
-#include <glib/gtypes.h>
+#include <glib.h>
#ifndef DOXYGEN_SHOULD_SKIP_THIS
extern "C" { struct tm; }
@@ -100,18 +99,63 @@ enum DMY
static const Year BAD_YEAR = 0;
static const guint32 BAD_JULIAN = 0;
+ /** Construct an undefined date.
+ */
Date();
+
+ /** Construct a date with the given day, month and year.
+ * @param day The day.
+ * @param month The month.
+ * @param year The year.
+ */
Date(Day day, Month month, Year year);
+
+ /** Construct a date from a julian day.
+ * @param julian_day The julian day (guint32).
+ */
explicit Date(guint32 julian_day);
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
+ /** Construct a Glib::Date by copying the contents of a GDate.
+ * @param castitem The GDate.
+ *
+ * @newin2p18
+ */
explicit Date(const GDate& castitem);
-#endif
- void clear();
- /** Clear the date. The cleared dates will not represent an existing date, but will not contain garbage.
- * @param month Month to set.
+ /** Construct a Glib::Date from another.
+ * @param other the other Glib::Date.
+ *
+ * @newin2p18
+ */
+ Date(const Date& other);
+
+ /** Assign another date to this one. For example:
+ * @code
+ * ...
+ * Glib::Date my_date;
+ * my_date = other_date;
+ * @endcode
+ *
+ * @param other The other Glib::Date.
+ *
+ * @newin2p18
+ */
+ Date& operator=(const Date& other);
+
+ /// Provides access to the underlying C instance.
+ GDate* gobj() { return &gobject_; }
+
+ /// Provides access to the underlying C instance.
+ const GDate* gobj() const { return &gobject_; }
+
+private:
+ GDate gobject_;
+
+public:
+ /** Clear the date. The cleared dates will not represent an existing date,
+ * but will not contain garbage.
*/
+ void clear();
/** Parses a user-inputted string str, and try to figure out what date it represents, taking the current locale into account. If the string is successfully parsed, the date will be valid after the call. Otherwise, it will be invalid.
* This function is not appropriate for file formats and the like; it isn't very precise, and its exact behavior varies with the locale. It's intended to be a heuristic routine that guesses what the user means by a given string (and it does work pretty well in that capacity).
@@ -160,6 +204,8 @@ enum DMY
*/
void set_time(const GTimeVal& timeval);
+ /** Set this Glib::Date to the current time.
+ */
void set_time_current();
/** Sets the month of the year. If the resulting day-month-year triplet is invalid, the date will be invalid.
@@ -191,7 +237,6 @@ enum DMY
//TODO: Why return Date& (which is always *this) from these methods?
//Isn't it enough to also change the current instance?
- //Maybe we need a copy constructor too.
//murrayc
/** Add a number of days to a Date.
@@ -419,14 +464,6 @@ enum DMY
* @return true if the date is a valid one.
*/
static bool valid_dmy(Day day, Month month, Year year);
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
- GDate* gobj() { return &gobject_; }
- const GDate* gobj() const { return &gobject_; }
-#endif
-
-private:
- GDate gobject_;
};
diff --git a/libs/glibmm2/glib/glibmm/debug.cc b/libs/glibmm2/glib/glibmm/debug.cc
index 65f3c18719..a19d2bb794 100644
--- a/libs/glibmm2/glib/glibmm/debug.cc
+++ b/libs/glibmm2/glib/glibmm/debug.cc
@@ -1,18 +1,18 @@
-/* $Id: debug.cc 2 2003-01-07 16:59:16Z murrayc $ */
+/* $Id: debug.cc 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/debug.h b/libs/glibmm2/glib/glibmm/debug.h
index 3d7368a0c5..8fe9554b99 100644
--- a/libs/glibmm2/glib/glibmm/debug.h
+++ b/libs/glibmm2/glib/glibmm/debug.h
@@ -2,35 +2,33 @@
#ifndef _GLIBMM_DEBUG_H
#define _GLIBMM_DEBUG_H
-/* $Id: debug.h 17 2003-01-22 12:09:02Z murrayc $ */
+/* $Id: debug.h 785 2009-02-17 19:03:06Z daniel $ */
/* Copyright 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <glib/gmacros.h>
+#include <glib.h>
#include <glibmmconfig.h>
// Some stuff that's useful when debugging gtkmm internals:
#ifdef GLIBMM_DEBUG_REFCOUNTING
-#include <glib.h>
-
-/* We can't use G_GNUC_PRETTY_FUNCTION because it's always disabled in C++,
+/* We can't use the equivalent GLib macro because it's always disabled in C++,
* even though __PRETTY_FUNCTION__ works fine in C++ as well if you use it
* right (i.e. concatenation with string literals isn't allowed).
*/
diff --git a/libs/glibmm2/glib/glibmm/dispatcher.cc b/libs/glibmm2/glib/glibmm/dispatcher.cc
index 4cf57b6384..15168db98f 100644
--- a/libs/glibmm2/glib/glibmm/dispatcher.cc
+++ b/libs/glibmm2/glib/glibmm/dispatcher.cc
@@ -1,19 +1,19 @@
// -*- c++ -*-
-/* $Id: dispatcher.cc 370 2007-01-20 10:53:28Z daniel $ */
+/* $Id: dispatcher.cc 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/dispatcher.h b/libs/glibmm2/glib/glibmm/dispatcher.h
index 4f638d7992..096b0f31d7 100644
--- a/libs/glibmm2/glib/glibmm/dispatcher.h
+++ b/libs/glibmm2/glib/glibmm/dispatcher.h
@@ -2,21 +2,21 @@
#ifndef _GLIBMM_DISPATCHER_H
#define _GLIBMM_DISPATCHER_H
-/* $Id: dispatcher.h 370 2007-01-20 10:53:28Z daniel $ */
+/* $Id: dispatcher.h 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/error.cc b/libs/glibmm2/glib/glibmm/error.cc
index 5fdf00acdb..5878464f7a 100644
--- a/libs/glibmm2/glib/glibmm/error.cc
+++ b/libs/glibmm2/glib/glibmm/error.cc
@@ -1,27 +1,28 @@
// -*- c++ -*-
-/* $Id: error.cc 291 2006-05-12 08:08:45Z murrayc $ */
+/* $Id: error.cc 779 2009-01-19 17:58:50Z murrayc $ */
/* error.cc
*
* Copyright 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <glib/gerror.h>
-#include <glib.h>
+//#include <glib/gtestutils.h> //For g_assert() in glib >= 2.15.0
+//#include <glib/gmessages.h> //For g_assert() in glib < 2.15.0
+#include <glib.h> //For g_assert() in all versions of glib.
#include <map>
#include <glibmmconfig.h>
diff --git a/libs/glibmm2/glib/glibmm/error.h b/libs/glibmm2/glib/glibmm/error.h
index 48472996d4..7b0345e38b 100644
--- a/libs/glibmm2/glib/glibmm/error.h
+++ b/libs/glibmm2/glib/glibmm/error.h
@@ -1,21 +1,21 @@
// -*- c++ -*-
#ifndef _GLIBMM_ERROR_H
#define _GLIBMM_ERROR_H
-/* $Id: error.h 336 2006-10-04 12:06:14Z murrayc $ */
+/* $Id: error.h 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -24,7 +24,7 @@
extern "C" { typedef struct _GError GError; }
#endif
-#include <glib/gquark.h>
+#include <glib.h>
#include <glibmm/exception.h>
#include <glibmmconfig.h> //For GLIBMM_EXCEPTIONS_ENABLED
diff --git a/libs/glibmm2/glib/glibmm/exception.cc b/libs/glibmm2/glib/glibmm/exception.cc
index 6e094a2427..14c84b1ea5 100644
--- a/libs/glibmm2/glib/glibmm/exception.cc
+++ b/libs/glibmm2/glib/glibmm/exception.cc
@@ -1,26 +1,29 @@
// -*- c++ -*-
-/* $Id: exception.cc 2 2003-01-07 16:59:16Z murrayc $ */
+/* $Id: exception.cc 779 2009-01-19 17:58:50Z murrayc $ */
/* exception.cc
*
* Copyright 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <glib.h>
+//#include <glib/gtestutils.h> //For g_assert() in glib >= 2.15.0
+//#include <glib/gmessages.h> //For g_assert() in glib < 2.15.0
+#include <glib.h> //For g_assert() in all versions of glib.
+
#include <glibmm/exception.h>
diff --git a/libs/glibmm2/glib/glibmm/exception.h b/libs/glibmm2/glib/glibmm/exception.h
index 757ebe80ca..5f2c8913c8 100644
--- a/libs/glibmm2/glib/glibmm/exception.h
+++ b/libs/glibmm2/glib/glibmm/exception.h
@@ -1,23 +1,23 @@
// -*- c++ -*-
#ifndef _GLIBMM_EXCEPTION_H
#define _GLIBMM_EXCEPTION_H
-/* $Id: exception.h 2 2003-01-07 16:59:16Z murrayc $ */
+/* $Id: exception.h 779 2009-01-19 17:58:50Z murrayc $ */
/* exception.h
*
* Copyright 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/exceptionhandler.cc b/libs/glibmm2/glib/glibmm/exceptionhandler.cc
index 6f4184b9ed..33c0af3ce1 100644
--- a/libs/glibmm2/glib/glibmm/exceptionhandler.cc
+++ b/libs/glibmm2/glib/glibmm/exceptionhandler.cc
@@ -1,21 +1,21 @@
// -*- c++ -*-
-/* $Id: exceptionhandler.cc 291 2006-05-12 08:08:45Z murrayc $ */
+/* $Id: exceptionhandler.cc 779 2009-01-19 17:58:50Z murrayc $ */
/* exceptionhandler.cc
*
* Copyright 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/exceptionhandler.h b/libs/glibmm2/glib/glibmm/exceptionhandler.h
index dcf5dc1f95..a722a79a60 100644
--- a/libs/glibmm2/glib/glibmm/exceptionhandler.h
+++ b/libs/glibmm2/glib/glibmm/exceptionhandler.h
@@ -2,23 +2,23 @@
#ifndef _GLIBMM_EXCEPTIONHANDLER_H
#define _GLIBMM_EXCEPTIONHANDLER_H
-/* $Id: exceptionhandler.h 291 2006-05-12 08:08:45Z murrayc $ */
+/* $Id: exceptionhandler.h 779 2009-01-19 17:58:50Z murrayc $ */
/* exceptionhandler.h
*
* Copyright 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/fileutils.cc b/libs/glibmm2/glib/glibmm/fileutils.cc
index 38850871a0..56ff7bbe1c 100644
--- a/libs/glibmm2/glib/glibmm/fileutils.cc
+++ b/libs/glibmm2/glib/glibmm/fileutils.cc
@@ -10,23 +10,21 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <glib/gdir.h>
-#include <glib/gfileutils.h>
-#include <glib/gstrfuncs.h>
+#include <glib.h>
#include <glibmm/utility.h>
@@ -58,7 +56,7 @@ Dir::~Dir()
std::string Dir::read_name()
{
const char *const name = g_dir_read_name(gobject_);
- return (name) ? std::string(name) : std::string();
+ return Glib::convert_const_gchar_ptr_to_stdstring(name);
}
void Dir::rewind()
diff --git a/libs/glibmm2/glib/glibmm/fileutils.h b/libs/glibmm2/glib/glibmm/fileutils.h
index c749ffbb11..2fe77973e6 100644
--- a/libs/glibmm2/glib/glibmm/fileutils.h
+++ b/libs/glibmm2/glib/glibmm/fileutils.h
@@ -9,16 +9,16 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/helperlist.h b/libs/glibmm2/glib/glibmm/helperlist.h
index b5b91ab9f2..653ffb67e3 100644
--- a/libs/glibmm2/glib/glibmm/helperlist.h
+++ b/libs/glibmm2/glib/glibmm/helperlist.h
@@ -1,23 +1,23 @@
// -*- c++ -*-
#ifndef _GLIBMM_HELPERLIST_H
#define _GLIBMM_HELPERLIST_H
-/* $Id: helperlist.h 386 2007-03-23 17:31:16Z murrayc $ */
+/* $Id: helperlist.h 779 2009-01-19 17:58:50Z murrayc $ */
/* helperlist.h
*
* Copyright 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -110,7 +110,8 @@ public:
{
size_type j = 0;
iterator i;
- for(i = begin(), j = 0; i != end(), j < l; ++i, ++j);
+ for(i = begin(), j = 0; i != end(), j < l; ++i, ++j)
+ ;
return (*i);
}
diff --git a/libs/glibmm2/glib/glibmm/i18n-lib.h b/libs/glibmm2/glib/glibmm/i18n-lib.h
new file mode 100644
index 0000000000..fa253ce339
--- /dev/null
+++ b/libs/glibmm2/glib/glibmm/i18n-lib.h
@@ -0,0 +1,30 @@
+// -*- c++ -*-
+#ifndef _GLIBMM_I18N_LIB_H
+#define _GLIBMM_I18N_LIB_H
+
+/* $Id: i18n-lib.h 779 2009-01-19 17:58:50Z murrayc $ */
+
+/* Copyright 2002 The gtkmm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+// Include this file to define internationalization macros such as _().
+// This file must be included by the application, after system headers such as <iostream>.
+
+#include <glib/gi18n-lib.h>
+
+#endif /* _GLIBMM_I18N_LIB_H */
+
diff --git a/libs/glibmm2/glib/glibmm/i18n.h b/libs/glibmm2/glib/glibmm/i18n.h
index 04ce3cbbaa..194a21c826 100644
--- a/libs/glibmm2/glib/glibmm/i18n.h
+++ b/libs/glibmm2/glib/glibmm/i18n.h
@@ -2,21 +2,21 @@
#ifndef _GLIBMM_I18N_H
#define _GLIBMM_I18N_H
-/* $Id: i18n.h 77 2004-03-02 23:29:57Z murrayc $ */
+/* $Id: i18n.h 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/init.cc b/libs/glibmm2/glib/glibmm/init.cc
index 6956663ffc..01e972f39f 100644
--- a/libs/glibmm2/glib/glibmm/init.cc
+++ b/libs/glibmm2/glib/glibmm/init.cc
@@ -1,19 +1,19 @@
// -*- c++ -*-
-/* $Id: init.cc 54 2003-11-03 09:27:33Z murrayc $ */
+/* $Id: init.cc 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright (C) 2003 The glibmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/init.h b/libs/glibmm2/glib/glibmm/init.h
index 21405e7801..26d350afd0 100644
--- a/libs/glibmm2/glib/glibmm/init.h
+++ b/libs/glibmm2/glib/glibmm/init.h
@@ -2,21 +2,21 @@
#ifndef _GLIBMM_INIT_H
#define _GLIBMM_INIT_H
-/* $Id: init.h 54 2003-11-03 09:27:33Z murrayc $ */
+/* $Id: init.h 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -26,7 +26,7 @@ namespace Glib
/** Initialize glibmm.
* You may call this more than once.
- * You do nott need to call this if you are using Glib::MainLoop or Gtk::Main,
+ * You do not need to call this if you are using Glib::MainLoop or Gtk::Main,
* because they call it for you.
*/
void init();
diff --git a/libs/glibmm2/glib/glibmm/interface.cc b/libs/glibmm2/glib/glibmm/interface.cc
index ecb925a103..ec38729955 100644
--- a/libs/glibmm2/glib/glibmm/interface.cc
+++ b/libs/glibmm2/glib/glibmm/interface.cc
@@ -1,19 +1,19 @@
// -*- c++ -*-
-/* $Id: interface.cc 209 2005-03-07 15:42:20Z murrayc $ */
+/* $Id: interface.cc 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/interface.h b/libs/glibmm2/glib/glibmm/interface.h
index 103c940983..d36ff172fa 100644
--- a/libs/glibmm2/glib/glibmm/interface.h
+++ b/libs/glibmm2/glib/glibmm/interface.h
@@ -2,21 +2,21 @@
#ifndef _GLIBMM_INTERFACE_H
#define _GLIBMM_INTERFACE_H
-/* $Id: interface.h 2 2003-01-07 16:59:16Z murrayc $ */
+/* $Id: interface.h 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -41,7 +41,20 @@ public:
typedef GTypeInterface BaseClassType;
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+ /** Called by constructors of derived classes. Provide the result of
+ * the Class object's init() function to ensure that it is properly
+ * initialized.
+ *
+ * @param interface_class The Class object for the derived type.
+ */
explicit Interface(const Glib::Interface_Class& interface_class);
+
+ /** Called by constructors of derived classes.
+ *
+ * @param cast_item A C instance that will be wrapped by the new
+ * C++ instance. This does not take a reference, so call reference()
+ * if necessary.
+ */
explicit Interface(GObject* castitem);
virtual ~Interface();
diff --git a/libs/glibmm2/glib/glibmm/iochannel.cc b/libs/glibmm2/glib/glibmm/iochannel.cc
index a1b3fda339..b5bd3130b3 100644
--- a/libs/glibmm2/glib/glibmm/iochannel.cc
+++ b/libs/glibmm2/glib/glibmm/iochannel.cc
@@ -10,16 +10,16 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -28,7 +28,6 @@
#include <glibmm/iochannel.h>
#include <glibmm/utility.h>
#include <glibmm/main.h>
-#include <glib.h>
namespace
@@ -449,12 +448,15 @@ Glib::RefPtr<IOChannel> wrap(GIOChannel* gobject, bool take_copy)
/**** Glib::GlibmmIOChannel ************************************************/
-// static
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
GIOStatus GlibmmIOChannel::io_read(GIOChannel* channel, char* buf, gsize count,
gsize* bytes_read, GError** err)
+#else
+//Avoid an unused parameter warning when GLIBMM_EXCEPTIONS_ENABLED is used.
+GIOStatus GlibmmIOChannel::io_read(GIOChannel* channel, char* buf, gsize count,
+ gsize* bytes_read, GError** /* err */)
+#endif
{
- if(!&err) err = err; //Avoid an unused parameter warning when GLIBMM_EXCEPTIONS_ENABLED is used.
-
IOChannel *const wrapper = reinterpret_cast<GlibmmIOChannel*>(channel)->wrapper;
#ifdef GLIBMM_EXCEPTIONS_ENABLED
@@ -477,12 +479,15 @@ GIOStatus GlibmmIOChannel::io_read(GIOChannel* channel, char* buf, gsize count,
return G_IO_STATUS_ERROR;
}
-// static
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
GIOStatus GlibmmIOChannel::io_write(GIOChannel* channel, const char* buf, gsize count,
gsize* bytes_written, GError** err)
+#else
+//Avoid an unused parameter warning when GLIBMM_EXCEPTIONS_ENABLED is used.
+GIOStatus GlibmmIOChannel::io_write(GIOChannel* channel, const char* buf, gsize count,
+ gsize* bytes_written, GError** /* err */)
+#endif
{
- if(!&err) err = err; //Avoid an unused parameter warning when GLIBMM_EXCEPTIONS_ENABLED is used.
-
IOChannel *const wrapper = reinterpret_cast<GlibmmIOChannel*>(channel)->wrapper;
#ifdef GLIBMM_EXCEPTIONS_ENABLED
@@ -505,11 +510,13 @@ GIOStatus GlibmmIOChannel::io_write(GIOChannel* channel, const char* buf, gsize
return G_IO_STATUS_ERROR;
}
-// static
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
GIOStatus GlibmmIOChannel::io_seek(GIOChannel* channel, gint64 offset, GSeekType type, GError** err)
+#else
+//Avoid an unused parameter warning when GLIBMM_EXCEPTIONS_ENABLED is used.
+GIOStatus GlibmmIOChannel::io_seek(GIOChannel* channel, gint64 offset, GSeekType type, GError** /* err */)
+#endif
{
- if(!&err) err = err; //Avoid an unused parameter warning when GLIBMM_EXCEPTIONS_ENABLED is used.
-
IOChannel *const wrapper = reinterpret_cast<GlibmmIOChannel*>(channel)->wrapper;
#ifdef GLIBMM_EXCEPTIONS_ENABLED
@@ -532,11 +539,13 @@ GIOStatus GlibmmIOChannel::io_seek(GIOChannel* channel, gint64 offset, GSeekType
return G_IO_STATUS_ERROR;
}
-// static
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
GIOStatus GlibmmIOChannel::io_close(GIOChannel* channel, GError** err)
+#else
+//Avoid an unused parameter warning when GLIBMM_EXCEPTIONS_ENABLED is used.
+GIOStatus GlibmmIOChannel::io_close(GIOChannel* channel, GError** /* err */)
+#endif
{
- if(!&err) err = err; //Avoid an unused parameter warning when GLIBMM_EXCEPTIONS_ENABLED is used.
-
IOChannel *const wrapper = reinterpret_cast<GlibmmIOChannel*>(channel)->wrapper;
#ifdef GLIBMM_EXCEPTIONS_ENABLED
@@ -594,11 +603,13 @@ void GlibmmIOChannel::io_free(GIOChannel* channel)
g_free(channel);
}
-// static
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
GIOStatus GlibmmIOChannel::io_set_flags(GIOChannel* channel, GIOFlags flags, GError** err)
+#else
+//Avoid an unused parameter warning when GLIBMM_EXCEPTIONS_ENABLED is used.
+GIOStatus GlibmmIOChannel::io_set_flags(GIOChannel* channel, GIOFlags flags, GError** /* err */)
+#endif
{
- if(!&err) err = err; //Avoid an unused parameter warning when GLIBMM_EXCEPTIONS_ENABLED is used.
-
IOChannel *const wrapper = reinterpret_cast<GlibmmIOChannel*>(channel)->wrapper;
#ifdef GLIBMM_EXCEPTIONS_ENABLED
diff --git a/libs/glibmm2/glib/glibmm/iochannel.h b/libs/glibmm2/glib/glibmm/iochannel.h
index 0891a78977..45a428e533 100644
--- a/libs/glibmm2/glib/glibmm/iochannel.h
+++ b/libs/glibmm2/glib/glibmm/iochannel.h
@@ -10,16 +10,16 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -29,7 +29,7 @@
#include <glibmm/main.h>
#include <glibmm/refptr.h>
#include <glibmm/ustring.h>
-#include <glib/gtypes.h>
+#include <glib.h>
#include <string>
#include <glibmmconfig.h>
@@ -269,11 +269,10 @@ public:
* @throw Glib::ConvertError
*/
- /** This function cannot be called on a channel with <tt>0</tt> encoding.
+ /** Reads a Unicode character from @a channel.
+ * This function cannot be called on a channel with <tt>0</tt> encoding.
* @param thechar A location to return a character.
- * @param error A location to return an error of type G::ConvertError
- * or G::IOChannelError.
- * @return A G::IOStatus.
+ * @return A IOStatus.
*/
#ifdef GLIBMM_EXCEPTIONS_ENABLED
IOStatus read(gunichar& thechar);
@@ -305,8 +304,6 @@ public:
* success if count &lt; 6 and the channel's encoding is non-<tt>0</tt>.
* This indicates that the next UTF-8 character is too wide for
* the buffer.
- * @param error A location to return an error of type G::ConvertError
- * or G::IOChannelError.
* @return The status of the operation.
*/
#ifdef GLIBMM_EXCEPTIONS_ENABLED
@@ -392,12 +389,10 @@ public:
* @param count The size of the buffer. If -1, the buffer
* is taken to be a nul-terminated string.
* @param bytes_written The number of bytes written. This can be nonzero
- * even if the return value is not G::IO_STATUS_NORMAL.
- * If the return value is G::IO_STATUS_NORMAL and the
+ * even if the return value is not IO_STATUS_NORMAL.
+ * If the return value is IO_STATUS_NORMAL and the
* channel is blocking, this will always be equal
- * to @a count if @a count &gt;= 0.
- * @param error A location to return an error of type G::ConvertError
- * or G::IOChannelError.
+ * to @a count if @a count &gt;= 0.
* @return The status of the operation.
*/
#ifdef GLIBMM_EXCEPTIONS_ENABLED
@@ -414,11 +409,10 @@ public:
* @throw Glib::ConvertError
*/
- /** This function cannot be called on a channel with <tt>0</tt> encoding.
+ /** Writes a Unicode character to @a channel.
+ * This function cannot be called on a channel with <tt>0</tt> encoding.
* @param thechar A character.
- * @param error A location to return an error of type G::ConvertError
- * or G::IOChannelError.
- * @return A G::IOStatus.
+ * @return A IOStatus.
*/
#ifdef GLIBMM_EXCEPTIONS_ENABLED
IOStatus write(gunichar unichar);
@@ -438,12 +432,11 @@ public:
*/
/** Replacement for g_io_channel_seek() with the new API.
- * @param offset The offset in bytes from the position specified by @a type .
- * @param type A G::SeekType. The type G::SEEK_CUR is only allowed in those
+ * @param offset The offset in bytes from the position specified by @a type.
+ * @param type A SeekType. The type SEEK_CUR is only allowed in those
* cases where a call to g_io_channel_set_encoding()
* is allowed. See the documentation for
* g_io_channel_set_encoding() for details.
- * @param error A location to return an error of type G::IOChannelError.
* @return The status of the operation.
*/
#ifdef GLIBMM_EXCEPTIONS_ENABLED
@@ -460,10 +453,9 @@ public:
*/
/** Flushes the write buffer for the GIOChannel.
- * @param error Location to store an error of type G::IOChannelError.
* @return The status of the operation: One of
- * G::IO_CHANNEL_NORMAL, G::IO_CHANNEL_AGAIN, or
- * G::IO_CHANNEL_ERROR.
+ * IO_CHANNEL_NORMAL, IO_CHANNEL_AGAIN, or
+ * IO_CHANNEL_ERROR.
*/
#ifdef GLIBMM_EXCEPTIONS_ENABLED
IOStatus flush();
@@ -482,10 +474,10 @@ public:
*/
/** Close an IO channel. Any pending data to be written will be
- * flushed if @a flush is <tt>true</tt>. The channel will not be freed until the
+ * flushed if @a flush is <tt>true</tt>. The channel will not be freed until the
* last reference is dropped using g_io_channel_unref().
* @param flush If <tt>true</tt>, flush pending.
- * @param err Location to store a G::IOChannelError.
+ * @param err Location to store a IOChannelError.
* @return The status of the operation.
*/
#ifdef GLIBMM_EXCEPTIONS_ENABLED
@@ -509,7 +501,7 @@ public:
*/
/** Sets the buffer size.
- * @param size The size of the buffer. 0 == pick a good size.
+ * @param size The size of the buffer, or 0 to let GLib pick a good size.
*/
void set_buffer_size(gsize size);
@@ -525,10 +517,10 @@ public:
* @return Bitwise combination of the flags set on the channel.
*/
- /** Gets the current flags for a G::IOChannel, including read-only
- * flags such as G::IO_FLAG_IS_READABLE.
+ /** Gets the current flags for a IOChannel, including read-only
+ * flags such as IO_FLAG_IS_READABLE.
*
- * The values of the flags G::IO_FLAG_IS_READABLE and G::IO_FLAG_IS_WRITEABLE
+ * The values of the flags IO_FLAG_IS_READABLE and IO_FLAG_IS_WRITEABLE
* are cached for internal use by the channel when it is created.
* If they should change at some later point (e.g. partial shutdown
* of a socket with the UNIX shutdown() function), the user
@@ -544,9 +536,8 @@ public:
* @throw Glib::IOChannelError
*/
- /** Sets the (writeable) flags in @a channel to ( @a flags & G::IO_CHANNEL_SET_MASK).
+ /** Sets the (writeable) flags in @a channel to ( @a flags & IO_CHANNEL_SET_MASK).
* @param flags The flags to set on the IO channel.
- * @param error A location to return an error of type G::IOChannelError.
* @return The status of the operation.
*/
#ifdef GLIBMM_EXCEPTIONS_ENABLED
@@ -579,11 +570,11 @@ public:
*
* A buffered channel can only be set unbuffered if the channel's
* internal buffers have been flushed. Newly created channels or
- * channels which have returned G::IO_STATUS_EOF
+ * channels which have returned IO_STATUS_EOF
* not require such a flush. For write-only channels, a call to
* g_io_channel_flush() is sufficient. For all other channels,
* the buffers may be flushed by a call to g_io_channel_seek_position().
- * This includes the possibility of seeking with seek type G::SEEK_CUR
+ * This includes the possibility of seeking with seek type SEEK_CUR
* and an offset of zero. Note that this means that socket-based
* channels cannot be set unbuffered once they have had data
* read from them.
@@ -601,8 +592,8 @@ public:
* @return The buffering status of the channel.
*/
- /** Return Value: <tt>true</tt> if the @a channel is buffered.
- * @return <tt>true</tt> if the @a channel is buffered.
+ /** Return Value: <tt>true</tt> if the @a channel is buffered.
+ * @return <tt>true</tt> if the @a channel is buffered.
*/
bool get_buffered() const;
@@ -612,11 +603,10 @@ public:
* @return Bitwise combination of Glib::IOCondition flags.
*/
- /** This function returns a G::IOCondition depending on whether there
- * is data to be read/space to write data in the
- * internal buffers in the G::IOChannel. Only the flags G::IO_IN and
- * G::IO_OUT may be set.
- * @return A G::IOCondition.
+ /** This function returns a IOCondition depending on whether there
+ * is data to be read/space to write data in the internal buffers in
+ * the IOChannel. Only the flags IO_IN and IO_OUT may be set.
+ * @return A IOCondition.
*/
IOCondition get_buffer_condition() const;
diff --git a/libs/glibmm2/glib/glibmm/keyfile.cc b/libs/glibmm2/glib/glibmm/keyfile.cc
index 8fad136602..8ae9523350 100644
--- a/libs/glibmm2/glib/glibmm/keyfile.cc
+++ b/libs/glibmm2/glib/glibmm/keyfile.cc
@@ -7,16 +7,16 @@
/* Copyright 2006 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -41,61 +41,94 @@ KeyFile::KeyFile(GKeyFile* castitem, bool takes_ownership)
KeyFile::~KeyFile()
{
if (owns_gobject_)
- g_key_file_free(gobject_);
+ g_key_file_free(gobject_);
}
bool KeyFile::load_from_data(const Glib::ustring& data, KeyFileFlags flags)
{
- GError *error = 0;
- bool retvalue = g_key_file_load_from_data(gobj(), data.c_str(), data.bytes(), ((GKeyFileFlags)(flags)), &(error));
- if(error) :: Glib::Error::throw_exception(error);
- return retvalue;
+ GError* error = 0;
+
+ const gboolean result = g_key_file_load_from_data(
+ gobj(), data.c_str(), data.bytes(),
+ static_cast<GKeyFileFlags>(unsigned(flags)),
+ &error);
+
+ if(error)
+ Glib::Error::throw_exception(error);
+
+ return (result != 0);
}
-bool KeyFile::load_from_data_dirs(const std::string& file, std::string& full_path, KeyFileFlags flags)
+bool KeyFile::load_from_data_dirs(const std::string& file, std::string& full_path,
+ KeyFileFlags flags)
{
- GError *error = 0;
- char *full_path_c;
- bool retvalue = g_key_file_load_from_data_dirs(gobj(), file.c_str(), &full_path_c, ((GKeyFileFlags)(flags)), &(error));
- full_path = Glib::convert_return_gchar_ptr_to_ustring(full_path_c);
- if(error) :: Glib::Error::throw_exception(error);
- return retvalue;
+ GError* error = 0;
+ char* full_path_c = 0;
+
+ const gboolean result = g_key_file_load_from_data_dirs(
+ gobj(), file.c_str(), &full_path_c,
+ static_cast<GKeyFileFlags>(unsigned(flags)),
+ &error);
+
+ if(error)
+ Glib::Error::throw_exception(error);
+
+ if(full_path_c)
+ full_path = Glib::ScopedPtr<char>(full_path_c).get();
+ else
+ full_path.erase();
+
+ return (result != 0);
}
Glib::ustring KeyFile::to_data()
{
- GError *error = 0;
- gsize size;
- Glib::ustring retvalue = Glib::convert_return_gchar_ptr_to_ustring(g_key_file_to_data(gobj(), &size, &error));
- if(error) :: Glib::Error::throw_exception(error);
- return retvalue;
+ GError* error = 0;
+ char *const str = g_key_file_to_data(gobj(), 0, &error);
+
+ if(error)
+ Glib::Error::throw_exception(error);
+
+ return Glib::convert_return_gchar_ptr_to_ustring(str);
}
Glib::ArrayHandle<Glib::ustring> KeyFile::get_groups() const
{
- gchar** group_names = 0;
- gsize number_of_groups = 0;
- group_names = g_key_file_get_groups(const_cast<GKeyFile*>(gobj()), &number_of_groups);
- return Glib::ArrayHandle<Glib::ustring>(group_names, number_of_groups, Glib::OWNERSHIP_DEEP);
+ gsize length = 0;
+ char** const array = g_key_file_get_groups(const_cast<GKeyFile*>(gobj()), &length);
+
+ return Glib::ArrayHandle<Glib::ustring>(array, length, Glib::OWNERSHIP_DEEP);
}
Glib::ArrayHandle<Glib::ustring> KeyFile::get_keys(const Glib::ustring& group_name) const
{
- gchar** key_names = 0;
- gsize number_of_keys = 0;
- GError* error = 0;
- key_names = g_key_file_get_keys(const_cast<GKeyFile*>(gobj()), group_name.c_str(), &number_of_keys, &error);
+ gsize length = 0;
+ GError* error = 0;
+
+ char** const array = g_key_file_get_keys(
+ const_cast<GKeyFile*>(gobj()),
+ (group_name.empty()) ? 0 : group_name.c_str(),
+ &length, &error);
+
if(error)
Glib::Error::throw_exception(error);
- return Glib::ArrayHandle<Glib::ustring>(key_names, number_of_keys, Glib::OWNERSHIP_DEEP);
+
+ return Glib::ArrayHandle<Glib::ustring>(array, length, Glib::OWNERSHIP_DEEP);
}
-Glib::ustring KeyFile::get_locale_string(const Glib::ustring& group_name, const Glib::ustring& key) const
+Glib::ustring KeyFile::get_locale_string(const Glib::ustring& group_name,
+ const Glib::ustring& key) const
{
- GError *error = 0;
- Glib::ustring retvalue = Glib::convert_return_gchar_ptr_to_ustring(g_key_file_get_locale_string(const_cast<GKeyFile*>(gobj()), group_name.c_str(), key.c_str(), 0, &(error)));
- if(error) ::Glib::Error::throw_exception(error);
- return retvalue;
+ GError* error = 0;
+ char *const str = g_key_file_get_locale_string(
+ const_cast<GKeyFile*>(gobj()),
+ (group_name.empty()) ? 0 : group_name.c_str(),
+ key.c_str(), 0, &error);
+
+ if(error)
+ Glib::Error::throw_exception(error);
+
+ return Glib::convert_return_gchar_ptr_to_ustring(str);
}
#ifdef GLIBMM_EXCEPTIONS_ENABLED
@@ -105,19 +138,17 @@ int KeyFile::get_integer(const Glib::ustring& key, std::auto_ptr<Glib::Error>& e
#endif //GLIBMM_EXCEPTIONS_ENABLED
{
GError* gerror = 0;
- int retvalue = g_key_file_get_integer(const_cast<GKeyFile*>(gobj()), NULL, key.c_str(), &(gerror));
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
+ const int value = g_key_file_get_integer(const_cast<GKeyFile*>(gobj()),
+ 0, key.c_str(), &gerror);
if(gerror)
- ::Glib::Error::throw_exception(gerror);
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+ Glib::Error::throw_exception(gerror);
#else
- if(gerror)
- error = ::Glib::Error::throw_exception(gerror);
-#endif //GLIBMM_EXCEPTIONS_ENABLED
-
- return retvalue;
+ error = Glib::Error::throw_exception(gerror);
+#endif
+ return value;
}
-
#ifdef GLIBMM_EXCEPTIONS_ENABLED
double KeyFile::get_double(const Glib::ustring& key) const
#else
@@ -142,49 +173,76 @@ void KeyFile::set_double(const Glib::ustring& key, double value)
g_key_file_set_double(gobj(), 0, key.c_str(), value);
}
-
-Glib::ArrayHandle<Glib::ustring> KeyFile::get_string_list(const Glib::ustring& group_name, const Glib::ustring& key) const
+// TODO: alternative code path with exceptions disabled
+Glib::ArrayHandle<Glib::ustring> KeyFile::get_string_list(const Glib::ustring& group_name,
+ const Glib::ustring& key) const
{
- gchar** string_list = 0;
- gsize length_of_list = 0;
- GError* error = 0;
- string_list = g_key_file_get_string_list(const_cast<GKeyFile*>(gobj()), group_name.c_str(), key.c_str(), &length_of_list, &error);
+ gsize length = 0;
+ GError* error = 0;
+
+ char** const array = g_key_file_get_string_list(
+ const_cast<GKeyFile*>(gobj()),
+ (group_name.empty()) ? 0 : group_name.c_str(),
+ key.c_str(), &length, &error);
+
if(error)
Glib::Error::throw_exception(error);
- return Glib::ArrayHandle<Glib::ustring>(string_list, length_of_list, Glib::OWNERSHIP_DEEP);
+
+ return Glib::ArrayHandle<Glib::ustring>(array, length, Glib::OWNERSHIP_DEEP);
}
-Glib::ArrayHandle<Glib::ustring> KeyFile::get_locale_string_list(const Glib::ustring& group_name, const Glib::ustring& key, const Glib::ustring& locale) const
+// TODO: alternative code path with exceptions disabled
+Glib::ArrayHandle<Glib::ustring> KeyFile::get_locale_string_list(const Glib::ustring& group_name,
+ const Glib::ustring& key,
+ const Glib::ustring& locale) const
{
- gchar** string_list = 0;
- gsize length_of_list = 0;
- GError* error = 0;
- string_list = g_key_file_get_locale_string_list(const_cast<GKeyFile*>(gobj()), group_name.c_str(), key.c_str(), locale.c_str(), &length_of_list, &error);
+ gsize length = 0;
+ GError* error = 0;
+
+ char** const array = g_key_file_get_locale_string_list(
+ const_cast<GKeyFile*>(gobj()),
+ (group_name.empty()) ? 0 : group_name.c_str(),
+ key.c_str(), locale.c_str(), &length, &error);
+
if(error)
Glib::Error::throw_exception(error);
- return Glib::ArrayHandle<Glib::ustring>(string_list, length_of_list, Glib::OWNERSHIP_DEEP);
+
+ return Glib::ArrayHandle<Glib::ustring>(array, length, Glib::OWNERSHIP_DEEP);
}
-Glib::ArrayHandle<bool> KeyFile::get_boolean_list(const Glib::ustring& group_name, const Glib::ustring& key) const
+// TODO: alternative code path with exceptions disabled
+Glib::ArrayHandle<bool> KeyFile::get_boolean_list(const Glib::ustring& group_name,
+ const Glib::ustring& key) const
{
- gboolean* bool_list = 0;
- gsize length_of_list = 0;
- GError* error = 0;
- bool_list = g_key_file_get_boolean_list(const_cast<GKeyFile*>(gobj()), group_name.c_str(), key.c_str(), &length_of_list, &error);
+ gsize length = 0;
+ GError* error = 0;
+
+ gboolean *const array = g_key_file_get_boolean_list(
+ const_cast<GKeyFile*>(gobj()),
+ (group_name.empty()) ? 0 : group_name.c_str(),
+ key.c_str(), &length, &error);
+
if(error)
Glib::Error::throw_exception(error);
- return Glib::ArrayHandle<bool>(&bool_list, length_of_list, Glib::OWNERSHIP_DEEP);
+
+ return Glib::ArrayHandle<bool>(array, length, Glib::OWNERSHIP_SHALLOW);
}
-Glib::ArrayHandle<int> KeyFile::get_integer_list(const Glib::ustring& group_name, const Glib::ustring& key) const
+Glib::ArrayHandle<int> KeyFile::get_integer_list(const Glib::ustring& group_name,
+ const Glib::ustring& key) const
{
- gint* integer_list = 0;
- gsize length_of_list = 0;
- GError* error = 0;
- integer_list = g_key_file_get_integer_list(const_cast<GKeyFile*>(gobj()), group_name.c_str(), key.c_str(), &length_of_list, &error);
+ gsize length = 0;
+ GError* error = 0;
+
+ int *const array = g_key_file_get_integer_list(
+ const_cast<GKeyFile*>(gobj()),
+ (group_name.empty()) ? 0 : group_name.c_str(),
+ key.c_str(), &length, &error);
+
if(error)
Glib::Error::throw_exception(error);
- return Glib::ArrayHandle<int>(integer_list, length_of_list, Glib::OWNERSHIP_DEEP);
+
+ return Glib::ArrayHandle<int>(array, length, Glib::OWNERSHIP_SHALLOW);
}
Glib::ArrayHandle<double> KeyFile::get_double_list(const Glib::ustring& group_name, const Glib::ustring& key) const
@@ -198,67 +256,84 @@ Glib::ArrayHandle<double> KeyFile::get_double_list(const Glib::ustring& group_na
return Glib::ArrayHandle<double>(integer_list, length_of_list, Glib::OWNERSHIP_DEEP);
}
-void KeyFile::set_string_list(const Glib::ustring& group_name, const Glib::ustring& key, const Glib::ArrayHandle<Glib::ustring>& list)
+void KeyFile::set_string_list(const Glib::ustring& group_name, const Glib::ustring& key,
+ const Glib::ArrayHandle<Glib::ustring>& list)
{
- gsize length_of_list = list.size();
- g_key_file_set_string_list(gobj(), group_name.c_str(), key.c_str(), list.data(), length_of_list);
+ g_key_file_set_string_list(gobj(), (group_name.empty()) ? 0 : group_name.c_str(),
+ key.c_str(), list.data(), list.size());
}
-void KeyFile::set_locale_string_list(const Glib::ustring& group_name, const Glib::ustring& key, const Glib::ustring& locale, const Glib::ArrayHandle<Glib::ustring>& list)
+void KeyFile::set_locale_string_list(const Glib::ustring& group_name,
+ const Glib::ustring& key, const Glib::ustring& locale,
+ const Glib::ArrayHandle<Glib::ustring>& list)
{
- gsize length_of_list = list.size();
- g_key_file_set_locale_string_list(gobj(), group_name.c_str(), key.c_str(), locale.c_str(), list.data(), length_of_list);
+ g_key_file_set_locale_string_list(gobj(), (group_name.empty()) ? 0 : group_name.c_str(),
+ key.c_str(), locale.c_str(), list.data(), list.size());
}
-void KeyFile::set_integer_list(const Glib::ustring& group_name, const Glib::ustring& key, Glib::ArrayHandle<int>& list)
+void KeyFile::set_integer_list(const Glib::ustring& group_name, const Glib::ustring& key,
+ const Glib::ArrayHandle<int>& list)
{
- gsize length_of_list = list.size();
- g_key_file_set_integer_list(gobj(), group_name.c_str(), key.c_str(), const_cast<int*>(list.data()), length_of_list);
+ g_key_file_set_integer_list(gobj(), (group_name.empty()) ? 0 : group_name.c_str(),
+ key.c_str(), const_cast<int*>(list.data()), list.size());
}
-void KeyFile::set_double_list(const Glib::ustring& group_name, const Glib::ustring& key, Glib::ArrayHandle<double>& list)
+void KeyFile::set_double_list(const Glib::ustring& group_name, const Glib::ustring& key,
+ const Glib::ArrayHandle<double>& list)
{
- gsize length_of_list = list.size();
- g_key_file_set_double_list(gobj(), group_name.c_str(), key.c_str(), const_cast<double*>(list.data()), length_of_list);
+ g_key_file_set_double_list(gobj(), group_name.c_str(), key.c_str(),
+ const_cast<double*>(list.data()), list.size());
}
-void KeyFile::set_boolean_list(const Glib::ustring& group_name, const Glib::ustring& key, Glib::ArrayHandle<bool>& list)
+void KeyFile::set_boolean_list(const Glib::ustring& group_name, const Glib::ustring& key,
+ const Glib::ArrayHandle<bool>& list)
{
- gsize length_of_list = list.size();
- g_key_file_set_boolean_list(gobj(), group_name.c_str(), key.c_str(), *(list.data()), length_of_list);
+ g_key_file_set_boolean_list(gobj(), (group_name.empty()) ? 0 : group_name.c_str(),
+ key.c_str(), const_cast<gboolean*>(list.data()), list.size());
}
Glib::ustring KeyFile::get_comment() const
{
- GError *error = 0;
- Glib::ustring retvalue = Glib::convert_return_gchar_ptr_to_ustring(g_key_file_get_comment(const_cast<GKeyFile*>(gobj()), 0, 0, &(error)));
- if(error) ::Glib::Error::throw_exception(error);
- return retvalue;
+ GError* error = 0;
+ char *const str = g_key_file_get_comment(const_cast<GKeyFile*>(gobj()), 0, 0, &error);
+
+ if(error)
+ Glib::Error::throw_exception(error);
+
+ return Glib::convert_return_gchar_ptr_to_ustring(str);
}
Glib::ustring KeyFile::get_comment(const Glib::ustring& group_name) const
{
- GError *error = 0;
- Glib::ustring retvalue = Glib::convert_return_gchar_ptr_to_ustring(g_key_file_get_comment(const_cast<GKeyFile*>(gobj()), group_name.c_str(), 0, &(error)));
- if(error) ::Glib::Error::throw_exception(error);
- return retvalue;
+ GError* error = 0;
+ char *const str = g_key_file_get_comment(const_cast<GKeyFile*>(gobj()),
+ (group_name.empty()) ? 0 : group_name.c_str(),
+ 0, &error);
+ if(error)
+ Glib::Error::throw_exception(error);
+
+ return Glib::convert_return_gchar_ptr_to_ustring(str);
}
void KeyFile::set_comment(const Glib::ustring& comment)
{
- GError *error = 0;
- g_key_file_set_comment(gobj(), 0, 0, comment.c_str(), &(error));
- if(error) ::Glib::Error::throw_exception(error);
+ GError* error = 0;
+ g_key_file_set_comment(gobj(), 0, 0, comment.c_str(), &error);
+
+ if(error)
+ Glib::Error::throw_exception(error);
}
void KeyFile::set_comment(const Glib::ustring& group_name, const Glib::ustring& comment)
{
- GError *error = 0;
- g_key_file_set_comment(gobj(), group_name.c_str(), 0, comment.c_str(), &(error));
- if(error) ::Glib::Error::throw_exception(error);
+ GError* error = 0;
+ g_key_file_set_comment(gobj(), (group_name.empty()) ? 0 : group_name.c_str(),
+ 0, comment.c_str(), &error);
+ if(error)
+ Glib::Error::throw_exception(error);
}
-}
+} // namespace Glib
namespace
{
diff --git a/libs/glibmm2/glib/glibmm/keyfile.h b/libs/glibmm2/glib/glibmm/keyfile.h
index 1c94b466fb..6194084a7b 100644
--- a/libs/glibmm2/glib/glibmm/keyfile.h
+++ b/libs/glibmm2/glib/glibmm/keyfile.h
@@ -7,16 +7,16 @@
/* Copyright(C) 2006 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or(at your option) any later version.
+ * version 2.1 of the License, or(at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -26,7 +26,7 @@
#include <glibmm/arrayhandle.h>
#include <glibmm/error.h>
#include <glibmm/utility.h>
-#include <glib/gkeyfile.h>
+#include <glib.h>
#ifndef DOXYGEN_SHOULD_SKIP_THIS
extern "C" { typedef struct _GKeyFile GKeyFile; }
@@ -153,8 +153,8 @@ private:
*
* Key-value pairs generally have the form key=value, with the exception of localized strings, which have the form
* key[locale]=value. Space before and after the '=' character are ignored. Newline, tab, carriage return and
- * backslash characters in value are escaped as \n, \t, \r, and \\, respectively. To preserve leading spaces in
- * values, these can also be escaped as \s.
+ * backslash characters in value are escaped as \\n, \\t, \\r, and \\\\, respectively. To preserve leading spaces in
+ * values, these can also be escaped as \\s.
*
* Key files can store strings (possibly with localized variants), integers, booleans and lists of these. Lists are
* separated by a separator character, typically ';' or ','. To use the list separator character in a value in a
@@ -207,12 +207,13 @@ public:
public:
- /** Loads a key file into an empty G::KeyFile structure.
- * If the file could not be loaded then %error is set to
- * either a G::FileError or G::KeyFileError.
+ /** Loads a key file into an empty KeyFile instance.
+ * If the file could not be loaded then a FileError or KeyFileError exception is thrown.
+ *
+ * @a throw Glib::FileError
+ * @a throw Glib::KeyFileError
* @param file The path of a filename to load, in the GLib file name encoding.
- * @param flags Flags from G::KeyFileFlags.
- * @param error Return location for a G::Error, or <tt>0</tt>.
+ * @param flags Flags from KeyFileFlags.
* @return <tt>true</tt> if a key file could be loaded, <tt>false</tt> othewise
* @newin2p6.
*/
@@ -283,20 +284,19 @@ public:
Glib::ArrayHandle<Glib::ustring> get_keys(const Glib::ustring& group_name) const;
- /** Looks whether the key file has the group @a group_name .
+ /** Looks whether the key file has the group @a group_name.
* @param group_name A group name.
- * @return <tt>true</tt> if @a group_name is a part of @a key_file , <tt>false</tt>
+ * @return <tt>true</tt> if @a group_name is a part of @a key_file, <tt>false</tt>
* otherwise.
* @newin2p6.
*/
bool has_group(const Glib::ustring& group_name) const;
- /** Looks whether the key file has the key @a key in the group
- * @a group_name .
+ /** Looks whether the key file has the key @a key in the group
+ * @a group_name.
* @param group_name A group name.
* @param key A key name.
- * @param error Return location for a G::Error.
- * @return <tt>true</tt> if @a key is a part of @a group_name , <tt>false</tt>
+ * @return <tt>true</tt> if @a key is a part of @a group_name, <tt>false</tt>
* otherwise.
*
* @newin2p6.
@@ -308,12 +308,13 @@ public:
#endif //GLIBMM_EXCEPTIONS_ENABLED
- /** Return value: a newly allocated string or <tt>0</tt> if the specified
+ /** Returns the value associated with @a key under @a group_name.
+ *
+ * @a throw Glib::FileError in the event the key cannot be found (with the Glib::KEY_FILE_ERROR_KEY_NOT_FOUND code).
+ * @a throw Glib::KeyFileError in the event that the @a group_name cannot be found (with the Glib::KEY_FILE_ERROR_GROUP_NOT_FOUND).
* @param group_name A group name.
* @param key A key.
- * @param error Return location for a G::Error, or <tt>0</tt>.
- * @return A newly allocated string or <tt>0</tt> if the specified
- * key cannot be found.
+ * @return The value as a string.
*
* @newin2p6.
*/
@@ -327,7 +328,6 @@ public:
/** Return value: a newly allocated string or <tt>0</tt> if the specified
* @param group_name A group name.
* @param key A key.
- * @param error Return location for a G::Error, or <tt>0</tt>.
* @return A newly allocated string or <tt>0</tt> if the specified
* key cannot be found.
*
@@ -349,8 +349,7 @@ public:
/** Return value: a newly allocated string or <tt>0</tt> if the specified
* @param group_name A group name.
* @param key A key.
- * @param locale A locale or <tt>0</tt>.
- * @param error Return location for a G::Error, or <tt>0</tt>.
+ * @param locale A locale identifier or <tt>0</tt>.
* @return A newly allocated string or <tt>0</tt> if the specified
* key cannot be found.
*
@@ -363,12 +362,11 @@ public:
#endif //GLIBMM_EXCEPTIONS_ENABLED
- /** Return value: the value associated with the key as a boolean, or
+ /** Return value: the value associated with the key as a boolean,
* @param group_name A group name.
* @param key A key.
- * @param error Return location for a G::Error.
- * @return The value associated with the key as a boolean, or
- * <tt>false</tt> if the key was not found or could not be parsed.
+ * @return The value associated with the key as a boolean,
+ * or <tt>false</tt> if the key was not found or could not be parsed.
*
* @newin2p6.
*/
@@ -391,7 +389,6 @@ public:
/** Return value: the value associated with the key as an integer, or
* @param group_name A group name.
* @param key A key.
- * @param error Return location for a G::Error.
* @return The value associated with the key as an integer, or
* 0 if the key was not found or could not be parsed.
*
@@ -418,7 +415,6 @@ public:
/** Return value: the value associated with the key as a double, or
* @param group_name A group name.
* @param key A key.
- * @param error Return location for a G::Error.
* @return The value associated with the key as a double, or
* 0.0 if the key was not found or could not be parsed.
*
@@ -431,8 +427,8 @@ public:
#endif //GLIBMM_EXCEPTIONS_ENABLED
- /** Associates a new double value with @a key under @a group_name .
- * If @a key cannot be found then it is created.
+ /** Associates a new double value with @a key under @a group_name.
+ * If @a key cannot be found then it is created.
*
* @newin2p14
* @param group_name A group name.
@@ -518,14 +514,12 @@ public:
Glib::ustring get_comment(const Glib::ustring& group_name) const;
- /** Retrieves a comment above @a key from @a group_name .
- * @a group_name . If @a key is <tt>0</tt> then @a comment will
- * be read from above @a group_name . If both @a key
- * and @a group_name are <tt>0</tt>, then @a comment will
- * be read from above the first group in the file.
+ /** Retrieves a comment above @a key from @a group_name.
+ * If @a key is <tt>0</tt> then @a comment will be read from above
+ * @a group_name. If both @a key and @a group_name are <tt>0</tt>, then
+ * @a comment will be read from above the first group in the file.
* @param group_name A group name, or <tt>0</tt>.
* @param key A key.
- * @param error Return location for a G::Error.
* @return A comment that should be freed with g_free()
*
* @newin2p6.
@@ -546,9 +540,9 @@ public:
*/
void set_list_separator(gchar separator);
- /** Associates a new value with @a key under @a group_name . If @a key
- * cannot be found then it is created. If @a group_name cannot be
- * found then it is created.
+ /** Associates a new value with @a key under @a group_name.
+ * If @a key cannot be found then it is created.
+ * If @a group_name cannot be found then it is created.
*
* @newin2p6
* @param group_name A group name.
@@ -557,9 +551,9 @@ public:
*/
void set_value(const Glib::ustring& group_name, const Glib::ustring& key, const Glib::ustring& value);
- /** Associates a new string value with @a key under @a group_name . If
- * @a key cannot be found then it is created. If @a group_name
- * cannot be found then it is created.
+ /** Associates a new string value with @a key under @a group_name.
+ * If @a key cannot be found then it is created.
+ * If @a group_name cannot be found then it is created.
*
* @newin2p6
* @param group_name A group name.
@@ -568,20 +562,19 @@ public:
*/
void set_string(const Glib::ustring& group_name, const Glib::ustring& key, const Glib::ustring& string);
- /** Associates a string value for @a key and @a locale under
- * @a group_name . If the translation for @a key cannot be found
- * then it is created.
+ /** Associates a string value for @a key and @a locale under @a group_name.
+ * If the translation for @a key cannot be found then it is created.
*
* @newin2p6
* @param group_name A group name.
* @param key A key.
- * @param locale A locale.
+ * @param locale A locale identifier.
* @param string A string.
*/
void set_locale_string(const Glib::ustring& group_name, const Glib::ustring& key, const Glib::ustring& locale, const Glib::ustring& string);
- /** Associates a new boolean value with @a key under @a group_name .
- * If @a key cannot be found then it is created.
+ /** Associates a new boolean value with @a key under @a group_name.
+ * If @a key cannot be found then it is created.
*
* @newin2p6
* @param group_name A group name.
@@ -590,8 +583,8 @@ public:
*/
void set_boolean(const Glib::ustring& group_name, const Glib::ustring& key, bool value);
- /** Associates a new integer value with @a key under @a group_name .
- * If @a key cannot be found then it is created.
+ /** Associates a new integer value with @a key under @a group_name.
+ * If @a key cannot be found then it is created.
*
* @newin2p6
* @param group_name A group name.
@@ -627,7 +620,7 @@ public:
* @param key The name of a key
* @param list A list holding object of type bool
*/
- void set_boolean_list(const Glib::ustring& group_name, const Glib::ustring& key, Glib::ArrayHandle<bool>& list);
+ void set_boolean_list(const Glib::ustring& group_name, const Glib::ustring& key, const Glib::ArrayHandle<bool>& list);
/** Sets a list of integers for the @a key under @a group_name.
@@ -636,7 +629,7 @@ public:
* @param key The name of a key
* @param list A list holding object of type int
*/
- void set_integer_list(const Glib::ustring& group_name, const Glib::ustring& key, Glib::ArrayHandle<int>& list);
+ void set_integer_list(const Glib::ustring& group_name, const Glib::ustring& key, const Glib::ArrayHandle<int>& list);
/** Sets a list of doubles for the @a key under @a group_name.
@@ -647,7 +640,7 @@ public:
*
* @newin2p14
*/
- void set_double_list(const Glib::ustring& group_name, const Glib::ustring& key, Glib::ArrayHandle<double>& list);
+ void set_double_list(const Glib::ustring& group_name, const Glib::ustring& key, const Glib::ArrayHandle<double>& list);
/** Places @a comment at the start of the file, before the first group.
@@ -667,17 +660,16 @@ public:
* @param comment The comment
*/
- /** Places a comment above @a key from @a group_name .
- * @a group_name . If @a key is <tt>0</tt> then @a comment will
- * be written above @a group_name . If both @a key
- * and @a group_name are <tt>0</tt>, then @a comment will
- * be written above the first group in the file.
- *
- * @newin2p6
+ /** Places a comment above @a key from @a group_name.
+ * If @a key is <tt>0</tt> then @a comment will be written above @a group_name.
+ * If both @a key and @a group_name are <tt>0</tt>, then @a comment will be
+ * written above the first group in the file.
* @param group_name A group name, or <tt>0</tt>.
* @param key A key.
* @param comment A comment.
- * @param error Return location for a G::Error.
+ * @return <tt>true</tt> if the comment was written, <tt>false</tt> otherwise
+ *
+ * @newin2p6.
*/
#ifdef GLIBMM_EXCEPTIONS_ENABLED
void set_comment(const Glib::ustring& group_name, const Glib::ustring& key, const Glib::ustring& comment);
@@ -686,16 +678,15 @@ public:
#endif //GLIBMM_EXCEPTIONS_ENABLED
- /** Removes a comment above @a key from @a group_name .
- * @a group_name . If @a key is <tt>0</tt> then @a comment will
- * be written above @a group_name . If both @a key
- * and @a group_name are <tt>0</tt>, then @a comment will
- * be written above the first group in the file.
- *
- * @newin2p6
+ /** Removes a comment above @a key from @a group_name.
+ * If @a key is <tt>0</tt> then @a comment will be removed above @a group_name.
+ * If both @a key and @a group_name are <tt>0</tt>, then @a comment will
+ * be removed above the first group in the file.
* @param group_name A group name, or <tt>0</tt>.
* @param key A key.
- * @param error Return location for a G::Error.
+ * @return <tt>true</tt> if the comment was removed, <tt>false</tt> otherwise
+ *
+ * @newin2p6.
*/
#ifdef GLIBMM_EXCEPTIONS_ENABLED
void remove_comment(const Glib::ustring& group_name, const Glib::ustring& key);
@@ -704,12 +695,12 @@ public:
#endif //GLIBMM_EXCEPTIONS_ENABLED
- /** Removes @a key in @a group_name from the key file.
- *
- * @newin2p6
+ /** Removes @a key in @a group_name from the key file.
* @param group_name A group name.
* @param key A key name to remove.
- * @param error Return location for a G::Error or <tt>0</tt>.
+ * @return <tt>true</tt> if the key was removed, <tt>false</tt> otherwise
+ *
+ * @newin2p6.
*/
#ifdef GLIBMM_EXCEPTIONS_ENABLED
void remove_key(const Glib::ustring& group_name, const Glib::ustring& key);
@@ -718,12 +709,12 @@ public:
#endif //GLIBMM_EXCEPTIONS_ENABLED
- /** Removes the specified group, @a group_name ,
- * from the key file.
- *
- * @newin2p6
+ /** Removes the specified group, @a group_name,
+ * from the key file.
* @param group_name A group name.
- * @param error Return location for a G::Error or <tt>0</tt>.
+ * @return <tt>true</tt> if the group was removed, <tt>false</tt> otherwise
+ *
+ * @newin2p6.
*/
#ifdef GLIBMM_EXCEPTIONS_ENABLED
void remove_group(const Glib::ustring& group_name);
diff --git a/libs/glibmm2/glib/glibmm/listhandle.h b/libs/glibmm2/glib/glibmm/listhandle.h
index 650944e7e1..2e1c957663 100644
--- a/libs/glibmm2/glib/glibmm/listhandle.h
+++ b/libs/glibmm2/glib/glibmm/listhandle.h
@@ -2,26 +2,26 @@
#ifndef _GLIBMM_LISTHANDLE_H
#define _GLIBMM_LISTHANDLE_H
-/* $Id: listhandle.h 32 2003-04-21 17:39:41Z murrayc $ */
+/* $Id: listhandle.h 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <glib/glist.h>
+#include <glib.h>
#include <glibmm/containerhandle_shared.h>
diff --git a/libs/glibmm2/glib/glibmm/main.cc b/libs/glibmm2/glib/glibmm/main.cc
index 4b95192cf4..721a57b27f 100644
--- a/libs/glibmm2/glib/glibmm/main.cc
+++ b/libs/glibmm2/glib/glibmm/main.cc
@@ -1,19 +1,19 @@
// -*- c++ -*-
-/* $Id: main.cc 420 2007-06-22 15:29:58Z murrayc $ */
+/* $Id: main.cc 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -24,7 +24,6 @@
#include <glibmm/wrap.h>
#include <glibmm/iochannel.h>
-#include <glib.h>
#include <algorithm>
GLIBMM_USING_STD(min)
@@ -311,6 +310,12 @@ sigc::connection SignalTimeout::connect(const sigc::slot<bool>& slot,
return connection;
}
+void SignalTimeout::connect_once(const sigc::slot<void>& slot,
+ unsigned int interval, int priority)
+{
+ connect(sigc::bind_return(slot, false), interval, priority);
+}
+
/* Note that this is our equivalent of g_timeout_add_seconds(). */
sigc::connection SignalTimeout::connect_seconds(const sigc::slot<bool>& slot,
unsigned int interval, int priority)
@@ -334,6 +339,12 @@ sigc::connection SignalTimeout::connect_seconds(const sigc::slot<bool>& slot,
return connection;
}
+void SignalTimeout::connect_seconds_once(const sigc::slot<void>& slot,
+ unsigned int interval, int priority)
+{
+ connect_seconds(sigc::bind_return(slot, false), interval, priority);
+}
+
SignalTimeout signal_timeout()
{
return SignalTimeout(0); // 0 means default context
@@ -369,6 +380,11 @@ sigc::connection SignalIdle::connect(const sigc::slot<bool>& slot, int priority)
return connection;
}
+void SignalIdle::connect_once(const sigc::slot<void>& slot, int priority)
+{
+ connect(sigc::bind_return(slot, false), priority);
+}
+
SignalIdle signal_idle()
{
return SignalIdle(0); // 0 means default context
diff --git a/libs/glibmm2/glib/glibmm/main.h b/libs/glibmm2/glib/glibmm/main.h
index c4fe1ad19a..feef562dda 100644
--- a/libs/glibmm2/glib/glibmm/main.h
+++ b/libs/glibmm2/glib/glibmm/main.h
@@ -2,27 +2,26 @@
#ifndef _GLIBMM_MAIN_H
#define _GLIBMM_MAIN_H
-/* $Id: main.h 420 2007-06-22 15:29:58Z murrayc $ */
+/* $Id: main.h 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <glib/giochannel.h>
-#include <glib/gmain.h>
+#include <glib.h>
#include <vector>
#include <sigc++/sigc++.h>
@@ -30,6 +29,7 @@
#include <glibmmconfig.h>
#include <glibmm/refptr.h>
#include <glibmm/timeval.h>
+#include <glibmm/priorities.h>
GLIBMM_USING_STD(vector)
@@ -47,41 +47,6 @@ class IOChannel;
* @{
*/
-enum
-{
- /*! Use this for high priority event sources. It is not used within
- * GLib or GTK+.<br><br>
- */
- PRIORITY_HIGH = -100,
-
- /*! Use this for default priority event sources. In glibmm this
- * priority is used by default when installing timeout handlers with
- * SignalTimeout::connect(). In GDK this priority is used for events
- * from the X server.<br><br>
- */
- PRIORITY_DEFAULT = 0,
-
- /*! Use this for high priority idle functions. GTK+ uses
- * <tt>PRIORITY_HIGH_IDLE&nbsp;+&nbsp;10</tt> for resizing operations, and
- * <tt>PRIORITY_HIGH_IDLE&nbsp;+&nbsp;20</tt> for redrawing operations.
- * (This is done to ensure that any pending resizes are processed before
- * any pending redraws, so that widgets are not redrawn twice unnecessarily.)
- * <br><br>
- */
- PRIORITY_HIGH_IDLE = 100,
-
- /*! Use this for default priority idle functions. In glibmm this priority is
- * used by default when installing idle handlers with SignalIdle::connect().
- * <br><br>
- */
- PRIORITY_DEFAULT_IDLE = 200,
-
- /*! Use this for very low priority background tasks. It is not used within
- * GLib or GTK+.
- */
- PRIORITY_LOW = 300
-};
-
/** A bitwise combination representing an I/O condition to watch for on an
* event source.
@@ -195,6 +160,20 @@ public:
sigc::connection connect(const sigc::slot<bool>& slot, unsigned int interval,
int priority = PRIORITY_DEFAULT);
+ /** Connects an timeout handler that runs only once.
+ * This method takes a function pointer to a function with a void return
+ * and no parameters. After running once it is not called again.
+ *
+ * @see connect
+ * @param slot A slot to call when @a interval has elapsed. For example:
+ * @code
+ * void on_timeout_once()
+ * @endcode
+ * @param interval The timeout in milliseconds.
+ * @param priority The priority of the new event source.
+ */
+ void connect_once(const sigc::slot<void>& slot, unsigned int interval,
+ int priority = PRIORITY_DEFAULT);
/** Connects a timeout handler with whole second granularity.
*
@@ -226,6 +205,23 @@ public:
sigc::connection connect_seconds(const sigc::slot<bool>& slot, unsigned int interval,
int priority = PRIORITY_DEFAULT);
+ /** Connects an timeout handler that runs only once with whole second
+ * granularity.
+ *
+ * This method takes a function pointer to a function with a void return
+ * and no parameters. After running once it is not called again.
+ *
+ * @see connect_seconds
+ * @param slot A slot to call when @a interval has elapsed. For example:
+ * @code
+ * void on_timeout_once()
+ * @endcode
+ * @param interval The timeout in milliseconds.
+ * @param priority The priority of the new event source.
+ */
+ void connect_seconds_once(const sigc::slot<void>& slot, unsigned int interval,
+ int priority = PRIORITY_DEFAULT);
+
private:
GMainContext* context_;
@@ -257,6 +253,12 @@ public:
*/
sigc::connection connect(const sigc::slot<bool>& slot, int priority = PRIORITY_DEFAULT_IDLE);
+ /** Connects an idle handler that runs only once.
+ * This method takes a function pointer to a function with a void return
+ * and no parameters. After running once it is not called again.
+ */
+ void connect_once(const sigc::slot<void>& slot, int priority = PRIORITY_DEFAULT_IDLE);
+
private:
GMainContext* context_;
diff --git a/libs/glibmm2/glib/glibmm/markup.cc b/libs/glibmm2/glib/glibmm/markup.cc
index 4979583808..9eee7ff838 100644
--- a/libs/glibmm2/glib/glibmm/markup.cc
+++ b/libs/glibmm2/glib/glibmm/markup.cc
@@ -10,16 +10,16 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -104,7 +104,7 @@ void ParserCallbacks::start_element(GMarkupParseContext* context,
void* user_data,
GError** error)
{
- if(!&error) error = error; //Avoid an unused parameter warning when GLIBMM_EXCEPTIONS_ENABLED is used.
+ (void)error; //Avoid an unused parameter warning when GLIBMM_EXCEPTIONS_ENABLED is used.
ParseContext& cpp_context = *static_cast<ParseContext*>(user_data);
g_return_if_fail(context == cpp_context.gobj());
@@ -145,7 +145,7 @@ void ParserCallbacks::end_element(GMarkupParseContext* context,
void* user_data,
GError** error)
{
- if(!&error) error = error; //Avoid an unused parameter warning when GLIBMM_EXCEPTIONS_ENABLED is used.
+ (void)error; //Avoid an unused parameter warning when GLIBMM_EXCEPTIONS_ENABLED is used.
ParseContext& cpp_context = *static_cast<ParseContext*>(user_data);
g_return_if_fail(context == cpp_context.gobj());
@@ -174,7 +174,7 @@ void ParserCallbacks::text(GMarkupParseContext* context,
void* user_data,
GError** error)
{
- if(!&error) error = error; //Avoid an unused parameter warning when GLIBMM_EXCEPTIONS_ENABLED is used.
+ (void)error; //Avoid an unused parameter warning when GLIBMM_EXCEPTIONS_ENABLED is used.
ParseContext& cpp_context = *static_cast<ParseContext*>(user_data);
g_return_if_fail(context == cpp_context.gobj());
@@ -203,7 +203,7 @@ void ParserCallbacks::passthrough(GMarkupParseContext* context,
void* user_data,
GError** error)
{
- if(!&error) error = error; //Avoid an unused parameter warning when GLIBMM_EXCEPTIONS_ENABLED is used.
+ (void)error; //Avoid an unused parameter warning when GLIBMM_EXCEPTIONS_ENABLED is used.
ParseContext& cpp_context = *static_cast<ParseContext*>(user_data);
g_return_if_fail(context == cpp_context.gobj());
diff --git a/libs/glibmm2/glib/glibmm/markup.h b/libs/glibmm2/glib/glibmm/markup.h
index b3885cdfcf..e7f5237015 100644
--- a/libs/glibmm2/glib/glibmm/markup.h
+++ b/libs/glibmm2/glib/glibmm/markup.h
@@ -9,16 +9,16 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -86,7 +86,8 @@ public:
PARSE,
UNKNOWN_ELEMENT,
UNKNOWN_ATTRIBUTE,
- INVALID_CONTENT
+ INVALID_CONTENT,
+ MISSING_ATTRIBUTE
};
MarkupError(Code error_code, const Glib::ustring& error_message);
@@ -173,7 +174,8 @@ Glib::ustring escape_text(const Glib::ustring& text);
enum ParseFlags
{
DO_NOT_USE_THIS_UNSUPPORTED_FLAG = 1 << 0,
- TREAT_CDATA_AS_TEXT = 1 << 1
+ TREAT_CDATA_AS_TEXT = 1 << 1,
+ PREFIX_ERROR_POSITION = 1 << 2
};
/** @ingroup glibmmEnums */
diff --git a/libs/glibmm2/glib/glibmm/miscutils.cc b/libs/glibmm2/glib/glibmm/miscutils.cc
index eb0ff01b09..38a8284ba6 100644
--- a/libs/glibmm2/glib/glibmm/miscutils.cc
+++ b/libs/glibmm2/glib/glibmm/miscutils.cc
@@ -1,19 +1,19 @@
// -*- c++ -*-
-/* $Id: miscutils.cc 420 2007-06-22 15:29:58Z murrayc $ */
+/* $Id: miscutils.cc 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/miscutils.h b/libs/glibmm2/glib/glibmm/miscutils.h
index 3861c3772f..b863439ecd 100644
--- a/libs/glibmm2/glib/glibmm/miscutils.h
+++ b/libs/glibmm2/glib/glibmm/miscutils.h
@@ -2,21 +2,21 @@
#ifndef _GLIBMM_MISCUTILS_H
#define _GLIBMM_MISCUTILS_H
-/* $Id: miscutils.h 428 2007-07-29 12:43:29Z murrayc $ */
+/* $Id: miscutils.h 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/module.cc b/libs/glibmm2/glib/glibmm/module.cc
index 6fe92b897e..5e39caee57 100644
--- a/libs/glibmm2/glib/glibmm/module.cc
+++ b/libs/glibmm2/glib/glibmm/module.cc
@@ -10,16 +10,16 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/module.h b/libs/glibmm2/glib/glibmm/module.h
index b7386fb498..fb9f7880fc 100644
--- a/libs/glibmm2/glib/glibmm/module.h
+++ b/libs/glibmm2/glib/glibmm/module.h
@@ -9,16 +9,16 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/nodetree.cc b/libs/glibmm2/glib/glibmm/nodetree.cc
new file mode 100644
index 0000000000..1747ec8ef1
--- /dev/null
+++ b/libs/glibmm2/glib/glibmm/nodetree.cc
@@ -0,0 +1,20 @@
+// Generated by gtkmmproc -- DO NOT MODIFY!
+
+
+#include <glibmm/nodetree.h>
+#include <glibmm/private/nodetree_p.h>
+
+#include <glibmm/nodetree.h>
+
+namespace
+{
+} // anonymous namespace
+
+
+namespace Glib
+{
+
+
+} // namespace Glib
+
+
diff --git a/libs/glibmm2/glib/glibmm/nodetree.h b/libs/glibmm2/glib/glibmm/nodetree.h
new file mode 100644
index 0000000000..021204da0d
--- /dev/null
+++ b/libs/glibmm2/glib/glibmm/nodetree.h
@@ -0,0 +1,774 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GLIBMM_NODETREE_H
+#define _GLIBMM_NODETREE_H
+
+
+/* Copyright (C) 2007 glibmm development team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+
+#include <map>
+#include <stack>
+#include <deque>
+
+#include <glibmm/refptr.h>
+#include <glibmm/ustring.h>
+#include <glibmm/error.h>
+#include <glibmm/arrayhandle.h>
+#include <glib.h>
+
+namespace Glib
+{
+
+//Hand-written, instead of using _WRAP_ENUM,
+//because the C enum values don't have a prefix.
+
+/** Specifies the type of traveral performed by methods such as NodeTree::_traverse() and NodeTree::find().
+ *
+ * @ingroup glibmmEnums
+ */
+enum TraverseType
+{
+ TRAVERSE_IN_ORDER = G_IN_ORDER, /*!< Visits a node's left child first, then the node itself, then its right child. This is the one to use if you want the output sorted according to the compare function. */
+ TRAVERSE_PRE_ORDER = G_PRE_ORDER, /*!< Visits a node, then its children. */
+ TRAVERSE_POST_ORDER = G_POST_ORDER, /*!< Visits the node's children, then the node itself. */
+ TRAVERSE_LEVEL_ORDER = G_LEVEL_ORDER /*!< For NodeTree, it vists the root node first, then its children, then its grandchildren, and so on. Note that this is less efficient than the other orders. This is not implemented for Glib::Tree. */
+};
+
+/** N-ary Trees - trees of data with any number of branches
+ * The NodeTree class and its associated functions provide an N-ary tree data structure, in which nodes in the tree can contain arbitrary data.
+ *
+ * To insert a node into a tree use insert(), insert_before(), append() or prepend().
+ *
+ * To create a new node and insert it into a tree use insert_data(), insert_data_before(), append_data() and prepend_data().
+ *
+ * To reverse the children of a node use reverse_children().
+ *
+ * To find a node use root(), find(), find_child(), index_of(), child_index(), first_child(), last_child(), nth_child(), first_sibling(), prev_sibling(), next_sibling() or last_sibling().
+ *
+ * To get information about a node or tree use is_leaf(), is_root(), depth(), node_count(), child_count(), is_ancestor() or max_height().
+ *
+ * To traverse a tree, calling a function for each node visited in the traversal, use traverse() or foreach().
+ *
+ * To remove a node or subtree from a tree use unlink().
+ *
+ * @newin2p18
+ */
+template <typename T>
+class NodeTree
+{
+ public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+ typedef NodeTree CppObjectType;
+ typedef GNode BaseObjectType;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+private:
+
+public:
+ typedef sigc::slot<bool, NodeTree<T>&> TraverseFunc;
+ typedef sigc::slot<void, NodeTree<T>&> ForeachFunc;
+
+private:
+ static NodeTree<T>* wrap(GNode* node)
+ {
+ if (!node)
+ return 0;
+
+ return reinterpret_cast<NodeTree<T>* >(node->data);
+ }
+
+public:
+ NodeTree()
+ {
+ clone();
+ }
+
+ explicit NodeTree(const T& the_data) :
+ data_(the_data)
+ {
+ clone();
+ }
+
+
+ NodeTree(const NodeTree<T>& node) :
+ data_(node.data())
+ {
+ clone(&node);
+ }
+
+ /** Removes the instance and its children from the tree,
+ * freeing any memory allocated.
+ */
+ ~NodeTree()
+ {
+ if(!is_root())
+ unlink();
+
+ clear();
+ }
+
+
+ NodeTree<T>& operator=(const NodeTree<T>& node)
+ {
+ clear();
+ clone(&node);
+
+ data_ = node.data();
+
+ return *this;
+ }
+
+ /// Provides access to the underlying C GObject.
+ inline GNode* gobj()
+ {
+ return gobject_;
+ }
+
+ /// Provides access to the underlying C GObject.
+ inline const GNode* gobj() const
+ {
+ return gobject_;
+ }
+
+ /** Inserts a NodeTree beneath the parent at the given position.
+ *
+ * @param position the position to place node at, with respect to its siblings
+ * If position is -1, node is inserted as the last child of parent
+ * @param node the NodeTree to insert
+ * @return the inserted NodeTree
+ */
+ NodeTree<T>& insert(int position, NodeTree<T>& node)
+ {
+ g_node_insert(gobj(), position, node.gobj());
+ return node;
+ }
+
+
+ /** Inserts a NodeTree beneath the parent before the given sibling.
+ *
+ * @param sibling the sibling NodeTree to place node before.
+ * @param node the NodeTree to insert
+ * @return the inserted NodeTree
+ */
+ NodeTree<T>& insert_before(NodeTree<T>& sibling, NodeTree<T>& node)
+ {
+ g_node_insert_before(gobj(), sibling.gobj(), node.gobj());
+ return node;
+ }
+
+
+ /** Inserts a NodeTree beneath the parent after the given sibling.
+ *
+ * @param sibling the sibling NodeTree to place node after.
+ * @param node the NodeTree to insert
+ * @return the inserted NodeTree
+ */
+ NodeTree<T>& insert_after(NodeTree<T>& sibling, NodeTree<T>& node)
+ {
+ g_node_insert_after(gobj(), sibling.gobj(), node.gobj());
+ return node;
+ }
+
+
+ /** Inserts a NodeTree as the last child.
+ *
+ * @param node the NodeTree to append
+ * @return the new NodeTree
+ */
+ NodeTree<T>& append(NodeTree<T>& node)
+ {
+ g_node_append(gobj(), node.gobj());
+ return node;
+ }
+
+
+ /** Inserts a NodeTree as the first child.
+ *
+ * @param data the data for the NodeTree
+ * @return the NodeTree
+ */
+ NodeTree<T>& prepend(NodeTree<T>& node)
+ {
+ g_node_prepend(gobj(), node.gobj());
+ return node;
+ }
+
+
+ /** Inserts a new NodeTree at the given position.
+ *
+ * @param position the position to place the new NodeTree at.
+ * If position is -1, the new NodeTree is inserted as the last child of parent
+ * @param data the data for the new NodeTree
+ * @return the new NodeTree
+ */
+ NodeTree<T>* insert_data(int position, const T& the_data)
+ {
+ NodeTree<T>* node = new NodeTree<T>(the_data);
+ insert(position, *node);
+ return node;
+ }
+
+
+ /** Inserts a new NodeTree before the given sibling.
+ *
+ * @param sibling the sibling NodeTree to place node before.
+ * @param data the data for the new NodeTree
+ * @return the new NodeTree
+ */
+ NodeTree<T>* insert_data_before(NodeTree<T>& sibling, const T& the_data)
+ {
+ NodeTree<T>* node = new NodeTree<T>(the_data);
+ insert_before(sibling, *node);
+ return node;
+ }
+
+
+ /** Inserts a new NodeTree as the last child.
+ *
+ * @param data the data for the new NodeTree
+ * @return the new NodeTree
+ */
+ NodeTree<T>* append_data(const T& the_data)
+ {
+ NodeTree<T>* node = new NodeTree<T>(the_data);
+ append(*node);
+ return node;
+ }
+
+
+ /** Inserts a new NodeTree as the first child.
+ *
+ * @param data the data for the new NodeTree
+ * @return the new NodeTree
+ */
+ NodeTree<T>* prepend_data(const T& the_data)
+ {
+ NodeTree<T>* node = new NodeTree<T>(the_data);
+ prepend(*node);
+ return node;
+ }
+
+
+ /** Reverses the order of the children.
+ */
+ void reverse_children()
+ {
+ g_node_reverse_children(gobj());
+ }
+
+
+ /** Returns a pointer to the root of the tree.
+ *
+ * @return A pointer to the root of the tree.
+ */
+ NodeTree<T>* get_root()
+ {
+ return wrap(g_node_get_root(gobj()));
+ }
+
+ const NodeTree<T>* get_root() const
+ {
+ return wrap(g_node_get_root(gobj()));
+ }
+
+
+ /** Specifies which nodes are visited during several of the NodeTree methods,
+ * including traverse() and find().
+ *
+ * @ingroup glibmmEnums
+ */
+ enum TraverseFlags
+ {
+ TRAVERSE_LEAVES = G_TRAVERSE_LEAVES, /*!< Only leaf nodes should be visited. */
+ TRAVERSE_NON_LEAVES = G_TRAVERSE_NON_LEAVES, /*!< Only non-leaf nodes should be visited. */
+ TRAVERSE_ALL = G_TRAVERSE_ALL, /*!< All nodes should be visited. */
+ TRAVERSE_MASK = G_TRAVERSE_MASK /*!< A mask of all traverse flags. */
+ };
+
+ /** Traverses a tree starting at the current node.
+ * It calls the given function for each node visited.
+ * The traversal can be halted at any point by returning true from @a func.
+ *
+ * @param order The order in which nodes are visited.
+ * @param flags Which types of children are to be visited.
+ * @param max_depth The maximum depth of the traversal.
+ * Nodes below this depth will not be visited.
+ * If max_depth is -1 all nodes in the tree are visited.
+ * If max_depth is 1, only the root is visited.
+ * If max_depth is 2, the root and its children are visited. And so on.
+ * @param func the slot to invoke for each visited child
+ */
+ void traverse(const TraverseFunc& func, TraverseType order = TRAVERSE_IN_ORDER, TraverseFlags flags = TRAVERSE_ALL, int max_depth = -1)
+ {
+ TraverseFunc func_copy = func;
+ g_node_traverse(gobj(), (GTraverseType)order, (GTraverseFlags)flags, max_depth, c_callback_traverse, reinterpret_cast<gpointer>(&func_copy));
+ }
+ ;
+
+ /** Calls a function for each of the children of a NodeTree.
+ * Note that it doesn't descend beneath the child nodes.
+ *
+ * @param flags Wwhich types of children are to be visited.
+ * @param func The slot to invoke for each visited node.
+ */
+ void foreach(const ForeachFunc& func, TraverseFlags flags = TRAVERSE_ALL)
+ {
+ ForeachFunc func_copy = func;
+ g_node_children_foreach(gobj(), (GTraverseFlags)flags, c_callback_foreach, reinterpret_cast<gpointer>(&func_copy));
+ }
+
+
+ /** Finds the first child of a NodeTree with the given data.
+ *
+ * @param flags Which types of children are to be visited, one of TRAVERSE_ALL, TRAVERSE_LEAVES and TRAVERSE_NON_LEAVES.
+ * @param data The data for which to search.
+ * @return the found child, or 0 if the data is not found
+ */
+ NodeTree<T>* find_child(const T& the_data, TraverseFlags flags = TRAVERSE_ALL)
+ {
+ sigc::slot<void, GNode*, const T&, GNode**> real_slot = sigc::ptr_fun(on_compare_child);
+
+ GNode* child = 0;
+ typedef sigc::slot<void, GNode*> type_foreach_gnode_slot;
+ type_foreach_gnode_slot bound_slot = sigc::bind(real_slot, the_data, &child);
+
+ g_node_children_foreach(gobj(), (GTraverseFlags)flags, c_callback_foreach_compare_child, reinterpret_cast<gpointer>(&bound_slot));
+
+ return wrap(child);
+ }
+
+ /** Finds the first child of a NodeTree with the given data.
+ *
+ * @param flags Which types of children are to be visited, one of TRAVERSE_ALL, TRAVERSE_LEAVES and TRAVERSE_NON_LEAVES.
+ * @param data The data for which to search.
+ * @return the found child, or 0 if the data is not found
+ */
+ const NodeTree<T>* find_child(const T& the_data, TraverseFlags flags = TRAVERSE_ALL) const
+ {
+ return const_cast<NodeTree<T>*>(this)->find_child(flags, the_data);
+ }
+
+
+ /** Finds a node in a tree.
+ *
+ * @param order The order in which nodes are visited: IN_ORDER, TRAVERSE_PRE_ORDER, TRAVERSE_POST_ORDER, or TRAVERSE_LEVEL_ORDER
+ * @param flags Which types of children are to be visited: one of TRAVERSE_ALL, TRAVERSE_LEAVES and TRAVERSE_NON_LEAVES.
+ * @param data The data for which to search.
+ * @return The found node, or 0 if the data is not found.
+ */
+ NodeTree<T>* find(const T& the_data, TraverseType order = TRAVERSE_IN_ORDER, TraverseFlags flags = TRAVERSE_ALL)
+ {
+ //We use a sigc::slot for the C callback, so we can bind some extra data.
+ sigc::slot<gboolean, GNode*, const T&, GNode**> real_slot = sigc::ptr_fun(on_compare_node);
+ GNode* child = 0;
+
+ typedef sigc::slot<gboolean, GNode*> type_traverse_gnode_slot;
+ type_traverse_gnode_slot bound_slot = sigc::bind(real_slot, the_data, &child);
+
+ g_node_traverse(const_cast<GNode*>(gobj()), (GTraverseType)order, (GTraverseFlags)flags, -1, c_callback_traverse_compare_node, reinterpret_cast<gpointer>(&bound_slot));
+
+ return wrap(child);
+ }
+
+ /** Finds a node in a tree.
+ *
+ * @param order The order in which nodes are visited.
+ * @param flags Which types of children are to be visited.
+ * @param data The data for which to search.
+ * @return The found node, or 0 if the data is not found.
+ */
+ const NodeTree<T>* find(const T& the_data, TraverseType order = TRAVERSE_IN_ORDER, TraverseFlags flags = TRAVERSE_ALL) const
+ {
+ return const_cast<NodeTree<T>*>(this)->find(order, flags, the_data);
+ }
+
+
+ /** Gets the position of the first child which contains the given data.
+ *
+ * @param data The data to find.
+ * @return The index of the child which contains data, or -1 if the data is not found.
+ */
+ int child_index(const T& the_data) const
+ {
+ int n = 0;
+
+ for(const NodeTree<T>* i = first_child(); i != 0; i = i->next_sibling())
+ {
+ if((i->data()) == the_data)
+ return n;
+
+ n++;
+ }
+
+ return -1;
+ }
+
+
+ /** Gets the position with respect to its siblings.
+ * child must be a child of node.
+ * The first child is numbered 0, the second 1, and so on.
+ *
+ * @param child A child
+ * @return The position of @a child with respect to its siblings.
+ */
+ int child_position(const NodeTree<T>& child) const
+ {
+ return g_node_child_position(const_cast<GNode*>(gobj()), const_cast<GNode*>(child.gobj()));
+ }
+
+
+ /** Gets the first child.
+ *
+ * @return The first child, or 0 if the node has no children.
+ */
+ NodeTree<T>* first_child()
+ {
+ return wrap(g_node_first_child(gobj()));
+ }
+
+ /** Gets the first child.
+ *
+ * @return The first child, or 0 if the node has no children.
+ */
+ const NodeTree<T>* first_child() const
+ {
+ return const_cast<NodeTree<T>*>(this)->first_child();
+ }
+
+
+ /** Gets the last child.
+ *
+ * @return The last child, or 0 if the node has no children.
+ */
+ NodeTree<T>* last_child()
+ {
+ return wrap(g_node_last_child(gobj()));
+ }
+
+ /** Gets the last child.
+ *
+ * @return The last child, or 0 if the node has no children.
+ */
+ const NodeTree<T>* last_child() const
+ {
+ return const_cast<NodeTree<T>*>(this)->last_child();
+ }
+
+
+ /** Gets the nth child.
+ *
+ * @return The nth child, or 0 if n is too large.
+ */
+ NodeTree<T>* nth_child(int n)
+ {
+ return wrap(g_node_nth_child(gobj(), n));
+ }
+
+ /** Gets the nth child.
+ *
+ * @return The nth child, or 0 if n is too large.
+ */
+ const NodeTree<T>* nth_child(int n) const
+ {
+ return const_cast<NodeTree<T>*>(this)->nth_child(n);
+ }
+
+
+ /** Gets the first sibling
+ * @return The first sibling, or 0 if the node has no siblings.
+ */
+ NodeTree<T>* first_sibling()
+ {
+ return wrap(g_node_first_sibling(gobj()));
+ }
+
+ /** Gets the first sibling
+ * @return The first sibling, or 0 if the node has no siblings.
+ */
+ const NodeTree<T>* first_sibling() const
+ {
+ return const_cast<NodeTree<T>*>(this)->first_sibling();
+ }
+
+
+ /** Gets the previous sibling.
+ *
+ * @return The previous sibling, or 0 if the node has no siblings.
+ */
+ NodeTree<T>* prev_sibling()
+ {
+ return wrap(g_node_prev_sibling(gobj()));
+ }
+
+ /** Gets the previous sibling.
+ *
+ * @return The previous sibling, or 0 if the node has no siblings.
+ */
+ const NodeTree<T>* prev_sibling() const
+ {
+ return const_cast<NodeTree<T>*>(this)->prev_sibling();
+ }
+
+
+ /** Gets the next sibling
+ *
+ * @return The next sibling, or 0 if the node has no siblings.
+ */
+ NodeTree<T>* next_sibling()
+ {
+ return wrap(g_node_next_sibling(gobj()));
+ }
+
+ /** Gets the next sibling
+ *
+ * @return The next sibling, or 0 if the node has no siblings.
+ */
+ const NodeTree<T>* next_sibling() const
+ {
+ return const_cast<NodeTree<T>*>(this)->next_sibling();
+ }
+
+
+ /** Gets the last sibling.
+ *
+ * @return The last sibling, or 0 if the node has no siblings.
+ */
+ NodeTree<T>* last_sibling()
+ {
+ return wrap(g_node_last_sibling(gobj()));
+ }
+
+ /** Gets the last sibling.
+ *
+ * @return The last sibling, or 0 if the node has no siblings.
+ */
+ const NodeTree<T>* last_sibling() const
+ {
+ return const_cast<NodeTree<T>*>(this)->last_sibling();
+ }
+
+
+ /** Returns true if this is a leaf node.
+ *
+ * @return true if this is a leaf node.
+ */
+ bool is_leaf() const
+ {
+ return G_NODE_IS_LEAF(const_cast<GNode*>(gobj()));
+ }
+
+ /** Returns true if this is the root node.
+ *
+ * @return true if this is the root node.
+ */
+ bool is_root() const
+ {
+ return G_NODE_IS_ROOT(const_cast<GNode*>(gobj()));
+ }
+
+ /** Gets the depth of this node.
+ * The root node has a depth of 1.
+ * For the children of the root node the depth is 2. And so on.
+ *
+ * @return the depth of this node
+ */
+ guint depth() const
+ {
+ return g_node_depth(const_cast<GNode*>(gobj()));
+ }
+
+
+ /** Gets the number of nodes in a tree.
+ *
+ * @param flags Which types of children are to be counted: one of TRAVERSE_ALL, TRAVERSE_LEAVES and TRAVERSE_NON_LEAVES
+ * @return The number of nodes in the tree.
+ */
+ guint node_count(TraverseFlags flags = TRAVERSE_ALL) const
+ {
+ return g_node_n_nodes(const_cast<GNode*>(gobj()), (GTraverseFlags)flags);
+ }
+
+
+ /** Gets the number children.
+ *
+ * @return The number of children.
+ */
+ guint child_count() const
+ {
+ return g_node_n_children(const_cast<GNode*>(gobj()));
+ }
+
+
+ /** Returns true if this is an ancestor of @a descendant.
+ * This is true if this is the parent of @a descendant,
+ * or if this is the grandparent of @a descendant etc.
+ *
+ * @param descendant A node.
+ * @return true if this is an ancestor of descendant.
+ */
+ bool is_ancestor(const NodeTree<T>& descendant) const
+ {
+ return g_node_is_ancestor(const_cast<GNode*>(gobj()), const_cast<GNode*>(descendant.gobj()));
+ }
+
+
+ /** Gets the maximum height of all branches beneath this node.
+ * This is the maximum distance from the node to all leaf nodes.
+ * If root has no children, 1 is returned. If root has children, 2 is returned. And so on.
+ *
+ * @return The maximum height of all branches.
+ */
+ guint get_max_height() const
+ {
+ return g_node_max_height(const_cast<GNode*>(gobj()));
+ }
+
+
+ /** Unlinks a node from a tree, resulting in two separate trees.
+ */
+ void unlink()
+ {
+ g_node_unlink(gobj());
+ }
+
+
+#if 0 //Commented-out because people can just use the copy constructor.
+ /** Recursively copies a node and it's data.
+ *
+ * Returns: a new node containing the copies of the data.
+ */
+ NodeTree<T>* copy_deep() const
+ {
+ //Use copy constructor instead of g_node_copy_deep to create C++ wrappers also not only the wrapped C objects.
+ return new NodeTree<T>(*this);
+ }
+#endif
+
+
+ /// Accessor for this node's data
+ T& data()
+ {
+ return data_;
+ }
+
+ /// Accessor for this node's data
+ const T& data() const
+ {
+ return data_;
+ }
+
+ /** Accessor for this node's parent.
+ *
+ * @return The node's parent.
+ */
+ const NodeTree<T>* parent() const
+ {
+ return wrap(gobj()->parent);
+ }
+
+ // Do not wrap this shallow copy function, because it is not useful:
+
+
+private:
+
+ void clear()
+ {
+ //Free the children (not just with g_node_destroy(), to avoid the leaking of C++ wrapper objects):
+ while(NodeTree<T>* i = first_child())
+ delete i;
+
+ //Free the wrapped object (g_node_free not available)
+ g_slice_free(GNode, gobject_);
+ gobject_ = 0;
+ }
+
+ ///Create a new GNode, taking the contents of an existing node if one is specified.
+ void clone(const NodeTree<T>* node = 0)
+ {
+ //Store the this pointer in the GNode so we can discover this wrapper later:
+ gobject_ = g_node_new(reinterpret_cast<gpointer>(this));
+
+ if(node)
+ {
+ //Prepend the copied children of @node to the constructing node.
+ for(const NodeTree<T>* i = node->last_child(); i != 0; i = i->prev_sibling())
+ prepend(*(new NodeTree<T>(*i)));
+ }
+ }
+
+ /// Wrapper for invoking a TraverseFunc.
+ static gboolean c_callback_traverse(GNode* node, gpointer slot)
+ {
+ const TraverseFunc* tf = reinterpret_cast<const TraverseFunc*>(slot);
+ return (*tf)(*wrap(node));
+ }
+
+ /// Wrapper for invoking a ForeachFunc.
+ static void c_callback_foreach(GNode* node, gpointer slot)
+ {
+ const ForeachFunc* ff = reinterpret_cast<const ForeachFunc*>(slot);
+ (*ff)(*wrap(node));
+ }
+
+ /// Method for comparing a single child (Internal use).
+ static void on_compare_child(GNode* node, const T& needle, GNode** result)
+ {
+ if((0 != result) && (wrap(node)->data() == needle))
+ {
+ *result = node;
+ }
+ }
+
+ /// Wrapper for invoking a sigc::slot<void,GNode*> (Internal use).
+ static void c_callback_foreach_compare_child(GNode* node, gpointer data)
+ {
+ const ForeachFunc* slot = reinterpret_cast<const ForeachFunc*>(data);
+ (*slot)(*wrap(node));
+ }
+
+ /// Method for comparing a single node (Internal use).
+ static gboolean on_compare_node(GNode* node, const T& needle, GNode** result)
+ {
+ if(wrap(node)->data() == needle)
+ {
+ *result = node;
+ return TRUE;
+ }
+ return FALSE;
+ }
+
+ /// Wrapper for invoking a sigc::slot<gboolean,GNode*> (Internal use).
+ static gboolean c_callback_traverse_compare_node(GNode* node, gpointer data)
+ {
+ const TraverseFunc* slot = reinterpret_cast<const TraverseFunc*>(data);
+ return (*slot)(*wrap(node));
+ }
+
+
+ GNode* gobject_;
+ T data_;
+
+
+};
+
+} // namespace Glib
+
+
+#endif /* _GLIBMM_NODETREE_H */
+
diff --git a/libs/glibmm2/glib/glibmm/object.cc b/libs/glibmm2/glib/glibmm/object.cc
index 1e8a890284..c02d7f8235 100644
--- a/libs/glibmm2/glib/glibmm/object.cc
+++ b/libs/glibmm2/glib/glibmm/object.cc
@@ -1,19 +1,19 @@
// -*- c++ -*-
-/* $Id: object.cc 369 2007-01-20 10:19:33Z daniel $ */
+/* $Id: object.cc 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright 1998-2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -22,13 +22,14 @@
#include <glibmm/private/object_p.h>
#include <glibmm/property.h>
-#include <glib.h>
#include <glib-object.h>
#include <gobject/gvaluecollector.h>
#include <cstdarg>
#include <cstring>
+#include <string.h>
+
//Weak references:
//I'm not sure what the point of these are apart from being a hacky way out of circular references,
//but maybe we could make it easier to use them by making a Java Reference Object -style class like so:
diff --git a/libs/glibmm2/glib/glibmm/object.h b/libs/glibmm2/glib/glibmm/object.h
index a44300d464..0d94a54197 100644
--- a/libs/glibmm2/glib/glibmm/object.h
+++ b/libs/glibmm2/glib/glibmm/object.h
@@ -1,21 +1,21 @@
// -*- c++ -*-
#ifndef _GLIBMM_OBJECT_H
#define _GLIBMM_OBJECT_H
-/* $Id: object.h 369 2007-01-20 10:19:33Z daniel $ */
+/* $Id: object.h 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -26,7 +26,7 @@
# error "X11/Xlib.h seems to have been included before this header. Due to some commonly-named macros in X11/Xlib.h, it may only be included after any glibmm, gdkmm, or gtkmm headers."
#endif
-#include <glib/gmacros.h> /* for G_GNUC_NULL_TERMINATED */
+#include <glib.h> /* for G_GNUC_NULL_TERMINATED */
#include <glibmm/objectbase.h>
#include <glibmm/wrap.h>
#include <glibmm/quark.h>
diff --git a/libs/glibmm2/glib/glibmm/objectbase.cc b/libs/glibmm2/glib/glibmm/objectbase.cc
index 237c41fed3..b56411c171 100644
--- a/libs/glibmm2/glib/glibmm/objectbase.cc
+++ b/libs/glibmm2/glib/glibmm/objectbase.cc
@@ -1,19 +1,19 @@
// -*- c++ -*-
-/* $Id: objectbase.cc 337 2006-11-10 02:24:49Z murrayc $ */
+/* $Id: objectbase.cc 785 2009-02-17 19:03:06Z daniel $ */
/* Copyright 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -83,8 +83,6 @@ void ObjectBase::initialize(GObject* castitem)
return; // Don't initialize the wrapper twice.
}
- //g_print("%s : %s\n", G_GNUC_PRETTY_FUNCTION, G_OBJECT_TYPE_NAME(castitem));
-
gobject_ = castitem;
_set_current_wrapper(castitem);
}
@@ -258,6 +256,11 @@ void ObjectBase::get_property_value(const Glib::ustring& property_name, Glib::Va
void ObjectBase::connect_property_changed(const Glib::ustring& property_name, const sigc::slot<void>& slot)
{
+ connect_property_changed_with_return(property_name, slot);
+}
+
+sigc::connection ObjectBase::connect_property_changed_with_return(const Glib::ustring& property_name, const sigc::slot<void>& slot)
+{
// Create a proxy to hold our connection info
// This will be deleted by destroy_notify_handler.
PropertyProxyConnectionNode* pConnectionNode = new PropertyProxyConnectionNode(slot, gobj());
@@ -271,9 +274,12 @@ void ObjectBase::connect_property_changed(const Glib::ustring& property_name, co
notify_signal_name.c_str(), (GCallback)(&PropertyProxyConnectionNode::callback), pConnectionNode,
&PropertyProxyConnectionNode::destroy_notify_handler,
G_CONNECT_AFTER);
+
+ return sigc::connection(pConnectionNode->slot_);
}
+
bool _gobject_cppinstance_already_deleted(GObject* gobject)
{
//This function is used to prevent calling wrap() on a GTK+ instance whose gtkmm instance has been deleted.
diff --git a/libs/glibmm2/glib/glibmm/objectbase.h b/libs/glibmm2/glib/glibmm/objectbase.h
index 623726bd7f..0322c3a8aa 100644
--- a/libs/glibmm2/glib/glibmm/objectbase.h
+++ b/libs/glibmm2/glib/glibmm/objectbase.h
@@ -2,21 +2,21 @@
#ifndef _GLIBMM_OBJECTBASE_H
#define _GLIBMM_OBJECTBASE_H
-/* $Id: objectbase.h 385 2007-03-23 17:23:42Z murrayc $ */
+/* $Id: objectbase.h 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -112,9 +112,20 @@ public:
/** You can use the signal_changed() signal of the property proxy instead,
* but this is necessary when using the reduced API.
+ *
+ * See also connect_property_changed_with_return().
*/
void connect_property_changed(const Glib::ustring& property_name, const sigc::slot<void>& slot);
+ /** You can use the signal_changed() signal of the property proxy instead,
+ * but this is necessary when using the reduced API.
+ *
+ * This method was added because connect_property_changed() does not return a sigc::connection,
+ * and we could not break the ABI by changing that function.
+ */
+ sigc::connection connect_property_changed_with_return(const Glib::ustring& property_name, const sigc::slot<void>& slot);
+
+ //TODO: Why are these virtual?
/** Increment the reference count for this object.
* You should never need to do this manually - use the object via a RefPtr instead.
*/
@@ -125,10 +136,10 @@ public:
*/
virtual void unreference() const;
- ///Provides access to the underlying C GtkObject.
+ ///Provides access to the underlying C GObject.
inline GObject* gobj() { return gobject_; }
- ///Provides access to the underlying C GtkObject.
+ ///Provides access to the underlying C GObject.
inline const GObject* gobj() const { return gobject_; }
/// Give a ref-ed copy to someone. Use for direct struct access.
diff --git a/libs/glibmm2/glib/glibmm/optioncontext.cc b/libs/glibmm2/glib/glibmm/optioncontext.cc
index df6408fc40..4b2b9be99e 100644
--- a/libs/glibmm2/glib/glibmm/optioncontext.cc
+++ b/libs/glibmm2/glib/glibmm/optioncontext.cc
@@ -10,23 +10,23 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <glibmm/utility.h>
#include <glibmm/exceptionhandler.h>
-#include <glib/goption.h>
+#include <glib.h>
namespace Glib
{
@@ -115,6 +115,11 @@ void OptionContext::set_translate_func (const SlotTranslate& slot)
&Private::SignalProxy_translate_gtk_callback_destroy);
}
+Glib::ustring OptionContext::get_help(bool main_help) const
+{
+ return Glib::convert_return_gchar_ptr_to_ustring(g_option_context_get_help(const_cast<GOptionContext*>(gobj()), static_cast<int>(main_help), NULL));
+}
+
} // namespace Glib
namespace
@@ -195,6 +200,11 @@ bool OptionContext::parse(int& argc, char**& argv, std::auto_ptr<Glib::Error>& e
}
+Glib::ustring OptionContext::get_help(bool main_help, const OptionGroup& group) const
+{
+ return Glib::convert_return_gchar_ptr_to_ustring(g_option_context_get_help(const_cast<GOptionContext*>(gobj()), static_cast<int>(main_help), const_cast<GOptionGroup*>((group).gobj())));
+}
+
void OptionContext::set_summary(const Glib::ustring& summary)
{
g_option_context_set_summary(gobj(), summary.c_str());
diff --git a/libs/glibmm2/glib/glibmm/optioncontext.h b/libs/glibmm2/glib/glibmm/optioncontext.h
index cf159bdc1f..ad90c8c71d 100644
--- a/libs/glibmm2/glib/glibmm/optioncontext.h
+++ b/libs/glibmm2/glib/glibmm/optioncontext.h
@@ -9,16 +9,16 @@
/* Copyright (C) 2004 The glibmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -80,6 +80,7 @@ class OptionContext
private:
+
public:
/** Creates a new option context.
@@ -112,7 +113,7 @@ public:
bool get_help_enabled() const;
/** Sets whether to ignore unknown options or not. If an argument is
- * ignored, it is left in the @a argv array after parsing. By default,
+ * ignored, it is left in the @a argv array after parsing. By default,
* g_option_context_parse() treats unknown options as error.
*
* This setting does not affect non-option arguments (i.e. arguments
@@ -134,20 +135,20 @@ public:
/** Parses the command line arguments, recognizing options
- * which have been added to @a context . A side-effect of
+ * which have been added to @a context. A side-effect of
* calling this function is that g_set_prgname() will be
* called.
*
* If the parsing is successful, any parsed arguments are
- * removed from the array and @a argc and @a argv are updated
- * accordingly. A '--' option is stripped from @a argv
+ * removed from the array and @a argc and @a argv are updated
+ * accordingly. A '--' option is stripped from @a argv
* unless there are unparsed options before and after it,
* or some of the options after it start with '-'. In case
- * of an error, @a argc and @a argv are left unmodified.
+ * of an error, @a argc and @a argv are left unmodified.
*
* If automatic &lt;option&gt;--help&lt;/option&gt; support is enabled
* (see g_option_context_set_help_enabled()), and the
- * @a argv array contains one of the recognized help options,
+ * @a argv array contains one of the recognized help options,
* this function will produce help output to stdout and
* call <tt>exit (0)</tt>.
*
@@ -157,7 +158,6 @@ public:
* arguments.
* @param argc A pointer to the number of command line arguments.
* @param argv A pointer to the array of command line arguments.
- * @param error A return location for errors.
* @return <tt>true</tt> if the parsing was successful,
* <tt>false</tt> if an error occurred
*
@@ -196,6 +196,18 @@ public:
//const OptionGroup& get_main_group() const;
+ /** Returns: A newly allocated string containing the help text
+ * @param main_help If <tt>true</tt>, only include the main group.
+ * @param group The OptionGroup to create help for, or <tt>0</tt>.
+ * @return A newly allocated string containing the help text
+ *
+ * @newin2p14.
+ */
+ Glib::ustring get_help(bool main_help, const OptionGroup& group) const;
+
+ //TODO: Documentation.
+ Glib::ustring get_help(bool main_help = true) const;
+
GOptionContext* gobj() { return gobject_; }
const GOptionContext* gobj() const { return gobject_; }
diff --git a/libs/glibmm2/glib/glibmm/optionentry.cc b/libs/glibmm2/glib/glibmm/optionentry.cc
index 20c54ee7df..274a7538eb 100644
--- a/libs/glibmm2/glib/glibmm/optionentry.cc
+++ b/libs/glibmm2/glib/glibmm/optionentry.cc
@@ -10,23 +10,22 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <glibmm/utility.h>
-#include <glib/goption.h>
-#include <glib/gmem.h>
+#include <glib.h>
namespace Glib
{
@@ -80,6 +79,42 @@ OptionEntry& OptionEntry::operator=(const OptionEntry& src)
return *this;
}
+void OptionEntry::set_long_name(const Glib::ustring& value)
+{
+ if(gobject_->long_name)
+ {
+ g_free((gchar*)(gobject_->long_name));
+ gobject_->long_name = NULL;
+ }
+
+ //Note that we do not use NULL for an empty string,
+ //because G_OPTION_REMAINING is actually a "", so it actually has a distinct meaning:
+ //TODO: Wrap G_OPTION_REMAINING in C++ somehow, maybe as an explicit set_long_name(void) or set_is_remaining()? murrayc.
+ gobj()->long_name = (value).c_str() ? g_strdup((value).c_str()) : NULL;
+}
+
+void OptionEntry::set_description(const Glib::ustring& value)
+{
+ if(gobject_->description)
+ {
+ g_free((gchar*)(gobject_->description));
+ gobject_->description = NULL;
+ }
+
+ gobj()->description = (value).empty() ? NULL : g_strdup((value).c_str());
+}
+
+void OptionEntry::set_arg_description(const Glib::ustring& value)
+{
+ if(gobject_->arg_description)
+ {
+ g_free((gchar*)(gobject_->arg_description));
+ gobject_->arg_description = NULL;
+ }
+
+ gobj()->arg_description = (value).empty() ? NULL : g_strdup((value).c_str());
+}
+
} // namespace Glib
@@ -98,11 +133,6 @@ namespace Glib
return Glib::convert_const_gchar_ptr_to_ustring(gobj()->long_name);
}
- void OptionEntry::set_long_name(const Glib::ustring& value)
-{
- gobj()->long_name = g_strdup((value).c_str());
-}
-
gchar OptionEntry::get_short_name() const
{
return gobj()->short_name;
@@ -128,21 +158,11 @@ namespace Glib
return Glib::convert_const_gchar_ptr_to_ustring(gobj()->description);
}
- void OptionEntry::set_description(const Glib::ustring& value)
-{
- gobj()->description = g_strdup((value).c_str());
-}
-
Glib::ustring OptionEntry::get_arg_description() const
{
return Glib::convert_const_gchar_ptr_to_ustring(gobj()->arg_description);
}
- void OptionEntry::set_arg_description(const Glib::ustring& value)
-{
- gobj()->arg_description = g_strdup((value).c_str());
-}
-
} // namespace Glib
diff --git a/libs/glibmm2/glib/glibmm/optionentry.h b/libs/glibmm2/glib/glibmm/optionentry.h
index 7f2f220d0b..96bae3967d 100644
--- a/libs/glibmm2/glib/glibmm/optionentry.h
+++ b/libs/glibmm2/glib/glibmm/optionentry.h
@@ -9,16 +9,16 @@
/* Copyright (C) 2004 The glibmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -77,10 +77,12 @@ public:
OptionEntry& operator=(const OptionEntry& src);
-
+ //#m4 __CONVERSION(`Glib::ustring',`const gchar*',`($3).empty() ? NULL : g_strdup(($3).c_str())')
+
Glib::ustring get_long_name() const;
- void set_long_name(const Glib::ustring& value);
-
+
+ void set_long_name(const Glib::ustring& value);
+
gchar get_short_name() const;
void set_short_name(const gchar& value);
@@ -90,11 +92,15 @@ public:
//TODO: G_OPTION_ARG_CALLBACK,
Glib::ustring get_description() const;
- void set_description(const Glib::ustring& value);
-
+
+ void set_description(const Glib::ustring& value);
+
+
Glib::ustring get_arg_description() const;
- void set_arg_description(const Glib::ustring& value);
-
+
+ void set_arg_description(const Glib::ustring& value);
+
+
GOptionEntry* gobj() { return gobject_; }
const GOptionEntry* gobj() const { return gobject_; }
diff --git a/libs/glibmm2/glib/glibmm/optiongroup.cc b/libs/glibmm2/glib/glibmm/optiongroup.cc
index 01ac81d0db..09b73b6e1c 100644
--- a/libs/glibmm2/glib/glibmm/optiongroup.cc
+++ b/libs/glibmm2/glib/glibmm/optiongroup.cc
@@ -10,16 +10,16 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -28,8 +28,7 @@
#include <glibmm/optioncontext.h>
#include <glibmm/utility.h>
//#include <glibmm/containers.h>
-#include <glib/gmem.h> // g_malloc
-#include <glib/goption.h>
+#include <glib.h> // g_malloc
namespace Glib
{
diff --git a/libs/glibmm2/glib/glibmm/optiongroup.h b/libs/glibmm2/glib/glibmm/optiongroup.h
index 57340fefdf..9062135b17 100644
--- a/libs/glibmm2/glib/glibmm/optiongroup.h
+++ b/libs/glibmm2/glib/glibmm/optiongroup.h
@@ -9,16 +9,16 @@
/* Copyright (C) 2004 The glibmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -27,7 +27,7 @@
#include <glibmm/ustring.h>
#include <map>
#include <vector>
-#include <glib/goption.h> //TODO: Try to hide this.
+#include <glib.h> //TODO: Try to hide this.
#ifndef DOXYGEN_SHOULD_SKIP_THIS
diff --git a/libs/glibmm2/glib/glibmm/pattern.cc b/libs/glibmm2/glib/glibmm/pattern.cc
index 28168620bb..a7c30f9552 100644
--- a/libs/glibmm2/glib/glibmm/pattern.cc
+++ b/libs/glibmm2/glib/glibmm/pattern.cc
@@ -1,26 +1,26 @@
// -*- c++ -*-
-/* $Id: pattern.cc 2 2003-01-07 16:59:16Z murrayc $ */
+/* $Id: pattern.cc 779 2009-01-19 17:58:50Z murrayc $ */
/* pattern.cc
*
* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <glib/gpattern.h>
+#include <glib.h>
#include <glibmm/pattern.h>
diff --git a/libs/glibmm2/glib/glibmm/pattern.h b/libs/glibmm2/glib/glibmm/pattern.h
index 32d05feea0..92afa4fd3b 100644
--- a/libs/glibmm2/glib/glibmm/pattern.h
+++ b/libs/glibmm2/glib/glibmm/pattern.h
@@ -2,23 +2,23 @@
#ifndef _GLIBMM_PATTERN_H
#define _GLIBMM_PATTERN_H
-/* $Id: pattern.h 2 2003-01-07 16:59:16Z murrayc $ */
+/* $Id: pattern.h 779 2009-01-19 17:58:50Z murrayc $ */
/* pattern.h
*
* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/priorities.h b/libs/glibmm2/glib/glibmm/priorities.h
new file mode 100644
index 0000000000..7d4782d699
--- /dev/null
+++ b/libs/glibmm2/glib/glibmm/priorities.h
@@ -0,0 +1,65 @@
+// -*- c++ -*-
+#ifndef _GLIBMM_PRIORITIES_H
+#define _GLIBMM_PRIORITIES_H
+
+/* $Id: priorities.h 420 2007-06-22 15:29:58Z murrayc $ */
+
+/* Copyright (C) 2002-2008 The gtkmm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+namespace Glib
+{
+
+enum
+{
+ /*! Use this for high priority event sources. It is not used within
+ * GLib or GTK+.<br><br>
+ */
+ PRIORITY_HIGH = -100,
+
+ /*! Use this for default priority event sources. In glibmm this
+ * priority is used by default when installing timeout handlers with
+ * SignalTimeout::connect(). In GDK this priority is used for events
+ * from the X server.<br><br>
+ */
+ PRIORITY_DEFAULT = 0,
+
+ /*! Use this for high priority idle functions. GTK+ uses
+ * <tt>PRIORITY_HIGH_IDLE&nbsp;+&nbsp;10</tt> for resizing operations, and
+ * <tt>PRIORITY_HIGH_IDLE&nbsp;+&nbsp;20</tt> for redrawing operations.
+ * (This is done to ensure that any pending resizes are processed before
+ * any pending redraws, so that widgets are not redrawn twice unnecessarily.)
+ * <br><br>
+ */
+ PRIORITY_HIGH_IDLE = 100,
+
+ /*! Use this for default priority idle functions. In glibmm this priority is
+ * used by default when installing idle handlers with SignalIdle::connect().
+ * <br><br>
+ */
+ PRIORITY_DEFAULT_IDLE = 200,
+
+ /*! Use this for very low priority background tasks. It is not used within
+ * GLib or GTK+.
+ */
+ PRIORITY_LOW = 300
+};
+
+} //namespace Glib
+
+#endif //#ifndef _GLIBMM_PRIORITIES_H
+
diff --git a/libs/glibmm2/glib/glibmm/private/Makefile.am b/libs/glibmm2/glib/glibmm/private/Makefile.am
index de70a5dfcf..fd02e2fa4a 100644
--- a/libs/glibmm2/glib/glibmm/private/Makefile.am
+++ b/libs/glibmm2/glib/glibmm/private/Makefile.am
@@ -2,19 +2,18 @@
## The gtkmm development team.
include $(srcdir)/../../src/Makefile_list_of_hg.am_fragment
-include $(top_srcdir)/build_shared/Makefile_gensrc_platform.am_fragment
-files_built_h = $(files_hg:.hg=_p.h)
-files_built_all_h = $(files_all_hg:.hg=_p.h)
-files_extra_h = interface_p.h object_p.h
-files_extra_all_h = interface_p.h object_p.h
+files_built_p_h = $(files_hg:.hg=_p.h)
+files_built_all_p_h = $(files_all_hg:.hg=_p.h)
+files_extra_p_h = interface_p.h object_p.h
+files_extra_all_p_h = interface_p.h object_p.h
-dist_sources = $(files_built_all_h) $(files_extra_all_h)
+dist_sources = $(files_built_all_p_h) $(files_extra_all_p_h)
DISTFILES = $(DIST_COMMON) $(dist_sources)
private_includedir = $(includedir)/glibmm-2.4/glibmm/private
-private_include_HEADERS = $(files_built_h) $(files_extra_h)
+private_include_HEADERS = $(files_built_p_h) $(files_extra_p_h)
maintainer-clean-local:
- (cd $(srcdir) && rm -f $(files_built_h))
+ (cd $(srcdir) && rm -f $(files_built_p_h))
diff --git a/libs/glibmm2/glib/glibmm/private/Makefile.in b/libs/glibmm2/glib/glibmm/private/Makefile.in
index 815acd7329..243960dc6c 100644
--- a/libs/glibmm2/glib/glibmm/private/Makefile.in
+++ b/libs/glibmm2/glib/glibmm/private/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.10 from Makefile.am.
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,6 +14,8 @@
@SET_MAKE@
+# Built files
+
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@@ -35,10 +37,17 @@ host_triplet = @host@
DIST_COMMON = $(am__private_include_HEADERS_DIST) \
$(srcdir)/../../src/Makefile_list_of_hg.am_fragment \
$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(top_srcdir)/build_shared/Makefile_gensrc_platform.am_fragment
+ $(top_srcdir)/build_shared/Makefile_build_gensrc.am_fragment
subdir = glib/glibmm/private
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/scripts/c_std.m4 \
+ $(top_srcdir)/scripts/cxx.m4 $(top_srcdir)/scripts/cxx_std.m4 \
+ $(top_srcdir)/scripts/dk-feature.m4 \
+ $(top_srcdir)/scripts/docgen.m4 \
+ $(top_srcdir)/scripts/glibmm_check_perl.m4 \
+ $(top_srcdir)/scripts/macros.m4 \
+ $(top_srcdir)/scripts/reduced.m4 $(top_srcdir)/scripts/sun.m4 \
+ $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
@@ -48,11 +57,11 @@ CONFIG_HEADER = $(top_builddir)/config.h \
CONFIG_CLEAN_FILES =
SOURCES =
DIST_SOURCES =
-am__private_include_HEADERS_DIST = convert_p.h date_p.h fileutils_p.h \
- iochannel_p.h keyfile_p.h markup_p.h module_p.h \
+am__private_include_HEADERS_DIST = checksum_p.h convert_p.h date_p.h \
+ fileutils_p.h iochannel_p.h keyfile_p.h markup_p.h module_p.h \
optioncontext_p.h optionentry_p.h optiongroup_p.h regex_p.h \
- shell_p.h spawn_p.h thread_p.h unicode_p.h interface_p.h \
- object_p.h
+ shell_p.h spawn_p.h thread_p.h nodetree_p.h unicode_p.h \
+ uriutils_p.h interface_p.h object_p.h
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -84,8 +93,10 @@ CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED_API_CFLAGS = @DISABLE_DEPRECATED_API_CFLAGS@
DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
@@ -107,6 +118,8 @@ GMMPROC_DIR = @GMMPROC_DIR@
GREP = @GREP@
GTHREAD_CFLAGS = @GTHREAD_CFLAGS@
GTHREAD_LIBS = @GTHREAD_LIBS@
+GTKMMPROC_MERGECDOCS = @GTKMMPROC_MERGECDOCS@
+GTKMM_DOXYGEN_INPUT = @GTKMM_DOXYGEN_INPUT@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -119,9 +132,11 @@ LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
+M4 = @M4@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
+NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
@@ -131,6 +146,7 @@ PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL_PATH = @PERL_PATH@
PKG_CONFIG = @PKG_CONFIG@
RANLIB = @RANLIB@
SED = @SED@
@@ -187,26 +203,63 @@ sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
files_posix_hg =
files_win32_hg =
-files_general_hg = convert.hg date.hg fileutils.hg iochannel.hg keyfile.hg markup.hg module.hg optioncontext.hg optionentry.hg optiongroup.hg regex.hg shell.hg spawn.hg thread.hg unicode.hg
-files_all_hg = $(files_general_hg) $(files_posix_hg) $(files_win32_hg)
-@OS_WIN32_FALSE@files_hg = $(files_general_hg) $(files_posix_hg)
-@OS_WIN32_TRUE@files_hg = $(files_general_hg) $(files_win32_hg)
-files_built_h = $(files_hg:.hg=_p.h)
-files_built_all_h = $(files_all_hg:.hg=_p.h)
-files_extra_h = interface_p.h object_p.h
-files_extra_all_h = interface_p.h object_p.h
-dist_sources = $(files_built_all_h) $(files_extra_all_h)
+files_general_hg = checksum.hg convert.hg date.hg fileutils.hg iochannel.hg keyfile.hg markup.hg \
+ module.hg optioncontext.hg optionentry.hg optiongroup.hg regex.hg \
+ shell.hg spawn.hg thread.hg nodetree.hg unicode.hg uriutils.hg
+
+files_general_deprecated_hg =
+files_all_hg = \
+ $(files_posix_hg) \
+ $(files_win32_hg) \
+ $(files_general_hg) \
+ $(files_general_deprecated_hg)
+
+@OS_WIN32_FALSE@files_hg = $(files_general_hg) $(files_posix_hg) $(files_general_deprecated_hg)
+@OS_WIN32_TRUE@files_hg = $(files_general_hg) $(files_win32_hg) $(files_general_deprecated_hg)
+files_built_cc = $(files_hg:.hg=.cc) wrap_init.cc
+files_built_h = $(files_hg:.hg=.h)
+files_all_built_cc = $(files_all_hg:.hg=.cc) wrap_init.cc
+files_all_built_h = $(files_all_hg:.hg=.h)
+
+# Extra files
+files_all_extra_cc = \
+ $(sublib_files_extra_posix_cc) \
+ $(sublib_files_extra_win32_cc) \
+ $(sublib_files_extra_general_cc) \
+ $(sublib_files_extra_general_deprecated_cc)
+
+files_all_extra_h = $(sublib_files_extra_posix_h) \
+ $(sublib_files_extra_win32_h) $(sublib_files_extra_general_h) \
+ $(sublib_files_extra_general_deprecated_h) wrap_init.h
+@OS_WIN32_FALSE@files_extra_cc = \
+@OS_WIN32_FALSE@ $(sublib_files_extra_posix_cc) \
+@OS_WIN32_FALSE@ $(sublib_files_extra_general_cc)
+
+@OS_WIN32_TRUE@files_extra_cc = \
+@OS_WIN32_TRUE@ $(sublib_files_extra_win32_cc) \
+@OS_WIN32_TRUE@ $(sublib_files_extra_general_cc)
+
+@OS_WIN32_FALSE@files_extra_h = $(sublib_files_extra_posix_h) \
+@OS_WIN32_FALSE@ $(sublib_files_extra_general_h) wrap_init.h
+@OS_WIN32_TRUE@files_extra_h = $(sublib_files_extra_win32_h) \
+@OS_WIN32_TRUE@ $(sublib_files_extra_general_h) wrap_init.h
+files_built_p_h = $(files_hg:.hg=_p.h)
+files_built_all_p_h = $(files_all_hg:.hg=_p.h)
+files_extra_p_h = interface_p.h object_p.h
+files_extra_all_p_h = interface_p.h object_p.h
+dist_sources = $(files_built_all_p_h) $(files_extra_all_p_h)
DISTFILES = $(DIST_COMMON) $(dist_sources)
private_includedir = $(includedir)/glibmm-2.4/glibmm/private
-private_include_HEADERS = $(files_built_h) $(files_extra_h)
+private_include_HEADERS = $(files_built_p_h) $(files_extra_p_h)
all: all-am
.SUFFIXES:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/../../src/Makefile_list_of_hg.am_fragment $(top_srcdir)/build_shared/Makefile_gensrc_platform.am_fragment $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/../../src/Makefile_list_of_hg.am_fragment $(top_srcdir)/build_shared/Makefile_build_gensrc.am_fragment $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
@@ -264,8 +317,8 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
+ $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
@@ -277,8 +330,8 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
@@ -288,13 +341,12 @@ ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
- here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
@@ -437,7 +489,7 @@ uninstall-am: uninstall-private_includeHEADERS
maintainer-clean-local:
- (cd $(srcdir) && rm -f $(files_built_h))
+ (cd $(srcdir) && rm -f $(files_built_p_h))
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/libs/glibmm2/glib/glibmm/private/checksum_p.h b/libs/glibmm2/glib/glibmm/private/checksum_p.h
new file mode 100644
index 0000000000..c422bcfe0c
--- /dev/null
+++ b/libs/glibmm2/glib/glibmm/private/checksum_p.h
@@ -0,0 +1,8 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GLIBMM_CHECKSUM_P_H
+#define _GLIBMM_CHECKSUM_P_H
+
+
+#endif /* _GLIBMM_CHECKSUM_P_H */
+
diff --git a/libs/glibmm2/glib/glibmm/private/nodetree_p.h b/libs/glibmm2/glib/glibmm/private/nodetree_p.h
new file mode 100644
index 0000000000..e5d67b3600
--- /dev/null
+++ b/libs/glibmm2/glib/glibmm/private/nodetree_p.h
@@ -0,0 +1,8 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GLIBMM_NODETREE_P_H
+#define _GLIBMM_NODETREE_P_H
+
+
+#endif /* _GLIBMM_NODETREE_P_H */
+
diff --git a/libs/glibmm2/glib/glibmm/private/uriutils_p.h b/libs/glibmm2/glib/glibmm/private/uriutils_p.h
new file mode 100644
index 0000000000..92a9eabbfd
--- /dev/null
+++ b/libs/glibmm2/glib/glibmm/private/uriutils_p.h
@@ -0,0 +1,8 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GLIBMM_URIUTILS_P_H
+#define _GLIBMM_URIUTILS_P_H
+
+
+#endif /* _GLIBMM_URIUTILS_P_H */
+
diff --git a/libs/glibmm2/glib/glibmm/property.cc b/libs/glibmm2/glib/glibmm/property.cc
index 955b3ad6e2..05c7b312aa 100644
--- a/libs/glibmm2/glib/glibmm/property.cc
+++ b/libs/glibmm2/glib/glibmm/property.cc
@@ -1,19 +1,19 @@
// -*- c++ -*-
-/* $Id: property.cc 291 2006-05-12 08:08:45Z murrayc $ */
+/* $Id: property.cc 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/property.h b/libs/glibmm2/glib/glibmm/property.h
index 16122cb9a1..fc57784025 100644
--- a/libs/glibmm2/glib/glibmm/property.h
+++ b/libs/glibmm2/glib/glibmm/property.h
@@ -1,21 +1,21 @@
// -*- c++ -*-
#ifndef _GLIBMM_PROPERTY_H
#define _GLIBMM_PROPERTY_H
-/* $Id: property.h 291 2006-05-12 08:08:45Z murrayc $ */
+/* $Id: property.h 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/propertyproxy.cc b/libs/glibmm2/glib/glibmm/propertyproxy.cc
index e9dad3c630..301b9a6115 100644
--- a/libs/glibmm2/glib/glibmm/propertyproxy.cc
+++ b/libs/glibmm2/glib/glibmm/propertyproxy.cc
@@ -1,21 +1,21 @@
// -*- c++ -*-
-/* $Id: propertyproxy.cc 2 2003-01-07 16:59:16Z murrayc $ */
+/* $Id: propertyproxy.cc 779 2009-01-19 17:58:50Z murrayc $ */
/* propertyproxy.cc
*
* Copyright 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/propertyproxy.h b/libs/glibmm2/glib/glibmm/propertyproxy.h
index 5f1aa18f4a..aa365f1299 100644
--- a/libs/glibmm2/glib/glibmm/propertyproxy.h
+++ b/libs/glibmm2/glib/glibmm/propertyproxy.h
@@ -1,23 +1,23 @@
// -*- c++ -*-
#ifndef _GLIBMM_PROPERTYPROXY_H
#define _GLIBMM_PROPERTYPROXY_H
-/* $Id: propertyproxy.h 291 2006-05-12 08:08:45Z murrayc $ */
+/* $Id: propertyproxy.h 779 2009-01-19 17:58:50Z murrayc $ */
/* propertyproxy.h
*
* Copyright 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -39,6 +39,11 @@ namespace Glib
* @endcode
*
* You may also receive notification when a property's value changes, by connecting to signal_changed().
+ *
+ * You may register new properties for your class (actually for the underlying GType)
+ * simply by adding a PropertyProxy instance as a class member.
+ * However, your constructor must call the Glib::ObjectBase constructor with a new GType name,
+ * in order to register a new GType.
*/
template <class T>
class PropertyProxy : public PropertyProxy_Base
diff --git a/libs/glibmm2/glib/glibmm/propertyproxy_base.cc b/libs/glibmm2/glib/glibmm/propertyproxy_base.cc
index 960cc0210e..0e5919bc18 100644
--- a/libs/glibmm2/glib/glibmm/propertyproxy_base.cc
+++ b/libs/glibmm2/glib/glibmm/propertyproxy_base.cc
@@ -1,21 +1,21 @@
// -*- c++ -*-
-/* $Id: propertyproxy_base.cc 354 2006-11-28 12:59:19Z murrayc $ */
+/* $Id: propertyproxy_base.cc 779 2009-01-19 17:58:50Z murrayc $ */
/* propertyproxy_base.h
*
* Copyright 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/propertyproxy_base.h b/libs/glibmm2/glib/glibmm/propertyproxy_base.h
index 4706b2f167..bb07bde502 100644
--- a/libs/glibmm2/glib/glibmm/propertyproxy_base.h
+++ b/libs/glibmm2/glib/glibmm/propertyproxy_base.h
@@ -1,23 +1,23 @@
// -*- c++ -*-
#ifndef _GLIBMM_PROPERTYPROXY_BASE_H
#define _GLIBMM_PROPERTYPROXY_BASE_H
-/* $Id: propertyproxy_base.h 337 2006-11-10 02:24:49Z murrayc $ */
+/* $Id: propertyproxy_base.h 779 2009-01-19 17:58:50Z murrayc $ */
/* propertyproxy_base.h
*
* Copyright 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/quark.cc b/libs/glibmm2/glib/glibmm/quark.cc
index d674942f67..62d7e01ce2 100644
--- a/libs/glibmm2/glib/glibmm/quark.cc
+++ b/libs/glibmm2/glib/glibmm/quark.cc
@@ -1,25 +1,24 @@
-/* $Id: quark.cc 2 2003-01-07 16:59:16Z murrayc $ */
+/* $Id: quark.cc 779 2009-01-19 17:58:50Z murrayc $ */
/* quark.cc
*
* Copyright 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <glib/gquark.h>
#include <glibmm/quark.h>
namespace Glib
diff --git a/libs/glibmm2/glib/glibmm/quark.h b/libs/glibmm2/glib/glibmm/quark.h
index c128ac77a6..0348cfcbec 100644
--- a/libs/glibmm2/glib/glibmm/quark.h
+++ b/libs/glibmm2/glib/glibmm/quark.h
@@ -1,28 +1,28 @@
// -*- c++ -*-
#ifndef _GLIBMM_QUARK_H
#define _GLIBMM_QUARK_H
-/* $Id: quark.h 2 2003-01-07 16:59:16Z murrayc $ */
+/* $Id: quark.h 779 2009-01-19 17:58:50Z murrayc $ */
/* quark.h
*
* Copyright 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <glib/gquark.h>
+#include <glib.h>
#include <glibmm/ustring.h>
diff --git a/libs/glibmm2/glib/glibmm/random.cc b/libs/glibmm2/glib/glibmm/random.cc
index c91981bc13..b924102a47 100644
--- a/libs/glibmm2/glib/glibmm/random.cc
+++ b/libs/glibmm2/glib/glibmm/random.cc
@@ -1,27 +1,26 @@
// -*- c++ -*-
-/* $Id: random.cc 2 2003-01-07 16:59:16Z murrayc $ */
+/* $Id: random.cc 779 2009-01-19 17:58:50Z murrayc $ */
/* random.cc
*
* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <glibmm/random.h>
-#include <glib/grand.h>
namespace Glib
diff --git a/libs/glibmm2/glib/glibmm/random.h b/libs/glibmm2/glib/glibmm/random.h
index 711d23b28e..7918df4238 100644
--- a/libs/glibmm2/glib/glibmm/random.h
+++ b/libs/glibmm2/glib/glibmm/random.h
@@ -2,28 +2,28 @@
#ifndef _GLIBMM_RANDOM_H
#define _GLIBMM_RANDOM_H
-/* $Id: random.h 2 2003-01-07 16:59:16Z murrayc $ */
+/* $Id: random.h 779 2009-01-19 17:58:50Z murrayc $ */
/* random.h
*
* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <glib/gtypes.h>
+#include <glib.h>
extern "C" { typedef struct _GRand GRand; }
diff --git a/libs/glibmm2/glib/glibmm/refptr.h b/libs/glibmm2/glib/glibmm/refptr.h
index a9e74ace8a..ebb26aac11 100644
--- a/libs/glibmm2/glib/glibmm/refptr.h
+++ b/libs/glibmm2/glib/glibmm/refptr.h
@@ -2,21 +2,21 @@
#ifndef _GLIBMM_REFPTR_H
#define _GLIBMM_REFPTR_H
-/* $Id: refptr.h 216 2005-04-07 08:28:46Z murrayc $ */
+/* $Id: refptr.h 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -116,9 +116,15 @@ public:
*/
inline operator bool() const;
- /// Set underlying instance to 0, decrementing reference count of existing instance appropriately.
+#ifndef GLIBMM_DISABLE_DEPRECATED
+ /// @deprecated Use reset() instead because this leads to confusion with clear() methods on the underlying class. For instance, people use .clear() when they mean ->clear().
inline void clear();
+#endif //GLIBMM_DISABLE_DEPRECATED
+ /** Set underlying instance to 0, decrementing reference count of existing instance appropriately.
+ * @newin2p16
+ */
+ inline void reset();
/** Dynamic cast to derived class.
*
@@ -279,9 +285,17 @@ RefPtr<T_CppObject>::operator bool() const
return (pCppObject_ != 0);
}
+#ifndef GLIBMM_DISABLE_DEPRECATED
template <class T_CppObject> inline
void RefPtr<T_CppObject>::clear()
{
+ reset();
+}
+#endif //GLIBMM_DISABLE_DEPRECATED
+
+template <class T_CppObject> inline
+void RefPtr<T_CppObject>::reset()
+{
RefPtr<T_CppObject> temp; // swap with an empty RefPtr<> to clear *this
this->swap(temp);
}
diff --git a/libs/glibmm2/glib/glibmm/regex.cc b/libs/glibmm2/glib/glibmm/regex.cc
index 8cc257ec60..ef010e67b9 100644
--- a/libs/glibmm2/glib/glibmm/regex.cc
+++ b/libs/glibmm2/glib/glibmm/regex.cc
@@ -7,16 +7,16 @@
/* Copyright (C) 2007 The glibmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/regex.h b/libs/glibmm2/glib/glibmm/regex.h
index a9f6276e81..13c07a656f 100644
--- a/libs/glibmm2/glib/glibmm/regex.h
+++ b/libs/glibmm2/glib/glibmm/regex.h
@@ -7,16 +7,16 @@
/* Copyright (C) 2007 The glibmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -26,7 +26,7 @@
#include <glibmm/ustring.h>
#include <glibmm/error.h>
#include <glibmm/arrayhandle.h>
-#include <glib/gregex.h>
+#include <glib.h>
#ifndef DOXYGEN_SHOULD_SKIP_THIS
typedef struct _GRegex GRegex;
@@ -155,10 +155,48 @@ class RegexError : public Glib::Error
public:
enum Code
{
- COMPILE,
- OPTIMIZE,
- REPLACE,
- MATCH
+ COMPILE = 0,
+ OPTIMIZE = 1,
+ REPLACE = 2,
+ MATCH = 3,
+ INTERNAL = 4,
+ STRAY_BACKSLASH = 101,
+ MISSING_CONTROL_CHAR = 102,
+ UNRECOGNIZED_ESCAPE = 103,
+ QUANTIFIERS_OUT_OF_ORDER = 104,
+ QUANTIFIER_TOO_BIG = 105,
+ UNTERMINATED_CHARACTER_CLASS = 106,
+ INVALID_ESCAPE_IN_CHARACTER_CLASS = 107,
+ RANGE_OUT_OF_ORDER = 108,
+ NOTHING_TO_REPEAT = 109,
+ UNRECOGNIZED_CHARACTER = 112,
+ POSIX_NAMED_CLASS_OUTSIDE_CLASS = 113,
+ UNMATCHED_PARENTHESIS = 114,
+ INEXISTENT_SUBPATTERN_REFERENCE = 115,
+ UNTERMINATED_COMMENT = 118,
+ EXPRESSION_TOO_LARGE = 120,
+ MEMORY_ERROR = 121,
+ VARIABLE_LENGTH_LOOKBEHIND = 125,
+ MALFORMED_CONDITION = 126,
+ TOO_MANY_CONDITIONAL_BRANCHES = 127,
+ ASSERTION_EXPECTED = 128,
+ UNKNOWN_POSIX_CLASS_NAME = 130,
+ POSIX_COLLATING_ELEMENTS_NOT_SUPPORTED = 131,
+ HEX_CODE_TOO_LARGE = 134,
+ INVALID_CONDITION = 135,
+ SINGLE_BYTE_MATCH_IN_LOOKBEHIND = 136,
+ INFINITE_LOOP = 140,
+ MISSING_SUBPATTERN_NAME_TERMINATOR = 142,
+ DUPLICATE_SUBPATTERN_NAME = 143,
+ MALFORMED_PROPERTY = 146,
+ UNKNOWN_PROPERTY = 147,
+ SUBPATTERN_NAME_TOO_LONG = 148,
+ TOO_MANY_SUBPATTERNS = 149,
+ INVALID_OCTAL_VALUE = 151,
+ TOO_MANY_BRANCHES_IN_DEFINE = 154,
+ DEFINE_REPETION = 155,
+ INCONSISTENT_NEWLINE_OPTIONS = 156,
+ MISSING_BACK_REFERENCE = 157
};
RegexError(Code error_code, const Glib::ustring& error_message);
@@ -270,13 +308,13 @@ public:
#ifdef GLIBMM_EXCEPTIONS_ENABLED
static Glib::RefPtr<Glib::Regex> create(const Glib::ustring& pattern, RegexCompileFlags compile_options = static_cast<RegexCompileFlags>(0), RegexMatchFlags match_options = static_cast<RegexMatchFlags>(0));
#else
- static Glib::RefPtr<Glib::Regex> create(const Glib::ustring& pattern, RegexCompileFlags compile_options = static_cast<RegexCompileFlags>(0), RegexMatchFlags match_options = static_cast<RegexMatchFlags>(0), std::auto_ptr<Glib::Error>& error);
+ static Glib::RefPtr<Glib::Regex> create(const Glib::ustring& pattern, RegexCompileFlags compile_options, RegexMatchFlags match_options, std::auto_ptr<Glib::Error>& error);
#endif /* !GLIBMM_EXCEPTIONS_ENABLED */
- /** Gets the pattern string associated with @a regex , i.e.\ a copy of
+ /** Gets the pattern string associated with @a regex, i.e.\ a copy of
* the string passed to g_regex_new().
- * @return The pattern of @a regex
+ * @return The pattern of @a regex
*
* @newin2p14.
*/
@@ -296,9 +334,9 @@ public:
*/
int get_capture_count() const;
- /** Retrieves the number of the subexpression named @a name .
+ /** Retrieves the number of the subexpression named @a name.
* @param name Name of the subexpression.
- * @return The number of the subexpression or -1 if @a name
+ * @return The number of the subexpression or -1 if @a name
* does not exists
*
* @newin2p14.
@@ -308,21 +346,21 @@ public:
static Glib::ustring escape_string(const Glib::ustring& string);
- /** Scans for a match in @a string for @a pattern .
+ /** Scans for a match in @a string for @a pattern.
*
* This function is equivalent to g_regex_match() but it does not
* require to compile the pattern with g_regex_new(), avoiding some
* lines of code when you need just to do a match without extracting
* substrings, capture counts, and so on.
*
- * If this function is to be called on the same @a pattern more than
+ * If this function is to be called on the same @a pattern more than
* once, it's more efficient to compile the pattern once with
* g_regex_new() and then use g_regex_match().
* @param pattern The regular expression.
* @param string The string to scan for matches.
- * @param compile_options Compile options for the regular expression.
- * @param match_options Match options.
- * @return <tt>true</tt> is the string matched, <tt>false</tt> otherwise
+ * @param compile_options Compile options for the regular expression, or 0.
+ * @param match_options Match options, or 0.
+ * @return <tt>true</tt> if the string matched, <tt>false</tt> otherwise
*
* @newin2p14.
*/
@@ -375,7 +413,7 @@ public:
* some lines of code when you need just to do a split without
* extracting substrings, capture counts, and so on.
*
- * If this function is to be called on the same @a pattern more than
+ * If this function is to be called on the same @a pattern more than
* once, it's more efficient to compile the pattern once with
* g_regex_new() and then use g_regex_split().
*
@@ -387,15 +425,15 @@ public:
* you'll need to check for the empty string before calling this
* function.
*
- * A pattern that can match empty strings splits @a string into
+ * A pattern that can match empty strings splits @a string into
* separate characters wherever it matches the empty string between
* characters. For example splitting "ab c" using as a separator
* "\s*", you will get "a", "b" and "c".
* @param pattern The regular expression.
* @param string The string to scan for matches.
- * @param compile_options Compile options for the regular expression.
- * @param match_options Match options.
- * @return A <tt>0</tt>-terminated gchar ** array. Free it using g_strfreev()
+ * @param compile_options Compile options for the regular expression, or 0.
+ * @param match_options Match options, or 0.
+ * @return A <tt>0</tt>-terminated array of strings. Free it using g_strfreev()
*
* @newin2p14.
*/
@@ -414,7 +452,7 @@ public:
* you do need to represent empty elements, you'll need to check for the
* empty string before calling this function.
*
- * A pattern that can match empty strings splits @a string into separate
+ * A pattern that can match empty strings splits @a string into separate
* characters wherever it matches the empty string between characters.
* For example splitting "ab c" using as a separator "\s*", you will get
* "a", "b" and "c".
@@ -440,21 +478,20 @@ public:
* you do need to represent empty elements, you'll need to check for the
* empty string before calling this function.
*
- * A pattern that can match empty strings splits @a string into separate
+ * A pattern that can match empty strings splits @a string into separate
* characters wherever it matches the empty string between characters.
* For example splitting "ab c" using as a separator "\s*", you will get
* "a", "b" and "c".
*
- * Setting @a start_position differs from just passing over a shortened
- * string and setting G::REGEX_MATCH_NOTBOL in the case of a pattern
+ * Setting @a start_position differs from just passing over a shortened
+ * string and setting REGEX_MATCH_NOTBOL in the case of a pattern
* that begins with any kind of lookbehind assertion, such as "\b".
* @param string The string to split with the pattern.
- * @param string_len The length of @a string , or -1 if @a string is nul-terminated.
+ * @param string_len The length of @a string, or -1 if @a string is nul-terminated.
* @param start_position Starting index of the string to match.
* @param match_options Match time option flags.
- * @param max_tokens The maximum number of tokens to split @a string into.
+ * @param max_tokens The maximum number of tokens to split @a string into.
* If this is less than 1, the string is split completely.
- * @param error Return location for a G::Error.
* @return A <tt>0</tt>-terminated gchar ** array. Free it using g_strfreev()
*
* @newin2p14.
@@ -473,7 +510,7 @@ public:
#endif /* !GLIBMM_EXCEPTIONS_ENABLED */
- /** Replaces all occurances of the pattern in @a regex with the
+ /** Replaces all occurances of the pattern in @a regex with the
* replacement text. Backreferences of the form '\number' or
* '\g&lt;number&gt;' in the replacement text are interpolated by the
* number-th captured subexpression of the match, '\g&lt;name&gt;' refers
@@ -512,19 +549,18 @@ public:
*
* If you do not need to use backreferences use g_regex_replace_literal().
*
- * The @a replacement string must be UTF-8 encoded even if G::REGEX_RAW was
+ * The @a replacement string must be UTF-8 encoded even if REGEX_RAW was
* passed to g_regex_new(). If you want to use not UTF-8 encoded stings
* you can use g_regex_replace_literal().
*
- * Setting @a start_position differs from just passing over a shortened
- * string and setting G::REGEX_MATCH_NOTBOL in the case of a pattern that
+ * Setting @a start_position differs from just passing over a shortened
+ * string and setting REGEX_MATCH_NOTBOL in the case of a pattern that
* begins with any kind of lookbehind assertion, such as "\b".
* @param string The string to perform matches against.
- * @param string_len The length of @a string , or -1 if @a string is nul-terminated.
+ * @param string_len The length of @a string, or -1 if @a string is nul-terminated.
* @param start_position Starting index of the string to match.
* @param replacement Text to replace each match with.
* @param match_options Options for the match.
- * @param error Location to store the error occuring, or <tt>0</tt> to ignore errors.
* @return A newly allocated string containing the replacements
*
* @newin2p14.
@@ -542,20 +578,19 @@ public:
#endif /* !GLIBMM_EXCEPTIONS_ENABLED */
- /** Replaces all occurances of the pattern in @a regex with the
- * replacement text. @a replacement is replaced literally, to
+ /** Replaces all occurances of the pattern in @a regex with the
+ * replacement text. @a replacement is replaced literally, to
* include backreferences use g_regex_replace().
*
- * Setting @a start_position differs from just passing over a
- * shortened string and setting G::REGEX_MATCH_NOTBOL in the
+ * Setting @a start_position differs from just passing over a
+ * shortened string and setting REGEX_MATCH_NOTBOL in the
* case of a pattern that begins with any kind of lookbehind
* assertion, such as "\b".
* @param string The string to perform matches against.
- * @param string_len The length of @a string , or -1 if @a string is nul-terminated.
+ * @param string_len The length of @a string, or -1 if @a string is nul-terminated.
* @param start_position Starting index of the string to match.
* @param replacement Text to replace each match with.
* @param match_options Options for the match.
- * @param error Location to store the error occuring, or <tt>0</tt> to ignore errors.
* @return A newly allocated string containing the replacements
*
* @newin2p14.
@@ -574,18 +609,17 @@ public:
/** Replaces occurances of the pattern in regex with the output of
- * @a eval for that occurance.
+ * @a eval for that occurance.
*
- * Setting @a start_position differs from just passing over a shortened
- * string and setting G::REGEX_MATCH_NOTBOL in the case of a pattern
+ * Setting @a start_position differs from just passing over a shortened
+ * string and setting REGEX_MATCH_NOTBOL in the case of a pattern
* that begins with any kind of lookbehind assertion, such as "\b".
* @param string String to perform matches against.
- * @param string_len The length of @a string , or -1 if @a string is nul-terminated.
+ * @param string_len The length of @a string, or -1 if @a string is nul-terminated.
* @param start_position Starting index of the string to match.
* @param match_options Options for the match.
* @param eval A function to call for each match.
* @param user_data User data to pass to the function.
- * @param error Location to store the error occuring, or <tt>0</tt> to ignore errors.
* @return A newly allocated string containing the replacements
*
* @newin2p14.
@@ -597,20 +631,19 @@ public:
#endif //GLIBMM_EXCEPTIONS_ENABLED
- /** Checks whether @a replacement is a valid replacement string
+ /** Checks whether @a replacement is a valid replacement string
* (see g_regex_replace()), i.e.\ that all escape sequences in
* it are valid.
*
- * If @a has_references is not <tt>0</tt> then @a replacement is checked
+ * If @a has_references is not <tt>0</tt> then @a replacement is checked
* for pattern references. For instance, replacement text 'foo<tt>\\n</tt>'
* does not contain references and may be evaluated without information
* about actual match, but '\0\1' (whole match followed by first
- * subpattern) requires valid G::MatchInfo object.
+ * subpattern) requires valid MatchInfo object.
* @param replacement The replacement string.
* @param has_references Location to store information about
- * references in @a replacement or <tt>0</tt>.
- * @param error Location to store error.
- * @return Whether @a replacement is a valid replacement string
+ * references in @a replacement or <tt>0</tt>.
+ * @return Whether @a replacement is a valid replacement string
*
* @newin2p14.
*/
diff --git a/libs/glibmm2/glib/glibmm/sarray.h b/libs/glibmm2/glib/glibmm/sarray.h
index c9720b5028..a0232f828b 100644
--- a/libs/glibmm2/glib/glibmm/sarray.h
+++ b/libs/glibmm2/glib/glibmm/sarray.h
@@ -2,23 +2,23 @@
#ifndef _GLIBMM_SARRAY_H
#define _GLIBMM_SARRAY_H
-/* $Id: sarray.h 2 2003-01-07 16:59:16Z murrayc $ */
+/* $Id: sarray.h 779 2009-01-19 17:58:50Z murrayc $ */
/* array.h
*
* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/shell.cc b/libs/glibmm2/glib/glibmm/shell.cc
index e20304aa0b..277b682f6c 100644
--- a/libs/glibmm2/glib/glibmm/shell.cc
+++ b/libs/glibmm2/glib/glibmm/shell.cc
@@ -10,16 +10,16 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/shell.h b/libs/glibmm2/glib/glibmm/shell.h
index 19b6a11b91..51733c81f5 100644
--- a/libs/glibmm2/glib/glibmm/shell.h
+++ b/libs/glibmm2/glib/glibmm/shell.h
@@ -9,22 +9,22 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <glib/gshell.h>
+#include <glib.h>
#include <string>
#include <glibmm/arrayhandle.h>
diff --git a/libs/glibmm2/glib/glibmm/signalproxy.cc b/libs/glibmm2/glib/glibmm/signalproxy.cc
index 49e35c550e..f3bb589cc7 100644
--- a/libs/glibmm2/glib/glibmm/signalproxy.cc
+++ b/libs/glibmm2/glib/glibmm/signalproxy.cc
@@ -1,22 +1,22 @@
// -*- c++ -*-
-/* $Id: signalproxy.cc 291 2006-05-12 08:08:45Z murrayc $ */
+/* $Id: signalproxy.cc 779 2009-01-19 17:58:50Z murrayc $ */
/* signalproxy.cc
*
* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/signalproxy_connectionnode.cc b/libs/glibmm2/glib/glibmm/signalproxy_connectionnode.cc
index 9311fad3b9..0ea3789290 100644
--- a/libs/glibmm2/glib/glibmm/signalproxy_connectionnode.cc
+++ b/libs/glibmm2/glib/glibmm/signalproxy_connectionnode.cc
@@ -1,22 +1,22 @@
// -*- c++ -*-
-/* $Id: signalproxy_connectionnode.cc 137 2004-10-07 16:02:01Z philipl $ */
+/* $Id: signalproxy_connectionnode.cc 779 2009-01-19 17:58:50Z murrayc $ */
/* signalproxy_connectionnode.cc
*
* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/signalproxy_connectionnode.h b/libs/glibmm2/glib/glibmm/signalproxy_connectionnode.h
index 7d0faa3ca2..edd8325c5c 100644
--- a/libs/glibmm2/glib/glibmm/signalproxy_connectionnode.h
+++ b/libs/glibmm2/glib/glibmm/signalproxy_connectionnode.h
@@ -2,29 +2,29 @@
#ifndef _GLIBMM_SIGNALPROXY_CONNECTIONNODE_H
#define _GLIBMM_SIGNALPROXY_CONNECTIONNODE_H
-/* $Id: signalproxy_connectionnode.h 446 2007-09-26 15:10:44Z murrayc $ */
+/* $Id: signalproxy_connectionnode.h 779 2009-01-19 17:58:50Z murrayc $ */
/* signalproxy_connectionnode.h
*
* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <sigc++/sigc++.h>
-#include <glib/gtypes.h>
+#include <glib.h>
#ifndef DOXYGEN_SHOULD_SKIP_THIS
typedef struct _GObject GObject;
diff --git a/libs/glibmm2/glib/glibmm/slisthandle.h b/libs/glibmm2/glib/glibmm/slisthandle.h
index 0806e7be21..7d9e4642d6 100644
--- a/libs/glibmm2/glib/glibmm/slisthandle.h
+++ b/libs/glibmm2/glib/glibmm/slisthandle.h
@@ -2,26 +2,26 @@
#ifndef _GLIBMM_SLISTHANDLE_H
#define _GLIBMM_SLISTHANDLE_H
-/* $Id: slisthandle.h 32 2003-04-21 17:39:41Z murrayc $ */
+/* $Id: slisthandle.h 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <glib/gslist.h>
+#include <glib.h>
#include <glibmm/containerhandle_shared.h>
diff --git a/libs/glibmm2/glib/glibmm/spawn.cc b/libs/glibmm2/glib/glibmm/spawn.cc
index 592001885e..e71fc66491 100644
--- a/libs/glibmm2/glib/glibmm/spawn.cc
+++ b/libs/glibmm2/glib/glibmm/spawn.cc
@@ -10,21 +10,21 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <glib/gspawn.h>
+#include <glib.h>
#include <glibmm/exceptionhandler.h>
#include <glibmm/utility.h>
@@ -76,6 +76,7 @@ namespace Glib
/**** process spawning functions *******************************************/
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
void spawn_async_with_pipes(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
const Glib::ArrayHandle<std::string>& envp,
@@ -85,10 +86,21 @@ void spawn_async_with_pipes(const std::string& working_directory,
int* standard_input,
int* standard_output,
int* standard_error)
+#else
+void spawn_async_with_pipes(const std::string& working_directory,
+ const Glib::ArrayHandle<std::string>& argv,
+ const Glib::ArrayHandle<std::string>& envp,
+ SpawnFlags flags,
+ const sigc::slot<void>& child_setup,
+ Pid* child_pid,
+ int* standard_input,
+ int* standard_output,
+ int* standard_error, std::auto_ptr<Glib::Error>& error)
+#endif //GLIBMM_EXCEPTIONS_ENABLED
{
const bool setup_slot = !child_setup.empty();
sigc::slot<void> child_setup_ = child_setup;
- GError* error = 0;
+ GError* gerror = 0;
g_spawn_async_with_pipes(
working_directory.c_str(),
@@ -99,12 +111,18 @@ void spawn_async_with_pipes(const std::string& working_directory,
(setup_slot) ? &child_setup_ : 0,
child_pid,
standard_input, standard_output, standard_error,
- &error);
+ &gerror);
- if(error)
- Glib::Error::throw_exception(error);
+ #ifdef GLIBMM_EXCEPTIONS_ENABLED
+ if(gerror)
+ Glib::Error::throw_exception(gerror);
+ #else
+ if(gerror)
+ error = ::Glib::Error::throw_exception(gerror);
+ #endif //GLIBMM_EXCEPTIONS_ENABLED
}
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
void spawn_async_with_pipes(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
SpawnFlags flags,
@@ -113,10 +131,20 @@ void spawn_async_with_pipes(const std::string& working_directory,
int* standard_input,
int* standard_output,
int* standard_error)
+#else
+void spawn_async_with_pipes(const std::string& working_directory,
+ const Glib::ArrayHandle<std::string>& argv,
+ SpawnFlags flags,
+ const sigc::slot<void>& child_setup,
+ Pid* child_pid,
+ int* standard_input,
+ int* standard_output,
+ int* standard_error, std::auto_ptr<Glib::Error>& error)
+#endif //GLIBMM_EXCEPTIONS_ENABLED
{
const bool setup_slot = !child_setup.empty();
sigc::slot<void> child_setup_ = child_setup;
- GError* error = 0;
+ GError* gerror = 0;
g_spawn_async_with_pipes(
working_directory.c_str(),
@@ -126,22 +154,36 @@ void spawn_async_with_pipes(const std::string& working_directory,
(setup_slot) ? &child_setup_ : 0,
child_pid,
standard_input, standard_output, standard_error,
- &error);
+ &gerror);
- if(error)
- Glib::Error::throw_exception(error);
+ #ifdef GLIBMM_EXCEPTIONS_ENABLED
+ if(gerror)
+ Glib::Error::throw_exception(gerror);
+ #else
+ if(gerror)
+ error = ::Glib::Error::throw_exception(gerror);
+ #endif //GLIBMM_EXCEPTIONS_ENABLED
}
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
void spawn_async(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
const Glib::ArrayHandle<std::string>& envp,
SpawnFlags flags,
const sigc::slot<void>& child_setup,
Pid* child_pid)
+#else
+void spawn_async(const std::string& working_directory,
+ const Glib::ArrayHandle<std::string>& argv,
+ const Glib::ArrayHandle<std::string>& envp,
+ SpawnFlags flags,
+ const sigc::slot<void>& child_setup,
+ Pid* child_pid, std::auto_ptr<Glib::Error>& error)
+#endif //GLIBMM_EXCEPTIONS_ENABLED
{
const bool setup_slot = !child_setup.empty();
sigc::slot<void> child_setup_ = child_setup;
- GError* error = 0;
+ GError* gerror = 0;
g_spawn_async(
working_directory.c_str(),
@@ -151,21 +193,34 @@ void spawn_async(const std::string& working_directory,
(setup_slot) ? &child_setup_callback : 0,
(setup_slot) ? &child_setup_ : 0,
child_pid,
- &error);
+ &gerror);
- if(error)
- Glib::Error::throw_exception(error);
+ #ifdef GLIBMM_EXCEPTIONS_ENABLED
+ if(gerror)
+ Glib::Error::throw_exception(gerror);
+ #else
+ if(gerror)
+ error = ::Glib::Error::throw_exception(gerror);
+ #endif //GLIBMM_EXCEPTIONS_ENABLED
}
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
void spawn_async(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
SpawnFlags flags,
const sigc::slot<void>& child_setup,
Pid* child_pid)
+#else
+void spawn_async(const std::string& working_directory,
+ const Glib::ArrayHandle<std::string>& argv,
+ SpawnFlags flags,
+ const sigc::slot<void>& child_setup,
+ Pid* child_pid, std::auto_ptr<Glib::Error>& error)
+#endif //GLIBMM_EXCEPTIONS_ENABLED
{
const bool setup_slot = !child_setup.empty();
sigc::slot<void> child_setup_ = child_setup;
- GError* error = 0;
+ GError* gerror = 0;
g_spawn_async(
working_directory.c_str(),
@@ -174,12 +229,18 @@ void spawn_async(const std::string& working_directory,
(setup_slot) ? &child_setup_callback : 0,
(setup_slot) ? &child_setup_ : 0,
child_pid,
- &error);
+ &gerror);
- if(error)
- Glib::Error::throw_exception(error);
+ #ifdef GLIBMM_EXCEPTIONS_ENABLED
+ if(gerror)
+ Glib::Error::throw_exception(gerror);
+ #else
+ if(gerror)
+ error = ::Glib::Error::throw_exception(gerror);
+ #endif //GLIBMM_EXCEPTIONS_ENABLED
}
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
void spawn_sync(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
const Glib::ArrayHandle<std::string>& envp,
@@ -188,13 +249,23 @@ void spawn_sync(const std::string& working_directory,
std::string* standard_output,
std::string* standard_error,
int* exit_status)
+#else
+void spawn_sync(const std::string& working_directory,
+ const Glib::ArrayHandle<std::string>& argv,
+ const Glib::ArrayHandle<std::string>& envp,
+ SpawnFlags flags,
+ const sigc::slot<void>& child_setup,
+ std::string* standard_output,
+ std::string* standard_error,
+ int* exit_status, std::auto_ptr<Glib::Error>& error)
+#endif //GLIBMM_EXCEPTIONS_ENABLED
{
const bool setup_slot = !child_setup.empty();
sigc::slot<void> child_setup_ = child_setup;
Glib::ScopedPtr<char> buf_standard_output;
Glib::ScopedPtr<char> buf_standard_error;
- GError* error = 0;
+ GError* gerror = 0;
g_spawn_sync(
working_directory.c_str(),
@@ -206,15 +277,21 @@ void spawn_sync(const std::string& working_directory,
(standard_output) ? buf_standard_output.addr() : 0,
(standard_error) ? buf_standard_error.addr() : 0,
exit_status,
- &error);
+ &gerror);
- if(error)
- Glib::Error::throw_exception(error);
+ #ifdef GLIBMM_EXCEPTIONS_ENABLED
+ if(gerror)
+ Glib::Error::throw_exception(gerror);
+ #else
+ if(gerror)
+ error = ::Glib::Error::throw_exception(gerror);
+ #endif //GLIBMM_EXCEPTIONS_ENABLED
copy_output_buf(standard_output, buf_standard_output.get());
copy_output_buf(standard_error, buf_standard_error.get());
}
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
void spawn_sync(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
SpawnFlags flags,
@@ -222,13 +299,22 @@ void spawn_sync(const std::string& working_directory,
std::string* standard_output,
std::string* standard_error,
int* exit_status)
+#else
+void spawn_sync(const std::string& working_directory,
+ const Glib::ArrayHandle<std::string>& argv,
+ SpawnFlags flags,
+ const sigc::slot<void>& child_setup,
+ std::string* standard_output,
+ std::string* standard_error,
+ int* exit_status, std::auto_ptr<Glib::Error>& error)
+#endif //GLIBMM_EXCEPTIONS_ENABLED
{
const bool setup_slot = !child_setup.empty();
sigc::slot<void> child_setup_ = child_setup;
Glib::ScopedPtr<char> buf_standard_output;
Glib::ScopedPtr<char> buf_standard_error;
- GError* error = 0;
+ GError* gerror = 0;
g_spawn_sync(
working_directory.c_str(),
@@ -239,42 +325,68 @@ void spawn_sync(const std::string& working_directory,
(standard_output) ? buf_standard_output.addr() : 0,
(standard_error) ? buf_standard_error.addr() : 0,
exit_status,
- &error);
+ &gerror);
- if(error)
- Glib::Error::throw_exception(error);
+ #ifdef GLIBMM_EXCEPTIONS_ENABLED
+ if(gerror)
+ Glib::Error::throw_exception(gerror);
+ #else
+ if(gerror)
+ error = ::Glib::Error::throw_exception(gerror);
+ #endif //GLIBMM_EXCEPTIONS_ENABLED
copy_output_buf(standard_output, buf_standard_output.get());
copy_output_buf(standard_error, buf_standard_error.get());
}
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
void spawn_command_line_async(const std::string& command_line)
+#else
+void spawn_command_line_async(const std::string& command_line, std::auto_ptr<Glib::Error>& error)
+#endif //GLIBMM_EXCEPTIONS_ENABLED
{
- GError* error = 0;
- g_spawn_command_line_async(command_line.c_str(), &error);
+ GError* gerror = 0;
+ g_spawn_command_line_async(command_line.c_str(), &gerror);
- if(error)
- Glib::Error::throw_exception(error);
+ #ifdef GLIBMM_EXCEPTIONS_ENABLED
+ if(gerror)
+ Glib::Error::throw_exception(gerror);
+ #else
+ if(gerror)
+ error = ::Glib::Error::throw_exception(gerror);
+ #endif //GLIBMM_EXCEPTIONS_ENABLED
}
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
void spawn_command_line_sync(const std::string& command_line,
std::string* standard_output,
std::string* standard_error,
int* exit_status)
+#else
+void spawn_command_line_sync(const std::string& command_line,
+ std::string* standard_output,
+ std::string* standard_error,
+ int* exit_status, std::auto_ptr<Glib::Error>& error);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
{
Glib::ScopedPtr<char> buf_standard_output;
Glib::ScopedPtr<char> buf_standard_error;
- GError* error = 0;
+ GError* gerror = 0;
g_spawn_command_line_sync(
command_line.c_str(),
(standard_output) ? buf_standard_output.addr() : 0,
(standard_error) ? buf_standard_error.addr() : 0,
exit_status,
- &error);
+ &gerror);
- if(error)
- Glib::Error::throw_exception(error);
+ #ifdef GLIBMM_EXCEPTIONS_ENABLED
+ if(gerror)
+ Glib::Error::throw_exception(gerror);
+ #else
+ if(gerror)
+ error = ::Glib::Error::throw_exception(gerror);
+ #endif //GLIBMM_EXCEPTIONS_ENABLED
copy_output_buf(standard_output, buf_standard_output.get());
copy_output_buf(standard_error, buf_standard_error.get());
diff --git a/libs/glibmm2/glib/glibmm/spawn.h b/libs/glibmm2/glib/glibmm/spawn.h
index ae6f651a33..3729ce06d1 100644
--- a/libs/glibmm2/glib/glibmm/spawn.h
+++ b/libs/glibmm2/glib/glibmm/spawn.h
@@ -9,16 +9,16 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -143,6 +143,155 @@ private:
};
+/** Executes a child program asynchronously (your program will not
+ * block waiting for the child to exit). The child program is
+ * specified by the only argument that must be provided, @a argv.
+ * The first string in @a argv is of
+ * course the name of the program to execute. By default, the name of
+ * the program must be a full path; the PATH shell variable
+ * will only be searched if you pass the SPAWN_SEARCH_PATH flag.
+ *
+ * On Windows, note that all the string or string vector arguments to
+ * this function and the other spawn*() functions are in UTF-8, the
+ * GLib file name encoding. Unicode characters that are not part of
+ * the system codepage passed in these arguments will be correctly
+ * available in the spawned program only if it uses wide character API
+ * to retrieve its command line. For C programs built with Microsoft's
+ * tools it is enough to make the program have a wmain() instead of
+ * main(). wmain() has a wide character argument vector as parameter.
+ *
+ * At least currently, mingw doesn't support wmain(), so if you use
+ * mingw to develop the spawned program, it will have to call the
+ * undocumented function __wgetmainargs() to get the wide character
+ * argument vector and environment. See gspawn-win32-helper.c in the
+ * GLib sources or init.c in the mingw runtime sources for a prototype
+ * for that function. Alternatively, you can retrieve the Win32 system
+ * level wide character command line passed to the spawned program
+ * using the GetCommandLineW() function.
+ *
+ * On Windows the low-level child process creation API
+ * CreateProcess() doesn't use argument vectors,
+ * but a command line. The C runtime library's
+ * spawn*() family of functions (which
+ * spawn_async_with_pipes() eventually calls) paste the argument
+ * vector elements together into a command line, and the C runtime startup code
+ * does a corresponding reconstruction of an argument vector from the
+ * command line, to be passed to main(). Complications arise when you have
+ * argument vector elements that contain spaces of double quotes. The
+ * spawn*() functions don't do any quoting or
+ * escaping, but on the other hand the startup code does do unquoting
+ * and unescaping in order to enable receiving arguments with embedded
+ * spaces or double quotes. To work around this asymmetry,
+ * spawn_async_with_pipes() will do quoting and escaping on argument
+ * vector elements that need it before calling the C runtime
+ * spawn() function.
+ *
+ * @a envp is a lists of strings, where each string
+ * has the form KEY=VALUE. This will become
+ * the child's environment.
+ *
+ * @a flags should be the bitwise OR of any flags you want to affect the
+ * function's behaviour. The SPAWN_DO_NOT_REAP_CHILD flags means that
+ * the child will not automatically be reaped; you must use a
+ * ChildWatch source to be notified about the death of the child
+ * process. Eventually you must call spawn_close_pid() on the
+ * @a child_pid, in order to free resources which may be associated
+ * with the child process. (On Unix, using a ChildWatch source is
+ * equivalent to calling waitpid() or handling the SIGCHLD signal
+ * manually. On Windows, calling spawn_close_pid() is equivalent
+ * to calling CloseHandle() on the process handle returned in
+ * @a child_pid).
+ *
+ * PAWN_LEAVE_DESCRIPTORS_OPEN means that the parent's open file
+ * descriptors will be inherited by the child; otherwise all
+ * descriptors except stdin/stdout/stderr will be closed before
+ * calling exec() in the child. SPAWN_SEARCH_PATH
+ * means that argv[0] need not be an absolute path, it
+ * will be looked for in the user's PATH.
+ * SPAWN_STDOUT_TO_DEV_NULL means that the child's standard output will
+ * be discarded, instead of going to the same location as the parent's
+ * standard output. If you use this flag, @a standard_output must be NULL.
+ * SPAWN_STDERR_TO_DEV_NULL means that the child's standard error
+ * will be discarded, instead of going to the same location as the parent's
+ * standard error. If you use this flag, @a standard_error must be NULL.
+ * SPAWN_CHILD_INHERITS_STDIN means that the child will inherit the parent's
+ * standard input (by default, the child's standard input is attached to
+ * /dev/null). If you use this flag, @a standard_input must be NULL.
+ * G_SPAWN_FILE_AND_ARGV_ZERO means that the first element of @a argv is
+ * the file to execute, while the remaining elements are the
+ * actual argument vector to pass to the file. Normally
+ * spawn_async_with_pipes() uses argv[0] as the file to execute, and
+ * passes all of @a argv to the child.
+ *
+ * @a child_setup is a callback slot. On POSIX
+ * platforms, the function is called in the child after GLib has
+ * performed all the setup it plans to perform (including creating
+ * pipes, closing file descriptors, etc.) but before calling
+ * exec(). That is, @a child_setup is called just
+ * before calling exec() in the child. Obviously
+ * actions taken in this function will only affect the child, not the
+ * parent. On Windows, there is no separate fork() and exec()
+ * functionality. Child processes are created and run with
+ * a single API call, CreateProcess(). @a child_setup is
+ * called in the parent process just before creating the child
+ * process. You should carefully consider what you do in @a child_setup
+ * if you intend your software to be portable to Windows.
+ *
+ * If non-NULL, @a child_pid will on Unix be filled with the child's
+ * process ID. You can use the process ID to send signals to the
+ * child, or to use child_watch_add() (or waitpid()) if you specified the
+ * SPAWN_DO_NOT_REAP_CHILD flag. On Windows, @a child_pid will be
+ * filled with a handle to the child process only if you specified the
+ * SPAWN_DO_NOT_REAP_CHILD flag. You can then access the child
+ * process using the Win32 API, for example wait for its termination
+ * with the WaitFor*() functions, or examine its
+ * exit code with GetExitCodeProcess(). You should close the handle
+ * with CloseHandle() or spawn_close_pid() when you no longer need it.
+ *
+ * If non-NULL, the @a standard_input, @a standard_output, @a standard_error
+ * locations will be filled with file descriptors for writing to the child's
+ * standard input or reading from its standard output or standard error.
+ * The caller of pawn_async_with_pipes() must close these file descriptors
+ * when they are no longer in use. If these parameters are NULL, the corresponding
+ * pipe won't be created.
+ *
+ * If @a standard_input is NULL, the child's standard input is attached to
+ * /dev/null unless SPAWN_CHILD_INHERITS_STDIN is set.
+ *
+ * If @a standard_error is NULL, the child's standard error goes to the same
+ * location as the parent's standard error unless SPAWN_STDERR_TO_DEV_NULL
+ * is set.
+ *
+ * If @a standard_output is NULL, the child's standard output goes to the same
+ * location as the parent's standard output unless SPAWN_STDOUT_TO_DEV_NULL
+ * is set.
+ *
+ * If @a child_pid is not NULL and an error does not occur then the returned
+ * pid must be closed using spawn_close_pid().
+ *
+ * @note
+ * If you are writing a gtkmm application, and the program you
+ * are spawning is a graphical application, too, then you may
+ * want to use spawn_on_screen_with_pipes() instead to ensure that
+ * the spawned program opens its windows on the right screen.
+ *
+ * @param working_directory Child's current working directory, or an empty string to inherit the parent's, in the GLib file name encoding.
+ * @param argv Child's argument vector.
+ * @param envp Child's environment.
+ * @param flags Flags from SpawnFlags
+ * @param child_setup Slot to run in the child just before exec().
+ * @param child_pid Return location for child process ID, or NULL.
+ * @param standard_input Return location for file descriptor to write to child's stdin, or NULL.
+ * @param standard_output Return location for file descriptor to read child's stdout, or NULL.
+ * @param standard_error Return location for file descriptor to read child's stderr, or NULL.
+ *
+ * @throws SpawnError Errors are reported even if they occur in the child (for example if the
+ * executable in argv[0] is not found). Typically
+ * the message field of returned errors should be displayed
+ * to users. If an error occurs, @a child_pid, @a standard_input, @a standard_output,
+ * and @a standard_error will not be filled with valid values.
+ */
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
void spawn_async_with_pipes(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
const Glib::ArrayHandle<std::string>& envp,
@@ -152,7 +301,36 @@ void spawn_async_with_pipes(const std::string& working_directory,
int* standard_input = 0,
int* standard_output = 0,
int* standard_error = 0);
+#else
+void spawn_async_with_pipes(const std::string& working_directory,
+ const Glib::ArrayHandle<std::string>& argv,
+ const Glib::ArrayHandle<std::string>& envp,
+ SpawnFlags flags,
+ const sigc::slot<void>& child_setup,
+ Pid* child_pid,
+ int* standard_input,
+ int* standard_output,
+ int* standard_error, std::auto_ptr<Glib::Error>& error);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+/** Like the main spawn_async_with_pipes() method, but inheriting the parent's environment.
+ *
+ * @param working_directory Child's current working directory, or an empty string to inherit the parent's, in the GLib file name encoding.
+ * @param argv Child's argument vector.
+ * @param flags Flags from SpawnFlags
+ * @param child_setup Slot to run in the child just before exec().
+ * @param child_pid Return location for child process ID, or NULL.
+ * @param standard_input Return location for file descriptor to write to child's stdin, or NULL.
+ * @param standard_output Return location for file descriptor to read child's stdout, or NULL.
+ * @param standard_error Return location for file descriptor to read child's stderr, or NULL.
+ *
+ * @throws SpawnError Errors are reported even if they occur in the child (for example if the
+ * executable in argv[0] is not found). Typically
+ * the message field of returned errors should be displayed
+ * to users. If an error occurs, @a child_pid, @a standard_input, @a standard_output,
+ * and @a standard_error will not be filled with valid values.
+ */
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
void spawn_async_with_pipes(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
SpawnFlags flags = SpawnFlags(0),
@@ -161,20 +339,115 @@ void spawn_async_with_pipes(const std::string& working_directory,
int* standard_input = 0,
int* standard_output = 0,
int* standard_error = 0);
+#else
+void spawn_async_with_pipes(const std::string& working_directory,
+ const Glib::ArrayHandle<std::string>& argv,
+ SpawnFlags flags,
+ const sigc::slot<void>& child_setup,
+ Pid* child_pid,
+ int* standard_input,
+ int* standard_output,
+ int* standard_error, std::auto_ptr<Glib::Error>& error);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+/** See pawn_async_with_pipes() for a full description. This function
+ * simply calls the spawn_async_with_pipes() without any pipes.
+ *
+ * @note
+ * If you are writing a GTK+ application, and the program you
+ * are spawning is a graphical application, too, then you may
+ * want to use gdk_spawn_on_screen() instead to ensure that
+ * the spawned program opens its windows on the right screen.
+ *
+ * @param working_directory Child's current working directory, or an empty string to inherit parent's.
+ * @param argv Child's argument vector.
+ * @param env Child's environment.
+ * @param flags Flags from SpawnFlags.
+ * @param child_setup Slot to run in the child just before exec().
+ * @param child_pid Return location for child process ID, or NULL
+ *
+ * @throws SpawnError Errors are reported even if they occur in the child (for example if the
+ * executable in argv[0] is not found). Typically
+ * the message field of returned errors should be displayed
+ * to users.
+ */
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
void spawn_async(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
const Glib::ArrayHandle<std::string>& envp,
SpawnFlags flags = SpawnFlags(0),
const sigc::slot<void>& child_setup = sigc::slot<void>(),
Pid* child_pid = 0);
+#else
+void spawn_async(const std::string& working_directory,
+ const Glib::ArrayHandle<std::string>& argv,
+ const Glib::ArrayHandle<std::string>& envp,
+ SpawnFlags flags,
+ const sigc::slot<void>& child_setup,
+ Pid* child_pid, std::auto_ptr<Glib::Error>& error);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+/** Like the main spawn_async() method, but inheriting the parent's environment.
+ *
+ * @param working_directory Child's current working directory, or an empty string to inherit parent's.
+ * @param argv Child's argument vector.
+ * @param env Child's environment.
+ * @param flags Flags from SpawnFlags.
+ * @param child_setup Slot to run in the child just before exec().
+ * @param child_pid Return location for child process ID, or NULL
+ *
+ * @throws SpawnError Errors are reported even if they occur in the child (for example if the
+ * executable in argv[0] is not found). Typically
+ * the message field of returned errors should be displayed
+ * to users.
+ */
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
void spawn_async(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
SpawnFlags flags = SpawnFlags(0),
const sigc::slot<void>& child_setup = sigc::slot<void>(),
Pid* child_pid = 0);
+#else
+void spawn_async(const std::string& working_directory,
+ const Glib::ArrayHandle<std::string>& argv,
+ SpawnFlags flags,
+ const sigc::slot<void>& child_setup,
+ Pid* child_pid, std::auto_ptr<Glib::Error>& error);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+/** Executes a child synchronously (waits for the child to exit before returning).
+ * All output from the child is stored in @a standard_output and @a standard_error,
+ * if those parameters are non-NULL. Note that you must set the
+ * SPAWN_STDOUT_TO_DEV_NULL and SPAWN_STDERR_TO_DEV_NULL flags when
+ * passing NULL for @a standard_output and @a standard_error.
+ * If @a exit_status is non-NULL, the exit status of the child is stored
+ * there as it would be returned by waitpid(); standard UNIX macros such
+ * as WIFEXITED() and WEXITSTATUS() must be used to evaluate the exit status.
+ * Note that this function calls waitpid() even if @a exit_status is NULL, and
+ * does not accept the SPAWN_DO_NOT_REAP_CHILD flag.
+ * If an error occurs, no data is returned in @a standard_output,
+ * @a standard_error, or @a exit_status.
+ *
+ * This function calls spawn_async_with_pipes() internally; see that
+ * function for full details on the other parameters and details on
+ * how these functions work on Windows.
+ *
+ * @param working_directory Child's current working directory, or an empty string to inherit the parent's, in the GLib file name encoding.
+ * @param argv Child's argument vector.
+ * @param envp Child's environment.
+ * @param flags Flags from SpawnFlags
+ * @param child_setup Slot to run in the child just before exec().
+ * @param standard_output Return location for file descriptor to read child's stdout, or NULL.
+ * @param standard_error Return location for file descriptor to read child's stderr, or NULL.
+ * @param exit_status Return location for child exit status, as returned by waitpid(), or NULL
+ *
+ * @throws SpawnError Errors are reported even if they occur in the child (for example if the
+ * executable in argv[0] is not found). Typically
+ * the message field of returned errors should be displayed
+ * to users. If an error occurs, @a child_pid, @a standard_input, @a standard_output,
+ * and @a standard_error will not be filled with valid values.
+ */
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
void spawn_sync(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
const Glib::ArrayHandle<std::string>& envp,
@@ -183,7 +456,34 @@ void spawn_sync(const std::string& working_directory,
std::string* standard_output = 0,
std::string* standard_error = 0,
int* exit_status = 0);
+#else
+void spawn_sync(const std::string& working_directory,
+ const Glib::ArrayHandle<std::string>& argv,
+ const Glib::ArrayHandle<std::string>& envp,
+ SpawnFlags flags,
+ const sigc::slot<void>& child_setup,
+ std::string* standard_output,
+ std::string* standard_error,
+ int* exit_status, std::auto_ptr<Glib::Error>& error);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+/** Like the main spawn_sync() method, but inheriting the parent's environment.
+ *
+ * @param working_directory Child's current working directory, or an empty string to inherit the parent's, in the GLib file name encoding.
+ * @param argv Child's argument vector.
+ * @param flags Flags from SpawnFlags
+ * @param child_setup Slot to run in the child just before exec().
+ * @param standard_output Return location for file descriptor to read child's stdout, or NULL.
+ * @param standard_error Return location for file descriptor to read child's stderr, or NULL.
+ * @param exit_status Return location for child exit status, as returned by waitpid(), or NULL
+ *
+ * @throws SpawnError Errors are reported even if they occur in the child (for example if the
+ * executable in argv[0] is not found). Typically
+ * the message field of returned errors should be displayed
+ * to users. If an error occurs, @a child_pid, @a standard_input, @a standard_output,
+ * and @a standard_error will not be filled with valid values.
+ */
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
void spawn_sync(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
SpawnFlags flags = SpawnFlags(0),
@@ -191,14 +491,91 @@ void spawn_sync(const std::string& working_directory,
std::string* standard_output = 0,
std::string* standard_error = 0,
int* exit_status = 0);
+#else
+void spawn_sync(const std::string& working_directory,
+ const Glib::ArrayHandle<std::string>& argv,
+ SpawnFlags flags,
+ const sigc::slot<void>& child_setup,
+ std::string* standard_output,
+ std::string* standard_error ,
+ int* exit_status, std::auto_ptr<Glib::Error>& error);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+/** A simple version of spawn_async() that parses a command line with
+ * shell_parse_argv() and passes it to spawn_async(). It runs a
+ * command line in the background. Unlike spawn_async(), the
+ * SPAWN_SEARCH_PATH flag is enabled, other flags are not. Note
+ * that SPAWN_SEARCH_PATH can have security implications, so
+ * consider using spawn_async() directly if appropriate.
+ *
+ * The same concerns on Windows apply as for spawn_command_line_sync().
+ *
+ * @param command_line A command line.
+ *
+ * @throws SpawnError Errors are reported even if they occur in the child (for example if the
+ * executable in argv[0] is not found). Typically
+ * the message field of returned errors should be displayed
+ * to users.
+ * @throws ShellError If the command line could not be parsed.
+ */
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
void spawn_command_line_async(const std::string& command_line);
+#else
+void spawn_command_line_async(const std::string& command_line, std::auto_ptr<Glib::Error>& error);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+/** A simple version of spawn_sync() with little-used parameters
+ * removed, taking a command line instead of an argument vector. See
+ * spawn_sync() for full details. @a command_line will be parsed by
+ * shell_parse_argv(). Unlike spawn_sync(), the SPAWN_SEARCH_PATH flag
+ * is enabled. Note that SPAWN_SEARCH_PATH can have security
+ * implications, so consider using spawn_sync() directly if
+ * appropriate.
+ *
+ * If @a exit_status is non-NULL, the exit status of the child is stored there as
+ * it would be returned by waitpid(); standard UNIX macros such as WIFEXITED()
+ * and WEXITSTATUS() must be used to evaluate the exit status.
+ *
+ * On Windows, please note the implications of shell_parse_argv()
+ * parsing @a command_line. Parsing is done according to Unix shell rules, not
+ * Windows command interpreter rules.
+ * Space is a separator, and backslashes are
+ * special. Thus you cannot simply pass a @a command_line containing
+ * canonical Windows paths, like "c:\\program files\\app\\app.exe", as
+ * the backslashes will be eaten, and the space will act as a
+ * separator. You need to enclose such paths with single quotes, like
+ * "'c:\\program files\\app\\app.exe' 'e:\\folder\\argument.txt'".
+ *
+ * @param command_line A command line.
+ * @param standard_output Return location for child output.
+ * @param standard_error Return location for child errors.
+ * @param exit_status Return location for child exit status, as returned by waitpid().
+ *
+ * @throws SpawnError Errors are reported even if they occur in the child (for example if the
+ * executable in argv[0] is not found). Typically
+ * the message field of returned errors should be displayed
+ * to users.
+ * @throws ShellError If the command line could not be parsed.
+ */
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
void spawn_command_line_sync(const std::string& command_line,
std::string* standard_output = 0,
std::string* standard_error = 0,
int* exit_status = 0);
+#else
+void spawn_command_line_sync(const std::string& command_line,
+ std::string* standard_output,
+ std::string* standard_error,
+ int* exit_status, std::auto_ptr<Glib::Error>& error;
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+/** On some platforms, notably WIN32, the Pid type represents a resource
+ * which must be closed to prevent resource leaking. close_pid()
+ * is provided for this purpose. It should be used on all platforms, even
+ * though it doesn't do anything under UNIX.
+ *
+ * @param pid The process identifier to close.
+ */
void spawn_close_pid(Pid pid);
/** @} group Spawn */
diff --git a/libs/glibmm2/glib/glibmm/streamiochannel.cc b/libs/glibmm2/glib/glibmm/streamiochannel.cc
index db7f45aabc..6a9e0b3258 100644
--- a/libs/glibmm2/glib/glibmm/streamiochannel.cc
+++ b/libs/glibmm2/glib/glibmm/streamiochannel.cc
@@ -1,18 +1,18 @@
-/* $Id: streamiochannel.cc 291 2006-05-12 08:08:45Z murrayc $ */
+/* $Id: streamiochannel.cc 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/streamiochannel.h b/libs/glibmm2/glib/glibmm/streamiochannel.h
index 65c6972598..39f0d340c7 100644
--- a/libs/glibmm2/glib/glibmm/streamiochannel.h
+++ b/libs/glibmm2/glib/glibmm/streamiochannel.h
@@ -1,19 +1,19 @@
// -*- c++ -*-
-/* $Id: streamiochannel.h 17 2003-01-22 12:09:02Z murrayc $ */
+/* $Id: streamiochannel.h 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/stringutils.cc b/libs/glibmm2/glib/glibmm/stringutils.cc
index 6cf0137b54..7dc2bea22c 100644
--- a/libs/glibmm2/glib/glibmm/stringutils.cc
+++ b/libs/glibmm2/glib/glibmm/stringutils.cc
@@ -1,19 +1,19 @@
// -*- c++ -*-
-/* $Id: stringutils.cc 291 2006-05-12 08:08:45Z murrayc $ */
+/* $Id: stringutils.cc 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/stringutils.h b/libs/glibmm2/glib/glibmm/stringutils.h
index aa32e755e3..16de3c768e 100644
--- a/libs/glibmm2/glib/glibmm/stringutils.h
+++ b/libs/glibmm2/glib/glibmm/stringutils.h
@@ -2,21 +2,21 @@
#ifndef _GLIBMM_STRINGUTILS_H
#define _GLIBMM_STRINGUTILS_H
-/* $Id: stringutils.h 116 2004-06-07 17:26:39Z daniel $ */
+/* $Id: stringutils.h 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/thread.cc b/libs/glibmm2/glib/glibmm/thread.cc
index 9a67a0b4ee..963204aa46 100644
--- a/libs/glibmm2/glib/glibmm/thread.cc
+++ b/libs/glibmm2/glib/glibmm/thread.cc
@@ -10,16 +10,16 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/thread.h b/libs/glibmm2/glib/glibmm/thread.h
index 456d16850d..9ba348939c 100644
--- a/libs/glibmm2/glib/glibmm/thread.h
+++ b/libs/glibmm2/glib/glibmm/thread.h
@@ -9,22 +9,22 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <glib/gthread.h>
+#include <glib.h>
#include <cstddef>
#include <sigc++/sigc++.h>
@@ -215,6 +215,7 @@ class Thread
public:
class Exit;
+ //See http://bugzilla.gnome.org/show_bug.cgi?id=512348 about the sigc::trackable issue.
/** Creates a new thread with the priority <tt>THREAD_PRIORITY_NORMAL</tt>.
* If @a joinable is @c true, you can wait for this thread's termination by
* calling join(). Otherwise the thread will just disappear, when ready.
@@ -223,6 +224,10 @@ public:
* pass additional arguments using sigc::bind(). If the thread was created
* successfully, it is returned, otherwise a ThreadError exception is thrown.
*
+ * Because sigc::trackable is not thread safe, if the slot represents a
+ * non-static class method (that is, it is created by sigc::mem_fun()), the
+ * class concerned should not derive from sigc::trackable.
+ *
* @param slot A slot to execute in the new thread.
* @param joinable Should this thread be joinable?
* @return The new Thread* on success.
@@ -230,6 +235,7 @@ public:
*/
static Thread* create(const sigc::slot<void>& slot, bool joinable);
+ //See http://bugzilla.gnome.org/show_bug.cgi?id=512348 about the sigc::trackable issue.
/** Creates a new thread with the priority @a priority. The stack gets the
* size @a stack_size or the default value for the current platform, if
* @a stack_size is <tt>0</tt>.
@@ -245,6 +251,10 @@ public:
* pass additional arguments using sigc::bind(). If the thread was created
* successfully, it is returned.
*
+ * Because sigc::trackable is not thread safe, if the slot represents a
+ * non-static class method (that is, it is created by sigc::mem_fun()), the
+ * class concerned should not derive from sigc::trackable.
+ *
* @note It is not guaranteed, that threads with different priorities really
* behave accordingly. On some systems (e.g. Linux) only root can increase
* priorities. On other systems (e.g. Solaris) there doesn't seem to be
diff --git a/libs/glibmm2/glib/glibmm/threadpool.cc b/libs/glibmm2/glib/glibmm/threadpool.cc
index f6ccfe055b..a4d071ab37 100644
--- a/libs/glibmm2/glib/glibmm/threadpool.cc
+++ b/libs/glibmm2/glib/glibmm/threadpool.cc
@@ -1,19 +1,19 @@
// -*- c++ -*-
-/* $Id: threadpool.cc 291 2006-05-12 08:08:45Z murrayc $ */
+/* $Id: threadpool.cc 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/threadpool.h b/libs/glibmm2/glib/glibmm/threadpool.h
index 10a1209566..fd58c6ab85 100644
--- a/libs/glibmm2/glib/glibmm/threadpool.h
+++ b/libs/glibmm2/glib/glibmm/threadpool.h
@@ -2,21 +2,21 @@
#ifndef _GLIBMM_THREADPOOL_H
#define _GLIBMM_THREADPOOL_H
-/* $Id: threadpool.h 72 2004-02-10 14:26:07Z murrayc $ */
+/* $Id: threadpool.h 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/timer.cc b/libs/glibmm2/glib/glibmm/timer.cc
index 754431bf85..00282e6636 100644
--- a/libs/glibmm2/glib/glibmm/timer.cc
+++ b/libs/glibmm2/glib/glibmm/timer.cc
@@ -1,26 +1,26 @@
// -*- c++ -*-
-/* $Id: timer.cc 2 2003-01-07 16:59:16Z murrayc $ */
+/* $Id: timer.cc 779 2009-01-19 17:58:50Z murrayc $ */
/* timer.cc
*
* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <glib/gtimer.h>
+#include <glib.h>
#include <glibmm/timer.h>
diff --git a/libs/glibmm2/glib/glibmm/timer.h b/libs/glibmm2/glib/glibmm/timer.h
index b80f9ef8b7..00a5961ec2 100644
--- a/libs/glibmm2/glib/glibmm/timer.h
+++ b/libs/glibmm2/glib/glibmm/timer.h
@@ -2,23 +2,23 @@
#ifndef _GLIBMM_TIMER_H
#define _GLIBMM_TIMER_H
-/* $Id: timer.h 2 2003-01-07 16:59:16Z murrayc $ */
+/* $Id: timer.h 779 2009-01-19 17:58:50Z murrayc $ */
/* timer.h
*
* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/timeval.cc b/libs/glibmm2/glib/glibmm/timeval.cc
index 8010ef720d..e0c1f5f92a 100644
--- a/libs/glibmm2/glib/glibmm/timeval.cc
+++ b/libs/glibmm2/glib/glibmm/timeval.cc
@@ -1,29 +1,25 @@
// -*- c++ -*-
-/* $Id: timeval.cc 2 2003-01-07 16:59:16Z murrayc $ */
+/* $Id: timeval.cc 779 2009-01-19 17:58:50Z murrayc $ */
/* timeval.cc
*
* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <glib/gmain.h>
-#include <glib.h>
-#include <glib/gtimer.h>
-
#include <glibmm/timeval.h>
diff --git a/libs/glibmm2/glib/glibmm/timeval.h b/libs/glibmm2/glib/glibmm/timeval.h
index 1988a01ad4..42bfe025af 100644
--- a/libs/glibmm2/glib/glibmm/timeval.h
+++ b/libs/glibmm2/glib/glibmm/timeval.h
@@ -2,29 +2,28 @@
#ifndef _GLIBMM_TIMEVAL_H
#define _GLIBMM_TIMEVAL_H
-/* $Id: timeval.h 2 2003-01-07 16:59:16Z murrayc $ */
+/* $Id: timeval.h 779 2009-01-19 17:58:50Z murrayc $ */
/* timeval.h
*
* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <glib/gtypes.h>
-#include <glib/gtimer.h>
+#include <glib.h>
namespace Glib
{
diff --git a/libs/glibmm2/glib/glibmm/unicode.cc b/libs/glibmm2/glib/glibmm/unicode.cc
index a1e506049b..82134e3bbb 100644
--- a/libs/glibmm2/glib/glibmm/unicode.cc
+++ b/libs/glibmm2/glib/glibmm/unicode.cc
@@ -10,16 +10,16 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/unicode.h b/libs/glibmm2/glib/glibmm/unicode.h
index f43559e11b..008c97f6b5 100644
--- a/libs/glibmm2/glib/glibmm/unicode.h
+++ b/libs/glibmm2/glib/glibmm/unicode.h
@@ -9,24 +9,22 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <glib/gmacros.h>
-#include <glib/gstrfuncs.h>
-#include <glib/gunicode.h>
+#include <glib.h>
// Not used, but we want to get rid of possible <ctype.h> macros.
#include <cctype>
diff --git a/libs/glibmm2/glib/glibmm/uriutils.cc b/libs/glibmm2/glib/glibmm/uriutils.cc
new file mode 100644
index 0000000000..b0429edca9
--- /dev/null
+++ b/libs/glibmm2/glib/glibmm/uriutils.cc
@@ -0,0 +1,57 @@
+// Generated by gtkmmproc -- DO NOT MODIFY!
+
+
+#include <glibmm/uriutils.h>
+#include <glibmm/private/uriutils_p.h>
+
+// -*- c++ -*-
+/* $Id: fileutils.ccg,v 1.1 2003/01/07 16:58:25 murrayc Exp $ */
+
+/* Copyright (C) 2002 The gtkmm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <glib.h>
+#include <glibmm/utility.h>
+
+namespace Glib
+{
+
+std::string uri_unescape_string(const std::string& escaped_string, const std::string& illegal_characters)
+{
+ gchar* cresult = g_uri_unescape_string(escaped_string.c_str(), illegal_characters.c_str());
+ return Glib::convert_return_gchar_ptr_to_stdstring(cresult);
+}
+
+std::string uri_parse_scheme(const std::string& uri)
+{
+ return Glib::convert_return_gchar_ptr_to_stdstring( g_uri_parse_scheme(uri.c_str()) );
+}
+
+std::string uri_escape_string(const std::string& unescaped, const std::string& reserved_chars_allowed, bool allow_utf8)
+{
+ gchar* cresult = g_uri_escape_string(unescaped.c_str(), reserved_chars_allowed.c_str(), allow_utf8);
+ return Glib::convert_return_gchar_ptr_to_stdstring(cresult);
+}
+
+} // namespace Glib
+
+
+namespace
+{
+} // anonymous namespace
+
+
diff --git a/libs/glibmm2/glib/glibmm/uriutils.h b/libs/glibmm2/glib/glibmm/uriutils.h
new file mode 100644
index 0000000000..79f13ed2c6
--- /dev/null
+++ b/libs/glibmm2/glib/glibmm/uriutils.h
@@ -0,0 +1,101 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GLIBMM_URIUTILS_H
+#define _GLIBMM_URIUTILS_H
+
+
+/* $Id: fileutils.hg,v 1.3 2004/01/22 18:38:12 murrayc Exp $ */
+
+/* Copyright (C) 2002 The gtkmm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+
+#include <string>
+#include <glibmmconfig.h>
+
+GLIBMM_USING_STD(string)
+
+
+namespace Glib
+{
+
+/** @defgroup UriUtils URI Utilities
+ * Various uri-related functions.
+ */
+
+//Note that the illegal_characters and reserved_chars_allowed parameters are bytes and may not be UTF-8
+//so they are not Glib::ustring. See http://bugzilla.gnome.org/show_bug.cgi?id=508773
+
+/** Unescapes a whole escaped string.
+ * If any of the characters in @a illegal_characters or the character zero appears
+ * as an escaped character in @a escaped_string then that is an error and an empty string
+ * will be returned. This is useful it you want to avoid, for instance, having a
+ * slash being expanded in an escaped path element, which might confuse pathname
+ * handling.
+ *
+ * @param escaped_string An escaped string to be unescaped.
+ * @param illegal_characters An optional string of illegal characters not to be allowed.
+ * @result An unescaped version of @a escaped_string.
+ *
+ * @ingroup UriUtils
+ * @newin2p16
+ */
+std::string uri_unescape_string(const std::string& escaped_string, const std::string& illegal_characters = std::string());
+
+//TODO: Use iterator?
+//char * g_uri_unescape_segment (const char *escaped_string,
+// const char *escaped_string_end,
+// const char *illegal_characters);
+
+/** Gets the scheme portion of a URI. RFC 3986 decodes the scheme as:
+ * @code
+ * URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
+ * @endcode
+ * Common schemes include "file", "http", "svn+ssh", etc.
+ *
+ * @param uri
+ * @result The "Scheme" component of the URI, or an empty string on error.
+ *
+ * @ingroup UriUtils
+ * @newin2p16
+ */
+std::string uri_parse_scheme(const std::string& uri);
+
+/** Escapes a string for use in a URI.
+ *
+ * Normally all characters that are not "unreserved" (i.e. ASCII alphanumerical
+ * characters plus dash, dot, underscore and tilde) are escaped.
+ * But if you specify characters in @a reserved_chars_allowed they are not
+ * escaped. This is useful for the "reserved" characters in the URI
+ * specification, since those are allowed unescaped in some portions of
+ * a URI.
+ *
+ * @param unescaped The unescaped input string.
+ * @param reserved_chars_allowed A string of reserved characters that are allowed to be used.
+ * @param allow_utf8 true if the result can include UTF-8 characters.
+ * @result An escaped version of @a unescaped.
+ *
+ * @ingroup UriUtils
+ * @newin2p16
+ */
+std::string uri_escape_string(const std::string& unescaped, const std::string& reserved_chars_allowed = std::string(), bool allow_utf8 = true);
+
+} // namespace Glib
+
+
+#endif /* _GLIBMM_URIUTILS_H */
+
diff --git a/libs/glibmm2/glib/glibmm/ustring.cc b/libs/glibmm2/glib/glibmm/ustring.cc
index f7bf3bcf0a..9ec11dfc2e 100644
--- a/libs/glibmm2/glib/glibmm/ustring.cc
+++ b/libs/glibmm2/glib/glibmm/ustring.cc
@@ -1,19 +1,19 @@
// -*- c++ -*-
-/* $Id: ustring.cc 369 2007-01-20 10:19:33Z daniel $ */
+/* $Id: ustring.cc 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -25,11 +25,18 @@
#include <algorithm>
#include <iostream>
+#include <cstring>
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
#include <glibmmconfig.h>
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+# include <stdexcept>
+#endif
GLIBMM_USING_STD(find)
-
namespace
{
@@ -678,7 +685,10 @@ ustring& ustring::erase()
ustring::iterator ustring::erase(ustring::iterator p)
{
- return iterator(string_.erase(p.base()));
+ ustring::iterator iter_end = p;
+ ++iter_end;
+
+ return iterator(string_.erase(p.base(), iter_end.base()));
}
ustring::iterator ustring::erase(ustring::iterator pbegin, ustring::iterator pend)
@@ -1176,6 +1186,58 @@ std::string ustring::casefold_collate_key() const
return std::string(ScopedPtr<char>(key_buf).get());
}
+/**** Glib::ustring -- Message formatting **********************************/
+
+// static
+ustring ustring::compose_argv(const Glib::ustring& fmt, int argc, const ustring* const* argv)
+{
+ std::string::size_type result_size = fmt.raw().size();
+
+ // Guesstimate the final string size.
+ for (int i = 0; i < argc; ++i)
+ result_size += argv[i]->raw().size();
+
+ std::string result;
+ result.reserve(result_size);
+
+ const char* const pfmt = fmt.raw().c_str();
+ const char* start = pfmt;
+
+ while (const char* const stop = std::strchr(start, '%'))
+ {
+ if (stop[1] == '%')
+ {
+ result.append(start, stop - start + 1);
+ start = stop + 2;
+ }
+ else
+ {
+ const int index = Ascii::digit_value(stop[1]) - 1;
+
+ if (index >= 0 && index < argc)
+ {
+ result.append(start, stop - start);
+ result += argv[index]->raw();
+ start = stop + 2;
+ }
+ else
+ {
+ const char* const next = (stop[1] != '\0') ? g_utf8_next_char(stop + 1) : (stop + 1);
+
+ // Copy invalid substitutions literally to the output.
+ result.append(start, next - start);
+
+ g_warning("invalid substitution \"%s\" in fmt string \"%s\"",
+ result.c_str() + result.size() - (next - stop), pfmt);
+ start = next;
+ }
+ }
+ }
+
+ result.append(start, pfmt + fmt.raw().size() - start);
+
+ return result;
+}
/**** Glib::ustring::SequenceToString **************************************/
@@ -1191,34 +1253,201 @@ ustring::SequenceToString<Glib::ustring::const_iterator,gunichar>
std::string(pbegin.base(), pend.base())
{}
+/**** Glib::ustring::FormatStream ******************************************/
+
+ustring::FormatStream::FormatStream()
+:
+ stream_ ()
+{}
+
+ustring::FormatStream::~FormatStream()
+{}
+
+ustring ustring::FormatStream::to_string() const
+{
+ GError* error = 0;
+
+#ifdef GLIBMM_HAVE_WIDE_STREAM
+ const std::wstring str = stream_.str();
+
+# if defined(__STDC_ISO_10646__) && SIZEOF_WCHAR_T == 4
+ // Avoid going through iconv if wchar_t always contains UCS-4.
+ glong n_bytes = 0;
+ const ScopedPtr<char> buf (g_ucs4_to_utf8(reinterpret_cast<const gunichar*>(str.data()),
+ str.size(), 0, &n_bytes, &error));
+# elif defined(G_OS_WIN32) && SIZEOF_WCHAR_T == 2
+ // Avoid going through iconv if wchar_t always contains UTF-16.
+ glong n_bytes = 0;
+ const ScopedPtr<char> buf (g_utf16_to_utf8(reinterpret_cast<const gunichar2*>(str.data()),
+ str.size(), 0, &n_bytes, &error));
+# else
+ gsize n_bytes = 0;
+ const ScopedPtr<char> buf (g_convert(reinterpret_cast<const char*>(str.data()),
+ str.size() * sizeof(std::wstring::value_type),
+ "UTF-8", "WCHAR_T", 0, &n_bytes, &error));
+# endif /* !(__STDC_ISO_10646__ || G_OS_WIN32) */
+
+#else /* !GLIBMM_HAVE_WIDE_STREAM */
+ const std::string str = stream_.str();
+
+ gsize n_bytes = 0;
+ const ScopedPtr<char> buf (g_locale_to_utf8(str.data(), str.size(), 0, &n_bytes, &error));
+#endif /* !GLIBMM_HAVE_WIDE_STREAM */
+
+ if (error)
+ {
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+ Glib::Error::throw_exception(error);
+#else
+ g_warning("%s: %s", G_STRFUNC, error->message);
+ g_error_free(error);
+ return ustring();
+#endif
+ }
+
+ return ustring(buf.get(), buf.get() + n_bytes);
+}
/**** Glib::ustring -- stream I/O operators ********************************/
std::istream& operator>>(std::istream& is, Glib::ustring& utf8_string)
{
- std::string locale_string;
- is >> locale_string;
+ std::string str;
+ is >> str;
+
+ GError* error = 0;
+ gsize n_bytes = 0;
+ const ScopedPtr<char> buf (g_locale_to_utf8(str.data(), str.size(), 0, &n_bytes, &error));
+
+ if (error)
+ {
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+ Glib::Error::throw_exception(error);
+#else
+ g_warning("%s: %s", G_STRFUNC, error->message);
+ g_error_free(error);
+ return is;
+#endif
+ }
+
+ utf8_string.assign(buf.get(), buf.get() + n_bytes);
- #ifdef GLIBMM_EXCEPTIONS_ENABLED
- utf8_string = Glib::locale_to_utf8(locale_string);
- #else
- std::auto_ptr<Glib::Error> error; //TODO: Check this?
- utf8_string = Glib::locale_to_utf8(locale_string, error);
- #endif //GLIBMM_EXCEPTIONS_ENABLED
return is;
}
std::ostream& operator<<(std::ostream& os, const Glib::ustring& utf8_string)
{
- #ifdef GLIBMM_EXCEPTIONS_ENABLED
- os << Glib::locale_from_utf8(utf8_string);
- #else
- std::auto_ptr<Glib::Error> error; //TODO: Check this?
- os << Glib::locale_from_utf8(utf8_string, error);
- #endif //GLIBMM_EXCEPTIONS_ENABLED
+ GError* error = 0;
+ const ScopedPtr<char> buf (g_locale_from_utf8(utf8_string.raw().data(),
+ utf8_string.raw().size(), 0, 0, &error));
+ if (error)
+ {
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+ Glib::Error::throw_exception(error);
+#else
+ g_warning("%s: %s", G_STRFUNC, error->message);
+ g_error_free(error);
+ return os;
+#endif
+ }
+
+ // This won't work if the string contains NUL characters. Unfortunately,
+ // std::ostream::write() ignores format flags, so we cannot use that.
+ // The only option would be to create a temporary std::string. However,
+ // even then GCC's libstdc++-v3 prints only the characters up to the first
+ // NUL. Given this, there doesn't seem much of a point in allowing NUL in
+ // formatted output. The semantics would be unclear anyway: what's the
+ // screen width of a NUL?
+ os << buf.get();
return os;
}
-} // namespace Glib
+#ifdef GLIBMM_HAVE_WIDE_STREAM
+
+std::wistream& operator>>(std::wistream& is, ustring& utf8_string)
+{
+ GError* error = 0;
+
+ std::wstring wstr;
+ is >> wstr;
+
+#if defined(__STDC_ISO_10646__) && SIZEOF_WCHAR_T == 4
+ // Avoid going through iconv if wchar_t always contains UCS-4.
+ glong n_bytes = 0;
+ const ScopedPtr<char> buf (g_ucs4_to_utf8(reinterpret_cast<const gunichar*>(wstr.data()),
+ wstr.size(), 0, &n_bytes, &error));
+#elif defined(G_OS_WIN32) && SIZEOF_WCHAR_T == 2
+ // Avoid going through iconv if wchar_t always contains UTF-16.
+ glong n_bytes = 0;
+ const ScopedPtr<char> buf (g_utf16_to_utf8(reinterpret_cast<const gunichar2*>(wstr.data()),
+ wstr.size(), 0, &n_bytes, &error));
+#else
+ gsize n_bytes = 0;
+ const ScopedPtr<char> buf (g_convert(reinterpret_cast<const char*>(wstr.data()),
+ wstr.size() * sizeof(std::wstring::value_type),
+ "UTF-8", "WCHAR_T", 0, &n_bytes, &error));
+#endif /* !(__STDC_ISO_10646__ || G_OS_WIN32) */
+
+ if (error)
+ {
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+ Glib::Error::throw_exception(error);
+#else
+ g_warning("%s: %s", G_STRFUNC, error->message);
+ g_error_free(error);
+ return is;
+#endif
+ }
+ utf8_string.assign(buf.get(), buf.get() + n_bytes);
+
+ return is;
+}
+
+std::wostream& operator<<(std::wostream& os, const ustring& utf8_string)
+{
+ GError* error = 0;
+
+#if defined(__STDC_ISO_10646__) && SIZEOF_WCHAR_T == 4
+ // Avoid going through iconv if wchar_t always contains UCS-4.
+ const ScopedPtr<gunichar> buf (g_utf8_to_ucs4(utf8_string.raw().data(),
+ utf8_string.raw().size(), 0, 0, &error));
+#elif defined(G_OS_WIN32) && SIZEOF_WCHAR_T == 2
+ // Avoid going through iconv if wchar_t always contains UTF-16.
+ const ScopedPtr<gunichar2> buf (g_utf8_to_utf16(utf8_string.raw().data(),
+ utf8_string.raw().size(), 0, 0, &error));
+#else
+ // TODO: For some reason the conversion from UTF-8 to WCHAR_T doesn't work
+ // with g_convert(), while iconv on the command line handles it just fine.
+ // Maybe a bug in GLib?
+ const ScopedPtr<char> buf (g_convert(utf8_string.raw().data(), utf8_string.raw().size(),
+ "WCHAR_T", "UTF-8", 0, 0, &error));
+#endif /* !(__STDC_ISO_10646__ || G_OS_WIN32) */
+
+ if (error)
+ {
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+ Glib::Error::throw_exception(error);
+#else
+ g_warning("%s: %s", G_STRFUNC, error->message);
+ g_error_free(error);
+ return os;
+#endif
+ }
+
+ // This won't work if the string contains NUL characters. Unfortunately,
+ // std::wostream::write() ignores format flags, so we cannot use that.
+ // The only option would be to create a temporary std::wstring. However,
+ // even then GCC's libstdc++-v3 prints only the characters up to the first
+ // NUL. Given this, there doesn't seem much of a point in allowing NUL in
+ // formatted output. The semantics would be unclear anyway: what's the
+ // screen width of a NUL?
+ os << reinterpret_cast<wchar_t*>(buf.get());
+
+ return os;
+}
+
+#endif /* GLIBMM_HAVE_WIDE_STREAM */
+
+} // namespace Glib
diff --git a/libs/glibmm2/glib/glibmm/ustring.h b/libs/glibmm2/glib/glibmm/ustring.h
index 06c97c7633..005a185e24 100644
--- a/libs/glibmm2/glib/glibmm/ustring.h
+++ b/libs/glibmm2/glib/glibmm/ustring.h
@@ -2,31 +2,31 @@
#ifndef _GLIBMM_USTRING_H
#define _GLIBMM_USTRING_H
-/* $Id: ustring.h 369 2007-01-20 10:19:33Z daniel $ */
+/* $Id: ustring.h 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <glib/gmacros.h>
-#include <glib/gunicode.h>
+#include <glib.h>
#include <glibmm/unicode.h>
#include <iosfwd>
#include <iterator>
+#include <sstream>
#include <string>
#include <glibmmconfig.h>
@@ -188,6 +188,18 @@ gunichar get_unichar_from_std_iterator(std::string::const_iterator pos) G_GNUC_P
* label->set_text(Glib::locale_to_utf8(output.str()));
* @endcode
*
+ * @par Formatted output and internationalization
+ * @par
+ * The methods ustring::compose() and ustring::format() provide a convenient
+ * and powerful alternative to string streams, as shown in the example below.
+ * Refer to the method documentation of compose() and format() for details.
+ * @code
+ * using Glib::ustring;
+ *
+ * ustring message = ustring::compose("%1 is lower than 0x%2.",
+ * 12, ustring::format(std::hex, 16));
+ * @endcode
+ *
* @par Implementation notes
* @par
* Glib::ustring does not inherit from std::string, because std::string was
@@ -593,6 +605,208 @@ public:
ustring casefold() const;
//! @}
+//! @name Message formatting.
+//! @{
+
+ /* Returns fmt as is, but checks for invalid references in the format string.
+ * @newin2p18
+ */
+ template <class T1>
+ static inline
+ ustring compose(const ustring& fmt);
+
+ /*! Substitute placeholders in a format string with the referenced arguments.
+ * The template string should be in <tt>qt-format</tt>, that is
+ * <tt>"%1"</tt>, <tt>"%2"</tt>, ..., <tt>"%9"</tt> are used as placeholders
+ * and <tt>"%%"</tt> denotes a literal <tt>"%"</tt>. Substitutions may be
+ * reordered.
+ * @par Example:
+ * @code
+ * using Glib::ustring;
+ * const int percentage = 50;
+ * const ustring text = ustring::compose("%1%% done", percentage);
+ * @endcode
+ * @param fmt A template string in <tt>qt-format</tt>.
+ * @param a1 The argument to substitute for <tt>"%1"</tt>.
+ * @return The substituted message string.
+ * @throw Glib::ConvertError
+ *
+ * @newin2p16
+ */
+ template <class T1>
+ static inline
+ ustring compose(const ustring& fmt, const T1& a1);
+
+ /* See the documentation for compose(const ustring& fmt, const T1& a1).
+ * @newin2p16
+ */
+ template <class T1, class T2>
+ static inline
+ ustring compose(const ustring& fmt, const T1& a1, const T2& a2);
+
+ /* See the documentation for compose(const ustring& fmt, const T1& a1).
+ * @newin2p16
+ */
+ template <class T1, class T2, class T3>
+ static inline
+ ustring compose(const ustring& fmt,
+ const T1& a1, const T2& a2, const T3& a3);
+
+ /* See the documentation for compose(const ustring& fmt, const T1& a1).
+ * @newin2p16
+ */
+ template <class T1, class T2, class T3, class T4>
+ static inline
+ ustring compose(const ustring& fmt,
+ const T1& a1, const T2& a2, const T3& a3,
+ const T4& a4);
+
+ /* See the documentation for compose(const ustring& fmt, const T1& a1).
+ * @newin2p16
+ */
+ template <class T1, class T2, class T3, class T4, class T5>
+ static inline
+ ustring compose(const ustring& fmt,
+ const T1& a1, const T2& a2, const T3& a3,
+ const T4& a4, const T5& a5);
+
+ /* See the documentation for compose(const ustring& fmt, const T1& a1).
+ * @newin2p16
+ */
+ template <class T1, class T2, class T3, class T4, class T5, class T6>
+ static inline
+ ustring compose(const ustring& fmt,
+ const T1& a1, const T2& a2, const T3& a3,
+ const T4& a4, const T5& a5, const T6& a6);
+
+ /* See the documentation for compose(const ustring& fmt, const T1& a1).
+ * @newin2p16
+ */
+ template <class T1, class T2, class T3, class T4, class T5, class T6, class T7>
+ static inline
+ ustring compose(const ustring& fmt,
+ const T1& a1, const T2& a2, const T3& a3,
+ const T4& a4, const T5& a5, const T6& a6,
+ const T7& a7);
+
+ /* See the documentation for compose(const ustring& fmt, const T1& a1).
+ * @newin2p16
+ */
+ template <class T1, class T2, class T3, class T4,
+ class T5, class T6, class T7, class T8>
+ static inline
+ ustring compose(const ustring& fmt,
+ const T1& a1, const T2& a2, const T3& a3,
+ const T4& a4, const T5& a5, const T6& a6,
+ const T7& a7, const T8& a8);
+
+ /* See the documentation for compose(const ustring& fmt, const T1& a1).
+ * @newin2p16
+ */
+ template <class T1, class T2, class T3, class T4, class T5,
+ class T6, class T7, class T8, class T9>
+ static inline
+ ustring compose(const ustring& fmt,
+ const T1& a1, const T2& a2, const T3& a3,
+ const T4& a4, const T5& a5, const T6& a6,
+ const T7& a7, const T8& a8, const T9& a9);
+
+ /*! Format the argument to its string representation.
+ * Applies the arguments in order to an std::wostringstream and returns the
+ * resulting string. I/O manipulators may also be used as arguments. This
+ * greatly simplifies the common task of converting a number to a string, as
+ * demonstrated by the example below. The format() methods can also be used
+ * in conjunction with compose() to facilitate localization of user-visible
+ * messages.
+ * @code
+ * using Glib::ustring;
+ * double value = 22.0 / 7.0;
+ * ustring text = ustring::format(std::fixed, std::setprecision(2), value);
+ * @endcode
+ * @note The use of a wide character stream in the implementation of format()
+ * is almost completely transparent. However, one of the instances where the
+ * use of wide streams becomes visible is when the std::setfill() stream
+ * manipulator is used. In order for std::setfill() to work the argument
+ * must be of type <tt>wchar_t</tt>. This can be achieved by using the
+ * <tt>L</tt> prefix with a character literal, as shown in the example.
+ * @code
+ * using Glib::ustring;
+ * // Insert leading zeroes to fill in at least six digits
+ * ustring text = ustring::format(std::setfill(L'0'), std::setw(6), 123);
+ * @endcode
+ *
+ * @param a1 A streamable value or an I/O manipulator.
+ * @return The string representation of the argument stream.
+ * @throw Glib::ConvertError
+ *
+ * @newin2p16
+ */
+ template <class T1>
+ static inline
+ ustring format(const T1& a1);
+
+ /* See the documentation for format(const T1& a1).
+ *
+ * @newin2p16
+ */
+ template <class T1, class T2>
+ static inline
+ ustring format(const T1& a1, const T2& a2);
+
+ /* See the documentation for format(const T1& a1).
+ *
+ * @newin2p16
+ */
+ template <class T1, class T2, class T3>
+ static inline
+ ustring format(const T1& a1, const T2& a2, const T3& a3);
+
+ /* See the documentation for format(const T1& a1).
+ *
+ * @newin2p16
+ */
+ template <class T1, class T2, class T3, class T4>
+ static inline
+ ustring format(const T1& a1, const T2& a2, const T3& a3, const T4& a4);
+
+ /* See the documentation for format(const T1& a1).
+ *
+ * @newin2p16
+ */
+ template <class T1, class T2, class T3, class T4, class T5>
+ static inline
+ ustring format(const T1& a1, const T2& a2, const T3& a3,
+ const T4& a4, const T5& a5);
+
+ /* See the documentation for format(const T1& a1).
+ *
+ * @newin2p16
+ */
+ template <class T1, class T2, class T3, class T4, class T5, class T6>
+ static inline
+ ustring format(const T1& a1, const T2& a2, const T3& a3,
+ const T4& a4, const T5& a5, const T6& a6);
+
+ /* See the documentation for format(const T1& a1).
+ *
+ * @newin2p16
+ */
+ template <class T1, class T2, class T3, class T4,
+ class T5, class T6, class T7>
+ static inline
+ ustring format(const T1& a1, const T2& a2, const T3& a3, const T4& a4,
+ const T5& a5, const T6& a6, const T7& a7);
+
+ /* See the documentation for format(const T1& a1).
+ *
+ * @newin2p16
+ */
+ template <class T1, class T2, class T3, class T4,
+ class T5, class T6, class T7, class T8>
+ static inline
+ ustring format(const T1& a1, const T2& a2, const T3& a3, const T4& a4,
+ const T5& a5, const T6& a6, const T7& a7, const T8& a8);
+//! @}
private:
@@ -607,20 +821,14 @@ private:
//The Tru64 compiler needs these partial specializations to be declared here,
//as well as defined later. That's probably correct. murrayc.
- template <class In>
- struct SequenceToString<In, char>;
+ template <class In> struct SequenceToString<In, char>;
+ template <class In> struct SequenceToString<In, gunichar>;
- template <class In>
- struct SequenceToString<In, gunichar>;
-
- /*
- template <>
- struct ustring::SequenceToString<Glib::ustring::iterator, gunichar>;
+ template <class T> class Stringify;
+ class FormatStream;
+
+ static ustring compose_argv(const ustring& fmt, int argc, const ustring* const* argv);
- template <>
- struct ustring::SequenceToString<Glib::ustring::const_iterator, gunichar>;
- */
-
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
std::string string_;
@@ -657,6 +865,29 @@ struct ustring::SequenceToString<Glib::ustring::const_iterator, gunichar> : publ
SequenceToString(Glib::ustring::const_iterator pbegin, Glib::ustring::const_iterator pend);
};
+class ustring::FormatStream
+{
+private:
+#ifdef GLIBMM_HAVE_WIDE_STREAM
+ typedef std::wostringstream StreamType;
+#else
+ typedef std::ostringstream StreamType;
+#endif
+ StreamType stream_;
+
+ // noncopyable
+ FormatStream(const ustring::FormatStream&);
+ FormatStream& operator=(const ustring::FormatStream&);
+
+public:
+ FormatStream();
+ ~FormatStream();
+
+ template <class T> inline void stream(const T& value);
+ inline void stream(const char* value);
+ ustring to_string() const;
+};
+
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
@@ -672,6 +903,21 @@ std::istream& operator>>(std::istream& is, Glib::ustring& utf8_string);
*/
std::ostream& operator<<(std::ostream& os, const Glib::ustring& utf8_string);
+#ifdef GLIBMM_HAVE_WIDE_STREAM
+
+/** Wide stream input operator.
+ * @relates Glib::ustring
+ * @throw Glib::ConvertError
+ */
+std::wistream& operator>>(std::wistream& is, ustring& utf8_string);
+
+/** Wide stream output operator.
+ * @relates Glib::ustring
+ * @throw Glib::ConvertError
+ */
+std::wostream& operator<<(std::wostream& os, const ustring& utf8_string);
+
+#endif /* GLIBMM_HAVE_WIDE_STREAM */
/***************************************************************************/
/* Inline implementation */
@@ -809,6 +1055,19 @@ ustring::SequenceToString<In,gunichar>::SequenceToString(In pbegin, In pend)
}
}
+/**** Glib::ustring::FormatStream ******************************************/
+
+template <class T> inline
+void ustring::FormatStream::stream(const T& value)
+{
+ stream_ << value;
+}
+
+inline
+void ustring::FormatStream::stream(const char* value)
+{
+ stream_ << ustring(value);
+}
/**** Glib::ustring ********************************************************/
@@ -869,6 +1128,338 @@ const std::string& ustring::raw() const
return string_;
}
+template <class T1>
+inline // static
+ustring ustring::format(const T1& a1)
+{
+ ustring::FormatStream buf;
+ buf.stream(a1);
+ return buf.to_string();
+}
+
+template <class T1, class T2>
+inline // static
+ustring ustring::format(const T1& a1, const T2& a2)
+{
+ ustring::FormatStream buf;
+ buf.stream(a1);
+ buf.stream(a2);
+ return buf.to_string();
+}
+
+template <class T1, class T2, class T3>
+inline // static
+ustring ustring::format(const T1& a1, const T2& a2, const T3& a3)
+{
+ ustring::FormatStream buf;
+ buf.stream(a1);
+ buf.stream(a2);
+ buf.stream(a3);
+ return buf.to_string();
+}
+
+template <class T1, class T2, class T3, class T4>
+inline // static
+ustring ustring::format(const T1& a1, const T2& a2, const T3& a3, const T4& a4)
+{
+ ustring::FormatStream buf;
+ buf.stream(a1);
+ buf.stream(a2);
+ buf.stream(a3);
+ buf.stream(a4);
+ return buf.to_string();
+}
+
+template <class T1, class T2, class T3, class T4, class T5>
+inline // static
+ustring ustring::format(const T1& a1, const T2& a2, const T3& a3,
+ const T4& a4, const T5& a5)
+{
+ ustring::FormatStream buf;
+ buf.stream(a1);
+ buf.stream(a2);
+ buf.stream(a3);
+ buf.stream(a4);
+ buf.stream(a5);
+ return buf.to_string();
+}
+
+template <class T1, class T2, class T3, class T4, class T5, class T6>
+inline // static
+ustring ustring::format(const T1& a1, const T2& a2, const T3& a3,
+ const T4& a4, const T5& a5, const T6& a6)
+{
+ ustring::FormatStream buf;
+ buf.stream(a1);
+ buf.stream(a2);
+ buf.stream(a3);
+ buf.stream(a4);
+ buf.stream(a5);
+ buf.stream(a6);
+ return buf.to_string();
+}
+
+template <class T1, class T2, class T3, class T4,
+ class T5, class T6, class T7>
+inline // static
+ustring ustring::format(const T1& a1, const T2& a2, const T3& a3, const T4& a4,
+ const T5& a5, const T6& a6, const T7& a7)
+{
+ ustring::FormatStream buf;
+ buf.stream(a1);
+ buf.stream(a2);
+ buf.stream(a3);
+ buf.stream(a4);
+ buf.stream(a5);
+ buf.stream(a6);
+ buf.stream(a7);
+ return buf.to_string();
+}
+
+template <class T1, class T2, class T3, class T4,
+ class T5, class T6, class T7, class T8>
+inline // static
+ustring ustring::format(const T1& a1, const T2& a2, const T3& a3, const T4& a4,
+ const T5& a5, const T6& a6, const T7& a7, const T8& a8)
+{
+ ustring::FormatStream buf;
+ buf.stream(a1);
+ buf.stream(a2);
+ buf.stream(a3);
+ buf.stream(a4);
+ buf.stream(a5);
+ buf.stream(a6);
+ buf.stream(a7);
+ buf.stream(a8);
+ return buf.to_string();
+}
+
+/** An inner class used by ustring.
+ */
+template <class T>
+class ustring::Stringify
+{
+private:
+ ustring string_;
+
+ // noncopyable
+ Stringify(const ustring::Stringify<T>&);
+ Stringify<T>& operator=(const ustring::Stringify<T>&);
+
+public:
+ explicit inline Stringify(const T& arg) : string_ (ustring::format(arg)) {}
+
+ //TODO: Why is this here? See the template specialization:
+ explicit inline Stringify(const char* arg) : string_(arg) {}
+
+ inline const ustring* ptr() const { return &string_; }
+};
+
+/// A template specialization for Stringify<ustring>:
+template <>
+class ustring::Stringify<ustring>
+{
+private:
+ const ustring& string_;
+
+ // noncopyable
+ Stringify(const ustring::Stringify<ustring>&);
+ Stringify<ustring>& operator=(const ustring::Stringify<ustring>&);
+
+public:
+ explicit inline Stringify(const ustring& arg) : string_(arg) {}
+ inline const ustring* ptr() const { return &string_; }
+};
+
+/** A template specialization for Stringify<const char*>,
+ * because the regular template has ambiguous constructor overloads for char*.
+ */
+template <>
+class ustring::Stringify<const char*>
+{
+private:
+ const ustring string_;
+
+ // noncopyable
+ Stringify(const ustring::Stringify<const char*>&);
+ Stringify<ustring>& operator=(const ustring::Stringify<const char*>&);
+
+public:
+ explicit inline Stringify(const char* arg) : string_(arg) {}
+ inline const ustring* ptr() const { return &string_; }
+};
+
+/** A template specialization for Stringify<char[N]> (for string literals),
+ * because the regular template has ambiguous constructor overloads for char*.
+ */
+template <std::size_t N>
+class ustring::Stringify<char[N]>
+{
+private:
+ const ustring string_;
+
+ // noncopyable
+ Stringify(const ustring::Stringify<char[N]>&);
+ Stringify<ustring>& operator=(const ustring::Stringify<char[N]>&);
+
+public:
+ explicit inline Stringify(const char arg[N]) : string_(arg) {}
+ inline const ustring* ptr() const { return &string_; }
+};
+
+template <class T1>
+inline // static
+ustring ustring::compose(const ustring& fmt)
+{
+ return ustring::compose_argv(fmt, 0, 0);
+}
+
+template <class T1>
+inline // static
+ustring ustring::compose(const ustring& fmt, const T1& a1)
+{
+ const ustring::Stringify<T1> s1(a1);
+
+ const ustring *const argv[] = { s1.ptr() };
+ return ustring::compose_argv(fmt, G_N_ELEMENTS(argv), argv);
+}
+
+template <class T1, class T2>
+inline // static
+ustring ustring::compose(const ustring& fmt, const T1& a1, const T2& a2)
+{
+ const ustring::Stringify<T1> s1(a1);
+ const ustring::Stringify<T2> s2(a2);
+
+ const ustring *const argv[] = { s1.ptr(), s2.ptr() };
+ return ustring::compose_argv(fmt, G_N_ELEMENTS(argv), argv);
+}
+
+template <class T1, class T2, class T3>
+inline // static
+ustring ustring::compose(const ustring& fmt,
+ const T1& a1, const T2& a2, const T3& a3)
+{
+ const ustring::Stringify<T1> s1(a1);
+ const ustring::Stringify<T2> s2(a2);
+ const ustring::Stringify<T3> s3(a3);
+
+ const ustring *const argv[] = { s1.ptr(), s2.ptr(), s3.ptr() };
+ return ustring::compose_argv(fmt, G_N_ELEMENTS(argv), argv);
+}
+
+template <class T1, class T2, class T3, class T4>
+inline // static
+ustring ustring::compose(const ustring& fmt,
+ const T1& a1, const T2& a2, const T3& a3, const T4& a4)
+{
+ const ustring::Stringify<T1> s1(a1);
+ const ustring::Stringify<T2> s2(a2);
+ const ustring::Stringify<T3> s3(a3);
+ const ustring::Stringify<T4> s4(a4);
+
+ const ustring *const argv[] = { s1.ptr(), s2.ptr(), s3.ptr(), s4.ptr() };
+ return ustring::compose_argv(fmt, G_N_ELEMENTS(argv), argv);
+}
+
+template <class T1, class T2, class T3, class T4, class T5>
+inline // static
+ustring ustring::compose(const ustring& fmt,
+ const T1& a1, const T2& a2, const T3& a3,
+ const T4& a4, const T5& a5)
+{
+ const ustring::Stringify<T1> s1(a1);
+ const ustring::Stringify<T2> s2(a2);
+ const ustring::Stringify<T3> s3(a3);
+ const ustring::Stringify<T4> s4(a4);
+ const ustring::Stringify<T5> s5(a5);
+
+ const ustring *const argv[] = { s1.ptr(), s2.ptr(), s3.ptr(), s4.ptr(), s5.ptr() };
+ return ustring::compose_argv(fmt, G_N_ELEMENTS(argv), argv);
+}
+
+template <class T1, class T2, class T3, class T4, class T5, class T6>
+inline // static
+ustring ustring::compose(const ustring& fmt,
+ const T1& a1, const T2& a2, const T3& a3,
+ const T4& a4, const T5& a5, const T6& a6)
+{
+ const ustring::Stringify<T1> s1(a1);
+ const ustring::Stringify<T2> s2(a2);
+ const ustring::Stringify<T3> s3(a3);
+ const ustring::Stringify<T4> s4(a4);
+ const ustring::Stringify<T5> s5(a5);
+ const ustring::Stringify<T6> s6(a6);
+
+ const ustring *const argv[] = { s1.ptr(), s2.ptr(), s3.ptr(), s4.ptr(),
+ s5.ptr(), s6.ptr() };
+ return ustring::compose_argv(fmt, G_N_ELEMENTS(argv), argv);
+}
+
+template <class T1, class T2, class T3, class T4, class T5, class T6, class T7>
+inline // static
+ustring ustring::compose(const ustring& fmt,
+ const T1& a1, const T2& a2, const T3& a3,
+ const T4& a4, const T5& a5, const T6& a6, const T7& a7)
+{
+ const ustring::Stringify<T1> s1(a1);
+ const ustring::Stringify<T2> s2(a2);
+ const ustring::Stringify<T3> s3(a3);
+ const ustring::Stringify<T4> s4(a4);
+ const ustring::Stringify<T5> s5(a5);
+ const ustring::Stringify<T6> s6(a6);
+ const ustring::Stringify<T7> s7(a7);
+
+ const ustring *const argv[] = { s1.ptr(), s2.ptr(), s3.ptr(), s4.ptr(),
+ s5.ptr(), s6.ptr(), s7.ptr() };
+ return ustring::compose_argv(fmt, G_N_ELEMENTS(argv), argv);
+}
+
+template <class T1, class T2, class T3, class T4,
+ class T5, class T6, class T7, class T8>
+inline // static
+ustring ustring::compose(const ustring& fmt,
+ const T1& a1, const T2& a2, const T3& a3,
+ const T4& a4, const T5& a5, const T6& a6,
+ const T7& a7, const T8& a8)
+{
+ const ustring::Stringify<T1> s1(a1);
+ const ustring::Stringify<T2> s2(a2);
+ const ustring::Stringify<T3> s3(a3);
+ const ustring::Stringify<T4> s4(a4);
+ const ustring::Stringify<T5> s5(a5);
+ const ustring::Stringify<T6> s6(a6);
+ const ustring::Stringify<T7> s7(a7);
+ const ustring::Stringify<T8> s8(a8);
+
+ const ustring *const argv[] = { s1.ptr(), s2.ptr(), s3.ptr(), s4.ptr(),
+ s5.ptr(), s6.ptr(), s7.ptr(), s8.ptr() };
+ return ustring::compose_argv(fmt, G_N_ELEMENTS(argv), argv);
+}
+
+template <class T1, class T2, class T3, class T4, class T5,
+ class T6, class T7, class T8, class T9>
+inline // static
+ustring ustring::compose(const ustring& fmt,
+ const T1& a1, const T2& a2, const T3& a3,
+ const T4& a4, const T5& a5, const T6& a6,
+ const T7& a7, const T8& a8, const T9& a9)
+{
+ const ustring::Stringify<T1> s1(a1);
+ const ustring::Stringify<T2> s2(a2);
+ const ustring::Stringify<T3> s3(a3);
+ const ustring::Stringify<T4> s4(a4);
+ const ustring::Stringify<T5> s5(a5);
+ const ustring::Stringify<T6> s6(a6);
+ const ustring::Stringify<T7> s7(a7);
+ const ustring::Stringify<T8> s8(a8);
+ const ustring::Stringify<T9> s9(a9);
+
+ const ustring *const argv[] = { s1.ptr(), s2.ptr(), s3.ptr(), s4.ptr(),
+ s5.ptr(), s6.ptr(), s7.ptr(), s8.ptr(), s9.ptr() };
+ return ustring::compose_argv(fmt, G_N_ELEMENTS(argv), argv);
+}
+
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
@@ -964,31 +1555,59 @@ inline bool operator>=(const char* lhs, const ustring& rhs)
/** @relates Glib::ustring */
inline ustring operator+(const ustring& lhs, const ustring& rhs)
- { ustring temp (lhs); temp += rhs; return temp; }
+{
+ ustring temp(lhs);
+ temp += rhs;
+ return temp;
+}
/** @relates Glib::ustring */
inline ustring operator+(const ustring& lhs, const char* rhs)
- { ustring temp (lhs); temp += rhs; return temp; }
+{
+ ustring temp(lhs);
+ temp += rhs;
+ return temp;
+}
/** @relates Glib::ustring */
inline ustring operator+(const char* lhs, const ustring& rhs)
- { ustring temp (lhs); temp += rhs; return temp; }
+{
+ ustring temp(lhs);
+ temp += rhs;
+ return temp;
+}
/** @relates Glib::ustring */
inline ustring operator+(const ustring& lhs, gunichar rhs)
- { ustring temp (lhs); temp += rhs; return temp; }
+{
+ ustring temp(lhs);
+ temp += rhs;
+ return temp;
+}
/** @relates Glib::ustring */
inline ustring operator+(gunichar lhs, const ustring& rhs)
- { ustring temp (1, lhs); temp += rhs; return temp; }
+{
+ ustring temp(1, lhs);
+ temp += rhs;
+ return temp;
+}
/** @relates Glib::ustring */
inline ustring operator+(const ustring& lhs, char rhs)
- { ustring temp (lhs); temp += rhs; return temp; }
+{
+ ustring temp(lhs);
+ temp += rhs;
+ return temp;
+}
/** @relates Glib::ustring */
inline ustring operator+(char lhs, const ustring& rhs)
- { ustring temp (1, lhs); temp += rhs; return temp; }
+{
+ ustring temp(1, lhs);
+ temp += rhs;
+ return temp;
+}
} // namespace Glib
diff --git a/libs/glibmm2/glib/glibmm/utility.cc b/libs/glibmm2/glib/glibmm/utility.cc
index d23e46458c..d8913d9cf2 100644
--- a/libs/glibmm2/glib/glibmm/utility.cc
+++ b/libs/glibmm2/glib/glibmm/utility.cc
@@ -1,26 +1,25 @@
// -*- c++ -*-
-/* $Id: utility.cc 2 2003-01-07 16:59:16Z murrayc $ */
+/* $Id: utility.cc 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <glibmm/utility.h>
-#include <glib/gstrfuncs.h>
void Glib::append_canonical_typename(std::string& dest, const char* type_name)
diff --git a/libs/glibmm2/glib/glibmm/utility.h b/libs/glibmm2/glib/glibmm/utility.h
index fa5c0dcfc1..a207a87bf2 100644
--- a/libs/glibmm2/glib/glibmm/utility.h
+++ b/libs/glibmm2/glib/glibmm/utility.h
@@ -1,27 +1,26 @@
// -*- c++ -*-
#ifndef _GLIBMM_UTILITY_H
#define _GLIBMM_UTILITY_H
-/* $Id: utility.h 386 2007-03-23 17:31:16Z murrayc $ */
+/* $Id: utility.h 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <glib/gmacros.h>
-#include <glib/gmem.h>
+#include <glib.h>
#include <glibmm/ustring.h>
diff --git a/libs/glibmm2/glib/glibmm/value.cc b/libs/glibmm2/glib/glibmm/value.cc
index 63aff5f4d0..f9d3612d8e 100644
--- a/libs/glibmm2/glib/glibmm/value.cc
+++ b/libs/glibmm2/glib/glibmm/value.cc
@@ -1,19 +1,19 @@
// -*- c++ -*-
-/* $Id: value.cc 292 2006-05-14 12:12:41Z murrayc $ */
+/* $Id: value.cc 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/value.h b/libs/glibmm2/glib/glibmm/value.h
index 12d611bc91..f2b7e4e55e 100644
--- a/libs/glibmm2/glib/glibmm/value.h
+++ b/libs/glibmm2/glib/glibmm/value.h
@@ -1,21 +1,21 @@
// -*- c++ -*-
#ifndef _GLIBMM_VALUE_H
#define _GLIBMM_VALUE_H
-/* $Id: value.h 292 2006-05-14 12:12:41Z murrayc $ */
+/* $Id: value.h 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/value_custom.cc b/libs/glibmm2/glib/glibmm/value_custom.cc
index 09919f4a6b..066253406b 100644
--- a/libs/glibmm2/glib/glibmm/value_custom.cc
+++ b/libs/glibmm2/glib/glibmm/value_custom.cc
@@ -1,19 +1,19 @@
// -*- c++ -*-
-/* $Id: value_custom.cc 260 2006-04-12 08:12:12Z murrayc $ */
+/* $Id: value_custom.cc 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/value_custom.h b/libs/glibmm2/glib/glibmm/value_custom.h
index b08c591051..bfa1bade53 100644
--- a/libs/glibmm2/glib/glibmm/value_custom.h
+++ b/libs/glibmm2/glib/glibmm/value_custom.h
@@ -1,19 +1,19 @@
// -*- c++ -*-
-/* $Id: value_custom.h 419 2007-06-22 14:43:53Z murrayc $ */
+/* $Id: value_custom.h 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmm/wrap.cc b/libs/glibmm2/glib/glibmm/wrap.cc
index 49a1e15c79..5e34a4ac24 100644
--- a/libs/glibmm2/glib/glibmm/wrap.cc
+++ b/libs/glibmm2/glib/glibmm/wrap.cc
@@ -1,28 +1,27 @@
// -*- c++ -*-
-/* $Id: wrap.cc 447 2007-10-03 09:51:41Z murrayc $ */
+/* $Id: wrap.cc 779 2009-01-19 17:58:50Z murrayc $ */
/* wrap.cc
*
* Copyright (C) 1998-2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <glib-object.h>
-#include <glib/gtypes.h>
-#include <glib/gmacros.h>
+#include <glib.h>
#include <vector>
#include <glibmm/object.h>
@@ -187,7 +186,7 @@ ObjectBase* wrap_auto(GObject* object, bool take_copy)
if(!pCppObject)
{
- g_warning("failed to wrap type of '%s'", G_OBJECT_TYPE_NAME(object));
+ g_warning("Failed to wrap object of type '%s'. Hint: this error is commonly caused by failing to call a library init() function.", G_OBJECT_TYPE_NAME(object));
return 0;
}
}
diff --git a/libs/glibmm2/glib/glibmm/wrap.h b/libs/glibmm2/glib/glibmm/wrap.h
index 83aae3c880..aff328f8cb 100644
--- a/libs/glibmm2/glib/glibmm/wrap.h
+++ b/libs/glibmm2/glib/glibmm/wrap.h
@@ -2,21 +2,21 @@
#ifndef _GLIBMM_WRAP_H
#define _GLIBMM_WRAP_H
-/* $Id: wrap.h 447 2007-10-03 09:51:41Z murrayc $ */
+/* $Id: wrap.h 779 2009-01-19 17:58:50Z murrayc $ */
/* Copyright (C) 1998-2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -78,9 +78,15 @@ TInterface* wrap_auto_interface(GObject* object, bool take_copy = false)
//so we at least get the expected type:
TInterface* result = 0;
if(pCppObject)
- result = dynamic_cast<TInterface*>(pCppObject);
+ {
+ result = dynamic_cast<TInterface*>(pCppObject);
+ if(!result)
+ {
+ g_warning("Glib::wrap_auto_interface(): The C++ instance (%s) does not dynamic_cast to the interface.\n", typeid(*pCppObject).name());
+ }
+ }
else
- result = new TInterface((typename TInterface::BaseObjectType*)object);
+ result = new TInterface((typename TInterface::BaseObjectType*)object);
// take_copy=true is used where the GTK+ function doesn't do
// an extra ref for us, and always for plain struct members.
diff --git a/libs/glibmm2/glib/glibmm/wrap_init.cc b/libs/glibmm2/glib/glibmm/wrap_init.cc
index f1eafb8f09..536c5d7c19 100644
--- a/libs/glibmm2/glib/glibmm/wrap_init.cc
+++ b/libs/glibmm2/glib/glibmm/wrap_init.cc
@@ -12,6 +12,7 @@
// #include the widget headers so that we can call the get_type() static methods:
+#include "checksum.h"
#include "convert.h"
#include "date.h"
#include "fileutils.h"
@@ -26,7 +27,9 @@
#include "shell.h"
#include "spawn.h"
#include "thread.h"
+#include "nodetree.h"
#include "unicode.h"
+#include "uriutils.h"
extern "C"
{
diff --git a/libs/glibmm2/glib/glibmm/wrap_init.h b/libs/glibmm2/glib/glibmm/wrap_init.h
index cd5dd0dfa0..2ac5760e32 100644
--- a/libs/glibmm2/glib/glibmm/wrap_init.h
+++ b/libs/glibmm2/glib/glibmm/wrap_init.h
@@ -2,23 +2,23 @@
#ifndef _GLIBMM_WRAP_INIT_H
#define _GLIBMM_WRAP_INIT_H
-/* $Id: wrap_init.h 2 2003-01-07 16:59:16Z murrayc $ */
+/* $Id: wrap_init.h 779 2009-01-19 17:58:50Z murrayc $ */
/* wrap_init.h
*
* Copyright 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/glibmmconfig.h b/libs/glibmm2/glib/glibmmconfig.h
index 4e4bfa308f..2b577ca96a 100644
--- a/libs/glibmm2/glib/glibmmconfig.h
+++ b/libs/glibmm2/glib/glibmmconfig.h
@@ -31,6 +31,7 @@
#ifdef GLIBMM_CONFIGURE
/* #undef GLIBMM_CXX_HAVE_MUTABLE */
/* #undef GLIBMM_CXX_HAVE_NAMESPACES */
+/* #undef GLIBMM_HAVE_WIDE_STREAM */
//#undef GLIBMM_CXX_GAUB
//#undef GLIBMM_CXX_AMBIGUOUS_TEMPLATES
#define GLIBMM_HAVE_NAMESPACE_STD 1
diff --git a/libs/glibmm2/glib/glibmmconfig.h.in b/libs/glibmm2/glib/glibmmconfig.h.in
index 8a971fe5b3..739ac191cb 100644
--- a/libs/glibmm2/glib/glibmmconfig.h.in
+++ b/libs/glibmm2/glib/glibmmconfig.h.in
@@ -30,6 +30,7 @@
#ifdef GLIBMM_CONFIGURE
#undef GLIBMM_CXX_HAVE_MUTABLE
#undef GLIBMM_CXX_HAVE_NAMESPACES
+#undef GLIBMM_HAVE_WIDE_STREAM
//#undef GLIBMM_CXX_GAUB
//#undef GLIBMM_CXX_AMBIGUOUS_TEMPLATES
#undef GLIBMM_HAVE_NAMESPACE_STD
diff --git a/libs/glibmm2/glib/src/Makefile.am b/libs/glibmm2/glib/src/Makefile.am
index ae1b6ea209..13dc496d13 100644
--- a/libs/glibmm2/glib/src/Makefile.am
+++ b/libs/glibmm2/glib/src/Makefile.am
@@ -3,6 +3,7 @@
sublib_name = glibmm
sublib_namespace = Glib
+sublib_parentdir = glibmm
files_defs = glib.defs glib_enums.defs glib_functions.defs gobject.defs gobject_enums.defs gobject_functions.defs gmodule_enums.defs gmodule_functions.defs glib_docs.xml glib_docs_override.xml
include $(top_srcdir)/build_shared/Makefile_gensrc.am_fragment
diff --git a/libs/glibmm2/glib/src/Makefile.in b/libs/glibmm2/glib/src/Makefile.in
index c7533e21d0..44dbc65b81 100644
--- a/libs/glibmm2/glib/src/Makefile.in
+++ b/libs/glibmm2/glib/src/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.10 from Makefile.am.
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -13,6 +13,8 @@
# PARTICULAR PURPOSE.
@SET_MAKE@
+
+# Built files
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@@ -31,16 +33,23 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(srcdir)/Makefile_list_of_hg.am_fragment \
+DIST_COMMON = $(srcdir)/../src/Makefile_list_of_hg.am_fragment \
+ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/build_shared/Makefile_build_gensrc.am_fragment \
$(top_srcdir)/build_shared/Makefile_gensrc.am_fragment \
- $(top_srcdir)/build_shared/Makefile_gensrc_platform.am_fragment \
$(top_srcdir)/tools/Makefile_list_of_sources.am_fragment \
$(top_srcdir)/tools/m4/Makefile_list_of_sources.am_fragment \
$(top_srcdir)/tools/pm/Makefile_list_of_sources.am_fragment
subdir = glib/src
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/scripts/c_std.m4 \
+ $(top_srcdir)/scripts/cxx.m4 $(top_srcdir)/scripts/cxx_std.m4 \
+ $(top_srcdir)/scripts/dk-feature.m4 \
+ $(top_srcdir)/scripts/docgen.m4 \
+ $(top_srcdir)/scripts/glibmm_check_perl.m4 \
+ $(top_srcdir)/scripts/macros.m4 \
+ $(top_srcdir)/scripts/reduced.m4 $(top_srcdir)/scripts/sun.m4 \
+ $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
@@ -71,8 +80,10 @@ CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED_API_CFLAGS = @DISABLE_DEPRECATED_API_CFLAGS@
DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
@@ -94,6 +105,8 @@ GMMPROC_DIR = @GMMPROC_DIR@
GREP = @GREP@
GTHREAD_CFLAGS = @GTHREAD_CFLAGS@
GTHREAD_LIBS = @GTHREAD_LIBS@
+GTKMMPROC_MERGECDOCS = @GTKMMPROC_MERGECDOCS@
+GTKMM_DOXYGEN_INPUT = @GTKMM_DOXYGEN_INPUT@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -106,9 +119,11 @@ LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
+M4 = @M4@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
+NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
@@ -118,6 +133,7 @@ PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL_PATH = @PERL_PATH@
PKG_CONFIG = @PKG_CONFIG@
RANLIB = @RANLIB@
SED = @SED@
@@ -174,11 +190,14 @@ sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
sublib_name = glibmm
sublib_namespace = Glib
+sublib_parentdir = glibmm
files_defs = glib.defs glib_enums.defs glib_functions.defs gobject.defs gobject_enums.defs gobject_functions.defs gmodule_enums.defs gmodule_functions.defs glib_docs.xml glib_docs_override.xml
+tools_dir = $(top_srcdir)/tools
tools_dir_m4 = $(top_srcdir)/tools/m4
tools_dir_pm = $(top_srcdir)/tools/pm
gensrc_destdir = $(srcdir)/../$(sublib_name)
@@ -188,41 +207,84 @@ files_tools_m4 = base.m4 class_shared.m4 class_boxedtype.m4 class_boxedtype_stat
class_interface.m4 class_opaque_refcounted.m4 class_opaque_copyable.m4 \
gerror.m4 \
compare.m4 convert.m4 convert_base.m4 convert_gtkmm.m4 convert_atk.m4 convert_gdk.m4 \
- convert_glib.m4 convert_gtk.m4 convert_pango.m4 ctor.m4 doc.m4 enum.m4 list.m4 member.m4 \
+ convert_glib.m4 convert_gio.m4 convert_gtk.m4 convert_pango.m4 ctor.m4 doc.m4 enum.m4 list.m4 member.m4 \
method.m4 property.m4 signal.m4 vfunc.m4
files_tools_pm = DocsParser.pm GtkDefs.pm Enum.pm Function.pm FunctionBase.pm Object.pm Output.pm Property.pm Util.pm WrapParser.pm
files_tools_genwrap = generate_wrap_init.pl
files_tools_perl = $(files_tools_genwrap) gmmproc.in
tools_m4 = $(files_tools_m4:%.m4=$(tools_dir_m4)/%.m4)
-tools_pm = $(files_tools_pm:%.pm=$(tools_dir_pm)/%.pm)
files_posix_hg =
files_win32_hg =
-files_general_hg = convert.hg date.hg fileutils.hg iochannel.hg keyfile.hg markup.hg module.hg optioncontext.hg optionentry.hg optiongroup.hg regex.hg shell.hg spawn.hg thread.hg unicode.hg
-files_all_hg = $(files_general_hg) $(files_posix_hg) $(files_win32_hg)
-@OS_WIN32_FALSE@files_hg = $(files_general_hg) $(files_posix_hg)
-@OS_WIN32_TRUE@files_hg = $(files_general_hg) $(files_win32_hg)
+files_general_hg = checksum.hg convert.hg date.hg fileutils.hg iochannel.hg keyfile.hg markup.hg \
+ module.hg optioncontext.hg optionentry.hg optiongroup.hg regex.hg \
+ shell.hg spawn.hg thread.hg nodetree.hg unicode.hg uriutils.hg
+
+files_general_deprecated_hg =
+files_all_hg = \
+ $(files_posix_hg) \
+ $(files_win32_hg) \
+ $(files_general_hg) \
+ $(files_general_deprecated_hg)
+
+@OS_WIN32_FALSE@files_hg = $(files_general_hg) $(files_posix_hg) $(files_general_deprecated_hg)
+@OS_WIN32_TRUE@files_hg = $(files_general_hg) $(files_win32_hg) $(files_general_deprecated_hg)
+files_built_cc = $(files_hg:.hg=.cc) wrap_init.cc
+files_built_h = $(files_hg:.hg=.h)
+files_all_built_cc = $(files_all_hg:.hg=.cc) wrap_init.cc
+files_all_built_h = $(files_all_hg:.hg=.h)
+
+# Extra files
+files_all_extra_cc = \
+ $(sublib_files_extra_posix_cc) \
+ $(sublib_files_extra_win32_cc) \
+ $(sublib_files_extra_general_cc) \
+ $(sublib_files_extra_general_deprecated_cc)
+
+files_all_extra_h = $(sublib_files_extra_posix_h) \
+ $(sublib_files_extra_win32_h) $(sublib_files_extra_general_h) \
+ $(sublib_files_extra_general_deprecated_h) wrap_init.h
+@OS_WIN32_FALSE@files_extra_cc = \
+@OS_WIN32_FALSE@ $(sublib_files_extra_posix_cc) \
+@OS_WIN32_FALSE@ $(sublib_files_extra_general_cc)
+
+@OS_WIN32_TRUE@files_extra_cc = \
+@OS_WIN32_TRUE@ $(sublib_files_extra_win32_cc) \
+@OS_WIN32_TRUE@ $(sublib_files_extra_general_cc)
+
+@OS_WIN32_FALSE@files_extra_h = $(sublib_files_extra_posix_h) \
+@OS_WIN32_FALSE@ $(sublib_files_extra_general_h) wrap_init.h
+@OS_WIN32_TRUE@files_extra_h = $(sublib_files_extra_win32_h) \
+@OS_WIN32_TRUE@ $(sublib_files_extra_general_h) wrap_init.h
+# tools_pm = $(files_tools_pm:%.pm=$(tools_dir_pm)/%.pm)
files_all_ccg = $(files_all_hg:%.hg=%.ccg)
files_h = $(files_all_hg:%.hg=$(gensrc_destdir)/%.h)
files_cc = $(files_all_hg:%.hg=$(gensrc_destdir)/%.cc)
files_stamp = $(files_all_hg:%.hg=$(stamp_dir)/stamp-%) \
$(glibmm_files_m4:%.m4=$(gensrc_destdir)/%)
+
+#The gmmproc from this glibmm:
gmmproc_in = $(top_srcdir)/tools/gmmproc.in
gmmproc_path = $(top_builddir)/tools/gmmproc
+
+# We use our own m4 and pm files as well as the ones installed by gtkmm:
+# Our override m4 include seems to need to be before the default one.
gmmproc_args = -I $(tools_dir_m4) --defs $(srcdir)
run_gmmproc = $(PERL_PATH) -I$(tools_dir_pm) $(gmmproc_path) $(gmmproc_args)
gen_wrap_init_in = $(top_srcdir)/tools/generate_wrap_init.pl.in
gen_wrap_init_path = $(top_builddir)/tools/generate_wrap_init.pl
-gen_wrap_init_args = --namespace=$(sublib_namespace)
+gen_wrap_init_args = --namespace=$(sublib_namespace) --parent_dir=$(sublib_parentdir)
run_gen_wrap_init = $(PERL_PATH) $(gen_wrap_init_path) $(gen_wrap_init_args)
EXTRA_DIST = Makefile_list_of_hg.am_fragment $(files_defs) \
$(files_all_hg) $(files_all_ccg) $(glibmm_files_m4) \
template.macros.m4
+sublib_srcdir = $(srcdir)/../src
+files_hg_with_path = $(patsubst %.hg,$(sublib_srcdir)/%.hg,$(files_all_hg))
glibmm_files_m4 = signalproxy.h.m4 value_basictypes.cc.m4 value_basictypes.h.m4
all: all-am
.SUFFIXES:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/build_shared/Makefile_gensrc.am_fragment $(top_srcdir)/tools/Makefile_list_of_sources.am_fragment $(top_srcdir)/tools/m4/Makefile_list_of_sources.am_fragment $(top_srcdir)/tools/pm/Makefile_list_of_sources.am_fragment $(srcdir)/Makefile_list_of_hg.am_fragment $(top_srcdir)/build_shared/Makefile_gensrc_platform.am_fragment $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/build_shared/Makefile_gensrc.am_fragment $(top_srcdir)/tools/Makefile_list_of_sources.am_fragment $(top_srcdir)/tools/m4/Makefile_list_of_sources.am_fragment $(top_srcdir)/tools/pm/Makefile_list_of_sources.am_fragment $(srcdir)/../src/Makefile_list_of_hg.am_fragment $(top_srcdir)/build_shared/Makefile_build_gensrc.am_fragment $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
@@ -389,11 +451,11 @@ uninstall-am:
mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
-$(stamp_dir)/stamp-%: %.hg %.ccg $(gmmproc_in) $(tools_m4) $(tools_pm) $(files_defs)
+$(stamp_dir)/stamp-%: %.hg %.ccg $(tools_m4) $(files_defs)
$(run_gmmproc) $(notdir $*) $(srcdir) $(gensrc_destdir)
- @echo 'timestamp' >$@
+ @echo 'timestamp' > $@
-$(gensrc_destdir)/wrap_init.cc: $(gen_wrap_init_in) $(files_all_hg)
+$(gensrc_destdir)/wrap_init.cc: $(gen_wrap_init_path) $(files_hg_with_path)
$(run_gen_wrap_init) $(files_all_hg:%.hg=$(srcdir)/%.hg) >$@
create-stamp-dir:
@@ -404,8 +466,6 @@ create-stamp-dir:
maintainer-clean-local:
rm -rf $(stamp_dir)
-.PHONY: create-stamp-dir
-
$(gensrc_destdir)/%.cc: %.cc.m4 template.macros.m4
$(M4) -I$(srcdir) $< >$@
diff --git a/libs/glibmm2/glib/src/Makefile_list_of_hg.am_fragment b/libs/glibmm2/glib/src/Makefile_list_of_hg.am_fragment
index 4cc446def7..37863c8248 100644
--- a/libs/glibmm2/glib/src/Makefile_list_of_hg.am_fragment
+++ b/libs/glibmm2/glib/src/Makefile_list_of_hg.am_fragment
@@ -5,4 +5,9 @@
files_posix_hg =
files_win32_hg =
-files_general_hg = convert.hg date.hg fileutils.hg iochannel.hg keyfile.hg markup.hg module.hg optioncontext.hg optionentry.hg optiongroup.hg regex.hg shell.hg spawn.hg thread.hg unicode.hg
+files_general_hg = checksum.hg convert.hg date.hg fileutils.hg iochannel.hg keyfile.hg markup.hg \
+ module.hg optioncontext.hg optionentry.hg optiongroup.hg regex.hg \
+ shell.hg spawn.hg thread.hg nodetree.hg unicode.hg uriutils.hg
+files_general_deprecated_hg =
+
+include $(top_srcdir)/build_shared/Makefile_build_gensrc.am_fragment
diff --git a/libs/glibmm2/glib/src/checksum.ccg b/libs/glibmm2/glib/src/checksum.ccg
new file mode 100644
index 0000000000..eedf19863c
--- /dev/null
+++ b/libs/glibmm2/glib/src/checksum.ccg
@@ -0,0 +1,53 @@
+/* $Id$ */
+
+/* Copyright (C) 2002 The gtkmm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <glibmm/utility.h>
+#include <glibmm/checksum.h>
+
+namespace Glib
+{
+
+Checksum::Checksum(ChecksumType type)
+: gobject_(g_checksum_new((GChecksumType)type))
+{
+}
+
+Checksum::operator bool() const
+{
+ return gobject_ != 0;
+}
+
+gssize Checksum::get_length(ChecksumType checksum_type)
+{
+ return g_checksum_type_get_length((GChecksumType)checksum_type);
+}
+
+std::string Checksum::compute_checksum(ChecksumType type, const std::string& data)
+{
+ return Glib::convert_return_gchar_ptr_to_ustring(g_compute_checksum_for_string(((GChecksumType)type), data.c_str(), data.size()));
+}
+
+void Checksum::update(const std::string& data)
+{
+ g_checksum_update(gobj(), (const guchar*)data.c_str(), data.size());
+}
+
+} // Glib namespace
+
+
diff --git a/libs/glibmm2/glib/src/checksum.hg b/libs/glibmm2/glib/src/checksum.hg
new file mode 100644
index 0000000000..3a4b7e62f0
--- /dev/null
+++ b/libs/glibmm2/glib/src/checksum.hg
@@ -0,0 +1,116 @@
+/* $Id$ */
+
+/* Copyright (C) 2002 The gtkmm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+_DEFS(glibmm,glib)
+
+#include <glib.h>
+#include <string>
+
+#ifndef DOXYGEN_SHOUD_SKIP_THIS
+extern "C" { typedef struct _GChecksum GChecksum; }
+#endif
+
+namespace Glib
+{
+
+/** Computes the checksum for data.
+ * This is a generic API for computing checksums (or "digests") for a sequence of arbitrary bytes,
+ * using various hashing algorithms like MD5, SHA-1 and SHA-256. Checksums are commonly used in various environments and specifications.
+ *
+ * glibmm supports incremental checksums by calling update() as long as there's data available and then using get_string()
+ * or get_digest() to compute the checksum and return it either as a string in hexadecimal form, or as a raw sequence of bytes.
+ * To compute the checksum for binary blobs and NULL-terminated strings in one go, use the static compute_checksum() convenience functions().
+ *
+ * @newin2p16
+ */
+class Checksum
+{
+ _CLASS_OPAQUE_COPYABLE(Checksum, GChecksum, NONE, g_checksum_copy, g_checksum_free)
+ _IGNORE(g_checksum_copy, g_checksum_free)
+public:
+
+ /**
+ * @class ChecksumType:
+ * @a CHECKSUM_MD5: Use the MD5 hashing algorithm
+ * @a CHECKSUM_SHA1: Use the SHA-1 hashing algorithm
+ * @a CHECKSUM_SHA256: Use the SHA-256 hashing algorithm
+ *
+ * The hashing algorithm to be used by Checksum when performing the
+ * digest of some data.
+ *
+ * Note that the ChecksumType enumeration may be extended at a later
+ * date to include new hashing algorithm types.
+ *
+ * @newin2p16
+ */
+ _WRAP_ENUM(ChecksumType, GChecksumType, NO_GTYPE)
+
+#m4 _CONVERSION(`ChecksumType', `GChecksumType', `(($2)$3)')
+
+ /** Creates a new Checksum, using the checksum algorithm @a checksum_type.
+ * If the checksum_type is not known, then operator bool() will return false.
+ *
+ * @param type checksum type, one of defined above.
+ */
+ explicit Checksum(ChecksumType checksum_type);
+
+ /** Returns true if the Checksum object is valid.
+ * This will return false, for instance, if an unsupported checksum type was provided to the constructor.
+ */
+ operator bool() const;
+
+ _WRAP_METHOD(void reset(), g_checksum_reset)
+
+ _WRAP_METHOD(void update(const guchar* data, gsize length), g_checksum_update)
+
+ /** Feeds data into an existing Checksum.
+ * The checksum must still be open, that is get_string() or get_digest() must not have been called on the checksum.
+ *
+ * @param data Buffer used to compute the checksum
+ */
+ void update(const std::string& data);
+
+ _WRAP_METHOD(void get_digest(guint8 *buffer, gsize *digest_len) const, g_checksum_get_digest)
+
+ _WRAP_METHOD(std::string get_string() const, g_checksum_get_string)
+
+
+ _WRAP_METHOD(static std::string compute_checksum(ChecksumType type, const guchar* data, gsize length), g_compute_checksum_for_data)
+
+ /** Computes the checksum of a string.
+ *
+ * @param checksum_type A ChecksumType
+ * @param str The string to compute the checksum of.
+ * @result The checksum as a hexadecimal string.
+ */
+ static std::string compute_checksum(ChecksumType type, const std::string& str);
+ _IGNORE(g_compute_checksum_for_string)
+
+
+ //We don't use _WRAP_METHOD because this is not really a GCheckSum function:
+ /** Gets the length in bytes of digests of type @a checksum_type.
+ *
+ * @param checksum_type A ChecksumType.
+ * @result The checksum length, or -1 if @a checksum_type is not supported.
+ */
+ static gssize get_length(ChecksumType checksum_type);
+};
+
+} //namespace Glib
+
diff --git a/libs/glibmm2/glib/src/convert.ccg b/libs/glibmm2/glib/src/convert.ccg
index d598fc17b9..cc3b76d847 100644
--- a/libs/glibmm2/glib/src/convert.ccg
+++ b/libs/glibmm2/glib/src/convert.ccg
@@ -4,23 +4,24 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <glib/gconvert.h>
-#include <glib.h>
-#include <glib/gunicode.h>
+//#include <glib/gtestutils.h> //For g_assert() in glib >= 2.15.0
+//#include <glib/gmessages.h> //For g_assert() in glib < 2.15.0
+#include <glib.h> //For g_assert() in all versions of glib.
+
#include <glibmm/utility.h>
diff --git a/libs/glibmm2/glib/src/convert.hg b/libs/glibmm2/glib/src/convert.hg
index 9f89a599e7..dcccf68d48 100644
--- a/libs/glibmm2/glib/src/convert.hg
+++ b/libs/glibmm2/glib/src/convert.hg
@@ -3,23 +3,23 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
_DEFS(glibmm,glib)
-#include <glib/gtypes.h> /* for gsize */
+#include <glib.h> /* for gsize */
#include <glibmm/error.h>
#include <glibmm/ustring.h>
diff --git a/libs/glibmm2/glib/src/date.ccg b/libs/glibmm2/glib/src/date.ccg
index ab99a1c407..fff0a1e13f 100644
--- a/libs/glibmm2/glib/src/date.ccg
+++ b/libs/glibmm2/glib/src/date.ccg
@@ -4,22 +4,23 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <glib/gmem.h>
-#include <glib.h>
+//#include <glib/gtestutils.h> //For g_assert() in glib >= 2.15.0
+//#include <glib/gmessages.h> //For g_assert() in glib < 2.15.0
+#include <glib.h> //For g_assert() in all versions of glib.
#include <ctime>
#include <algorithm>
@@ -55,6 +56,20 @@ Date::Date(const GDate& castitem)
gobject_ (castitem)
{}
+Date::Date(const Date& other)
+{
+ g_date_clear(&gobject_, 1);
+ g_date_set_julian(&gobject_, other.get_julian());
+}
+
+Date& Date::operator=(const Date& other)
+{
+ if (&other != this)
+ g_date_set_julian(&gobject_, other.get_julian());
+
+ return *this;
+}
+
void Date::clear()
{
g_date_clear(&gobject_, 1);
diff --git a/libs/glibmm2/glib/src/date.hg b/libs/glibmm2/glib/src/date.hg
index 9d04a29719..47606c3b0c 100644
--- a/libs/glibmm2/glib/src/date.hg
+++ b/libs/glibmm2/glib/src/date.hg
@@ -3,16 +3,16 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -25,8 +25,7 @@ _DEFS(glibmm,glib)
#include <glibmm/ustring.h>
-#include <glib/gdate.h>
-#include <glib/gtypes.h>
+#include <glib.h>
#ifndef DOXYGEN_SHOULD_SKIP_THIS
extern "C" { struct tm; }
@@ -51,18 +50,63 @@ public:
static const Year BAD_YEAR = 0;
static const guint32 BAD_JULIAN = 0;
+ /** Construct an undefined date.
+ */
Date();
+
+ /** Construct a date with the given day, month and year.
+ * @param day The day.
+ * @param month The month.
+ * @param year The year.
+ */
Date(Day day, Month month, Year year);
+
+ /** Construct a date from a julian day.
+ * @param julian_day The julian day (guint32).
+ */
explicit Date(guint32 julian_day);
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
+ /** Construct a Glib::Date by copying the contents of a GDate.
+ * @param castitem The GDate.
+ *
+ * @newin2p18
+ */
explicit Date(const GDate& castitem);
-#endif
- void clear();
- /** Clear the date. The cleared dates will not represent an existing date, but will not contain garbage.
- * @param month Month to set.
+ /** Construct a Glib::Date from another.
+ * @param other the other Glib::Date.
+ *
+ * @newin2p18
+ */
+ Date(const Date& other);
+
+ /** Assign another date to this one. For example:
+ * @code
+ * ...
+ * Glib::Date my_date;
+ * my_date = other_date;
+ * @endcode
+ *
+ * @param other The other Glib::Date.
+ *
+ * @newin2p18
+ */
+ Date& operator=(const Date& other);
+
+ /// Provides access to the underlying C instance.
+ GDate* gobj() { return &gobject_; }
+
+ /// Provides access to the underlying C instance.
+ const GDate* gobj() const { return &gobject_; }
+
+private:
+ GDate gobject_;
+
+public:
+ /** Clear the date. The cleared dates will not represent an existing date,
+ * but will not contain garbage.
*/
+ void clear();
/** Parses a user-inputted string str, and try to figure out what date it represents, taking the current locale into account. If the string is successfully parsed, the date will be valid after the call. Otherwise, it will be invalid.
* This function is not appropriate for file formats and the like; it isn't very precise, and its exact behavior varies with the locale. It's intended to be a heuristic routine that guesses what the user means by a given string (and it does work pretty well in that capacity).
@@ -110,6 +154,8 @@ public:
*/
void set_time(const GTimeVal& timeval);
+ /** Set this Glib::Date to the current time.
+ */
void set_time_current();
/** Sets the month of the year. If the resulting day-month-year triplet is invalid, the date will be invalid.
@@ -141,7 +187,6 @@ public:
//TODO: Why return Date& (which is always *this) from these methods?
//Isn't it enough to also change the current instance?
- //Maybe we need a copy constructor too.
//murrayc
/** Add a number of days to a Date.
@@ -369,14 +414,6 @@ public:
* @return true if the date is a valid one.
*/
static bool valid_dmy(Day day, Month month, Year year);
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
- GDate* gobj() { return &gobject_; }
- const GDate* gobj() const { return &gobject_; }
-#endif
-
-private:
- GDate gobject_;
};
diff --git a/libs/glibmm2/glib/src/fileutils.ccg b/libs/glibmm2/glib/src/fileutils.ccg
index 84df93f952..576cfc366a 100644
--- a/libs/glibmm2/glib/src/fileutils.ccg
+++ b/libs/glibmm2/glib/src/fileutils.ccg
@@ -4,23 +4,21 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <glib/gdir.h>
-#include <glib/gfileutils.h>
-#include <glib/gstrfuncs.h>
+#include <glib.h>
#include <glibmm/utility.h>
@@ -52,7 +50,7 @@ Dir::~Dir()
std::string Dir::read_name()
{
const char *const name = g_dir_read_name(gobject_);
- return (name) ? std::string(name) : std::string();
+ return Glib::convert_const_gchar_ptr_to_stdstring(name);
}
void Dir::rewind()
diff --git a/libs/glibmm2/glib/src/fileutils.hg b/libs/glibmm2/glib/src/fileutils.hg
index 70dc779ee0..a3a95b7af8 100644
--- a/libs/glibmm2/glib/src/fileutils.hg
+++ b/libs/glibmm2/glib/src/fileutils.hg
@@ -3,16 +3,16 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/src/glib_docs.xml b/libs/glibmm2/glib/src/glib_docs.xml
index e013376865..705f7fdcf5 100644
--- a/libs/glibmm2/glib/src/glib_docs.xml
+++ b/libs/glibmm2/glib/src/glib_docs.xml
@@ -1,44 +1,35 @@
<root>
-<function name="g_str_hash">
+<function name="g_io_channel_ref">
<description>
-Converts a string to a hash value.
-It can be passed to g_hash_table_new() as the @hash_func
-parameter, when using strings as keys in a #GHashTable.
+Increments the reference count of a #GIOChannel.
</description>
<parameters>
-<parameter name="v">
-<parameter_description> a string key
+<parameter name="channel">
+<parameter_description> a #GIOChannel
</parameter_description>
</parameter>
</parameters>
-<return> a hash value corresponding to the key
+<return> the @channel that was passed in (since 2.6)
</return>
</function>
-<function name="g_strcasecmp">
+<function name="g_str_hash">
<description>
-A case-insensitive string comparison, corresponding to the standard
-strcasecmp() function on platforms which support it.
+Converts a string to a hash value.
+It can be passed to g_hash_table_new() as the @hash_func
+parameter, when using strings as keys in a #GHashTable.
</description>
<parameters>
-<parameter name="s1">
-<parameter_description> a string.
-</parameter_description>
-</parameter>
-<parameter name="s2">
-<parameter_description> a string to compare with @s1.
+<parameter name="v">
+<parameter_description> a string key
</parameter_description>
</parameter>
</parameters>
-<return> 0 if the strings match, a negative value if @s1 &amp;lt; @s2,
-or a positive value if @s1 &amp;gt; @s2.
-
-Deprecated:2.2: See g_strncasecmp() for a discussion of why this function
-is deprecated and how to replace it.
+<return> a hash value corresponding to the key
</return>
</function>
@@ -76,6 +67,26 @@ some UTF-8 text, obtain a character value with g_utf8_get_char().
</return>
</function>
+<function name="g_flags_get_first_value">
+<description>
+Returns: the first #GFlagsValue which is set in @value, or %NULL if
+
+</description>
+<parameters>
+<parameter name="flags_class">
+<parameter_description> a #GFlagsClass
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> the value
+</parameter_description>
+</parameter>
+</parameters>
+<return> the first #GFlagsValue which is set in @value, or %NULL if
+none is set
+</return>
+</function>
+
<function name="g_shell_unquote">
<description>
Unquotes a string as the shell (/bin/sh) would. Only handles
@@ -116,6 +127,26 @@ literally.
</return>
</function>
+<function name="g_type_remove_class_cache_func">
+<description>
+Removes a previously installed #GTypeClassCacheFunc. The cache
+maintained by @cache_func has to be empty when calling
+g_type_remove_class_cache_func() to avoid leaks.
+
+</description>
+<parameters>
+<parameter name="cache_data">
+<parameter_description> data that was given when adding @cache_func
+</parameter_description>
+</parameter>
+<parameter name="cache_func">
+<parameter_description> a #GTypeClassCacheFunc
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_build_pathv">
<description>
Behaves exactly like g_build_path(), but takes the path elements
@@ -140,10 +171,37 @@ Since: 2.8
</return>
</function>
+<function name="g_value_array_sort_with_data">
+<description>
+Sort @value_array using @compare_func to compare the elements accoring
+to the semantics of #GCompareDataFunc.
+
+The current implementation uses Quick-Sort as sorting algorithm.
+
+
+</description>
+<parameters>
+<parameter name="value_array">
+<parameter_description> #GValueArray to sort
+</parameter_description>
+</parameter>
+<parameter name="compare_func">
+<parameter_description> function to compare elements
+</parameter_description>
+</parameter>
+<parameter name="user_data">
+<parameter_description> extra data argument provided for @compare_func
+</parameter_description>
+</parameter>
+</parameters>
+<return> the #GValueArray passed in as @value_array
+</return>
+</function>
+
<function name="g_propagate_error">
<description>
-If @dest is %NULL, free @src; otherwise,
-moves @src into *@dest. *@dest must be %NULL.
+If @dest is %NULL, free @src; otherwise, moves @src into *@dest.
+The error variable @dest points to must be %NULL.
</description>
<parameters>
@@ -174,6 +232,96 @@ Return value: the number of threads currently running
</return>
</function>
+<function name="g_cclosure_marshal_VOID__UCHAR">
+<description>
+A marshaller for a #GCClosure with a callback of type
+&amp;lt;literal&amp;gt;void (*callback) (gpointer instance, guchar arg1, gpointer user_data)&amp;lt;/literal&amp;gt;.
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> ignored
+</parameter_description>
+</parameter>
+<parameter name="n_param_values">
+<parameter_description> 2
+</parameter_description>
+</parameter>
+<parameter name="param_values">
+<parameter_description> a #GValue array holding the instance and the #guchar parameter
+</parameter_description>
+</parameter>
+<parameter name="invocation_hint">
+<parameter_description> the invocation hint given as the last argument
+to g_closure_invoke()
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when registering the marshaller
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_signal_type_cclosure_new">
+<description>
+Creates a new closure which invokes the function found at the offset
+@struct_offset in the class structure of the interface or classed type
+identified by @itype.
+
+
+</description>
+<parameters>
+<parameter name="itype">
+<parameter_description> the #GType identifier of an interface or classed type
+</parameter_description>
+</parameter>
+<parameter name="struct_offset">
+<parameter_description> the offset of the member function of @itype&apos;s class
+structure which is to be invoked by the new closure
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GCClosure
+</return>
+</function>
+
+<function name="g_signal_emit">
+<description>
+Emits a signal.
+
+Note that g_signal_emit() resets the return value to the default
+if no handlers are connected, in contrast to g_signal_emitv().
+
+</description>
+<parameters>
+<parameter name="instance">
+<parameter_description> the instance the signal is being emitted on.
+</parameter_description>
+</parameter>
+<parameter name="signal_id">
+<parameter_description> the signal id
+</parameter_description>
+</parameter>
+<parameter name="detail">
+<parameter_description> the detail
+</parameter_description>
+</parameter>
+<parameter name="Varargs">
+<parameter_description> parameters to be passed to the signal, followed by a
+location for the return value. If the return type of the signal
+is #G_TYPE_NONE, the return value location can be omitted.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_bookmark_file_get_applications">
<description>
Retrieves the names of the applications that have registered the
@@ -249,6 +397,41 @@ same bytes
</return>
</function>
+<function name="g_checksum_type_get_length">
+<description>
+Gets the length in bytes of digests of type @checksum_type
+
+
+</description>
+<parameters>
+<parameter name="checksum_type">
+<parameter_description> a #GChecksumType
+</parameter_description>
+</parameter>
+</parameters>
+<return> the checksum length, or -1 if @checksum_type is
+not supported.
+
+Since: 2.16
+</return>
+</function>
+
+<function name="g_slist_reverse">
+<description>
+Reverses a #GSList.
+
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GSList
+</parameter_description>
+</parameter>
+</parameters>
+<return> the start of the reversed #GSList
+</return>
+</function>
+
<function name="g_bookmark_file_get_is_private">
<description>
Gets whether the private flag of the bookmark for @uri is set.
@@ -310,11 +493,49 @@ Since: 2.10
</return>
</function>
+<function name="g_source_set_closure">
+<description>
+Set the callback for a source as a #GClosure.
+
+If the source is not one of the standard GLib types, the @closure_callback
+and @closure_marshal fields of the #GSourceFuncs structure must have been
+filled in with pointers to appropriate functions.
+
+</description>
+<parameters>
+<parameter name="source">
+<parameter_description> the source
+</parameter_description>
+</parameter>
+<parameter name="closure">
+<parameter_description> a #GClosure
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_type_interface_peek_parent">
+<description>
+Returns: The corresponding #GTypeInterface structure of the parent
+
+</description>
+<parameters>
+<parameter name="g_iface">
+<parameter_description> A #GTypeInterface structure.
+</parameter_description>
+</parameter>
+</parameters>
+<return> The corresponding #GTypeInterface structure of the parent
+type of the instance type to which @g_iface belongs, or
+%NULL if the parent type doesn&apos;t conform to the interface.
+</return>
+</function>
+
<function name="g_key_file_set_double_list">
<description>
Associates a list of double values with @key under
@group_name. If @key cannot be found then it is created.
-If @group_name is %NULL the start group is used.
Since: 2.12
@@ -344,6 +565,31 @@ Since: 2.12
<return></return>
</function>
+<function name="g_cclosure_new">
+<description>
+Creates a new closure which invokes @callback_func with @user_data as
+the last parameter.
+
+
+</description>
+<parameters>
+<parameter name="callback_func">
+<parameter_description> the function to invoke
+</parameter_description>
+</parameter>
+<parameter name="user_data">
+<parameter_description> user data to pass to @callback_func
+</parameter_description>
+</parameter>
+<parameter name="destroy_data">
+<parameter_description> destroy notify to be called when @user_data is no longer used
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GCClosure
+</return>
+</function>
+
<function name="g_sequence_iter_get_position">
<description>
Return value: the position of @iter
@@ -389,43 +635,67 @@ the sources behavior.
</return>
</function>
+<function name="g_value_get_ulong">
+<description>
+Get the contents of a %G_TYPE_ULONG #GValue.
+
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of type %G_TYPE_ULONG
+</parameter_description>
+</parameter>
+</parameters>
+<return> unsigned long integer contents of @value
+</return>
+</function>
+
<function name="g_io_channel_set_encoding">
<description>
-Sets the encoding for the input/output of the channel. The internal
-encoding is always UTF-8. The default encoding for the
-external file is UTF-8.
+Sets the encoding for the input/output of the channel.
+The internal encoding is always UTF-8. The default encoding
+for the external file is UTF-8.
The encoding %NULL is safe to use with binary data.
The encoding can only be set if one of the following conditions
is true:
-
-1. The channel was just created, and has not been written to
-or read from yet.
-
-2. The channel is write-only.
-
-3. The channel is a file, and the file pointer was just
+&amp;lt;itemizedlist&amp;gt;
+&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;
+The channel was just created, and has not been written to or read
+from yet.
+&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
+&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;
+The channel is write-only.
+&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
+&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;
+The channel is a file, and the file pointer was just
repositioned by a call to g_io_channel_seek_position().
(This flushes all the internal buffers.)
-
-4. The current encoding is %NULL or UTF-8.
-
-5. One of the (new API) read functions has just returned %G_IO_STATUS_EOF
-(or, in the case of g_io_channel_read_to_end (), %G_IO_STATUS_NORMAL).
-
-6. One of the functions g_io_channel_read_chars () or g_io_channel_read_unichar ()
-has returned %G_IO_STATUS_AGAIN or %G_IO_STATUS_ERROR. This may be
-useful in the case of %G_CONVERT_ERROR_ILLEGAL_SEQUENCE.
-Returning one of these statuses from g_io_channel_read_line (),
-g_io_channel_read_line_string (), or g_io_channel_read_to_end ()
-does &amp;lt;emphasis&amp;gt;not&amp;lt;/emphasis&amp;gt; guarantee that the encoding can be changed.
-
+&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
+&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;
+The current encoding is %NULL or UTF-8.
+&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
+&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;
+One of the (new API) read functions has just returned %G_IO_STATUS_EOF
+(or, in the case of g_io_channel_read_to_end(), %G_IO_STATUS_NORMAL).
+&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
+&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;
+One of the functions g_io_channel_read_chars() or
+g_io_channel_read_unichar() has returned %G_IO_STATUS_AGAIN or
+%G_IO_STATUS_ERROR. This may be useful in the case of
+%G_CONVERT_ERROR_ILLEGAL_SEQUENCE.
+Returning one of these statuses from g_io_channel_read_line(),
+g_io_channel_read_line_string(), or g_io_channel_read_to_end()
+does &amp;lt;emphasis&amp;gt;not&amp;lt;/emphasis&amp;gt; guarantee that the encoding can
+be changed.
+&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
+&amp;lt;/itemizedlist&amp;gt;
Channels which do not meet one of the above conditions cannot call
-g_io_channel_seek_position () with an offset of %G_SEEK_CUR,
-and, if they are &quot;seekable&quot;, cannot
-call g_io_channel_write_chars () after calling one
-of the API &quot;read&quot; functions.
+g_io_channel_seek_position() with an offset of %G_SEEK_CUR, and, if
+they are &quot;seekable&quot;, cannot call g_io_channel_write_chars() after
+calling one of the API &quot;read&quot; functions.
</description>
@@ -439,7 +709,7 @@ of the API &quot;read&quot; functions.
</parameter_description>
</parameter>
<parameter name="error">
-<parameter_description> location to store an error of type #GConvertError.
+<parameter_description> location to store an error of type #GConvertError
</parameter_description>
</parameter>
</parameters>
@@ -447,11 +717,48 @@ of the API &quot;read&quot; functions.
</return>
</function>
+<function name="g_flags_get_value_by_name">
+<description>
+Looks up a #GFlagsValue by name.
+
+
+</description>
+<parameters>
+<parameter name="flags_class">
+<parameter_description> a #GFlagsClass
+</parameter_description>
+</parameter>
+<parameter name="name">
+<parameter_description> the name to look up
+</parameter_description>
+</parameter>
+</parameters>
+<return> the #GFlagsValue with name @name, or %NULL if there is no
+flag with that name
+</return>
+</function>
+
+<function name="g_node_n_children">
+<description>
+Gets the number of children of a #GNode.
+
+
+</description>
+<parameters>
+<parameter name="node">
+<parameter_description> a #GNode
+</parameter_description>
+</parameter>
+</parameters>
+<return> the number of children of @node
+</return>
+</function>
+
<function name="g_markup_parse_context_free">
<description>
Frees a #GMarkupParseContext. Can&apos;t be called from inside
-one of the #GMarkupParser functions.
-
+one of the #GMarkupParser functions. Can&apos;t be called while
+a subparser is pushed.
</description>
<parameters>
@@ -487,9 +794,10 @@ memory will be allocated for it.
Converts a string into canonical form, standardizing
such issues as whether a character with an accent
is represented as a base character and combining
-accent or as a single precomposed character. You
-should generally call g_utf8_normalize() before
-comparing two Unicode strings.
+accent or as a single precomposed character. The
+string has to be valid UTF-8, otherwise %NULL is
+returned. You should generally call g_utf8_normalize()
+before comparing two Unicode strings.
The normalization mode %G_NORMALIZE_DEFAULT only
standardizes differences that do not affect the
@@ -500,8 +808,6 @@ as SUPERSCRIPT THREE to the standard forms
(in this case DIGIT THREE). Formatting information
may be lost but for most text operations such
characters should be considered the same.
-For example, g_utf8_collate() normalizes
-with %G_NORMALIZE_ALL as its first step.
%G_NORMALIZE_DEFAULT_COMPOSE and %G_NORMALIZE_ALL_COMPOSE
are like %G_NORMALIZE_DEFAULT and %G_NORMALIZE_ALL,
@@ -527,8 +833,29 @@ less capable Unicode handling.
</parameter_description>
</parameter>
</parameters>
-<return> a newly allocated string, that is the
-normalized form of @str.
+<return> a newly allocated string, that is the
+normalized form of @str, or %NULL if @str is not
+valid UTF-8.
+</return>
+</function>
+
+<function name="g_type_interface_prerequisites">
+<description>
+Returns: a newly-allocated zero-terminated array of #GType containing
+
+</description>
+<parameters>
+<parameter name="interface_type">
+<parameter_description> an interface type
+</parameter_description>
+</parameter>
+<parameter name="n_prerequisites">
+<parameter_description> location to return the number of prerequisites, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly-allocated zero-terminated array of #GType containing
+the prerequisites of @interface_type
</return>
</function>
@@ -559,6 +886,39 @@ Since: 2.14
</return>
</function>
+<function name="g_signal_connect_closure_by_id">
+<description>
+Connects a closure to a signal for a particular object.
+
+
+</description>
+<parameters>
+<parameter name="instance">
+<parameter_description> the instance to connect to.
+</parameter_description>
+</parameter>
+<parameter name="signal_id">
+<parameter_description> the id of the signal.
+</parameter_description>
+</parameter>
+<parameter name="detail">
+<parameter_description> the detail.
+</parameter_description>
+</parameter>
+<parameter name="closure">
+<parameter_description> the closure to connect.
+</parameter_description>
+</parameter>
+<parameter name="after">
+<parameter_description> whether the handler should be called before or after the
+default handler of the signal.
+</parameter_description>
+</parameter>
+</parameters>
+<return> the handler id
+</return>
+</function>
+
<function name="g_qsort_with_data">
<description>
This is just like the standard C qsort() function, but
@@ -646,6 +1006,22 @@ Since: 2.2
</return>
</function>
+<function name="g_value_get_string">
+<description>
+Get the contents of a %G_TYPE_STRING #GValue.
+
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of type %G_TYPE_STRING
+</parameter_description>
+</parameter>
+</parameters>
+<return> string content of @value
+</return>
+</function>
+
<function name="g_get_tmp_dir">
<description>
Gets the directory to use for temporary files. This is found from
@@ -691,7 +1067,7 @@ the Single Unix Specification.
</parameter_description>
</parameter>
<parameter name="n">
-<parameter_description> the maximum number of characters to produce (including the
+<parameter_description> the maximum number of bytes to produce (including the
terminating nul character).
</parameter_description>
</parameter>
@@ -705,7 +1081,7 @@ terminating nul character).
</parameter_description>
</parameter>
</parameters>
-<return> the number of characters which would be produced if the buffer
+<return> the number of bytes which would be produced if the buffer
was large enough.
</return>
</function>
@@ -764,6 +1140,54 @@ Increases the reference count on a #GMainContext object by one.
</return>
</function>
+<function name="SECTION">
+<description>
+The GType API is the foundation of the GObject system. It provides the
+facilities for registering and managing all fundamental data types,
+user-defined object and interface types. Before using any GType
+or GObject functions, g_type_init() must be called to initialize the
+type system.
+
+For type creation and registration purposes, all types fall into one of
+two categories: static or dynamic. Static types are never loaded or
+unloaded at run-time as dynamic types may be. Static types are created
+with g_type_register_static() that gets type specific information passed
+in via a #GTypeInfo structure.
+Dynamic types are created with g_type_register_dynamic() which takes a
+#GTypePlugin structure instead. The remaining type information (the
+#GTypeInfo structure) is retrieved during runtime through #GTypePlugin
+and the g_type_plugin_*() API.
+These registration functions are usually called only once from a
+function whose only purpose is to return the type identifier for a
+specific class. Once the type (or class or interface) is registered,
+it may be instantiated, inherited, or implemented depending on exactly
+what sort of type it is.
+There is also a third registration function for registering fundamental
+types called g_type_register_fundamental() which requires both a #GTypeInfo
+structure and a #GTypeFundamentalInfo structure but it is seldom used
+since most fundamental types are predefined rather than user-defined.
+
+A final word about type names.
+Such an identifier needs to be at least three characters long. There is no
+upper length limit. The first character needs to be a letter (a-z or A-Z)
+or an underscore &apos;_&apos;. Subsequent characters can be letters, numbers or
+any of &apos;-_+&apos;.
+
+</description>
+<parameters>
+<parameter name="short_description">
+<parameter_description> The GLib Runtime type identification and
+management system
+</parameter_description>
+</parameter>
+<parameter name="title">
+<parameter_description>Type Information
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_set_application_name">
<description>
Sets a human-readable name for the application. This name should be
@@ -778,6 +1202,7 @@ be called once.
The application name will be used in contexts such as error messages,
or when displaying an application&apos;s name in the task list.
+Since: 2.2
</description>
<parameters>
@@ -792,7 +1217,7 @@ or when displaying an application&apos;s name in the task list.
<function name="g_main_context_acquire">
<description>
Tries to become the owner of the specified context.
-If some other context is the owner of the context,
+If some other thread is the owner of the context,
Return value: %TRUE if the operation succeeded, and
</description>
@@ -807,6 +1232,19 @@ this thread is now the owner of @context.
</return>
</function>
+<function name="g_test_timer_start">
+<description>
+Start a timing test. Call g_test_timer_elapsed() when the task is supposed
+to be done. Call this function again to restart the timer.
+
+Since: 2.16
+
+</description>
+<parameters>
+</parameters>
+<return></return>
+</function>
+
<function name="g_match_info_get_string">
<description>
Returns: the string searched with @match_info
@@ -881,12 +1319,61 @@ Since: 2.8
</return>
</function>
+<function name="g_signal_emit_by_name">
+<description>
+Emits a signal.
+
+Note that g_signal_emit_by_name() resets the return value to the default
+if no handlers are connected, in contrast to g_signal_emitv().
+
+</description>
+<parameters>
+<parameter name="instance">
+<parameter_description> the instance the signal is being emitted on.
+</parameter_description>
+</parameter>
+<parameter name="detailed_signal">
+<parameter_description> a string of the form &quot;signal-name::detail&quot;.
+</parameter_description>
+</parameter>
+<parameter name="Varargs">
+<parameter_description> parameters to be passed to the signal, followed by a
+location for the return value. If the return type of the signal
+is #G_TYPE_NONE, the return value location can be omitted.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_value_set_pointer">
+<description>
+Set the contents of a pointer #GValue to @v_pointer.
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of %G_TYPE_POINTER
+</parameter_description>
+</parameter>
+<parameter name="v_pointer">
+<parameter_description> pointer value to be set
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_idle_add_full">
<description>
Adds a function to be called whenever there are no higher priority
events pending. If the function returns %FALSE it is automatically
removed from the list of event sources and will not be called again.
+This internally creates a main loop source using g_idle_source_new()
+and attaches it to the main loop context using g_source_attach().
+You can do these steps manually if you need greater control.
+
</description>
<parameters>
@@ -912,6 +1399,49 @@ range btweeen #G_PRIORITY_DEFAULT_IDLE and #G_PRIORITY_HIGH_IDLE.
</return>
</function>
+<function name="g_type_depth">
+<description>
+Returns: The depth of @type.
+
+</description>
+<parameters>
+<parameter name="type">
+<parameter_description> A #GType value.
+</parameter_description>
+</parameter>
+</parameters>
+<return> The depth of @type.
+</return>
+</function>
+
+<function name="g_enum_register_static">
+<description>
+Registers a new static enumeration type with the name @name.
+
+It is normally more convenient to let &amp;lt;link
+linkend=&quot;glib-mkenums&quot;&amp;gt;glib-mkenums&amp;lt;/link&amp;gt; generate a
+my_enum_get_type() function from a usual C enumeration definition
+than to write one yourself using g_enum_register_static().
+
+
+</description>
+<parameters>
+<parameter name="name">
+<parameter_description> A nul-terminated string used as the name of the new type.
+</parameter_description>
+</parameter>
+<parameter name="const_static_values">
+<parameter_description> An array of #GEnumValue structs for the possible
+enumeration values. The array is terminated by a struct with all
+members being 0. GObject keeps a reference to the data, so it cannot
+be stack-allocated.
+</parameter_description>
+</parameter>
+</parameters>
+<return> The new type identifier.
+</return>
+</function>
+
<function name="g_dir_rewind">
<description>
Resets the given directory. The next call to g_dir_read_name()
@@ -962,6 +1492,24 @@ Since: 2.6
</return>
</function>
+<function name="g_value_set_param">
+<description>
+Set the contents of a %G_TYPE_PARAM #GValue to @param.
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of type %G_TYPE_PARAM
+</parameter_description>
+</parameter>
+<parameter name="param">
+<parameter_description> the #GParamSpec to be set
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_queue_pop_nth">
<description>
Removes the @n&apos;th element of @queue.
@@ -1046,7 +1594,7 @@ the buffer.
</parameter_description>
</parameter>
<parameter name="error">
-<parameter_description> A location to return an error of type #GConvertError
+<parameter_description> a location to return an error of type #GConvertError
or #GIOChannelError.
</parameter_description>
</parameter>
@@ -1055,10 +1603,42 @@ or #GIOChannelError.
</return>
</function>
+<function name="g_slist_prepend">
+<description>
+Adds a new element on to the start of the list.
+
+&amp;lt;note&amp;gt;&amp;lt;para&amp;gt;
+The return value is the new start of the list, which
+may have changed, so make sure you store the new value.
+&amp;lt;/para&amp;gt;&amp;lt;/note&amp;gt;
+
+|[
+/&amp;ast; Notice that it is initialized to the empty list. &amp;ast;/
+GSList *list = NULL;
+list = g_slist_prepend (list, &quot;last&quot;);
+list = g_slist_prepend (list, &quot;first&quot;);
+]|
+
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GSList
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> the data for the new element
+</parameter_description>
+</parameter>
+</parameters>
+<return> the new start of the #GSList
+</return>
+</function>
+
<function name="g_key_file_set_boolean_list">
<description>
-Associates a list of boolean values with @key under
-@group_name. If @key cannot be found then it is created.
+Associates a list of boolean values with @key under @group_name.
+If @key cannot be found then it is created.
If @group_name is %NULL, the start_group is used.
Since: 2.6
@@ -1089,6 +1669,26 @@ Since: 2.6
<return></return>
</function>
+<function name="g_value_set_object_take_ownership">
+<description>
+This is an internal function introduced mainly for C marshallers.
+
+Deprecated: 2.4: Use g_value_take_object() instead.
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of %G_TYPE_OBJECT derived type
+</parameter_description>
+</parameter>
+<parameter name="v_object">
+<parameter_description> object value to be set
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_rand_double">
<description>
Return value: A random number.
@@ -1104,6 +1704,36 @@ Return value: A random number.
</return>
</function>
+<function name="g_object_set_data_full">
+<description>
+Like g_object_set_data() except it adds notification
+for when the association is destroyed, either by setting it
+to a different value or when the object is destroyed.
+
+Note that the @destroy callback is not called if @data is %NULL.
+
+</description>
+<parameters>
+<parameter name="object">
+<parameter_description> #GObject containing the associations
+</parameter_description>
+</parameter>
+<parameter name="key">
+<parameter_description> name of the key
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> data to associate with that key
+</parameter_description>
+</parameter>
+<parameter name="destroy">
+<parameter_description> function to call when the association is destroyed
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_markup_parse_context_parse">
<description>
Feed some data to the #GMarkupParseContext. The data need not
@@ -1139,31 +1769,28 @@ data may be fed to the #GMarkupParseContext; all errors are fatal.
</return>
</function>
-<function name="g_node_copy_deep">
+<function name="g_main_context_set_poll_func">
<description>
-Recursively copies a #GNode and its data.
+Sets the function to use to handle polling of file descriptors. It
+will be used instead of the poll() system call
+(or GLib&apos;s replacement function, which is used where
+poll() isn&apos;t available).
+This function could possibly be used to integrate the GLib event
+loop with an external event loop.
</description>
<parameters>
-<parameter name="node">
-<parameter_description> a #GNode
-</parameter_description>
-</parameter>
-<parameter name="copy_func">
-<parameter_description> the function which is called to copy the data inside each node,
-or %NULL to use the original data.
+<parameter name="context">
+<parameter_description> a #GMainContext
</parameter_description>
</parameter>
-<parameter name="data">
-<parameter_description> data to pass to @copy_func
+<parameter name="func">
+<parameter_description> the function to call to poll all file descriptors
</parameter_description>
</parameter>
</parameters>
-<return> a new #GNode containing copies of the data in @node.
-
-Since: 2.4
-</return>
+<return></return>
</function>
<function name="g_main_context_iteration">
@@ -1172,10 +1799,14 @@ Runs a single iteration for the given main loop. This involves
checking to see if any event sources are ready to be processed,
then if no events sources are ready and @may_block is %TRUE, waiting
for a source to become ready, then dispatching the highest priority
-events sources that are ready. Note that even when @may_block is %TRUE,
-it is still possible for g_main_context_iteration() to return
-%FALSE, since the the wait may be interrupted for other
-reasons than an event source becoming ready.
+events sources that are ready. Otherwise, if @may_block is %FALSE
+sources are not waited to become ready, only those highest priority
+events sources will be dispatched (if any), that are ready at this
+given moment without further waiting.
+
+Note that even when @may_block is %TRUE, it is still possible for
+g_main_context_iteration() to return %FALSE, since the the wait may
+be interrupted for other reasons than an event source becoming ready.
</description>
@@ -1211,13 +1842,39 @@ for filenames. Use g_filename_to_utf8() to convert it to UTF-8.
</parameter_description>
</parameter>
</parameters>
-<return> A newly allocated string with the contents of the symbolic link,
+<return> A newly-allocated string with the contents of the symbolic link,
or %NULL if an error occurred.
Since: 2.4
</return>
</function>
+<function name="g_param_spec_pool_list">
+<description>
+Gets an array of all #GParamSpec&amp;lt;!-- --&amp;gt;s owned by @owner_type in
+the pool.
+
+
+</description>
+<parameters>
+<parameter name="pool">
+<parameter_description> a #GParamSpecPool
+</parameter_description>
+</parameter>
+<parameter name="owner_type">
+<parameter_description> the owner to look for
+</parameter_description>
+</parameter>
+<parameter name="n_pspecs_p">
+<parameter_description> return location for the length of the returned array
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly allocated array containing pointers to all
+#GParamSpec&amp;lt;!-- --&amp;gt;s owned by @owner_type in the pool
+</return>
+</function>
+
<function name="g_unichar_totitle">
<description>
Converts a character to the titlecase.
@@ -1236,6 +1893,32 @@ If @c is not an uppercase or lowercase character,
</return>
</function>
+<function name="g_signal_lookup">
+<description>
+Given the name of the signal and the type of object it connects to, gets
+the signal&apos;s identifying integer. Emitting the signal by number is
+somewhat faster than using the name each time.
+
+Also tries the ancestors of the given type.
+
+See g_signal_new() for details on allowed signal names.
+
+
+</description>
+<parameters>
+<parameter name="name">
+<parameter_description> the signal&apos;s name.
+</parameter_description>
+</parameter>
+<parameter name="itype">
+<parameter_description> the type that the signal operates on.
+</parameter_description>
+</parameter>
+</parameters>
+<return> the signal&apos;s identifying number, or 0 if no signal was found.
+</return>
+</function>
+
<function name="g_sequence_new">
<description>
Creates a new GSequence. The @data_destroy function, if non-%NULL will
@@ -1271,60 +1954,102 @@ the result is zero, free the loop and free all associated memory.
<return></return>
</function>
-<function name="g_key_file_get_integer_list">
+<function name="g_signal_emit_valist">
<description>
-Return value: the values associated with the key as a list of
+Emits a signal.
+
+Note that g_signal_emit_valist() resets the return value to the default
+if no handlers are connected, in contrast to g_signal_emitv().
</description>
<parameters>
-<parameter name="key_file">
-<parameter_description> a #GKeyFile
+<parameter name="instance">
+<parameter_description> the instance the signal is being emitted on.
</parameter_description>
</parameter>
-<parameter name="group_name">
-<parameter_description> a group name
+<parameter name="signal_id">
+<parameter_description> the signal id
</parameter_description>
</parameter>
-<parameter name="key">
-<parameter_description> a key
+<parameter name="detail">
+<parameter_description> the detail
</parameter_description>
</parameter>
-<parameter name="length">
-<parameter_description> the number of integers returned
+<parameter name="var_args">
+<parameter_description> a list of parameters to be passed to the signal, followed by a
+location for the return value. If the return type of the signal
+is #G_TYPE_NONE, the return value location can be omitted.
</parameter_description>
</parameter>
-<parameter name="error">
-<parameter_description> return location for a #GError
+</parameters>
+<return></return>
+</function>
+
+<function name="g_value_array_new">
+<description>
+Allocate and initialize a new #GValueArray, optionally preserve space
+for @n_prealloced elements. New arrays always contain 0 elements,
+regardless of the value of @n_prealloced.
+
+
+</description>
+<parameters>
+<parameter name="n_prealloced">
+<parameter_description> number of values to preallocate space for
</parameter_description>
</parameter>
</parameters>
-<return> the values associated with the key as a list of
-integers, or %NULL if the key was not found or could not be parsed.
-
-Since: 2.6
+<return> a newly allocated #GValueArray with 0 values
</return>
</function>
-<function name="g_file_error_from_errno">
+<function name="g_async_queue_unref_and_unlock">
<description>
-Gets a #GFileError constant based on the passed-in @errno.
-For example, if you pass in %EEXIST this function returns
-#G_FILE_ERROR_EXIST. Unlike @errno values, you can portably
-assume that all #GFileError values will exist.
+Decreases the reference count of the asynchronous @queue by 1 and
+releases the lock. This function must be called while holding the
+@queue&apos;s lock. If the reference count went to 0, the @queue will be
+destroyed and the memory allocated will be freed.
-Normally a #GFileError value goes into a #GError returned
-from a function that manipulates files. So you would use
-g_file_error_from_errno() when constructing a #GError.
+@Deprecated: Since 2.8, reference counting is done atomically
+so g_async_queue_unref() can be used regardless of the @queue&apos;s
+lock.
+
+</description>
+<parameters>
+<parameter name="queue">
+<parameter_description> a #GAsyncQueue.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_bookmark_file_get_added">
+<description>
+Gets the time the bookmark for @uri was added to @bookmark
+
+In the event the URI cannot be found, -1 is returned and
+@error is set to #G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND.
</description>
<parameters>
-<parameter name="err_no">
-<parameter_description> an &quot;errno&quot; value
+<parameter name="bookmark">
+<parameter_description> a #GBookmarkFile
+</parameter_description>
+</parameter>
+<parameter name="uri">
+<parameter_description> a valid URI
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> return location for a #GError, or %NULL
</parameter_description>
</parameter>
</parameters>
-<return> #GFileError corresponding to the given @errno
+<return> a timestamp
+
+Since: 2.12
</return>
</function>
@@ -1490,6 +2215,22 @@ g_free(). Otherwise %NULL and @error will be set.
</return>
</function>
+<function name="g_value_get_uint64">
+<description>
+Get the contents of a %G_TYPE_UINT64 #GValue.
+
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of type %G_TYPE_UINT64
+</parameter_description>
+</parameter>
+</parameters>
+<return> unsigned 64bit integer contents of @value
+</return>
+</function>
+
<function name="g_sequence_range_get_midpoint">
<description>
Finds an iterator somewhere in the range (@begin, @end). This
@@ -1545,6 +2286,29 @@ file descriptor is polled whenever the results may be needed.
<return></return>
</function>
+<function name="g_test_run_suite">
+<description>
+Execute the tests within @suite and all nested #GTestSuites.
+The test suites to be executed are filtered according to
+test path arguments (-p &amp;lt;replaceable&amp;gt;testpath&amp;lt;/replaceable&amp;gt;)
+as parsed by g_test_init().
+g_test_run_suite() or g_test_run() may only be called once
+in a program.
+
+
+</description>
+<parameters>
+<parameter name="suite">
+<parameter_description> a #GTestSuite
+</parameter_description>
+</parameter>
+</parameters>
+<return> 0 on success
+
+Since: 2.16
+</return>
+</function>
+
<function name="g_option_group_set_translation_domain">
<description>
A convenience function to use gettext() for translating
@@ -1585,6 +2349,76 @@ Since: 2.6
</return>
</function>
+<function name="g_slist_nth">
+<description>
+Gets the element at the given position in a #GSList.
+
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GSList
+</parameter_description>
+</parameter>
+<parameter name="n">
+<parameter_description> the position of the element, counting from 0
+</parameter_description>
+</parameter>
+</parameters>
+<return> the element, or %NULL if the position is off
+the end of the #GSList
+</return>
+</function>
+
+<function name="g_test_trap_fork">
+<description>
+Fork the current test program to execute a test case that might
+not return or that might abort. The forked test case is aborted
+and considered failing if its run time exceeds @usec_timeout.
+
+The forking behavior can be configured with the #GTestTrapFlags flags.
+
+In the following example, the test code forks, the forked child
+process produces some sample output and exits successfully.
+The forking parent process then asserts successful child program
+termination and validates child program outputs.
+
+|[
+static void
+test_fork_patterns (void)
+{
+if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDOUT | G_TEST_TRAP_SILENCE_STDERR))
+{
+g_print (&quot;some stdout text: somagic17\n&quot;);
+g_printerr (&quot;some stderr text: semagic43\n&quot;);
+exit (0); /&amp;ast; successful test run &amp;ast;/
+}
+g_test_trap_assert_passed();
+g_test_trap_assert_stdout (&quot;*somagic17*&quot;);
+g_test_trap_assert_stderr (&quot;*semagic43*&quot;);
+}
+]|
+
+This function is implemented only on Unix platforms.
+
+
+</description>
+<parameters>
+<parameter name="usec_timeout">
+<parameter_description> Timeout for the forked test in micro seconds.
+</parameter_description>
+</parameter>
+<parameter name="test_trap_flags">
+<parameter_description> Flags to modify forking behaviour.
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE for the forked child and %FALSE for the executing parent process.
+
+Since: 2.16
+</return>
+</function>
+
<function name="g_unicode_canonical_ordering">
<description>
Computes the canonical ordering of a string in-place.
@@ -1630,6 +2464,39 @@ the string in place.)
</return>
</function>
+<function name="g_tree_search">
+<description>
+Searches a #GTree using @search_func.
+
+The @search_func is called with a pointer to the key of a key/value pair in
+the tree, and the passed in @user_data. If @search_func returns 0 for a
+key/value pair, then g_tree_search_func() will return the value of that
+pair. If @search_func returns -1, searching will proceed among the
+key/value pairs that have a smaller key; if @search_func returns 1,
+searching will proceed among the key/value pairs that have a larger key.
+
+
+</description>
+<parameters>
+<parameter name="tree">
+<parameter_description> a #GTree.
+</parameter_description>
+</parameter>
+<parameter name="search_func">
+<parameter_description> a function used to search the #GTree.
+</parameter_description>
+</parameter>
+<parameter name="user_data">
+<parameter_description> the data passed as the second argument to the @search_func
+function.
+</parameter_description>
+</parameter>
+</parameters>
+<return> the value corresponding to the found key, or %NULL if the key
+was not found.
+</return>
+</function>
+
<function name="g_bookmark_file_get_groups">
<description>
Retrieves the list of group names of the bookmark for @uri.
@@ -1667,12 +2534,34 @@ Since: 2.12
</return>
</function>
+<function name="g_slist_position">
+<description>
+Gets the position of the given element
+in the #GSList (starting from 0).
+
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GSList
+</parameter_description>
+</parameter>
+<parameter name="llink">
+<parameter_description> an element in the #GSList
+</parameter_description>
+</parameter>
+</parameters>
+<return> the position of the element in the #GSList,
+or -1 if the element is not found
+</return>
+</function>
+
<function name="g_freopen">
<description>
A wrapper for the POSIX freopen() function. The freopen() function
opens a file and associates it with an existing stream.
-See the C library manual for more details about freopen().
+See your C library manual for more details about freopen().
</description>
@@ -1743,6 +2632,32 @@ Since: 2.4
<return></return>
</function>
+<function name="g_param_values_cmp">
+<description>
+Compares @value1 with @value2 according to @pspec, and return -1, 0 or +1,
+if @value1 is found to be less than, equal to or greater than @value2,
+respectively.
+
+
+</description>
+<parameters>
+<parameter name="pspec">
+<parameter_description> a valid #GParamSpec
+</parameter_description>
+</parameter>
+<parameter name="value1">
+<parameter_description> a #GValue of correct type for @pspec
+</parameter_description>
+</parameter>
+<parameter name="value2">
+<parameter_description> a #GValue of correct type for @pspec
+</parameter_description>
+</parameter>
+</parameters>
+<return> -1, 0 or +1, for a less than, equal to or greater than result
+</return>
+</function>
+
<function name="g_str_equal">
<description>
Compares two strings for byte-by-byte equality and returns %TRUE
@@ -1782,6 +2697,24 @@ Since: 2.6
</return>
</function>
+<function name="g_type_class_ref">
+<description>
+Increments the reference count of the class structure belonging to
+@type. This function will demand-create the class if it doesn&apos;t
+exist already.
+
+
+</description>
+<parameters>
+<parameter name="type">
+<parameter_description> Type ID of a classed type.
+</parameter_description>
+</parameter>
+</parameters>
+<return> The #GTypeClass structure for the given type ID.
+</return>
+</function>
+
<function name="g_tree_lookup">
<description>
Gets the value corresponding to the given key. Since a #GTree is
@@ -1805,6 +2738,41 @@ not found.
</return>
</function>
+<function name="g_type_module_set_name">
+<description>
+Sets the name for a #GTypeModule
+
+</description>
+<parameters>
+<parameter name="module">
+<parameter_description> a #GTypeModule.
+</parameter_description>
+</parameter>
+<parameter name="name">
+<parameter_description> a human-readable name to use in error messages.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_hash_table_iter_get_hash_table">
+<description>
+Return value: the #GHashTable associated with @iter.
+
+</description>
+<parameters>
+<parameter name="iter">
+<parameter_description> an initialized #GHashTableIter.
+</parameter_description>
+</parameter>
+</parameters>
+<return> the #GHashTable associated with @iter.
+
+Since: 2.16
+</return>
+</function>
+
<function name="g_hash_table_destroy">
<description>
Destroys all keys and values in the #GHashTable and decrements its
@@ -1854,26 +2822,21 @@ Since: 2.12
</return>
</function>
-<function name="g_bookmark_file_has_item">
+<function name="g_queue_clear">
<description>
-Looks whether the desktop bookmark has an item with its URI set to @uri.
+Removes all the elements in @queue. If queue elements contain
+dynamically-allocated memory, they should be freed first.
+Since: 2.14
</description>
<parameters>
-<parameter name="bookmark">
-<parameter_description> a #GBookmarkFile
-</parameter_description>
-</parameter>
-<parameter name="uri">
-<parameter_description> a valid URI
+<parameter name="queue">
+<parameter_description> a #GQueue
</parameter_description>
</parameter>
</parameters>
-<return> %TRUE if @uri is inside @bookmark, %FALSE otherwise
-
-Since: 2.12
-</return>
+<return></return>
</function>
<function name="g_thread_pool_get_max_idle_time">
@@ -1895,20 +2858,23 @@ Since: 2.10
</return>
</function>
-<function name="g_async_queue_ref">
+<function name="g_tree_height">
<description>
-Increases the reference count of the asynchronous @queue by 1. You
-do not need to hold the lock to call this function.
+Gets the height of a #GTree.
+
+If the #GTree contains no nodes, the height is 0.
+If the #GTree contains only one root node the height is 1.
+If the root node has children the height is 2, etc.
</description>
<parameters>
-<parameter name="queue">
-<parameter_description> a #GAsyncQueue.
+<parameter name="tree">
+<parameter_description> a #GTree.
</parameter_description>
</parameter>
</parameters>
-<return> the @queue that was passed in (since 2.6)
+<return> the height of the #GTree.
</return>
</function>
@@ -1938,6 +2904,119 @@ following bytes
</return>
</function>
+<function name="g_test_timer_last">
+<description>
+Report the last result of g_test_timer_elapsed().
+
+
+</description>
+<parameters>
+</parameters>
+<return> the last result of g_test_timer_elapsed(), as a double
+
+Since: 2.16
+</return>
+</function>
+
+<function name="g_test_log_msg_free">
+<description>
+Internal function for gtester to free test log messages, no ABI guarantees provided.
+
+</description>
+<parameters>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_signal_newv">
+<description>
+Creates a new signal. (This is usually done in the class initializer.)
+
+See g_signal_new() for details on allowed signal names.
+
+
+</description>
+<parameters>
+<parameter name="signal_name">
+<parameter_description> the name for the signal
+</parameter_description>
+</parameter>
+<parameter name="itype">
+<parameter_description> the type this signal pertains to. It will also pertain to
+types which are derived from this type
+</parameter_description>
+</parameter>
+<parameter name="signal_flags">
+<parameter_description> a combination of #GSignalFlags specifying detail of when
+the default handler is to be invoked. You should at least specify
+%G_SIGNAL_RUN_FIRST or %G_SIGNAL_RUN_LAST
+</parameter_description>
+</parameter>
+<parameter name="class_closure">
+<parameter_description> The closure to invoke on signal emission; may be %NULL
+</parameter_description>
+</parameter>
+<parameter name="accumulator">
+<parameter_description> the accumulator for this signal; may be %NULL
+</parameter_description>
+</parameter>
+<parameter name="accu_data">
+<parameter_description> user data for the @accumulator
+</parameter_description>
+</parameter>
+<parameter name="c_marshaller">
+<parameter_description> the function to translate arrays of parameter values to
+signal emissions into C language callback invocations
+</parameter_description>
+</parameter>
+<parameter name="return_type">
+<parameter_description> the type of return value, or #G_TYPE_NONE for a signal
+without a return value
+</parameter_description>
+</parameter>
+<parameter name="n_params">
+<parameter_description> the length of @param_types
+</parameter_description>
+</parameter>
+<parameter name="param_types">
+<parameter_description> an array of types, one for each parameter
+</parameter_description>
+</parameter>
+</parameters>
+<return> the signal id
+</return>
+</function>
+
+<function name="g_slist_find_custom">
+<description>
+Finds an element in a #GSList, using a supplied function to
+find the desired element. It iterates over the list, calling
+the given function which should return 0 when the desired
+element is found. The function takes two #gconstpointer arguments,
+the #GSList element&apos;s data as the first argument and the
+given user data.
+
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GSList
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> user data passed to the function
+</parameter_description>
+</parameter>
+<parameter name="func">
+<parameter_description> the function to call for each element.
+It should return 0 when the desired element is found
+</parameter_description>
+</parameter>
+</parameters>
+<return> the found #GSList element, or %NULL if it is not found
+</return>
+</function>
+
<function name="g_get_user_data_dir">
<description>
Return value: a string owned by GLib that must not be modified
@@ -1951,6 +3030,58 @@ Since: 2.6
</return>
</function>
+<function name="g_dgettext">
+<description>
+This function is a wrapper of dgettext() which does not translate
+the message if the default domain as set with textdomain() has no
+translations for the current locale.
+
+The advantage of using this function over dgettext() proper is that
+libraries using this function (like GTK+) will not use translations
+if the application using the library does not have translations for
+the current locale. This results in a consistent English-only
+interface instead of one having partial translations. For this
+feature to work, the call to textdomain() and setlocale() should
+precede any g_dgettext() invocations. For GTK+, it means calling
+textdomain() before gtk_init or its variants.
+
+This function disables translations if and only if upon its first
+call all the following conditions hold:
+&amp;lt;itemizedlist&amp;gt;
+&amp;lt;listitem&amp;gt;@domain is not %NULL&amp;lt;/listitem&amp;gt;
+&amp;lt;listitem&amp;gt;textdomain() has been called to set a default text domain&amp;lt;/listitem&amp;gt;
+&amp;lt;listitem&amp;gt;there is no translations available for the default text domain
+and the current locale&amp;lt;/listitem&amp;gt;
+&amp;lt;listitem&amp;gt;current locale is not &quot;C&quot; or any English locales (those
+starting with &quot;en_&quot;)&amp;lt;/listitem&amp;gt;
+&amp;lt;/itemizedlist&amp;gt;
+
+Note that this behavior may not be desired for example if an application
+has its untranslated messages in a language other than English. In those
+cases the application should call textdomain() after initializing GTK+.
+
+Applications should normally not use this function directly,
+but use the _() macro for translations.
+
+
+</description>
+<parameters>
+<parameter name="domain">
+<parameter_description> the translation domain to use, or %NULL to use
+the domain set with textdomain()
+</parameter_description>
+</parameter>
+<parameter name="msgid">
+<parameter_description> message to translate
+</parameter_description>
+</parameter>
+</parameters>
+<return> The translated string
+
+Since: 2.18
+</return>
+</function>
+
<function name="g_ascii_strncasecmp">
<description>
Compare @s1 and @s2, ignoring the case of ASCII characters and any
@@ -2001,22 +3132,43 @@ memory will be destroyed.
<return></return>
</function>
-<function name="g_hash_table_ref">
+<function name="g_iconv_close">
<description>
-Atomically increments the reference count of @hash_table by one.
-This function is MT-safe and may be called from any thread.
+Same as the standard UNIX routine iconv_close(), but
+may be implemented via libiconv on UNIX flavors that lack
+a native implementation. Should be called to clean up
+the conversion descriptor from g_iconv_open() when
+you are done converting things.
+
+GLib provides g_convert() and g_locale_to_utf8() which are likely
+more convenient than the raw iconv wrappers.
</description>
<parameters>
-<parameter name="hash_table">
-<parameter_description> a valid #GHashTable.
+<parameter name="converter">
+<parameter_description> a conversion descriptor from g_iconv_open()
</parameter_description>
</parameter>
</parameters>
-<return> the passed in #GHashTable.
+<return> -1 on error, 0 on success
+</return>
+</function>
-Since: 2.10
+<function name="g_option_context_get_help_enabled">
+<description>
+Returns: %TRUE if automatic help generation is turned on.
+
+</description>
+<parameters>
+<parameter name="context">
+<parameter_description> a #GOptionContext
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE if automatic help generation is turned on.
+
+Since: 2.6
</return>
</function>
@@ -2056,6 +3208,22 @@ more than one element.
<return></return>
</function>
+<function name="g_type_get_plugin">
+<description>
+Returns: The corresponding plugin if @type is a dynamic type,
+
+</description>
+<parameters>
+<parameter name="type">
+<parameter_description> The #GType to retrieve the plugin for.
+</parameter_description>
+</parameter>
+</parameters>
+<return> The corresponding plugin if @type is a dynamic type,
+%NULL otherwise.
+</return>
+</function>
+
<function name="g_unichar_iswide">
<description>
Determines if a character is typically rendered in a double-width
@@ -2073,6 +3241,29 @@ cell.
</return>
</function>
+<function name="g_slist_remove_link">
+<description>
+Removes an element from a #GSList, without
+freeing the element. The removed element&apos;s next
+link is set to %NULL, so that it becomes a
+self-contained list with one element.
+
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GSList
+</parameter_description>
+</parameter>
+<parameter name="link_">
+<parameter_description> an element in the #GSList
+</parameter_description>
+</parameter>
+</parameters>
+<return> the new start of the #GSList, without the element
+</return>
+</function>
+
<function name="g_strdown">
<description>
Converts a string to lower case.
@@ -2124,6 +3315,42 @@ Since: 2.4
</return>
</function>
+<function name="g_value_set_int64">
+<description>
+Set the contents of a %G_TYPE_INT64 #GValue to @v_int64.
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of type %G_TYPE_INT64
+</parameter_description>
+</parameter>
+<parameter name="v_int64">
+<parameter_description> 64bit integer value to be set
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_value_set_boxed">
+<description>
+Set the contents of a %G_TYPE_BOXED derived #GValue to @v_boxed.
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of %G_TYPE_BOXED derived type
+</parameter_description>
+</parameter>
+<parameter name="v_boxed">
+<parameter_description> boxed value to be set
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_regex_get_capture_count">
<description>
Returns: the number of capturing subpatterns
@@ -2146,9 +3373,8 @@ Since: 2.14
Associates a function with @group which will be called
from g_option_context_parse() when an error occurs.
-Note that the user data to be passed to @pre_parse_func and
-@post_parse_func can be specified when constructing the group
-with g_option_group_new().
+Note that the user data to be passed to @error_func can be
+specified when constructing the group with g_option_group_new().
Since: 2.6
@@ -2184,6 +3410,71 @@ character, though it&apos;s normally a string terminator.
</return>
</function>
+<function name="g_slist_free_1">
+<description>
+Frees one #GSList element.
+It is usually used after g_slist_remove_link().
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GSList element
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_object_thaw_notify">
+<description>
+Reverts the effect of a previous call to
+g_object_freeze_notify(). The freeze count is decreased on @object
+and when it reaches zero, all queued &quot;notify&quot; signals are emitted.
+
+It is an error to call this function when the freeze count is zero.
+
+</description>
+<parameters>
+<parameter name="object">
+<parameter_description> a #GObject
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_hash_table_iter_init">
+<description>
+Initializes a key/value pair iterator and associates it with
+@hash_table. Modifying the hash table after calling this function
+invalidates the returned iterator.
+|[
+GHashTableIter iter;
+gpointer key, value;
+
+g_hash_table_iter_init (&amp;iter, hash_table);
+while (g_hash_table_iter_next (&amp;iter, &amp;key, &amp;value))
+{
+/&amp;ast; do something with key and value &amp;ast;/
+}
+]|
+
+Since: 2.16
+
+</description>
+<parameters>
+<parameter name="iter">
+<parameter_description> an uninitialized #GHashTableIter.
+</parameter_description>
+</parameter>
+<parameter name="hash_table">
+<parameter_description> a #GHashTable.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_thread_pool_free">
<description>
Frees all resources allocated for @pool.
@@ -2218,6 +3509,27 @@ After calling this function @pool must not be used anymore.
<return></return>
</function>
+<function name="g_flags_get_value_by_nick">
+<description>
+Looks up a #GFlagsValue by nickname.
+
+
+</description>
+<parameters>
+<parameter name="flags_class">
+<parameter_description> a #GFlagsClass
+</parameter_description>
+</parameter>
+<parameter name="nick">
+<parameter_description> the nickname to look up
+</parameter_description>
+</parameter>
+</parameters>
+<return> the #GFlagsValue with nickname @nick, or %NULL if there is
+no flag with that nickname
+</return>
+</function>
+
<function name="g_bookmark_file_get_modified">
<description>
Gets the time when the bookmark for @uri was last modified.
@@ -2247,6 +3559,48 @@ Since: 2.12
</return>
</function>
+<function name="g_value_take_string">
+<description>
+Sets the contents of a %G_TYPE_STRING #GValue to @v_string.
+
+Since: 2.4
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of type %G_TYPE_STRING
+</parameter_description>
+</parameter>
+<parameter name="v_string">
+<parameter_description> string to take ownership of
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_type_default_interface_unref">
+<description>
+Decrements the reference count for the type corresponding to the
+interface default vtable @g_iface. If the type is dynamic, then
+when no one is using the interface and all references have
+been released, the finalize function for the interface&apos;s default
+vtable (the &amp;lt;structfield&amp;gt;class_finalize&amp;lt;/structfield&amp;gt; member of
+#GTypeInfo) will be called.
+
+Since: 2.4
+
+</description>
+<parameters>
+<parameter name="g_iface">
+<parameter_description> the default vtable structure for a interface, as
+returned by g_type_default_interface_ref()
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_utf8_prev_char">
<description>
Finds the previous UTF-8 character in the string before @p.
@@ -2268,6 +3622,84 @@ character of the string, you must use g_utf8_find_prev_char() instead.
</return>
</function>
+<function name="g_cclosure_marshal_VOID__VOID">
+<description>
+A marshaller for a #GCClosure with a callback of type
+&amp;lt;literal&amp;gt;void (*callback) (gpointer instance, gpointer user_data)&amp;lt;/literal&amp;gt;.
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> ignored
+</parameter_description>
+</parameter>
+<parameter name="n_param_values">
+<parameter_description> 1
+</parameter_description>
+</parameter>
+<parameter name="param_values">
+<parameter_description> a #GValue array holding only the instance
+</parameter_description>
+</parameter>
+<parameter name="invocation_hint">
+<parameter_description> the invocation hint given as the last argument
+to g_closure_invoke()
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when registering the marshaller
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_param_spec_int64">
+<description>
+Creates a new #GParamSpecInt64 instance specifying a %G_TYPE_INT64 property.
+
+See g_param_spec_internal() for details on property names.
+
+
+</description>
+<parameters>
+<parameter name="name">
+<parameter_description> canonical name of the property specified
+</parameter_description>
+</parameter>
+<parameter name="nick">
+<parameter_description> nick name for the property specified
+</parameter_description>
+</parameter>
+<parameter name="blurb">
+<parameter_description> description of the property specified
+</parameter_description>
+</parameter>
+<parameter name="minimum">
+<parameter_description> minimum value for the property specified
+</parameter_description>
+</parameter>
+<parameter name="maximum">
+<parameter_description> maximum value for the property specified
+</parameter_description>
+</parameter>
+<parameter name="default_value">
+<parameter_description> default value for the property specified
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> flags for the property specified
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly created parameter specification
+</return>
+</function>
+
<function name="g_fprintf">
<description>
An implementation of the standard fprintf() function which supports
@@ -2290,34 +3722,73 @@ positional parameters, as specified in the Single Unix Specification.
</parameter_description>
</parameter>
</parameters>
-<return> the number of characters printed.
+<return> the number of bytes printed.
Since: 2.2
</return>
</function>
-<function name="find_conversion">
+<function name="g_value_set_double">
<description>
-Find the next conversion in a printf-style format string.
-Partially based on code from printf-parser.c,
-Copyright (C) 1999-2000, 2002-2003 Free Software Foundation, Inc.
+Set the contents of a %G_TYPE_DOUBLE #GValue to @v_double.
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of type %G_TYPE_DOUBLE
+</parameter_description>
+</parameter>
+<parameter name="v_double">
+<parameter_description> double value to be set
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_io_channel_write_unichar">
+<description>
+Writes a Unicode character to @channel.
+This function cannot be called on a channel with %NULL encoding.
</description>
<parameters>
-<parameter name="format">
-<parameter_description> a printf-style format string
+<parameter name="channel">
+<parameter_description> a #GIOChannel
</parameter_description>
</parameter>
-<parameter name="after">
-<parameter_description> location to store a pointer to the character after
-the returned conversion. On a %NULL return, returns the
-pointer to the trailing NUL in the string
+<parameter name="thechar">
+<parameter_description> a character
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> location to return an error of type #GConvertError
+or #GIOChannelError
</parameter_description>
</parameter>
</parameters>
-<return> pointer to the next conversion in @format,
-or %NULL, if none.
+<return> a #GIOStatus
+</return>
+</function>
+
+<function name="g_type_name">
+<description>
+Get the unique name that is assigned to a type ID. Note that this
+function (like all other GType API) cannot cope with invalid type
+IDs. %G_TYPE_INVALID may be passed to this function, as may be any
+other validly registered type ID, but randomized type IDs should
+not be passed in and will most likely lead to a crash.
+
+
+</description>
+<parameters>
+<parameter name="type">
+<parameter_description> Type to return name for.
+</parameter_description>
+</parameter>
+</parameters>
+<return> Static type name or %NULL.
</return>
</function>
@@ -2366,31 +3837,6 @@ errors. Any of the errors in #GConvertError may occur.
</return>
</function>
-<function name="g_get_host_name">
-<description>
-Return a name for the machine.
-
-The returned name is not necessarily a fully-qualified domain name,
-or even present in DNS or some other name service at all. It need
-not even be unique on your local network or site, but usually it
-is. Callers should not rely on the return value having any specific
-properties like uniqueness for security purposes. Even if the name
-of the machine is changed while an application is running, the
-return value from this function does not change. The returned
-string is owned by GLib and should not be modified or freed. If no
-name can be determined, a default fixed string &quot;localhost&quot; is
-returned.
-
-
-</description>
-<parameters>
-</parameters>
-<return> the host name of the machine.
-
-Since: 2.8
-</return>
-</function>
-
<function name="g_spawn_command_line_async">
<description>
A simple version of g_spawn_async() that parses a command line with
@@ -2419,6 +3865,75 @@ The same concerns on Windows apply as for g_spawn_command_line_sync().
</return>
</function>
+<function name="g_value_set_instance">
+<description>
+Sets @value from an instantiatable type via the
+value_table&apos;s collect_value() function.
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> An initialized #GValue structure.
+</parameter_description>
+</parameter>
+<parameter name="instance">
+<parameter_description> the instance
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_type_free_instance">
+<description>
+Frees an instance of a type, returning it to the instance pool for
+the type, if there is one.
+
+Like g_type_create_instance(), this function is reserved for
+implementors of fundamental types.
+
+</description>
+<parameters>
+<parameter name="instance">
+<parameter_description> an instance of a type.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_signal_emitv">
+<description>
+Emits a signal.
+
+Note that g_signal_emitv() doesn&apos;t change @return_value if no handlers are
+connected, in contrast to g_signal_emit() and g_signal_emit_valist().
+
+</description>
+<parameters>
+<parameter name="instance_and_params">
+<parameter_description> argument list for the signal emission. The first
+element in the array is a #GValue for the instance the signal is
+being emitted on. The rest are any arguments to be passed to the
+signal.
+</parameter_description>
+</parameter>
+<parameter name="signal_id">
+<parameter_description> the signal id
+</parameter_description>
+</parameter>
+<parameter name="detail">
+<parameter_description> the detail
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> Location to store the return value of the signal emission.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_hash_table_lookup">
<description>
Looks up a key in a #GHashTable. Note that this function cannot
@@ -2442,6 +3957,35 @@ g_hash_table_lookup_extended().
</return>
</function>
+<function name="g_type_plugin_complete_interface_info">
+<description>
+Calls the @complete_interface_info function from the
+#GTypePluginClass of @plugin. There should be no need to use this
+function outside of the GObject type system itself.
+
+</description>
+<parameters>
+<parameter name="plugin">
+<parameter_description> the #GTypePlugin
+</parameter_description>
+</parameter>
+<parameter name="instance_type">
+<parameter_description> the #GType of an instantiable type to which the interface
+is added
+</parameter_description>
+</parameter>
+<parameter name="interface_type">
+<parameter_description> the #GType of the interface whose info is completed
+</parameter_description>
+</parameter>
+<parameter name="info">
+<parameter_description> the #GInterfaceInfo to fill in
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_random_double_range">
<description>
Return value: A random number.
@@ -2461,6 +4005,50 @@ Return value: A random number.
</return>
</function>
+<function name="g_signal_chain_from_overridden">
+<description>
+Calls the original class closure of a signal. This function should only
+be called from an overridden class closure; see
+g_signal_override_class_closure() and
+g_signal_override_class_handler().
+
+</description>
+<parameters>
+<parameter name="instance_and_params">
+<parameter_description> the argument list of the signal emission. The first
+element in the array is a #GValue for the instance the signal is being
+emitted on. The rest are any arguments to be passed to the signal.
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> Location for the return value.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_path_get_basename">
+<description>
+Gets the last component of the filename. If @file_name ends with a
+directory separator it gets the component before the last slash. If
+@file_name consists only of directory separators (and on Windows,
+possibly a drive letter), a single separator is returned. If
+@file_name is empty, it gets &quot;.&quot;.
+
+
+</description>
+<parameters>
+<parameter name="file_name">
+<parameter_description> the name of the file.
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly allocated string containing the last component of
+the filename.
+</return>
+</function>
+
<function name="g_time_val_add">
<description>
Adds the given number of microseconds to @time_. @microseconds can
@@ -2483,8 +4071,7 @@ also be negative to decrease the value of @time_.
<function name="g_key_file_set_double">
<description>
Associates a new double value with @key under @group_name.
-If @key cannot be found then it is created. If @group_name
-is %NULL, the start group is used.
+If @key cannot be found then it is created.
Since: 2.12
@@ -2510,6 +4097,71 @@ Since: 2.12
<return></return>
</function>
+<function name="g_value_set_gtype">
+<description>
+Set the contents of a %G_TYPE_GTYPE #GValue to @v_gtype.
+
+Since: 2.12
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of type %G_TYPE_GTYPE
+</parameter_description>
+</parameter>
+<parameter name="v_gtype">
+<parameter_description> #GType to be set
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_test_add_data_func">
+<description>
+Create a new test case, similar to g_test_create_case(). However
+the test is assumed to use no fixture, and test suites are automatically
+created on the fly and added to the root fixture, based on the
+slash-separated portions of @testpath. The @test_data argument
+will be passed as first argument to @test_func.
+
+Since: 2.16
+
+</description>
+<parameters>
+<parameter name="testpath">
+<parameter_description> Slash-separated test case path name for the test.
+</parameter_description>
+</parameter>
+<parameter name="test_data">
+<parameter_description> Test data argument for the test function.
+</parameter_description>
+</parameter>
+<parameter name="test_func">
+<parameter_description> The test function to invoke for this test.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_value_fits_pointer">
+<description>
+Determines if @value will fit inside the size of a pointer value.
+This is an internal function introduced mainly for C marshallers.
+
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> An initialized #GValue structure.
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE if @value will fit inside a pointer value.
+</return>
+</function>
+
<function name="g_base64_encode">
<description>
Encode a sequence of binary data into its Base-64 stringified
@@ -2528,33 +4180,59 @@ representation.
</parameter>
</parameters>
<return> a newly allocated, zero-terminated Base-64 encoded
-string representing @data.
+string representing @data. The returned string must
+be freed with g_free().
Since: 2.12
</return>
</function>
-<function name="g_mkdir_with_parents">
+<function name="g_rename">
<description>
-Create a directory if it doesn&apos;t already exist. Create intermediate
-parent directories as needed, too.
+A wrapper for the POSIX rename() function. The rename() function
+renames a file, moving it between directories if required.
+
+See your C library manual for more details about how rename() works
+on your system. It is not possible in general on Windows to rename
+a file that is open to some process.
</description>
<parameters>
-<parameter name="pathname">
-<parameter_description> a pathname in the GLib file name encoding
+<parameter name="oldfilename">
+<parameter_description> a pathname in the GLib file name encoding (UTF-8 on Windows)
</parameter_description>
</parameter>
-<parameter name="mode">
-<parameter_description> permissions to use for newly created directories
+<parameter name="newfilename">
+<parameter_description> a pathname in the GLib file name encoding
</parameter_description>
</parameter>
</parameters>
-<return> 0 if the directory already exists, or was successfully
-created. Returns -1 if an error occurred, with errno set.
+<return> 0 if the renaming succeeded, -1 if an error occurred
-Since: 2.8
+Since: 2.6
+</return>
+</function>
+
+<function name="g_list_position">
+<description>
+Gets the position of the given element
+in the #GList (starting from 0).
+
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GList
+</parameter_description>
+</parameter>
+<parameter name="llink">
+<parameter_description> an element in the #GList
+</parameter_description>
+</parameter>
+</parameters>
+<return> the position of the element in the #GList,
+or -1 if the element is not found
</return>
</function>
@@ -2576,8 +4254,9 @@ in the same line as the usage. For a longer description of the
program functionality that should be displayed as a paragraph
below the usage line, use g_option_context_set_summary().
-Note that the @parameter_string is translated (see
-g_option_context_set_translate_func()).
+Note that the @parameter_string is translated using the
+function set with g_option_context_set_translate_func(), so
+it should normally be passed untranslated.
</description>
@@ -2597,28 +4276,28 @@ Since: 2.6
</return>
</function>
-<function name="g_io_channel_write_unichar">
+<function name="g_closure_new_object">
<description>
-This function cannot be called on a channel with %NULL encoding.
+A variant of g_closure_new_simple() which stores @object in the
+@data field of the closure and calls g_object_watch_closure() on
+@object and the created closure. This function is mainly useful
+when implementing new types of closures.
</description>
<parameters>
-<parameter name="channel">
-<parameter_description> a #GIOChannel
-</parameter_description>
-</parameter>
-<parameter name="thechar">
-<parameter_description> a character
+<parameter name="sizeof_closure">
+<parameter_description> the size of the structure to allocate, must be at least
+&amp;lt;literal&amp;gt;sizeof (GClosure)&amp;lt;/literal&amp;gt;
</parameter_description>
</parameter>
-<parameter name="error">
-<parameter_description> A location to return an error of type #GConvertError
-or #GIOChannelError
+<parameter name="object">
+<parameter_description> a #GObject pointer to store in the @data field of the newly
+allocated #GClosure
</parameter_description>
</parameter>
</parameters>
-<return> a #GIOStatus
+<return> a newly allocated #GClosure
</return>
</function>
@@ -2638,11 +4317,17 @@ g_spawn_close_pid() in the callback function for the source.
GLib supports only a single callback per process id.
+This internally creates a main loop source using
+g_child_watch_source_new() and attaches it to the main loop context
+using g_source_attach(). You can do these steps manually if you
+need greater control.
+
</description>
<parameters>
<parameter name="pid">
-<parameter_description> process id of a child process to watch
+<parameter_description> process id to watch. On POSIX the pid of a child process. On
+Windows a handle for a process (which doesn&apos;t have to be a child).
</parameter_description>
</parameter>
<parameter name="function">
@@ -2660,52 +4345,215 @@ Since: 2.4
</return>
</function>
-<function name="g_async_queue_length_unlocked">
+<function name="g_type_module_use">
<description>
-Return value: the length of the @queue.
+Increases the use count of a #GTypeModule by one. If the
+use count was zero before, the plugin will be loaded.
+
</description>
<parameters>
-<parameter name="queue">
-<parameter_description> a #GAsyncQueue.
+<parameter name="module">
+<parameter_description> a #GTypeModule
</parameter_description>
</parameter>
</parameters>
-<return> the length of the @queue.
+<return> %FALSE if the plugin needed to be loaded and
+loading the plugin failed.
</return>
</function>
-<function name="g_string_chunk_insert">
+<function name="g_type_create_instance">
<description>
-Adds a copy of @string to the #GStringChunk.
-It returns a pointer to the new copy of the string
-in the #GStringChunk. The characters in the string
-can be changed, if necessary, though you should not
-change anything after the end of the string.
+Creates and initializes an instance of @type if @type is valid and
+can be instantiated. The type system only performs basic allocation
+and structure setups for instances: actual instance creation should
+happen through functions supplied by the type&apos;s fundamental type
+implementation. So use of g_type_create_instance() is reserved for
+implementators of fundamental types only. E.g. instances of the
+#GObject hierarchy should be created via g_object_new() and
+&amp;lt;emphasis&amp;gt;never&amp;lt;/emphasis&amp;gt; directly through
+g_type_create_instance() which doesn&apos;t handle things like singleton
+objects or object construction. Note: Do &amp;lt;emphasis&amp;gt;not&amp;lt;/emphasis&amp;gt;
+use this function, unless you&apos;re implementing a fundamental
+type. Also language bindings should &amp;lt;emphasis&amp;gt;not&amp;lt;/emphasis&amp;gt; use
+this function but g_object_new() instead.
-Unlike g_string_chunk_insert_const(), this function
-does not check for duplicates. Also strings added
-with g_string_chunk_insert() will not be searched
-by g_string_chunk_insert_const() when looking for
-duplicates.
+</description>
+<parameters>
+<parameter name="type">
+<parameter_description> An instantiatable type to create an instance for.
+</parameter_description>
+</parameter>
+</parameters>
+<return> An allocated and initialized instance, subject to further
+treatment by the fundamental type implementation.
+</return>
+</function>
+
+<function name="g_list_free">
+<description>
+Frees all of the memory used by a #GList.
+The freed elements are returned to the slice allocator.
+
+&amp;lt;note&amp;gt;&amp;lt;para&amp;gt;
+If list elements contain dynamically-allocated memory,
+they should be freed first.
+&amp;lt;/para&amp;gt;&amp;lt;/note&amp;gt;
</description>
<parameters>
-<parameter name="chunk">
-<parameter_description> a #GStringChunk
+<parameter name="list">
+<parameter_description> a #GList
</parameter_description>
</parameter>
-<parameter name="string">
-<parameter_description> the string to add
+</parameters>
+<return></return>
+</function>
+
+<function name="g_ascii_formatd">
+<description>
+Converts a #gdouble to a string, using the &apos;.&apos; as
+decimal point. To format the number you pass in
+a printf()-style format string. Allowed conversion
+specifiers are &apos;e&apos;, &apos;E&apos;, &apos;f&apos;, &apos;F&apos;, &apos;g&apos; and &apos;G&apos;.
+
+If you just want to want to serialize the value into a
+string, use g_ascii_dtostr().
+
+
+</description>
+<parameters>
+<parameter name="buffer">
+<parameter_description> A buffer to place the resulting string in
+</parameter_description>
+</parameter>
+<parameter name="buf_len">
+<parameter_description> The length of the buffer.
+</parameter_description>
+</parameter>
+<parameter name="format">
+<parameter_description> The printf()-style format to use for the
+code to use for converting.
+</parameter_description>
+</parameter>
+<parameter name="d">
+<parameter_description> The #gdouble to convert
</parameter_description>
</parameter>
</parameters>
-<return> a pointer to the copy of @string within
-the #GStringChunk
+<return> The pointer to the buffer with the converted string.
</return>
</function>
+<function name="g_io_channel_set_buffer_size">
+<description>
+Sets the buffer size.
+
+</description>
+<parameters>
+<parameter name="channel">
+<parameter_description> a #GIOChannel
+</parameter_description>
+</parameter>
+<parameter name="size">
+<parameter_description> the size of the buffer, or 0 to let GLib pick a good size
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="GObject">
+<description>
+The notify signal is emitted on an object when one of its
+properties has been changed. Note that getting this signal
+doesn&apos;t guarantee that the value of the property has actually
+changed, it may also be emitted when the setter for the property
+is called to reinstate the previous value.
+
+This signal is typically used to obtain change notification for a
+single property, by specifying the property name as a detail in the
+g_signal_connect() call, like this:
+|[
+g_signal_connect (text_view-&amp;gt;buffer, &quot;notify::paste-target-list&quot;,
+G_CALLBACK (gtk_text_view_target_list_notify),
+text_view)
+]|
+It is important to note that you must use
+&amp;lt;link linkend=&quot;canonical-parameter-name&quot;&amp;gt;canonical&amp;lt;/link&amp;gt; parameter names as
+detail strings for the notify signal.
+
+</description>
+<parameters>
+<parameter name="pspec">
+<parameter_description> the #GParamSpec of the property which changed
+</parameter_description>
+</parameter>
+<parameter name="gobject">
+<parameter_description> the object which received the signal.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_node_destroy">
+<description>
+Removes @root and its children from the tree, freeing any memory
+allocated.
+
+</description>
+<parameters>
+<parameter name="root">
+<parameter_description> the root of the tree/subtree to destroy
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_signal_name">
+<description>
+Given the signal&apos;s identifier, finds its name.
+
+Two different signals may have the same name, if they have differing types.
+
+
+</description>
+<parameters>
+<parameter name="signal_id">
+<parameter_description> the signal&apos;s identifying number.
+</parameter_description>
+</parameter>
+</parameters>
+<return> the signal name, or %NULL if the signal number was invalid.
+</return>
+</function>
+
+<function name="g_value_take_boxed">
+<description>
+Sets the contents of a %G_TYPE_BOXED derived #GValue to @v_boxed
+and takes over the ownership of the callers reference to @v_boxed;
+the caller doesn&apos;t have to unref it any more.
+
+Since: 2.4
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of %G_TYPE_BOXED derived type
+</parameter_description>
+</parameter>
+<parameter name="v_boxed">
+<parameter_description> duplicated unowned boxed value to be set
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_find_program_in_path">
<description>
Locates the first executable named @program in the user&apos;s path, in the
@@ -2738,21 +4586,72 @@ full name including the type suffix.
</return>
</function>
-<function name="g_error_free">
+<function name="g_cclosure_new_object_swap">
<description>
-Frees a #GError and associated resources.
+A variant of g_cclosure_new_swap() which uses @object as @user_data
+and calls g_object_watch_closure() on @object and the created
+closure. This function is useful when you have a callback closely
+associated with a #GObject, and want the callback to no longer run
+after the object is is freed.
</description>
<parameters>
-<parameter name="error">
-<parameter_description> a #GError
+<parameter name="callback_func">
+<parameter_description> the function to invoke
+</parameter_description>
+</parameter>
+<parameter name="object">
+<parameter_description> a #GObject pointer to pass to @callback_func
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GCClosure
+</return>
+</function>
+
+<function name="g_value_set_uint">
+<description>
+Set the contents of a %G_TYPE_UINT #GValue to @v_uint.
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of type %G_TYPE_UINT
+</parameter_description>
+</parameter>
+<parameter name="v_uint">
+<parameter_description> unsigned integer value to be set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>
+<function name="g_io_channel_set_flags">
+<description>
+Sets the (writeable) flags in @channel to (@flags &amp; %G_IO_CHANNEL_SET_MASK).
+
+
+</description>
+<parameters>
+<parameter name="channel">
+<parameter_description> a #GIOChannel
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> the flags to set on the IO channel
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> A location to return an error of type #GIOChannelError
+</parameter_description>
+</parameter>
+</parameters>
+<return> the status of the operation.
+</return>
+</function>
+
<function name="g_idle_add">
<description>
Adds a function to be called whenever there are no higher priority
@@ -2778,7 +4677,7 @@ Return value: the ID (greater than 0) of the event source.
<function name="g_string_append_printf">
<description>
Appends a formatted string onto the end of a #GString.
-This function is is similar to g_string_printf() except
+This function is similar to g_string_printf() except
that the text is appended to the #GString.
</description>
@@ -2799,15 +4698,76 @@ that the text is appended to the #GString.
<return></return>
</function>
-<function name="g_random_double">
+<function name="g_io_channel_set_buffered">
<description>
-Return value: A random number.
+The buffering state can only be set if the channel&apos;s encoding
+is %NULL. For any other encoding, the channel must be buffered.
+
+A buffered channel can only be set unbuffered if the channel&apos;s
+internal buffers have been flushed. Newly created channels or
+channels which have returned %G_IO_STATUS_EOF
+not require such a flush. For write-only channels, a call to
+g_io_channel_flush () is sufficient. For all other channels,
+the buffers may be flushed by a call to g_io_channel_seek_position ().
+This includes the possibility of seeking with seek type %G_SEEK_CUR
+and an offset of zero. Note that this means that socket-based
+channels cannot be set unbuffered once they have had data
+read from them.
+
+On unbuffered channels, it is safe to mix read and write
+calls from the new and old APIs, if this is necessary for
+maintaining old code.
+
+The default state of the channel is buffered.
</description>
<parameters>
+<parameter name="channel">
+<parameter_description> a #GIOChannel
+</parameter_description>
+</parameter>
+<parameter name="buffered">
+<parameter_description> whether to set the channel buffered or unbuffered
+</parameter_description>
+</parameter>
</parameters>
-<return> A random number.
-</return>
+<return></return>
+</function>
+
+<function name="g_cclosure_marshal_VOID__PARAM">
+<description>
+A marshaller for a #GCClosure with a callback of type
+&amp;lt;literal&amp;gt;void (*callback) (gpointer instance, GParamSpec *arg1, gpointer user_data)&amp;lt;/literal&amp;gt;.
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> ignored
+</parameter_description>
+</parameter>
+<parameter name="n_param_values">
+<parameter_description> 2
+</parameter_description>
+</parameter>
+<parameter name="param_values">
+<parameter_description> a #GValue array holding the instance and the #GParamSpec* parameter
+</parameter_description>
+</parameter>
+<parameter name="invocation_hint">
+<parameter_description> the invocation hint given as the last argument
+to g_closure_invoke()
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when registering the marshaller
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
</function>
<function name="g_markup_printf_escaped">
@@ -2819,7 +4779,7 @@ want to insert literal strings into XML-style markup
output, without having to worry that the strings
might themselves contain markup.
-&amp;lt;informalexample&amp;gt;&amp;lt;programlisting&amp;gt;
+|[
const char *store = &quot;Fortnum &amp;amp; Mason&quot;;
const char *item = &quot;Tea&quot;;
char *output;
@@ -2829,7 +4789,7 @@ output = g_markup_printf_escaped (&quot;&amp;lt;purchase&amp;gt;&quot;
&quot;&amp;lt;item&amp;gt;&amp;percnt;s&amp;lt;/item&amp;gt;&quot;
&quot;&amp;lt;/purchase&amp;gt;&quot;,
store, item);
-&amp;lt;/programlisting&amp;gt;&amp;lt;/informalexample&amp;gt;
+]|
</description>
@@ -2850,6 +4810,77 @@ Since: 2.4
</return>
</function>
+<function name="g_enum_get_value_by_nick">
+<description>
+Looks up a #GEnumValue by nickname.
+
+
+</description>
+<parameters>
+<parameter name="enum_class">
+<parameter_description> a #GEnumClass
+</parameter_description>
+</parameter>
+<parameter name="nick">
+<parameter_description> the nickname to look up
+</parameter_description>
+</parameter>
+</parameters>
+<return> the #GEnumValue with nickname @nick, or %NULL if the
+enumeration doesn&apos;t have a member with that nickname
+</return>
+</function>
+
+<function name="g_value_get_float">
+<description>
+Get the contents of a %G_TYPE_FLOAT #GValue.
+
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of type %G_TYPE_FLOAT
+</parameter_description>
+</parameter>
+</parameters>
+<return> float contents of @value
+</return>
+</function>
+
+<function name="g_signal_add_emission_hook">
+<description>
+Adds an emission hook for a signal, which will get called for any emission
+of that signal, independent of the instance. This is possible only
+for signals which don&apos;t have #G_SIGNAL_NO_HOOKS flag set.
+
+
+</description>
+<parameters>
+<parameter name="signal_id">
+<parameter_description> the signal identifier, as returned by g_signal_lookup().
+</parameter_description>
+</parameter>
+<parameter name="detail">
+<parameter_description> the detail on which to call the hook.
+</parameter_description>
+</parameter>
+<parameter name="hook_func">
+<parameter_description> a #GSignalEmissionHook function.
+</parameter_description>
+</parameter>
+<parameter name="hook_data">
+<parameter_description> user data for @hook_func.
+</parameter_description>
+</parameter>
+<parameter name="data_destroy">
+<parameter_description> a #GDestroyNotify for @hook_data.
+</parameter_description>
+</parameter>
+</parameters>
+<return> the hook id, for later use with g_signal_remove_emission_hook().
+</return>
+</function>
+
<function name="g_utf8_find_prev_char">
<description>
Given a position @p with a UTF-8 encoded string @str, find the start
@@ -2876,6 +4907,51 @@ it starts with an appropriate byte.
</return>
</function>
+<function name="g_node_insert_before">
+<description>
+Inserts a #GNode beneath the parent before the given sibling.
+
+
+</description>
+<parameters>
+<parameter name="parent">
+<parameter_description> the #GNode to place @node under
+</parameter_description>
+</parameter>
+<parameter name="sibling">
+<parameter_description> the sibling #GNode to place @node before.
+If sibling is %NULL, the node is inserted as the last child of @parent.
+</parameter_description>
+</parameter>
+<parameter name="node">
+<parameter_description> the #GNode to insert
+</parameter_description>
+</parameter>
+</parameters>
+<return> the inserted #GNode
+</return>
+</function>
+
+<function name="g_object_class_list_properties">
+<description>
+Get an array of #GParamSpec* for all properties of a class.
+
+
+</description>
+<parameters>
+<parameter name="oclass">
+<parameter_description> a #GObjectClass
+</parameter_description>
+</parameter>
+<parameter name="n_properties">
+<parameter_description> return location for the length of the returned array
+</parameter_description>
+</parameter>
+</parameters>
+<return> an array of #GParamSpec* which should be freed after use
+</return>
+</function>
+
<function name="g_sequence_search_iter">
<description>
Like g_sequence_search(), but uses
@@ -2978,6 +5054,49 @@ the result is zero, free the context and free all associated memory.
<return></return>
</function>
+<function name="g_enum_complete_type_info">
+<description>
+This function is meant to be called from the complete_type_info()
+function of a #GTypePlugin implementation, as in the following
+example:
+
+|[
+static void
+my_enum_complete_type_info (GTypePlugin *plugin,
+GType g_type,
+GTypeInfo *info,
+GTypeValueTable *value_table)
+{
+static const GEnumValue values[] = {
+{ MY_ENUM_FOO, &quot;MY_ENUM_FOO&quot;, &quot;foo&quot; },
+{ MY_ENUM_BAR, &quot;MY_ENUM_BAR&quot;, &quot;bar&quot; },
+{ 0, NULL, NULL }
+};
+
+g_enum_complete_type_info (type, info, values);
+}
+]|
+
+</description>
+<parameters>
+<parameter name="g_enum_type">
+<parameter_description> the type identifier of the type being completed
+</parameter_description>
+</parameter>
+<parameter name="info">
+<parameter_description> the #GTypeInfo struct to be filled in
+</parameter_description>
+</parameter>
+<parameter name="const_values">
+<parameter_description> An array of #GEnumValue structs for the possible
+enumeration values. The array is terminated by a struct with all
+members being 0.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_listenv">
<description>
Gets the names of all variables set in the environment.
@@ -3000,6 +5119,33 @@ Since: 2.8
</return>
</function>
+<function name="g_flags_register_static">
+<description>
+Registers a new static flags type with the name @name.
+
+It is normally more convenient to let &amp;lt;link
+linkend=&quot;glib-mkenums&quot;&amp;gt;glib-mkenums&amp;lt;/link&amp;gt; generate a
+my_flags_get_type() function from a usual C enumeration definition
+than to write one yourself using g_flags_register_static().
+
+
+</description>
+<parameters>
+<parameter name="name">
+<parameter_description> A nul-terminated string used as the name of the new type.
+</parameter_description>
+</parameter>
+<parameter name="const_static_values">
+<parameter_description> An array of #GFlagsValue structs for the possible
+flags values. The array is terminated by a struct with all members being 0.
+GObject keeps a reference to the data, so it cannot be stack-allocated.
+</parameter_description>
+</parameter>
+</parameters>
+<return> The new type identifier.
+</return>
+</function>
+
<function name="g_timeout_add_seconds">
<description>
Sets a function to be called at regular intervals with the default
@@ -3007,8 +5153,10 @@ priority, #G_PRIORITY_DEFAULT. The function is called repeatedly until
it returns %FALSE, at which point the timeout is automatically destroyed
and the function will not be called again.
-See g_timeout_add_seconds_full() for the differences between
-g_timeout_add() and g_timeout_add_seconds().
+This internally creates a main loop source using
+g_timeout_source_new_seconds() and attaches it to the main loop context
+using g_source_attach(). You can do these steps manually if you need
+greater control. Also see g_timout_add_seconds_full().
</description>
@@ -3032,6 +5180,82 @@ Since: 2.14
</return>
</function>
+<function name="g_dpgettext">
+<description>
+This function is a variant of g_dgettext() which supports
+a disambiguating message context. GNU gettext uses the
+&apos;\004&apos; character to separate the message context and
+message id in @msgctxtid.
+If 0 is passed as @msgidoffset, this function will fall back to
+trying to use the deprecated convention of using &quot;|&quot; as a separation
+character.
+
+This uses g_dgettext() internally. See that functions for differences
+with dgettext() proper.
+
+Applications should normally not use this function directly,
+but use the C_() macro for translations with context.
+
+
+</description>
+<parameters>
+<parameter name="domain">
+<parameter_description> the translation domain to use, or %NULL to use
+the domain set with textdomain()
+</parameter_description>
+</parameter>
+<parameter name="msgctxtid">
+<parameter_description> a combined message context and message id, separated
+by a \004 character
+</parameter_description>
+</parameter>
+<parameter name="msgidoffset">
+<parameter_description> the offset of the message id in @msgctxid
+</parameter_description>
+</parameter>
+</parameters>
+<return> The translated string
+
+Since: 2.16
+</return>
+</function>
+
+<function name="g_value_init">
+<description>
+Initializes @value with the default value of @type.
+
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> A zero-filled (uninitialized) #GValue structure.
+</parameter_description>
+</parameter>
+<parameter name="g_type">
+<parameter_description> Type the #GValue should hold values of.
+</parameter_description>
+</parameter>
+</parameters>
+<return> the #GValue structure that has been passed in
+</return>
+</function>
+
+<function name="g_value_get_char">
+<description>
+Get the contents of a %G_TYPE_CHAR #GValue.
+
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of type %G_TYPE_CHAR
+</parameter_description>
+</parameter>
+</parameters>
+<return> character contents of @value
+</return>
+</function>
+
<function name="g_bookmark_file_set_added">
<description>
Sets the time the bookmark for @uri was added into @bookmark.
@@ -3058,6 +5282,29 @@ Since: 2.12
<return></return>
</function>
+<function name="g_markup_parse_context_end_parse">
+<description>
+Signals to the #GMarkupParseContext that all data has been
+fed into the parse context with g_markup_parse_context_parse().
+This function reports an error if the document isn&apos;t complete,
+for example if elements are still open.
+
+
+</description>
+<parameters>
+<parameter name="context">
+<parameter_description> a #GMarkupParseContext
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> return location for a #GError
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE on success, %FALSE if an error was set
+</return>
+</function>
+
<function name="g_sequence_set">
<description>
Changes the data for the item pointed to by @iter to be @data. If
@@ -3128,6 +5375,27 @@ Equivalent to the UNIX gettimeofday() function, but portable.
<return></return>
</function>
+<function name="g_type_get_qdata">
+<description>
+Obtains data which has previously been attached to @type
+with g_type_set_qdata().
+
+
+</description>
+<parameters>
+<parameter name="type">
+<parameter_description> a #GType
+</parameter_description>
+</parameter>
+<parameter name="quark">
+<parameter_description> a #GQuark id to identify the data
+</parameter_description>
+</parameter>
+</parameters>
+<return> the data, or %NULL if no data was found
+</return>
+</function>
+
<function name="g_unichar_break_type">
<description>
Determines the break type of @c. @c should be a Unicode character
@@ -3217,7 +5485,8 @@ and getting the callback and data
<function name="g_date_set_time">
<description>
-Sets the value of a date from a #GTime value.
+Sets the value of a date from a #GTime value.
+The time to date conversion is done using the user&apos;s current timezone.
@Deprecated:2.10: Use g_date_set_time_t() instead.
@@ -3235,6 +5504,20 @@ Sets the value of a date from a #GTime value.
<return></return>
</function>
+<function name="g_test_timer_elapsed">
+<description>
+Get the time since the last start of the timer with g_test_timer_start().
+
+
+</description>
+<parameters>
+</parameters>
+<return> the time since the last start of the timer, as a double
+
+Since: 2.16
+</return>
+</function>
+
<function name="g_string_new_len">
<description>
Creates a new #GString with @len bytes of the @init buffer.
@@ -3261,6 +5544,102 @@ bytes.
</return>
</function>
+<function name="g_slist_sort">
+<description>
+Sorts a #GSList using the given comparison function.
+
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GSList
+</parameter_description>
+</parameter>
+<parameter name="compare_func">
+<parameter_description> the comparison function used to sort the #GSList.
+This function is passed the data from 2 elements of the #GSList
+and should return 0 if they are equal, a negative value if the
+first element comes before the second, or a positive value if
+the first element comes after the second.
+</parameter_description>
+</parameter>
+</parameters>
+<return> the start of the sorted #GSList
+</return>
+</function>
+
+<function name="g_sequence_insert_sorted_iter">
+<description>
+Like g_sequence_insert_sorted(), but uses
+a #GSequenceIterCompareFunc instead of a #GCompareDataFunc as
+the compare function.
+
+
+</description>
+<parameters>
+<parameter name="seq">
+<parameter_description> a #GSequence
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> data for the new item
+</parameter_description>
+</parameter>
+<parameter name="iter_cmp">
+<parameter_description> the #GSequenceItercompare used to compare iterators in the
+sequence. It is called with two iterators pointing into @seq. It should
+return 0 if the iterators are equal, a negative value if the first
+iterator comes before the second, and a positive value if the second
+iterator comes before the first.
+</parameter_description>
+</parameter>
+<parameter name="cmp_data">
+<parameter_description> user data passed to @cmp_func
+</parameter_description>
+</parameter>
+</parameters>
+<return> a #GSequenceIter pointing to the new item
+
+Since: 2.14
+</return>
+</function>
+
+<function name="g_cclosure_marshal_VOID__FLOAT">
+<description>
+A marshaller for a #GCClosure with a callback of type
+&amp;lt;literal&amp;gt;void (*callback) (gpointer instance, gfloat arg1, gpointer user_data)&amp;lt;/literal&amp;gt;.
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> ignored
+</parameter_description>
+</parameter>
+<parameter name="n_param_values">
+<parameter_description> 2
+</parameter_description>
+</parameter>
+<parameter name="param_values">
+<parameter_description> a #GValue array holding the instance and the #gfloat parameter
+</parameter_description>
+</parameter>
+<parameter name="invocation_hint">
+<parameter_description> the invocation hint given as the last argument
+to g_closure_invoke()
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when registering the marshaller
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_queue_push_tail">
<description>
Adds a new element at the tail of the queue.
@@ -3283,12 +5662,16 @@ Adds a new element at the tail of the queue.
<description>
A wrapper for the POSIX access() function. This function is used to
test a pathname for one or several of read, write or execute
-permissions, or just existence. On Windows, the underlying access()
-function in the C library only checks the READONLY attribute, and
-does not look at the ACL at all. Software that needs to handle file
-permissions on Windows more exactly should use the Win32 API.
+permissions, or just existence.
-See the C library manual for more details about access().
+On Windows, the file protection mechanism is not at all POSIX-like,
+and the underlying function in the C library only checks the
+FAT-style READONLY attribute, and does not look at the ACL of a
+file at all. This function is this in practise almost useless on
+Windows. Software that needs to handle file permissions on Windows
+more exactly should use the Win32 API.
+
+See your C library manual for more details about access().
</description>
@@ -3310,6 +5693,66 @@ Since: 2.8
</return>
</function>
+<function name="g_param_spec_gtype">
+<description>
+Creates a new #GParamSpecGType instance specifying a
+%G_TYPE_GTYPE property.
+
+See g_param_spec_internal() for details on property names.
+
+Since: 2.10
+
+
+</description>
+<parameters>
+<parameter name="name">
+<parameter_description> canonical name of the property specified
+</parameter_description>
+</parameter>
+<parameter name="nick">
+<parameter_description> nick name for the property specified
+</parameter_description>
+</parameter>
+<parameter name="blurb">
+<parameter_description> description of the property specified
+</parameter_description>
+</parameter>
+<parameter name="is_a_type">
+<parameter_description> a #GType whose subtypes are allowed as values
+of the property (use %G_TYPE_NONE for any type)
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> flags for the property specified
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly created parameter specification
+</return>
+</function>
+
+<function name="g_slist_copy">
+<description>
+Copies a #GSList.
+
+&amp;lt;note&amp;gt;&amp;lt;para&amp;gt;
+Note that this is a &quot;shallow&quot; copy. If the list elements
+consist of pointers to data, the pointers are copied but
+the actual data isn&apos;t.
+&amp;lt;/para&amp;gt;&amp;lt;/note&amp;gt;
+
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GSList
+</parameter_description>
+</parameter>
+</parameters>
+<return> a copy of @list
+</return>
+</function>
+
<function name="g_match_info_free">
<description>
Frees all the memory associated with the #GMatchInfo structure.
@@ -3326,6 +5769,105 @@ Since: 2.14
<return></return>
</function>
+<function name="g_object_set_data">
+<description>
+Each object carries around a table of associations from
+strings to pointers. This function lets you set an association.
+
+If the object already had an association with that name,
+the old association will be destroyed.
+
+</description>
+<parameters>
+<parameter name="object">
+<parameter_description> #GObject containing the associations.
+</parameter_description>
+</parameter>
+<parameter name="key">
+<parameter_description> name of the key
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> data to associate with that key
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_signal_new_class_handler">
+<description>
+Creates a new signal. (This is usually done in the class initializer.)
+
+This is a variant of g_signal_new() that takes a C callback instead
+off a class offset for the signal&apos;s class handler. This function
+doesn&apos;t need a function pointer exposed in the class structure of
+an object definition, instead the function pointer is passed
+directly and can be overriden by derived classes with
+g_signal_override_class_closure() or
+g_signal_override_class_handler()and chained to with
+g_signal_chain_from_overridden() or
+g_signal_chain_from_overridden_handler().
+
+See g_signal_new() for information about signal names.
+
+
+</description>
+<parameters>
+<parameter name="signal_name">
+<parameter_description> the name for the signal
+</parameter_description>
+</parameter>
+<parameter name="itype">
+<parameter_description> the type this signal pertains to. It will also pertain to
+types which are derived from this type.
+</parameter_description>
+</parameter>
+<parameter name="signal_flags">
+<parameter_description> a combination of #GSignalFlags specifying detail of when
+the default handler is to be invoked. You should at least specify
+%G_SIGNAL_RUN_FIRST or %G_SIGNAL_RUN_LAST.
+</parameter_description>
+</parameter>
+<parameter name="class_handler">
+<parameter_description> a #GCallback which acts as class implementation of
+this signal. Used to invoke a class method generically. Pass %NULL to
+not associate a class method with this signal.
+</parameter_description>
+</parameter>
+<parameter name="accumulator">
+<parameter_description> the accumulator for this signal; may be %NULL.
+</parameter_description>
+</parameter>
+<parameter name="accu_data">
+<parameter_description> user data for the @accumulator.
+</parameter_description>
+</parameter>
+<parameter name="c_marshaller">
+<parameter_description> the function to translate arrays of parameter values to
+signal emissions into C language callback invocations.
+</parameter_description>
+</parameter>
+<parameter name="return_type">
+<parameter_description> the type of return value, or #G_TYPE_NONE for a signal
+without a return value.
+</parameter_description>
+</parameter>
+<parameter name="n_params">
+<parameter_description> the number of parameter types to follow.
+</parameter_description>
+</parameter>
+<parameter name="Varargs">
+<parameter_description> a list of types, one for each parameter.
+</parameter_description>
+</parameter>
+</parameters>
+<return> the signal id
+
+Since: 2.18
+</return>
+</function>
+
<function name="g_key_file_has_group">
<description>
Looks whether the key file has the group @group_name.
@@ -3348,36 +5890,59 @@ Since: 2.6
</return>
</function>
-<function name="g_strndup">
+<function name="g_param_value_validate">
<description>
-Duplicates the first @n bytes of a string, returning a newly-allocated
-buffer @n + 1 bytes long which will always be nul-terminated.
-If @str is less than @n bytes long the buffer is padded with nuls.
-If @str is %NULL it returns %NULL.
-The returned value should be freed when no longer needed.
-
-&amp;lt;note&amp;gt;&amp;lt;para&amp;gt;
-To copy a number of characters from a UTF-8 encoded string, use
-g_utf8_strncpy() instead.
-&amp;lt;/para&amp;gt;&amp;lt;/note&amp;gt;
+Ensures that the contents of @value comply with the specifications
+set out by @pspec. For example, a #GParamSpecInt might require
+that integers stored in @value may not be smaller than -42 and not be
+greater than +42. If @value contains an integer outside of this range,
+it is modified accordingly, so the resulting value will fit into the
+range -42 .. +42.
</description>
<parameters>
-<parameter name="str">
-<parameter_description> the string to duplicate
+<parameter name="pspec">
+<parameter_description> a valid #GParamSpec
</parameter_description>
</parameter>
-<parameter name="n">
-<parameter_description> the maximum number of bytes to copy from @str
+<parameter name="value">
+<parameter_description> a #GValue of correct type for @pspec
</parameter_description>
</parameter>
</parameters>
-<return> a newly-allocated buffer containing the first @n bytes
-of @str, nul-terminated
+<return> whether modifying @value was necessary to ensure validity
</return>
</function>
+<function name="g_memmove">
+<description>
+Copies a block of memory @len bytes long, from @src to @dest.
+The source and destination areas may overlap.
+
+In order to use this function, you must include
+&amp;lt;filename&amp;gt;string.h&amp;lt;/filename&amp;gt; yourself, because this macro will
+typically simply resolve to memmove() and GLib does not include
+&amp;lt;filename&amp;gt;string.h&amp;lt;/filename&amp;gt; for you.
+
+</description>
+<parameters>
+<parameter name="dest">
+<parameter_description> the destination address to copy the bytes to.
+</parameter_description>
+</parameter>
+<parameter name="src">
+<parameter_description> the source address to copy the bytes from.
+</parameter_description>
+</parameter>
+<parameter name="len">
+<parameter_description> the number of bytes to copy.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_queue_pop_head">
<description>
Removes the first element of the queue.
@@ -3395,6 +5960,87 @@ is empty.
</return>
</function>
+<function name="g_signal_handler_find">
+<description>
+Finds the first signal handler that matches certain selection criteria.
+The criteria mask is passed as an OR-ed combination of #GSignalMatchType
+flags, and the criteria values are passed as arguments.
+The match @mask has to be non-0 for successful matches.
+If no handler was found, 0 is returned.
+
+
+</description>
+<parameters>
+<parameter name="instance">
+<parameter_description> The instance owning the signal handler to be found.
+</parameter_description>
+</parameter>
+<parameter name="mask">
+<parameter_description> Mask indicating which of @signal_id, @detail, @closure, @func
+and/or @data the handler has to match.
+</parameter_description>
+</parameter>
+<parameter name="signal_id">
+<parameter_description> Signal the handler has to be connected to.
+</parameter_description>
+</parameter>
+<parameter name="detail">
+<parameter_description> Signal detail the handler has to be connected to.
+</parameter_description>
+</parameter>
+<parameter name="closure">
+<parameter_description> The closure the handler will invoke.
+</parameter_description>
+</parameter>
+<parameter name="func">
+<parameter_description> The C closure callback of the handler (useless for non-C closures).
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> The closure data of the handler&apos;s closure.
+</parameter_description>
+</parameter>
+</parameters>
+<return> A valid non-0 signal handler id for a successful match.
+</return>
+</function>
+
+<function name="g_cclosure_marshal_VOID__STRING">
+<description>
+A marshaller for a #GCClosure with a callback of type
+&amp;lt;literal&amp;gt;void (*callback) (gpointer instance, const gchar *arg1, gpointer user_data)&amp;lt;/literal&amp;gt;.
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> ignored
+</parameter_description>
+</parameter>
+<parameter name="n_param_values">
+<parameter_description> 2
+</parameter_description>
+</parameter>
+<parameter name="param_values">
+<parameter_description> a #GValue array holding the instance and the #gchar* parameter
+</parameter_description>
+</parameter>
+<parameter name="invocation_hint">
+<parameter_description> the invocation hint given as the last argument
+to g_closure_invoke()
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when registering the marshaller
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_queue_peek_head">
<description>
Returns: the data of the first element in the queue, or %NULL if the queue
@@ -3528,27 +6174,16 @@ Since: 2.14
</return>
</function>
-<function name="g_io_channel_set_flags">
+<function name="g_get_system_data_dirs">
<description>
-Sets the (writeable) flags in @channel to (@flags &amp; %G_IO_CHANNEL_SET_MASK).
-
+Return value: a %NULL-terminated array of strings owned by GLib that must
</description>
<parameters>
-<parameter name="channel">
-<parameter_description> a #GIOChannel.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> the flags to set on the IO channel.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> A location to return an error of type #GIOChannelError.
-</parameter_description>
-</parameter>
</parameters>
-<return> the status of the operation.
+<return> a %NULL-terminated array of strings owned by GLib that must
+not be modified or freed.
+Since: 2.6
</return>
</function>
@@ -3602,27 +6237,114 @@ or %NULL
<return></return>
</function>
-<function name="g_unichar_get_script">
+<function name="g_io_channel_unref">
<description>
-Looks up the #GUnicodeScript for a particular character (as defined
-by Unicode Standard Annex #24). No check is made for @ch being a
-valid Unicode character; if you pass in invalid character, the
-result is undefined.
+Decrements the reference count of a #GIOChannel.
+
+</description>
+<parameters>
+<parameter name="channel">
+<parameter_description> a #GIOChannel
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_utime">
+<description>
+A wrapper for the POSIX utime() function. The utime() function
+sets the access and modification timestamps of a file.
+
+See your C library manual for more details about how utime() works
+on your system.
</description>
<parameters>
-<parameter name="ch">
-<parameter_description> a Unicode character
+<parameter name="filename">
+<parameter_description> a pathname in the GLib file name encoding (UTF-8 on Windows)
+</parameter_description>
+</parameter>
+<parameter name="utb">
+<parameter_description> a pointer to a struct utimbuf.
</parameter_description>
</parameter>
</parameters>
-<return> the #GUnicodeScript for the character.
+<return> 0 if the operation was successful, -1 if an error
+occurred
-Since: 2.14
+Since: 2.18
</return>
</function>
+<function name="g_cclosure_marshal_VOID__BOXED">
+<description>
+A marshaller for a #GCClosure with a callback of type
+&amp;lt;literal&amp;gt;void (*callback) (gpointer instance, GBoxed *arg1, gpointer user_data)&amp;lt;/literal&amp;gt;.
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> ignored
+</parameter_description>
+</parameter>
+<parameter name="n_param_values">
+<parameter_description> 2
+</parameter_description>
+</parameter>
+<parameter name="param_values">
+<parameter_description> a #GValue array holding the instance and the #GBoxed* parameter
+</parameter_description>
+</parameter>
+<parameter name="invocation_hint">
+<parameter_description> the invocation hint given as the last argument
+to g_closure_invoke()
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when registering the marshaller
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_type_module_add_interface">
+<description>
+Registers an additional interface for a type, whose interface lives
+in the given type plugin. If the interface was already registered
+for the type in this plugin, nothing will be done.
+
+As long as any instances of the type exist, the type plugin will
+not be unloaded.
+
+</description>
+<parameters>
+<parameter name="module">
+<parameter_description> a #GTypeModule
+</parameter_description>
+</parameter>
+<parameter name="instance_type">
+<parameter_description> type to which to add the interface.
+</parameter_description>
+</parameter>
+<parameter name="interface_type">
+<parameter_description> interface type to add
+</parameter_description>
+</parameter>
+<parameter name="interface_info">
+<parameter_description> type information structure
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_tree_destroy">
<description>
Destroys the #GTree. If keys and/or values are dynamically allocated, you
@@ -3654,6 +6376,31 @@ Closes the directory and deallocates all related resources.
<return></return>
</function>
+<function name="g_type_class_peek_parent">
+<description>
+This is a convenience function often needed in class initializers.
+It returns the class structure of the immediate parent type of the
+class passed in. Since derived classes hold a reference count on
+their parent classes as long as they are instantiated, the returned
+class will always exist. This function is essentially equivalent
+to:
+
+&amp;lt;programlisting&amp;gt;
+g_type_class_peek (g_type_parent (G_TYPE_FROM_CLASS (g_class)));
+&amp;lt;/programlisting&amp;gt;
+
+
+</description>
+<parameters>
+<parameter name="g_class">
+<parameter_description> The #GTypeClass structure to retrieve the parent class for.
+</parameter_description>
+</parameter>
+</parameters>
+<return> The parent class of @g_class.
+</return>
+</function>
+
<function name="g_string_append_len">
<description>
Appends @len bytes of @val to @string. Because @len is
@@ -3709,6 +6456,140 @@ Since: 2.14
</return>
</function>
+<function name="g_signal_query">
+<description>
+Queries the signal system for in-depth information about a
+specific signal. This function will fill in a user-provided
+structure to hold signal-specific information. If an invalid
+signal id is passed in, the @signal_id member of the #GSignalQuery
+is 0. All members filled into the #GSignalQuery structure should
+be considered constant and have to be left untouched.
+
+</description>
+<parameters>
+<parameter name="signal_id">
+<parameter_description> The signal id of the signal to query information for.
+</parameter_description>
+</parameter>
+<parameter name="query">
+<parameter_description> A user provided structure that is filled in with constant
+values upon success.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_signal_has_handler_pending">
+<description>
+Returns: %TRUE if a handler is connected to the signal, %FALSE
+
+</description>
+<parameters>
+<parameter name="instance">
+<parameter_description> the object whose signal handlers are sought.
+</parameter_description>
+</parameter>
+<parameter name="signal_id">
+<parameter_description> the signal id.
+</parameter_description>
+</parameter>
+<parameter name="detail">
+<parameter_description> the detail.
+</parameter_description>
+</parameter>
+<parameter name="may_be_blocked">
+<parameter_description> whether blocked handlers should count as match.
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE if a handler is connected to the signal, %FALSE
+otherwise.
+</return>
+</function>
+
+<function name="g_enum_get_value">
+<description>
+Returns: the #GEnumValue for @value, or %NULL if @value is not a
+
+</description>
+<parameters>
+<parameter name="enum_class">
+<parameter_description> a #GEnumClass
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> the value to look up
+</parameter_description>
+</parameter>
+</parameters>
+<return> the #GEnumValue for @value, or %NULL if @value is not a
+member of the enumeration
+</return>
+</function>
+
+<function name="g_param_spec_enum">
+<description>
+Creates a new #GParamSpecEnum instance specifying a %G_TYPE_ENUM
+property.
+
+See g_param_spec_internal() for details on property names.
+
+
+</description>
+<parameters>
+<parameter name="name">
+<parameter_description> canonical name of the property specified
+</parameter_description>
+</parameter>
+<parameter name="nick">
+<parameter_description> nick name for the property specified
+</parameter_description>
+</parameter>
+<parameter name="blurb">
+<parameter_description> description of the property specified
+</parameter_description>
+</parameter>
+<parameter name="enum_type">
+<parameter_description> a #GType derived from %G_TYPE_ENUM
+</parameter_description>
+</parameter>
+<parameter name="default_value">
+<parameter_description> default value for the property specified
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> flags for the property specified
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly created parameter specification
+</return>
+</function>
+
+<function name="g_option_context_set_main_group">
+<description>
+Sets a #GOptionGroup as main group of the @context.
+This has the same effect as calling g_option_context_add_group(),
+the only difference is that the options in the main group are
+treated differently when generating &amp;lt;option&amp;gt;--help&amp;lt;/option&amp;gt; output.
+
+Since: 2.6
+
+</description>
+<parameters>
+<parameter name="context">
+<parameter_description> a #GOptionContext
+</parameter_description>
+</parameter>
+<parameter name="group">
+<parameter_description> the group to set as main group
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_queue_push_nth">
<description>
Inserts a new element into @queue at the given position
@@ -3833,7 +6714,7 @@ Since: 2.12
<function name="g_main_context_new">
<description>
-Creates a new #GMainContext strcuture
+Creates a new #GMainContext structure.
</description>
@@ -3871,7 +6752,7 @@ the Single Unix Specification.
</parameter_description>
</parameter>
<parameter name="n">
-<parameter_description> the maximum number of characters to produce (including the
+<parameter_description> the maximum number of bytes to produce (including the
terminating nul character).
</parameter_description>
</parameter>
@@ -3885,11 +6766,70 @@ terminating nul character).
</parameter_description>
</parameter>
</parameters>
-<return> the number of characters which would be produced if the buffer
+<return> the number of bytes which would be produced if the buffer
was large enough.
</return>
</function>
+<function name="g_cclosure_marshal_VOID__DOUBLE">
+<description>
+A marshaller for a #GCClosure with a callback of type
+&amp;lt;literal&amp;gt;void (*callback) (gpointer instance, gdouble arg1, gpointer user_data)&amp;lt;/literal&amp;gt;.
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> ignored
+</parameter_description>
+</parameter>
+<parameter name="n_param_values">
+<parameter_description> 2
+</parameter_description>
+</parameter>
+<parameter name="param_values">
+<parameter_description> a #GValue array holding the instance and the #gdouble parameter
+</parameter_description>
+</parameter>
+<parameter name="invocation_hint">
+<parameter_description> the invocation hint given as the last argument
+to g_closure_invoke()
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when registering the marshaller
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_object_set_valist">
+<description>
+Sets properties on an object.
+
+</description>
+<parameters>
+<parameter name="object">
+<parameter_description> a #GObject
+</parameter_description>
+</parameter>
+<parameter name="first_property_name">
+<parameter_description> name of the first property to set
+</parameter_description>
+</parameter>
+<parameter name="var_args">
+<parameter_description> value for the first property, followed optionally by more
+name/value pairs, followed by %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_time_val_from_iso8601">
<description>
Converts a string containing an ISO 8601 encoded date and time
@@ -3899,7 +6839,7 @@ to a #GTimeVal and puts it into @time_.
</description>
<parameters>
<parameter name="iso_date">
-<parameter_description> a ISO 8601 encoded date string
+<parameter_description> an ISO 8601 encoded date string
</parameter_description>
</parameter>
<parameter name="time_">
@@ -3913,6 +6853,60 @@ Since: 2.12
</return>
</function>
+<function name="g_slist_sort_with_data">
+<description>
+Like g_slist_sort(), but the sort function accepts a user data argument.
+
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GSList
+</parameter_description>
+</parameter>
+<parameter name="compare_func">
+<parameter_description> comparison function
+</parameter_description>
+</parameter>
+<parameter name="user_data">
+<parameter_description> data to pass to comparison function
+</parameter_description>
+</parameter>
+</parameters>
+<return> new head of the list
+</return>
+</function>
+
+<function name="g_key_file_get_value">
+<description>
+Return value: a newly allocated string or %NULL if the specified
+
+</description>
+<parameters>
+<parameter name="key_file">
+<parameter_description> a #GKeyFile
+</parameter_description>
+</parameter>
+<parameter name="group_name">
+<parameter_description> a group name
+</parameter_description>
+</parameter>
+<parameter name="key">
+<parameter_description> a key
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> return location for a #GError, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly allocated string or %NULL if the specified
+key cannot be found.
+
+Since: 2.6
+</return>
+</function>
+
<function name="g_ascii_strup">
<description>
Converts all lower case ASCII letters to upper case ASCII letters.
@@ -3937,6 +6931,38 @@ the string in place.)
</return>
</function>
+<function name="g_set_error_literal">
+<description>
+Does nothing if @err is %NULL; if @err is non-%NULL, then *@err must
+be %NULL. A new #GError is created and assigned to *@err.
+Unlike g_set_error(), @message is not a printf()-style format string.
+Use this function if @message contains text you don&apos;t have control over,
+that could include printf() escape sequences.
+
+Since: 2.18
+
+</description>
+<parameters>
+<parameter name="err">
+<parameter_description> a return location for a #GError, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="domain">
+<parameter_description> error domain
+</parameter_description>
+</parameter>
+<parameter name="code">
+<parameter_description> error code
+</parameter_description>
+</parameter>
+<parameter name="message">
+<parameter_description> error message
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_async_queue_push">
<description>
Pushes the @data into the @queue. @data must not be %NULL.
@@ -3986,16 +7012,105 @@ the last character used in the conversion.
</return>
</function>
-<function name="g_get_system_data_dirs">
+<function name="g_boxed_copy">
<description>
-Return value: a %NULL-terminated array of strings owned by GLib that must
+Provide a copy of a boxed structure @src_boxed which is of type @boxed_type.
+
</description>
<parameters>
+<parameter name="boxed_type">
+<parameter_description> The type of @src_boxed.
+</parameter_description>
+</parameter>
+<parameter name="src_boxed">
+<parameter_description> The boxed structure to be copied.
+</parameter_description>
+</parameter>
</parameters>
-<return> a %NULL-terminated array of strings owned by GLib that must
-not be modified or freed.
-Since: 2.6
+<return> The newly created copy of the boxed structure.
+</return>
+</function>
+
+<function name="g_param_spec_set_qdata">
+<description>
+Sets an opaque, named pointer on a #GParamSpec. The name is
+specified through a #GQuark (retrieved e.g. via
+g_quark_from_static_string()), and the pointer can be gotten back
+from the @pspec with g_param_spec_get_qdata(). Setting a
+previously set user data pointer, overrides (frees) the old pointer
+set, using %NULL as pointer essentially removes the data stored.
+
+</description>
+<parameters>
+<parameter name="pspec">
+<parameter_description> the #GParamSpec to set store a user data pointer
+</parameter_description>
+</parameter>
+<parameter name="quark">
+<parameter_description> a #GQuark, naming the user data pointer
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> an opaque user data pointer
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_param_spec_value_array">
+<description>
+Creates a new #GParamSpecValueArray instance specifying a
+%G_TYPE_VALUE_ARRAY property. %G_TYPE_VALUE_ARRAY is a
+%G_TYPE_BOXED type, as such, #GValue structures for this property
+can be accessed with g_value_set_boxed() and g_value_get_boxed().
+
+See g_param_spec_internal() for details on property names.
+
+
+</description>
+<parameters>
+<parameter name="name">
+<parameter_description> canonical name of the property specified
+</parameter_description>
+</parameter>
+<parameter name="nick">
+<parameter_description> nick name for the property specified
+</parameter_description>
+</parameter>
+<parameter name="blurb">
+<parameter_description> description of the property specified
+</parameter_description>
+</parameter>
+<parameter name="element_spec">
+<parameter_description> a #GParamSpec describing the elements contained in
+arrays of this property, may be %NULL
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> flags for the property specified
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly created parameter specification
+</return>
+</function>
+
+<function name="g_param_spec_ref_sink">
+<description>
+Convenience function to ref and sink a #GParamSpec.
+
+Since: 2.10
+
+</description>
+<parameters>
+<parameter name="pspec">
+<parameter_description> a valid #GParamSpec
+</parameter_description>
+</parameter>
+</parameters>
+<return> the #GParamSpec that was passed into this function
</return>
</function>
@@ -4042,17 +7157,59 @@ expanding it if necessary.
</return>
</function>
-<function name="iconv_cache_expire_unused">
+<function name="g_cclosure_marshal_BOOLEAN__FLAGS">
<description>
-Expires as many unused cache buckets as it needs to in order to get
-the total number of buckets &amp;lt; ICONV_CACHE_SIZE.
+A marshaller for a #GCClosure with a callback of type
+&amp;lt;literal&amp;gt;gboolean (*callback) (gpointer instance, gint arg1, gpointer user_data)&amp;lt;/literal&amp;gt; where the #gint parameter
+denotes a flags type.
</description>
<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> a #GValue which can store the returned #gboolean
+</parameter_description>
+</parameter>
+<parameter name="n_param_values">
+<parameter_description> 2
+</parameter_description>
+</parameter>
+<parameter name="param_values">
+<parameter_description> a #GValue array holding instance and arg1
+</parameter_description>
+</parameter>
+<parameter name="invocation_hint">
+<parameter_description> the invocation hint given as the last argument
+to g_closure_invoke()
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when registering the marshaller
+</parameter_description>
+</parameter>
</parameters>
<return></return>
</function>
+<function name="g_type_qname">
+<description>
+Get the corresponding quark of the type IDs name.
+
+
+</description>
+<parameters>
+<parameter name="type">
+<parameter_description> Type to return quark of type name for.
+</parameter_description>
+</parameter>
+</parameters>
+<return> The type names quark or 0.
+</return>
+</function>
+
<function name="g_string_append_unichar">
<description>
Converts a Unicode character into UTF-8, and appends it
@@ -4074,6 +7231,77 @@ to the string.
</return>
</function>
+<function name="g_hash_table_iter_next">
+<description>
+Advances @iter and retrieves the key and/or value that are now
+pointed to as a result of this advancement. If %FALSE is returned,
+@key and @value are not set, and the iterator becomes invalid.
+
+
+</description>
+<parameters>
+<parameter name="iter">
+<parameter_description> an initialized #GHashTableIter.
+</parameter_description>
+</parameter>
+<parameter name="key">
+<parameter_description> a location to store the key, or %NULL.
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> a location to store the value, or %NULL.
+</parameter_description>
+</parameter>
+</parameters>
+<return> %FALSE if the end of the #GHashTable has been reached.
+
+Since: 2.16
+</return>
+</function>
+
+<function name="g_param_spec_uint64">
+<description>
+Creates a new #GParamSpecUInt64 instance specifying a %G_TYPE_UINT64
+property.
+
+See g_param_spec_internal() for details on property names.
+
+
+</description>
+<parameters>
+<parameter name="name">
+<parameter_description> canonical name of the property specified
+</parameter_description>
+</parameter>
+<parameter name="nick">
+<parameter_description> nick name for the property specified
+</parameter_description>
+</parameter>
+<parameter name="blurb">
+<parameter_description> description of the property specified
+</parameter_description>
+</parameter>
+<parameter name="minimum">
+<parameter_description> minimum value for the property specified
+</parameter_description>
+</parameter>
+<parameter name="maximum">
+<parameter_description> maximum value for the property specified
+</parameter_description>
+</parameter>
+<parameter name="default_value">
+<parameter_description> default value for the property specified
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> flags for the property specified
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly created parameter specification
+</return>
+</function>
+
<function name="g_option_context_get_ignore_unknown_options">
<description>
Returns: %TRUE if unknown options are ignored.
@@ -4091,6 +7319,26 @@ Since: 2.6
</return>
</function>
+<function name="g_object_remove_weak_pointer">
+<description>
+Removes a weak reference from @object that was previously added
+using g_object_add_weak_pointer(). The @weak_pointer_location has
+to match the one used with g_object_add_weak_pointer().
+
+</description>
+<parameters>
+<parameter name="object">
+<parameter_description> The object that is weak referenced.
+</parameter_description>
+</parameter>
+<parameter name="weak_pointer_location">
+<parameter_description> The memory address of a pointer.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_regex_split_full">
<description>
Breaks the string on the pattern, and returns an array of the tokens.
@@ -4154,6 +7402,59 @@ Since: 2.14
</return>
</function>
+<function name="g_value_set_boolean">
+<description>
+Set the contents of a %G_TYPE_BOOLEAN #GValue to @v_boolean.
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of type %G_TYPE_BOOLEAN
+</parameter_description>
+</parameter>
+<parameter name="v_boolean">
+<parameter_description> boolean value to be set
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_param_spec_boxed">
+<description>
+Creates a new #GParamSpecBoxed instance specifying a %G_TYPE_BOXED
+derived property.
+
+See g_param_spec_internal() for details on property names.
+
+
+</description>
+<parameters>
+<parameter name="name">
+<parameter_description> canonical name of the property specified
+</parameter_description>
+</parameter>
+<parameter name="nick">
+<parameter_description> nick name for the property specified
+</parameter_description>
+</parameter>
+<parameter name="blurb">
+<parameter_description> description of the property specified
+</parameter_description>
+</parameter>
+<parameter name="boxed_type">
+<parameter_description> %G_TYPE_BOXED derived type of this property
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> flags for the property specified
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly created parameter specification
+</return>
+</function>
+
<function name="g_utf8_offset_to_pointer">
<description>
Converts from an integer character offset to a pointer to a position
@@ -4182,9 +7483,9 @@ since moving forward is about 3 times faster than moving backward.
<function name="g_io_channel_get_encoding">
<description>
-Gets the encoding for the input/output of the channel. The internal
-encoding is always UTF-8. The encoding %NULL makes the
-channel safe for binary data.
+Gets the encoding for the input/output of the channel.
+The internal encoding is always UTF-8. The encoding %NULL
+makes the channel safe for binary data.
</description>
@@ -4199,6 +7500,50 @@ owned by GLib and must not be freed.
</return>
</function>
+<function name="g_win32_get_package_installation_directory_of_module">
+<description>
+This function tries to determine the installation directory of a
+software package based on the location of a DLL of the software
+package.
+
+@hmodule should be the handle of a loaded DLL or %NULL. The
+function looks up the directory that DLL was loaded from. If
+@hmodule is NULL, the directory the main executable of the current
+process is looked up. If that directory&apos;s last component is &quot;bin&quot;
+or &quot;lib&quot;, its parent directory is returned, otherwise the directory
+itself.
+
+It thus makes sense to pass only the handle to a &quot;public&quot; DLL of a
+software package to this function, as such DLLs typically are known
+to be installed in a &quot;bin&quot; or occasionally &quot;lib&quot; subfolder of the
+installation folder. DLLs that are of the dynamically loaded module
+or plugin variety are often located in more private locations
+deeper down in the tree, from which it is impossible for GLib to
+deduce the root of the package installation.
+
+The typical use case for this function is to have a DllMain() that
+saves the handle for the DLL. Then when code in the DLL needs to
+construct names of files in the installation tree it calls this
+function passing the DLL handle.
+
+
+</description>
+<parameters>
+<parameter name="hmodule">
+<parameter_description> The Win32 handle for a DLL loaded into the current process, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> a string containing the guessed installation directory for
+the software package @hmodule is from. The string is in the GLib
+file name encoding, i.e. UTF-8. The return value should be freed
+with g_free() when not needed any longer. If the function fails
+%NULL is returned.
+
+Since: 2.16
+</return>
+</function>
+
<function name="g_key_file_get_locale_string">
<description>
Return value: a newly allocated string or %NULL if the specified
@@ -4218,7 +7563,7 @@ Return value: a newly allocated string or %NULL if the specified
</parameter_description>
</parameter>
<parameter name="locale">
-<parameter_description> a locale or %NULL
+<parameter_description> a locale identifier or %NULL
</parameter_description>
</parameter>
<parameter name="error">
@@ -4283,17 +7628,58 @@ Since: 2.12
</return>
</function>
+<function name="g_signal_connect_data">
+<description>
+Connects a #GCallback function to a signal for a particular object. Similar
+to g_signal_connect(), but allows to provide a #GClosureNotify for the data
+which will be called when the signal handler is disconnected and no longer
+used. Specify @connect_flags if you need &amp;lt;literal&amp;gt;..._after()&amp;lt;/literal&amp;gt; or
+&amp;lt;literal&amp;gt;..._swapped()&amp;lt;/literal&amp;gt; variants of this function.
+
+
+</description>
+<parameters>
+<parameter name="instance">
+<parameter_description> the instance to connect to.
+</parameter_description>
+</parameter>
+<parameter name="detailed_signal">
+<parameter_description> a string of the form &quot;signal-name::detail&quot;.
+</parameter_description>
+</parameter>
+<parameter name="c_handler">
+<parameter_description> the #GCallback to connect.
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> data to pass to @c_handler calls.
+</parameter_description>
+</parameter>
+<parameter name="destroy_data">
+<parameter_description> a #GClosureNotify for @data.
+</parameter_description>
+</parameter>
+<parameter name="connect_flags">
+<parameter_description> a combination of #GConnectFlags.
+</parameter_description>
+</parameter>
+</parameters>
+<return> the handler id
+</return>
+</function>
+
<function name="g_chmod">
<description>
A wrapper for the POSIX chmod() function. The chmod() function is
-used to set the permissions of a file system object. Note that on
-Windows the file protection mechanism is not at all POSIX-like, and
-the underlying chmod() function in the C library just sets or
-clears the READONLY attribute. It does not touch any ACL. Software
-that needs to manage file permissions on Windows exactly should
-use the Win32 API.
+used to set the permissions of a file system object.
+
+On Windows the file protection mechanism is not at all POSIX-like,
+and the underlying chmod() function in the C library just sets or
+clears the FAT-style READONLY attribute. It does not touch any
+ACL. Software that needs to manage file permissions on Windows
+exactly should use the Win32 API.
-See the C library manual for more details about chmod().
+See your C library manual for more details about chmod().
</description>
@@ -4465,29 +7851,141 @@ Since: 2.12
<return></return>
</function>
-<function name="g_bookmark_file_remove_item">
+<function name="g_value_set_char">
<description>
-Removes the bookmark for @uri from the bookmark file @bookmark.
+Set the contents of a %G_TYPE_CHAR #GValue to @v_char.
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of type %G_TYPE_CHAR
+</parameter_description>
+</parameter>
+<parameter name="v_char">
+<parameter_description> character value to be set
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_unichar_get_script">
+<description>
+Looks up the #GUnicodeScript for a particular character (as defined
+by Unicode Standard Annex #24). No check is made for @ch being a
+valid Unicode character; if you pass in invalid character, the
+result is undefined.
+
+This function is equivalent to pango_script_for_unichar() and the
+two are interchangeable.
</description>
<parameters>
-<parameter name="bookmark">
-<parameter_description> a #GBookmarkFile
+<parameter name="ch">
+<parameter_description> a Unicode character
</parameter_description>
</parameter>
-<parameter name="uri">
-<parameter_description> a valid URI
+</parameters>
+<return> the #GUnicodeScript for the character.
+
+Since: 2.14
+</return>
+</function>
+
+<function name="g_list_length">
+<description>
+Gets the number of elements in a #GList.
+
+&amp;lt;note&amp;gt;&amp;lt;para&amp;gt;
+This function iterates over the whole list to
+count its elements.
+&amp;lt;/para&amp;gt;&amp;lt;/note&amp;gt;
+
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GList
+</parameter_description>
+</parameter>
+</parameters>
+<return> the number of elements in the #GList
+</return>
+</function>
+
+<function name="g_test_log_buffer_pop">
+<description>
+Internal function for gtester to retrieve test log messages, no ABI guarantees provided.
+
+</description>
+<parameters>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_ucs4_to_utf8">
+<description>
+Convert a string from a 32-bit fixed width representation as UCS-4.
+to UTF-8. The result will be terminated with a 0 byte.
+
+
+</description>
+<parameters>
+<parameter name="str">
+<parameter_description> a UCS-4 encoded string
+</parameter_description>
+</parameter>
+<parameter name="len">
+<parameter_description> the maximum length (number of characters) of @str to use.
+If @len &amp;lt; 0, then the string is nul-terminated.
+</parameter_description>
+</parameter>
+<parameter name="items_read">
+<parameter_description> location to store number of characters read, or %NULL.
+</parameter_description>
+</parameter>
+<parameter name="items_written">
+<parameter_description> location to store number of bytes written or %NULL.
+The value here stored does not include the trailing 0
+byte.
</parameter_description>
</parameter>
<parameter name="error">
-<parameter_description> return location for a #GError, or %NULL
+<parameter_description> location to store the error occuring, or %NULL to ignore
+errors. Any of the errors in #GConvertError other than
+%G_CONVERT_ERROR_NO_CONVERSION may occur.
</parameter_description>
</parameter>
</parameters>
-<return> %TRUE if the bookmark was removed successfully.
+<return> a pointer to a newly allocated UTF-8 string.
+This value must be freed with g_free(). If an
+error occurs, %NULL will be returned and
+@error set. In that case, @items_read will be
+set to the position of the first invalid input
+character.
+</return>
+</function>
-Since: 2.12
+<function name="g_uri_list_extract_uris">
+<description>
+Splits an URI list conforming to the text/uri-list
+mime type defined in RFC 2483 into individual URIs,
+discarding any comments. The URIs are not validated.
+
+
+</description>
+<parameters>
+<parameter name="uri_list">
+<parameter_description> an URI list
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly allocated %NULL-terminated list of
+strings holding the individual URIs. The array should
+be freed with g_strfreev().
+
+Since: 2.6
</return>
</function>
@@ -4527,6 +8025,36 @@ Since: 2.4
</return>
</function>
+<function name="g_node_find">
+<description>
+Finds a #GNode in a tree.
+
+
+</description>
+<parameters>
+<parameter name="root">
+<parameter_description> the root #GNode of the tree to search
+</parameter_description>
+</parameter>
+<parameter name="order">
+<parameter_description> the order in which nodes are visited - %G_IN_ORDER,
+%G_PRE_ORDER, %G_POST_ORDER, or %G_LEVEL_ORDER
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> which types of children are to be searched, one of
+%G_TRAVERSE_ALL, %G_TRAVERSE_LEAVES and %G_TRAVERSE_NON_LEAVES
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> the data to find
+</parameter_description>
+</parameter>
+</parameters>
+<return> the found #GNode, or %NULL if the data is not found
+</return>
+</function>
+
<function name="g_sequence_prepend">
<description>
Adds a new item to the front of @seq
@@ -4594,6 +8122,93 @@ error occurs, %NULL will be returned and
</return>
</function>
+<function name="g_type_fundamental">
+<description>
+Internal function, used to extract the fundamental type ID portion.
+use G_TYPE_FUNDAMENTAL() instead.
+
+
+</description>
+<parameters>
+<parameter name="type_id">
+<parameter_description> valid type ID
+</parameter_description>
+</parameter>
+</parameters>
+<return> fundamental type ID
+</return>
+</function>
+
+<function name="g_object_interface_install_property">
+<description>
+Add a property to an interface; this is only useful for interfaces
+that are added to GObject-derived types. Adding a property to an
+interface forces all objects classes with that interface to have a
+compatible property. The compatible property could be a newly
+created #GParamSpec, but normally
+g_object_class_override_property() will be used so that the object
+class only needs to provide an implementation and inherits the
+property description, default value, bounds, and so forth from the
+interface property.
+
+This function is meant to be called from the interface&apos;s default
+vtable initialization function (the @class_init member of
+#GTypeInfo.) It must not be called after after @class_init has
+been called for any object types implementing this interface.
+
+Since: 2.4
+
+</description>
+<parameters>
+<parameter name="g_iface">
+<parameter_description> any interface vtable for the interface, or the default
+vtable for the interface.
+</parameter_description>
+</parameter>
+<parameter name="pspec">
+<parameter_description> the #GParamSpec for the new property
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_dpgettext2">
+<description>
+This function is a variant of g_dgettext() which supports
+a disambiguating message context. GNU gettext uses the
+&apos;\004&apos; character to separate the message context and
+message id in @msgctxtid.
+
+This uses g_dgettext() internally. See that functions for differences
+with dgettext() proper.
+
+This function differs from C_() in that it is not a macro and
+thus you may use non-string-literals as context and msgid arguments.
+
+
+</description>
+<parameters>
+<parameter name="domain">
+<parameter_description> the translation domain to use, or %NULL to use
+the domain set with textdomain()
+</parameter_description>
+</parameter>
+<parameter name="context">
+<parameter_description> the message context
+</parameter_description>
+</parameter>
+<parameter name="msgid">
+<parameter_description> the message
+</parameter_description>
+</parameter>
+</parameters>
+<return> The translated string
+
+Since: 2.18
+</return>
+</function>
+
<function name="g_queue_push_nth_link">
<description>
Inserts @link into @queue at the given position.
@@ -4620,32 +8235,26 @@ the number of elements in @queue, the link is added to the end of
<return></return>
</function>
-<function name="g_thread_foreach">
+<function name="g_slist_remove">
<description>
-Call @thread_func on all existing #GThread structures. Note that
-threads may decide to exit while @thread_func is running, so
-without intimate knowledge about the lifetime of foreign threads,
-@thread_func shouldn&apos;t access the GThread* pointer passed in as
-first argument. However, @thread_func will not be called for threads
-which are known to have exited already.
+Removes an element from a #GSList.
+If two elements contain the same data, only the first is removed.
+If none of the elements contain the data, the #GSList is unchanged.
-Due to thread lifetime checks, this function has an execution complexity
-which is quadratic in the number of existing threads.
-
-Since: 2.10
</description>
<parameters>
-<parameter name="thread_func">
-<parameter_description> function to call for all GThread structures
+<parameter name="list">
+<parameter_description> a #GSList
</parameter_description>
</parameter>
-<parameter name="user_data">
-<parameter_description> second argument to @thread_func
+<parameter name="data">
+<parameter_description> the data of the element to remove
</parameter_description>
</parameter>
</parameters>
-<return></return>
+<return> the new start of the #GSList
+</return>
</function>
<function name="g_queue_peek_tail">
@@ -4664,6 +8273,90 @@ is empty.
</return>
</function>
+<function name="g_format_size_for_display">
+<description>
+Formats a size (for example the size of a file) into a human readable string.
+Sizes are rounded to the nearest size prefix (KB, MB, GB) and are displayed
+rounded to the nearest tenth. E.g. the file size 3292528 bytes will be
+converted into the string &quot;3.1 MB&quot;.
+
+The prefix units base is 1024 (i.e. 1 KB is 1024 bytes).
+
+This string should be freed with g_free() when not needed any longer.
+
+
+</description>
+<parameters>
+<parameter name="size">
+<parameter_description> a size in bytes.
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly-allocated formatted string containing a human readable
+file size.
+
+Since: 2.16
+</return>
+</function>
+
+<function name="g_list_remove">
+<description>
+Removes an element from a #GList.
+If two elements contain the same data, only the first is removed.
+If none of the elements contain the data, the #GList is unchanged.
+
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GList
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> the data of the element to remove
+</parameter_description>
+</parameter>
+</parameters>
+<return> the new start of the #GList
+</return>
+</function>
+
+<function name="g_cclosure_marshal_VOID__POINTER">
+<description>
+A marshaller for a #GCClosure with a callback of type
+&amp;lt;literal&amp;gt;void (*callback) (gpointer instance, gpointer arg1, gpointer user_data)&amp;lt;/literal&amp;gt;.
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> ignored
+</parameter_description>
+</parameter>
+<parameter name="n_param_values">
+<parameter_description> 2
+</parameter_description>
+</parameter>
+<parameter name="param_values">
+<parameter_description> a #GValue array holding the instance and the #gpointer parameter
+</parameter_description>
+</parameter>
+<parameter name="invocation_hint">
+<parameter_description> the invocation hint given as the last argument
+to g_closure_invoke()
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when registering the marshaller
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_queue_push_head">
<description>
Adds a new element at the head of the queue.
@@ -4700,6 +8393,27 @@ hold the lock to call this function.
<return></return>
</function>
+<function name="g_enum_get_value_by_name">
+<description>
+Looks up a #GEnumValue by name.
+
+
+</description>
+<parameters>
+<parameter name="enum_class">
+<parameter_description> a #GEnumClass
+</parameter_description>
+</parameter>
+<parameter name="name">
+<parameter_description> the name to look up
+</parameter_description>
+</parameter>
+</parameters>
+<return> the #GEnumValue with name @name, or %NULL if the
+enumeration doesn&apos;t have a member with that name
+</return>
+</function>
+
<function name="g_child_watch_add_full">
<description>
Sets a function to be called when the child indicated by @pid
@@ -4716,6 +8430,11 @@ g_spawn_close_pid() in the callback function for the source.
GLib supports only a single callback per process id.
+This internally creates a main loop source using
+g_child_watch_source_new() and attaches it to the main loop context
+using g_source_attach(). You can do these steps manually if you
+need greater control.
+
</description>
<parameters>
@@ -4725,7 +8444,8 @@ range between #G_PRIORITY_DEFAULT_IDLE and #G_PRIORITY_HIGH_IDLE.
</parameter_description>
</parameter>
<parameter name="pid">
-<parameter_description> process id of a child process to watch
+<parameter_description> process to watch. On POSIX the pid of a child process. On
+Windows a handle for a process (which doesn&apos;t have to be a child).
</parameter_description>
</parameter>
<parameter name="function">
@@ -4747,6 +8467,28 @@ Since: 2.4
</return>
</function>
+<function name="g_slist_index">
+<description>
+Gets the position of the element containing
+the given data (starting from 0).
+
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GSList
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> the data to find
+</parameter_description>
+</parameter>
+</parameters>
+<return> the index of the element containing the data,
+or -1 if the data is not found
+</return>
+</function>
+
<function name="g_key_file_get_double_list">
<description>
Return value: the values associated with the key as a list of
@@ -4818,24 +8560,25 @@ Since: 2.6
<function name="g_io_channel_seek">
<description>
-Sets the current position in the #GIOChannel, similar to the standard library
-function fseek().
+Sets the current position in the #GIOChannel, similar to the standard
+library function fseek().
</description>
<parameters>
<parameter name="channel">
-<parameter_description> a #GIOChannel.
+<parameter_description> a #GIOChannel
</parameter_description>
</parameter>
<parameter name="offset">
-<parameter_description> an offset, in bytes, which is added to the position specified by @type
+<parameter_description> an offset, in bytes, which is added to the position specified
+by @type
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> the position in the file, which can be %G_SEEK_CUR (the current
-position), %G_SEEK_SET (the start of the file), or %G_SEEK_END (the end of the
-file).
+position), %G_SEEK_SET (the start of the file), or %G_SEEK_END
+(the end of the file)
</parameter_description>
</parameter>
</parameters>
@@ -4918,50 +8661,62 @@ Since: 2.14
</return>
</function>
-<function name="g_mkstemp">
+<function name="g_bookmark_file_set_description">
<description>
-Opens a temporary file. See the mkstemp() documentation
-on most UNIX-like systems.
+Sets @description as the description of the bookmark for @uri.
-The parameter is a string that should follow the rules for
-mkstemp() templates, i.e. contain the string &quot;XXXXXX&quot;.
-g_mkstemp() is slightly more flexible than mkstemp()
-in that the sequence does not have to occur at the very end of the
-template. The X string will
-be modified to form the name of a file that didn&apos;t exist.
-The string should be in the GLib file name encoding. Most importantly,
-on Windows it should be in UTF-8.
+If @uri is %NULL, the description of @bookmark is set.
+If a bookmark for @uri cannot be found then it is created.
+
+Since: 2.12
</description>
<parameters>
-<parameter name="tmpl">
-<parameter_description> template filename
+<parameter name="bookmark">
+<parameter_description> a #GBookmarkFile
+</parameter_description>
+</parameter>
+<parameter name="uri">
+<parameter_description> a valid URI or %NULL
+</parameter_description>
+</parameter>
+<parameter name="description">
+<parameter_description> a string
</parameter_description>
</parameter>
</parameters>
-<return> A file handle (as from open()) to the file
-opened for reading and writing. The file is opened in binary mode
-on platforms where there is a difference. The file handle should be
-closed with close(). In case of errors, -1 is returned.
-</return>
+<return></return>
</function>
-<function name="g_filename_display_basename">
+<function name="g_utf8_casefold">
<description>
-Return value: a newly allocated string containing
+Converts a string into a form that is independent of case. The
+result will not correspond to any particular case, but can be
+compared for equality or ordered with the results of calling
+g_utf8_casefold() on other strings.
+
+Note that calling g_utf8_casefold() followed by g_utf8_collate() is
+only an approximation to the correct linguistic case insensitive
+ordering, though it is a fairly good one. Getting this exactly
+right would require a more sophisticated collation function that
+takes case sensitivity into account. GLib does not currently
+provide such a function.
+
</description>
<parameters>
-<parameter name="filename">
-<parameter_description> an absolute pathname in the GLib file name encoding
+<parameter name="str">
+<parameter_description> a UTF-8 encoded string
+</parameter_description>
+</parameter>
+<parameter name="len">
+<parameter_description> length of @str, in bytes, or -1 if @str is nul-terminated.
</parameter_description>
</parameter>
</parameters>
-<return> a newly allocated string containing
-a rendition of the basename of the filename in valid UTF-8
-
-Since: 2.6
+<return> a newly allocated string, that is a
+case independent form of @str.
</return>
</function>
@@ -4992,6 +8747,26 @@ Since: 2.12
</return>
</function>
+<function name="g_value_set_static_string">
+<description>
+Set the contents of a %G_TYPE_STRING #GValue to @v_string.
+The string is assumed to be static, and is thus not duplicated
+when setting the #GValue.
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of type %G_TYPE_STRING
+</parameter_description>
+</parameter>
+<parameter name="v_string">
+<parameter_description> static string to be set
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_datalist_set_flags">
<description>
Turns on flag values for a data list. This function is used
@@ -5055,27 +8830,98 @@ Return value: %TRUE if the text was valid UTF-8
</return>
</function>
-<function name="iconv_cache_bucket_new">
+<function name="g_type_default_interface_ref">
<description>
-Creates a new cache bucket, inserts it into the cache and
-increments the cache size.
+Increments the reference count for the interface type @g_type,
+and returns the default interface vtable for the type.
+
+If the type is not currently in use, then the default vtable
+for the type will be created and initalized by calling
+the base interface init and default vtable init functions for
+the type (the @&amp;lt;structfield&amp;gt;base_init&amp;lt;/structfield&amp;gt;
+and &amp;lt;structfield&amp;gt;class_init&amp;lt;/structfield&amp;gt; members of #GTypeInfo).
+Calling g_type_default_interface_ref() is useful when you
+want to make sure that signals and properties for an interface
+have been installed.
-This assumes ownership of @key.
+Since: 2.4
</description>
<parameters>
-<parameter name="key">
-<parameter_description> cache key
+<parameter name="g_type">
+<parameter_description> an interface type
</parameter_description>
</parameter>
-<parameter name="cd">
-<parameter_description> iconv descriptor
+</parameters>
+<return> the default vtable for the interface; call
+g_type_default_interface_unref() when you are done using
+the interface.
+</return>
+</function>
+
+<function name="g_param_spec_unref">
+<description>
+Decrements the reference count of a @pspec.
+
+</description>
+<parameters>
+<parameter name="pspec">
+<parameter_description> a valid #GParamSpec
</parameter_description>
</parameter>
</parameters>
-<return>a pointer to the newly allocated cache bucket.
-</return>
+<return></return>
+</function>
+
+<function name="g_param_spec_set_qdata_full">
+<description>
+This function works like g_param_spec_set_qdata(), but in addition,
+a &amp;lt;literal&amp;gt;void (*destroy) (gpointer)&amp;lt;/literal&amp;gt; function may be
+specified which is called with @data as argument when the @pspec is
+finalized, or the data is being overwritten by a call to
+g_param_spec_set_qdata() with the same @quark.
+
+</description>
+<parameters>
+<parameter name="pspec">
+<parameter_description> the #GParamSpec to set store a user data pointer
+</parameter_description>
+</parameter>
+<parameter name="quark">
+<parameter_description> a #GQuark, naming the user data pointer
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> an opaque user data pointer
+</parameter_description>
+</parameter>
+<parameter name="destroy">
+<parameter_description> function to invoke with @data as argument, when @data needs to
+be freed
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_hash_table_unref">
+<description>
+Atomically decrements the reference count of @hash_table by one.
+If the reference count drops to 0, all keys and values will be
+destroyed, and all memory allocated by the hash table is released.
+This function is MT-safe and may be called from any thread.
+
+Since: 2.10
+
+</description>
+<parameters>
+<parameter name="hash_table">
+<parameter_description> a valid #GHashTable.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
</function>
<function name="g_timeout_source_new_seconds">
@@ -5133,50 +8979,27 @@ be freed with g_free() when you are done with it.
</return>
</function>
-<function name="g_async_queue_timed_pop_unlocked">
+<function name="g_strnfill">
<description>
-Pops data from the @queue. If no data is received before @end_time,
-%NULL is returned. This function must be called while holding the
-@queue&apos;s lock.
-
-To easily calculate @end_time a combination of g_get_current_time()
-and g_time_val_add() can be used.
+Creates a new string @length bytes long filled with @fill_char.
+The returned string should be freed when no longer needed.
</description>
<parameters>
-<parameter name="queue">
-<parameter_description> a #GAsyncQueue.
+<parameter name="length">
+<parameter_description> the length of the new string
</parameter_description>
</parameter>
-<parameter name="end_time">
-<parameter_description> a #GTimeVal, determining the final time.
+<parameter name="fill_char">
+<parameter_description> the byte to fill the string with
</parameter_description>
</parameter>
</parameters>
-<return> data from the queue or %NULL, when no data is
-received before @end_time.
+<return> a newly-allocated string filled the @fill_char
</return>
</function>
-<function name="g_io_channel_set_buffer_size">
-<description>
-Sets the buffer size.
-
-</description>
-<parameters>
-<parameter name="channel">
-<parameter_description> a #GIOChannel
-</parameter_description>
-</parameter>
-<parameter name="size">
-<parameter_description> the size of the buffer. 0 == pick a good size
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
<function name="g_key_file_get_integer">
<description>
Return value: the value associated with the key as an integer, or
@@ -5506,6 +9329,85 @@ Since: 2.6
</return>
</function>
+<function name="g_test_add">
+<description>
+Hook up a new test case at @testpath, similar to g_test_add_func().
+A fixture data structure with setup and teardown function may be provided
+though, similar to g_test_create_case().
+g_test_add() is implemented as a macro, so that the fsetup(), ftest() and
+fteardown() callbacks can expect a @Fixture pointer as first argument in
+a type safe manner.
+
+Since: 2.16
+
+</description>
+<parameters>
+<parameter name="testpath">
+<parameter_description> The test path for a new test case.
+</parameter_description>
+</parameter>
+<parameter name="Fixture">
+<parameter_description> The type of a fixture data structure.
+</parameter_description>
+</parameter>
+<parameter name="tdata">
+<parameter_description> Data argument for the test functions.
+</parameter_description>
+</parameter>
+<parameter name="fsetup">
+<parameter_description> The function to set up the fixture data.
+</parameter_description>
+</parameter>
+<parameter name="ftest">
+<parameter_description> The actual test function.
+</parameter_description>
+</parameter>
+<parameter name="fteardown">
+<parameter_description> The function to tear down the fixture data.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_test_suite_add">
+<description>
+Adds @test_case to @suite.
+
+Since: 2.16
+
+</description>
+<parameters>
+<parameter name="suite">
+<parameter_description> a #GTestSuite
+</parameter_description>
+</parameter>
+<parameter name="test_case">
+<parameter_description> a #GTestCase
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_value_set_uchar">
+<description>
+Set the contents of a %G_TYPE_UCHAR #GValue to @v_uchar.
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of type %G_TYPE_UCHAR
+</parameter_description>
+</parameter>
+<parameter name="v_uchar">
+<parameter_description> unsigned character value to be set
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_io_channel_write">
<description>
Writes data to a #GIOChannel.
@@ -5514,19 +9416,19 @@ Writes data to a #GIOChannel.
</description>
<parameters>
<parameter name="channel">
-<parameter_description> a #GIOChannel.
+<parameter_description> a #GIOChannel
</parameter_description>
</parameter>
<parameter name="buf">
-<parameter_description> the buffer containing the data to write.
+<parameter_description> the buffer containing the data to write
</parameter_description>
</parameter>
<parameter name="count">
-<parameter_description> the number of bytes to write.
+<parameter_description> the number of bytes to write
</parameter_description>
</parameter>
<parameter name="bytes_written">
-<parameter_description> the number of bytes actually written.
+<parameter_description> the number of bytes actually written
</parameter_description>
</parameter>
</parameters>
@@ -5536,6 +9438,22 @@ Deprecated:2.2: Use g_io_channel_write_chars() instead.
</return>
</function>
+<function name="g_param_spec_get_name">
+<description>
+Get the name of a #GParamSpec.
+
+
+</description>
+<parameters>
+<parameter name="pspec">
+<parameter_description> a valid #GParamSpec
+</parameter_description>
+</parameter>
+</parameters>
+<return> the name of @pspec.
+</return>
+</function>
+
<function name="g_key_file_load_from_data_dirs">
<description>
This function looks for a key file named @file in the paths
@@ -5574,40 +9492,23 @@ Since: 2.6
</return>
</function>
-<function name="g_sequence_insert_sorted_iter">
+<function name="g_test_bug">
<description>
-Like g_sequence_insert_sorted(), but uses
-a #GSequenceIterCompareFunc instead of a #GCompareDataFunc as
-the compare function.
+This function adds a message to test reports that
+associates a bug URI with a test case.
+Bug URIs are constructed from a base URI set with g_test_bug_base()
+and @bug_uri_snippet.
+Since: 2.16
</description>
<parameters>
-<parameter name="seq">
-<parameter_description> a #GSequence
-</parameter_description>
-</parameter>
-<parameter name="data">
-<parameter_description> data for the new item
-</parameter_description>
-</parameter>
-<parameter name="iter_cmp">
-<parameter_description> the #GSequenceItercompare used to compare iterators in the
-sequence. It is called with two iterators pointing into @seq. It should
-return 0 if the iterators are equal, a negative value if the first
-iterator comes before the second, and a positive value if the second
-iterator comes before the first.
-</parameter_description>
-</parameter>
-<parameter name="cmp_data">
-<parameter_description> user data passed to @cmp_func
+<parameter name="bug_uri_snippet">
+<parameter_description> Bug specific bug tracker URI portion.
</parameter_description>
</parameter>
</parameters>
-<return> a #GSequenceIter pointing to the new item
-
-Since: 2.14
-</return>
+<return></return>
</function>
<function name="g_main_context_find_source_by_user_data">
@@ -5689,7 +9590,7 @@ positional parameters, as specified in the Single Unix Specification.
</parameter_description>
</parameter>
</parameters>
-<return> the number of characters printed.
+<return> the number of bytes printed.
Since: 2.2
</return>
@@ -5713,48 +9614,107 @@ available immediately.
</return>
</function>
-<function name="g_unichar_iscntrl">
+<function name="g_spawn_async">
<description>
-Determines whether a character is a control character.
-Given some UTF-8 text, obtain a character value with
-g_utf8_get_char().
+See g_spawn_async_with_pipes() for a full description; this function
+simply calls the g_spawn_async_with_pipes() without any pipes.
+
+You should call g_spawn_close_pid() on the returned child process
+reference when you don&apos;t need it any more.
+
+&amp;lt;note&amp;gt;&amp;lt;para&amp;gt;
+If you are writing a GTK+ application, and the program you
+are spawning is a graphical application, too, then you may
+want to use gdk_spawn_on_screen() instead to ensure that
+the spawned program opens its windows on the right screen.
+&amp;lt;/para&amp;gt;&amp;lt;/note&amp;gt;
+
+&amp;lt;note&amp;gt;&amp;lt;para&amp;gt; Note that the returned @child_pid on Windows is a
+handle to the child process and not its identifier. Process handles
+and process identifiers are different concepts on Windows.
+&amp;lt;/para&amp;gt;&amp;lt;/note&amp;gt;
</description>
<parameters>
-<parameter name="c">
-<parameter_description> a Unicode character
+<parameter name="working_directory">
+<parameter_description> child&apos;s current working directory, or %NULL to inherit parent&apos;s
+</parameter_description>
+</parameter>
+<parameter name="argv">
+<parameter_description> child&apos;s argument vector
+</parameter_description>
+</parameter>
+<parameter name="envp">
+<parameter_description> child&apos;s environment, or %NULL to inherit parent&apos;s
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> flags from #GSpawnFlags
+</parameter_description>
+</parameter>
+<parameter name="child_setup">
+<parameter_description> function to run in the child just before exec()
+</parameter_description>
+</parameter>
+<parameter name="user_data">
+<parameter_description> user data for @child_setup
+</parameter_description>
+</parameter>
+<parameter name="child_pid">
+<parameter_description> return location for child process reference, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> return location for error
</parameter_description>
</parameter>
</parameters>
-<return> %TRUE if @c is a control character
+<return> %TRUE on success, %FALSE if error is set
</return>
</function>
-<function name="g_string_sprintfa">
+<function name="g_object_class_find_property">
<description>
-Appends a formatted string onto the end of a #GString.
-This function is is similar to g_string_sprintf() except that
-the text is appended to the #GString.
+Looks up the #GParamSpec for a property of a class.
-Deprecated: This function has been renamed to g_string_append_printf()
</description>
<parameters>
-<parameter name="string">
-<parameter_description> a #GString
+<parameter name="oclass">
+<parameter_description> a #GObjectClass
</parameter_description>
</parameter>
-<parameter name="format">
-<parameter_description> the string format. See the sprintf() documentation
+<parameter name="property_name">
+<parameter_description> the name of the property to look up
</parameter_description>
</parameter>
-<parameter name="Varargs">
-<parameter_description> the parameters to insert into the format string
+</parameters>
+<return> the #GParamSpec for the property, or %NULL if the class
+doesn&apos;t have a property of that name
+</return>
+</function>
+
+<function name="g_slist_concat">
+<description>
+Adds the second #GSList onto the end of the first #GSList.
+Note that the elements of the second #GSList are not copied.
+They are used directly.
+
+
+</description>
+<parameters>
+<parameter name="list1">
+<parameter_description> a #GSList
+</parameter_description>
+</parameter>
+<parameter name="list2">
+<parameter_description> the #GSList to add to the end of the first #GSList
</parameter_description>
</parameter>
</parameters>
-<return></return>
+<return> the start of the new #GSList
+</return>
</function>
<function name="g_win32_locale_filename_from_utf8">
@@ -5873,41 +9833,55 @@ Since: 2.4
</return>
</function>
-<function name="g_child_watch_source_new">
+<function name="g_cclosure_marshal_VOID__OBJECT">
<description>
-Creates a new child_watch source.
-
-The source will not initially be associated with any #GMainContext
-and must be added to one with g_source_attach() before it will be
-executed.
-
-Note that child watch sources can only be used in conjunction with
-&amp;lt;literal&amp;gt;g_spawn...&amp;lt;/literal&amp;gt; when the %G_SPAWN_DO_NOT_REAP_CHILD
-flag is used.
-
-Note that on platforms where #GPid must be explicitly closed
-(see g_spawn_close_pid()) @pid must not be closed while the
-source is still active. Typically, you will want to call
-g_spawn_close_pid() in the callback function for the source.
+A marshaller for a #GCClosure with a callback of type
+&amp;lt;literal&amp;gt;void (*callback) (gpointer instance, GOBject *arg1, gpointer user_data)&amp;lt;/literal&amp;gt;.
-Note further that using g_child_watch_source_new() is not
-compatible with calling &amp;lt;literal&amp;gt;waitpid(-1)&amp;lt;/literal&amp;gt; in
-the application. Calling waitpid() for individual pids will
-still work fine.
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> ignored
+</parameter_description>
+</parameter>
+<parameter name="n_param_values">
+<parameter_description> 2
+</parameter_description>
+</parameter>
+<parameter name="param_values">
+<parameter_description> a #GValue array holding the instance and the #GObject* parameter
+</parameter_description>
+</parameter>
+<parameter name="invocation_hint">
+<parameter_description> the invocation hint given as the last argument
+to g_closure_invoke()
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when registering the marshaller
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+<function name="g_random_set_seed">
+<description>
+Sets the seed for the global random number generator, which is used
+by the &amp;lt;function&amp;gt;g_random_*&amp;lt;/function&amp;gt; functions, to @seed.
</description>
<parameters>
-<parameter name="pid">
-<parameter_description> process id of a child process to watch. On Windows, a HANDLE
-for the process to watch (which actually doesn&apos;t have to be a child).
+<parameter name="seed">
+<parameter_description> a value to reinitialize the global random number generator.
</parameter_description>
</parameter>
</parameters>
-<return> the newly-created child watch source
-
-Since: 2.4
-</return>
+<return></return>
</function>
<function name="g_option_group_new">
@@ -5951,6 +9925,65 @@ Since: 2.6
</return>
</function>
+<function name="g_type_module_register_flags">
+<description>
+Looks up or registers a flags type that is implemented with a particular
+type plugin. If a type with name @type_name was previously registered,
+the #GType identifier for the type is returned, otherwise the type
+is newly registered, and the resulting #GType identifier returned.
+
+As long as any instances of the type exist, the type plugin will
+not be unloaded.
+
+Since: 2.6
+
+
+</description>
+<parameters>
+<parameter name="module">
+<parameter_description> a #GTypeModule
+</parameter_description>
+</parameter>
+<parameter name="name">
+<parameter_description> name for the type
+</parameter_description>
+</parameter>
+<parameter name="const_static_values">
+<parameter_description> an array of #GFlagsValue structs for the
+possible flags values. The array is
+terminated by a struct with all members being
+0.
+</parameter_description>
+</parameter>
+</parameters>
+<return> the new or existing type ID
+</return>
+</function>
+
+<function name="g_slist_insert_before">
+<description>
+Inserts a node before @sibling containing @data.
+
+
+</description>
+<parameters>
+<parameter name="slist">
+<parameter_description> a #GSList
+</parameter_description>
+</parameter>
+<parameter name="sibling">
+<parameter_description> node to insert @data before
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> data to put in the newly-inserted node
+</parameter_description>
+</parameter>
+</parameters>
+<return> the new head of the list.
+</return>
+</function>
+
<function name="g_mapped_file_free">
<description>
Unmaps the buffer of @file and frees it.
@@ -5978,6 +10011,33 @@ Return value: the maximal number of unused threads
</return>
</function>
+<function name="g_node_copy_deep">
+<description>
+Recursively copies a #GNode and its data.
+
+
+</description>
+<parameters>
+<parameter name="node">
+<parameter_description> a #GNode
+</parameter_description>
+</parameter>
+<parameter name="copy_func">
+<parameter_description> the function which is called to copy the data inside each node,
+or %NULL to use the original data.
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> data to pass to @copy_func
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GNode containing copies of the data in @node.
+
+Since: 2.4
+</return>
+</function>
+
<function name="g_io_channel_error_from_errno">
<description>
Converts an &amp;lt;literal&amp;gt;errno&amp;lt;/literal&amp;gt; error number to a #GIOChannelError.
@@ -5986,11 +10046,39 @@ Converts an &amp;lt;literal&amp;gt;errno&amp;lt;/literal&amp;gt; error number to
</description>
<parameters>
<parameter name="en">
-<parameter_description> an &amp;lt;literal&amp;gt;errno&amp;lt;/literal&amp;gt; error number, e.g. %EINVAL.
+<parameter_description> an &amp;lt;literal&amp;gt;errno&amp;lt;/literal&amp;gt; error number, e.g. %EINVAL
+</parameter_description>
+</parameter>
+</parameters>
+<return> a #GIOChannelError error number, e.g.
+%G_IO_CHANNEL_ERROR_INVAL.
+</return>
+</function>
+
+<function name="g_value_transform">
+<description>
+Tries to cast the contents of @src_value into a type appropriate
+to store in @dest_value, e.g. to transform a %G_TYPE_INT value
+into a %G_TYPE_FLOAT value. Performing transformations between
+value types might incur precision lossage. Especially
+transformations into strings might reveal seemingly arbitrary
+results and shouldn&apos;t be relied upon for production code (such
+as rcfile value or object property serialization).
+
+
+</description>
+<parameters>
+<parameter name="src_value">
+<parameter_description> Source value.
+</parameter_description>
+</parameter>
+<parameter name="dest_value">
+<parameter_description> Target value.
</parameter_description>
</parameter>
</parameters>
-<return> a #GIOChannelError error number, e.g. %G_IO_CHANNEL_ERROR_INVAL.
+<return> Whether a transformation rule was found and could be applied.
+Upon failing transformations, @dest_value is left untouched.
</return>
</function>
@@ -6017,6 +10105,95 @@ parameter, when using pointers to integers as keys in a #GHashTable.
</return>
</function>
+<function name="g_boxed_type_register_static">
+<description>
+This function creates a new %G_TYPE_BOXED derived type id for a new
+boxed type with name @name. Boxed type handling functions have to be
+provided to copy and free opaque boxed structures of this type.
+
+
+</description>
+<parameters>
+<parameter name="name">
+<parameter_description> Name of the new boxed type.
+</parameter_description>
+</parameter>
+<parameter name="boxed_copy">
+<parameter_description> Boxed structure copy function.
+</parameter_description>
+</parameter>
+<parameter name="boxed_free">
+<parameter_description> Boxed structure free function.
+</parameter_description>
+</parameter>
+</parameters>
+<return> New %G_TYPE_BOXED derived type id for @name.
+</return>
+</function>
+
+<function name="GMarkupCollectType">
+<description>
+A mixed enumerated type and flags field. You must specify one type
+(string, strdup, boolean, tristate). Additionally, you may
+optionally bitwise OR the type with the flag
+%G_MARKUP_COLLECT_OPTIONAL.
+
+It is likely that this enum will be extended in the future to
+support other types.
+
+</description>
+<parameters>
+<parameter name="G_MARKUP_COLLECT_INVALID">
+<parameter_description> used to terminate the list of attributes
+to collect.
+</parameter_description>
+</parameter>
+<parameter name="G_MARKUP_COLLECT_STRING">
+<parameter_description> collect the string pointer directly from
+the attribute_values[] array. Expects a
+parameter of type (const char **). If
+%G_MARKUP_COLLECT_OPTIONAL is specified
+and the attribute isn&apos;t present then the
+pointer will be set to %NULL.
+</parameter_description>
+</parameter>
+<parameter name="G_MARKUP_COLLECT_STRDUP">
+<parameter_description> as with %G_MARKUP_COLLECT_STRING, but
+expects a paramter of type (char **) and
+g_strdup()s the returned pointer. The
+pointer must be freed with g_free().
+</parameter_description>
+</parameter>
+<parameter name="G_MARKUP_COLLECT_BOOLEAN">
+<parameter_description> expects a parameter of type (gboolean *)
+and parses the attribute value as a
+boolean. Sets %FALSE if the attribute
+isn&apos;t present. Valid boolean values
+consist of (case insensitive) &quot;false&quot;,
+&quot;f&quot;, &quot;no&quot;, &quot;n&quot;, &quot;0&quot; and &quot;true&quot;, &quot;t&quot;,
+&quot;yes&quot;, &quot;y&quot;, &quot;1&quot;.
+</parameter_description>
+</parameter>
+<parameter name="G_MARKUP_COLLECT_TRISTATE">
+<parameter_description> as with %G_MARKUP_COLLECT_BOOLEAN, but
+in the case of a missing attribute a
+value is set that compares equal to
+neither %FALSE nor %TRUE.
+G_MARKUP_COLLECT_OPTIONAL is implied.
+</parameter_description>
+</parameter>
+<parameter name="G_MARKUP_COLLECT_OPTIONAL">
+<parameter_description> can be bitwise ORed with the other
+fields. If present, allows the
+attribute not to appear. A default
+value is set depending on what value
+type is used.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_idle_source_new">
<description>
Creates a new idle source.
@@ -6035,6 +10212,28 @@ have a default priority of %G_PRIORITY_DEFAULT.
</return>
</function>
+<function name="g_list_find">
+<description>
+Finds the element in a #GList which
+contains the given data.
+
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GList
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> the element data to find
+</parameter_description>
+</parameter>
+</parameters>
+<return> the found #GList element,
+or %NULL if it is not found
+</return>
+</function>
+
<function name="g_string_chunk_insert_len">
<description>
Adds a copy of the first @len bytes of @string to the #GStringChunk.
@@ -6070,6 +10269,28 @@ Since: 2.4
</return>
</function>
+<function name="g_list_delete_link">
+<description>
+Removes the node link_ from the list and frees it.
+Compare this to g_list_remove_link() which removes the node
+without freeing it.
+
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GList
+</parameter_description>
+</parameter>
+<parameter name="link_">
+<parameter_description> node to delete from @list
+</parameter_description>
+</parameter>
+</parameters>
+<return> the new head of @list
+</return>
+</function>
+
<function name="g_sequence_sort_changed_iter">
<description>
Like g_sequence_sort_changed(), but uses
@@ -6100,45 +10321,51 @@ iterator comes before the first.
<return></return>
</function>
-<function name="g_ascii_strtoull">
+<function name="g_value_get_uchar">
<description>
-Converts a string to a #guint64 value.
-This function behaves like the standard strtoull() function
-does in the C locale. It does this without actually
-changing the current locale, since that would not be
-thread-safe.
-
-This function is typically used when reading configuration
-files or other non-user input that should be locale independent.
-To handle input from the user you should normally use the
-locale-sensitive system strtoull() function.
-
-If the correct value would cause overflow, %G_MAXUINT64
-is returned, and %ERANGE is stored in %errno. If the base is
-outside the valid range, zero is returned, and %EINVAL is stored
-in %errno. If the string conversion fails, zero is returned, and
-@endptr returns @nptr (if @endptr is non-%NULL).
+Get the contents of a %G_TYPE_UCHAR #GValue.
</description>
<parameters>
-<parameter name="nptr">
-<parameter_description> the string to convert to a numeric value.
+<parameter name="value">
+<parameter_description> a valid #GValue of type %G_TYPE_UCHAR
</parameter_description>
</parameter>
-<parameter name="endptr">
-<parameter_description> if non-%NULL, it returns the character after
-the last character used in the conversion.
+</parameters>
+<return> unsigned character contents of @value
+</return>
+</function>
+
+<function name="g_value_get_param">
+<description>
+Get the contents of a %G_TYPE_PARAM #GValue.
+
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue whose type is derived from %G_TYPE_PARAM
</parameter_description>
</parameter>
-<parameter name="base">
-<parameter_description> to be used for the conversion, 2..36 or 0
+</parameters>
+<return> #GParamSpec content of @value
+</return>
+</function>
+
+<function name="g_value_get_enum">
+<description>
+Get the contents of a %G_TYPE_ENUM #GValue.
+
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue whose type is derived from %G_TYPE_ENUM
</parameter_description>
</parameter>
</parameters>
-<return> the #guint64 value or zero on error.
-
-Since: 2.2
+<return> enum contents of @value
</return>
</function>
@@ -6212,7 +10439,7 @@ Since: 2.12
<function name="g_key_file_get_boolean">
<description>
-Return value: the value associated with the key as a boolean, or
+Return value: the value associated with the key as a boolean,
</description>
<parameters>
@@ -6233,8 +10460,8 @@ Return value: the value associated with the key as a boolean, or
</parameter_description>
</parameter>
</parameters>
-<return> the value associated with the key as a boolean, or
-%FALSE if the key was not found or could not be parsed.
+<return> the value associated with the key as a boolean,
+or %FALSE if the key was not found or could not be parsed.
Since: 2.6
</return>
@@ -6249,7 +10476,7 @@ it when it is finished.
If you were sorting a list of priority numbers to make sure the
lowest priority would be at the top of the queue, you could use:
-&amp;lt;informalexample&amp;gt;&amp;lt;programlisting&amp;gt;
+|[
gint32 id1;
gint32 id2;
@@ -6257,7 +10484,7 @@ id1 = GPOINTER_TO_INT (element1);
id2 = GPOINTER_TO_INT (element2);
return (id1 &amp;gt; id2 ? +1 : id1 == id2 ? 0 : -1);
-&amp;lt;/programlisting&amp;gt;&amp;lt;/informalexample&amp;gt;
+]|
Since: 2.10
@@ -6299,6 +10526,35 @@ Returns: %TRUE if @file_name is an absolute path.
</return>
</function>
+<function name="g_hash_table_new">
+<description>
+Creates a new #GHashTable with a reference count of 1.
+
+
+</description>
+<parameters>
+<parameter name="hash_func">
+<parameter_description> a function to create a hash value from a key.
+Hash values are used to determine where keys are stored within the
+#GHashTable data structure. The g_direct_hash(), g_int_hash() and
+g_str_hash() functions are provided for some common types of keys.
+If hash_func is %NULL, g_direct_hash() is used.
+</parameter_description>
+</parameter>
+<parameter name="key_equal_func">
+<parameter_description> a function to check two keys for equality. This is
+used when looking up keys in the #GHashTable. The g_direct_equal(),
+g_int_equal() and g_str_equal() functions are provided for the most
+common types of keys. If @key_equal_func is %NULL, keys are compared
+directly in a similar fashion to g_direct_equal(), but without the
+overhead of a function call.
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GHashTable.
+</return>
+</function>
+
<function name="g_string_prepend_len">
<description>
Prepends @len bytes of @val to @string.
@@ -6418,32 +10674,25 @@ Creates a new #GString, initialized with the given string.
</return>
</function>
-<function name="g_filename_to_uri">
+<function name="g_test_rand_int">
<description>
-Converts an absolute filename to an escaped ASCII-encoded URI, with the path
-component following Section 3.3. of RFC 2396.
+Get a reproducible random integer number.
+
+The random numbers generated by the g_test_rand_*() family of functions
+change with every new test program start, unless the --seed option is
+given when starting test programs.
+
+For individual test cases however, the random number generator is
+reseeded, to avoid dependencies between tests and to make --seed
+effective for all test cases.
</description>
<parameters>
-<parameter name="filename">
-<parameter_description> an absolute filename specified in the GLib file name encoding,
-which is the on-disk file name bytes on Unix, and UTF-8 on
-Windows
-</parameter_description>
-</parameter>
-<parameter name="hostname">
-<parameter_description> A UTF-8 encoded hostname, or %NULL for none.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> location to store the error occuring, or %NULL to ignore
-errors. Any of the errors in #GConvertError may occur.
-</parameter_description>
-</parameter>
</parameters>
-<return> a newly-allocated string holding the resulting
-URI, or %NULL on an error.
+<return> a random number from the seeded random number generator.
+
+Since: 2.16
</return>
</function>
@@ -6503,12 +10752,63 @@ Since: 2.6
</return>
</function>
+<function name="g_value_set_float">
+<description>
+Set the contents of a %G_TYPE_FLOAT #GValue to @v_float.
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of type %G_TYPE_FLOAT
+</parameter_description>
+</parameter>
+<parameter name="v_float">
+<parameter_description> float value to be set
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_markup_parse_context_get_element_stack">
+<description>
+Retrieves the element stack from the internal state of the parser.
+The returned #GSList is a list of strings where the first item is
+the currently open tag (as would be returned by
+g_markup_parse_context_get_element()) and the next item is its
+immediate parent.
+
+This function is intended to be used in the start_element and
+end_element handlers where g_markup_parse_context_get_element()
+would merely return the name of the element that is being
+processed.
+
+
+</description>
+<parameters>
+<parameter name="context">
+<parameter_description> a #GMarkupParseContext
+</parameter_description>
+</parameter>
+</parameters>
+<return> the element stack, which must not be modified
+
+Since: 2.16
+</return>
+</function>
+
<function name="g_win32_get_package_installation_directory">
<description>
Try to determine the installation directory for a software package.
-@package should be a short identifier for the package. Typically it
-is the same identifier as used for
+This function is deprecated. Use
+g_win32_get_package_installation_directory_of_module() instead.
+
+The use of @package is deprecated. You should always pass %NULL. A
+warning is printed if non-NULL is passed as @package.
+
+The original intended use of @package was for a short identifier of
+the package, typically the same identifier as used for
&amp;lt;literal&amp;gt;GETTEXT_PACKAGE&amp;lt;/literal&amp;gt; in software configured using GNU
autotools. The function first looks in the Windows Registry for the
value &amp;lt;literal&amp;gt;&amp;num;InstallationDirectory&amp;lt;/literal&amp;gt; in the key
@@ -6518,13 +10818,14 @@ exists and is a string, returns that.
It is strongly recommended that packagers of GLib-using libraries
for Windows do not store installation paths in the Registry to be
used by this function as that interfers with having several
-parallel installations of the library. Parallel installations of
-different versions of some GLib-using library, or GLib itself,
-might well be desirable for various reasons.
+parallel installations of the library. Enabling multiple
+installations of different versions of some GLib-using library, or
+GLib itself, is desirable for various reasons.
-For the same reason it is recommeded to always pass %NULL as
+For this reason it is recommeded to always pass %NULL as
@package to this function, to avoid the temptation to use the
-Registry.
+Registry. In version 2.20 of GLib the @package parameter
+will be ignored and this function won&apos;t look in the Registry at all.
If @package is %NULL, or the above value isn&apos;t found in the
Registry, but @dll_name is non-%NULL, it should name a DLL loaded
@@ -6544,18 +10845,61 @@ the same way as above.
</description>
<parameters>
<parameter name="package">
-<parameter_description> An identifier for a software package, or %NULL, in UTF-8
+<parameter_description> You should pass %NULL for this.
</parameter_description>
</parameter>
<parameter name="dll_name">
-<parameter_description> The name of a DLL that a package provides, or %NULL, in UTF-8
+<parameter_description> The name of a DLL that a package provides in UTF-8, or %NULL.
</parameter_description>
</parameter>
</parameters>
<return> a string containing the installation directory for
-@package. The string is in the GLib file name encoding, i.e. UTF-8
-on Windows. The return value should be freed with g_free() when not
-needed any longer.
+@package. The string is in the GLib file name encoding,
+i.e. UTF-8. The return value should be freed with g_free() when not
+needed any longer. If the function fails %NULL is returned.
+
+@Deprecated:2.18: Pass the HMODULE of a DLL or EXE to
+g_win32_get_package_installation_directory_of_module() instead.
+</return>
+</function>
+
+<function name="g_param_spec_uchar">
+<description>
+Creates a new #GParamSpecUChar instance specifying a %G_TYPE_UCHAR property.
+
+
+</description>
+<parameters>
+<parameter name="name">
+<parameter_description> canonical name of the property specified
+</parameter_description>
+</parameter>
+<parameter name="nick">
+<parameter_description> nick name for the property specified
+</parameter_description>
+</parameter>
+<parameter name="blurb">
+<parameter_description> description of the property specified
+</parameter_description>
+</parameter>
+<parameter name="minimum">
+<parameter_description> minimum value for the property specified
+</parameter_description>
+</parameter>
+<parameter name="maximum">
+<parameter_description> maximum value for the property specified
+</parameter_description>
+</parameter>
+<parameter name="default_value">
+<parameter_description> default value for the property specified
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> flags for the property specified
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly created parameter specification
</return>
</function>
@@ -6571,6 +10915,24 @@ regularly stop all unused threads e.g. from g_timeout_add().
<return></return>
</function>
+<function name="g_value_dup_object">
+<description>
+Get the contents of a %G_TYPE_OBJECT derived #GValue, increasing
+its reference count.
+
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue whose type is derived from %G_TYPE_OBJECT
+</parameter_description>
+</parameter>
+</parameters>
+<return> object content of @value, should be unreferenced when no
+longer needed.
+</return>
+</function>
+
<function name="g_hash_table_size">
<description>
Return value: the number of key/value pairs in the #GHashTable.
@@ -6590,7 +10952,6 @@ Return value: the number of key/value pairs in the #GHashTable.
<description>
Removes @key in @group_name from the key file.
-Since: 2.6
</description>
<parameters>
@@ -6611,7 +10972,10 @@ Since: 2.6
</parameter_description>
</parameter>
</parameters>
-<return></return>
+<return> %TRUE if the key was removed, %FALSE otherwise
+
+Since: 2.6
+</return>
</function>
<function name="g_source_get_priority">
@@ -6630,6 +10994,65 @@ Gets the priority of a source.
</return>
</function>
+<function name="g_signal_new_valist">
+<description>
+Creates a new signal. (This is usually done in the class initializer.)
+
+See g_signal_new() for details on allowed signal names.
+
+
+</description>
+<parameters>
+<parameter name="signal_name">
+<parameter_description> the name for the signal
+</parameter_description>
+</parameter>
+<parameter name="itype">
+<parameter_description> the type this signal pertains to. It will also pertain to
+types which are derived from this type.
+</parameter_description>
+</parameter>
+<parameter name="signal_flags">
+<parameter_description> a combination of #GSignalFlags specifying detail of when
+the default handler is to be invoked. You should at least specify
+%G_SIGNAL_RUN_FIRST or %G_SIGNAL_RUN_LAST.
+</parameter_description>
+</parameter>
+<parameter name="class_closure">
+<parameter_description> The closure to invoke on signal emission; may be %NULL.
+</parameter_description>
+</parameter>
+<parameter name="accumulator">
+<parameter_description> the accumulator for this signal; may be %NULL.
+</parameter_description>
+</parameter>
+<parameter name="accu_data">
+<parameter_description> user data for the @accumulator.
+</parameter_description>
+</parameter>
+<parameter name="c_marshaller">
+<parameter_description> the function to translate arrays of parameter values to
+signal emissions into C language callback invocations.
+</parameter_description>
+</parameter>
+<parameter name="return_type">
+<parameter_description> the type of return value, or #G_TYPE_NONE for a signal
+without a return value.
+</parameter_description>
+</parameter>
+<parameter name="n_params">
+<parameter_description> the number of parameter types in @args.
+</parameter_description>
+</parameter>
+<parameter name="args">
+<parameter_description> va_list of #GType, one for each parameter.
+</parameter_description>
+</parameter>
+</parameters>
+<return> the signal id
+</return>
+</function>
+
<function name="g_regex_replace_literal">
<description>
Replaces all occurances of the pattern in @regex with the
@@ -6679,25 +11102,79 @@ Since: 2.14
</return>
</function>
-<function name="g_queue_find">
+<function name="g_type_class_peek">
<description>
-Finds the first link in @queue which contains @data.
+This function is essentially the same as g_type_class_ref(), except that
+the classes reference count isn&apos;t incremented. As a consequence, this function
+may return %NULL if the class of the type passed in does not currently
+exist (hasn&apos;t been referenced before).
</description>
<parameters>
-<parameter name="queue">
-<parameter_description> a #GQueue
+<parameter name="type">
+<parameter_description> Type ID of a classed type.
+</parameter_description>
+</parameter>
+</parameters>
+<return> The #GTypeClass structure for the given type ID or %NULL
+if the class does not currently exist.
+</return>
+</function>
+
+<function name="g_source_set_callback">
+<description>
+Sets the callback function for a source. The callback for a source is
+called from the source&apos;s dispatch function.
+
+The exact type of @func depends on the type of source; ie. you
+should not count on @func being called with @data as its first
+parameter.
+
+Typically, you won&apos;t use this function. Instead use functions specific
+to the type of source you are using.
+
+</description>
+<parameters>
+<parameter name="source">
+<parameter_description> the source
+</parameter_description>
+</parameter>
+<parameter name="func">
+<parameter_description> a callback function
</parameter_description>
</parameter>
<parameter name="data">
-<parameter_description> data to find
+<parameter_description> the data to pass to callback function
+</parameter_description>
+</parameter>
+<parameter name="notify">
+<parameter_description> a function to call when @data is no longer in use, or %NULL.
</parameter_description>
</parameter>
</parameters>
-<return> The first link in @queue which contains @data.
+<return></return>
+</function>
-Since: 2.4
+<function name="g_param_spec_pool_list_owned">
+<description>
+Gets an #GList of all #GParamSpec&amp;lt;!-- --&amp;gt;s owned by @owner_type in
+the pool.
+
+
+</description>
+<parameters>
+<parameter name="pool">
+<parameter_description> a #GParamSpecPool
+</parameter_description>
+</parameter>
+<parameter name="owner_type">
+<parameter_description> the owner to look for
+</parameter_description>
+</parameter>
+</parameters>
+<return> a #GList of all #GParamSpec&amp;lt;!-- --&amp;gt;s owned by @owner_type
+in the pool#GParamSpec&amp;lt;!-- --&amp;gt;s.
</return>
</function>
@@ -6797,6 +11274,30 @@ and %FALSE for all other channels.
<return></return>
</function>
+<function name="g_value_array_insert">
+<description>
+Insert a copy of @value at specified position into @value_array.
+
+
+</description>
+<parameters>
+<parameter name="value_array">
+<parameter_description> #GValueArray to add an element to
+</parameter_description>
+</parameter>
+<parameter name="index_">
+<parameter_description> insertion position, must be &amp;lt;= value_array-&amp;gt;n_values
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> #GValue to copy into #GValueArray
+</parameter_description>
+</parameter>
+</parameters>
+<return> the #GValueArray passed in as @value_array
+</return>
+</function>
+
<function name="g_async_queue_pop">
<description>
Pops data from the @queue. This function blocks until data become
@@ -6814,25 +11315,38 @@ available.
</return>
</function>
-<function name="g_async_queue_unref_and_unlock">
+<function name="g_key_file_get_integer_list">
<description>
-Decreases the reference count of the asynchronous @queue by 1 and
-releases the lock. This function must be called while holding the
-@queue&apos;s lock. If the reference count went to 0, the @queue will be
-destroyed and the memory allocated will be freed.
-
-@Deprecated: Since 2.8, reference counting is done atomically
-so g_async_queue_unref() can be used regardless of the @queue&apos;s
-lock.
+Return value: the values associated with the key as a list of
</description>
<parameters>
-<parameter name="queue">
-<parameter_description> a #GAsyncQueue.
+<parameter name="key_file">
+<parameter_description> a #GKeyFile
+</parameter_description>
+</parameter>
+<parameter name="group_name">
+<parameter_description> a group name
+</parameter_description>
+</parameter>
+<parameter name="key">
+<parameter_description> a key
+</parameter_description>
+</parameter>
+<parameter name="length">
+<parameter_description> the number of integers returned
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> return location for a #GError
</parameter_description>
</parameter>
</parameters>
-<return></return>
+<return> the values associated with the key as a list of
+integers, or %NULL if the key was not found or could not be parsed.
+
+Since: 2.6
+</return>
</function>
<function name="g_option_context_get_description">
@@ -6852,6 +11366,21 @@ Since: 2.12
</return>
</function>
+<function name="glib_gettext">
+<description>
+Returns: the transation of @str to the current locale
+
+</description>
+<parameters>
+<parameter name="str">
+<parameter_description> The string to be translated
+</parameter_description>
+</parameter>
+</parameters>
+<return> the transation of @str to the current locale
+</return>
+</function>
+
<function name="g_stpcpy">
<description>
Copies a nul-terminated string into the dest buffer, include the
@@ -6899,32 +11428,79 @@ Inserts a byte into a #GString, expanding it if necessary.
</return>
</function>
-<function name="g_bookmark_file_get_added">
+<function name="g_uri_escape_string">
<description>
-Gets the time the bookmark for @uri was added to @bookmark
+Escapes a string for use in a URI.
-In the event the URI cannot be found, -1 is returned and
-@error is set to #G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND.
+Normally all characters that are not &quot;unreserved&quot; (i.e. ASCII alphanumerical
+characters plus dash, dot, underscore and tilde) are escaped.
+But if you specify characters in @reserved_chars_allowed they are not
+escaped. This is useful for the &quot;reserved&quot; characters in the URI
+specification, since those are allowed unescaped in some portions of
+a URI.
</description>
<parameters>
-<parameter name="bookmark">
-<parameter_description> a #GBookmarkFile
+<parameter name="unescaped">
+<parameter_description> the unescaped input string.
</parameter_description>
</parameter>
-<parameter name="uri">
-<parameter_description> a valid URI
+<parameter name="reserved_chars_allowed">
+<parameter_description> a string of reserved characters that are
+allowed to be used.
</parameter_description>
</parameter>
-<parameter name="error">
-<parameter_description> return location for a #GError, or %NULL
+<parameter name="allow_utf8">
+<parameter_description> %TRUE if the result can include UTF-8 characters.
</parameter_description>
</parameter>
</parameters>
-<return> a timestamp
+<return> an escaped version of @unescaped. The returned string should be
+freed when no longer needed.
-Since: 2.12
+Since: 2.16
+</return>
+</function>
+
+<function name="g_value_dup_param">
+<description>
+Get the contents of a %G_TYPE_PARAM #GValue, increasing its
+reference count.
+
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue whose type is derived from %G_TYPE_PARAM
+</parameter_description>
+</parameter>
+</parameters>
+<return> #GParamSpec content of @value, should be unreferenced when
+no longer needed.
+</return>
+</function>
+
+<function name="g_file_error_from_errno">
+<description>
+Gets a #GFileError constant based on the passed-in @errno.
+For example, if you pass in %EEXIST this function returns
+#G_FILE_ERROR_EXIST. Unlike @errno values, you can portably
+assume that all #GFileError values will exist.
+
+Normally a #GFileError value goes into a #GError returned
+from a function that manipulates files. So you would use
+g_file_error_from_errno() when constructing a #GError.
+
+
+</description>
+<parameters>
+<parameter name="err_no">
+<parameter_description> an &quot;errno&quot; value
+</parameter_description>
+</parameter>
+</parameters>
+<return> #GFileError corresponding to the given @errno
</return>
</function>
@@ -6954,6 +11530,32 @@ last reference is dropped using g_io_channel_unref().
</return>
</function>
+<function name="g_object_watch_closure">
+<description>
+This function essentially limits the life time of the @closure to
+the life time of the object. That is, when the object is finalized,
+the @closure is invalidated by calling g_closure_invalidate() on
+it, in order to prevent invocations of the closure with a finalized
+(nonexisting) object. Also, g_object_ref() and g_object_unref() are
+added as marshal guards to the @closure, to ensure that an extra
+reference count is held on @object during invocation of the
+@closure. Usually, this function will be called on closures that
+use this @object as closure data.
+
+</description>
+<parameters>
+<parameter name="object">
+<parameter_description> GObject restricting lifetime of @closure
+</parameter_description>
+</parameter>
+<parameter name="closure">
+<parameter_description> GClosure to watch
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_ucs4_to_utf16">
<description>
Convert a string from UCS-4 to UTF-16. A 0 character will be
@@ -6968,7 +11570,7 @@ added to the result after the converted text.
</parameter>
<parameter name="len">
<parameter_description> the maximum length (number of characters) of @str to use.
-If @len &amp;lt; 0, then the string is terminated with a 0 character.
+If @len &amp;lt; 0, then the string is nul-terminated.
</parameter_description>
</parameter>
<parameter name="items_read">
@@ -6997,6 +11599,28 @@ error occurs, %NULL will be returned and
</return>
</function>
+<function name="g_list_copy">
+<description>
+Copies a #GList.
+
+&amp;lt;note&amp;gt;&amp;lt;para&amp;gt;
+Note that this is a &quot;shallow&quot; copy. If the list elements
+consist of pointers to data, the pointers are copied but
+the actual data is not.
+&amp;lt;/para&amp;gt;&amp;lt;/note&amp;gt;
+
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GList
+</parameter_description>
+</parameter>
+</parameters>
+<return> a copy of @list
+</return>
+</function>
+
<function name="g_thread_pool_unprocessed">
<description>
Return value: the number of unprocessed tasks
@@ -7012,76 +11636,88 @@ Return value: the number of unprocessed tasks
</return>
</function>
-<function name="g_thread_pool_set_max_unused_threads">
+<function name="g_iconv_open">
<description>
-Sets the maximal number of unused threads to @max_threads. If
-@max_threads is -1, no limit is imposed on the number of unused
-threads.
+Same as the standard UNIX routine iconv_open(), but
+may be implemented via libiconv on UNIX flavors that lack
+a native implementation.
+
+GLib provides g_convert() and g_locale_to_utf8() which are likely
+more convenient than the raw iconv wrappers.
+
</description>
<parameters>
-<parameter name="max_threads">
-<parameter_description> maximal number of unused threads
+<parameter name="to_codeset">
+<parameter_description> destination codeset
+</parameter_description>
+</parameter>
+<parameter name="from_codeset">
+<parameter_description> source codeset
</parameter_description>
</parameter>
</parameters>
-<return></return>
+<return> a &quot;conversion descriptor&quot;, or (GIConv)-1 if
+opening the converter failed.
+</return>
</function>
-<function name="g_bookmark_file_set_description">
+<function name="g_mkstemp">
<description>
-Sets @description as the description of the bookmark for @uri.
-
-If @uri is %NULL, the description of @bookmark is set.
+Opens a temporary file. See the mkstemp() documentation
+on most UNIX-like systems.
-If a bookmark for @uri cannot be found then it is created.
+The parameter is a string that should follow the rules for
+mkstemp() templates, i.e. contain the string &quot;XXXXXX&quot;.
+g_mkstemp() is slightly more flexible than mkstemp()
+in that the sequence does not have to occur at the very end of the
+template. The X string will
+be modified to form the name of a file that didn&apos;t exist.
+The string should be in the GLib file name encoding. Most importantly,
+on Windows it should be in UTF-8.
-Since: 2.12
</description>
<parameters>
-<parameter name="bookmark">
-<parameter_description> a #GBookmarkFile
-</parameter_description>
-</parameter>
-<parameter name="uri">
-<parameter_description> a valid URI or %NULL
-</parameter_description>
-</parameter>
-<parameter name="description">
-<parameter_description> a string
+<parameter name="tmpl">
+<parameter_description> template filename
</parameter_description>
</parameter>
</parameters>
-<return></return>
+<return> A file handle (as from open()) to the file
+opened for reading and writing. The file is opened in binary mode
+on platforms where there is a difference. The file handle should be
+closed with close(). In case of errors, -1 is returned.
+</return>
</function>
-<function name="g_utf8_get_char_validated">
+<function name="g_tree_insert">
<description>
-Convert a sequence of bytes encoded as UTF-8 to a Unicode character.
-This function checks for incomplete characters, for invalid characters
-such as characters that are out of the range of Unicode, and for
-overlong encodings of valid characters.
+Inserts a key/value pair into a #GTree. If the given key already exists
+in the #GTree its corresponding value is set to the new value. If you
+supplied a value_destroy_func when creating the #GTree, the old value is
+freed using that function. If you supplied a @key_destroy_func when
+creating the #GTree, the passed key is freed using that function.
+The tree is automatically &apos;balanced&apos; as new key/value pairs are added,
+so that the distance from the root to every leaf is as small as possible.
</description>
<parameters>
-<parameter name="p">
-<parameter_description> a pointer to Unicode character encoded as UTF-8
+<parameter name="tree">
+<parameter_description> a #GTree.
</parameter_description>
</parameter>
-<parameter name="max_len">
-<parameter_description> the maximum number of bytes to read, or -1, for no maximum or
-if @p is nul-terminated
+<parameter name="key">
+<parameter_description> the key to insert.
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> the value corresponding to the key.
</parameter_description>
</parameter>
</parameters>
-<return> the resulting character. If @p points to a partial
-sequence at the end of a string that could begin a valid
-character (or if @max_len is zero), returns (gunichar)-2;
-otherwise, if @p does not point to a valid UTF-8 encoded
-Unicode character, returns (gunichar)-1.
-</return>
+<return></return>
</function>
<function name="g_utf8_to_ucs4_fast">
@@ -7099,8 +11735,8 @@ but does no error checking on the input.
</parameter_description>
</parameter>
<parameter name="len">
-<parameter_description> the maximum length of @str to use. If @len &amp;lt; 0, then
-the string is nul-terminated.
+<parameter_description> the maximum length of @str to use, in bytes. If @len &amp;lt; 0,
+then the string is nul-terminated.
</parameter_description>
</parameter>
<parameter name="items_written">
@@ -7116,12 +11752,12 @@ This value must be freed with g_free().
<function name="g_hash_table_replace">
<description>
-Inserts a new key and value into a #GHashTable similar to
-g_hash_table_insert(). The difference is that if the key already exists
-in the #GHashTable, it gets replaced by the new key. If you supplied a
-@value_destroy_func when creating the #GHashTable, the old value is freed
-using that function. If you supplied a @key_destroy_func when creating the
-#GHashTable, the old key is freed using that function.
+Inserts a new key and value into a #GHashTable similar to
+g_hash_table_insert(). The difference is that if the key already exists
+in the #GHashTable, it gets replaced by the new key. If you supplied a
+@value_destroy_func when creating the #GHashTable, the old value is freed
+using that function. If you supplied a @key_destroy_func when creating the
+#GHashTable, the old key is freed using that function.
</description>
<parameters>
@@ -7141,6 +11777,60 @@ using that function. If you supplied a @key_destroy_func when creating the
<return></return>
</function>
+<function name="g_signal_connect_closure">
+<description>
+Connects a closure to a signal for a particular object.
+
+
+</description>
+<parameters>
+<parameter name="instance">
+<parameter_description> the instance to connect to.
+</parameter_description>
+</parameter>
+<parameter name="detailed_signal">
+<parameter_description> a string of the form &quot;signal-name::detail&quot;.
+</parameter_description>
+</parameter>
+<parameter name="closure">
+<parameter_description> the closure to connect.
+</parameter_description>
+</parameter>
+<parameter name="after">
+<parameter_description> whether the handler should be called before or after the
+default handler of the signal.
+</parameter_description>
+</parameter>
+</parameters>
+<return> the handler id
+</return>
+</function>
+
+<function name="g_node_insert_after">
+<description>
+Inserts a #GNode beneath the parent after the given sibling.
+
+
+</description>
+<parameters>
+<parameter name="parent">
+<parameter_description> the #GNode to place @node under
+</parameter_description>
+</parameter>
+<parameter name="sibling">
+<parameter_description> the sibling #GNode to place @node after.
+If sibling is %NULL, the node is inserted as the first child of @parent.
+</parameter_description>
+</parameter>
+<parameter name="node">
+<parameter_description> the #GNode to insert
+</parameter_description>
+</parameter>
+</parameters>
+<return> the inserted #GNode
+</return>
+</function>
+
<function name="g_source_remove">
<description>
Removes the source with the given id from the default main context.
@@ -7150,7 +11840,8 @@ functions g_source_attach(), g_idle_add(), g_idle_add_full(),
g_timeout_add(), g_timeout_add_full(), g_child_watch_add(),
g_child_watch_add_full(), g_io_add_watch(), and g_io_add_watch_full().
-See also g_source_destroy().
+See also g_source_destroy(). You must use g_source_destroy() for sources
+added to a non-default main context.
</description>
@@ -7192,6 +11883,11 @@ and CPU efficient behavior so if your timer is in multiples of seconds
and you don&apos;t require the first timer exactly one second from now, the
use of g_timeout_add_seconds() is preferred over g_timeout_add().
+This internally creates a main loop source using
+g_timeout_source_new_seconds() and attaches it to the main loop context
+using g_source_attach(). You can do these steps manually if you need
+greater control.
+
</description>
<parameters>
@@ -7255,6 +11951,30 @@ element comes before the first.
<return></return>
</function>
+<function name="g_type_query">
+<description>
+Queries the type system for information about a specific type.
+This function will fill in a user-provided structure to hold
+type-specific information. If an invalid #GType is passed in, the
+@type member of the #GTypeQuery is 0. All members filled into the
+#GTypeQuery structure should be considered constant and have to be
+left untouched.
+
+</description>
+<parameters>
+<parameter name="type">
+<parameter_description> the #GType value of a static, classed type.
+</parameter_description>
+</parameter>
+<parameter name="query">
+<parameter_description> A user provided structure that is filled in with constant values
+upon success.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_string_insert">
<description>
Inserts a copy of a string into a #GString,
@@ -7311,6 +12031,67 @@ lock.
</return>
</function>
+<function name="g_type_register_static">
+<description>
+Registers @type_name as the name of a new static type derived from
+@parent_type. The type system uses the information contained in the
+#GTypeInfo structure pointed to by @info to manage the type and its
+instances (if not abstract). The value of @flags determines the nature
+(e.g. abstract or not) of the type.
+
+
+</description>
+<parameters>
+<parameter name="parent_type">
+<parameter_description> Type from which this type will be derived.
+</parameter_description>
+</parameter>
+<parameter name="type_name">
+<parameter_description> 0-terminated string used as the name of the new type.
+</parameter_description>
+</parameter>
+<parameter name="info">
+<parameter_description> The #GTypeInfo structure for this type.
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> Bitwise combination of #GTypeFlags values.
+</parameter_description>
+</parameter>
+</parameters>
+<return> The new type identifier.
+</return>
+</function>
+
+<function name="g_object_get_valist">
+<description>
+Gets properties of an object.
+
+In general, a copy is made of the property contents and the caller
+is responsible for freeing the memory in the appropriate manner for
+the type, for instance by calling g_free() or g_object_unref().
+
+See g_object_get().
+
+</description>
+<parameters>
+<parameter name="object">
+<parameter_description> a #GObject
+</parameter_description>
+</parameter>
+<parameter name="first_property_name">
+<parameter_description> name of the first property to get
+</parameter_description>
+</parameter>
+<parameter name="var_args">
+<parameter_description> return location for the first property, followed optionally by more
+name/return location pairs, followed by %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_error_new_literal">
<description>
Creates a new #GError; unlike g_error_new(), @message is not
@@ -7355,6 +12136,26 @@ Since: 2.6
<return></return>
</function>
+<function name="g_value_array_remove">
+<description>
+Remove the value at position @index_ from @value_array.
+
+
+</description>
+<parameters>
+<parameter name="value_array">
+<parameter_description> #GValueArray to remove an element from
+</parameter_description>
+</parameter>
+<parameter name="index_">
+<parameter_description> position of value to remove, must be &amp;lt; value_array-&amp;gt;n_values
+</parameter_description>
+</parameter>
+</parameters>
+<return> the #GValueArray passed in as @value_array
+</return>
+</function>
+
<function name="g_strv_length">
<description>
Return value: length of @str_array.
@@ -7372,6 +12173,27 @@ Since: 2.6
</return>
</function>
+<function name="g_object_get_qdata">
+<description>
+This function gets back user data pointers stored via
+g_object_set_qdata().
+
+
+</description>
+<parameters>
+<parameter name="object">
+<parameter_description> The GObject to get a stored user data pointer from
+</parameter_description>
+</parameter>
+<parameter name="quark">
+<parameter_description> A #GQuark, naming the user data pointer
+</parameter_description>
+</parameter>
+</parameters>
+<return> The user data pointer set, or %NULL
+</return>
+</function>
+
<function name="g_queue_link_index">
<description>
Return value: The position of @link_, or -1 if the link is
@@ -7394,46 +12216,178 @@ Since: 2.4
</return>
</function>
-<function name="g_spawn_close_pid">
+<function name="g_main_context_get_poll_func">
<description>
-On some platforms, notably WIN32, the #GPid type represents a resource
-which must be closed to prevent resource leaking. g_spawn_close_pid()
-is provided for this purpose. It should be used on all platforms, even
-though it doesn&apos;t do anything under UNIX.
+Gets the poll function set by g_main_context_set_poll_func().
+
</description>
<parameters>
-<parameter name="pid">
-<parameter_description> The process identifier to close
+<parameter name="context">
+<parameter_description> a #GMainContext
+</parameter_description>
+</parameter>
+</parameters>
+<return> the poll function
+</return>
+</function>
+
+<function name="g_test_run">
+<description>
+Runs all tests under the toplevel suite which can be retrieved
+with g_test_get_root(). Similar to g_test_run_suite(), the test
+cases to be run are filtered according to
+test path arguments (-p &amp;lt;replaceable&amp;gt;testpath&amp;lt;/replaceable&amp;gt;) as
+parsed by g_test_init().
+g_test_run_suite() or g_test_run() may only be called once
+in a program.
+
+
+</description>
+<parameters>
+</parameters>
+<return> 0 on success
+
+Since: 2.16
+</return>
+</function>
+
+<function name="g_type_plugin_unuse">
+<description>
+Calls the @unuse_plugin function from the #GTypePluginClass of
+@plugin. There should be no need to use this function outside of
+the GObject type system itself.
+
+</description>
+<parameters>
+<parameter name="plugin">
+<parameter_description> a #GTypePlugin
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>
-<function name="g_iconv_open">
+<function name="g_node_insert">
<description>
-Same as the standard UNIX routine iconv_open(), but
-may be implemented via libiconv on UNIX flavors that lack
-a native implementation.
+Inserts a #GNode beneath the parent at the given position.
-GLib provides g_convert() and g_locale_to_utf8() which are likely
-more convenient than the raw iconv wrappers.
+</description>
+<parameters>
+<parameter name="parent">
+<parameter_description> the #GNode to place @node under
+</parameter_description>
+</parameter>
+<parameter name="position">
+<parameter_description> the position to place @node at, with respect to its siblings
+If position is -1, @node is inserted as the last child of @parent
+</parameter_description>
+</parameter>
+<parameter name="node">
+<parameter_description> the #GNode to insert
+</parameter_description>
+</parameter>
+</parameters>
+<return> the inserted #GNode
+</return>
+</function>
+
+<function name="g_object_disconnect">
+<description>
+A convenience function to disconnect multiple signals at once.
+
+The signal specs expected by this function have the form
+&quot;any_signal&quot;, which means to disconnect any signal with matching
+callback and data, or &quot;any_signal::signal_name&quot;, which only
+disconnects the signal named &quot;signal_name&quot;.
</description>
<parameters>
-<parameter name="to_codeset">
-<parameter_description> destination codeset
+<parameter name="object">
+<parameter_description> a #GObject
</parameter_description>
</parameter>
-<parameter name="from_codeset">
-<parameter_description> source codeset
+<parameter name="signal_spec">
+<parameter_description> the spec for the first signal
+</parameter_description>
+</parameter>
+<parameter name="Varargs">
+<parameter_description> #GCallback for the first signal, followed by data for the first signal,
+followed optionally by more signal spec/callback/data triples,
+followed by %NULL
</parameter_description>
</parameter>
</parameters>
-<return> a &quot;conversion descriptor&quot;, or (GIConv)-1 if
-opening the converter failed.
+<return></return>
+</function>
+
+<function name="g_thread_pool_set_max_unused_threads">
+<description>
+Sets the maximal number of unused threads to @max_threads. If
+@max_threads is -1, no limit is imposed on the number of unused
+threads.
+
+</description>
+<parameters>
+<parameter name="max_threads">
+<parameter_description> maximal number of unused threads
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_object_weak_ref">
+<description>
+Adds a weak reference callback to an object. Weak references are
+used for notification when an object is finalized. They are called
+&quot;weak references&quot; because they allow you to safely hold a pointer
+to an object without calling g_object_ref() (g_object_ref() adds a
+strong reference, that is, forces the object to stay alive).
+
+</description>
+<parameters>
+<parameter name="object">
+<parameter_description> #GObject to reference weakly
+</parameter_description>
+</parameter>
+<parameter name="notify">
+<parameter_description> callback to invoke before the object is freed
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> extra data to pass to notify
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_compute_checksum_for_string">
+<description>
+Computes the checksum of a string.
+
+
+</description>
+<parameters>
+<parameter name="checksum_type">
+<parameter_description> a #GChecksumType
+</parameter_description>
+</parameter>
+<parameter name="str">
+<parameter_description> the string to compute the checksum of
+</parameter_description>
+</parameter>
+<parameter name="length">
+<parameter_description> the length of the string, or -1 if the string is null-terminated.
+</parameter_description>
+</parameter>
+</parameters>
+<return> the checksum as a hexadecimal string. The returned string
+should be freed with g_free() when done using it.
+
+Since: 2.16
</return>
</function>
@@ -7451,6 +12405,16 @@ Frees the memory allocated for the #GRand.
<return></return>
</function>
+<function name="g_test_log_buffer_new">
+<description>
+Internal function for gtester to decode test log messages, no ABI guarantees provided.
+
+</description>
+<parameters>
+</parameters>
+<return></return>
+</function>
+
<function name="g_option_group_add_entries">
<description>
Adds the options specified in @entries to @group.
@@ -7471,6 +12435,26 @@ Since: 2.6
<return></return>
</function>
+<function name="g_object_freeze_notify">
+<description>
+Increases the freeze count on @object. If the freeze count is
+non-zero, the emission of &quot;notify&quot; signals on @object is
+stopped. The signals are queued until the freeze count is decreased
+to zero.
+
+This is necessary for accessors that modify multiple properties to prevent
+premature notification while the object is still being modified.
+
+</description>
+<parameters>
+<parameter name="object">
+<parameter_description> a #GObject
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_bookmark_file_set_groups">
<description>
Sets a list of group names for the item with URI @uri. Each previously
@@ -7518,24 +12502,24 @@ the GIOChannel data structure.
</return>
</function>
-<function name="g_key_file_get_groups">
+<function name="g_node_n_nodes">
<description>
-Return value: a newly-allocated %NULL-terminated array of strings.
+Gets the number of nodes in a tree.
+
</description>
<parameters>
-<parameter name="key_file">
-<parameter_description> a #GKeyFile
+<parameter name="root">
+<parameter_description> a #GNode
</parameter_description>
</parameter>
-<parameter name="length">
-<parameter_description> return location for the number of returned groups, or %NULL
+<parameter name="flags">
+<parameter_description> which types of children are to be counted, one of
+%G_TRAVERSE_ALL, %G_TRAVERSE_LEAVES and %G_TRAVERSE_NON_LEAVES
</parameter_description>
</parameter>
</parameters>
-<return> a newly-allocated %NULL-terminated array of strings.
-Use g_strfreev() to free it.
-Since: 2.6
+<return> the number of nodes in the tree
</return>
</function>
@@ -7555,48 +12539,42 @@ Increases the reference count on a source by one.
</return>
</function>
-<function name="g_filename_to_utf8">
+<function name="g_uri_parse_scheme">
<description>
-Converts a string which is in the encoding used by GLib for
-filenames into a UTF-8 string. Note that on Windows GLib uses UTF-8
-for filenames; on other platforms, this function indirectly depends on
-the &amp;lt;link linkend=&quot;setlocale&quot;&amp;gt;current locale&amp;lt;/link&amp;gt;.
+Gets the scheme portion of a URI string. RFC 3986 decodes the scheme as:
+&amp;lt;programlisting&amp;gt;
+URI = scheme &quot;:&quot; hier-part [ &quot;?&quot; query ] [ &quot;#&quot; fragment ]
+&amp;lt;/programlisting&amp;gt;
+Common schemes include &quot;file&quot;, &quot;http&quot;, &quot;svn+ssh&quot;, etc.
</description>
<parameters>
-<parameter name="opsysstring">
-<parameter_description> a string in the encoding for filenames
-</parameter_description>
-</parameter>
-<parameter name="len">
-<parameter_description> the length of the string, or -1 if the string is
-nul-terminated&amp;lt;footnoteref linkend=&quot;nul-unsafe&quot;/&amp;gt;.
-</parameter_description>
-</parameter>
-<parameter name="bytes_read">
-<parameter_description> location to store the number of bytes in the
-input string that were successfully converted, or %NULL.
-Even if the conversion was successful, this may be
-less than @len if there were partial characters
-at the end of the input. If the error
-#G_CONVERT_ERROR_ILLEGAL_SEQUENCE occurs, the value
-stored will the byte offset after the last valid
-input sequence.
-</parameter_description>
-</parameter>
-<parameter name="bytes_written">
-<parameter_description> the number of bytes stored in the output buffer (not
-including the terminating nul).
+<parameter name="uri">
+<parameter_description> a valid URI.
</parameter_description>
</parameter>
-<parameter name="error">
-<parameter_description> location to store the error occuring, or %NULL to ignore
-errors. Any of the errors in #GConvertError may occur.
+</parameters>
+<return> The &quot;Scheme&quot; component of the URI, or %NULL on error.
+The returned string should be freed when no longer needed.
+
+Since: 2.16
+</return>
+</function>
+
+<function name="g_unichar_type">
+<description>
+Classifies a Unicode character by type.
+
+
+</description>
+<parameters>
+<parameter name="c">
+<parameter_description> a Unicode character
</parameter_description>
</parameter>
</parameters>
-<return> The converted string, or %NULL on an error.
+<return> the type of the character.
</return>
</function>
@@ -7668,6 +12646,22 @@ Since: 2.14
<return></return>
</function>
+<function name="g_param_spec_ref">
+<description>
+Increments the reference count of @pspec.
+
+
+</description>
+<parameters>
+<parameter name="pspec">
+<parameter_description> a valid #GParamSpec
+</parameter_description>
+</parameter>
+</parameters>
+<return> the #GParamSpec that was passed into this function
+</return>
+</function>
+
<function name="g_main_context_wait">
<description>
Tries to become the owner of the specified context,
@@ -7697,25 +12691,28 @@ this thread is now the owner of @context.
</return>
</function>
-<function name="g_date_set_time_t">
+<function name="g_thread_foreach">
<description>
-Sets the value of a date from a &amp;lt;type&amp;gt;time_t&amp;lt;/type&amp;gt; value.
+Call @thread_func on all existing #GThread structures. Note that
+threads may decide to exit while @thread_func is running, so
+without intimate knowledge about the lifetime of foreign threads,
+@thread_func shouldn&apos;t access the GThread* pointer passed in as
+first argument. However, @thread_func will not be called for threads
+which are known to have exited already.
-To set the value of a date to the current day, you could write:
-&amp;lt;informalexample&amp;gt;&amp;lt;programlisting&amp;gt;
-g_date_set_time_t (date, time (NULL));
-&amp;lt;/programlisting&amp;gt;&amp;lt;/informalexample&amp;gt;
+Due to thread lifetime checks, this function has an execution complexity
+which is quadratic in the number of existing threads.
Since: 2.10
</description>
<parameters>
-<parameter name="date">
-<parameter_description> a #GDate
+<parameter name="thread_func">
+<parameter_description> function to call for all GThread structures
</parameter_description>
</parameter>
-<parameter name="timet">
-<parameter_description> &amp;lt;type&amp;gt;time_t&amp;lt;/type&amp;gt; value to set
+<parameter name="user_data">
+<parameter_description> second argument to @thread_func
</parameter_description>
</parameter>
</parameters>
@@ -7725,12 +12722,10 @@ Since: 2.10
<function name="g_key_file_set_comment">
<description>
Places a comment above @key from @group_name.
-@group_name. If @key is %NULL then @comment will
-be written above @group_name. If both @key
-and @group_name are NULL, then @comment will
-be written above the first group in the file.
+If @key is %NULL then @comment will be written above @group_name.
+If both @key and @group_name are %NULL, then @comment will be
+written above the first group in the file.
-Since: 2.6
</description>
<parameters>
@@ -7755,7 +12750,10 @@ Since: 2.6
</parameter_description>
</parameter>
</parameters>
-<return></return>
+<return> %TRUE if the comment was written, %FALSE otherwise
+
+Since: 2.6
+</return>
</function>
<function name="g_io_channel_error_quark">
@@ -7764,10 +12762,117 @@ Since: 2.6
</description>
<parameters>
</parameters>
-<return> The quark used as %G_IO_CHANNEL_ERROR
+<return> the quark used as %G_IO_CHANNEL_ERROR
</return>
</function>
+<function name="g_cclosure_marshal_VOID__ENUM">
+<description>
+A marshaller for a #GCClosure with a callback of type
+&amp;lt;literal&amp;gt;void (*callback) (gpointer instance, gint arg1, gpointer user_data)&amp;lt;/literal&amp;gt; where the #gint parameter denotes an enumeration type..
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> ignored
+</parameter_description>
+</parameter>
+<parameter name="n_param_values">
+<parameter_description> 2
+</parameter_description>
+</parameter>
+<parameter name="param_values">
+<parameter_description> a #GValue array holding the instance and the enumeration parameter
+</parameter_description>
+</parameter>
+<parameter name="invocation_hint">
+<parameter_description> the invocation hint given as the last argument
+to g_closure_invoke()
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when registering the marshaller
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_signal_handler_is_connected">
+<description>
+Returns: whether @handler_id identifies a handler connected to @instance.
+
+</description>
+<parameters>
+<parameter name="instance">
+<parameter_description> The instance where a signal handler is sought.
+</parameter_description>
+</parameter>
+<parameter name="handler_id">
+<parameter_description> the handler id.
+</parameter_description>
+</parameter>
+</parameters>
+<return> whether @handler_id identifies a handler connected to @instance.
+</return>
+</function>
+
+<function name="g_param_spec_boolean">
+<description>
+Creates a new #GParamSpecBoolean instance specifying a %G_TYPE_BOOLEAN
+property.
+
+See g_param_spec_internal() for details on property names.
+
+
+</description>
+<parameters>
+<parameter name="name">
+<parameter_description> canonical name of the property specified
+</parameter_description>
+</parameter>
+<parameter name="nick">
+<parameter_description> nick name for the property specified
+</parameter_description>
+</parameter>
+<parameter name="blurb">
+<parameter_description> description of the property specified
+</parameter_description>
+</parameter>
+<parameter name="default_value">
+<parameter_description> default value for the property specified
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> flags for the property specified
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly created parameter specification
+</return>
+</function>
+
+<function name="g_type_check_instance">
+<description>
+Private helper function to aid implementation of the G_TYPE_CHECK_INSTANCE()
+macro.
+
+@Returns: #TRUE if @instance is valid, #FALSE otherwise.
+
+</description>
+<parameters>
+<parameter name="instance">
+<parameter_description> A valid #GTypeInstance structure.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_option_context_add_group">
<description>
Adds a #GOptionGroup to the @context, so that parsing with @context
@@ -7792,6 +12897,57 @@ Since: 2.6
<return></return>
</function>
+<function name="g_pointer_type_register_static">
+<description>
+Creates a new %G_TYPE_POINTER derived type id for a new
+pointer type with name @name.
+
+
+</description>
+<parameters>
+<parameter name="name">
+<parameter_description> the name of the new pointer type.
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new %G_TYPE_POINTER derived type id for @name.
+</return>
+</function>
+
+<function name="g_hash_table_new_full">
+<description>
+Creates a new #GHashTable like g_hash_table_new() with a reference count
+of 1 and allows to specify functions to free the memory allocated for the
+key and value that get called when removing the entry from the #GHashTable.
+
+
+</description>
+<parameters>
+<parameter name="hash_func">
+<parameter_description> a function to create a hash value from a key.
+</parameter_description>
+</parameter>
+<parameter name="key_equal_func">
+<parameter_description> a function to check two keys for equality.
+</parameter_description>
+</parameter>
+<parameter name="key_destroy_func">
+<parameter_description> a function to free the memory allocated for the key
+used when removing the entry from the #GHashTable or %NULL if you
+don&apos;t want to supply such a function.
+</parameter_description>
+</parameter>
+<parameter name="value_destroy_func">
+<parameter_description> a function to free the memory allocated for the
+value used when removing the entry from the #GHashTable or %NULL if
+you don&apos;t want to supply such a function.
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GHashTable.
+</return>
+</function>
+
<function name="g_hash_table_foreach_remove">
<description>
Calls the given function for each key/value pair in the #GHashTable.
@@ -7800,6 +12956,9 @@ If the function returns %TRUE, then the key/value pair is removed from the
the #GHashTable, they are used to free the memory allocated for the removed
keys and values.
+See #GHashTableIter for an alternative way to loop over the
+key/value pairs in the hash table.
+
</description>
<parameters>
@@ -7842,6 +13001,41 @@ Since: 2.4
</return>
</function>
+<function name="g_key_file_get_groups">
+<description>
+Return value: a newly-allocated %NULL-terminated array of strings.
+
+</description>
+<parameters>
+<parameter name="key_file">
+<parameter_description> a #GKeyFile
+</parameter_description>
+</parameter>
+<parameter name="length">
+<parameter_description> return location for the number of returned groups, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly-allocated %NULL-terminated array of strings.
+Use g_strfreev() to free it.
+Since: 2.6
+</return>
+</function>
+
+<function name="g_test_get_root">
+<description>
+Get the toplevel test suite for the test path API.
+
+
+</description>
+<parameters>
+</parameters>
+<return> the toplevel #GTestSuite
+
+Since: 2.16
+</return>
+</function>
+
<function name="g_string_prepend_unichar">
<description>
Converts a Unicode character into UTF-8, and prepends it
@@ -7916,66 +13110,143 @@ g_regex_new() and then use g_regex_match().
</parameter_description>
</parameter>
<parameter name="compile_options">
-<parameter_description> compile options for the regular expression
+<parameter_description> compile options for the regular expression, or 0
</parameter_description>
</parameter>
<parameter name="match_options">
-<parameter_description> match options
+<parameter_description> match options, or 0
</parameter_description>
</parameter>
</parameters>
-<return> %TRUE is the string matched, %FALSE otherwise
+<return> %TRUE if the string matched, %FALSE otherwise
Since: 2.14
</return>
</function>
-<function name="g_locale_to_utf8">
+<function name="g_value_set_enum">
<description>
-Converts a string which is in the encoding used for strings by
-the C runtime (usually the same as that used by the operating
-system) in the &amp;lt;link linkend=&quot;setlocale&quot;&amp;gt;current locale&amp;lt;/link&amp;gt; into a
-UTF-8 string.
-
+Set the contents of a %G_TYPE_ENUM #GValue to @v_enum.
</description>
<parameters>
-<parameter name="opsysstring">
-<parameter_description> a string in the encoding of the current locale. On Windows
-this means the system codepage.
+<parameter name="value">
+<parameter_description> a valid #GValue whose type is derived from %G_TYPE_ENUM
</parameter_description>
</parameter>
-<parameter name="len">
-<parameter_description> the length of the string, or -1 if the string is
-nul-terminated&amp;lt;footnoteref linkend=&quot;nul-unsafe&quot;/&amp;gt;.
+<parameter name="v_enum">
+<parameter_description> enum value to be set
</parameter_description>
</parameter>
-<parameter name="bytes_read">
-<parameter_description> location to store the number of bytes in the
-input string that were successfully converted, or %NULL.
-Even if the conversion was successful, this may be
-less than @len if there were partial characters
-at the end of the input. If the error
-#G_CONVERT_ERROR_ILLEGAL_SEQUENCE occurs, the value
-stored will the byte offset after the last valid
-input sequence.
+</parameters>
+<return></return>
+</function>
+
+<function name="g_param_spec_steal_qdata">
+<description>
+Gets back user data pointers stored via g_param_spec_set_qdata()
+and removes the @data from @pspec without invoking it&apos;s destroy()
+function (if any was set). Usually, calling this function is only
+required to update user data pointers with a destroy notifier.
+
+
+</description>
+<parameters>
+<parameter name="pspec">
+<parameter_description> the #GParamSpec to get a stored user data pointer from
</parameter_description>
</parameter>
-<parameter name="bytes_written">
-<parameter_description> the number of bytes stored in the output buffer (not
-including the terminating nul).
+<parameter name="quark">
+<parameter_description> a #GQuark, naming the user data pointer
</parameter_description>
</parameter>
-<parameter name="error">
-<parameter_description> location to store the error occuring, or %NULL to ignore
-errors. Any of the errors in #GConvertError may occur.
+</parameters>
+<return> the user data pointer set, or %NULL
+</return>
+</function>
+
+<function name="g_closure_sink">
+<description>
+Takes over the initial ownership of a closure. Each closure is
+initially created in a &amp;lt;firstterm&amp;gt;floating&amp;lt;/firstterm&amp;gt; state, which
+means that the initial reference count is not owned by any caller.
+g_closure_sink() checks to see if the object is still floating, and
+if so, unsets the floating state and decreases the reference
+count. If the closure is not floating, g_closure_sink() does
+nothing. The reason for the existance of the floating state is to
+prevent cumbersome code sequences like:
+|[
+closure = g_cclosure_new (cb_func, cb_data);
+g_source_set_closure (source, closure);
+g_closure_unref (closure); // XXX GObject doesn&apos;t really need this
+]|
+Because g_source_set_closure() (and similar functions) take ownership of the
+initial reference count, if it is unowned, we instead can write:
+|[
+g_source_set_closure (source, g_cclosure_new (cb_func, cb_data));
+]|
+
+Generally, this function is used together with g_closure_ref(). Ane example
+of storing a closure for later notification looks like:
+|[
+static GClosure *notify_closure = NULL;
+void
+foo_notify_set_closure (GClosure *closure)
+{
+if (notify_closure)
+g_closure_unref (notify_closure);
+notify_closure = closure;
+if (notify_closure)
+{
+g_closure_ref (notify_closure);
+g_closure_sink (notify_closure);
+}
+}
+]|
+
+Because g_closure_sink() may decrement the reference count of a closure
+(if it hasn&apos;t been called on @closure yet) just like g_closure_unref(),
+g_closure_ref() should be called prior to this function.
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> #GClosure to decrement the initial reference count on, if it&apos;s
+still being held
</parameter_description>
</parameter>
</parameters>
-<return> The converted string, or %NULL on an error.
+<return></return>
+</function>
+
+<function name="g_value_get_gtype">
+<description>
+Get the contents of a %G_TYPE_GTYPE #GValue.
+
+Since: 2.12
+
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of type %G_TYPE_GTYPE
+</parameter_description>
+</parameter>
+</parameters>
+<return> the #GType stored in @value
</return>
</function>
+<function name="g_test_log_buffer_free">
+<description>
+Internal function for gtester to free test log messages, no ABI guarantees provided.
+
+</description>
+<parameters>
+</parameters>
+<return></return>
+</function>
+
<function name="g_key_file_get_string">
<description>
Return value: a newly allocated string or %NULL if the specified
@@ -8130,6 +13401,72 @@ If called on a %NULL value, g_strfreev() simply returns.
<return></return>
</function>
+<function name="g_convert_with_fallback">
+<description>
+Converts a string from one character set to another, possibly
+including fallback sequences for characters not representable
+in the output. Note that it is not guaranteed that the specification
+for the fallback sequences in @fallback will be honored. Some
+systems may do an approximate conversion from @from_codeset
+to @to_codeset in their iconv() functions,
+in which case GLib will simply return that approximate conversion.
+
+Note that you should use g_iconv() for streaming
+conversions&amp;lt;footnoteref linkend=&quot;streaming-state&quot;/&amp;gt;.
+
+
+</description>
+<parameters>
+<parameter name="str">
+<parameter_description> the string to convert
+</parameter_description>
+</parameter>
+<parameter name="len">
+<parameter_description> the length of the string, or -1 if the string is
+nul-terminated&amp;lt;footnoteref linkend=&quot;nul-unsafe&quot;/&amp;gt;.
+</parameter_description>
+</parameter>
+<parameter name="to_codeset">
+<parameter_description> name of character set into which to convert @str
+</parameter_description>
+</parameter>
+<parameter name="from_codeset">
+<parameter_description> character set of @str.
+</parameter_description>
+</parameter>
+<parameter name="fallback">
+<parameter_description> UTF-8 string to use in place of character not
+present in the target encoding. (The string must be
+representable in the target encoding).
+ If %NULL, characters not in the target encoding will
+ be represented as Unicode escapes \uxxxx or \Uxxxxyyyy.
+</parameter_description>
+</parameter>
+<parameter name="bytes_read">
+<parameter_description> location to store the number of bytes in the
+input string that were successfully converted, or %NULL.
+Even if the conversion was successful, this may be
+less than @len if there were partial characters
+at the end of the input.
+</parameter_description>
+</parameter>
+<parameter name="bytes_written">
+<parameter_description> the number of bytes stored in the output buffer (not
+including the terminating nul).
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> location to store the error occuring, or %NULL to ignore
+errors. Any of the errors in #GConvertError may occur.
+</parameter_description>
+</parameter>
+</parameters>
+<return> If the conversion was successful, a newly allocated
+nul-terminated string, which must be freed with
+g_free(). Otherwise %NULL and @error will be set.
+</return>
+</function>
+
<function name="g_string_append_c">
<description>
Adds a byte onto the end of a #GString, expanding
@@ -8151,34 +13488,50 @@ it if necessary.
</return>
</function>
-<function name="g_key_file_set_value">
+<function name="g_object_weak_unref">
<description>
-Associates a new value with @key under @group_name. If @key
-cannot be found then it is created. If @group_name cannot be
-found then it is created.
-
-Since: 2.6
+Removes a weak reference callback to an object.
</description>
<parameters>
-<parameter name="key_file">
-<parameter_description> a #GKeyFile
+<parameter name="object">
+<parameter_description> #GObject to remove a weak reference from
</parameter_description>
</parameter>
-<parameter name="group_name">
-<parameter_description> a group name
+<parameter name="notify">
+<parameter_description> callback to search for
</parameter_description>
</parameter>
-<parameter name="key">
-<parameter_description> a key
+<parameter name="data">
+<parameter_description> data to search for
</parameter_description>
</parameter>
-<parameter name="value">
-<parameter_description> a string
+</parameters>
+<return></return>
+</function>
+
+<function name="g_printf">
+<description>
+An implementation of the standard printf() function which supports
+positional parameters, as specified in the Single Unix Specification.
+
+
+</description>
+<parameters>
+<parameter name="format">
+<parameter_description> a standard printf() format string, but notice
+&amp;lt;link linkend=&quot;string-precision&quot;&amp;gt;string precision pitfalls&amp;lt;/link&amp;gt;.
+</parameter_description>
+</parameter>
+<parameter name="Varargs">
+<parameter_description> the arguments to insert in the output.
</parameter_description>
</parameter>
</parameters>
-<return></return>
+<return> the number of bytes printed.
+
+Since: 2.2
+</return>
</function>
<function name="g_nullify_pointer">
@@ -8195,37 +13548,84 @@ Set the pointer at the specified location to %NULL.
<return></return>
</function>
-<function name="g_key_file_set_integer_list">
+<function name="g_ascii_strtod">
<description>
-Associates a list of integer values with @key under
-@group_name. If @key cannot be found then it is created.
+Converts a string to a #gdouble value.
+
+This function behaves like the standard strtod() function
+does in the C locale. It does this without actually changing
+the current locale, since that would not be thread-safe.
+A limitation of the implementation is that this function
+will still accept localized versions of infinities and NANs.
+
+This function is typically used when reading configuration
+files or other non-user input that should be locale independent.
+To handle input from the user you should normally use the
+locale-sensitive system strtod() function.
+
+To convert from a #gdouble to a string in a locale-insensitive
+way, use g_ascii_dtostr().
+
+If the correct value would cause overflow, plus or minus %HUGE_VAL
+is returned (according to the sign of the value), and %ERANGE is
+stored in %errno. If the correct value would cause underflow,
+zero is returned and %ERANGE is stored in %errno.
+
+This function resets %errno before calling strtod() so that
+you can reliably detect overflow and underflow.
-Since: 2.6
</description>
<parameters>
-<parameter name="key_file">
-<parameter_description> a #GKeyFile
+<parameter name="nptr">
+<parameter_description> the string to convert to a numeric value.
</parameter_description>
</parameter>
-<parameter name="group_name">
-<parameter_description> a group name
+<parameter name="endptr">
+<parameter_description> if non-%NULL, it returns the character after
+the last character used in the conversion.
</parameter_description>
</parameter>
-<parameter name="key">
-<parameter_description> a key
+</parameters>
+<return> the #gdouble value.
+</return>
+</function>
+
+<function name="g_value_set_ulong">
+<description>
+Set the contents of a %G_TYPE_ULONG #GValue to @v_ulong.
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of type %G_TYPE_ULONG
</parameter_description>
</parameter>
-<parameter name="list">
-<parameter_description> an array of integer values
+<parameter name="v_ulong">
+<parameter_description> unsigned long integer value to be set
</parameter_description>
</parameter>
-<parameter name="length">
-<parameter_description> number of integer values in @list
+</parameters>
+<return></return>
+</function>
+
+<function name="g_node_depth">
+<description>
+Gets the depth of a #GNode.
+
+If @node is %NULL the depth is 0. The root node has a depth of 1.
+For the children of the root node the depth is 2. And so on.
+
+
+</description>
+<parameters>
+<parameter name="node">
+<parameter_description> a #GNode
</parameter_description>
</parameter>
</parameters>
-<return></return>
+<return> the depth of the #GNode
+</return>
</function>
<function name="g_path_skip_root">
@@ -8243,6 +13643,31 @@ Returns: a pointer into @file_name after the root component.
</return>
</function>
+<function name="g_type_add_interface_static">
+<description>
+Adds the static @interface_type to @instantiable_type. The information
+contained in the #GTypeInterfaceInfo structure pointed to by @info
+is used to manage the relationship.
+
+</description>
+<parameters>
+<parameter name="instance_type">
+<parameter_description> #GType value of an instantiable type.
+</parameter_description>
+</parameter>
+<parameter name="interface_type">
+<parameter_description> #GType value of an interface type.
+</parameter_description>
+</parameter>
+<parameter name="info">
+<parameter_description> The #GInterfaceInfo structure for this
+(@instance_type, @interface_type) combination.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_utf8_strlen">
<description>
Return value: the length of the string in characters
@@ -8337,27 +13762,90 @@ Since: 2.14
<return></return>
</function>
-<function name="g_path_get_basename">
+<function name="g_unichar_xdigit_value">
<description>
-Gets the last component of the filename. If @file_name ends with a
-directory separator it gets the component before the last slash. If
-@file_name consists only of directory separators (and on Windows,
-possibly a drive letter), a single separator is returned. If
-@file_name is empty, it gets &quot;.&quot;.
+Determines the numeric value of a character as a hexidecimal
+digit.
</description>
<parameters>
-<parameter name="file_name">
-<parameter_description> the name of the file.
+<parameter name="c">
+<parameter_description> a Unicode character
</parameter_description>
</parameter>
</parameters>
-<return> a newly allocated string containing the last component of
-the filename.
+<return> If @c is a hex digit (according to
+g_unichar_isxdigit()), its numeric value. Otherwise, -1.
+</return>
+</function>
+
+<function name="g_node_child_position">
+<description>
+Gets the position of a #GNode with respect to its siblings.
+@child must be a child of @node. The first child is numbered 0,
+the second 1, and so on.
+
+
+</description>
+<parameters>
+<parameter name="node">
+<parameter_description> a #GNode
+</parameter_description>
+</parameter>
+<parameter name="child">
+<parameter_description> a child of @node
+</parameter_description>
+</parameter>
+</parameters>
+<return> the position of @child with respect to its siblings
</return>
</function>
+<function name="g_object_set_property">
+<description>
+Sets a property on an object.
+
+</description>
+<parameters>
+<parameter name="object">
+<parameter_description> a #GObject
+</parameter_description>
+</parameter>
+<parameter name="property_name">
+<parameter_description> the name of the property to set
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> the value
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_list_foreach">
+<description>
+Calls a function for each element of a #GList.
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GList
+</parameter_description>
+</parameter>
+<parameter name="func">
+<parameter_description> the function to call with each element&apos;s data
+</parameter_description>
+</parameter>
+<parameter name="user_data">
+<parameter_description> user data to pass to the function
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_queue_remove_all">
<description>
Remove all elemeents in @queue which contains @data.
@@ -8378,6 +13866,28 @@ Since: 2.4
<return></return>
</function>
+<function name="g_node_nth_child">
+<description>
+Gets a child of a #GNode, using the given index.
+The first child is at index 0. If the index is
+too big, %NULL is returned.
+
+
+</description>
+<parameters>
+<parameter name="node">
+<parameter_description> a #GNode
+</parameter_description>
+</parameter>
+<parameter name="n">
+<parameter_description> the index of the desired child
+</parameter_description>
+</parameter>
+</parameters>
+<return> the child of @node at index @n
+</return>
+</function>
+
<function name="g_async_queue_push_sorted_unlocked">
<description>
Inserts @data into @queue using @func to determine the new
@@ -8442,32 +13952,99 @@ Since: 2.6
<return></return>
</function>
-<function name="g_string_sprintf">
+<function name="g_list_append">
<description>
-Writes a formatted string into a #GString.
-This is similar to the standard sprintf() function,
-except that the #GString buffer automatically expands
-to contain the results. The previous contents of the
-#GString are destroyed.
+Adds a new element on to the end of the list.
+
+&amp;lt;note&amp;gt;&amp;lt;para&amp;gt;
+The return value is the new start of the list, which
+may have changed, so make sure you store the new value.
+&amp;lt;/para&amp;gt;&amp;lt;/note&amp;gt;
+
+&amp;lt;note&amp;gt;&amp;lt;para&amp;gt;
+Note that g_list_append() has to traverse the entire list
+to find the end, which is inefficient when adding multiple
+elements. A common idiom to avoid the inefficiency is to prepend
+the elements and reverse the list when all elements have been added.
+&amp;lt;/para&amp;gt;&amp;lt;/note&amp;gt;
+
+|[
+/&amp;ast; Notice that these are initialized to the empty list. &amp;ast;/
+GList *list = NULL, *number_list = NULL;
+
+/&amp;ast; This is a list of strings. &amp;ast;/
+list = g_list_append (list, &quot;first&quot;);
+list = g_list_append (list, &quot;second&quot;);
+
+/&amp;ast; This is a list of integers. &amp;ast;/
+number_list = g_list_append (number_list, GINT_TO_POINTER (27));
+number_list = g_list_append (number_list, GINT_TO_POINTER (14));
+]|
-Deprecated: This function has been renamed to g_string_printf().
</description>
<parameters>
-<parameter name="string">
-<parameter_description> a #GString
+<parameter name="list">
+<parameter_description> a pointer to a #GList
</parameter_description>
</parameter>
-<parameter name="format">
-<parameter_description> the string format. See the sprintf() documentation
+<parameter name="data">
+<parameter_description> the data for the new element
</parameter_description>
</parameter>
-<parameter name="Varargs">
-<parameter_description> the parameters to insert into the format string
+</parameters>
+<return> the new start of the #GList
+</return>
+</function>
+
+<function name="g_utf8_strrchr">
+<description>
+Find the rightmost occurrence of the given Unicode character
+in a UTF-8 encoded string, while limiting the search to @len bytes.
+If @len is -1, allow unbounded search.
+
+
+</description>
+<parameters>
+<parameter name="p">
+<parameter_description> a nul-terminated UTF-8 encoded string
+</parameter_description>
+</parameter>
+<parameter name="len">
+<parameter_description> the maximum length of @p
+</parameter_description>
+</parameter>
+<parameter name="c">
+<parameter_description> a Unicode character
</parameter_description>
</parameter>
</parameters>
-<return></return>
+<return> %NULL if the string does not contain the character,
+otherwise, a pointer to the start of the rightmost occurrence of the
+character in the string.
+</return>
+</function>
+
+<function name="g_slist_delete_link">
+<description>
+Removes the node link_ from the list and frees it.
+Compare this to g_slist_remove_link() which removes the node
+without freeing it.
+
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GSList
+</parameter_description>
+</parameter>
+<parameter name="link_">
+<parameter_description> node to delete
+</parameter_description>
+</parameter>
+</parameters>
+<return> the new head of @list
+</return>
</function>
<function name="g_key_file_free">
@@ -8519,6 +14096,43 @@ function returns %TRUE, the traversal is stopped.
<return></return>
</function>
+<function name="g_slist_length">
+<description>
+Gets the number of elements in a #GSList.
+
+&amp;lt;note&amp;gt;&amp;lt;para&amp;gt;
+This function iterates over the whole list to
+count its elements.
+&amp;lt;/para&amp;gt;&amp;lt;/note&amp;gt;
+
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GSList
+</parameter_description>
+</parameter>
+</parameters>
+<return> the number of elements in the #GSList
+</return>
+</function>
+
+<function name="g_checksum_free">
+<description>
+Frees the memory allocated for @checksum.
+
+Since: 2.16
+
+</description>
+<parameters>
+<parameter name="checksum">
+<parameter_description> a #GChecksum
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_string_overwrite">
<description>
Overwrites part of a string, lengthening it if necessary.
@@ -8545,6 +14159,163 @@ Since: 2.14
</return>
</function>
+<function name="g_value_array_prepend">
+<description>
+Insert a copy of @value as first element of @value_array.
+
+
+</description>
+<parameters>
+<parameter name="value_array">
+<parameter_description> #GValueArray to add an element to
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> #GValue to copy into #GValueArray
+</parameter_description>
+</parameter>
+</parameters>
+<return> the #GValueArray passed in as @value_array
+</return>
+</function>
+
+<function name="g_markup_parse_context_push">
+<description>
+Temporarily redirects markup data to a sub-parser.
+
+This function may only be called from the start_element handler of
+a #GMarkupParser. It must be matched with a corresponding call to
+g_markup_parse_context_pop() in the matching end_element handler
+(except in the case that the parser aborts due to an error).
+
+All tags, text and other data between the matching tags is
+redirected to the subparser given by @parser. @user_data is used
+as the user_data for that parser. @user_data is also passed to the
+error callback in the event that an error occurs. This includes
+errors that occur in subparsers of the subparser.
+
+The end tag matching the start tag for which this call was made is
+handled by the previous parser (which is given its own user_data)
+which is why g_markup_parse_context_pop() is provided to allow &quot;one
+last access&quot; to the @user_data provided to this function. In the
+case of error, the @user_data provided here is passed directly to
+the error callback of the subparser and g_markup_parse_context()
+should not be called. In either case, if @user_data was allocated
+then it ought to be freed from both of these locations.
+
+This function is not intended to be directly called by users
+interested in invoking subparsers. Instead, it is intended to be
+used by the subparsers themselves to implement a higher-level
+interface.
+
+As an example, see the following implementation of a simple
+parser that counts the number of tags encountered.
+
+|[
+typedef struct
+{
+gint tag_count;
+} CounterData;
+
+static void
+counter_start_element (GMarkupParseContext *context,
+const gchar *element_name,
+const gchar **attribute_names,
+const gchar **attribute_values,
+gpointer user_data,
+GError **error)
+{
+CounterData *data = user_data;
+
+data-&amp;gt;tag_count++;
+}
+
+static void
+counter_error (GMarkupParseContext *context,
+GError *error,
+gpointer user_data)
+{
+CounterData *data = user_data;
+
+g_slice_free (CounterData, data);
+}
+
+static GMarkupParser counter_subparser =
+{
+counter_start_element,
+NULL,
+NULL,
+NULL,
+counter_error
+};
+]|
+
+In order to allow this parser to be easily used as a subparser, the
+following interface is provided:
+
+|[
+void
+start_counting (GMarkupParseContext *context)
+{
+CounterData *data = g_slice_new (CounterData);
+
+data-&amp;gt;tag_count = 0;
+g_markup_parse_context_push (context, &amp;counter_subparser, data);
+}
+
+gint
+end_counting (GMarkupParseContext *context)
+{
+CounterData *data = g_markup_parse_context_pop (context);
+int result;
+
+result = data-&amp;gt;tag_count;
+g_slice_free (CounterData, data);
+
+return result;
+}
+]|
+
+The subparser would then be used as follows:
+
+|[
+static void start_element (context, element_name, ...)
+{
+if (strcmp (element_name, &quot;count-these&quot;) == 0)
+start_counting (context);
+
+/&amp;ast; else, handle other tags... &amp;ast;/
+}
+
+static void end_element (context, element_name, ...)
+{
+if (strcmp (element_name, &quot;count-these&quot;) == 0)
+g_print (&quot;Counted %d tags\n&quot;, end_counting (context));
+
+/&amp;ast; else, handle other tags... &amp;ast;/
+}
+]|
+
+Since: 2.18
+
+</description>
+<parameters>
+<parameter name="context">
+<parameter_description> a #GMarkupParseContext
+</parameter_description>
+</parameter>
+<parameter name="parser">
+<parameter_description> a #GMarkupParser
+</parameter_description>
+</parameter>
+<parameter name="user_data">
+<parameter_description> user data to pass to #GMarkupParser functions
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_rand_int_range">
<description>
Return value: A random number.
@@ -8568,45 +14339,49 @@ Return value: A random number.
</return>
</function>
-<function name="g_get_filename_charsets">
+<function name="g_shell_quote">
<description>
-Determines the preferred character sets used for filenames.
-The first character set from the @charsets is the filename encoding, the
-subsequent character sets are used when trying to generate a displayable
-representation of a filename, see g_filename_display_name().
+Quotes a string so that the shell (/bin/sh) will interpret the
+quoted string to mean @unquoted_string. If you pass a filename to
+the shell, for example, you should first quote it with this
+function. The return value must be freed with g_free(). The
+quoting style used is undefined (single or double quotes may be
+used).
-On Unix, the character sets are determined by consulting the
-environment variables &amp;lt;envar&amp;gt;G_FILENAME_ENCODING&amp;lt;/envar&amp;gt; and
-&amp;lt;envar&amp;gt;G_BROKEN_FILENAMES&amp;lt;/envar&amp;gt;. On Windows, the character set
-used in the GLib API is always UTF-8 and said environment variables
-have no effect.
-&amp;lt;envar&amp;gt;G_FILENAME_ENCODING&amp;lt;/envar&amp;gt; may be set to a comma-separated list
-of character set names. The special token &quot;&amp;commat;locale&quot; is taken to
-mean the character set for the &amp;lt;link linkend=&quot;setlocale&quot;&amp;gt;current
-locale&amp;lt;/link&amp;gt;. If &amp;lt;envar&amp;gt;G_FILENAME_ENCODING&amp;lt;/envar&amp;gt; is not set, but
-&amp;lt;envar&amp;gt;G_BROKEN_FILENAMES&amp;lt;/envar&amp;gt; is, the character set of the current
-locale is taken as the filename encoding. If neither environment variable
-is set, UTF-8 is taken as the filename encoding, but the character
-set of the current locale is also put in the list of encodings.
+</description>
+<parameters>
+<parameter name="unquoted_string">
+<parameter_description> a literal string
+</parameter_description>
+</parameter>
+</parameters>
+<return> quoted string
+</return>
+</function>
-The returned @charsets belong to GLib and must not be freed.
+<function name="g_get_host_name">
+<description>
+Return a name for the machine.
-Note that on Unix, regardless of the locale character set or
-&amp;lt;envar&amp;gt;G_FILENAME_ENCODING&amp;lt;/envar&amp;gt; value, the actual file names present
-on a system might be in any random encoding or just gibberish.
+The returned name is not necessarily a fully-qualified domain name,
+or even present in DNS or some other name service at all. It need
+not even be unique on your local network or site, but usually it
+is. Callers should not rely on the return value having any specific
+properties like uniqueness for security purposes. Even if the name
+of the machine is changed while an application is running, the
+return value from this function does not change. The returned
+string is owned by GLib and should not be modified or freed. If no
+name can be determined, a default fixed string &quot;localhost&quot; is
+returned.
</description>
<parameters>
-<parameter name="charsets">
-<parameter_description> return location for the %NULL-terminated list of encoding names
-</parameter_description>
-</parameter>
</parameters>
-<return> %TRUE if the filename encoding is UTF-8.
+<return> the host name of the machine.
-Since: 2.6
+Since: 2.8
</return>
</function>
@@ -8670,6 +14445,31 @@ function must be called while holding the @queue&apos;s lock.
<return></return>
</function>
+<function name="g_signal_handler_block">
+<description>
+Blocks a handler of an instance so it will not be called during any
+signal emissions unless it is unblocked again. Thus &quot;blocking&quot; a
+signal handler means to temporarily deactive it, a signal handler
+has to be unblocked exactly the same amount of times it has been
+blocked before to become active again.
+
+The @handler_id has to be a valid signal handler id, connected to a
+signal of @instance.
+
+</description>
+<parameters>
+<parameter name="instance">
+<parameter_description> The instance to block the signal handler of.
+</parameter_description>
+</parameter>
+<parameter name="handler_id">
+<parameter_description> Handler id of the handler to be blocked.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_regex_get_max_backref">
<description>
Returns: the number of the highest back reference
@@ -8687,6 +14487,82 @@ Since: 2.14
</return>
</function>
+<function name="g_node_max_height">
+<description>
+Gets the maximum height of all branches beneath a #GNode.
+This is the maximum distance from the #GNode to all leaf nodes.
+
+If @root is %NULL, 0 is returned. If @root has no children,
+1 is returned. If @root has children, 2 is returned. And so on.
+
+
+</description>
+<parameters>
+<parameter name="root">
+<parameter_description> a #GNode
+</parameter_description>
+</parameter>
+</parameters>
+<return> the maximum height of the tree beneath @root
+</return>
+</function>
+
+<function name="g_io_channel_init">
+<description>
+Initializes a #GIOChannel struct.
+
+This is called by each of the above functions when creating a
+#GIOChannel, and so is not often needed by the application
+programmer (unless you are creating a new type of #GIOChannel).
+
+</description>
+<parameters>
+<parameter name="channel">
+<parameter_description> a #GIOChannel
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="find_conversion">
+<description>
+Find the next conversion in a printf-style format string.
+Partially based on code from printf-parser.c,
+Copyright (C) 1999-2000, 2002-2003 Free Software Foundation, Inc.
+
+
+</description>
+<parameters>
+<parameter name="format">
+<parameter_description> a printf-style format string
+</parameter_description>
+</parameter>
+<parameter name="after">
+<parameter_description> location to store a pointer to the character after
+the returned conversion. On a %NULL return, returns the
+pointer to the trailing NUL in the string
+</parameter_description>
+</parameter>
+</parameters>
+<return> pointer to the next conversion in @format,
+or %NULL, if none.
+</return>
+</function>
+
+<function name="g_type_init">
+<description>
+Prior to any use of the type system, g_type_init() has to be called
+to initialize the type system and assorted other code portions
+(such as the various fundamental type implementations or the signal
+system).
+
+</description>
+<parameters>
+</parameters>
+<return></return>
+</function>
+
<function name="g_queue_peek_tail_link">
<description>
Return value: the last link in @queue, or %NULL if @queue is empty
@@ -8754,6 +14630,44 @@ of the separator are ignored.
</return>
</function>
+<function name="g_param_spec_get_qdata">
+<description>
+Gets back user data pointers stored via g_param_spec_set_qdata().
+
+
+</description>
+<parameters>
+<parameter name="pspec">
+<parameter_description> a valid #GParamSpec
+</parameter_description>
+</parameter>
+<parameter name="quark">
+<parameter_description> a #GQuark, naming the user data pointer
+</parameter_description>
+</parameter>
+</parameters>
+<return> the user data pointer set, or %NULL
+</return>
+</function>
+
+<function name="g_value_peek_pointer">
+<description>
+Return the value contents as pointer. This function asserts that
+g_value_fits_pointer() returned %TRUE for the passed in value.
+This is an internal function introduced mainly for C marshallers.
+
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> An initialized #GValue structure.
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE if @value will fit inside a pointer value.
+</return>
+</function>
+
<function name="g_ascii_xdigit_value">
<description>
Determines the numeric value of a character as a hexidecimal
@@ -8774,6 +14688,29 @@ g_ascii_isxdigit()), its numeric value. Otherwise, -1.
</return>
</function>
+<function name="g_param_type_register_static">
+<description>
+Registers @name as the name of a new static type derived from
+#G_TYPE_PARAM. The type system uses the information contained in
+the #GParamSpecTypeInfo structure pointed to by @info to manage the
+#GParamSpec type and its instances.
+
+
+</description>
+<parameters>
+<parameter name="name">
+<parameter_description> 0-terminated string used as the name of the new #GParamSpec type.
+</parameter_description>
+</parameter>
+<parameter name="pspec_info">
+<parameter_description> The #GParamSpecTypeInfo for this #GParamSpec type.
+</parameter_description>
+</parameter>
+</parameters>
+<return> The new type identifier.
+</return>
+</function>
+
<function name="g_bookmark_file_get_description">
<description>
Retrieves the description of the bookmark for @uri.
@@ -8822,40 +14759,110 @@ Since: 2.14
<return></return>
</function>
-<function name="g_random_set_seed">
+<function name="g_strcasecmp">
<description>
-Sets the seed for the global random number generator, which is used
-by the &amp;lt;function&amp;gt;g_random_*&amp;lt;/function&amp;gt; functions, to @seed.
+A case-insensitive string comparison, corresponding to the standard
+strcasecmp() function on platforms which support it.
+
</description>
<parameters>
-<parameter name="seed">
-<parameter_description> a value to reinitialize the global random number generator.
+<parameter name="s1">
+<parameter_description> a string.
+</parameter_description>
+</parameter>
+<parameter name="s2">
+<parameter_description> a string to compare with @s1.
+</parameter_description>
+</parameter>
+</parameters>
+<return> 0 if the strings match, a negative value if @s1 &amp;lt; @s2,
+or a positive value if @s1 &amp;gt; @s2.
+
+Deprecated:2.2: See g_strncasecmp() for a discussion of why this function
+is deprecated and how to replace it.
+</return>
+</function>
+
+<function name="g_object_set">
+<description>
+Sets properties on an object.
+
+</description>
+<parameters>
+<parameter name="object">
+<parameter_description> a #GObject
+</parameter_description>
+</parameter>
+<parameter name="first_property_name">
+<parameter_description> name of the first property to set
+</parameter_description>
+</parameter>
+<parameter name="Varargs">
+<parameter_description> value for the first property, followed optionally by more
+name/value pairs, followed by %NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>
-<function name="g_sequence_append">
+<function name="g_sprintf">
<description>
-Adds a new item to the end of @seq.
+An implementation of the standard sprintf() function which supports
+positional parameters, as specified in the Single Unix Specification.
</description>
<parameters>
-<parameter name="seq">
-<parameter_description> a #GSequencePointer
+<parameter name="string">
+<parameter_description> A pointer to a memory buffer to contain the resulting string. It
+is up to the caller to ensure that the allocated buffer is large
+enough to hold the formatted result
</parameter_description>
</parameter>
-<parameter name="data">
-<parameter_description> the data for the new item
+<parameter name="format">
+<parameter_description> a standard printf() format string, but notice
+&amp;lt;link linkend=&quot;string-precision&quot;&amp;gt;string precision pitfalls&amp;lt;/link&amp;gt;.
+</parameter_description>
+</parameter>
+<parameter name="Varargs">
+<parameter_description> the arguments to insert in the output.
</parameter_description>
</parameter>
</parameters>
-<return> an iterator pointing to the new item
+<return> the number of bytes printed.
-Since: 2.14
+Since: 2.2
+</return>
+</function>
+
+<function name="g_strstr_len">
+<description>
+Searches the string @haystack for the first occurrence
+of the string @needle, limiting the length of the search
+to @haystack_len.
+
+
+</description>
+<parameters>
+<parameter name="haystack">
+<parameter_description> a string.
+</parameter_description>
+</parameter>
+<parameter name="haystack_len">
+<parameter_description> the maximum length of @haystack. Note that -1 is
+a valid length, if @haystack is nul-terminated, meaning it will
+search through the whole string.
+</parameter_description>
+</parameter>
+<parameter name="needle">
+<parameter_description> the string to search for.
+</parameter_description>
+</parameter>
+</parameters>
+<return> a pointer to the found occurrence, or
+%NULL if not found.
</return>
</function>
@@ -8921,20 +14928,235 @@ characters. For example splitting &quot;ab c&quot; using as a separator
</parameter_description>
</parameter>
<parameter name="compile_options">
-<parameter_description> compile options for the regular expression
+<parameter_description> compile options for the regular expression, or 0
</parameter_description>
</parameter>
<parameter name="match_options">
-<parameter_description> match options
+<parameter_description> match options, or 0
</parameter_description>
</parameter>
</parameters>
-<return> a %NULL-terminated gchar ** array. Free it using g_strfreev()
+<return> a %NULL-terminated array of strings. Free it using g_strfreev()
Since: 2.14
</return>
</function>
+<function name="g_checksum_get_digest">
+<description>
+Gets the digest from @checksum as a raw binary vector and places it
+into @buffer. The size of the digest depends on the type of checksum.
+
+Once this function has been called, the #GChecksum is closed and can
+no longer be updated with g_checksum_update().
+
+Since: 2.16
+
+</description>
+<parameters>
+<parameter name="checksum">
+<parameter_description> a #GChecksum
+</parameter_description>
+</parameter>
+<parameter name="buffer">
+<parameter_description> output buffer
+</parameter_description>
+</parameter>
+<parameter name="digest_len">
+<parameter_description> an inout parameter. The caller initializes it to the size of @buffer.
+After the call it contains the length of the digest.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_test_minimized_result">
+<description>
+Report the result of a performance or measurement test.
+The test should generally strive to minimize the reported
+quantities (smaller values are better than larger ones),
+this and @minimized_quantity can determine sorting
+order for test result reports.
+
+Since: 2.16
+
+</description>
+<parameters>
+<parameter name="minimized_quantity">
+<parameter_description> the reported value
+</parameter_description>
+</parameter>
+<parameter name="format">
+<parameter_description> the format string of the report message
+</parameter_description>
+</parameter>
+<parameter name="Varargs">
+<parameter_description> arguments to pass to the printf() function
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_type_init_with_debug_flags">
+<description>
+Similar to g_type_init(), but additionally sets debug flags.
+
+</description>
+<parameters>
+<parameter name="debug_flags">
+<parameter_description> Bitwise combination of #GTypeDebugFlags values for
+debugging purposes.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_unichar_iscntrl">
+<description>
+Determines whether a character is a control character.
+Given some UTF-8 text, obtain a character value with
+g_utf8_get_char().
+
+
+</description>
+<parameters>
+<parameter name="c">
+<parameter_description> a Unicode character
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE if @c is a control character
+</return>
+</function>
+
+<function name="g_value_set_object">
+<description>
+Set the contents of a %G_TYPE_OBJECT derived #GValue to @v_object.
+
+g_value_set_object() increases the reference count of @v_object
+(the #GValue holds a reference to @v_object). If you do not wish
+to increase the reference count of the object (i.e. you wish to
+pass your current reference to the #GValue because you no longer
+need it), use g_value_take_object() instead.
+
+It is important that your #GValue holds a reference to @v_object (either its
+own, or one it has taken) to ensure that the object won&apos;t be destroyed while
+the #GValue still exists).
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of %G_TYPE_OBJECT derived type
+</parameter_description>
+</parameter>
+<parameter name="v_object">
+<parameter_description> object value to be set
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_strncasecmp">
+<description>
+A case-insensitive string comparison, corresponding to the standard
+strncasecmp() function on platforms which support it.
+It is similar to g_strcasecmp() except it only compares the first @n
+characters of the strings.
+
+
+</description>
+<parameters>
+<parameter name="s1">
+<parameter_description> a string.
+</parameter_description>
+</parameter>
+<parameter name="s2">
+<parameter_description> a string to compare with @s1.
+</parameter_description>
+</parameter>
+<parameter name="n">
+<parameter_description> the maximum number of characters to compare.
+</parameter_description>
+</parameter>
+</parameters>
+<return> 0 if the strings match, a negative value if @s1 &amp;lt; @s2,
+or a positive value if @s1 &amp;gt; @s2.
+
+Deprecated:2.2: The problem with g_strncasecmp() is that it does the
+comparison by calling toupper()/tolower(). These functions are
+locale-specific and operate on single bytes. However, it is impossible
+to handle things correctly from an I18N standpoint by operating on
+bytes, since characters may be multibyte. Thus g_strncasecmp() is
+broken if your string is guaranteed to be ASCII, since it&apos;s
+locale-sensitive, and it&apos;s broken if your string is localized, since
+it doesn&apos;t work on many encodings at all, including UTF-8, EUC-JP,
+etc.
+
+There are therefore two replacement functions: g_ascii_strncasecmp(),
+which only works on ASCII and is not locale-sensitive, and
+g_utf8_casefold(), which is good for case-insensitive sorting of UTF-8.
+</return>
+</function>
+
+<function name="g_param_spec_flags">
+<description>
+Creates a new #GParamSpecFlags instance specifying a %G_TYPE_FLAGS
+property.
+
+See g_param_spec_internal() for details on property names.
+
+
+</description>
+<parameters>
+<parameter name="name">
+<parameter_description> canonical name of the property specified
+</parameter_description>
+</parameter>
+<parameter name="nick">
+<parameter_description> nick name for the property specified
+</parameter_description>
+</parameter>
+<parameter name="blurb">
+<parameter_description> description of the property specified
+</parameter_description>
+</parameter>
+<parameter name="flags_type">
+<parameter_description> a #GType derived from %G_TYPE_FLAGS
+</parameter_description>
+</parameter>
+<parameter name="default_value">
+<parameter_description> default value for the property specified
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> flags for the property specified
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly created parameter specification
+</return>
+</function>
+
+<function name="g_value_get_boolean">
+<description>
+Get the contents of a %G_TYPE_BOOLEAN #GValue.
+
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of type %G_TYPE_BOOLEAN
+</parameter_description>
+</parameter>
+</parameters>
+<return> boolean contents of @value
+</return>
+</function>
+
<function name="g_sequence_foreach">
<description>
Calls @func for each item in the sequence passing @user_data
@@ -8962,7 +15184,7 @@ Since: 2.14
<function name="g_hash_table_steal_all">
<description>
-Removes all keys and their associated values from a #GHashTable
+Removes all keys and their associated values from a #GHashTable
without calling the key and value destroy functions.
Since: 2.12
@@ -9004,7 +15226,7 @@ or %NULL, to a default template
</parameter_description>
</parameter>
<parameter name="name_used">
-<parameter_description> location to store actual name used
+<parameter_description> location to store actual name used, or %NULL
</parameter_description>
</parameter>
<parameter name="error">
@@ -9020,6 +15242,25 @@ and @error will be set.
</return>
</function>
+<function name="g_object_is_floating">
+<description>
+Checks wether @object has a &amp;lt;link linkend=&quot;floating-ref&quot;&amp;gt;floating&amp;lt;/link&amp;gt;
+reference.
+
+Since: 2.10
+
+
+</description>
+<parameters>
+<parameter name="object">
+<parameter_description> a #GObject
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE if @object has a floating reference
+</return>
+</function>
+
<function name="g_main_context_remove_poll">
<description>
Removes file descriptor from the set of file descriptors to be
@@ -9071,6 +15312,26 @@ Since: 2.8
</return>
</function>
+<function name="g_type_default_interface_peek">
+<description>
+If the interface type @g_type is currently in use, returns its
+default interface vtable.
+
+Since: 2.4
+
+
+</description>
+<parameters>
+<parameter name="g_type">
+<parameter_description> an interface type
+</parameter_description>
+</parameter>
+</parameters>
+<return> the default vtable for the interface, or %NULL
+if the type is not currently in use.
+</return>
+</function>
+
<function name="g_direct_equal">
<description>
Compares two #gpointer arguments and returns %TRUE if they are equal.
@@ -9093,35 +15354,119 @@ parameter, when using pointers as keys in a #GHashTable.
</return>
</function>
-<function name="g_hash_table_new">
+<function name="g_type_class_peek_static">
<description>
-Creates a new #GHashTable with a reference count of 1.
+A more efficient version of g_type_class_peek() which works only for
+static types.
+Since: 2.4
</description>
<parameters>
-<parameter name="hash_func">
-<parameter_description> a function to create a hash value from a key.
-Hash values are used to determine where keys are stored within the
-#GHashTable data structure. The g_direct_hash(), g_int_hash() and
-g_str_hash() functions are provided for some common types of keys.
-If hash_func is %NULL, g_direct_hash() is used.
+<parameter name="type">
+<parameter_description> Type ID of a classed type.
</parameter_description>
</parameter>
-<parameter name="key_equal_func">
-<parameter_description> a function to check two keys for equality. This is
-used when looking up keys in the #GHashTable. The g_direct_equal(),
-g_int_equal() and g_str_equal() functions are provided for the most
-common types of keys. If @key_equal_func is %NULL, keys are compared
-directly in a similar fashion to g_direct_equal(), but without the
-overhead of a function call.
+</parameters>
+<return> The #GTypeClass structure for the given type ID or %NULL
+if the class does not currently exist or is dynamically loaded.
+</return>
+</function>
+
+<function name="g_param_spec_unichar">
+<description>
+Creates a new #GParamSpecUnichar instance specifying a %G_TYPE_UINT
+property. #GValue structures for this property can be accessed with
+g_value_set_uint() and g_value_get_uint().
+
+See g_param_spec_internal() for details on property names.
+
+
+</description>
+<parameters>
+<parameter name="name">
+<parameter_description> canonical name of the property specified
+</parameter_description>
+</parameter>
+<parameter name="nick">
+<parameter_description> nick name for the property specified
+</parameter_description>
+</parameter>
+<parameter name="blurb">
+<parameter_description> description of the property specified
+</parameter_description>
+</parameter>
+<parameter name="default_value">
+<parameter_description> default value for the property specified
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> flags for the property specified
</parameter_description>
</parameter>
</parameters>
-<return> a new #GHashTable.
+<return> a newly created parameter specification
+</return>
+</function>
+
+<function name="g_param_spec_pointer">
+<description>
+Creates a new #GParamSpecPoiner instance specifying a pointer property.
+
+See g_param_spec_internal() for details on property names.
+
+
+</description>
+<parameters>
+<parameter name="name">
+<parameter_description> canonical name of the property specified
+</parameter_description>
+</parameter>
+<parameter name="nick">
+<parameter_description> nick name for the property specified
+</parameter_description>
+</parameter>
+<parameter name="blurb">
+<parameter_description> description of the property specified
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> flags for the property specified
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly created parameter specification
</return>
</function>
+<function name="g_node_children_foreach">
+<description>
+Calls a function for each of the children of a #GNode.
+Note that it doesn&apos;t descend beneath the child nodes.
+
+</description>
+<parameters>
+<parameter name="node">
+<parameter_description> a #GNode
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> which types of children are to be visited, one of
+%G_TRAVERSE_ALL, %G_TRAVERSE_LEAVES and %G_TRAVERSE_NON_LEAVES
+</parameter_description>
+</parameter>
+<parameter name="func">
+<parameter_description> the function to call for each visited node
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> user data to pass to the function
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_tree_nnodes">
<description>
Gets the number of nodes in a #GTree.
@@ -9170,6 +15515,53 @@ Since: 2.12
</return>
</function>
+<function name="g_filename_to_uri">
+<description>
+Converts an absolute filename to an escaped ASCII-encoded URI, with the path
+component following Section 3.3. of RFC 2396.
+
+
+</description>
+<parameters>
+<parameter name="filename">
+<parameter_description> an absolute filename specified in the GLib file name encoding,
+which is the on-disk file name bytes on Unix, and UTF-8 on
+Windows
+</parameter_description>
+</parameter>
+<parameter name="hostname">
+<parameter_description> A UTF-8 encoded hostname, or %NULL for none.
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> location to store the error occuring, or %NULL to ignore
+errors. Any of the errors in #GConvertError may occur.
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly-allocated string holding the resulting
+URI, or %NULL on an error.
+</return>
+</function>
+
+<function name="g_param_value_set_default">
+<description>
+Sets @value to its default value as specified in @pspec.
+
+</description>
+<parameters>
+<parameter name="pspec">
+<parameter_description> a valid #GParamSpec
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> a #GValue of correct type for @pspec
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_option_context_set_translation_domain">
<description>
A convenience function to use gettext() for translating
@@ -9209,6 +15601,49 @@ g_free().
</return>
</function>
+<function name="g_type_is_a">
+<description>
+If @is_a_type is a derivable type, check whether @type is a
+descendant of @is_a_type. If @is_a_type is an interface, check
+whether @type conforms to it.
+
+
+</description>
+<parameters>
+<parameter name="type">
+<parameter_description> Type to check anchestry for.
+</parameter_description>
+</parameter>
+<parameter name="is_a_type">
+<parameter_description> Possible anchestor of @type or interface @type could conform to.
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE if @type is_a @is_a_type holds true.
+</return>
+</function>
+
+<function name="g_tree_new_with_data">
+<description>
+Creates a new #GTree with a comparison function that accepts user data.
+See g_tree_new() for more details.
+
+
+</description>
+<parameters>
+<parameter name="key_compare_func">
+<parameter_description> qsort()-style comparison function.
+</parameter_description>
+</parameter>
+<parameter name="key_compare_data">
+<parameter_description> data to pass to comparison function.
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GTree.
+</return>
+</function>
+
<function name="g_sequence_iter_get_sequence">
<description>
Return value: the #GSequence that @iter points into.
@@ -9230,6 +15665,10 @@ Since: 2.14
<description>
Retrieves the name of the currently open element.
+If called from the start_element or end_element handlers this will
+give the element_name as passed to those functions. For the parent
+elements, see g_markup_parse_context_get_element_stack().
+
Since: 2.2
</description>
@@ -9243,34 +15682,160 @@ Since: 2.2
</return>
</function>
-<function name="g_rename">
+<function name="g_object_add_toggle_ref">
<description>
-A wrapper for the POSIX rename() function. The rename() function
-renames a file, moving it between directories if required.
+Increases the reference count of the object by one and sets a
+callback to be called when all other references to the object are
+dropped, or when this is already the last reference to the object
+and another reference is established.
-See your C library manual for more details about how rename() works
-on your system. Note in particular that on Win9x it is not possible
-to rename a file if a file with the new name already exists. Also
-it is not possible in general on Windows to rename an open file.
+This functionality is intended for binding @object to a proxy
+object managed by another memory manager. This is done with two
+paired references: the strong reference added by
+g_object_add_toggle_ref() and a reverse reference to the proxy
+object which is either a strong reference or weak reference.
+The setup is that when there are no other references to @object,
+only a weak reference is held in the reverse direction from @object
+to the proxy object, but when there are other references held to
+@object, a strong reference is held. The @notify callback is called
+when the reference from @object to the proxy object should be
+&amp;lt;firstterm&amp;gt;toggled&amp;lt;/firstterm&amp;gt; from strong to weak (@is_last_ref
+true) or weak to strong (@is_last_ref false).
+
+Since a (normal) reference must be held to the object before
+calling g_object_toggle_ref(), the initial state of the reverse
+link is always strong.
+
+Multiple toggle references may be added to the same gobject,
+however if there are multiple toggle references to an object, none
+of them will ever be notified until all but one are removed. For
+this reason, you should only ever use a toggle reference if there
+is important state in the proxy object.
+
+Since: 2.8
</description>
<parameters>
-<parameter name="oldfilename">
-<parameter_description> a pathname in the GLib file name encoding (UTF-8 on Windows)
+<parameter name="object">
+<parameter_description> a #GObject
</parameter_description>
</parameter>
-<parameter name="newfilename">
+<parameter name="notify">
+<parameter_description> a function to call when this reference is the
+last reference to the object, or is no longer
+the last reference.
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> data to pass to @notify
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_signal_handler_unblock">
+<description>
+Undoes the effect of a previous g_signal_handler_block() call. A
+blocked handler is skipped during signal emissions and will not be
+invoked, unblocking it (for exactly the amount of times it has been
+blocked before) reverts its &quot;blocked&quot; state, so the handler will be
+recognized by the signal system and is called upon future or
+currently ongoing signal emissions (since the order in which
+handlers are called during signal emissions is deterministic,
+whether the unblocked handler in question is called as part of a
+currently ongoing emission depends on how far that emission has
+proceeded yet).
+
+The @handler_id has to be a valid id of a signal handler that is
+connected to a signal of @instance and is currently blocked.
+
+</description>
+<parameters>
+<parameter name="instance">
+<parameter_description> The instance to unblock the signal handler of.
+</parameter_description>
+</parameter>
+<parameter name="handler_id">
+<parameter_description> Handler id of the handler to be unblocked.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_mkdir_with_parents">
+<description>
+Create a directory if it doesn&apos;t already exist. Create intermediate
+parent directories as needed, too.
+
+
+</description>
+<parameters>
+<parameter name="pathname">
<parameter_description> a pathname in the GLib file name encoding
</parameter_description>
</parameter>
+<parameter name="mode">
+<parameter_description> permissions to use for newly created directories
+</parameter_description>
+</parameter>
</parameters>
-<return> 0 if the renaming succeeded, -1 if an error occurred
+<return> 0 if the directory already exists, or was successfully
+created. Returns -1 if an error occurred, with errno set.
-Since: 2.6
+Since: 2.8
</return>
</function>
+<function name="g_signal_chain_from_overridden_handler">
+<description>
+Calls the original class closure of a signal. This function should
+only be called from an overridden class closure; see
+g_signal_override_class_closure() and
+g_signal_override_class_handler().
+
+Since: 2.18
+
+</description>
+<parameters>
+<parameter name="instance">
+<parameter_description> the instance the signal is being emitted on.
+</parameter_description>
+</parameter>
+<parameter name="Varargs">
+<parameter_description> parameters to be passed to the parent class closure, followed by a
+location for the return value. If the return type of the signal
+is #G_TYPE_NONE, the return value location can be omitted.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_param_spec_pool_insert">
+<description>
+Inserts a #GParamSpec in the pool.
+
+</description>
+<parameters>
+<parameter name="pool">
+<parameter_description> a #GParamSpecPool.
+</parameter_description>
+</parameter>
+<parameter name="pspec">
+<parameter_description> the #GParamSpec to insert
+</parameter_description>
+</parameter>
+<parameter name="owner_type">
+<parameter_description> a #GType identifying the owner of @pspec
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_io_channel_get_buffer_size">
<description>
Gets the buffer size.
@@ -9287,6 +15852,93 @@ Gets the buffer size.
</return>
</function>
+<function name="g_type_register_static_simple">
+<description>
+Registers @type_name as the name of a new static type derived from
+@parent_type. The value of @flags determines the nature (e.g.
+abstract or not) of the type. It works by filling a #GTypeInfo
+struct and calling g_type_register_static().
+
+Since: 2.12
+
+
+</description>
+<parameters>
+<parameter name="parent_type">
+<parameter_description> Type from which this type will be derived.
+</parameter_description>
+</parameter>
+<parameter name="type_name">
+<parameter_description> 0-terminated string used as the name of the new type.
+</parameter_description>
+</parameter>
+<parameter name="class_size">
+<parameter_description> Size of the class structure (see #GTypeInfo)
+</parameter_description>
+</parameter>
+<parameter name="class_init">
+<parameter_description> Location of the class initialization function (see #GTypeInfo)
+</parameter_description>
+</parameter>
+<parameter name="instance_size">
+<parameter_description> Size of the instance structure (see #GTypeInfo)
+</parameter_description>
+</parameter>
+<parameter name="instance_init">
+<parameter_description> Location of the instance initialization function (see #GTypeInfo)
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> Bitwise combination of #GTypeFlags values.
+</parameter_description>
+</parameter>
+</parameters>
+<return> The new type identifier.
+</return>
+</function>
+
+<function name="g_param_spec_float">
+<description>
+Creates a new #GParamSpecFloat instance specifying a %G_TYPE_FLOAT property.
+
+See g_param_spec_internal() for details on property names.
+
+
+</description>
+<parameters>
+<parameter name="name">
+<parameter_description> canonical name of the property specified
+</parameter_description>
+</parameter>
+<parameter name="nick">
+<parameter_description> nick name for the property specified
+</parameter_description>
+</parameter>
+<parameter name="blurb">
+<parameter_description> description of the property specified
+</parameter_description>
+</parameter>
+<parameter name="minimum">
+<parameter_description> minimum value for the property specified
+</parameter_description>
+</parameter>
+<parameter name="maximum">
+<parameter_description> maximum value for the property specified
+</parameter_description>
+</parameter>
+<parameter name="default_value">
+<parameter_description> default value for the property specified
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> flags for the property specified
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly created parameter specification
+</return>
+</function>
+
<function name="g_queue_copy">
<description>
Copies a @queue. Note that is a shallow copy. If the elements in the
@@ -9334,34 +15986,20 @@ a positive value if the second comes before the first.
<return></return>
</function>
-<function name="g_tree_lookup_extended">
+<function name="g_intern_static_string">
<description>
-Looks up a key in the #GTree, returning the original key and the
-associated value and a #gboolean which is %TRUE if the key was found. This
-is useful if you need to free the memory allocated for the original key,
-for example before calling g_tree_remove().
-
+Returns: a canonical representation for the string
</description>
<parameters>
-<parameter name="tree">
-<parameter_description> a #GTree.
-</parameter_description>
-</parameter>
-<parameter name="lookup_key">
-<parameter_description> the key to look up.
-</parameter_description>
-</parameter>
-<parameter name="orig_key">
-<parameter_description> returns the original key.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> returns the value associated with the key.
+<parameter name="string">
+<parameter_description> a static string
</parameter_description>
</parameter>
</parameters>
-<return> %TRUE if the key was found in the #GTree.
+<return> a canonical representation for the string
+
+Since: 2.10
</return>
</function>
@@ -9436,6 +16074,22 @@ Since: 2.12
</return>
</function>
+<function name="g_value_get_int64">
+<description>
+Get the contents of a %G_TYPE_INT64 #GValue.
+
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of type %G_TYPE_INT64
+</parameter_description>
+</parameter>
+</parameters>
+<return> 64bit integer contents of @value
+</return>
+</function>
+
<function name="g_ptr_array_foreach">
<description>
Calls a function for each element of a #GPtrArray.
@@ -9460,6 +16114,29 @@ Since: 2.4
<return></return>
</function>
+<function name="g_signal_handler_disconnect">
+<description>
+Disconnects a handler from an instance so it will not be called during
+any future or currently ongoing emissions of the signal it has been
+connected to. The @handler_id becomes invalid and may be reused.
+
+The @handler_id has to be a valid signal handler id, connected to a
+signal of @instance.
+
+</description>
+<parameters>
+<parameter name="instance">
+<parameter_description> The instance to remove the signal handler from.
+</parameter_description>
+</parameter>
+<parameter name="handler_id">
+<parameter_description> Handler id of the handler to be disconnected.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_string_assign">
<description>
Copies the bytes from a string into a #GString,
@@ -9484,27 +16161,53 @@ are destroyed.
</return>
</function>
-<function name="g_option_context_set_main_group">
+<function name="g_value_get_boxed">
<description>
-Sets a #GOptionGroup as main group of the @context.
-This has the same effect as calling g_option_context_add_group(),
-the only difference is that the options in the main group are
-treated differently when generating &amp;lt;option&amp;gt;--help&amp;lt;/option&amp;gt; output.
+Get the contents of a %G_TYPE_BOXED derived #GValue.
-Since: 2.6
</description>
<parameters>
-<parameter name="context">
-<parameter_description> a #GOptionContext
+<parameter name="value">
+<parameter_description> a valid #GValue of %G_TYPE_BOXED derived type
</parameter_description>
</parameter>
-<parameter name="group">
-<parameter_description> the group to set as main group
+</parameters>
+<return> boxed contents of @value
+</return>
+</function>
+
+<function name="g_uri_unescape_segment">
+<description>
+Unescapes a segment of an escaped string.
+
+If any of the characters in @illegal_characters or the character zero appears
+as an escaped character in @escaped_string then that is an error and %NULL
+will be returned. This is useful it you want to avoid for instance having a
+slash being expanded in an escaped path element, which might confuse pathname
+handling.
+
+
+</description>
+<parameters>
+<parameter name="escaped_string">
+<parameter_description> a string.
+</parameter_description>
+</parameter>
+<parameter name="escaped_string_end">
+<parameter_description> a string.
+</parameter_description>
+</parameter>
+<parameter name="illegal_characters">
+<parameter_description> an optional string of illegal characters not to be allowed.
</parameter_description>
</parameter>
</parameters>
-<return></return>
+<return> an unescaped version of @escaped_string or %NULL on error.
+The returned string should be freed when no longer needed.
+
+Since: 2.16
+</return>
</function>
<function name="g_file_get_contents">
@@ -9575,11 +16278,47 @@ Cuts off the end of the GString, leaving the first @len bytes.
</return>
</function>
+<function name="g_cclosure_marshal_VOID__CHAR">
+<description>
+A marshaller for a #GCClosure with a callback of type
+&amp;lt;literal&amp;gt;void (*callback) (gpointer instance, gchar arg1, gpointer user_data)&amp;lt;/literal&amp;gt;.
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> ignored
+</parameter_description>
+</parameter>
+<parameter name="n_param_values">
+<parameter_description> 2
+</parameter_description>
+</parameter>
+<parameter name="param_values">
+<parameter_description> a #GValue array holding the instance and the #gchar parameter
+</parameter_description>
+</parameter>
+<parameter name="invocation_hint">
+<parameter_description> the invocation hint given as the last argument
+to g_closure_invoke()
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when registering the marshaller
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_key_file_set_string">
<description>
-Associates a new string value with @key under @group_name. If
-@key cannot be found then it is created. If @group_name
-cannot be found then it is created.
+Associates a new string value with @key under @group_name.
+If @key cannot be found then it is created.
+If @group_name cannot be found then it is created.
Since: 2.6
@@ -9641,10 +16380,18 @@ Since: 2.6
<function name="g_fopen">
<description>
-A wrapper for the POSIX fopen() function. The fopen() function opens
-a file and associates a new stream with it.
+A wrapper for the stdio fopen() function. The fopen() function
+opens a file and associates a new stream with it.
+
+Because file descriptors are specific to the C library on Windows,
+and a file descriptor is partof the &amp;lt;type&amp;gt;FILE&amp;lt;/type&amp;gt; struct, the
+&amp;lt;type&amp;gt;FILE&amp;lt;/type&amp;gt; pointer returned by this function makes sense
+only to functions in the same C library. Thus if the GLib-using
+code uses a different C library than GLib does, the
+&amp;lt;type&amp;gt;FILE&amp;lt;/type&amp;gt; pointer returned by this function cannot be
+passed to C library functions like fprintf() or fread().
-See the C library manual for more details about fopen().
+See your C library manual for more details about fopen().
</description>
@@ -9666,19 +16413,70 @@ Since: 2.6
</return>
</function>
-<function name="g_error_copy">
+<function name="g_list_concat">
<description>
-Makes a copy of @error.
+Adds the second #GList onto the end of the first #GList.
+Note that the elements of the second #GList are not copied.
+They are used directly.
</description>
<parameters>
-<parameter name="error">
-<parameter_description> a #GError
+<parameter name="list1">
+<parameter_description> a #GList
+</parameter_description>
+</parameter>
+<parameter name="list2">
+<parameter_description> the #GList to add to the end of the first #GList
</parameter_description>
</parameter>
</parameters>
-<return> a new #GError
+<return> the start of the new #GList
+</return>
+</function>
+
+<function name="g_test_add_func">
+<description>
+Create a new test case, similar to g_test_create_case(). However
+the test is assumed to use no fixture, and test suites are automatically
+created on the fly and added to the root fixture, based on the
+slash-separated portions of @testpath.
+
+Since: 2.16
+
+</description>
+<parameters>
+<parameter name="testpath">
+<parameter_description> Slash-separated test case path name for the test.
+</parameter_description>
+</parameter>
+<parameter name="test_func">
+<parameter_description> The test function to invoke for this test.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_list_remove_link">
+<description>
+Removes an element from a #GList, without freeing the element.
+The removed element&apos;s prev and next links are set to %NULL, so
+that it becomes a self-contained list with one element.
+
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GList
+</parameter_description>
+</parameter>
+<parameter name="llink">
+<parameter_description> an element in the #GList
+</parameter_description>
+</parameter>
+</parameters>
+<return> the new start of the #GList, without the element
</return>
</function>
@@ -9718,6 +16516,147 @@ Since: 2.14
</return>
</function>
+<function name="g_param_spec_pool_remove">
+<description>
+Removes a #GParamSpec from the pool.
+
+</description>
+<parameters>
+<parameter name="pool">
+<parameter_description> a #GParamSpecPool
+</parameter_description>
+</parameter>
+<parameter name="pspec">
+<parameter_description> the #GParamSpec to remove
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_test_create_case">
+<description>
+Create a new #GTestCase, named @test_name, this API is fairly
+low level, calling g_test_add() or g_test_add_func() is preferable.
+When this test is executed, a fixture structure of size @data_size
+will be allocated and filled with 0s. Then data_setup() is called
+to initialize the fixture. After fixture setup, the actual test
+function data_test() is called. Once the test run completed, the
+fixture structure is torn down by calling data_teardown() and
+after that the memory is released.
+
+Splitting up a test run into fixture setup, test function and
+fixture teardown is most usful if the same fixture is used for
+multiple tests. In this cases, g_test_create_case() will be
+called with the same fixture, but varying @test_name and
+@data_test arguments.
+
+
+</description>
+<parameters>
+<parameter name="test_name">
+<parameter_description> the name for the test case
+</parameter_description>
+</parameter>
+<parameter name="data_size">
+<parameter_description> the size of the fixture data structure
+</parameter_description>
+</parameter>
+<parameter name="test_data">
+<parameter_description> test data argument for the test functions
+</parameter_description>
+</parameter>
+<parameter name="data_setup">
+<parameter_description> the function to set up the fixture data
+</parameter_description>
+</parameter>
+<parameter name="data_test">
+<parameter_description> the actual test function
+</parameter_description>
+</parameter>
+<parameter name="data_teardown">
+<parameter_description> the function to teardown the fixture data
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly allocated #GTestCase.
+
+Since: 2.16
+</return>
+</function>
+
+<function name="g_test_log_buffer_push">
+<description>
+Internal function for gtester to decode test log messages, no ABI guarantees provided.
+
+</description>
+<parameters>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_flags_complete_type_info">
+<description>
+This function is meant to be called from the complete_type_info()
+function of a #GTypePlugin implementation, see the example for
+g_enum_complete_type_info() above.
+
+</description>
+<parameters>
+<parameter name="g_flags_type">
+<parameter_description> the type identifier of the type being completed
+</parameter_description>
+</parameter>
+<parameter name="info">
+<parameter_description> the #GTypeInfo struct to be filled in
+</parameter_description>
+</parameter>
+<parameter name="const_values">
+<parameter_description> An array of #GFlagsValue structs for the possible
+enumeration values. The array is terminated by a struct with all
+members being 0.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_cclosure_marshal_VOID__UINT">
+<description>
+A marshaller for a #GCClosure with a callback of type
+&amp;lt;literal&amp;gt;void (*callback) (gpointer instance, guint arg1, gpointer user_data)&amp;lt;/literal&amp;gt;.
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> ignored
+</parameter_description>
+</parameter>
+<parameter name="n_param_values">
+<parameter_description> 2
+</parameter_description>
+</parameter>
+<parameter name="param_values">
+<parameter_description> a #GValue array holding the instance and the #guint parameter
+</parameter_description>
+</parameter>
+<parameter name="invocation_hint">
+<parameter_description> the invocation hint given as the last argument
+to g_closure_invoke()
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when registering the marshaller
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_regex_split">
<description>
Breaks the string on the pattern, and returns an array of the tokens.
@@ -9760,6 +16699,39 @@ Since: 2.14
</return>
</function>
+<function name="g_key_file_remove_comment">
+<description>
+Removes a comment above @key from @group_name.
+If @key is %NULL then @comment will be removed above @group_name.
+If both @key and @group_name are %NULL, then @comment will
+be removed above the first group in the file.
+
+
+</description>
+<parameters>
+<parameter name="key_file">
+<parameter_description> a #GKeyFile
+</parameter_description>
+</parameter>
+<parameter name="group_name">
+<parameter_description> a group name, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="key">
+<parameter_description> a key
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> return location for a #GError
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE if the comment was removed, %FALSE otherwise
+
+Since: 2.6
+</return>
+</function>
+
<function name="g_mapped_file_new">
<description>
Maps a file into memory. On UNIX, this is using the mmap() function.
@@ -9782,7 +16754,7 @@ atomically (e.g. using g_file_set_contents()).
</parameter_description>
</parameter>
<parameter name="writable">
-<parameter_description> wether the mapping should be writable
+<parameter_description> whether the mapping should be writable
</parameter_description>
</parameter>
<parameter name="error">
@@ -9805,19 +16777,20 @@ Reads data from a #GIOChannel.
</description>
<parameters>
<parameter name="channel">
-<parameter_description> a #GIOChannel.
+<parameter_description> a #GIOChannel
</parameter_description>
</parameter>
<parameter name="buf">
-<parameter_description> a buffer to read the data into (which should be at least count bytes long).
+<parameter_description> a buffer to read the data into (which should be at least
+count bytes long)
</parameter_description>
</parameter>
<parameter name="count">
-<parameter_description> the number of bytes to read from the #GIOChannel.
+<parameter_description> the number of bytes to read from the #GIOChannel
</parameter_description>
</parameter>
<parameter name="bytes_read">
-<parameter_description> returns the number of bytes actually read.
+<parameter_description> returns the number of bytes actually read
</parameter_description>
</parameter>
</parameters>
@@ -9827,47 +16800,77 @@ Deprecated:2.2: Use g_io_channel_read_chars() instead.
</return>
</function>
-<function name="g_ucs4_to_utf8">
+<function name="g_markup_parse_context_get_user_data">
<description>
-Convert a string from a 32-bit fixed width representation as UCS-4.
-to UTF-8. The result will be terminated with a 0 byte.
+Returns: the provided user_data. The returned data belongs to
+
+</description>
+<parameters>
+<parameter name="context">
+<parameter_description> a #GMarkupParseContext
+</parameter_description>
+</parameter>
+</parameters>
+<return> the provided user_data. The returned data belongs to
+the markup context and will be freed when g_markup_context_free()
+is called.
+
+Since: 2.18
+</return>
+</function>
+
+<function name="g_bookmark_file_remove_item">
+<description>
+Removes the bookmark for @uri from the bookmark file @bookmark.
</description>
<parameters>
-<parameter name="str">
-<parameter_description> a UCS-4 encoded string
+<parameter name="bookmark">
+<parameter_description> a #GBookmarkFile
</parameter_description>
</parameter>
-<parameter name="len">
-<parameter_description> the maximum length (number of characters) of @str to use.
-If @len &amp;lt; 0, then the string is terminated with a 0 character.
+<parameter name="uri">
+<parameter_description> a valid URI
</parameter_description>
</parameter>
-<parameter name="items_read">
-<parameter_description> location to store number of characters read, or %NULL.
+<parameter name="error">
+<parameter_description> return location for a #GError, or %NULL
</parameter_description>
</parameter>
-<parameter name="items_written">
-<parameter_description> location to store number of bytes written or %NULL.
-The value here stored does not include the trailing 0
-byte.
+</parameters>
+<return> %TRUE if the bookmark was removed successfully.
+
+Since: 2.12
+</return>
+</function>
+
+<function name="g_type_plugin_complete_type_info">
+<description>
+Calls the @complete_type_info function from the #GTypePluginClass of @plugin.
+There should be no need to use this function outside of the GObject
+type system itself.
+
+</description>
+<parameters>
+<parameter name="plugin">
+<parameter_description> a #GTypePlugin
</parameter_description>
</parameter>
-<parameter name="error">
-<parameter_description> location to store the error occuring, or %NULL to ignore
-errors. Any of the errors in #GConvertError other than
-%G_CONVERT_ERROR_NO_CONVERSION may occur.
+<parameter name="g_type">
+<parameter_description> the #GType whose info is completed
+</parameter_description>
+</parameter>
+<parameter name="info">
+<parameter_description> the #GTypeInfo struct to fill in
+</parameter_description>
+</parameter>
+<parameter name="value_table">
+<parameter_description> the #GTypeValueTable to fill in
</parameter_description>
</parameter>
</parameters>
-<return> a pointer to a newly allocated UTF-8 string.
-This value must be freed with g_free(). If an
-error occurs, %NULL will be returned and
-@error set. In that case, @items_read will be
-set to the position of the first invalid input
-character.
-</return>
+<return></return>
</function>
<function name="g_unichar_isprint">
@@ -9889,38 +16892,26 @@ g_utf8_get_char().
</return>
</function>
-<function name="g_source_set_callback">
+<function name="g_queue_find">
<description>
-Sets the callback function for a source. The callback for a source is
-called from the source&apos;s dispatch function.
+Finds the first link in @queue which contains @data.
-The exact type of @func depends on the type of source; ie. you
-should not count on @func being called with @data as its first
-parameter.
-
-Typically, you won&apos;t use this function. Instead use functions specific
-to the type of source you are using.
</description>
<parameters>
-<parameter name="source">
-<parameter_description> the source
-</parameter_description>
-</parameter>
-<parameter name="func">
-<parameter_description> a callback function
+<parameter name="queue">
+<parameter_description> a #GQueue
</parameter_description>
</parameter>
<parameter name="data">
-<parameter_description> the data to pass to callback function
-</parameter_description>
-</parameter>
-<parameter name="notify">
-<parameter_description> a function to call when @data is no longer in use, or %NULL.
+<parameter_description> data to find
</parameter_description>
</parameter>
</parameters>
-<return></return>
+<return> The first link in @queue which contains @data.
+
+Since: 2.4
+</return>
</function>
<function name="g_sequence_sort_iter">
@@ -9952,6 +16943,80 @@ iterator comes before the first.
<return></return>
</function>
+<function name="g_checksum_get_string">
+<description>
+Gets the digest as an hexadecimal string.
+
+Once this function has been called the #GChecksum can no longer be
+updated with g_checksum_update().
+
+
+</description>
+<parameters>
+<parameter name="checksum">
+<parameter_description> a #GChecksum
+</parameter_description>
+</parameter>
+</parameters>
+<return> the hexadecimal representation of the checksum. The
+returned string is owned by the checksum and should not be modified
+or freed.
+
+Since: 2.16
+</return>
+</function>
+
+<function name="g_value_array_get_nth">
+<description>
+Return a pointer to the value at @index_ containd in @value_array.
+
+
+</description>
+<parameters>
+<parameter name="value_array">
+<parameter_description> #GValueArray to get a value from
+</parameter_description>
+</parameter>
+<parameter name="index_">
+<parameter_description> index of the value of interest
+</parameter_description>
+</parameter>
+</parameters>
+<return> pointer to a value at @index_ in @value_array
+</return>
+</function>
+
+<function name="g_checksum_new">
+<description>
+Creates a new #GChecksum, using the checksum algorithm @checksum_type.
+If the @checksum_type is not known, %NULL is returned.
+A #GChecksum can be used to compute the checksum, or digest, of an
+arbitrary binary blob, using different hashing algorithms.
+
+A #GChecksum works by feeding a binary blob through g_checksum_update()
+until there is data to be checked; the digest can then be extracted
+using g_checksum_get_string(), which will return the checksum as a
+hexadecimal string; or g_checksum_get_digest(), which will return a
+vector of raw bytes. Once either g_checksum_get_string() or
+g_checksum_get_digest() have been called on a #GChecksum, the checksum
+will be closed and it won&apos;t be possible to call g_checksum_update()
+on it anymore.
+
+
+</description>
+<parameters>
+<parameter name="checksum_type">
+<parameter_description> the desired type of checksum
+</parameter_description>
+</parameter>
+</parameters>
+<return> the newly created #GChecksum, or %NULL.
+Use g_checksum_free() to free the memory allocated by it.
+
+Since: 2.16
+</return>
+</function>
+
<function name="g_bookmark_file_to_data">
<description>
This function outputs @bookmark as a string.
@@ -10010,6 +17075,39 @@ Acquires the @queue&apos;s lock. After that you can only call the
<return></return>
</function>
+<function name="g_slist_insert_sorted_with_data">
+<description>
+Inserts a new element into the list, using the given
+comparison function to determine its position.
+
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GSList
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> the data for the new element
+</parameter_description>
+</parameter>
+<parameter name="func">
+<parameter_description> the function to compare elements in the list.
+It should return a number &amp;gt; 0 if the first parameter
+comes after the second parameter in the sort order.
+</parameter_description>
+</parameter>
+<parameter name="user_data">
+<parameter_description> data to pass to comparison function
+</parameter_description>
+</parameter>
+</parameters>
+<return> the new start of the #GSList
+
+Since: 2.10
+</return>
+</function>
+
<function name="g_utf8_strup">
<description>
Converts all Unicode characters in the string that have a case
@@ -10087,27 +17185,66 @@ g_io_channel_set_encoding () for details.
</return>
</function>
-<function name="g_printf">
+<function name="g_type_parent">
<description>
-An implementation of the standard printf() function which supports
-positional parameters, as specified in the Single Unix Specification.
+Return the direct parent type of the passed in type. If the passed
+in type has no parent, i.e. is a fundamental type, 0 is returned.
</description>
<parameters>
-<parameter name="format">
-<parameter_description> a standard printf() format string, but notice
-&amp;lt;link linkend=&quot;string-precision&quot;&amp;gt;string precision pitfalls&amp;lt;/link&amp;gt;.
+<parameter name="type">
+<parameter_description> The derived type.
</parameter_description>
</parameter>
-<parameter name="Varargs">
-<parameter_description> the arguments to insert in the output.
+</parameters>
+<return> The parent type.
+</return>
+</function>
+
+<function name="g_node_last_sibling">
+<description>
+Gets the last sibling of a #GNode.
+This could possibly be the node itself.
+
+
+</description>
+<parameters>
+<parameter name="node">
+<parameter_description> a #GNode
</parameter_description>
</parameter>
</parameters>
-<return> the number of characters printed.
+<return> the last sibling of @node
+</return>
+</function>
-Since: 2.2
+<function name="g_io_channel_new_file">
+<description>
+Open a file @filename as a #GIOChannel using mode @mode. This
+channel will be closed when the last reference to it is dropped,
+so there is no need to call g_io_channel_close() (though doing
+so will not cause problems, as long as no attempt is made to
+access the channel after it is closed).
+
+
+</description>
+<parameters>
+<parameter name="filename">
+<parameter_description> A string containing the name of a file
+</parameter_description>
+</parameter>
+<parameter name="mode">
+<parameter_description> One of &quot;r&quot;, &quot;w&quot;, &quot;a&quot;, &quot;r+&quot;, &quot;w+&quot;, &quot;a+&quot;. These have
+the same meaning as in fopen()
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> A location to return an error of type %G_FILE_ERROR
+</parameter_description>
+</parameter>
+</parameters>
+<return> A #GIOChannel on success, %NULL on failure.
</return>
</function>
@@ -10137,21 +17274,26 @@ Since: 2.4
<return></return>
</function>
-<function name="g_queue_clear">
+<function name="g_bookmark_file_has_item">
<description>
-Removes all the elements in @queue. If queue elements contain
-dynamically-allocated memory, they should be freed first.
+Looks whether the desktop bookmark has an item with its URI set to @uri.
-Since: 2.14
</description>
<parameters>
-<parameter name="queue">
-<parameter_description> a #GQueue
+<parameter name="bookmark">
+<parameter_description> a #GBookmarkFile
+</parameter_description>
+</parameter>
+<parameter name="uri">
+<parameter_description> a valid URI
</parameter_description>
</parameter>
</parameters>
-<return></return>
+<return> %TRUE if @uri is inside @bookmark, %FALSE otherwise
+
+Since: 2.12
+</return>
</function>
<function name="g_setenv">
@@ -10240,27 +17382,30 @@ Since: 2.14
<function name="g_hash_table_lookup_extended">
<description>
Looks up a key in the #GHashTable, returning the original key and the
-associated value and a #gboolean which is %TRUE if the key was found. This
-is useful if you need to free the memory allocated for the original key,
+associated value and a #gboolean which is %TRUE if the key was found. This
+is useful if you need to free the memory allocated for the original key,
for example before calling g_hash_table_remove().
+You can actually pass %NULL for @lookup_key to test
+whether the %NULL key exists.
+
</description>
<parameters>
<parameter name="hash_table">
-<parameter_description> a #GHashTable.
+<parameter_description> a #GHashTable
</parameter_description>
</parameter>
<parameter name="lookup_key">
-<parameter_description> the key to look up.
+<parameter_description> the key to look up
</parameter_description>
</parameter>
<parameter name="orig_key">
-<parameter_description> returns the original key.
+<parameter_description> return location for the original key, or %NULL
</parameter_description>
</parameter>
<parameter name="value">
-<parameter_description> returns the value associated with the key.
+<parameter_description> return location for the value associated with the key, or %NULL
</parameter_description>
</parameter>
</parameters>
@@ -10268,6 +17413,54 @@ for example before calling g_hash_table_remove().
</return>
</function>
+<function name="g_signal_handlers_unblock_matched">
+<description>
+Unblocks all handlers on an instance that match a certain selection
+criteria. The criteria mask is passed as an OR-ed combination of
+#GSignalMatchType flags, and the criteria values are passed as arguments.
+Passing at least one of the %G_SIGNAL_MATCH_CLOSURE, %G_SIGNAL_MATCH_FUNC
+or %G_SIGNAL_MATCH_DATA match flags is required for successful matches.
+If no handlers were found, 0 is returned, the number of unblocked handlers
+otherwise. The match criteria should not apply to any handlers that are
+not currently blocked.
+
+
+</description>
+<parameters>
+<parameter name="instance">
+<parameter_description> The instance to unblock handlers from.
+</parameter_description>
+</parameter>
+<parameter name="mask">
+<parameter_description> Mask indicating which of @signal_id, @detail, @closure, @func
+and/or @data the handlers have to match.
+</parameter_description>
+</parameter>
+<parameter name="signal_id">
+<parameter_description> Signal the handlers have to be connected to.
+</parameter_description>
+</parameter>
+<parameter name="detail">
+<parameter_description> Signal detail the handlers have to be connected to.
+</parameter_description>
+</parameter>
+<parameter name="closure">
+<parameter_description> The closure the handlers will invoke.
+</parameter_description>
+</parameter>
+<parameter name="func">
+<parameter_description> The C closure callback of the handlers (useless for non-C closures).
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> The closure data of the handlers&apos; closures.
+</parameter_description>
+</parameter>
+</parameters>
+<return> The number of handlers that matched.
+</return>
+</function>
+
<function name="g_bookmark_file_get_mime_type">
<description>
Retrieves the MIME type of the resource pointed by @uri.
@@ -10300,6 +17493,49 @@ Since: 2.12
</return>
</function>
+<function name="g_value_get_int">
+<description>
+Get the contents of a %G_TYPE_INT #GValue.
+
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of type %G_TYPE_INT
+</parameter_description>
+</parameter>
+</parameters>
+<return> integer contents of @value
+</return>
+</function>
+
+<function name="g_slist_insert">
+<description>
+Inserts a new element into the list at the given position.
+
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GSList
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> the data for the new element
+</parameter_description>
+</parameter>
+<parameter name="position">
+<parameter_description> the position to insert the element.
+If this is negative, or is larger than the number
+of elements in the list, the new element is added on
+to the end of the list.
+</parameter_description>
+</parameter>
+</parameters>
+<return> the new start of the #GSList
+</return>
+</function>
+
<function name="g_datalist_unset_flags">
<description>
Turns off flag values for a data list. See g_datalist_unset_flags()
@@ -10324,6 +17560,45 @@ an error.
<return></return>
</function>
+<function name="g_param_spec_sink">
+<description>
+The initial reference count of a newly created #GParamSpec is 1,
+even though no one has explicitly called g_param_spec_ref() on it
+yet. So the initial reference count is flagged as &quot;floating&quot;, until
+someone calls &amp;lt;literal&amp;gt;g_param_spec_ref (pspec); g_param_spec_sink
+(pspec);&amp;lt;/literal&amp;gt; in sequence on it, taking over the initial
+reference count (thus ending up with a @pspec that has a reference
+count of 1 still, but is not flagged &quot;floating&quot; anymore).
+
+</description>
+<parameters>
+<parameter name="pspec">
+<parameter_description> a valid #GParamSpec
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_node_is_ancestor">
+<description>
+Returns: %TRUE if @node is an ancestor of @descendant
+
+</description>
+<parameters>
+<parameter name="node">
+<parameter_description> a #GNode
+</parameter_description>
+</parameter>
+<parameter name="descendant">
+<parameter_description> a #GNode
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE if @node is an ancestor of @descendant
+</return>
+</function>
+
<function name="g_utf8_collate_key_for_filename">
<description>
Converts a string into a collation key that can be compared
@@ -10358,101 +17633,81 @@ Since: 2.8
</return>
</function>
-<function name="g_convert_with_fallback">
+<function name="g_checksum_update">
<description>
-Converts a string from one character set to another, possibly
-including fallback sequences for characters not representable
-in the output. Note that it is not guaranteed that the specification
-for the fallback sequences in @fallback will be honored. Some
-systems may do a approximate conversion from @from_codeset
-to @to_codeset in their iconv() functions,
-in which case GLib will simply return that approximate conversion.
-
-Note that you should use g_iconv() for streaming
-conversions&amp;lt;footnoteref linkend=&quot;streaming-state&quot;/&amp;gt;.
+Feeds @data into an existing #GChecksum. The checksum must still be
+open, that is g_checksum_get_string() or g_checksum_get_digest() must
+not have been called on @checksum.
+Since: 2.16
</description>
<parameters>
-<parameter name="str">
-<parameter_description> the string to convert
-</parameter_description>
-</parameter>
-<parameter name="len">
-<parameter_description> the length of the string, or -1 if the string is
-nul-terminated&amp;lt;footnoteref linkend=&quot;nul-unsafe&quot;/&amp;gt;.
+<parameter name="checksum">
+<parameter_description> a #GChecksum
</parameter_description>
</parameter>
-<parameter name="to_codeset">
-<parameter_description> name of character set into which to convert @str
-</parameter_description>
-</parameter>
-<parameter name="from_codeset">
-<parameter_description> character set of @str.
-</parameter_description>
-</parameter>
-<parameter name="fallback">
-<parameter_description> UTF-8 string to use in place of character not
-present in the target encoding. (The string must be
-representable in the target encoding).
- If %NULL, characters not in the target encoding will
- be represented as Unicode escapes \uxxxx or \Uxxxxyyyy.
+<parameter name="data">
+<parameter_description> buffer used to compute the checksum
</parameter_description>
</parameter>
-<parameter name="bytes_read">
-<parameter_description> location to store the number of bytes in the
-input string that were successfully converted, or %NULL.
-Even if the conversion was successful, this may be
-less than @len if there were partial characters
-at the end of the input.
+<parameter name="length">
+<parameter_description> size of the buffer, or -1 if it is a null-terminated string.
</parameter_description>
</parameter>
-<parameter name="bytes_written">
-<parameter_description> the number of bytes stored in the output buffer (not
-including the terminating nul).
+</parameters>
+<return></return>
+</function>
+
+<function name="g_object_add_weak_pointer">
+<description>
+Adds a weak reference from weak_pointer to @object to indicate that
+the pointer located at @weak_pointer_location is only valid during
+the lifetime of @object. When the @object is finalized,
+@weak_pointer will be set to %NULL.
+
+</description>
+<parameters>
+<parameter name="object">
+<parameter_description> The object that should be weak referenced.
</parameter_description>
</parameter>
-<parameter name="error">
-<parameter_description> location to store the error occuring, or %NULL to ignore
-errors. Any of the errors in #GConvertError may occur.
+<parameter name="weak_pointer_location">
+<parameter_description> The memory address of a pointer.
</parameter_description>
</parameter>
</parameters>
-<return> If the conversion was successful, a newly allocated
-nul-terminated string, which must be freed with
-g_free(). Otherwise %NULL and @error will be set.
-</return>
+<return></return>
</function>
-<function name="g_sequence_move_range">
+<function name="g_strndup">
<description>
-Inserts the (@begin, @end) range at the destination pointed to by ptr.
-The @begin and @end iters must point into the same sequence. It is
-allowed for @dest to point to a different sequence than the one pointed
-into by @begin and @end.
+Duplicates the first @n bytes of a string, returning a newly-allocated
+buffer @n + 1 bytes long which will always be nul-terminated.
+If @str is less than @n bytes long the buffer is padded with nuls.
+If @str is %NULL it returns %NULL.
+The returned value should be freed when no longer needed.
-If @dest is NULL, the range indicated by @begin and @end is
-removed from the sequence. If @dest iter points to a place within
-the (@begin, @end) range, the range does not move.
+&amp;lt;note&amp;gt;&amp;lt;para&amp;gt;
+To copy a number of characters from a UTF-8 encoded string, use
+g_utf8_strncpy() instead.
+&amp;lt;/para&amp;gt;&amp;lt;/note&amp;gt;
-Since: 2.14
</description>
<parameters>
-<parameter name="dest">
-<parameter_description> a #GSequenceIter
-</parameter_description>
-</parameter>
-<parameter name="begin">
-<parameter_description> a #GSequenceIter
+<parameter name="str">
+<parameter_description> the string to duplicate
</parameter_description>
</parameter>
-<parameter name="end">
-<parameter_description> a #GSequenceIter
+<parameter name="n">
+<parameter_description> the maximum number of bytes to copy from @str
</parameter_description>
</parameter>
</parameters>
-<return></return>
+<return> a newly-allocated buffer containing the first @n bytes
+of @str, nul-terminated
+</return>
</function>
<function name="g_bookmark_file_set_modified">
@@ -10513,6 +17768,23 @@ to @haystack_len.
</return>
</function>
+<function name="g_object_run_dispose">
+<description>
+Releases all references to other objects. This can be used to break
+reference cycles.
+
+This functions should only be called from object system implementations.
+
+</description>
+<parameters>
+<parameter name="object">
+<parameter_description> a #GObject
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_getenv">
<description>
Return value: the value of the environment variable, or %NULL if
@@ -10531,11 +17803,67 @@ g_unsetenv().
</return>
</function>
+<function name="g_list_insert">
+<description>
+Inserts a new element into the list at the given position.
+
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a pointer to a #GList
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> the data for the new element
+</parameter_description>
+</parameter>
+<parameter name="position">
+<parameter_description> the position to insert the element. If this is
+negative, or is larger than the number of elements in the
+list, the new element is added on to the end of the list.
+</parameter_description>
+</parameter>
+</parameters>
+<return> the new start of the #GList
+</return>
+</function>
+
+<function name="g_io_create_watch">
+<description>
+Creates a #GSource that&apos;s dispatched when @condition is met for the
+given @channel. For example, if condition is #G_IO_IN, the source will
+be dispatched when there&apos;s data available for reading.
+
+g_io_add_watch() is a simpler interface to this same functionality, for
+the case where you want to add the source to the default main loop context
+at the default priority.
+
+On Windows, polling a #GSource created to watch a channel for a socket
+puts the socket in non-blocking mode. This is a side-effect of the
+implementation and unavoidable.
+
+
+</description>
+<parameters>
+<parameter name="channel">
+<parameter_description> a #GIOChannel to watch
+</parameter_description>
+</parameter>
+<parameter name="condition">
+<parameter_description> conditions to watch for
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GSource
+</return>
+</function>
+
<function name="g_main_context_release">
<description>
Releases ownership of a context previously acquired by this thread
with g_main_context_acquire(). If the context was acquired multiple
-times, the only release ownership when g_main_context_release()
+times, the ownership will be released only when g_main_context_release()
is called as many times as it was acquired.
</description>
@@ -10548,6 +17876,122 @@ is called as many times as it was acquired.
<return></return>
</function>
+<function name="g_type_module_unuse">
+<description>
+Decreases the use count of a #GTypeModule by one. If the
+result is zero, the module will be unloaded. (However, the
+#GTypeModule will not be freed, and types associated with the
+#GTypeModule are not unregistered. Once a #GTypeModule is
+initialized, it must exist forever.)
+
+</description>
+<parameters>
+<parameter name="module">
+<parameter_description> a #GTypeModule
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_dngettext">
+<description>
+This function is a wrapper of dngettext() which does not translate
+the message if the default domain as set with textdomain() has no
+translations for the current locale.
+
+See g_dgettext() for details of how this differs from dngettext()
+proper.
+
+
+</description>
+<parameters>
+<parameter name="domain">
+<parameter_description> the translation domain to use, or %NULL to use
+the domain set with textdomain()
+</parameter_description>
+</parameter>
+<parameter name="msgid">
+<parameter_description> message to translate
+</parameter_description>
+</parameter>
+<parameter name="msgid_plural">
+<parameter_description> plural form of the message
+</parameter_description>
+</parameter>
+<parameter name="n">
+<parameter_description> the quantity for which translation is needed
+</parameter_description>
+</parameter>
+</parameters>
+<return> The translated string
+
+Since: 2.18
+</return>
+</function>
+
+<function name="g_type_set_qdata">
+<description>
+Attaches arbitrary data to a type.
+
+</description>
+<parameters>
+<parameter name="type">
+<parameter_description> a #GType
+</parameter_description>
+</parameter>
+<parameter name="quark">
+<parameter_description> a #GQuark id to identify the data
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> the data
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_list_sort">
+<description>
+Sorts a #GList using the given comparison function.
+
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GList
+</parameter_description>
+</parameter>
+<parameter name="compare_func">
+<parameter_description> the comparison function used to sort the #GList.
+This function is passed the data from 2 elements of the #GList
+and should return 0 if they are equal, a negative value if the
+first element comes before the second, or a positive value if
+the first element comes after the second.
+</parameter_description>
+</parameter>
+</parameters>
+<return> the start of the sorted #GList
+</return>
+</function>
+
+<function name="g_param_spec_get_blurb">
+<description>
+Get the short description of a #GParamSpec.
+
+
+</description>
+<parameters>
+<parameter name="pspec">
+<parameter_description> a valid #GParamSpec
+</parameter_description>
+</parameter>
+</parameters>
+<return> the short description of @pspec.
+</return>
+</function>
+
<function name="g_string_ascii_down">
<description>
Converts all upper case ASCII letters to lower case ASCII letters.
@@ -10588,6 +18032,26 @@ Since: 2.4
</return>
</function>
+<function name="g_slist_remove_all">
+<description>
+Removes all list nodes with data equal to @data.
+Returns: new head of @list
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GSList
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> data to remove
+</parameter_description>
+</parameter>
+</parameters>
+<return> new head of @list
+</return>
+</function>
+
<function name="g_bookmark_file_get_icon">
<description>
Gets the icon of the bookmark for @uri.
@@ -10670,26 +18134,72 @@ Since: 2.2
</return>
</function>
-<function name="g_bookmark_file_set_mime_type">
+<function name="g_queue_delete_link">
<description>
-Sets @mime_type as the MIME type of the bookmark for @uri.
+Removes @link_ from @queue and frees it.
-If a bookmark for @uri cannot be found then it is created.
+@link_ must be part of @queue.
-Since: 2.12
+Since: 2.4
</description>
<parameters>
-<parameter name="bookmark">
-<parameter_description> a #GBookmarkFile
+<parameter name="queue">
+<parameter_description> a #GQueue
</parameter_description>
</parameter>
-<parameter name="uri">
-<parameter_description> a valid URI
+<parameter name="link_">
+<parameter_description> a #GList link that &amp;lt;emphasis&amp;gt;must&amp;lt;/emphasis&amp;gt; be part of @queue
</parameter_description>
</parameter>
-<parameter name="mime_type">
-<parameter_description> a MIME type
+</parameters>
+<return></return>
+</function>
+
+<function name="g_object_get">
+<description>
+Gets properties of an object.
+
+In general, a copy is made of the property contents and the caller
+is responsible for freeing the memory in the appropriate manner for
+the type, for instance by calling g_free() or g_object_unref().
+
+&amp;lt;example&amp;gt;
+&amp;lt;title&amp;gt;Using g_object_get(&amp;lt;!-- --&amp;gt;)&amp;lt;/title&amp;gt;
+An example of using g_object_get() to get the contents
+of three properties - one of type #G_TYPE_INT,
+one of type #G_TYPE_STRING, and one of type #G_TYPE_OBJECT:
+&amp;lt;programlisting&amp;gt;
+gint intval;
+gchar *strval;
+GObject *objval;
+
+g_object_get (my_object,
+&quot;int-property&quot;, &amp;intval,
+&quot;str-property&quot;, &amp;strval,
+&quot;obj-property&quot;, &amp;objval,
+NULL);
+
+// Do something with intval, strval, objval
+
+g_free (strval);
+g_object_unref (objval);
+&amp;lt;/programlisting&amp;gt;
+&amp;lt;/example&amp;gt;
+
+</description>
+<parameters>
+<parameter name="object">
+<parameter_description> a #GObject
+</parameter_description>
+</parameter>
+<parameter name="first_property_name">
+<parameter_description> name of the first property to get
+</parameter_description>
+</parameter>
+<parameter name="Varargs">
+<parameter_description> return location for the first property, followed optionally by more
+name/return location pairs, followed by %NULL
</parameter_description>
</parameter>
</parameters>
@@ -10711,7 +18221,7 @@ i.e. you must free it regardless if regular expression actually matched.
To retrieve all the non-overlapping matches of the pattern in
string you can use g_match_info_next().
-&amp;lt;informalexample&amp;gt;&amp;lt;programlisting&amp;gt;
+|[
static void
print_uppercase_words (const gchar *string)
{
@@ -10731,7 +18241,7 @@ g_match_info_next (match_info, NULL);
g_match_info_free (match_info);
g_regex_unref (regex);
}
-&amp;lt;/programlisting&amp;gt;&amp;lt;/informalexample&amp;gt;
+]|
</description>
@@ -10778,36 +18288,47 @@ Sets the seed for the random number generator #GRand to @seed.
<return></return>
</function>
-<function name="g_key_file_remove_comment">
+<function name="g_value_array_free">
<description>
-Removes a comment above @key from @group_name.
-@group_name. If @key is %NULL then @comment will
-be written above @group_name. If both @key
-and @group_name are NULL, then @comment will
-be written above the first group in the file.
+Free a #GValueArray including its contents.
+
+</description>
+<parameters>
+<parameter name="value_array">
+<parameter_description> #GValueArray to free
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_io_add_watch">
+<description>
+Adds the #GIOChannel into the default main loop context
+with the default priority.
-Since: 2.6
</description>
<parameters>
-<parameter name="key_file">
-<parameter_description> a #GKeyFile
+<parameter name="channel">
+<parameter_description> a #GIOChannel
</parameter_description>
</parameter>
-<parameter name="group_name">
-<parameter_description> a group name, or %NULL
+<parameter name="condition">
+<parameter_description> the condition to watch for
</parameter_description>
</parameter>
-<parameter name="key">
-<parameter_description> a key
+<parameter name="func">
+<parameter_description> the function to call when the condition is satisfied
</parameter_description>
</parameter>
-<parameter name="error">
-<parameter_description> return location for a #GError
+<parameter name="user_data">
+<parameter_description> user data to pass to @func
</parameter_description>
</parameter>
</parameters>
-<return></return>
+<return> the event source id
+</return>
</function>
<function name="g_unichar_istitle">
@@ -10831,6 +18352,24 @@ digraph is U+01F2 LATIN CAPITAL LETTTER D WITH SMALL LETTER Z.
</return>
</function>
+<function name="g_value_set_long">
+<description>
+Set the contents of a %G_TYPE_LONG #GValue to @v_long.
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of type %G_TYPE_LONG
+</parameter_description>
+</parameter>
+<parameter name="v_long">
+<parameter_description> long integer value to be set
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_main_loop_ref">
<description>
Increases the reference count on a #GMainLoop object by one.
@@ -10847,9 +18386,29 @@ Increases the reference count on a #GMainLoop object by one.
</return>
</function>
+<function name="g_object_get_data">
+<description>
+Gets a named field from the objects table of associations (see g_object_set_data()).
+
+
+</description>
+<parameters>
+<parameter name="object">
+<parameter_description> #GObject containing the associations
+</parameter_description>
+</parameter>
+<parameter name="key">
+<parameter_description> name of the key for that association
+</parameter_description>
+</parameter>
+</parameters>
+<return> the data if found, or %NULL if no such data exists.
+</return>
+</function>
+
<function name="g_key_file_get_keys">
<description>
-Return value: a newly-allocated %NULL-terminated array of
+Return value: a newly-allocated %NULL-terminated array of strings.
</description>
<parameters>
@@ -10870,8 +18429,8 @@ Return value: a newly-allocated %NULL-terminated array of
</parameter_description>
</parameter>
</parameters>
-<return> a newly-allocated %NULL-terminated array of
-strings. Use g_strfreev() to free it.
+<return> a newly-allocated %NULL-terminated array of strings.
+Use g_strfreev() to free it.
Since: 2.6
</return>
@@ -10912,16 +18471,57 @@ Since: 2.12
</return>
</function>
+<function name="g_sequence_move_range">
+<description>
+Inserts the (@begin, @end) range at the destination pointed to by ptr.
+The @begin and @end iters must point into the same sequence. It is
+allowed for @dest to point to a different sequence than the one pointed
+into by @begin and @end.
+
+If @dest is NULL, the range indicated by @begin and @end is
+removed from the sequence. If @dest iter points to a place within
+the (@begin, @end) range, the range does not move.
+
+Since: 2.14
+
+</description>
+<parameters>
+<parameter name="dest">
+<parameter_description> a #GSequenceIter
+</parameter_description>
+</parameter>
+<parameter name="begin">
+<parameter_description> a #GSequenceIter
+</parameter_description>
+</parameter>
+<parameter name="end">
+<parameter_description> a #GSequenceIter
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_open">
<description>
A wrapper for the POSIX open() function. The open() function is
-used to convert a pathname into a file descriptor. Note that on
-POSIX systems file descriptors are implemented by the operating
+used to convert a pathname into a file descriptor.
+
+On POSIX systems file descriptors are implemented by the operating
system. On Windows, it&apos;s the C library that implements open() and
-file descriptors. The actual Windows API for opening files is
-something different.
+file descriptors. The actual Win32 API for opening files is quite
+different, see MSDN documentation for CreateFile(). The Win32 API
+uses file handles, which are more randomish integers, not small
+integers like file descriptors.
+
+Because file descriptors are specific to the C library on Windows,
+the file descriptor returned by this function makes sense only to
+functions in the same C library. Thus if the GLib-using code uses a
+different C library than GLib does, the file descriptor returned by
+this function cannot be passed to C library functions like write()
+or read().
-See the C library manual for more details about open().
+See your C library manual for more details about open().
</description>
@@ -10946,6 +18546,20 @@ Since: 2.6
</return>
</function>
+<function name="g_node_unlink">
+<description>
+Unlinks a #GNode from a tree, resulting in two separate trees.
+
+</description>
+<parameters>
+<parameter name="node">
+<parameter_description> the #GNode to unlink, which becomes the root of a new tree
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_unichar_ismark">
<description>
Determines whether a character is a mark (non-spacing mark,
@@ -10990,6 +18604,39 @@ A different allocator can be set using g_mem_set_vtable().
</return>
</function>
+<function name="g_prefix_error">
+<description>
+Formats a string according to @format and
+prefix it to an existing error message. If
+@err is %NULL (ie: no error variable) then do
+nothing.
+
+If *@err is %NULL (ie: an error variable is
+present but there is no error condition) then
+also do nothing. Whether or not it makes
+sense to take advantage of this feature is up
+to you.
+
+Since: 2.16
+
+</description>
+<parameters>
+<parameter name="err">
+<parameter_description> a return location for a #GError, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="format">
+<parameter_description> printf()-style format string
+</parameter_description>
+</parameter>
+<parameter name="Varargs">
+<parameter_description> arguments to @format
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_bookmark_file_get_app_info">
<description>
Gets the registration informations of @app_name for the bookmark for
@@ -11044,6 +18691,28 @@ Since: 2.12
</return>
</function>
+<function name="g_node_child_index">
+<description>
+Gets the position of the first child of a #GNode
+which contains the given data.
+
+
+</description>
+<parameters>
+<parameter name="node">
+<parameter_description> a #GNode
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> the data to find
+</parameter_description>
+</parameter>
+</parameters>
+<return> the index of the child of @node which contains
+@data, or -1 if the data is not found
+</return>
+</function>
+
<function name="g_str_has_prefix">
<description>
Looks whether the string @str begins with @prefix.
@@ -11117,12 +18786,16 @@ into a %guint containing bit flags. This is used
within GDK and GTK+ to parse the debug options passed on the
command line or through environment variables.
+If @string is equal to &quot;all&quot;, all flags are set. If @string
+is equal to &quot;help&quot;, all the available keys in @keys are printed
+out to standard error.
+
</description>
<parameters>
<parameter name="string">
<parameter_description> a list of debug options separated by colons, spaces, or
-commas; or the string &quot;all&quot; to set all flags.
+commas, or %NULL.
</parameter_description>
</parameter>
<parameter name="keys">
@@ -11195,53 +18868,151 @@ is empty.
</return>
</function>
-<function name="g_utf16_to_utf8">
+<function name="g_object_new_valist">
<description>
-Convert a string from UTF-16 to UTF-8. The result will be
-terminated with a 0 byte.
+Creates a new instance of a #GObject subtype and sets its properties.
-Note that the input is expected to be already in native endianness,
-an initial byte-order-mark character is not handled specially.
-g_convert() can be used to convert a byte buffer of UTF-16 data of
-ambiguous endianess.
+Construction parameters (see #G_PARAM_CONSTRUCT, #G_PARAM_CONSTRUCT_ONLY)
+which are not explicitly specified are set to their default values.
</description>
<parameters>
-<parameter name="str">
-<parameter_description> a UTF-16 encoded string
+<parameter name="object_type">
+<parameter_description> the type id of the #GObject subtype to instantiate
</parameter_description>
</parameter>
-<parameter name="len">
-<parameter_description> the maximum length (number of &amp;lt;type&amp;gt;gunichar2&amp;lt;/type&amp;gt;) of @str to use.
-If @len &amp;lt; 0, then the string is terminated with a 0 character.
+<parameter name="first_property_name">
+<parameter_description> the name of the first property
</parameter_description>
</parameter>
-<parameter name="items_read">
-<parameter_description> location to store number of words read, or %NULL.
-If %NULL, then %G_CONVERT_ERROR_PARTIAL_INPUT will be
-returned in case @str contains a trailing partial
-character. If an error occurs then the index of the
-invalid input is stored here.
+<parameter name="var_args">
+<parameter_description> the value of the first property, followed optionally by more
+name/value pairs, followed by %NULL
</parameter_description>
</parameter>
-<parameter name="items_written">
-<parameter_description> location to store number of bytes written, or %NULL.
-The value stored here does not include the trailing
-0 byte.
+</parameters>
+<return> a new instance of @object_type
+</return>
+</function>
+
+<function name="g_list_remove_all">
+<description>
+Removes all list nodes with data equal to @data.
+Returns: new head of @list
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GList
</parameter_description>
</parameter>
-<parameter name="error">
-<parameter_description> location to store the error occuring, or %NULL to ignore
-errors. Any of the errors in #GConvertError other than
-%G_CONVERT_ERROR_NO_CONVERSION may occur.
+<parameter name="data">
+<parameter_description> data to remove
</parameter_description>
</parameter>
</parameters>
-<return> a pointer to a newly allocated UTF-8 string.
-This value must be freed with g_free(). If an
-error occurs, %NULL will be returned and
-@error set.
+<return> new head of @list
+</return>
+</function>
+
+<function name="g_slist_append">
+<description>
+Adds a new element on to the end of the list.
+
+&amp;lt;note&amp;gt;&amp;lt;para&amp;gt;
+The return value is the new start of the list, which may
+have changed, so make sure you store the new value.
+&amp;lt;/para&amp;gt;&amp;lt;/note&amp;gt;
+
+&amp;lt;note&amp;gt;&amp;lt;para&amp;gt;
+Note that g_slist_append() has to traverse the entire list
+to find the end, which is inefficient when adding multiple
+elements. A common idiom to avoid the inefficiency is to prepend
+the elements and reverse the list when all elements have been added.
+&amp;lt;/para&amp;gt;&amp;lt;/note&amp;gt;
+
+|[
+/&amp;ast; Notice that these are initialized to the empty list. &amp;ast;/
+GSList *list = NULL, *number_list = NULL;
+
+/&amp;ast; This is a list of strings. &amp;ast;/
+list = g_slist_append (list, &quot;first&quot;);
+list = g_slist_append (list, &quot;second&quot;);
+
+/&amp;ast; This is a list of integers. &amp;ast;/
+number_list = g_slist_append (number_list, GINT_TO_POINTER (27));
+number_list = g_slist_append (number_list, GINT_TO_POINTER (14));
+]|
+
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GSList
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> the data for the new element
+</parameter_description>
+</parameter>
+</parameters>
+<return> the new start of the #GSList
+</return>
+</function>
+
+<function name="g_value_unset">
+<description>
+Clears the current value in @value and &quot;unsets&quot; the type,
+this releases all resources associated with this GValue.
+An unset value is the same as an uninitialized (zero-filled)
+#GValue structure.
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> An initialized #GValue structure.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_param_value_defaults">
+<description>
+Checks whether @value contains the default value as specified in @pspec.
+
+
+</description>
+<parameters>
+<parameter name="pspec">
+<parameter_description> a valid #GParamSpec
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> a #GValue of correct type for @pspec
+</parameter_description>
+</parameter>
+</parameters>
+<return> whether @value contains the canonical default for this @pspec
+</return>
+</function>
+
+<function name="g_unichar_islower">
+<description>
+Determines whether a character is a lowercase letter.
+Given some UTF-8 text, obtain a character value with
+g_utf8_get_char().
+
+
+</description>
+<parameters>
+<parameter name="c">
+<parameter_description> a Unicode character
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE if @c is a lowercase letter
</return>
</function>
@@ -11263,18 +19034,74 @@ positional parameters, as specified in the Single Unix Specification.
</parameter_description>
</parameter>
</parameters>
-<return> the number of characters printed.
+<return> the number of bytes printed.
Since: 2.2
</return>
</function>
+<function name="g_closure_set_meta_marshal">
+<description>
+Sets the meta marshaller of @closure. A meta marshaller wraps
+@closure-&amp;gt;marshal and modifies the way it is called in some
+fashion. The most common use of this facility is for C callbacks.
+The same marshallers (generated by &amp;lt;link
+linkend=&quot;glib-genmarshal&quot;&amp;gt;glib-genmarshal&amp;lt;/link&amp;gt;) are used
+everywhere, but the way that we get the callback function
+differs. In most cases we want to use @closure-&amp;gt;callback, but in
+other cases we want to use some different technique to retrieve the
+callback function.
+
+For example, class closures for signals (see
+g_signal_type_cclosure_new()) retrieve the callback function from a
+fixed offset in the class structure. The meta marshaller retrieves
+the right callback and passes it to the marshaller as the
+@marshal_data argument.
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> a #GClosure
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> context-dependent data to pass to @meta_marshal
+</parameter_description>
+</parameter>
+<parameter name="meta_marshal">
+<parameter_description> a #GClosureMarshal function
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_value_dup_boxed">
+<description>
+Get the contents of a %G_TYPE_BOXED derived #GValue. Upon getting,
+the boxed value is duplicated and needs to be later freed with
+g_boxed_free(), e.g. like: g_boxed_free (G_VALUE_TYPE (@value),
+return_value);
+
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of %G_TYPE_BOXED derived type
+</parameter_description>
+</parameter>
+</parameters>
+<return> boxed contents of @value
+</return>
+</function>
+
<function name="g_bookmark_file_set_icon">
<description>
-Sets the icon for the bookmark for @uri. If @href is %NULL, unsets
-the currently set icon.
+Sets the icon for the bookmark for @uri. If @href is %NULL, unsets
+the currently set icon. @href can either be a full URL for the icon
+file or the icon name following the Icon Naming specification.
-If no bookmark for @uri is found it is created.
+If no bookmark for @uri is found one is created.
Since: 2.12
@@ -11334,6 +19161,90 @@ Since: 2.12
</return>
</function>
+<function name="g_cclosure_marshal_STRING__OBJECT_POINTER">
+<description>
+A marshaller for a #GCClosure with a callback of type
+&amp;lt;literal&amp;gt;gchar* (*callback) (gpointer instance, GObject *arg1, gpointer arg2, gpointer user_data)&amp;lt;/literal&amp;gt;.
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> a #GValue, which can store the returned string
+</parameter_description>
+</parameter>
+<parameter name="n_param_values">
+<parameter_description> 3
+</parameter_description>
+</parameter>
+<parameter name="param_values">
+<parameter_description> a #GValue array holding instance, arg1 and arg2
+</parameter_description>
+</parameter>
+<parameter name="invocation_hint">
+<parameter_description> the invocation hint given as the last argument
+to g_closure_invoke()
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when registering the marshaller
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_value_set_param_take_ownership">
+<description>
+This is an internal function introduced mainly for C marshallers.
+
+Deprecated: 2.4: Use g_value_take_param() instead.
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of type %G_TYPE_PARAM
+</parameter_description>
+</parameter>
+<parameter name="param">
+<parameter_description> the #GParamSpec to be set
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_hash_table_insert">
+<description>
+Inserts a new key and value into a #GHashTable.
+
+If the key already exists in the #GHashTable its current value is replaced
+with the new value. If you supplied a @value_destroy_func when creating the
+#GHashTable, the old value is freed using that function. If you supplied
+a @key_destroy_func when creating the #GHashTable, the passed key is freed
+using that function.
+
+</description>
+<parameters>
+<parameter name="hash_table">
+<parameter_description> a #GHashTable.
+</parameter_description>
+</parameter>
+<parameter name="key">
+<parameter_description> a key to insert.
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> the value to associate with the key.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_rand_new">
<description>
Creates a new random number generator initialized with a seed taken
@@ -11348,10 +19259,51 @@ the current time (as a fallback).
</return>
</function>
+<function name="g_hash_table_iter_remove">
+<description>
+Removes the key/value pair currently pointed to by the iterator
+from its associated #GHashTable. Can only be called after
+g_hash_table_iter_next() returned %TRUE, and cannot be called more
+than once for the same key/value pair.
+
+If the #GHashTable was created using g_hash_table_new_full(), the
+key and value are freed using the supplied destroy functions, otherwise
+you have to make sure that any dynamically allocated values are freed
+yourself.
+
+Since: 2.16
+
+</description>
+<parameters>
+<parameter name="iter">
+<parameter_description> an initialized #GHashTableIter.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_type_class_unref_uncached">
+<description>
+A variant of g_type_class_unref() for use in #GTypeClassCacheFunc
+implementations. It unreferences a class without consulting the chain
+of #GTypeClassCacheFunc&amp;lt;!-- --&amp;gt;s, avoiding the recursion which would occur
+otherwise.
+
+</description>
+<parameters>
+<parameter name="g_class">
+<parameter_description> The #GTypeClass structure to unreference.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_hash_table_find">
<description>
-Calls the given function for key/value pairs in the #GHashTable until
-@predicate returns %TRUE. The function is passed the key and value of
+Calls the given function for key/value pairs in the #GHashTable until
+@predicate returns %TRUE. The function is passed the key and value of
each pair, and the given @user_data parameter. The hash table may not
be modified while iterating over it (you can&apos;t add/remove items).
@@ -11388,6 +19340,55 @@ Since: 2.4
</return>
</function>
+<function name="g_param_spec_pool_new">
+<description>
+Creates a new #GParamSpecPool.
+
+If @type_prefixing is %TRUE, lookups in the newly created pool will
+allow to specify the owner as a colon-separated prefix of the
+property name, like &quot;GtkContainer:border-width&quot;. This feature is
+deprecated, so you should always set @type_prefixing to %FALSE.
+
+
+</description>
+<parameters>
+<parameter name="type_prefixing">
+<parameter_description> Whether the pool will support type-prefixed property names.
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly allocated #GParamSpecPool.
+</return>
+</function>
+
+<function name="g_object_new">
+<description>
+Creates a new instance of a #GObject subtype and sets its properties.
+
+Construction parameters (see #G_PARAM_CONSTRUCT, #G_PARAM_CONSTRUCT_ONLY)
+which are not explicitly specified are set to their default values.
+
+
+</description>
+<parameters>
+<parameter name="object_type">
+<parameter_description> the type id of the #GObject subtype to instantiate
+</parameter_description>
+</parameter>
+<parameter name="first_property_name">
+<parameter_description> the name of the first property
+</parameter_description>
+</parameter>
+<parameter name="Varargs">
+<parameter_description> the value of the first property, followed optionally by more
+name/value pairs, followed by %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new instance of @object_type
+</return>
+</function>
+
<function name="g_sequence_get">
<description>
Return value: the data that @iter points to
@@ -11405,6 +19406,39 @@ Since: 2.14
</return>
</function>
+<function name="g_closure_add_marshal_guards">
+<description>
+Adds a pair of notifiers which get invoked before and after the
+closure callback, respectively. This is typically used to protect
+the extra arguments for the duration of the callback. See
+g_object_watch_closure() for an example of marshal guards.
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> a #GClosure
+</parameter_description>
+</parameter>
+<parameter name="pre_marshal_data">
+<parameter_description> data to pass to @pre_marshal_notify
+</parameter_description>
+</parameter>
+<parameter name="pre_marshal_notify">
+<parameter_description> a function to call before the closure callback
+</parameter_description>
+</parameter>
+<parameter name="post_marshal_data">
+<parameter_description> data to pass to @post_marshal_notify
+</parameter_description>
+</parameter>
+<parameter name="post_marshal_notify">
+<parameter_description> a function to call after the closure callback
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_sequence_insert_sorted">
<description>
Inserts @data into @sequence using @func to determine the new position.
@@ -11441,6 +19475,89 @@ Since: 2.14
</return>
</function>
+<function name="g_value_get_uint">
+<description>
+Get the contents of a %G_TYPE_UINT #GValue.
+
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of type %G_TYPE_UINT
+</parameter_description>
+</parameter>
+</parameters>
+<return> unsigned integer contents of @value
+</return>
+</function>
+
+<function name="g_node_traverse">
+<description>
+Traverses a tree starting at the given root #GNode.
+It calls the given function for each node visited.
+The traversal can be halted at any point by returning %TRUE from @func.
+
+</description>
+<parameters>
+<parameter name="root">
+<parameter_description> the root #GNode of the tree to traverse
+</parameter_description>
+</parameter>
+<parameter name="order">
+<parameter_description> the order in which nodes are visited - %G_IN_ORDER,
+%G_PRE_ORDER, %G_POST_ORDER, or %G_LEVEL_ORDER.
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> which types of children are to be visited, one of
+%G_TRAVERSE_ALL, %G_TRAVERSE_LEAVES and %G_TRAVERSE_NON_LEAVES
+</parameter_description>
+</parameter>
+<parameter name="max_depth">
+<parameter_description> the maximum depth of the traversal. Nodes below this
+depth will not be visited. If max_depth is -1 all nodes in
+the tree are visited. If depth is 1, only the root is visited.
+If depth is 2, the root and its children are visited. And so on.
+</parameter_description>
+</parameter>
+<parameter name="func">
+<parameter_description> the function to call for each visited #GNode
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> user data to pass to the function
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_closure_invalidate">
+<description>
+Sets a flag on the closure to indicate that it&apos;s calling
+environment has become invalid, and thus causes any future
+invocations of g_closure_invoke() on this @closure to be
+ignored. Also, invalidation notifiers installed on the closure will
+be called at this point. Note that unless you are holding a
+reference to the closure yourself, the invalidation notifiers may
+unref the closure and cause it to be destroyed, so if you need to
+access the closure after calling g_closure_invalidate(), make sure
+that you&apos;ve previously called g_closure_ref().
+
+Note that g_closure_invalidate() will also be called when the
+reference count of a closure drops to zero (unless it has already
+been invalidated before).
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> GClosure to invalidate
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_get_user_cache_dir">
<description>
Return value: a string owned by GLib that must not be modified
@@ -11497,32 +19614,26 @@ Since: 2.14
</return>
</function>
-<function name="g_io_channel_new_file">
+<function name="g_test_rand_int_range">
<description>
-Open a file @filename as a #GIOChannel using mode @mode. This
-channel will be closed when the last reference to it is dropped,
-so there is no need to call g_io_channel_close() (though doing
-so will not cause problems, as long as no attempt is made to
-access the channel after it is closed).
+Get a reproducible random integer number out of a specified range,
+see g_test_rand_int() for details on test case random numbers.
</description>
<parameters>
-<parameter name="filename">
-<parameter_description> A string containing the name of a file.
-</parameter_description>
-</parameter>
-<parameter name="mode">
-<parameter_description> One of &quot;r&quot;, &quot;w&quot;, &quot;a&quot;, &quot;r+&quot;, &quot;w+&quot;, &quot;a+&quot;. These have
-the same meaning as in fopen().
+<parameter name="begin">
+<parameter_description> the minimum value returned by this function
</parameter_description>
</parameter>
-<parameter name="error">
-<parameter_description> A location to return an error of type %G_FILE_ERROR.
+<parameter name="end">
+<parameter_description> the smallest value not to be returned by this function
</parameter_description>
</parameter>
</parameters>
-<return> A #GIOChannel on success, %NULL on failure.
+<return> a number with @begin &amp;lt;= number &amp;lt; @end.
+
+Since: 2.16
</return>
</function>
@@ -11570,6 +19681,36 @@ when using pointers to integers values as keys in a #GHashTable.
</return>
</function>
+<function name="g_key_file_set_value">
+<description>
+Associates a new value with @key under @group_name.
+If @key cannot be found then it is created.
+If @group_name cannot be found then it is created.
+
+Since: 2.6
+
+</description>
+<parameters>
+<parameter name="key_file">
+<parameter_description> a #GKeyFile
+</parameter_description>
+</parameter>
+<parameter name="group_name">
+<parameter_description> a group name
+</parameter_description>
+</parameter>
+<parameter name="key">
+<parameter_description> a key
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> a string
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_main_loop_new">
<description>
Creates a new #GMainLoop structure.
@@ -11682,16 +19823,20 @@ the character in the string.
<function name="g_win32_get_package_installation_subdirectory">
<description>
+This function is deprecated. Use
+g_win32_get_package_installation_directory_of_module() and
+g_build_filename() instead.
+
Returns: a string containing the complete path to @subdir inside
</description>
<parameters>
<parameter name="package">
-<parameter_description> An identifier for a software package, in UTF-8, or %NULL
+<parameter_description> You should pass %NULL for this.
</parameter_description>
</parameter>
<parameter name="dll_name">
-<parameter_description> The name of a DLL that a package provides, in UTF-8, or %NULL
+<parameter_description> The name of a DLL that a package provides, in UTF-8, or %NULL.
</parameter_description>
</parameter>
<parameter name="subdir">
@@ -11701,8 +19846,13 @@ Returns: a string containing the complete path to @subdir inside
</parameters>
<return> a string containing the complete path to @subdir inside
the installation directory of @package. The returned string is in
-the GLib file name encoding, i.e. UTF-8 on Windows. The return
-value should be freed with g_free() when no longer needed.
+the GLib file name encoding, i.e. UTF-8. The return value should be
+freed with g_free() when no longer needed. If something goes wrong,
+%NULL is returned.
+
+@Deprecated:2.18: Pass the HMODULE of a DLL or EXE to
+g_win32_get_package_installation_directory_of_module() instead, and
+then construct a subdirectory pathname with g_build_filename().
</return>
</function>
@@ -11740,6 +19890,34 @@ Since: 2.14
</return>
</function>
+<function name="g_signal_stop_emission">
+<description>
+Stops a signal&apos;s current emission.
+
+This will prevent the default method from running, if the signal was
+%G_SIGNAL_RUN_LAST and you connected normally (i.e. without the &quot;after&quot;
+flag).
+
+Prints a warning if used on a signal which isn&apos;t being emitted.
+
+</description>
+<parameters>
+<parameter name="instance">
+<parameter_description> the object whose signal handlers you wish to stop.
+</parameter_description>
+</parameter>
+<parameter name="signal_id">
+<parameter_description> the signal identifier, as returned by g_signal_lookup().
+</parameter_description>
+</parameter>
+<parameter name="detail">
+<parameter_description> the detail which the signal was emitted with.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_key_file_get_string_list">
<description>
Return value: a %NULL-terminated string array or %NULL if the specified
@@ -11774,6 +19952,119 @@ Since: 2.6
</return>
</function>
+<function name="g_cclosure_marshal_VOID__UINT_POINTER">
+<description>
+A marshaller for a #GCClosure with a callback of type
+&amp;lt;literal&amp;gt;void (*callback) (gpointer instance, guint arg1, gpointer arg2, gpointer user_data)&amp;lt;/literal&amp;gt;.
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> ignored
+</parameter_description>
+</parameter>
+<parameter name="n_param_values">
+<parameter_description> 3
+</parameter_description>
+</parameter>
+<parameter name="param_values">
+<parameter_description> a #GValue array holding instance, arg1 and arg2
+</parameter_description>
+</parameter>
+<parameter name="invocation_hint">
+<parameter_description> the invocation hint given as the last argument
+to g_closure_invoke()
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when registering the marshaller
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_type_interface_add_prerequisite">
+<description>
+Adds @prerequisite_type to the list of prerequisites of @interface_type.
+This means that any type implementing @interface_type must also implement
+@prerequisite_type. Prerequisites can be thought of as an alternative to
+interface derivation (which GType doesn&apos;t support). An interface can have
+at most one instantiatable prerequisite type.
+
+</description>
+<parameters>
+<parameter name="interface_type">
+<parameter_description> #GType value of an interface type.
+</parameter_description>
+</parameter>
+<parameter name="prerequisite_type">
+<parameter_description> #GType value of an interface or instantiatable type.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_type_class_unref">
+<description>
+Decrements the reference count of the class structure being passed in.
+Once the last reference count of a class has been released, classes
+may be finalized by the type system, so further dereferencing of a
+class pointer after g_type_class_unref() are invalid.
+
+</description>
+<parameters>
+<parameter name="g_class">
+<parameter_description> The #GTypeClass structure to unreference.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_value_set_int">
+<description>
+Set the contents of a %G_TYPE_INT #GValue to @v_int.
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of type %G_TYPE_INT
+</parameter_description>
+</parameter>
+<parameter name="v_int">
+<parameter_description> integer value to be set
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_type_interface_peek">
+<description>
+Returns: The GTypeInterface structure of iface_type if implemented
+
+</description>
+<parameters>
+<parameter name="instance_class">
+<parameter_description> A #GTypeClass structure.
+</parameter_description>
+</parameter>
+<parameter name="iface_type">
+<parameter_description> An interface ID which this class conforms to.
+</parameter_description>
+</parameter>
+</parameters>
+<return> The GTypeInterface structure of iface_type if implemented
+by @instance_class, %NULL otherwise
+</return>
+</function>
+
<function name="g_regex_unref">
<description>
Decreases reference count of @regex by 1. When reference count drops
@@ -11791,23 +20082,36 @@ Since: 2.14
<return></return>
</function>
-<function name="g_tree_height">
+<function name="g_value_dup_string">
<description>
-Gets the height of a #GTree.
+Get a copy the contents of a %G_TYPE_STRING #GValue.
-If the #GTree contains no nodes, the height is 0.
-If the #GTree contains only one root node the height is 1.
-If the root node has children the height is 2, etc.
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of type %G_TYPE_STRING
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly allocated copy of the string content of @value
+</return>
+</function>
+
+<function name="g_async_queue_ref">
+<description>
+Increases the reference count of the asynchronous @queue by 1. You
+do not need to hold the lock to call this function.
</description>
<parameters>
-<parameter name="tree">
-<parameter_description> a #GTree.
+<parameter name="queue">
+<parameter_description> a #GAsyncQueue.
</parameter_description>
</parameter>
</parameters>
-<return> the height of the #GTree.
+<return> the @queue that was passed in (since 2.6)
</return>
</function>
@@ -11847,6 +20151,31 @@ domain. Free the returned vector with g_strfreev().
</return>
</function>
+<function name="g_list_insert_before">
+<description>
+Inserts a new element into the list before the given position.
+
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a pointer to a #GList
+</parameter_description>
+</parameter>
+<parameter name="sibling">
+<parameter_description> the list element before which the new element
+is inserted or %NULL to insert at the end of the list
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> the data for the new element
+</parameter_description>
+</parameter>
+</parameters>
+<return> the new start of the #GList
+</return>
+</function>
+
<function name="g_get_user_name">
<description>
Gets the user name of the current user. The encoding of the returned
@@ -11911,10 +20240,29 @@ Since: 2.14
</return>
</function>
+<function name="g_type_plugin_use">
+<description>
+Calls the @use_plugin function from the #GTypePluginClass of
+@plugin. There should be no need to use this function outside of
+the GObject type system itself.
+
+</description>
+<parameters>
+<parameter name="plugin">
+<parameter_description> a #GTypePlugin
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_main_loop_quit">
<description>
Stops a #GMainLoop from running. Any calls to g_main_loop_run()
-for the loop will return.
+for the loop will return.
+
+Note that sources that have already been dispatched when
+g_main_loop_quit() is called will still be executed.
</description>
<parameters>
@@ -11926,45 +20274,37 @@ for the loop will return.
<return></return>
</function>
-<function name="g_ascii_strtod">
+<function name="g_key_file_set_integer_list">
<description>
-Converts a string to a #gdouble value.
-This function behaves like the standard strtod() function
-does in the C locale. It does this without actually
-changing the current locale, since that would not be
-thread-safe.
-
-This function is typically used when reading configuration
-files or other non-user input that should be locale independent.
-To handle input from the user you should normally use the
-locale-sensitive system strtod() function.
-
-To convert from a #gdouble to a string in a locale-insensitive
-way, use g_ascii_dtostr().
-
-If the correct value would cause overflow, plus or minus %HUGE_VAL
-is returned (according to the sign of the value), and %ERANGE is
-stored in %errno. If the correct value would cause underflow,
-zero is returned and %ERANGE is stored in %errno.
-
-This function resets %errno before calling strtod() so that
-you can reliably detect overflow and underflow.
+Associates a list of integer values with @key under @group_name.
+If @key cannot be found then it is created.
+Since: 2.6
</description>
<parameters>
-<parameter name="nptr">
-<parameter_description> the string to convert to a numeric value.
+<parameter name="key_file">
+<parameter_description> a #GKeyFile
</parameter_description>
</parameter>
-<parameter name="endptr">
-<parameter_description> if non-%NULL, it returns the character after
-the last character used in the conversion.
+<parameter name="group_name">
+<parameter_description> a group name
+</parameter_description>
+</parameter>
+<parameter name="key">
+<parameter_description> a key
+</parameter_description>
+</parameter>
+<parameter name="list">
+<parameter_description> an array of integer values
+</parameter_description>
+</parameter>
+<parameter name="length">
+<parameter_description> number of integer values in @list
</parameter_description>
</parameter>
</parameters>
-<return> the #gdouble value.
-</return>
+<return></return>
</function>
<function name="g_queue_peek_nth_link">
@@ -12046,26 +20386,37 @@ Since: 2.14
</return>
</function>
-<function name="g_iconv_close">
+<function name="g_signal_get_invocation_hint">
<description>
-Same as the standard UNIX routine iconv_close(), but
-may be implemented via libiconv on UNIX flavors that lack
-a native implementation. Should be called to clean up
-the conversion descriptor from g_iconv_open() when
-you are done converting things.
+Returns: the invocation hint of the innermost signal emission.
-GLib provides g_convert() and g_locale_to_utf8() which are likely
-more convenient than the raw iconv wrappers.
+</description>
+<parameters>
+<parameter name="instance">
+<parameter_description> the instance to query
+</parameter_description>
+</parameter>
+</parameters>
+<return> the invocation hint of the innermost signal emission.
+</return>
+</function>
+
+<function name="g_hash_table_ref">
+<description>
+Atomically increments the reference count of @hash_table by one.
+This function is MT-safe and may be called from any thread.
</description>
<parameters>
-<parameter name="converter">
-<parameter_description> a conversion descriptor from g_iconv_open()
+<parameter name="hash_table">
+<parameter_description> a valid #GHashTable.
</parameter_description>
</parameter>
</parameters>
-<return> -1 on error, 0 on success
+<return> the passed in #GHashTable.
+
+Since: 2.10
</return>
</function>
@@ -12087,67 +20438,94 @@ lock.
<return></return>
</function>
-<function name="g_utf8_casefold">
+<function name="g_signal_parse_name">
<description>
-Converts a string into a form that is independent of case. The
-result will not correspond to any particular case, but can be
-compared for equality or ordered with the results of calling
-g_utf8_casefold() on other strings.
-
-Note that calling g_utf8_casefold() followed by g_utf8_collate() is
-only an approximation to the correct linguistic case insensitive
-ordering, though it is a fairly good one. Getting this exactly
-right would require a more sophisticated collation function that
-takes case sensitivity into account. GLib does not currently
-provide such a function.
+Internal function to parse a signal name into its @signal_id
+and @detail quark.
</description>
<parameters>
-<parameter name="str">
-<parameter_description> a UTF-8 encoded string
+<parameter name="detailed_signal">
+<parameter_description> a string of the form &quot;signal-name::detail&quot;.
</parameter_description>
</parameter>
-<parameter name="len">
-<parameter_description> length of @str, in bytes, or -1 if @str is nul-terminated.
+<parameter name="itype">
+<parameter_description> The interface/instance type that introduced &quot;signal-name&quot;.
+</parameter_description>
+</parameter>
+<parameter name="signal_id_p">
+<parameter_description> Location to store the signal id.
+</parameter_description>
+</parameter>
+<parameter name="detail_p">
+<parameter_description> Location to store the detail quark.
+</parameter_description>
+</parameter>
+<parameter name="force_detail_quark">
+<parameter_description> %TRUE forces creation of a #GQuark for the detail.
</parameter_description>
</parameter>
</parameters>
-<return> a newly allocated string, that is a
-case independent form of @str.
+<return> Whether the signal name could successfully be parsed and @signal_id_p and @detail_p contain valid return values.
</return>
</function>
-<function name="g_ascii_strcasecmp">
+<function name="g_filename_display_basename">
<description>
-Compare two strings, ignoring the case of ASCII characters.
+Return value: a newly allocated string containing
-Unlike the BSD strcasecmp() function, this only recognizes standard
-ASCII letters and ignores the locale, treating all non-ASCII
-bytes as if they are not letters.
+</description>
+<parameters>
+<parameter name="filename">
+<parameter_description> an absolute pathname in the GLib file name encoding
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly allocated string containing
+a rendition of the basename of the filename in valid UTF-8
-This function should be used only on strings that are known to be
-in encodings where the bytes corresponding to ASCII letters always
-represent themselves. This includes UTF-8 and the ISO-8859-*
-charsets, but not for instance double-byte encodings like the
-Windows Codepage 932, where the trailing bytes of double-byte
-characters include all ASCII letters. If you compare two CP932
-strings using this function, you will get false matches.
+Since: 2.6
+</return>
+</function>
+
+<function name="g_type_children">
+<description>
+Return a newly allocated and 0-terminated array of type IDs, listing the
+child types of @type. The return value has to be g_free()ed after use.
</description>
<parameters>
-<parameter name="s1">
-<parameter_description> string to compare with @s2.
+<parameter name="type">
+<parameter_description> The parent type.
</parameter_description>
</parameter>
-<parameter name="s2">
-<parameter_description> string to compare with @s1.
+<parameter name="n_children">
+<parameter_description> Optional #guint pointer to contain the number of child types.
</parameter_description>
</parameter>
</parameters>
-<return> 0 if the strings match, a negative value if @s1 &amp;lt; @s2,
-or a positive value if @s1 &amp;gt; @s2.
+<return> Newly allocated and 0-terminated array of child types.
+</return>
+</function>
+
+<function name="g_value_type_compatible">
+<description>
+Returns: %TRUE if g_value_copy() is possible with @src_type and @dest_type.
+
+</description>
+<parameters>
+<parameter name="src_type">
+<parameter_description> source type to be copied.
+</parameter_description>
+</parameter>
+<parameter name="dest_type">
+<parameter_description> destination type for copying.
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE if g_value_copy() is possible with @src_type and @dest_type.
</return>
</function>
@@ -12171,6 +20549,80 @@ instead.
</return>
</function>
+<function name="g_param_spec_int">
+<description>
+Creates a new #GParamSpecInt instance specifying a %G_TYPE_INT property.
+
+See g_param_spec_internal() for details on property names.
+
+
+</description>
+<parameters>
+<parameter name="name">
+<parameter_description> canonical name of the property specified
+</parameter_description>
+</parameter>
+<parameter name="nick">
+<parameter_description> nick name for the property specified
+</parameter_description>
+</parameter>
+<parameter name="blurb">
+<parameter_description> description of the property specified
+</parameter_description>
+</parameter>
+<parameter name="minimum">
+<parameter_description> minimum value for the property specified
+</parameter_description>
+</parameter>
+<parameter name="maximum">
+<parameter_description> maximum value for the property specified
+</parameter_description>
+</parameter>
+<parameter name="default_value">
+<parameter_description> default value for the property specified
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> flags for the property specified
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly created parameter specification
+</return>
+</function>
+
+<function name="g_closure_invoke">
+<description>
+Invokes the closure, i.e. executes the callback represented by the @closure.
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> a #GClosure
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> a #GValue to store the return value. May be %NULL if the
+callback of @closure doesn&apos;t return a value.
+</parameter_description>
+</parameter>
+<parameter name="n_param_values">
+<parameter_description> the length of the @param_values array
+</parameter_description>
+</parameter>
+<parameter name="param_values">
+<parameter_description> an array of #GValue&amp;lt;!-- --&amp;gt;s holding the arguments on
+which to invoke the callback of @closure
+</parameter_description>
+</parameter>
+<parameter name="invocation_hint">
+<parameter_description> a context-dependent invocation hint
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_unichar_isgraph">
<description>
Determines whether a character is printable and not a space
@@ -12191,6 +20643,67 @@ g_utf8_get_char().
</return>
</function>
+<function name="g_list_sort_with_data">
+<description>
+Like g_list_sort(), but the comparison function accepts
+a user data argument.
+
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GList
+</parameter_description>
+</parameter>
+<parameter name="compare_func">
+<parameter_description> comparison function
+</parameter_description>
+</parameter>
+<parameter name="user_data">
+<parameter_description> user data to pass to comparison function
+</parameter_description>
+</parameter>
+</parameters>
+<return> the new head of @list
+</return>
+</function>
+
+<function name="g_cclosure_marshal_VOID__ULONG">
+<description>
+A marshaller for a #GCClosure with a callback of type
+&amp;lt;literal&amp;gt;void (*callback) (gpointer instance, gulong arg1, gpointer user_data)&amp;lt;/literal&amp;gt;.
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> ignored
+</parameter_description>
+</parameter>
+<parameter name="n_param_values">
+<parameter_description> 2
+</parameter_description>
+</parameter>
+<parameter name="param_values">
+<parameter_description> a #GValue array holding the instance and the #gulong parameter
+</parameter_description>
+</parameter>
+<parameter name="invocation_hint">
+<parameter_description> the invocation hint given as the last argument
+to g_closure_invoke()
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when registering the marshaller
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_main_context_default">
<description>
Return value: the default main context.
@@ -12244,24 +20757,20 @@ If @c is not an ASCII lower case letter,
</return>
</function>
-<function name="g_shell_quote">
+<function name="g_node_copy">
<description>
-Quotes a string so that the shell (/bin/sh) will interpret the
-quoted string to mean @unquoted_string. If you pass a filename to
-the shell, for example, you should first quote it with this
-function. The return value must be freed with g_free(). The
-quoting style used is undefined (single or double quotes may be
-used).
+Recursively copies a #GNode (but does not deep-copy the data inside the
+nodes, see g_node_copy_deep() if you need that).
</description>
<parameters>
-<parameter name="unquoted_string">
-<parameter_description> a literal string
+<parameter name="node">
+<parameter_description> a #GNode
</parameter_description>
</parameter>
</parameters>
-<return> quoted string
+<return> a new #GNode containing the same data pointers
</return>
</function>
@@ -12300,6 +20809,117 @@ of the returned string is system defined. On Windows, it is always UTF-8.
</return>
</function>
+<function name="g_cclosure_marshal_VOID__INT">
+<description>
+A marshaller for a #GCClosure with a callback of type
+&amp;lt;literal&amp;gt;void (*callback) (gpointer instance, gint arg1, gpointer user_data)&amp;lt;/literal&amp;gt;.
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> ignored
+</parameter_description>
+</parameter>
+<parameter name="n_param_values">
+<parameter_description> 2
+</parameter_description>
+</parameter>
+<parameter name="param_values">
+<parameter_description> a #GValue array holding the instance and the #gint parameter
+</parameter_description>
+</parameter>
+<parameter name="invocation_hint">
+<parameter_description> the invocation hint given as the last argument
+to g_closure_invoke()
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when registering the marshaller
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_object_steal_qdata">
+<description>
+This function gets back user data pointers stored via
+g_object_set_qdata() and removes the @data from object
+without invoking it&apos;s destroy() function (if any was
+set).
+Usually, calling this function is only required to update
+user data pointers with a destroy notifier, for example:
+|[
+void
+object_add_to_user_list (GObject *object,
+const gchar *new_string)
+{
+// the quark, naming the object data
+GQuark quark_string_list = g_quark_from_static_string (&quot;my-string-list&quot;);
+// retrive the old string list
+GList *list = g_object_steal_qdata (object, quark_string_list);
+
+// prepend new string
+list = g_list_prepend (list, g_strdup (new_string));
+// this changed &apos;list&apos;, so we need to set it again
+g_object_set_qdata_full (object, quark_string_list, list, free_string_list);
+}
+static void
+free_string_list (gpointer data)
+{
+GList *node, *list = data;
+
+for (node = list; node; node = node-&amp;gt;next)
+g_free (node-&amp;gt;data);
+g_list_free (list);
+}
+]|
+Using g_object_get_qdata() in the above example, instead of
+g_object_steal_qdata() would have left the destroy function set,
+and thus the partial string list would have been freed upon
+g_object_set_qdata_full().
+
+
+</description>
+<parameters>
+<parameter name="object">
+<parameter_description> The GObject to get a stored user data pointer from
+</parameter_description>
+</parameter>
+<parameter name="quark">
+<parameter_description> A #GQuark, naming the user data pointer
+</parameter_description>
+</parameter>
+</parameters>
+<return> The user data pointer set, or %NULL
+</return>
+</function>
+
+<function name="g_value_type_transformable">
+<description>
+Check whether g_value_transform() is able to transform values
+of type @src_type into values of type @dest_type.
+
+
+</description>
+<parameters>
+<parameter name="src_type">
+<parameter_description> Source type.
+</parameter_description>
+</parameter>
+<parameter name="dest_type">
+<parameter_description> Target type.
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE if the transformation is possible, %FALSE otherwise.
+</return>
+</function>
+
<function name="g_source_remove_by_funcs_user_data">
<description>
Removes a source from the default main loop context given the
@@ -12322,6 +20942,103 @@ same source functions and user data, only one will be destroyed.
</return>
</function>
+<function name="g_object_connect">
+<description>
+A convenience function to connect multiple signals at once.
+
+The signal specs expected by this function have the form
+&quot;modifier::signal_name&quot;, where modifier can be one of the following:
+&amp;lt;variablelist&amp;gt;
+&amp;lt;varlistentry&amp;gt;
+&amp;lt;term&amp;gt;signal&amp;lt;/term&amp;gt;
+&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;
+equivalent to &amp;lt;literal&amp;gt;g_signal_connect_data (..., NULL, 0)&amp;lt;/literal&amp;gt;
+&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
+&amp;lt;/varlistentry&amp;gt;
+&amp;lt;varlistentry&amp;gt;
+&amp;lt;term&amp;gt;object_signal&amp;lt;/term&amp;gt;
+&amp;lt;term&amp;gt;object-signal&amp;lt;/term&amp;gt;
+&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;
+equivalent to &amp;lt;literal&amp;gt;g_signal_connect_object (..., 0)&amp;lt;/literal&amp;gt;
+&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
+&amp;lt;/varlistentry&amp;gt;
+&amp;lt;varlistentry&amp;gt;
+&amp;lt;term&amp;gt;swapped_signal&amp;lt;/term&amp;gt;
+&amp;lt;term&amp;gt;swapped-signal&amp;lt;/term&amp;gt;
+&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;
+equivalent to &amp;lt;literal&amp;gt;g_signal_connect_data (..., NULL, G_CONNECT_SWAPPED)&amp;lt;/literal&amp;gt;
+&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
+&amp;lt;/varlistentry&amp;gt;
+&amp;lt;varlistentry&amp;gt;
+&amp;lt;term&amp;gt;swapped_object_signal&amp;lt;/term&amp;gt;
+&amp;lt;term&amp;gt;swapped-object-signal&amp;lt;/term&amp;gt;
+&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;
+equivalent to &amp;lt;literal&amp;gt;g_signal_connect_object (..., G_CONNECT_SWAPPED)&amp;lt;/literal&amp;gt;
+&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
+&amp;lt;/varlistentry&amp;gt;
+&amp;lt;varlistentry&amp;gt;
+&amp;lt;term&amp;gt;signal_after&amp;lt;/term&amp;gt;
+&amp;lt;term&amp;gt;signal-after&amp;lt;/term&amp;gt;
+&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;
+equivalent to &amp;lt;literal&amp;gt;g_signal_connect_data (..., NULL, G_CONNECT_AFTER)&amp;lt;/literal&amp;gt;
+&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
+&amp;lt;/varlistentry&amp;gt;
+&amp;lt;varlistentry&amp;gt;
+&amp;lt;term&amp;gt;object_signal_after&amp;lt;/term&amp;gt;
+&amp;lt;term&amp;gt;object-signal-after&amp;lt;/term&amp;gt;
+&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;
+equivalent to &amp;lt;literal&amp;gt;g_signal_connect_object (..., G_CONNECT_AFTER)&amp;lt;/literal&amp;gt;
+&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
+&amp;lt;/varlistentry&amp;gt;
+&amp;lt;varlistentry&amp;gt;
+&amp;lt;term&amp;gt;swapped_signal_after&amp;lt;/term&amp;gt;
+&amp;lt;term&amp;gt;swapped-signal-after&amp;lt;/term&amp;gt;
+&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;
+equivalent to &amp;lt;literal&amp;gt;g_signal_connect_data (..., NULL, G_CONNECT_SWAPPED | G_CONNECT_AFTER)&amp;lt;/literal&amp;gt;
+&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
+&amp;lt;/varlistentry&amp;gt;
+&amp;lt;varlistentry&amp;gt;
+&amp;lt;term&amp;gt;swapped_object_signal_after&amp;lt;/term&amp;gt;
+&amp;lt;term&amp;gt;swapped-object-signal-after&amp;lt;/term&amp;gt;
+&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;
+equivalent to &amp;lt;literal&amp;gt;g_signal_connect_object (..., G_CONNECT_SWAPPED | G_CONNECT_AFTER)&amp;lt;/literal&amp;gt;
+&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
+&amp;lt;/varlistentry&amp;gt;
+&amp;lt;/variablelist&amp;gt;
+
+|[
+menu-&amp;gt;toplevel = g_object_connect (g_object_new (GTK_TYPE_WINDOW,
+&quot;type&quot;, GTK_WINDOW_POPUP,
+&quot;child&quot;, menu,
+NULL),
+&quot;signal::event&quot;, gtk_menu_window_event, menu,
+&quot;signal::size_request&quot;, gtk_menu_window_size_request, menu,
+&quot;signal::destroy&quot;, gtk_widget_destroyed, &amp;amp;menu-&amp;gt;toplevel,
+NULL);
+]|
+
+
+</description>
+<parameters>
+<parameter name="object">
+<parameter_description> a #GObject
+</parameter_description>
+</parameter>
+<parameter name="signal_spec">
+<parameter_description> the spec for the first signal
+</parameter_description>
+</parameter>
+<parameter name="Varargs">
+<parameter_description> #GCallback for the first signal, followed by data for the
+first signal, followed optionally by more signal
+spec/callback/data triples, followed by %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> @object
+</return>
+</function>
+
<function name="g_string_set_size">
<description>
Sets the length of a #GString. If the length is less than
@@ -12382,6 +21099,52 @@ Since: 2.12
</return>
</function>
+<function name="g_locale_to_utf8">
+<description>
+Converts a string which is in the encoding used for strings by
+the C runtime (usually the same as that used by the operating
+system) in the &amp;lt;link linkend=&quot;setlocale&quot;&amp;gt;current locale&amp;lt;/link&amp;gt; into a
+UTF-8 string.
+
+
+</description>
+<parameters>
+<parameter name="opsysstring">
+<parameter_description> a string in the encoding of the current locale. On Windows
+this means the system codepage.
+</parameter_description>
+</parameter>
+<parameter name="len">
+<parameter_description> the length of the string, or -1 if the string is
+nul-terminated&amp;lt;footnoteref linkend=&quot;nul-unsafe&quot;/&amp;gt;.
+</parameter_description>
+</parameter>
+<parameter name="bytes_read">
+<parameter_description> location to store the number of bytes in the
+input string that were successfully converted, or %NULL.
+Even if the conversion was successful, this may be
+less than @len if there were partial characters
+at the end of the input. If the error
+#G_CONVERT_ERROR_ILLEGAL_SEQUENCE occurs, the value
+stored will the byte offset after the last valid
+input sequence.
+</parameter_description>
+</parameter>
+<parameter name="bytes_written">
+<parameter_description> the number of bytes stored in the output buffer (not
+including the terminating nul).
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> location to store the error occuring, or %NULL to ignore
+errors. Any of the errors in #GConvertError may occur.
+</parameter_description>
+</parameter>
+</parameters>
+<return> The converted string, or %NULL on an error.
+</return>
+</function>
+
<function name="g_bookmark_file_set_app_info">
<description>
Sets the meta-data of application @name inside the list of
@@ -12452,6 +21215,90 @@ Since: 2.12
</return>
</function>
+<function name="g_signal_handlers_disconnect_matched">
+<description>
+Disconnects all handlers on an instance that match a certain
+selection criteria. The criteria mask is passed as an OR-ed
+combination of #GSignalMatchType flags, and the criteria values are
+passed as arguments. Passing at least one of the
+%G_SIGNAL_MATCH_CLOSURE, %G_SIGNAL_MATCH_FUNC or
+%G_SIGNAL_MATCH_DATA match flags is required for successful
+matches. If no handlers were found, 0 is returned, the number of
+disconnected handlers otherwise.
+
+
+</description>
+<parameters>
+<parameter name="instance">
+<parameter_description> The instance to remove handlers from.
+</parameter_description>
+</parameter>
+<parameter name="mask">
+<parameter_description> Mask indicating which of @signal_id, @detail, @closure, @func
+and/or @data the handlers have to match.
+</parameter_description>
+</parameter>
+<parameter name="signal_id">
+<parameter_description> Signal the handlers have to be connected to.
+</parameter_description>
+</parameter>
+<parameter name="detail">
+<parameter_description> Signal detail the handlers have to be connected to.
+</parameter_description>
+</parameter>
+<parameter name="closure">
+<parameter_description> The closure the handlers will invoke.
+</parameter_description>
+</parameter>
+<parameter name="func">
+<parameter_description> The C closure callback of the handlers (useless for non-C closures).
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> The closure data of the handlers&apos; closures.
+</parameter_description>
+</parameter>
+</parameters>
+<return> The number of handlers that matched.
+</return>
+</function>
+
+<function name="g_cclosure_marshal_VOID__LONG">
+<description>
+A marshaller for a #GCClosure with a callback of type
+&amp;lt;literal&amp;gt;void (*callback) (gpointer instance, glong arg1, gpointer user_data)&amp;lt;/literal&amp;gt;.
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> ignored
+</parameter_description>
+</parameter>
+<parameter name="n_param_values">
+<parameter_description> 2
+</parameter_description>
+</parameter>
+<parameter name="param_values">
+<parameter_description> a #GValue array holding the instance and the #glong parameter
+</parameter_description>
+</parameter>
+<parameter name="invocation_hint">
+<parameter_description> the invocation hint given as the last argument
+to g_closure_invoke()
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when registering the marshaller
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_strsplit_set">
<description>
Splits @string into a number of tokens not containing any of the characters
@@ -12525,6 +21372,9 @@ Finds a #GSource given a pair of context and ID.
<description>
This function outputs @key_file as a string.
+Note that this function never reports an error,
+so it is safe to pass %NULL as @error.
+
</description>
<parameters>
@@ -12590,11 +21440,52 @@ prior to polling.
</return>
</function>
+<function name="g_cclosure_new_swap">
+<description>
+Creates a new closure which invokes @callback_func with @user_data as
+the first parameter.
+
+
+</description>
+<parameters>
+<parameter name="callback_func">
+<parameter_description> the function to invoke
+</parameter_description>
+</parameter>
+<parameter name="user_data">
+<parameter_description> user data to pass to @callback_func
+</parameter_description>
+</parameter>
+<parameter name="destroy_data">
+<parameter_description> destroy notify to be called when @user_data is no longer used
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GCClosure
+</return>
+</function>
+
+<function name="g_value_get_long">
+<description>
+Get the contents of a %G_TYPE_LONG #GValue.
+
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of type %G_TYPE_LONG
+</parameter_description>
+</parameter>
+</parameters>
+<return> long integer contents of @value
+</return>
+</function>
+
<function name="g_key_file_load_from_dirs">
<description>
This function looks for a key file named @file in the paths
specified in @search_dirs, loads the file into @key_file and
-Return value: %TRUE if a key file could be loaded, %FALSE othewise
+Return value: %TRUE if a key file could be loaded, %FALSE otherwise
</description>
<parameters>
@@ -12624,12 +21515,72 @@ of the file, or %NULL
</parameter_description>
</parameter>
</parameters>
-<return> %TRUE if a key file could be loaded, %FALSE othewise
+<return> %TRUE if a key file could be loaded, %FALSE otherwise
Since: 2.14
</return>
</function>
+<function name="g_node_prepend">
+<description>
+Inserts a #GNode as the first child of the given parent.
+
+
+</description>
+<parameters>
+<parameter name="parent">
+<parameter_description> the #GNode to place the new #GNode under
+</parameter_description>
+</parameter>
+<parameter name="node">
+<parameter_description> the #GNode to insert
+</parameter_description>
+</parameter>
+</parameters>
+<return> the inserted #GNode
+</return>
+</function>
+
+<function name="g_type_add_class_cache_func">
+<description>
+Adds a #GTypeClassCacheFunc to be called before the reference count of a
+class goes from one to zero. This can be used to prevent premature class
+destruction. All installed #GTypeClassCacheFunc functions will be chained
+until one of them returns %TRUE. The functions have to check the class id
+passed in to figure whether they actually want to cache the class of this
+type, since all classes are routed through the same #GTypeClassCacheFunc
+chain.
+
+</description>
+<parameters>
+<parameter name="cache_data">
+<parameter_description> data to be passed to @cache_func
+</parameter_description>
+</parameter>
+<parameter name="cache_func">
+<parameter_description> a #GTypeClassCacheFunc
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_node_last_child">
+<description>
+Gets the last child of a #GNode.
+
+
+</description>
+<parameters>
+<parameter name="node">
+<parameter_description> a #GNode (must not be %NULL)
+</parameter_description>
+</parameter>
+</parameters>
+<return> the last child of @node, or %NULL if @node has no children
+</return>
+</function>
+
<function name="g_hash_table_get_values">
<description>
Retrieves every value inside @hash_table. The returned data is
@@ -12652,6 +21603,55 @@ Since: 2.14
</return>
</function>
+<function name="g_object_interface_find_property">
+<description>
+Find the #GParamSpec with the given name for an
+interface. Generally, the interface vtable passed in as @g_iface
+will be the default vtable from g_type_default_interface_ref(), or,
+if you know the interface has already been loaded,
+g_type_default_interface_peek().
+
+Since: 2.4
+
+
+</description>
+<parameters>
+<parameter name="g_iface">
+<parameter_description> any interface vtable for the interface, or the default
+vtable for the interface
+</parameter_description>
+</parameter>
+<parameter name="property_name">
+<parameter_description> name of a property to lookup.
+</parameter_description>
+</parameter>
+</parameters>
+<return> the #GParamSpec for the property of the interface with the
+name @property_name, or %NULL if no such property exists.
+</return>
+</function>
+
+<function name="g_type_remove_interface_check">
+<description>
+Removes an interface check function added with
+g_type_add_interface_check().
+
+Since: 2.4
+
+</description>
+<parameters>
+<parameter name="check_data">
+<parameter_description> callback data passed to g_type_add_interface_check()
+</parameter_description>
+</parameter>
+<parameter name="check_func">
+<parameter_description> callback function passed to g_type_add_interface_check()
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_option_group_set_translate_func">
<description>
Sets the function which is used to translate user-visible
@@ -12686,24 +21686,46 @@ Since: 2.6
<return></return>
</function>
-<function name="g_strnfill">
+<function name="g_async_queue_timed_pop_unlocked">
<description>
-Creates a new string @length bytes long filled with @fill_char.
-The returned string should be freed when no longer needed.
+Pops data from the @queue. If no data is received before @end_time,
+%NULL is returned. This function must be called while holding the
+@queue&apos;s lock.
+
+To easily calculate @end_time a combination of g_get_current_time()
+and g_time_val_add() can be used.
</description>
<parameters>
-<parameter name="length">
-<parameter_description> the length of the new string
+<parameter name="queue">
+<parameter_description> a #GAsyncQueue.
</parameter_description>
</parameter>
-<parameter name="fill_char">
-<parameter_description> the byte to fill the string with
+<parameter name="end_time">
+<parameter_description> a #GTimeVal, determining the final time.
</parameter_description>
</parameter>
</parameters>
-<return> a newly-allocated string filled the @fill_char
+<return> data from the queue or %NULL, when no data is
+received before @end_time.
+</return>
+</function>
+
+<function name="g_node_new">
+<description>
+Creates a new #GNode containing the given data.
+Used to create the first node in a tree.
+
+
+</description>
+<parameters>
+<parameter name="data">
+<parameter_description> the data of the new node
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GNode
</return>
</function>
@@ -12736,6 +21758,51 @@ Since: 2.6
<return></return>
</function>
+<function name="g_filename_to_utf8">
+<description>
+Converts a string which is in the encoding used by GLib for
+filenames into a UTF-8 string. Note that on Windows GLib uses UTF-8
+for filenames; on other platforms, this function indirectly depends on
+the &amp;lt;link linkend=&quot;setlocale&quot;&amp;gt;current locale&amp;lt;/link&amp;gt;.
+
+
+</description>
+<parameters>
+<parameter name="opsysstring">
+<parameter_description> a string in the encoding for filenames
+</parameter_description>
+</parameter>
+<parameter name="len">
+<parameter_description> the length of the string, or -1 if the string is
+nul-terminated&amp;lt;footnoteref linkend=&quot;nul-unsafe&quot;/&amp;gt;.
+</parameter_description>
+</parameter>
+<parameter name="bytes_read">
+<parameter_description> location to store the number of bytes in the
+input string that were successfully converted, or %NULL.
+Even if the conversion was successful, this may be
+less than @len if there were partial characters
+at the end of the input. If the error
+#G_CONVERT_ERROR_ILLEGAL_SEQUENCE occurs, the value
+stored will the byte offset after the last valid
+input sequence.
+</parameter_description>
+</parameter>
+<parameter name="bytes_written">
+<parameter_description> the number of bytes stored in the output buffer (not
+including the terminating nul).
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> location to store the error occuring, or %NULL to ignore
+errors. Any of the errors in #GConvertError may occur.
+</parameter_description>
+</parameter>
+</parameters>
+<return> The converted string, or %NULL on an error.
+</return>
+</function>
+
<function name="g_get_codeset">
<description>
Get the codeset for the current locale.
@@ -12749,6 +21816,33 @@ of the codeset. This string must be freed with g_free().
</return>
</function>
+<function name="g_slist_insert_sorted">
+<description>
+Inserts a new element into the list, using the given
+comparison function to determine its position.
+
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GSList
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> the data for the new element
+</parameter_description>
+</parameter>
+<parameter name="func">
+<parameter_description> the function to compare elements in the list.
+It should return a number &amp;gt; 0 if the first parameter
+comes after the second parameter in the sort order.
+</parameter_description>
+</parameter>
+</parameters>
+<return> the new start of the #GSList
+</return>
+</function>
+
<function name="g_vasprintf">
<description>
An implementation of the GNU vasprintf() function which supports
@@ -12774,7 +21868,7 @@ you allocate in advance.
</parameter_description>
</parameter>
</parameters>
-<return> the number of characters printed.
+<return> the number of bytes printed.
Since: 2.4
</return>
@@ -12811,6 +21905,9 @@ Calls the given function for each key/value pair in the #GHashTable.
If the function returns %TRUE, then the key/value pair is removed from the
#GHashTable, but no key or value destroy functions are called.
+See #GHashTableIter for an alternative way to loop over the
+key/value pairs in the hash table.
+
</description>
<parameters>
@@ -12834,10 +21931,9 @@ If the function returns %TRUE, then the key/value pair is removed from the
<function name="g_key_file_get_comment">
<description>
Retrieves a comment above @key from @group_name.
-@group_name. If @key is %NULL then @comment will
-be read from above @group_name. If both @key
-and @group_name are NULL, then @comment will
-be read from above the first group in the file.
+If @key is %NULL then @comment will be read from above
+@group_name. If both @key and @group_name are %NULL, then
+@comment will be read from above the first group in the file.
</description>
@@ -12906,12 +22002,23 @@ processed first.
<description>
A wrapper for the POSIX creat() function. The creat() function is
used to convert a pathname into a file descriptor, creating a file
-if necessar. Note that on POSIX systems file descriptors are
-implemented by the operating system. On Windows, it&apos;s the C library
-that implements creat() and file descriptors. The actual Windows
-API for opening files is something different.
+if necessary.
+
+On POSIX systems file descriptors are implemented by the operating
+system. On Windows, it&apos;s the C library that implements creat() and
+file descriptors. The actual Windows API for opening files is
+different, see MSDN documentation for CreateFile(). The Win32 API
+uses file handles, which are more randomish integers, not small
+integers like file descriptors.
-See the C library manual for more details about creat().
+Because file descriptors are specific to the C library on Windows,
+the file descriptor returned by this function makes sense only to
+functions in the same C library. Thus if the GLib-using code uses a
+different C library than GLib does, the file descriptor returned by
+this function cannot be passed to C library functions like write()
+or read().
+
+See your C library manual for more details about creat().
</description>
@@ -12956,7 +22063,7 @@ g_free().
<function name="g_utf16_to_ucs4">
<description>
Convert a string from UTF-16 to UCS-4. The result will be
-terminated with a 0 character.
+nul-terminated.
</description>
@@ -12967,7 +22074,7 @@ terminated with a 0 character.
</parameter>
<parameter name="len">
<parameter_description> the maximum length (number of &amp;lt;type&amp;gt;gunichar2&amp;lt;/type&amp;gt;) of @str to use.
-If @len &amp;lt; 0, then the string is terminated with a 0 character.
+If @len &amp;lt; 0, then the string is nul-terminated.
</parameter_description>
</parameter>
<parameter name="items_read">
@@ -12998,29 +22105,120 @@ error occurs, %NULL will be returned and
</return>
</function>
-<function name="g_tree_insert">
+<function name="g_param_spec_long">
<description>
-Inserts a key/value pair into a #GTree. If the given key already exists
-in the #GTree its corresponding value is set to the new value. If you
-supplied a value_destroy_func when creating the #GTree, the old value is
-freed using that function. If you supplied a @key_destroy_func when
-creating the #GTree, the passed key is freed using that function.
+Creates a new #GParamSpecLong instance specifying a %G_TYPE_LONG property.
+
+See g_param_spec_internal() for details on property names.
-The tree is automatically &apos;balanced&apos; as new key/value pairs are added,
-so that the distance from the root to every leaf is as small as possible.
</description>
<parameters>
-<parameter name="tree">
-<parameter_description> a #GTree.
+<parameter name="name">
+<parameter_description> canonical name of the property specified
</parameter_description>
</parameter>
-<parameter name="key">
-<parameter_description> the key to insert.
+<parameter name="nick">
+<parameter_description> nick name for the property specified
</parameter_description>
</parameter>
-<parameter name="value">
-<parameter_description> the value corresponding to the key.
+<parameter name="blurb">
+<parameter_description> description of the property specified
+</parameter_description>
+</parameter>
+<parameter name="minimum">
+<parameter_description> minimum value for the property specified
+</parameter_description>
+</parameter>
+<parameter name="maximum">
+<parameter_description> maximum value for the property specified
+</parameter_description>
+</parameter>
+<parameter name="default_value">
+<parameter_description> default value for the property specified
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> flags for the property specified
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly created parameter specification
+</return>
+</function>
+
+<function name="g_hash_table_iter_steal">
+<description>
+Removes the key/value pair currently pointed to by the iterator
+from its associated #GHashTable, without calling the key and value
+destroy functions. Can only be called after
+g_hash_table_iter_next() returned %TRUE, and cannot be called more
+than once for the same key/value pair.
+
+Since: 2.16
+
+</description>
+<parameters>
+<parameter name="iter">
+<parameter_description> an initialized #GHashTableIter.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_test_trap_has_passed">
+<description>
+Check the result of the last g_test_trap_fork() call.
+
+
+</description>
+<parameters>
+</parameters>
+<return> %TRUE if the last forked child terminated successfully.
+
+Since: 2.16
+</return>
+</function>
+
+<function name="g_utf8_get_char_validated">
+<description>
+Convert a sequence of bytes encoded as UTF-8 to a Unicode character.
+This function checks for incomplete characters, for invalid characters
+such as characters that are out of the range of Unicode, and for
+overlong encodings of valid characters.
+
+
+</description>
+<parameters>
+<parameter name="p">
+<parameter_description> a pointer to Unicode character encoded as UTF-8
+</parameter_description>
+</parameter>
+<parameter name="max_len">
+<parameter_description> the maximum number of bytes to read, or -1, for no maximum or
+if @p is nul-terminated
+</parameter_description>
+</parameter>
+</parameters>
+<return> the resulting character. If @p points to a partial
+sequence at the end of a string that could begin a valid
+character (or if @max_len is zero), returns (gunichar)-2;
+otherwise, if @p does not point to a valid UTF-8 encoded
+Unicode character, returns (gunichar)-1.
+</return>
+</function>
+
+<function name="g_checksum_reset">
+<description>
+Resets the state of the @checksum back to it&apos;s initial state.
+
+Since: 2.18
+
+</description>
+<parameters>
+<parameter name="checksum">
+<parameter_description> the #GChecksum to reset
</parameter_description>
</parameter>
</parameters>
@@ -13094,23 +22292,76 @@ descriptor to watch.
<return></return>
</function>
-<function name="g_hash_table_unref">
+<function name="g_value_get_object">
<description>
-Atomically decrements the reference count of @hash_table by one.
-If the reference count drops to 0, all keys and values will be
-destroyed, and all memory allocated by the hash table is released.
-This function is MT-safe and may be called from any thread.
+Get the contents of a %G_TYPE_OBJECT derived #GValue.
-Since: 2.10
</description>
<parameters>
-<parameter name="hash_table">
-<parameter_description> a valid #GHashTable.
+<parameter name="value">
+<parameter_description> a valid #GValue of %G_TYPE_OBJECT derived type
</parameter_description>
</parameter>
</parameters>
-<return></return>
+<return> object contents of @value
+</return>
+</function>
+
+<function name="g_closure_new_simple">
+<description>
+Allocates a struct of the given size and initializes the initial
+part as a #GClosure. This function is mainly useful when
+implementing new types of closures.
+
+|[
+typedef struct _MyClosure MyClosure;
+struct _MyClosure
+{
+GClosure closure;
+// extra data goes here
+};
+
+static void
+my_closure_finalize (gpointer notify_data,
+GClosure *closure)
+{
+MyClosure *my_closure = (MyClosure *)closure;
+
+// free extra data here
+}
+
+MyClosure *my_closure_new (gpointer data)
+{
+GClosure *closure;
+MyClosure *my_closure;
+
+closure = g_closure_new_simple (sizeof (MyClosure), data);
+my_closure = (MyClosure *) closure;
+
+// initialize extra data here
+
+g_closure_add_finalize_notifier (closure, notify_data,
+my_closure_finalize);
+return my_closure;
+}
+]|
+
+
+</description>
+<parameters>
+<parameter name="sizeof_closure">
+<parameter_description> the size of the structure to allocate, must be at least
+&amp;lt;literal&amp;gt;sizeof (GClosure)&amp;lt;/literal&amp;gt;
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> data to store in the @data field of the newly allocated #GClosure
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly allocated #GClosure
+</return>
</function>
<function name="g_rand_new_with_seed">
@@ -13163,6 +22414,23 @@ is empty.
</return>
</function>
+<function name="g_list_reverse">
+<description>
+Reverses a #GList.
+It simply switches the next and prev pointers of each element.
+
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GList
+</parameter_description>
+</parameter>
+</parameters>
+<return> the start of the reversed #GList
+</return>
+</function>
+
<function name="g_async_queue_push_sorted">
<description>
Inserts @data into @queue using @func to determine the new
@@ -13204,28 +22472,39 @@ element should be lower in the @queue than the second element.
<return></return>
</function>
-<function name="g_unichar_xdigit_value">
+<function name="g_uri_unescape_string">
<description>
-Determines the numeric value of a character as a hexidecimal
-digit.
+Unescapes a whole escaped string.
+
+If any of the characters in @illegal_characters or the character zero appears
+as an escaped character in @escaped_string then that is an error and %NULL
+will be returned. This is useful it you want to avoid for instance having a
+slash being expanded in an escaped path element, which might confuse pathname
+handling.
</description>
<parameters>
-<parameter name="c">
-<parameter_description> a Unicode character
+<parameter name="escaped_string">
+<parameter_description> an escaped string to be unescaped.
+</parameter_description>
+</parameter>
+<parameter name="illegal_characters">
+<parameter_description> an optional string of illegal characters not to be allowed.
</parameter_description>
</parameter>
</parameters>
-<return> If @c is a hex digit (according to
-g_unichar_isxdigit()), its numeric value. Otherwise, -1.
+<return> an unescaped version of @escaped_string. The returned string
+should be freed when no longer needed.
+
+Since: 2.16
</return>
</function>
<function name="g_string_append_vprintf">
<description>
Appends a formatted string onto the end of a #GString.
-This function is is similar to g_string_append_printf()
+This function is similar to g_string_append_printf()
except that the arguments to the format string are passed
as a va_list.
@@ -13262,6 +22541,26 @@ Since: 2.6
</return>
</function>
+<function name="g_test_suite_add_suite">
+<description>
+Adds @nestedsuite to @suite.
+
+Since: 2.16
+
+</description>
+<parameters>
+<parameter name="suite">
+<parameter_description> a #GTestSuite
+</parameter_description>
+</parameter>
+<parameter name="nestedsuite">
+<parameter_description> another #GTestSuite
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_path_get_dirname">
<description>
Gets the directory components of a file name. If the file name has no
@@ -13280,22 +22579,32 @@ freed when no longer needed.
</return>
</function>
-<function name="g_unichar_type">
+<function name="g_value_get_double">
<description>
-Classifies a Unicode character by type.
+Get the contents of a %G_TYPE_DOUBLE #GValue.
</description>
<parameters>
-<parameter name="c">
-<parameter_description> a Unicode character
+<parameter name="value">
+<parameter_description> a valid #GValue of type %G_TYPE_DOUBLE
</parameter_description>
</parameter>
</parameters>
-<return> the type of the character.
+<return> double contents of @value
</return>
</function>
+<function name="g_cclosure_marshal_BOOL__FLAGS">
+<description>
+Another name for g_cclosure_marshal_BOOLEAN__FLAGS().
+
+</description>
+<parameters>
+</parameters>
+<return></return>
+</function>
+
<function name="g_filename_from_uri">
<description>
Converts an escaped ASCII-encoded URI to a local filename in the
@@ -13325,20 +22634,28 @@ filename, or %NULL on an error.
</return>
</function>
-<function name="g_option_context_get_help_enabled">
+<function name="g_async_queue_timed_pop">
<description>
-Returns: %TRUE if automatic help generation is turned on.
+Pops data from the @queue. If no data is received before @end_time,
+%NULL is returned.
+
+To easily calculate @end_time a combination of g_get_current_time()
+and g_time_val_add() can be used.
+
</description>
<parameters>
-<parameter name="context">
-<parameter_description> a #GOptionContext
+<parameter name="queue">
+<parameter_description> a #GAsyncQueue.
+</parameter_description>
+</parameter>
+<parameter name="end_time">
+<parameter_description> a #GTimeVal, determining the final time.
</parameter_description>
</parameter>
</parameters>
-<return> %TRUE if automatic help generation is turned on.
-
-Since: 2.6
+<return> data from the queue or %NULL, when no data is
+received before @end_time.
</return>
</function>
@@ -13368,6 +22685,37 @@ after the list of options, or %NULL
<return></return>
</function>
+<function name="g_object_set_qdata_full">
+<description>
+This function works like g_object_set_qdata(), but in addition,
+a void (*destroy) (gpointer) function may be specified which is
+called with @data as argument when the @object is finalized, or
+the data is being overwritten by a call to g_object_set_qdata()
+with the same @quark.
+
+</description>
+<parameters>
+<parameter name="object">
+<parameter_description> The GObject to set store a user data pointer
+</parameter_description>
+</parameter>
+<parameter name="quark">
+<parameter_description> A #GQuark, naming the user data pointer
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> An opaque user data pointer
+</parameter_description>
+</parameter>
+<parameter name="destroy">
+<parameter_description> Function to invoke with @data as argument, when @data
+needs to be freed
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_set_prgname">
<description>
Sets the name of the program. This name should &amp;lt;emphasis&amp;gt;not&amp;lt;/emphasis&amp;gt;
@@ -13384,6 +22732,25 @@ thread-safety reasons this function can only be called once.
<return></return>
</function>
+<function name="g_type_from_name">
+<description>
+Lookup the type ID from a given type name, returning 0 if no type
+has been registered under this name (this is the preferred method
+to find out by name whether a specific type has been registered
+yet).
+
+
+</description>
+<parameters>
+<parameter name="name">
+<parameter_description> Type name to lookup.
+</parameter_description>
+</parameter>
+</parameters>
+<return> Corresponding type ID or 0.
+</return>
+</function>
+
<function name="g_source_get_context">
<description>
Gets the #GMainContext with which the source is associated.
@@ -13421,6 +22788,53 @@ or has no lowercase equivalent @c is returned unchanged.
</return>
</function>
+<function name="g_object_newv">
+<description>
+Creates a new instance of a #GObject subtype and sets its properties.
+
+Construction parameters (see #G_PARAM_CONSTRUCT, #G_PARAM_CONSTRUCT_ONLY)
+which are not explicitly specified are set to their default values.
+
+
+</description>
+<parameters>
+<parameter name="object_type">
+<parameter_description> the type id of the #GObject subtype to instantiate
+</parameter_description>
+</parameter>
+<parameter name="n_parameters">
+<parameter_description> the length of the @parameters array
+</parameter_description>
+</parameter>
+<parameter name="parameters">
+<parameter_description> an array of #GParameter
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new instance of @object_type
+</return>
+</function>
+
+<function name="g_type_interface_get_plugin">
+<description>
+Returns: the #GTypePlugin for the dynamic interface @interface_type
+
+</description>
+<parameters>
+<parameter name="instance_type">
+<parameter_description> the #GType value of an instantiatable type.
+</parameter_description>
+</parameter>
+<parameter name="interface_type">
+<parameter_description> the #GType value of an interface type.
+</parameter_description>
+</parameter>
+</parameters>
+<return> the #GTypePlugin for the dynamic interface @interface_type
+of @instance_type.
+</return>
+</function>
+
<function name="g_spawn_async_with_pipes">
<description>
Executes a child program asynchronously (your program will not
@@ -13435,7 +22849,7 @@ will only be searched if you pass the %G_SPAWN_SEARCH_PATH flag.
On Windows, note that all the string or string vector arguments to
this function and the other g_spawn*() functions are in UTF-8, the
GLib file name encoding. Unicode characters that are not part of
-the system codepage passed in argument vectors will be correctly
+the system codepage passed in these arguments will be correctly
available in the spawned program only if it uses wide character API
to retrieve its command line. For C programs built with Microsoft&apos;s
tools it is enough to make the program have a wmain() instead of
@@ -13467,6 +22881,10 @@ g_spawn_async_with_pipes() will do quoting and escaping on argument
vector elements that need it before calling the C runtime
spawn() function.
+The returned @child_pid on Windows is a handle to the child
+process, not its identifier. Process handles and process
+identifiers are different concepts on Windows.
+
@envp is a %NULL-terminated array of strings, where each string
has the form &amp;lt;literal&amp;gt;KEY=VALUE&amp;lt;/literal&amp;gt;. This will become
the child&apos;s environment. If @envp is %NULL, the child inherits its
@@ -13512,12 +22930,12 @@ pipes, closing file descriptors, etc.) but before calling
exec(). That is, @child_setup is called just
before calling exec() in the child. Obviously
actions taken in this function will only affect the child, not the
-parent. On Windows, there is no separate fork() and exec()
-functionality. Child processes are created and run with
-a single API call, CreateProcess(). @child_setup is
-called in the parent process just before creating the child
-process. You should carefully consider what you do in @child_setup
-if you intend your software to be portable to Windows.
+parent.
+
+On Windows, there is no separate fork() and exec()
+functionality. Child processes are created and run with a single
+API call, CreateProcess(). There is no sensible thing @child_setup
+could be used for on Windows so it is ignored and not called.
If non-%NULL, @child_pid will on Unix be filled with the child&apos;s
process ID. You can use the process ID to send signals to the
@@ -13559,13 +22977,13 @@ If an error occurs, @child_pid, @standard_input, @standard_output,
and @standard_error will not be filled with valid values.
If @child_pid is not %NULL and an error does not occur then the returned
-pid must be closed using g_spawn_close_pid().
+process reference must be closed using g_spawn_close_pid().
&amp;lt;note&amp;gt;&amp;lt;para&amp;gt;
If you are writing a GTK+ application, and the program you
are spawning is a graphical application, too, then you may
want to use gdk_spawn_on_screen_with_pipes() instead to ensure that
-the spawned program opens its windows no the right screen.
+the spawned program opens its windows on the right screen.
&amp;lt;/para&amp;gt;&amp;lt;/note&amp;gt;
@@ -13721,11 +23139,16 @@ Since: 2.4
<description>
Executes a child synchronously (waits for the child to exit before returning).
All output from the child is stored in @standard_output and @standard_error,
-if those parameters are non-%NULL. If @exit_status is non-%NULL, the exit
-status of the child is stored there as it would be returned by
-waitpid(); standard UNIX macros such as WIFEXITED() and WEXITSTATUS()
-must be used to evaluate the exit status. If an error occurs, no data is
-returned in @standard_output, @standard_error, or @exit_status.
+if those parameters are non-%NULL. Note that you must set the
+%G_SPAWN_STDOUT_TO_DEV_NULL and %G_SPAWN_STDERR_TO_DEV_NULL flags when
+passing %NULL for @standard_output and @standard_error.
+If @exit_status is non-%NULL, the exit status of the child is stored
+there as it would be returned by waitpid(); standard UNIX macros such
+as WIFEXITED() and WEXITSTATUS() must be used to evaluate the exit status.
+Note that this function call waitpid() even if @exit_status is %NULL, and
+does not accept the %G_SPAWN_DO_NOT_REAP_CHILD flag.
+If an error occurs, no data is returned in @standard_output,
+@standard_error, or @exit_status.
This function calls g_spawn_async_with_pipes() internally; see that
function for full details on the other parameters and details on
@@ -13747,7 +23170,7 @@ how these functions work on Windows.
</parameter_description>
</parameter>
<parameter name="flags">
-<parameter_description> flags from #GSpawnFlags
+<parameter_description> flags from #GSpawnFlags
</parameter_description>
</parameter>
<parameter name="child_setup">
@@ -13759,19 +23182,19 @@ how these functions work on Windows.
</parameter_description>
</parameter>
<parameter name="standard_output">
-<parameter_description> return location for child output
+<parameter_description> return location for child output, or %NULL
</parameter_description>
</parameter>
<parameter name="standard_error">
-<parameter_description> return location for child error messages
+<parameter_description> return location for child error messages, or %NULL
</parameter_description>
</parameter>
<parameter name="exit_status">
-<parameter_description> return location for child exit status, as returned by waitpid()
+<parameter_description> return location for child exit status, as returned by waitpid(), or %NULL
</parameter_description>
</parameter>
<parameter name="error">
-<parameter_description> return location for error
+<parameter_description> return location for error, or %NULL
</parameter_description>
</parameter>
</parameters>
@@ -13800,31 +23223,175 @@ Since: 2.4
</return>
</function>
-<function name="g_utf8_strrchr">
+<function name="g_object_set_qdata">
<description>
-Find the rightmost occurrence of the given Unicode character
-in a UTF-8 encoded string, while limiting the search to @len bytes.
-If @len is -1, allow unbounded search.
+This sets an opaque, named pointer on an object.
+The name is specified through a #GQuark (retrived e.g. via
+g_quark_from_static_string()), and the pointer
+can be gotten back from the @object with g_object_get_qdata()
+until the @object is finalized.
+Setting a previously set user data pointer, overrides (frees)
+the old pointer set, using #NULL as pointer essentially
+removes the data stored.
+
+</description>
+<parameters>
+<parameter name="object">
+<parameter_description> The GObject to set store a user data pointer
+</parameter_description>
+</parameter>
+<parameter name="quark">
+<parameter_description> A #GQuark, naming the user data pointer
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> An opaque user data pointer
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_type_add_interface_check">
+<description>
+Adds a function to be called after an interface vtable is
+initialized for any class (i.e. after the @interface_init member of
+#GInterfaceInfo has been called).
+This function is useful when you want to check an invariant that
+depends on the interfaces of a class. For instance, the
+implementation of #GObject uses this facility to check that an
+object implements all of the properties that are defined on its
+interfaces.
+
+Since: 2.4
</description>
<parameters>
-<parameter name="p">
-<parameter_description> a nul-terminated UTF-8 encoded string
+<parameter name="check_data">
+<parameter_description> data to pass to @check_func
+</parameter_description>
+</parameter>
+<parameter name="check_func">
+<parameter_description> function to be called after each interface
+is initialized.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_date_set_time_t">
+<description>
+Sets the value of a date to the date corresponding to a time
+specified as a time_t. The time to date conversion is done using
+the user&apos;s current timezone.
+
+To set the value of a date to the current day, you could write:
+|[
+g_date_set_time_t (date, time (NULL));
+]|
+
+Since: 2.10
+
+</description>
+<parameters>
+<parameter name="date">
+<parameter_description> a #GDate
+</parameter_description>
+</parameter>
+<parameter name="timet">
+<parameter_description> &amp;lt;type&amp;gt;time_t&amp;lt;/type&amp;gt; value to set
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_test_message">
+<description>
+Add a message to the test report.
+
+Since: 2.16
+
+</description>
+<parameters>
+<parameter name="format">
+<parameter_description> the format string
+</parameter_description>
+</parameter>
+<parameter name="Varargs">
+<parameter_description> printf-like arguments to @format
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_value_array_copy">
+<description>
+Construct an exact copy of a #GValueArray by duplicating all its
+contents.
+
+
+</description>
+<parameters>
+<parameter name="value_array">
+<parameter_description> #GValueArray to copy
+</parameter_description>
+</parameter>
+</parameters>
+<return> Newly allocated copy of #GValueArray
+</return>
+</function>
+
+<function name="g_utf16_to_utf8">
+<description>
+Convert a string from UTF-16 to UTF-8. The result will be
+terminated with a 0 byte.
+
+Note that the input is expected to be already in native endianness,
+an initial byte-order-mark character is not handled specially.
+g_convert() can be used to convert a byte buffer of UTF-16 data of
+ambiguous endianess.
+
+
+</description>
+<parameters>
+<parameter name="str">
+<parameter_description> a UTF-16 encoded string
</parameter_description>
</parameter>
<parameter name="len">
-<parameter_description> the maximum length of @p
+<parameter_description> the maximum length (number of &amp;lt;type&amp;gt;gunichar2&amp;lt;/type&amp;gt;) of @str to use.
+If @len &amp;lt; 0, then the string is nul-terminated.
</parameter_description>
</parameter>
-<parameter name="c">
-<parameter_description> a Unicode character
+<parameter name="items_read">
+<parameter_description> location to store number of words read, or %NULL.
+If %NULL, then %G_CONVERT_ERROR_PARTIAL_INPUT will be
+returned in case @str contains a trailing partial
+character. If an error occurs then the index of the
+invalid input is stored here.
+</parameter_description>
+</parameter>
+<parameter name="items_written">
+<parameter_description> location to store number of bytes written, or %NULL.
+The value stored here does not include the trailing
+0 byte.
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> location to store the error occuring, or %NULL to ignore
+errors. Any of the errors in #GConvertError other than
+%G_CONVERT_ERROR_NO_CONVERSION may occur.
</parameter_description>
</parameter>
</parameters>
-<return> %NULL if the string does not contain the character,
-otherwise, a pointer to the start of the rightmost occurrence of the
-character in the string.
+<return> a pointer to a newly allocated UTF-8 string.
+This value must be freed with g_free(). If an
+error occurs, %NULL will be returned and
+@error set.
</return>
</function>
@@ -13870,6 +23437,105 @@ calls g_error_free() on *@err and sets *@err to %NULL.
<return></return>
</function>
+<function name="g_value_register_transform_func">
+<description>
+Registers a value transformation function for use in g_value_transform().
+A previously registered transformation function for @src_type and @dest_type
+will be replaced.
+
+</description>
+<parameters>
+<parameter name="src_type">
+<parameter_description> Source type.
+</parameter_description>
+</parameter>
+<parameter name="dest_type">
+<parameter_description> Target type.
+</parameter_description>
+</parameter>
+<parameter name="transform_func">
+<parameter_description> a function which transforms values of type @src_type
+into value of type @dest_type
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_object_ref">
+<description>
+Increases the reference count of @object.
+
+
+</description>
+<parameters>
+<parameter name="object">
+<parameter_description> a #GObject
+</parameter_description>
+</parameter>
+</parameters>
+<return> the same @object
+</return>
+</function>
+
+<function name="g_checksum_copy">
+<description>
+Copies a #GChecksum. If @checksum has been closed, by calling
+g_checksum_get_string() or g_checksum_get_digest(), the copied
+checksum will be closed as well.
+
+
+</description>
+<parameters>
+<parameter name="checksum">
+<parameter_description> the #GChecksum to copy
+</parameter_description>
+</parameter>
+</parameters>
+<return> the copy of the passed #GChecksum. Use g_checksum_free()
+when finished using it.
+
+Since: 2.16
+</return>
+</function>
+
+<function name="g_type_register_fundamental">
+<description>
+Registers @type_id as the predefined identifier and @type_name as the
+name of a fundamental type. The type system uses the information
+contained in the #GTypeInfo structure pointed to by @info and the
+#GTypeFundamentalInfo structure pointed to by @finfo to manage the
+type and its instances. The value of @flags determines additional
+characteristics of the fundamental type.
+
+
+</description>
+<parameters>
+<parameter name="type_id">
+<parameter_description> A predefined type identifier.
+</parameter_description>
+</parameter>
+<parameter name="type_name">
+<parameter_description> 0-terminated string used as the name of the new type.
+</parameter_description>
+</parameter>
+<parameter name="info">
+<parameter_description> The #GTypeInfo structure for this type.
+</parameter_description>
+</parameter>
+<parameter name="finfo">
+<parameter_description> The #GTypeFundamentalInfo structure for this type.
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> Bitwise combination of #GTypeFlags values.
+</parameter_description>
+</parameter>
+</parameters>
+<return> The predefined type identifier.
+</return>
+</function>
+
<function name="g_sequence_get_end_iter">
<description>
Return value: the end iterator for @seq
@@ -13887,6 +23553,37 @@ Since: 2.14
</return>
</function>
+<function name="g_string_append_uri_escaped">
+<description>
+Appends @unescaped to @string, escaped any characters that
+are reserved in URIs using URI-style escape sequences.
+
+
+</description>
+<parameters>
+<parameter name="string">
+<parameter_description> a #GString
+</parameter_description>
+</parameter>
+<parameter name="unescaped">
+<parameter_description> a string
+</parameter_description>
+</parameter>
+<parameter name="reserved_chars_allowed">
+<parameter_description> a string of reserved characters allowed to be used
+</parameter_description>
+</parameter>
+<parameter name="allow_utf8">
+<parameter_description> set %TRUE if the escaped string may include UTF8 characters
+</parameter_description>
+</parameter>
+</parameters>
+<return> @string
+
+Since: 2.16
+</return>
+</function>
+
<function name="g_ascii_tolower">
<description>
Convert a character to ASCII lower case.
@@ -13913,6 +23610,91 @@ If @c is not an ASCII upper case letter,
</return>
</function>
+<function name="g_markup_collect_attributes">
+<description>
+Collects the attributes of the element from the
+data passed to the #GMarkupParser start_element
+function, dealing with common error conditions
+and supporting boolean values.
+
+This utility function is not required to write
+a parser but can save a lot of typing.
+
+The @element_name, @attribute_names,
+@attribute_values and @error parameters passed
+to the start_element callback should be passed
+unmodified to this function.
+
+Following these arguments is a list of
+&quot;supported&quot; attributes to collect. It is an
+error to specify multiple attributes with the
+same name. If any attribute not in the list
+appears in the @attribute_names array then an
+unknown attribute error will result.
+
+The #GMarkupCollectType field allows specifying
+the type of collection to perform and if a
+given attribute must appear or is optional.
+
+The attribute name is simply the name of the
+attribute to collect.
+
+The pointer should be of the appropriate type
+(see the descriptions under
+#GMarkupCollectType) and may be %NULL in case a
+particular attribute is to be allowed but
+ignored.
+
+This function deals with issuing errors for missing attributes
+(of type %G_MARKUP_ERROR_MISSING_ATTRIBUTE), unknown attributes
+(of type %G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE) and duplicate
+attributes (of type %G_MARKUP_ERROR_INVALID_CONTENT) as well
+as parse errors for boolean-valued attributes (again of type
+%G_MARKUP_ERROR_INVALID_CONTENT). In all of these cases %FALSE
+will be returned and @error will be set as appropriate.
+
+
+</description>
+<parameters>
+<parameter name="element_name">
+<parameter_description> the current tag name
+</parameter_description>
+</parameter>
+<parameter name="attribute_names">
+<parameter_description> the attribute names
+</parameter_description>
+</parameter>
+<parameter name="attribute_values">
+<parameter_description> the attribute values
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a pointer to a #GError or %NULL
+</parameter_description>
+</parameter>
+<parameter name="first_type">
+<parameter_description> the #GMarkupCollectType of the
+first attribute
+</parameter_description>
+</parameter>
+<parameter name="first_attr">
+<parameter_description> the name of the first attribute
+</parameter_description>
+</parameter>
+<parameter name="Varargs">
+<parameter_description> a pointer to the storage location of the
+first attribute (or %NULL), followed by
+more types names and pointers, ending
+with %G_MARKUP_COLLECT_INVALID.
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE if successful
+
+Since: 2.16
+</return>
+</function>
+
<function name="g_queue_get_length">
<description>
Return value: The number of items in @queue.
@@ -13930,11 +23712,40 @@ Since: 2.4
</return>
</function>
+<function name="g_param_spec_pool_lookup">
+<description>
+Looks up a #GParamSpec in the pool.
+
+
+</description>
+<parameters>
+<parameter name="pool">
+<parameter_description> a #GParamSpecPool
+</parameter_description>
+</parameter>
+<parameter name="param_name">
+<parameter_description> the name to look for
+</parameter_description>
+</parameter>
+<parameter name="owner_type">
+<parameter_description> the owner to look for
+</parameter_description>
+</parameter>
+<parameter name="walk_ancestors">
+<parameter_description> If %TRUE, also try to find a #GParamSpec with @param_name
+owned by an ancestor of @owner_type.
+</parameter_description>
+</parameter>
+</parameters>
+<return> The found #GParamSpec, or %NULL if no matching #GParamSpec was found.
+</return>
+</function>
+
<function name="g_io_channel_get_line_term">
<description>
This returns the string that #GIOChannel uses to determine
where in the file a line break occurs. A value of %NULL
-indicates auto detection.
+indicates autodetection.
</description>
@@ -13953,12 +23764,83 @@ is owned by GLib and must not be freed.
</return>
</function>
+<function name="g_cclosure_marshal_VOID__BOOLEAN">
+<description>
+A marshaller for a #GCClosure with a callback of type
+&amp;lt;literal&amp;gt;void (*callback) (gpointer instance, gboolean arg1, gpointer user_data)&amp;lt;/literal&amp;gt;.
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> ignored
+</parameter_description>
+</parameter>
+<parameter name="n_param_values">
+<parameter_description> 2
+</parameter_description>
+</parameter>
+<parameter name="param_values">
+<parameter_description> a #GValue array holding the instance and the #gboolean parameter
+</parameter_description>
+</parameter>
+<parameter name="invocation_hint">
+<parameter_description> the invocation hint given as the last argument
+to g_closure_invoke()
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when registering the marshaller
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_object_interface_list_properties">
+<description>
+Lists the properties of an interface.Generally, the interface
+vtable passed in as @g_iface will be the default vtable from
+g_type_default_interface_ref(), or, if you know the interface has
+already been loaded, g_type_default_interface_peek().
+
+Since: 2.4
+
+
+</description>
+<parameters>
+<parameter name="g_iface">
+<parameter_description> any interface vtable for the interface, or the default
+vtable for the interface
+</parameter_description>
+</parameter>
+<parameter name="n_properties_p">
+<parameter_description> location to store number of properties returned.
+</parameter_description>
+</parameter>
+</parameters>
+<return> a pointer to an array of pointers to #GParamSpec
+structures. The paramspecs are owned by GLib, but the
+array should be freed with g_free() when you are done with
+it.
+</return>
+</function>
+
<function name="g_utf8_strreverse">
<description>
Reverses a UTF-8 string. @str must be valid UTF-8 encoded text.
(Use g_utf8_validate() on all text before trying to use UTF-8
utility functions with it.)
+This function is intended for programmatic uses of reversed strings.
+It pays no attention to decomposed characters, combining marks, byte
+order marks, directional indicators (LRM, LRO, etc) and similar
+characters which might need special handling when reversing a string
+for display purposes.
+
Note that unlike g_strreverse(), this function returns
newly-allocated memory, which should be freed with g_free() when
no longer needed.
@@ -13971,8 +23853,8 @@ no longer needed.
</parameter_description>
</parameter>
<parameter name="len">
-<parameter_description> the maximum length of @str to use. If @len &amp;lt; 0, then
-the string is nul-terminated.
+<parameter_description> the maximum length of @str to use, in bytes. If @len &amp;lt; 0,
+then the string is nul-terminated.
</parameter_description>
</parameter>
</parameters>
@@ -14048,6 +23930,29 @@ Creates a new #GQueue.
</return>
</function>
+<function name="g_value_array_sort">
+<description>
+Sort @value_array using @compare_func to compare the elements accoring to
+the semantics of #GCompareFunc.
+
+The current implementation uses Quick-Sort as sorting algorithm.
+
+
+</description>
+<parameters>
+<parameter name="value_array">
+<parameter_description> #GValueArray to sort
+</parameter_description>
+</parameter>
+<parameter name="compare_func">
+<parameter_description> function to compare elements
+</parameter_description>
+</parameter>
+</parameters>
+<return> the #GValueArray passed in as @value_array
+</return>
+</function>
+
<function name="g_basename">
<description>
Gets the name of the file without any leading directory components.
@@ -14095,6 +24000,26 @@ Since: 2.6
</return>
</function>
+<function name="g_value_set_static_boxed">
+<description>
+Set the contents of a %G_TYPE_BOXED derived #GValue to @v_boxed.
+The boxed value is assumed to be static, and is thus not duplicated
+when setting the #GValue.
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of %G_TYPE_BOXED derived type
+</parameter_description>
+</parameter>
+<parameter name="v_boxed">
+<parameter_description> static boxed value to be set
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_io_channel_get_buffered">
<description>
Return Value: %TRUE if the @channel is buffered.
@@ -14102,7 +24027,7 @@ Return Value: %TRUE if the @channel is buffered.
</description>
<parameters>
<parameter name="channel">
-<parameter_description> a #GIOChannel.
+<parameter_description> a #GIOChannel
</parameter_description>
</parameter>
</parameters>
@@ -14110,40 +24035,66 @@ Return Value: %TRUE if the @channel is buffered.
</return>
</function>
-<function name="g_io_channel_read_to_end">
+<function name="g_locale_from_utf8">
<description>
-Reads all the remaining data from the file.
+Converts a string from UTF-8 to the encoding used for strings by
+the C runtime (usually the same as that used by the operating
+system) in the &amp;lt;link linkend=&quot;setlocale&quot;&amp;gt;current locale&amp;lt;/link&amp;gt;. On
+Windows this means the system codepage.
</description>
<parameters>
-<parameter name="channel">
-<parameter_description> a #GIOChannel
+<parameter name="utf8string">
+<parameter_description> a UTF-8 encoded string
</parameter_description>
</parameter>
-<parameter name="str_return">
-<parameter_description> Location to store a pointer to a string holding
-the remaining data in the #GIOChannel. This data should
-be freed with g_free() when no longer needed. This
-data is terminated by an extra nul character, but there
-may be other nuls in the intervening data.
+<parameter name="len">
+<parameter_description> the length of the string, or -1 if the string is
+nul-terminated&amp;lt;footnoteref linkend=&quot;nul-unsafe&quot;/&amp;gt;.
</parameter_description>
</parameter>
-<parameter name="length">
-<parameter_description> Location to store length of the data
+<parameter name="bytes_read">
+<parameter_description> location to store the number of bytes in the
+input string that were successfully converted, or %NULL.
+Even if the conversion was successful, this may be
+less than @len if there were partial characters
+at the end of the input. If the error
+#G_CONVERT_ERROR_ILLEGAL_SEQUENCE occurs, the value
+stored will the byte offset after the last valid
+input sequence.
+</parameter_description>
+</parameter>
+<parameter name="bytes_written">
+<parameter_description> the number of bytes stored in the output buffer (not
+including the terminating nul).
</parameter_description>
</parameter>
<parameter name="error">
-<parameter_description> A location to return an error of type #GConvertError
-or #GIOChannelError
+<parameter_description> location to store the error occuring, or %NULL to ignore
+errors. Any of the errors in #GConvertError may occur.
</parameter_description>
</parameter>
</parameters>
-<return> %G_IO_STATUS_NORMAL on success.
-This function never returns %G_IO_STATUS_EOF.
+<return> The converted string, or %NULL on an error.
</return>
</function>
+<function name="g_object_unref">
+<description>
+Decreases the reference count of @object. When its reference count
+drops to 0, the object is finalized (i.e. its memory is freed).
+
+</description>
+<parameters>
+<parameter name="object">
+<parameter_description> a #GObject
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_sequence_remove">
<description>
Removes the item pointed to by @iter. It is an error to pass the
@@ -14164,21 +24115,19 @@ Since: 2.14
<return></return>
</function>
-<function name="g_unichar_islower">
+<function name="g_param_spec_get_nick">
<description>
-Determines whether a character is a lowercase letter.
-Given some UTF-8 text, obtain a character value with
-g_utf8_get_char().
+Get the nickname of a #GParamSpec.
</description>
<parameters>
-<parameter name="c">
-<parameter_description> a Unicode character
+<parameter name="pspec">
+<parameter_description> a valid #GParamSpec
</parameter_description>
</parameter>
</parameters>
-<return> %TRUE if @c is a lowercase letter
+<return> the nickname of @pspec.
</return>
</function>
@@ -14201,123 +24150,126 @@ available immediately.
</return>
</function>
-<function name="g_main_depth">
+<function name="g_list_first">
<description>
-Returns the depth of the stack of calls to
+Gets the first element in a #GList.
+
</description>
<parameters>
+<parameter name="list">
+<parameter_description> a #GList
+</parameter_description>
+</parameter>
</parameters>
-<return>the depth of the stack of calls to
-g_main_context_dispatch() on any #GMainContext in the current thread.
-That is, when called from the toplevel, it gives 0. When
-called from within a callback from g_main_context_iteration()
-(or g_main_loop_run(), etc.) it returns 1. When called from within
-a callback to a recursive call to g_main_context_iterate(),
-it returns 2. And so forth.
+<return> the first element in the #GList,
+or %NULL if the #GList has no elements
+</return>
+</function>
-This function is useful in a situation like the following:
-Imagine an extremely simple &quot;garbage collected&quot; system.
+<function name="g_value_take_object">
+<description>
+Sets the contents of a %G_TYPE_OBJECT derived #GValue to @v_object
+and takes over the ownership of the callers reference to @v_object;
+the caller doesn&apos;t have to unref it any more (i.e. the reference
+count of the object is not increased).
-&amp;lt;example&amp;gt;
-static GList *free_list;
+If you want the #GValue to hold its own reference to @v_object, use
+g_value_set_object() instead.
-gpointer
-allocate_memory (gsize size)
-{
-gpointer result = g_malloc (size);
-free_list = g_list_prepend (free_list, result);
-return result;
-}
+Since: 2.4
-void
-free_allocated_memory (void)
-{
-GList *l;
-for (l = free_list; l; l = l-&amp;gt;next);
-g_free (l-&amp;gt;data);
-g_list_free (free_list);
-free_list = NULL;
-}
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of %G_TYPE_OBJECT derived type
+</parameter_description>
+</parameter>
+<parameter name="v_object">
+<parameter_description> object value to be set
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
-[...]
+<function name="g_main_depth">
+<description>
+Return value: The main loop recursion level in the current thread
-while (TRUE);
-{
-g_main_context_iteration (NULL, TRUE);
-free_allocated_memory();
-}
-&amp;lt;/example&amp;gt;
+</description>
+<parameters>
+</parameters>
+<return> The main loop recursion level in the current thread
+</return>
+</function>
-This works from an application, however, if you want to do the same
-thing from a library, it gets more difficult, since you no longer
-control the main loop. You might think you can simply use an idle
-function to make the call to free_allocated_memory(), but that
-doesn&apos;t work, since the idle function could be called from a
-recursive callback. This can be fixed by using g_main_depth()
+<function name="g_list_insert_sorted_with_data">
+<description>
+Inserts a new element into the list, using the given comparison
+function to determine its position.
-&amp;lt;example&amp;gt;
-gpointer
-allocate_memory (gsize size)
-{
-FreeListBlock *block = g_new (FreeListBlock, 1);\
-block-&amp;gt;mem = g_malloc (size);
-block-&amp;gt;depth = g_main_depth ();
-free_list = g_list_prepend (free_list, block);
-return block-&amp;gt;mem;
-}
-void
-free_allocated_memory (void)
-{
-GList *l;
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a pointer to a #GList
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> the data for the new element
+</parameter_description>
+</parameter>
+<parameter name="func">
+<parameter_description> the function to compare elements in the list.
+It should return a number &amp;gt; 0 if the first parameter
+comes after the second parameter in the sort order.
+</parameter_description>
+</parameter>
+<parameter name="user_data">
+<parameter_description> user data to pass to comparison function.
+</parameter_description>
+</parameter>
+</parameters>
+<return> the new start of the #GList
-int depth = g_main_depth ();
-for (l = free_list; l; );
-{
-GList *next = l-&amp;gt;next;
-FreeListBlock *block = l-&amp;gt;data;
-if (block-&amp;gt;depth &amp;gt; depth)
-{
-g_free (block-&amp;gt;mem);
-g_free (block);
-free_list = g_list_delete_link (free_list, l);
-}
+Since: 2.10
+</return>
+</function>
-l = next;
-}
-}
-&amp;lt;/example&amp;gt;
+<function name="g_signal_accumulator_true_handled">
+<description>
+A predefined #GSignalAccumulator for signals that return a
+boolean values. The behavior that this accumulator gives is
+that a return of %TRUE stops the signal emission: no further
+callbacks will be invoked, while a return of %FALSE allows
+the emission to coninue. The idea here is that a %TRUE return
+indicates that the callback &amp;lt;emphasis&amp;gt;handled&amp;lt;/emphasis&amp;gt; the signal,
+and no further handling is needed.
-There is a temptation to use g_main_depth() to solve
-problems with reentrancy. For instance, while waiting for data
-to be received from the network in response to a menu item,
-the menu item might be selected again. It might seem that
-one could make the menu item&apos;s callback return immediately
-and do nothing if g_main_depth() returns a value greater than 1.
-However, this should be avoided since the user then sees selecting
-the menu item do nothing. Furthermore, you&apos;ll find yourself adding
-these checks all over your code, since there are doubtless many,
-many things that the user could do. Instead, you can use the
-following techniques:
-
-&amp;lt;orderedlist&amp;gt;
-&amp;lt;listitem&amp;gt;
-&amp;lt;para&amp;gt;
-Use gtk_widget_set_sensitive() or modal dialogs to prevent
-the user from interacting with elements while the main
-loop is recursing.
-&amp;lt;/para&amp;gt;
-&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;
-&amp;lt;para&amp;gt;
-Avoid main loop recursion in situations where you can&apos;t handle
-arbitrary callbacks. Instead, structure your code so that you
-simply return to the main loop and then get called again when
-there is more work to do.
-&amp;lt;/para&amp;gt;
-&amp;lt;/listitem&amp;gt;
-&amp;lt;/orderedlist&amp;gt;
+Since: 2.4
+
+
+</description>
+<parameters>
+<parameter name="ihint">
+<parameter_description> standard #GSignalAccumulator parameter
+</parameter_description>
+</parameter>
+<parameter name="return_accu">
+<parameter_description> standard #GSignalAccumulator parameter
+</parameter_description>
+</parameter>
+<parameter name="handler_return">
+<parameter_description> standard #GSignalAccumulator parameter
+</parameter_description>
+</parameter>
+<parameter name="dummy">
+<parameter_description> standard #GSignalAccumulator parameter
+</parameter_description>
+</parameter>
+</parameters>
+<return> standard #GSignalAccumulator result
</return>
</function>
@@ -14342,6 +24294,28 @@ Since: 2.12
<return></return>
</function>
+<function name="g_key_file_set_list_separator">
+<description>
+Sets the character which is used to separate
+values in lists. Typically &apos;;&apos; or &apos;,&apos; are used
+as separators. The default list separator is &apos;;&apos;.
+
+Since: 2.6
+
+</description>
+<parameters>
+<parameter name="key_file">
+<parameter_description> a #GKeyFile
+</parameter_description>
+</parameter>
+<parameter name="separator">
+<parameter_description> the separator
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_rand_double_range">
<description>
Return value: A random number.
@@ -14371,7 +24345,7 @@ Removes a key and its associated value from a #GHashTable.
If the #GHashTable was created using g_hash_table_new_full(), the
key and value are freed using the supplied destroy functions, otherwise
-you have to make sure that any dynamically allocated values are freed
+you have to make sure that any dynamically allocated values are freed
yourself.
@@ -14390,6 +24364,26 @@ yourself.
</return>
</function>
+<function name="g_object_force_floating">
+<description>
+This function is intended for #GObject implementations to re-enforce a
+&amp;lt;link linkend=&quot;floating-ref&quot;&amp;gt;floating&amp;lt;/link&amp;gt; object reference.
+Doing this is seldomly required, all
+#GInitiallyUnowned&amp;lt;!-- --&amp;gt;s are created with a floating reference which
+usually just needs to be sunken by calling g_object_ref_sink().
+
+Since: 2.10
+
+</description>
+<parameters>
+<parameter name="object">
+<parameter_description> a #GObject
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_string_up">
<description>
Converts a #GString to uppercase.
@@ -14455,10 +24449,10 @@ hold the string
<function name="_glib_get_locale_dir">
<description>
-Return the path to the lib\locale subfolder of the GLib
-installation folder. The path is in the system codepage. We have to
-use system codepage as bindtextdomain() doesn&apos;t have a UTF-8
-interface.
+Return the path to the share\locale or lib\locale subfolder of the
+GLib installation folder. The path is in the system codepage. We
+have to use system codepage as bindtextdomain() doesn&apos;t have a
+UTF-8 interface.
</description>
<parameters>
@@ -14499,6 +24493,43 @@ Since: 2.6
</return>
</function>
+<function name="g_slist_foreach">
+<description>
+Calls a function for each element of a #GSList.
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GSList
+</parameter_description>
+</parameter>
+<parameter name="func">
+<parameter_description> the function to call with each element&apos;s data
+</parameter_description>
+</parameter>
+<parameter name="user_data">
+<parameter_description> user data to pass to the function
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_node_reverse_children">
+<description>
+Reverses the order of the children of a #GNode.
+(It doesn&apos;t change the order of the grandchildren.)
+
+</description>
+<parameters>
+<parameter name="node">
+<parameter_description> a #GNode.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_option_context_add_main_entries">
<description>
A convenience function which creates a main group if it doesn&apos;t
@@ -14556,36 +24587,181 @@ when you are finished with it.
</return>
</function>
-<function name="g_lstat">
+<function name="g_poll">
<description>
-A wrapper for the POSIX lstat() function. The lstat() function is
-like stat() except that in the case of symbolic links, it returns
-information about the symbolic link itself and not the file that it
-refers to. If the system does not support symbolic links g_lstat()
-is identical to g_stat().
+Polls @fds, as with the poll() system call, but portably. (On
+systems that don&apos;t have poll(), it is emulated using select().)
+This is used internally by #GMainContext, but it can be called
+directly if you need to block until a file descriptor is ready, but
+don&apos;t want to run the full main loop.
-See the C library manual for more details about lstat().
+Each element of @fds is a #GPollFD describing a single file
+descriptor to poll. The %fd field indicates the file descriptor,
+and the %events field indicates the events to poll for. On return,
+the %revents fields will be filled with the events that actually
+occurred.
+
+On POSIX systems, the file descriptors in @fds can be any sort of
+file descriptor, but the situation is much more complicated on
+Windows. If you need to use g_poll() in code that has to run on
+Windows, the easiest solution is to construct all of your
+#GPollFD&amp;lt;!-- --&amp;gt;s with g_io_channel_win32_make_pollfd().
</description>
<parameters>
-<parameter name="filename">
-<parameter_description> a pathname in the GLib file name encoding (UTF-8 on Windows)
+<parameter name="fds">
+<parameter_description> file descriptors to poll
</parameter_description>
</parameter>
-<parameter name="buf">
-<parameter_description> a pointer to a &amp;lt;structname&amp;gt;stat&amp;lt;/structname&amp;gt; struct, which
-will be filled with the file information
+<parameter name="nfds">
+<parameter_description> the number of file descriptors in @fds
+</parameter_description>
+</parameter>
+<parameter name="timeout">
+<parameter_description> amount of time to wait, in milliseconds, or -1 to wait forever
</parameter_description>
</parameter>
</parameters>
-<return> 0 if the information was successfully retrieved, -1 if an error
-occurred
+<return> the number of entries in @fds whose %revents fields
+were filled in, or 0 if the operation timed out, or -1 on error or
+if the call was interrupted.
-Since: 2.6
+Since: 2.20
</return>
</function>
+<function name="g_param_spec_ulong">
+<description>
+Creates a new #GParamSpecULong instance specifying a %G_TYPE_ULONG
+property.
+
+See g_param_spec_internal() for details on property names.
+
+
+</description>
+<parameters>
+<parameter name="name">
+<parameter_description> canonical name of the property specified
+</parameter_description>
+</parameter>
+<parameter name="nick">
+<parameter_description> nick name for the property specified
+</parameter_description>
+</parameter>
+<parameter name="blurb">
+<parameter_description> description of the property specified
+</parameter_description>
+</parameter>
+<parameter name="minimum">
+<parameter_description> minimum value for the property specified
+</parameter_description>
+</parameter>
+<parameter name="maximum">
+<parameter_description> maximum value for the property specified
+</parameter_description>
+</parameter>
+<parameter name="default_value">
+<parameter_description> default value for the property specified
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> flags for the property specified
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly created parameter specification
+</return>
+</function>
+
+<function name="g_signal_override_class_handler">
+<description>
+Overrides the class closure (i.e. the default handler) for the
+given signal for emissions on instances of @instance_type with
+callabck @class_handler. @instance_type must be derived from the
+type to which the signal belongs.
+
+See g_signal_chain_from_overridden() and
+g_signal_chain_from_overridden_handler() for how to chain up to the
+parent class closure from inside the overridden one.
+
+Since: 2.18
+
+</description>
+<parameters>
+<parameter name="signal_name">
+<parameter_description> the name for the signal
+</parameter_description>
+</parameter>
+<parameter name="instance_type">
+<parameter_description> the instance type on which to override the class handler
+for the signal.
+</parameter_description>
+</parameter>
+<parameter name="class_handler">
+<parameter_description> the handler.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_list_index">
+<description>
+Gets the position of the element containing
+the given data (starting from 0).
+
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GList
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> the data to find
+</parameter_description>
+</parameter>
+</parameters>
+<return> the index of the element containing the data,
+or -1 if the data is not found
+</return>
+</function>
+
+<function name="g_object_steal_data">
+<description>
+Remove a specified datum from the object&apos;s data associations,
+without invoking the association&apos;s destroy handler.
+
+
+</description>
+<parameters>
+<parameter name="object">
+<parameter_description> #GObject containing the associations
+</parameter_description>
+</parameter>
+<parameter name="key">
+<parameter_description> name of the key
+</parameter_description>
+</parameter>
+</parameters>
+<return> the data if found, or %NULL if no such data exists.
+</return>
+</function>
+
+<function name="GParamSpecPool">
+<description>
+A #GParamSpecPool maintains a collection of #GParamSpec&amp;lt;!-- --&amp;gt;s which can be
+quickly accessed by owner and name. The implementation of the #GObject property
+system uses such a pool to store the #GParamSpecs of the properties all object
+types.
+
+</description>
+<parameters>
+</parameters>
+<return></return>
+</function>
+
<function name="g_thread_pool_push">
<description>
Inserts @data into the list of tasks to be executed by @pool. When
@@ -14636,24 +24812,68 @@ Since: 2.14
</return>
</function>
-<function name="g_string_prepend_c">
+<function name="g_io_channel_read_line">
<description>
-Adds a byte onto the start of a #GString,
-expanding it if necessary.
+Reads a line, including the terminating character(s),
+from a #GIOChannel into a newly-allocated string.
+@str_return will contain allocated memory if the return
+is %G_IO_STATUS_NORMAL.
</description>
<parameters>
-<parameter name="string">
-<parameter_description> a #GString
+<parameter name="channel">
+<parameter_description> a #GIOChannel
</parameter_description>
</parameter>
-<parameter name="c">
-<parameter_description> the byte to prepend on the start of the #GString
+<parameter name="str_return">
+<parameter_description> The line read from the #GIOChannel, including the
+line terminator. This data should be freed with g_free()
+when no longer needed. This is a nul-terminated string.
+If a @length of zero is returned, this will be %NULL instead.
+</parameter_description>
+</parameter>
+<parameter name="length">
+<parameter_description> location to store length of the read data, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="terminator_pos">
+<parameter_description> location to store position of line terminator, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> A location to return an error of type #GConvertError
+or #GIOChannelError
</parameter_description>
</parameter>
</parameters>
-<return> @string
+<return> the status of the operation.
+</return>
+</function>
+
+<function name="g_object_ref_sink">
+<description>
+Increase the reference count of @object, and possibly remove the
+&amp;lt;link linkend=&quot;floating-ref&quot;&amp;gt;floating&amp;lt;/link&amp;gt; reference, if @object
+has a floating reference.
+
+In other words, if the object is floating, then this call &quot;assumes
+ownership&quot; of the floating reference, converting it to a normal
+reference by clearing the floating flag while leaving the reference
+count unchanged. If the object is not floating, then this call
+adds a new normal reference increasing the reference count by one.
+
+Since: 2.10
+
+
+</description>
+<parameters>
+<parameter name="object">
+<parameter_description> a #GObject
+</parameter_description>
+</parameter>
+</parameters>
+<return> @object
</return>
</function>
@@ -14765,14 +24985,14 @@ cases need special handling to deal with the case where
&amp;lt;/simplelist&amp;gt;
Since applications are in general &amp;lt;emphasis&amp;gt;not&amp;lt;/emphasis&amp;gt; written
to deal with these situations it was considered better to make
-g_get_homedir() not pay attention to &amp;lt;envar&amp;gt;HOME&amp;lt;/envar&amp;gt; and to
+g_get_home_dir() not pay attention to &amp;lt;envar&amp;gt;HOME&amp;lt;/envar&amp;gt; and to
return the real home directory for the user. If applications
want to pay attention to &amp;lt;envar&amp;gt;HOME&amp;lt;/envar&amp;gt;, they can do:
-&amp;lt;informalexample&amp;gt;&amp;lt;programlisting&amp;gt;
+|[
const char *homedir = g_getenv (&quot;HOME&quot;);
if (!homedir)
-homedir = g_get_homedir (&amp;lt;!-- --&amp;gt;);
-&amp;lt;/programlisting&amp;gt;&amp;lt;/informalexample&amp;gt;
+homedir = g_get_home_dir (&amp;lt;!-- --&amp;gt;);
+]|
</description>
@@ -14782,44 +25002,51 @@ homedir = g_get_homedir (&amp;lt;!-- --&amp;gt;);
</return>
</function>
-<function name="g_memmove">
+<function name="g_list_prepend">
<description>
-Copies a block of memory @len bytes long, from @src to @dest.
-The source and destination areas may overlap.
+Adds a new element on to the start of the list.
+
+&amp;lt;note&amp;gt;&amp;lt;para&amp;gt;
+The return value is the new start of the list, which
+may have changed, so make sure you store the new value.
+&amp;lt;/para&amp;gt;&amp;lt;/note&amp;gt;
+
+|[
+/&amp;ast; Notice that it is initialized to the empty list. &amp;ast;/
+GList *list = NULL;
+list = g_list_prepend (list, &quot;last&quot;);
+list = g_list_prepend (list, &quot;first&quot;);
+]|
-In order to use this function, you must include
-&amp;lt;filename&amp;gt;string.h&amp;lt;/filename&amp;gt; yourself, because this macro will
-typically simply resolve to memmove() and GLib does not include
-&amp;lt;filename&amp;gt;string.h&amp;lt;/filename&amp;gt; for you.
</description>
<parameters>
-<parameter name="dest">
-<parameter_description> the destination address to copy the bytes to.
-</parameter_description>
-</parameter>
-<parameter name="src">
-<parameter_description> the source address to copy the bytes from.
+<parameter name="list">
+<parameter_description> a pointer to a #GList
</parameter_description>
</parameter>
-<parameter name="len">
-<parameter_description> the number of bytes to copy.
+<parameter name="data">
+<parameter_description> the data for the new element
</parameter_description>
</parameter>
</parameters>
-<return></return>
+<return> the new start of the #GList
+</return>
</function>
-<function name="g_queue_free">
+<function name="g_queue_init">
<description>
-Frees the memory allocated for the #GQueue. Only call this function if
-@queue was created with g_queue_new(). If queue elements contain
-dynamically-allocated memory, they should be freed first.
+A statically-allocated #GQueue must be initialized with this function
+before it can be used. Alternatively you can initialize it with
+#G_QUEUE_INIT. It is not necessary to initialize queues created with
+g_queue_new().
+
+Since: 2.14
</description>
<parameters>
<parameter name="queue">
-<parameter_description> a #GQueue.
+<parameter_description> an uninitialized #GQueue
</parameter_description>
</parameter>
</parameters>
@@ -14853,9 +25080,8 @@ Since: 2.14
<function name="g_key_file_load_from_data">
<description>
-Loads a key file from memory into an empty #GKeyFile structure. If
-the object cannot be created then %error is set to a
-#GKeyFileError.
+Loads a key file from memory into an empty #GKeyFile structure.
+If the object cannot be created then %error is set to a #GKeyFileError.
</description>
@@ -14865,7 +25091,7 @@ the object cannot be created then %error is set to a
</parameter_description>
</parameter>
<parameter name="data">
-<parameter_description> key file loaded in memory.
+<parameter_description> key file loaded in memory
</parameter_description>
</parameter>
<parameter name="length">
@@ -14881,11 +25107,52 @@ the object cannot be created then %error is set to a
</parameter_description>
</parameter>
</parameters>
-<return> %TRUE if a key file could be loaded, %FALSE othewise
+<return> %TRUE if a key file could be loaded, %FALSE otherwise
+
Since: 2.6
</return>
</function>
+<function name="g_param_spec_char">
+<description>
+Creates a new #GParamSpecChar instance specifying a %G_TYPE_CHAR property.
+
+
+</description>
+<parameters>
+<parameter name="name">
+<parameter_description> canonical name of the property specified
+</parameter_description>
+</parameter>
+<parameter name="nick">
+<parameter_description> nick name for the property specified
+</parameter_description>
+</parameter>
+<parameter name="blurb">
+<parameter_description> description of the property specified
+</parameter_description>
+</parameter>
+<parameter name="minimum">
+<parameter_description> minimum value for the property specified
+</parameter_description>
+</parameter>
+<parameter name="maximum">
+<parameter_description> maximum value for the property specified
+</parameter_description>
+</parameter>
+<parameter name="default_value">
+<parameter_description> default value for the property specified
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> flags for the property specified
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly created parameter specification
+</return>
+</function>
+
<function name="g_string_ascii_up">
<description>
Converts all lower case ASCII letters to upper case ASCII letters.
@@ -14904,56 +25171,77 @@ semantics that exactly match g_ascii_toupper().
</return>
</function>
-<function name="g_key_file_get_value">
+<function name="g_ascii_strcasecmp">
<description>
-Return value: a newly allocated string or %NULL if the specified
+Compare two strings, ignoring the case of ASCII characters.
+
+Unlike the BSD strcasecmp() function, this only recognizes standard
+ASCII letters and ignores the locale, treating all non-ASCII
+bytes as if they are not letters.
+
+This function should be used only on strings that are known to be
+in encodings where the bytes corresponding to ASCII letters always
+represent themselves. This includes UTF-8 and the ISO-8859-*
+charsets, but not for instance double-byte encodings like the
+Windows Codepage 932, where the trailing bytes of double-byte
+characters include all ASCII letters. If you compare two CP932
+strings using this function, you will get false matches.
+
</description>
<parameters>
-<parameter name="key_file">
-<parameter_description> a #GKeyFile
-</parameter_description>
-</parameter>
-<parameter name="group_name">
-<parameter_description> a group name
-</parameter_description>
-</parameter>
-<parameter name="key">
-<parameter_description> a key
+<parameter name="s1">
+<parameter_description> string to compare with @s2.
</parameter_description>
</parameter>
-<parameter name="error">
-<parameter_description> return location for a #GError, or %NULL
+<parameter name="s2">
+<parameter_description> string to compare with @s1.
</parameter_description>
</parameter>
</parameters>
-<return> a newly allocated string or %NULL if the specified
-key cannot be found.
-
-Since: 2.6
+<return> 0 if the strings match, a negative value if @s1 &amp;lt; @s2,
+or a positive value if @s1 &amp;gt; @s2.
</return>
</function>
-<function name="g_markup_parse_context_end_parse">
+<function name="g_slist_last">
<description>
-Signals to the #GMarkupParseContext that all data has been
-fed into the parse context with g_markup_parse_context_parse().
-This function reports an error if the document isn&apos;t complete,
-for example if elements are still open.
+Gets the last element in a #GSList.
+
+&amp;lt;note&amp;gt;&amp;lt;para&amp;gt;
+This function iterates over the whole list.
+&amp;lt;/para&amp;gt;&amp;lt;/note&amp;gt;
</description>
<parameters>
-<parameter name="context">
-<parameter_description> a #GMarkupParseContext
+<parameter name="list">
+<parameter_description> a #GSList
</parameter_description>
</parameter>
-<parameter name="error">
-<parameter_description> return location for a #GError
+</parameters>
+<return> the last element in the #GSList,
+or %NULL if the #GSList has no elements
+</return>
+</function>
+
+<function name="g_async_queue_new_full">
+<description>
+Creates a new asynchronous queue with an initial reference count of 1 and
+sets up a destroy notify function that is used to free any remaining
+queue items when the queue is destroyed after the final unref.
+
+
+</description>
+<parameters>
+<parameter name="item_free_func">
+<parameter_description> function to free queue elements
</parameter_description>
</parameter>
</parameters>
-<return> %TRUE on success, %FALSE if an error was set
+<return> the new #GAsyncQueue.
+
+Since: 2.16
</return>
</function>
@@ -14972,6 +25260,83 @@ Return value: the maximal number of threads
</return>
</function>
+<function name="g_get_filename_charsets">
+<description>
+Determines the preferred character sets used for filenames.
+The first character set from the @charsets is the filename encoding, the
+subsequent character sets are used when trying to generate a displayable
+representation of a filename, see g_filename_display_name().
+
+On Unix, the character sets are determined by consulting the
+environment variables &amp;lt;envar&amp;gt;G_FILENAME_ENCODING&amp;lt;/envar&amp;gt; and
+&amp;lt;envar&amp;gt;G_BROKEN_FILENAMES&amp;lt;/envar&amp;gt;. On Windows, the character set
+used in the GLib API is always UTF-8 and said environment variables
+have no effect.
+
+&amp;lt;envar&amp;gt;G_FILENAME_ENCODING&amp;lt;/envar&amp;gt; may be set to a comma-separated list
+of character set names. The special token &quot;&amp;commat;locale&quot; is taken to
+mean the character set for the &amp;lt;link linkend=&quot;setlocale&quot;&amp;gt;current
+locale&amp;lt;/link&amp;gt;. If &amp;lt;envar&amp;gt;G_FILENAME_ENCODING&amp;lt;/envar&amp;gt; is not set, but
+&amp;lt;envar&amp;gt;G_BROKEN_FILENAMES&amp;lt;/envar&amp;gt; is, the character set of the current
+locale is taken as the filename encoding. If neither environment variable
+is set, UTF-8 is taken as the filename encoding, but the character
+set of the current locale is also put in the list of encodings.
+
+The returned @charsets belong to GLib and must not be freed.
+
+Note that on Unix, regardless of the locale character set or
+&amp;lt;envar&amp;gt;G_FILENAME_ENCODING&amp;lt;/envar&amp;gt; value, the actual file names present
+on a system might be in any random encoding or just gibberish.
+
+
+</description>
+<parameters>
+<parameter name="charsets">
+<parameter_description> return location for the %NULL-terminated list of encoding names
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE if the filename encoding is UTF-8.
+
+Since: 2.6
+</return>
+</function>
+
+<function name="g_value_reset">
+<description>
+Clears the current value in @value and resets it to the default value
+(as if the value had just been initialized).
+
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> An initialized #GValue structure.
+</parameter_description>
+</parameter>
+</parameters>
+<return> the #GValue structure that has been passed in
+</return>
+</function>
+
+<function name="g_boxed_free">
+<description>
+Free the boxed structure @boxed which is of type @boxed_type.
+
+</description>
+<parameters>
+<parameter name="boxed_type">
+<parameter_description> The type of @boxed.
+</parameter_description>
+</parameter>
+<parameter name="boxed">
+<parameter_description> The boxed structure to be freed.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_ascii_digit_value">
<description>
Determines the numeric value of a character as a decimal
@@ -14992,28 +25357,45 @@ g_ascii_isdigit()), its numeric value. Otherwise, -1.
</return>
</function>
-<function name="g_main_context_set_poll_func">
+<function name="g_io_add_watch_full">
<description>
-Sets the function to use to handle polling of file descriptors. It
-will be used instead of the poll() system call
-(or GLib&apos;s replacement function, which is used where
-poll() isn&apos;t available).
+Adds the #GIOChannel into the default main loop context
+with the given priority.
+
+This internally creates a main loop source using g_io_create_watch()
+and attaches it to the main loop context with g_source_attach().
+You can do these steps manuallt if you need greater control.
-This function could possibly be used to integrate the GLib event
-loop with an external event loop.
</description>
<parameters>
-<parameter name="context">
-<parameter_description> a #GMainContext
+<parameter name="channel">
+<parameter_description> a #GIOChannel
+</parameter_description>
+</parameter>
+<parameter name="priority">
+<parameter_description> the priority of the #GIOChannel source
+</parameter_description>
+</parameter>
+<parameter name="condition">
+<parameter_description> the condition to watch for
</parameter_description>
</parameter>
<parameter name="func">
-<parameter_description> the function to call to poll all file descriptors
+<parameter_description> the function to call when the condition is satisfied
+</parameter_description>
+</parameter>
+<parameter name="user_data">
+<parameter_description> user data to pass to @func
+</parameter_description>
+</parameter>
+<parameter name="notify">
+<parameter_description> the function to call when the source is removed
</parameter_description>
</parameter>
</parameters>
-<return></return>
+<return> the event source id
+</return>
</function>
<function name="g_regex_new">
@@ -15029,11 +25411,11 @@ the initial setup of the #GRegex structure.
</parameter_description>
</parameter>
<parameter name="compile_options">
-<parameter_description> compile options for the regular expression
+<parameter_description> compile options for the regular expression, or 0
</parameter_description>
</parameter>
<parameter name="match_options">
-<parameter_description> match options for the regular expression
+<parameter_description> match options for the regular expression, or 0
</parameter_description>
</parameter>
<parameter name="error">
@@ -15048,6 +25430,20 @@ Since: 2.14
</return>
</function>
+<function name="g_test_trap_reached_timeout">
+<description>
+Check the result of the last g_test_trap_fork() call.
+
+
+</description>
+<parameters>
+</parameters>
+<return> %TRUE if the last forked child got killed due to a fork timeout.
+
+Since: 2.16
+</return>
+</function>
+
<function name="g_queue_pop_tail">
<description>
Removes the last element of the queue.
@@ -15065,6 +25461,143 @@ is empty.
</return>
</function>
+<function name="g_param_value_convert">
+<description>
+Transforms @src_value into @dest_value if possible, and then
+validates @dest_value, in order for it to conform to @pspec. If
+@strict_validation is %TRUE this function will only succeed if the
+transformed @dest_value complied to @pspec without modifications.
+
+See also g_value_type_transformable(), g_value_transform() and
+g_param_value_validate().
+
+
+</description>
+<parameters>
+<parameter name="pspec">
+<parameter_description> a valid #GParamSpec
+</parameter_description>
+</parameter>
+<parameter name="src_value">
+<parameter_description> souce #GValue
+</parameter_description>
+</parameter>
+<parameter name="dest_value">
+<parameter_description> destination #GValue of correct type for @pspec
+</parameter_description>
+</parameter>
+<parameter name="strict_validation">
+<parameter_description> %TRUE requires @dest_value to conform to @pspec
+without modifications
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE if transformation and validation were successful,
+%FALSE otherwise and @dest_value is left untouched.
+</return>
+</function>
+
+<function name="g_list_nth">
+<description>
+Gets the element at the given position in a #GList.
+
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GList
+</parameter_description>
+</parameter>
+<parameter name="n">
+<parameter_description> the position of the element, counting from 0
+</parameter_description>
+</parameter>
+</parameters>
+<return> the element, or %NULL if the position is off
+the end of the #GList
+</return>
+</function>
+
+<function name="g_list_insert_sorted">
+<description>
+Inserts a new element into the list, using the given comparison
+function to determine its position.
+
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a pointer to a #GList
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> the data for the new element
+</parameter_description>
+</parameter>
+<parameter name="func">
+<parameter_description> the function to compare elements in the list. It should
+return a number &amp;gt; 0 if the first parameter comes after the
+second parameter in the sort order.
+</parameter_description>
+</parameter>
+</parameters>
+<return> the new start of the #GList
+</return>
+</function>
+
+<function name="g_signal_connect_object">
+<description>
+This is similar to g_signal_connect_data(), but uses a closure which
+ensures that the @gobject stays alive during the call to @c_handler
+by temporarily adding a reference count to @gobject.
+
+Note that there is a bug in GObject that makes this function
+much less useful than it might seem otherwise. Once @gobject is
+disposed, the callback will no longer be called, but, the signal
+handler is &amp;lt;emphasis&amp;gt;not&amp;lt;/emphasis&amp;gt; currently disconnected. If the
+@instance is itself being freed at the same time than this doesn&apos;t
+matter, since the signal will automatically be removed, but
+if @instance persists, then the signal handler will leak. You
+should not remove the signal yourself because in a future versions of
+GObject, the handler &amp;lt;emphasis&amp;gt;will&amp;lt;/emphasis&amp;gt; automatically
+be disconnected.
+
+It&apos;s possible to work around this problem in a way that will
+continue to work with future versions of GObject by checking
+that the signal handler is still connected before disconnected it:
+&amp;lt;informalexample&amp;gt;&amp;lt;programlisting&amp;gt;
+if (g_signal_handler_is_connected (instance, id))
+g_signal_handler_disconnect (instance, id);
+&amp;lt;/programlisting&amp;gt;&amp;lt;/informalexample&amp;gt;
+
+
+</description>
+<parameters>
+<parameter name="instance">
+<parameter_description> the instance to connect to.
+</parameter_description>
+</parameter>
+<parameter name="detailed_signal">
+<parameter_description> a string of the form &quot;signal-name::detail&quot;.
+</parameter_description>
+</parameter>
+<parameter name="c_handler">
+<parameter_description> the #GCallback to connect.
+</parameter_description>
+</parameter>
+<parameter name="gobject">
+<parameter_description> the object to pass as data to @c_handler.
+</parameter_description>
+</parameter>
+<parameter name="connect_flags">
+<parameter_description> a combination of #GConnnectFlags.
+</parameter_description>
+</parameter>
+</parameters>
+<return> the handler id.
+</return>
+</function>
+
<function name="g_timeout_add_full">
<description>
Sets a function to be called at regular intervals, with the given
@@ -15080,6 +25613,10 @@ After each call to the timeout function, the time of the next
timeout is recalculated based on the current time and the given interval
(it does not try to &apos;catch up&apos; time lost in delays).
+This internally creates a main loop source using g_timeout_source_new()
+and attaches it to the main loop context using g_source_attach(). You can
+do these steps manually if you need greater control.
+
</description>
<parameters>
@@ -15149,6 +25686,55 @@ Since: 2.10
<return></return>
</function>
+<function name="g_value_set_flags">
+<description>
+Set the contents of a %G_TYPE_FLAGS #GValue to @v_flags.
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue whose type is derived from %G_TYPE_FLAGS
+</parameter_description>
+</parameter>
+<parameter name="v_flags">
+<parameter_description> flags value to be set
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_tree_lookup_extended">
+<description>
+Looks up a key in the #GTree, returning the original key and the
+associated value and a #gboolean which is %TRUE if the key was found. This
+is useful if you need to free the memory allocated for the original key,
+for example before calling g_tree_remove().
+
+
+</description>
+<parameters>
+<parameter name="tree">
+<parameter_description> a #GTree.
+</parameter_description>
+</parameter>
+<parameter name="lookup_key">
+<parameter_description> the key to look up.
+</parameter_description>
+</parameter>
+<parameter name="orig_key">
+<parameter_description> returns the original key.
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> returns the value associated with the key.
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE if the key was found in the #GTree.
+</return>
+</function>
+
<function name="g_unichar_iszerowidth">
<description>
Determines if a given character typically takes zero width when rendered.
@@ -15255,7 +25841,8 @@ Decode a sequence of Base-64 encoded text into binary data
</parameter>
</parameters>
<return> a newly allocated buffer containing the binary data
-that @text represents
+that @text represents. The returned buffer must
+be freed with g_free().
Since: 2.12
</return>
@@ -15280,65 +25867,18 @@ Return value: whether a test was %TRUE
</return>
</function>
-<function name="g_strstr_len">
-<description>
-Searches the string @haystack for the first occurrence
-of the string @needle, limiting the length of the search
-to @haystack_len.
-
-
-</description>
-<parameters>
-<parameter name="haystack">
-<parameter_description> a string.
-</parameter_description>
-</parameter>
-<parameter name="haystack_len">
-<parameter_description> the maximum length of @haystack.
-</parameter_description>
-</parameter>
-<parameter name="needle">
-<parameter_description> the string to search for.
-</parameter_description>
-</parameter>
-</parameters>
-<return> a pointer to the found occurrence, or
-%NULL if not found.
-</return>
-</function>
-
-<function name="g_ascii_formatd">
+<function name="g_async_queue_length_unlocked">
<description>
-Converts a #gdouble to a string, using the &apos;.&apos; as
-decimal point. To format the number you pass in
-a printf()-style format string. Allowed conversion
-specifiers are &apos;e&apos;, &apos;E&apos;, &apos;f&apos;, &apos;F&apos;, &apos;g&apos; and &apos;G&apos;.
-
-If you just want to want to serialize the value into a
-string, use g_ascii_dtostr().
-
+Return value: the length of the @queue.
</description>
<parameters>
-<parameter name="buffer">
-<parameter_description> A buffer to place the resulting string in
-</parameter_description>
-</parameter>
-<parameter name="buf_len">
-<parameter_description> The length of the buffer.
-</parameter_description>
-</parameter>
-<parameter name="format">
-<parameter_description> The printf()-style format to use for the
-code to use for converting.
-</parameter_description>
-</parameter>
-<parameter name="d">
-<parameter_description> The #gdouble to convert
+<parameter name="queue">
+<parameter_description> a #GAsyncQueue.
</parameter_description>
</parameter>
</parameters>
-<return> The pointer to the buffer with the converted string.
+<return> the length of the @queue.
</return>
</function>
@@ -15371,6 +25911,25 @@ Since: 2.12
<return></return>
</function>
+<function name="g_signal_remove_emission_hook">
+<description>
+Deletes an emission hook.
+
+</description>
+<parameters>
+<parameter name="signal_id">
+<parameter_description> the id of the signal
+</parameter_description>
+</parameter>
+<parameter name="hook_id">
+<parameter_description> the id of the emission hook, as returned by
+g_signal_add_emission_hook()
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_thread_pool_set_max_threads">
<description>
Sets the maximal allowed number of threads for @pool. A value of -1
@@ -15424,9 +25983,8 @@ it starts with an appropriate byte.
</parameter_description>
</parameter>
<parameter name="end">
-<parameter_description> a pointer to the end of the string, or %NULL to indicate
-that the string is nul-terminated, in which case
-the returned value will be
+<parameter_description> a pointer to the byte following the end of the string,
+or %NULL to indicate that the string is nul-terminated.
</parameter_description>
</parameter>
</parameters>
@@ -15470,8 +26028,8 @@ string after the converted text.
</parameter_description>
</parameter>
<parameter name="len">
-<parameter_description> the maximum length of @str to use. If @len &amp;lt; 0, then
-the string is nul-terminated.
+<parameter_description> the maximum length of @str to use, in bytes. If @len &amp;lt; 0,
+then the string is nul-terminated.
</parameter_description>
</parameter>
<parameter name="items_read">
@@ -15502,36 +26060,141 @@ error occurs, %NULL will be returned and
</return>
</function>
-<function name="g_tree_search">
+<function name="g_propagate_prefixed_error">
<description>
-Searches a #GTree using @search_func.
+If @dest is %NULL, free @src; otherwise,
+moves @src into *@dest. *@dest must be %NULL.
+After the move, add a prefix as with
+g_prefix_error().
-The @search_func is called with a pointer to the key of a key/value pair in
-the tree, and the passed in @user_data. If @search_func returns 0 for a
-key/value pair, then g_tree_search_func() will return the value of that
-pair. If @search_func returns -1, searching will proceed among the
-key/value pairs that have a smaller key; if @search_func returns 1,
-searching will proceed among the key/value pairs that have a larger key.
+Since: 2.16
+
+</description>
+<parameters>
+<parameter name="dest">
+<parameter_description> error return location
+</parameter_description>
+</parameter>
+<parameter name="src">
+<parameter_description> error to move into the return location
+</parameter_description>
+</parameter>
+<parameter name="format">
+<parameter_description> printf()-style format string
+</parameter_description>
+</parameter>
+<parameter name="Varargs">
+<parameter_description> arguments to @format
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_node_first_sibling">
+<description>
+Gets the first sibling of a #GNode.
+This could possibly be the node itself.
</description>
<parameters>
-<parameter name="tree">
-<parameter_description> a #GTree.
+<parameter name="node">
+<parameter_description> a #GNode
</parameter_description>
</parameter>
-<parameter name="search_func">
-<parameter_description> a function used to search the #GTree.
+</parameters>
+<return> the first sibling of @node
+</return>
+</function>
+
+<function name="g_type_module_register_type">
+<description>
+Looks up or registers a type that is implemented with a particular
+type plugin. If a type with name @type_name was previously registered,
+the #GType identifier for the type is returned, otherwise the type
+is newly registered, and the resulting #GType identifier returned.
+
+When reregistering a type (typically because a module is unloaded
+then reloaded, and reinitialized), @module and @parent_type must
+be the same as they were previously.
+
+As long as any instances of the type exist, the type plugin will
+not be unloaded.
+
+
+</description>
+<parameters>
+<parameter name="module">
+<parameter_description> a #GTypeModule
</parameter_description>
</parameter>
-<parameter name="user_data">
-<parameter_description> the data passed as the second argument to the @search_func
-function.
+<parameter name="parent_type">
+<parameter_description> the type for the parent class
+</parameter_description>
+</parameter>
+<parameter name="type_name">
+<parameter_description> name for the type
+</parameter_description>
+</parameter>
+<parameter name="type_info">
+<parameter_description> type information structure
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> flags field providing details about the type
</parameter_description>
</parameter>
</parameters>
-<return> the value corresponding to the found key, or %NULL if the key
-was not found.
+<return> the new or existing type ID
+</return>
+</function>
+
+<function name="g_error_copy">
+<description>
+Makes a copy of @error.
+
+
+</description>
+<parameters>
+<parameter name="error">
+<parameter_description> a #GError
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GError
+</return>
+</function>
+
+<function name="g_type_fundamental_next">
+<description>
+Returns: The nextmost fundamental type ID to be registered,
+
+</description>
+<parameters>
+</parameters>
+<return> The nextmost fundamental type ID to be registered,
+or 0 if the type system ran out of fundamental type IDs.
+</return>
+</function>
+
+<function name="g_value_array_append">
+<description>
+Insert a copy of @value as last element of @value_array.
+
+
+</description>
+<parameters>
+<parameter name="value_array">
+<parameter_description> #GValueArray to add an element to
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> #GValue to copy into #GValueArray
+</parameter_description>
+</parameter>
+</parameters>
+<return> the #GValueArray passed in as @value_array
</return>
</function>
@@ -15673,10 +26336,35 @@ the new thread pool, -1 means no limit
</return>
</function>
+<function name="g_node_find_child">
+<description>
+Finds the first child of a #GNode with the given data.
+
+
+</description>
+<parameters>
+<parameter name="node">
+<parameter_description> a #GNode
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> which types of children are to be searched, one of
+%G_TRAVERSE_ALL, %G_TRAVERSE_LEAVES and %G_TRAVERSE_NON_LEAVES
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> the data to find
+</parameter_description>
+</parameter>
+</parameters>
+<return> the found child #GNode, or %NULL if the data is not found
+</return>
+</function>
+
<function name="g_source_attach">
<description>
Adds a #GSource to a @context so that it will be executed within
-that context.
+that context. Remove it by calling g_source_destroy().
</description>
@@ -15695,6 +26383,31 @@ that context.
</return>
</function>
+<function name="g_closure_remove_invalidate_notifier">
+<description>
+Removes an invalidation notifier.
+
+Notice that notifiers are automatically removed after they are run.
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> a #GClosure
+</parameter_description>
+</parameter>
+<parameter name="notify_data">
+<parameter_description> data which was passed to g_closure_add_invalidate_notifier()
+when registering @notify_func
+</parameter_description>
+</parameter>
+<parameter name="notify_func">
+<parameter_description> the callback function to remove
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_vfprintf">
<description>
An implementation of the standard fprintf() function which supports
@@ -15717,12 +26430,34 @@ positional parameters, as specified in the Single Unix Specification.
</parameter_description>
</parameter>
</parameters>
-<return> the number of characters printed.
+<return> the number of bytes printed.
Since: 2.2
</return>
</function>
+<function name="g_slist_find">
+<description>
+Finds the element in a #GSList which
+contains the given data.
+
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GSList
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> the element data to find
+</parameter_description>
+</parameter>
+</parameters>
+<return> the found #GSList element,
+or %NULL if it is not found
+</return>
+</function>
+
<function name="g_key_file_set_locale_string_list">
<description>
Associates a list of string values for @key and @locale under
@@ -15746,7 +26481,7 @@ Since: 2.6
</parameter_description>
</parameter>
<parameter name="locale">
-<parameter_description> a locale
+<parameter_description> a locale identifier
</parameter_description>
</parameter>
<parameter name="list">
@@ -15816,6 +26551,57 @@ nothing)
</return>
</function>
+<function name="g_value_set_string_take_ownership">
+<description>
+This is an internal function introduced mainly for C marshallers.
+
+Deprecated: 2.4: Use g_value_take_string() instead.
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of type %G_TYPE_STRING
+</parameter_description>
+</parameter>
+<parameter name="v_string">
+<parameter_description> duplicated unowned string to be set
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_value_get_pointer">
+<description>
+Get the contents of a pointer #GValue.
+
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of %G_TYPE_POINTER
+</parameter_description>
+</parameter>
+</parameters>
+<return> pointer contents of @value
+</return>
+</function>
+
+<function name="g_test_rand_double">
+<description>
+Get a reproducible random floating point number,
+see g_test_rand_int() for details on test case random numbers.
+
+
+</description>
+<parameters>
+</parameters>
+<return> a random number from the seeded random number generator.
+
+Since: 2.16
+</return>
+</function>
+
<function name="g_rmdir">
<description>
A wrapper for the POSIX rmdir() function. The rmdir() function
@@ -15920,127 +26706,169 @@ the original strings.
</return>
</function>
-<function name="g_spawn_async">
+<function name="g_lstat">
<description>
-See g_spawn_async_with_pipes() for a full description; this function
-simply calls the g_spawn_async_with_pipes() without any pipes.
+A wrapper for the POSIX lstat() function. The lstat() function is
+like stat() except that in the case of symbolic links, it returns
+information about the symbolic link itself and not the file that it
+refers to. If the system does not support symbolic links g_lstat()
+is identical to g_stat().
-&amp;lt;note&amp;gt;&amp;lt;para&amp;gt;
-If you are writing a GTK+ application, and the program you
-are spawning is a graphical application, too, then you may
-want to use gdk_spawn_on_screen() instead to ensure that
-the spawned program opens its windows on the right screen.
-&amp;lt;/para&amp;gt;&amp;lt;/note&amp;gt;
+See your C library manual for more details about lstat().
</description>
<parameters>
-<parameter name="working_directory">
-<parameter_description> child&apos;s current working directory, or %NULL to inherit parent&apos;s
+<parameter name="filename">
+<parameter_description> a pathname in the GLib file name encoding (UTF-8 on Windows)
</parameter_description>
</parameter>
-<parameter name="argv">
-<parameter_description> child&apos;s argument vector
+<parameter name="buf">
+<parameter_description> a pointer to a &amp;lt;structname&amp;gt;stat&amp;lt;/structname&amp;gt; struct, which
+will be filled with the file information
</parameter_description>
</parameter>
-<parameter name="envp">
-<parameter_description> child&apos;s environment, or %NULL to inherit parent&apos;s
+</parameters>
+<return> 0 if the information was successfully retrieved, -1 if an error
+occurred
+
+Since: 2.6
+</return>
+</function>
+
+<function name="g_signal_override_class_closure">
+<description>
+Overrides the class closure (i.e. the default handler) for the given signal
+for emissions on instances of @instance_type. @instance_type must be derived
+from the type to which the signal belongs.
+
+See g_signal_chain_from_overridden() and
+g_signal_chain_from_overridden_handler() for how to chain up to the
+parent class closure from inside the overridden one.
+
+</description>
+<parameters>
+<parameter name="signal_id">
+<parameter_description> the signal id
</parameter_description>
</parameter>
-<parameter name="flags">
-<parameter_description> flags from #GSpawnFlags
+<parameter name="instance_type">
+<parameter_description> the instance type on which to override the class closure
+for the signal.
</parameter_description>
</parameter>
-<parameter name="child_setup">
-<parameter_description> function to run in the child just before exec()
+<parameter name="class_closure">
+<parameter_description> the closure.
</parameter_description>
</parameter>
-<parameter name="user_data">
-<parameter_description> user data for @child_setup
+</parameters>
+<return></return>
+</function>
+
+<function name="g_string_sprintfa">
+<description>
+Appends a formatted string onto the end of a #GString.
+This function is similar to g_string_sprintf() except that
+the text is appended to the #GString.
+
+Deprecated: This function has been renamed to g_string_append_printf()
+
+</description>
+<parameters>
+<parameter name="string">
+<parameter_description> a #GString
</parameter_description>
</parameter>
-<parameter name="child_pid">
-<parameter_description> return location for child process ID, or %NULL
+<parameter name="format">
+<parameter_description> the string format. See the sprintf() documentation
</parameter_description>
</parameter>
-<parameter name="error">
-<parameter_description> return location for error
+<parameter name="Varargs">
+<parameter_description> the parameters to insert into the format string
</parameter_description>
</parameter>
</parameters>
-<return> %TRUE on success, %FALSE if error is set
-</return>
+<return></return>
</function>
-<function name="g_async_queue_timed_pop">
+<function name="g_value_set_boxed_take_ownership">
<description>
-Pops data from the @queue. If no data is received before @end_time,
-%NULL is returned.
-
-To easily calculate @end_time a combination of g_get_current_time()
-and g_time_val_add() can be used.
+This is an internal function introduced mainly for C marshallers.
+Deprecated: 2.4: Use g_value_take_boxed() instead.
</description>
<parameters>
-<parameter name="queue">
-<parameter_description> a #GAsyncQueue.
+<parameter name="value">
+<parameter_description> a valid #GValue of %G_TYPE_BOXED derived type
</parameter_description>
</parameter>
-<parameter name="end_time">
-<parameter_description> a #GTimeVal, determining the final time.
+<parameter name="v_boxed">
+<parameter_description> duplicated unowned boxed value to be set
</parameter_description>
</parameter>
</parameters>
-<return> data from the queue or %NULL, when no data is
-received before @end_time.
-</return>
+<return></return>
</function>
-<function name="g_uri_list_extract_uris">
+<function name="g_ascii_strtoull">
<description>
-Splits an URI list conforming to the text/uri-list
-mime type defined in RFC 2483 into individual URIs,
-discarding any comments. The URIs are not validated.
+Converts a string to a #guint64 value.
+This function behaves like the standard strtoull() function
+does in the C locale. It does this without actually
+changing the current locale, since that would not be
+thread-safe.
+
+This function is typically used when reading configuration
+files or other non-user input that should be locale independent.
+To handle input from the user you should normally use the
+locale-sensitive system strtoull() function.
+
+If the correct value would cause overflow, %G_MAXUINT64
+is returned, and %ERANGE is stored in %errno. If the base is
+outside the valid range, zero is returned, and %EINVAL is stored
+in %errno. If the string conversion fails, zero is returned, and
+@endptr returns @nptr (if @endptr is non-%NULL).
</description>
<parameters>
-<parameter name="uri_list">
-<parameter_description> an URI list
+<parameter name="nptr">
+<parameter_description> the string to convert to a numeric value.
+</parameter_description>
+</parameter>
+<parameter name="endptr">
+<parameter_description> if non-%NULL, it returns the character after
+the last character used in the conversion.
+</parameter_description>
+</parameter>
+<parameter name="base">
+<parameter_description> to be used for the conversion, 2..36 or 0
</parameter_description>
</parameter>
</parameters>
-<return> a newly allocated %NULL-terminated list of
-strings holding the individual URIs. The array should
-be freed with g_strfreev().
+<return> the #guint64 value or zero on error.
-Since: 2.6
+Since: 2.2
</return>
</function>
-<function name="g_hash_table_insert">
+<function name="g_value_take_param">
<description>
-Inserts a new key and value into a #GHashTable.
+Sets the contents of a %G_TYPE_PARAM #GValue to @param and takes
+over the ownership of the callers reference to @param; the caller
+doesn&apos;t have to unref it any more.
-If the key already exists in the #GHashTable its current value is replaced
-with the new value. If you supplied a @value_destroy_func when creating the
-#GHashTable, the old value is freed using that function. If you supplied
-a @key_destroy_func when creating the #GHashTable, the passed key is freed
-using that function.
+Since: 2.4
</description>
<parameters>
-<parameter name="hash_table">
-<parameter_description> a #GHashTable.
-</parameter_description>
-</parameter>
-<parameter name="key">
-<parameter_description> a key to insert.
+<parameter name="value">
+<parameter_description> a valid #GValue of type %G_TYPE_PARAM
</parameter_description>
</parameter>
-<parameter name="value">
-<parameter_description> the value to associate with the key.
+<parameter name="param">
+<parameter_description> the #GParamSpec to be set
</parameter_description>
</parameter>
</parameters>
@@ -16119,6 +26947,36 @@ returns %TRUE, the traversal is stopped.
<return></return>
</function>
+<function name="g_list_find_custom">
+<description>
+Finds an element in a #GList, using a supplied function to
+find the desired element. It iterates over the list, calling
+the given function which should return 0 when the desired
+element is found. The function takes two #gconstpointer arguments,
+the #GList element&apos;s data as the first argument and the
+given user data.
+
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GList
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> user data passed to the function
+</parameter_description>
+</parameter>
+<parameter name="func">
+<parameter_description> the function to call for each element.
+It should return 0 when the desired element is found
+</parameter_description>
+</parameter>
+</parameters>
+<return> the found #GList element, or %NULL if it is not found
+</return>
+</function>
+
<function name="g_main_context_pending">
<description>
Checks if any sources have pending events for the given context.
@@ -16189,20 +27047,21 @@ don&apos;t want to supply such a function.
</return>
</function>
-<function name="g_main_context_get_poll_func">
+<function name="g_spawn_close_pid">
<description>
-Gets the poll function set by g_main_context_set_poll_func().
-
+On some platforms, notably Windows, the #GPid type represents a resource
+which must be closed to prevent resource leaking. g_spawn_close_pid()
+is provided for this purpose. It should be used on all platforms, even
+though it doesn&apos;t do anything under UNIX.
</description>
<parameters>
-<parameter name="context">
-<parameter_description> a #GMainContext
+<parameter name="pid">
+<parameter_description> The process reference to close
</parameter_description>
</parameter>
</parameters>
-<return> the poll function
-</return>
+<return></return>
</function>
<function name="g_string_chunk_insert_const">
@@ -16278,6 +27137,70 @@ or has no upper case equivalent @c is returned unchanged.
</return>
</function>
+<function name="g_list_nth_data">
+<description>
+Gets the data of the element at the given position.
+
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GList
+</parameter_description>
+</parameter>
+<parameter name="n">
+<parameter_description> the position of the element
+</parameter_description>
+</parameter>
+</parameters>
+<return> the element&apos;s data, or %NULL if the position
+is off the end of the #GList
+</return>
+</function>
+
+<function name="g_closure_ref">
+<description>
+Increments the reference count on a closure to force it staying
+alive while the caller holds a pointer to it.
+
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> #GClosure to increment the reference count on
+</parameter_description>
+</parameter>
+</parameters>
+<return> The @closure passed in, for convenience
+</return>
+</function>
+
+<function name="g_object_class_install_property">
+<description>
+Installs a new property. This is usually done in the class initializer.
+
+Note that it is possible to redefine a property in a derived class,
+by installing a property with the same name. This can be useful at times,
+e.g. to change the range of allowed values or the default value.
+
+</description>
+<parameters>
+<parameter name="oclass">
+<parameter_description> a #GObjectClass
+</parameter_description>
+</parameter>
+<parameter name="property_id">
+<parameter_description> the id for the new property
+</parameter_description>
+</parameter>
+<parameter name="pspec">
+<parameter_description> the #GParamSpec for the new property
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_sequence_remove_range">
<description>
Removes all items in the (@begin, @end) range.
@@ -16301,6 +27224,54 @@ Since: 2.14
<return></return>
</function>
+<function name="g_param_spec_internal">
+<description>
+Creates a new #GParamSpec instance.
+
+A property name consists of segments consisting of ASCII letters and
+digits, separated by either the &apos;-&apos; or &apos;_&apos; character. The first
+character of a property name must be a letter. Names which violate these
+rules lead to undefined behaviour.
+
+When creating and looking up a #GParamSpec, either separator can be
+used, but they cannot be mixed. Using &apos;-&apos; is considerably more
+efficient and in fact required when using property names as detail
+strings for signals.
+
+Beyond the name, #GParamSpec&amp;lt;!-- --&amp;gt;s have two more descriptive
+strings associated with them, the @nick, which should be suitable
+for use as a label for the property in a property editor, and the
+@blurb, which should be a somewhat longer description, suitable for
+e.g. a tooltip. The @nick and @blurb should ideally be localized.
+
+
+</description>
+<parameters>
+<parameter name="param_type">
+<parameter_description> the #GType for the property; must be derived from #G_TYPE_PARAM
+</parameter_description>
+</parameter>
+<parameter name="name">
+<parameter_description> the canonical name of the property
+</parameter_description>
+</parameter>
+<parameter name="nick">
+<parameter_description> the nickname of the property
+</parameter_description>
+</parameter>
+<parameter name="blurb">
+<parameter_description> a short description of the property
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> a combination of #GParamFlags
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly allocated #GParamSpec instance
+</return>
+</function>
+
<function name="g_io_channel_set_line_term">
<description>
This sets the string that #GIOChannel uses to determine
@@ -16313,94 +27284,227 @@ where in the file a line break occurs.
</parameter_description>
</parameter>
<parameter name="line_term">
-<parameter_description> The line termination string. Use %NULL for auto detect.
-Auto detection breaks on &quot;\n&quot;, &quot;\r\n&quot;, &quot;\r&quot;, &quot;\0&quot;, and
-the Unicode paragraph separator. Auto detection should
+<parameter_description> The line termination string. Use %NULL for autodetect.
+Autodetection breaks on &quot;\n&quot;, &quot;\r\n&quot;, &quot;\r&quot;, &quot;\0&quot;, and
+the Unicode paragraph separator. Autodetection should
not be used for anything other than file-based channels.
</parameter_description>
</parameter>
<parameter name="length">
<parameter_description> The length of the termination string. If -1 is passed, the
string is assumed to be nul-terminated. This option allows
-termination strings with embeded nuls.
+termination strings with embedded nuls.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>
-<function name="g_sprintf">
+<function name="g_closure_add_invalidate_notifier">
<description>
-An implementation of the standard sprintf() function which supports
-positional parameters, as specified in the Single Unix Specification.
-
+Registers an invalidation notifier which will be called when the
+@closure is invalidated with g_closure_invalidate(). Invalidation
+notifiers are invoked before finalization notifiers, in an
+unspecified order.
</description>
<parameters>
-<parameter name="string">
-<parameter_description> A pointer to a memory buffer to contain the resulting string. It
-is up to the caller to ensure that the allocated buffer is large
-enough to hold the formatted result
+<parameter name="closure">
+<parameter_description> a #GClosure
</parameter_description>
</parameter>
-<parameter name="format">
-<parameter_description> a standard printf() format string, but notice
-&amp;lt;link linkend=&quot;string-precision&quot;&amp;gt;string precision pitfalls&amp;lt;/link&amp;gt;.
+<parameter name="notify_data">
+<parameter_description> data to pass to @notify_func
</parameter_description>
</parameter>
-<parameter name="Varargs">
-<parameter_description> the arguments to insert in the output.
+<parameter name="notify_func">
+<parameter_description> the callback function to register
</parameter_description>
</parameter>
</parameters>
-<return> the number of characters printed.
+<return></return>
+</function>
-Since: 2.2
+<function name="g_slist_free">
+<description>
+Frees all of the memory used by a #GSList.
+The freed elements are returned to the slice allocator.
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GSList
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_type_module_register_enum">
+<description>
+Looks up or registers an enumeration that is implemented with a particular
+type plugin. If a type with name @type_name was previously registered,
+the #GType identifier for the type is returned, otherwise the type
+is newly registered, and the resulting #GType identifier returned.
+
+As long as any instances of the type exist, the type plugin will
+not be unloaded.
+
+Since: 2.6
+
+
+</description>
+<parameters>
+<parameter name="module">
+<parameter_description> a #GTypeModule
+</parameter_description>
+</parameter>
+<parameter name="name">
+<parameter_description> name for the type
+</parameter_description>
+</parameter>
+<parameter name="const_static_values">
+<parameter_description> an array of #GEnumValue structs for the
+possible enumeration values. The array is
+terminated by a struct with all members being
+0.
+</parameter_description>
+</parameter>
+</parameters>
+<return> the new or existing type ID
</return>
</function>
-<function name="g_strncasecmp">
+<function name="g_param_spec_get_redirect_target">
<description>
-A case-insensitive string comparison, corresponding to the standard
-strncasecmp() function on platforms which support it.
-It is similar to g_strcasecmp() except it only compares the first @n
-characters of the strings.
+If the paramspec redirects operations to another paramspec,
+Returns: paramspec to which requests on this paramspec should
+</description>
+<parameters>
+<parameter name="pspec">
+<parameter_description> a #GParamSpec
+</parameter_description>
+</parameter>
+</parameters>
+<return> paramspec to which requests on this paramspec should
+be redirected, or %NULL if none.
+</return>
+</function>
+
+<function name="g_type_add_interface_dynamic">
+<description>
+Adds the dynamic @interface_type to @instantiable_type. The information
+contained in the #GTypePlugin structure pointed to by @plugin
+is used to manage the relationship.
</description>
<parameters>
-<parameter name="s1">
-<parameter_description> a string.
+<parameter name="instance_type">
+<parameter_description> the #GType value of an instantiable type.
</parameter_description>
</parameter>
-<parameter name="s2">
-<parameter_description> a string to compare with @s1.
+<parameter name="interface_type">
+<parameter_description> the #GType value of an interface type.
</parameter_description>
</parameter>
-<parameter name="n">
-<parameter_description> the maximum number of characters to compare.
+<parameter name="plugin">
+<parameter_description> the #GTypePlugin structure to retrieve the #GInterfaceInfo from.
</parameter_description>
</parameter>
</parameters>
-<return> 0 if the strings match, a negative value if @s1 &amp;lt; @s2,
-or a positive value if @s1 &amp;gt; @s2.
+<return></return>
+</function>
-Deprecated:2.2: The problem with g_strncasecmp() is that it does the
-comparison by calling toupper()/tolower(). These functions are
-locale-specific and operate on single bytes. However, it is impossible
-to handle things correctly from an I18N standpoint by operating on
-bytes, since characters may be multibyte. Thus g_strncasecmp() is
-broken if your string is guaranteed to be ASCII, since it&apos;s
-locale-sensitive, and it&apos;s broken if your string is localized, since
-it doesn&apos;t work on many encodings at all, including UTF-8, EUC-JP,
-etc.
+<function name="g_string_chunk_insert">
+<description>
+Adds a copy of @string to the #GStringChunk.
+It returns a pointer to the new copy of the string
+in the #GStringChunk. The characters in the string
+can be changed, if necessary, though you should not
+change anything after the end of the string.
-There are therefore two replacement functions: g_ascii_strncasecmp(),
-which only works on ASCII and is not locale-sensitive, and
-g_utf8_casefold(), which is good for case-insensitive sorting of UTF-8.
+Unlike g_string_chunk_insert_const(), this function
+does not check for duplicates. Also strings added
+with g_string_chunk_insert() will not be searched
+by g_string_chunk_insert_const() when looking for
+duplicates.
+
+
+</description>
+<parameters>
+<parameter name="chunk">
+<parameter_description> a #GStringChunk
+</parameter_description>
+</parameter>
+<parameter name="string">
+<parameter_description> the string to add
+</parameter_description>
+</parameter>
+</parameters>
+<return> a pointer to the copy of @string within
+the #GStringChunk
</return>
</function>
+<function name="g_markup_parse_context_pop">
+<description>
+Completes the process of a temporary sub-parser redirection.
+
+This function exists to collect the user_data allocated by a
+matching call to g_markup_parse_context_push(). It must be called
+in the end_element handler corresponding to the start_element
+handler during which g_markup_parse_context_push() was called. You
+must not call this function from the error callback -- the
+@user_data is provided directly to the callback in that case.
+
+This function is not intended to be directly called by users
+interested in invoking subparsers. Instead, it is intended to be
+used by the subparsers themselves to implement a higher-level
+interface.
+
+
+</description>
+<parameters>
+<parameter name="context">
+<parameter_description> a #GMarkupParseContext
+</parameter_description>
+</parameter>
+</parameters>
+<return> the user_data passed to g_markup_parse_context_push().
+
+Since: 2.18
+</return>
+</function>
+
+<function name="g_test_maximized_result">
+<description>
+Report the result of a performance or measurement test.
+The test should generally strive to maximize the reported
+quantities (larger values are better than smaller ones),
+this and @maximized_quantity can determine sorting
+order for test result reports.
+
+Since: 2.16
+
+</description>
+<parameters>
+<parameter name="maximized_quantity">
+<parameter_description> the reported value
+</parameter_description>
+</parameter>
+<parameter name="format">
+<parameter_description> the format string of the report message
+</parameter_description>
+</parameter>
+<parameter name="Varargs">
+<parameter_description> arguments to pass to the printf() function
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_unicode_canonical_decomposition">
<description>
Computes the canonical decomposition of a Unicode character.
@@ -16439,47 +27543,109 @@ Since: 2.14
</return>
</function>
-<function name="iconv_cache_bucket_expire">
+<function name="g_type_register_dynamic">
<description>
-Expires a single cache bucket @bucket. This should only ever be
-called on a bucket that currently has no used iconv descriptors
-open.
+Registers @type_name as the name of a new dynamic type derived from
+@parent_type. The type system uses the information contained in the
+#GTypePlugin structure pointed to by @plugin to manage the type and its
+instances (if not abstract). The value of @flags determines the nature
+(e.g. abstract or not) of the type.
-@node is not a required argument. If @node is not supplied, we
-search for it ourselves.
</description>
<parameters>
-<parameter name="node">
-<parameter_description> cache bucket&apos;s node
+<parameter name="parent_type">
+<parameter_description> Type from which this type will be derived.
</parameter_description>
</parameter>
-<parameter name="bucket">
-<parameter_description> cache bucket
+<parameter name="type_name">
+<parameter_description> 0-terminated string used as the name of the new type.
+</parameter_description>
+</parameter>
+<parameter name="plugin">
+<parameter_description> The #GTypePlugin structure to retrieve the #GTypeInfo from.
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> Bitwise combination of #GTypeFlags values.
</parameter_description>
</parameter>
</parameters>
-<return></return>
+<return> The new type identifier or #G_TYPE_INVALID if registration failed.
+</return>
</function>
-<function name="g_tree_new_with_data">
+<function name="g_list_nth_prev">
<description>
-Creates a new #GTree with a comparison function that accepts user data.
-See g_tree_new() for more details.
+Gets the element @n places before @list.
</description>
<parameters>
-<parameter name="key_compare_func">
-<parameter_description> qsort()-style comparison function.
+<parameter name="list">
+<parameter_description> a #GList
</parameter_description>
</parameter>
-<parameter name="key_compare_data">
-<parameter_description> data to pass to comparison function.
+<parameter name="n">
+<parameter_description> the position of the element, counting from 0
</parameter_description>
</parameter>
</parameters>
-<return> a new #GTree.
+<return> the element, or %NULL if the position is
+off the end of the #GList
+</return>
+</function>
+
+<function name="g_child_watch_source_new">
+<description>
+Creates a new child_watch source.
+
+The source will not initially be associated with any #GMainContext
+and must be added to one with g_source_attach() before it will be
+executed.
+
+Note that child watch sources can only be used in conjunction with
+&amp;lt;literal&amp;gt;g_spawn...&amp;lt;/literal&amp;gt; when the %G_SPAWN_DO_NOT_REAP_CHILD
+flag is used.
+
+Note that on platforms where #GPid must be explicitly closed
+(see g_spawn_close_pid()) @pid must not be closed while the
+source is still active. Typically, you will want to call
+g_spawn_close_pid() in the callback function for the source.
+
+Note further that using g_child_watch_source_new() is not
+compatible with calling &amp;lt;literal&amp;gt;waitpid(-1)&amp;lt;/literal&amp;gt; in
+the application. Calling waitpid() for individual pids will
+still work fine.
+
+
+</description>
+<parameters>
+<parameter name="pid">
+<parameter_description> process to watch. On POSIX the pid of a child process. On
+Windows a handle for a process (which doesn&apos;t have to be a child).
+</parameter_description>
+</parameter>
+</parameters>
+<return> the newly-created child watch source
+
+Since: 2.4
+</return>
+</function>
+
+<function name="g_node_get_root">
+<description>
+Gets the root of a tree.
+
+
+</description>
+<parameters>
+<parameter name="node">
+<parameter_description> a #GNode
+</parameter_description>
+</parameter>
+</parameters>
+<return> the root of the tree
</return>
</function>
@@ -16488,7 +27654,6 @@ See g_tree_new() for more details.
Removes the specified group, @group_name,
from the key file.
-Since: 2.6
</description>
<parameters>
@@ -16505,7 +27670,10 @@ Since: 2.6
</parameter_description>
</parameter>
</parameters>
-<return></return>
+<return> %TRUE if the group was removed, %FALSE otherwise
+
+Since: 2.6
+</return>
</function>
<function name="g_rand_int">
@@ -16523,6 +27691,50 @@ Return value: A random number.
</return>
</function>
+<function name="g_test_bug_base">
+<description>
+Specify the base URI for bug reports.
+
+The base URI is used to construct bug report messages for
+g_test_message() when g_test_bug() is called.
+Calling this function outside of a test case sets the
+default base URI for all test cases. Calling it from within
+a test case changes the base URI for the scope of the test
+case only.
+Bug URIs are constructed by appending a bug specific URI
+portion to @uri_pattern, or by replacing the special string
+&apos;%s&apos; within @uri_pattern if that is present.
+
+Since: 2.16
+
+</description>
+<parameters>
+<parameter name="uri_pattern">
+<parameter_description> the base pattern for bug URIs
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_value_copy">
+<description>
+Copies the value of @src_value into @dest_value.
+
+</description>
+<parameters>
+<parameter name="src_value">
+<parameter_description> An initialized #GValue structure.
+</parameter_description>
+</parameter>
+<parameter name="dest_value">
+<parameter_description> An initialized #GValue structure of the same type as @src_value.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_unichar_iswide_cjk">
<description>
Determines if a character is typically rendered in a double-width
@@ -16587,9 +27799,8 @@ Since: 2.12
<function name="g_io_channel_get_buffer_condition">
<description>
This function returns a #GIOCondition depending on whether there
-is data to be read/space to write data in the
-internal buffers in the #GIOChannel. Only the flags %G_IO_IN and
-%G_IO_OUT may be set.
+is data to be read/space to write data in the internal buffers in
+the #GIOChannel. Only the flags %G_IO_IN and %G_IO_OUT may be set.
</description>
@@ -16633,6 +27844,45 @@ order searches in contrast to g_hash_table_lookup().
<return></return>
</function>
+<function name="g_slist_nth_data">
+<description>
+Gets the data of the element at the given position.
+
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GSList
+</parameter_description>
+</parameter>
+<parameter name="n">
+<parameter_description> the position of the element
+</parameter_description>
+</parameter>
+</parameters>
+<return> the element&apos;s data, or %NULL if the position
+is off the end of the #GSList
+</return>
+</function>
+
+<function name="g_test_create_suite">
+<description>
+Create a new test suite with the name @suite_name.
+
+
+</description>
+<parameters>
+<parameter name="suite_name">
+<parameter_description> a name for the suite
+</parameter_description>
+</parameter>
+</parameters>
+<return> A newly allocated #GTestSuite instance.
+
+Since: 2.16
+</return>
+</function>
+
<function name="g_key_file_get_locale_string_list">
<description>
Return value: a newly allocated %NULL-terminated string array
@@ -16652,7 +27902,7 @@ Return value: a newly allocated %NULL-terminated string array
</parameter_description>
</parameter>
<parameter name="locale">
-<parameter_description> a locale
+<parameter_description> a locale identifier or %NULL
</parameter_description>
</parameter>
<parameter name="length">
@@ -16672,6 +27922,52 @@ Since: 2.6
</return>
</function>
+<function name="g_cclosure_new_object">
+<description>
+A variant of g_cclosure_new() which uses @object as @user_data and
+calls g_object_watch_closure() on @object and the created
+closure. This function is useful when you have a callback closely
+associated with a #GObject, and want the callback to no longer run
+after the object is is freed.
+
+
+</description>
+<parameters>
+<parameter name="callback_func">
+<parameter_description> the function to invoke
+</parameter_description>
+</parameter>
+<parameter name="object">
+<parameter_description> a #GObject pointer to pass to @callback_func
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GCClosure
+</return>
+</function>
+
+<function name="g_sequence_append">
+<description>
+Adds a new item to the end of @seq.
+
+
+</description>
+<parameters>
+<parameter name="seq">
+<parameter_description> a #GSequencePointer
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> the data for the new item
+</parameter_description>
+</parameter>
+</parameters>
+<return> an iterator pointing to the new item
+
+Since: 2.14
+</return>
+</function>
+
<function name="g_async_queue_sort_unlocked">
<description>
Sorts @queue using @func.
@@ -16703,42 +27999,24 @@ the second element.
<return></return>
</function>
-<function name="g_io_channel_read_line">
+<function name="g_string_prepend_c">
<description>
-Reads a line, including the terminating character(s),
-from a #GIOChannel into a newly-allocated string.
-@str_return will contain allocated memory if the return
-is %G_IO_STATUS_NORMAL.
+Adds a byte onto the start of a #GString,
+expanding it if necessary.
</description>
<parameters>
-<parameter name="channel">
-<parameter_description> a #GIOChannel
-</parameter_description>
-</parameter>
-<parameter name="str_return">
-<parameter_description> The line read from the #GIOChannel, including the
-line terminator. This data should be freed with g_free()
-when no longer needed. This is a nul-terminated string.
-If a @length of zero is returned, this will be %NULL instead.
-</parameter_description>
-</parameter>
-<parameter name="length">
-<parameter_description> location to store length of the read data, or %NULL
-</parameter_description>
-</parameter>
-<parameter name="terminator_pos">
-<parameter_description> location to store position of line terminator, or %NULL
+<parameter name="string">
+<parameter_description> a #GString
</parameter_description>
</parameter>
-<parameter name="error">
-<parameter_description> A location to return an error of type #GConvertError
-or #GIOChannelError
+<parameter name="c">
+<parameter_description> the byte to prepend on the start of the #GString
</parameter_description>
</parameter>
</parameters>
-<return> the status of the operation.
+<return> @string
</return>
</function>
@@ -16764,11 +28042,110 @@ Since: 2.14
</return>
</function>
+<function name="g_test_init">
+<description>
+Initialize the GLib testing framework, e.g. by seeding the
+test random number generator, the name for g_get_prgname()
+and parsing test related command line args.
+So far, the following arguments are understood:
+&amp;lt;variablelist&amp;gt;
+&amp;lt;varlistentry&amp;gt;
+&amp;lt;term&amp;gt;&amp;lt;option&amp;gt;-l&amp;lt;/option&amp;gt;&amp;lt;/term&amp;gt;
+&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;
+list test cases available in a test executable.
+&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
+&amp;lt;/varlistentry&amp;gt;
+&amp;lt;varlistentry&amp;gt;
+&amp;lt;term&amp;gt;&amp;lt;option&amp;gt;--seed=&amp;lt;replaceable&amp;gt;RANDOMSEED&amp;lt;/replaceable&amp;gt;&amp;lt;/option&amp;gt;&amp;lt;/term&amp;gt;
+&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;
+provide a random seed to reproduce test runs using random numbers.
+&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
+&amp;lt;/varlistentry&amp;gt;
+&amp;lt;varlistentry&amp;gt;
+&amp;lt;term&amp;gt;&amp;lt;option&amp;gt;--verbose&amp;lt;/option&amp;gt;&amp;lt;/term&amp;gt;
+&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;run tests verbosely.&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
+&amp;lt;/varlistentry&amp;gt;
+&amp;lt;varlistentry&amp;gt;
+&amp;lt;term&amp;gt;&amp;lt;option&amp;gt;-q&amp;lt;/option&amp;gt;, &amp;lt;option&amp;gt;--quiet&amp;lt;/option&amp;gt;&amp;lt;/term&amp;gt;
+&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;run tests quietly.&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
+&amp;lt;/varlistentry&amp;gt;
+&amp;lt;varlistentry&amp;gt;
+&amp;lt;term&amp;gt;&amp;lt;option&amp;gt;-p &amp;lt;replaceable&amp;gt;TESTPATH&amp;lt;/replaceable&amp;gt;&amp;lt;/option&amp;gt;&amp;lt;/term&amp;gt;
+&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;
+execute all tests matching &amp;lt;replaceable&amp;gt;TESTPATH&amp;lt;/replaceable&amp;gt;.
+&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
+&amp;lt;/varlistentry&amp;gt;
+&amp;lt;varlistentry&amp;gt;
+&amp;lt;term&amp;gt;&amp;lt;option&amp;gt;-m {perf|slow|thorough|quick}&amp;lt;/option&amp;gt;&amp;lt;/term&amp;gt;
+&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;
+execute tests according to these test modes:
+&amp;lt;variablelist&amp;gt;
+&amp;lt;varlistentry&amp;gt;
+&amp;lt;term&amp;gt;perf&amp;lt;/term&amp;gt;
+&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;
+performance tests, may take long and report results.
+&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
+&amp;lt;/varlistentry&amp;gt;
+&amp;lt;varlistentry&amp;gt;
+&amp;lt;term&amp;gt;slow, thorough&amp;lt;/term&amp;gt;
+&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;
+slow and thorough tests, may take quite long and
+maximize coverage.
+&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
+&amp;lt;/varlistentry&amp;gt;
+&amp;lt;varlistentry&amp;gt;
+&amp;lt;term&amp;gt;quick&amp;lt;/term&amp;gt;
+&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;
+quick tests, should run really quickly and give good coverage.
+&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
+&amp;lt;/varlistentry&amp;gt;
+&amp;lt;/variablelist&amp;gt;
+&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
+&amp;lt;/varlistentry&amp;gt;
+&amp;lt;varlistentry&amp;gt;
+&amp;lt;term&amp;gt;&amp;lt;option&amp;gt;--debug-log&amp;lt;/option&amp;gt;&amp;lt;/term&amp;gt;
+&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;debug test logging output.&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
+&amp;lt;/varlistentry&amp;gt;
+&amp;lt;varlistentry&amp;gt;
+&amp;lt;term&amp;gt;&amp;lt;option&amp;gt;-k&amp;lt;/option&amp;gt;, &amp;lt;option&amp;gt;--keep-going&amp;lt;/option&amp;gt;&amp;lt;/term&amp;gt;
+&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;gtester-specific argument.&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
+&amp;lt;/varlistentry&amp;gt;
+&amp;lt;varlistentry&amp;gt;
+&amp;lt;term&amp;gt;&amp;lt;option&amp;gt;--GTestLogFD &amp;lt;replaceable&amp;gt;N&amp;lt;/replaceable&amp;gt;&amp;lt;/option&amp;gt;&amp;lt;/term&amp;gt;
+&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;gtester-specific argument.&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
+&amp;lt;/varlistentry&amp;gt;
+&amp;lt;varlistentry&amp;gt;
+&amp;lt;term&amp;gt;&amp;lt;option&amp;gt;--GTestSkipCount &amp;lt;replaceable&amp;gt;N&amp;lt;/replaceable&amp;gt;&amp;lt;/option&amp;gt;&amp;lt;/term&amp;gt;
+&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;gtester-specific argument.&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
+&amp;lt;/varlistentry&amp;gt;
+&amp;lt;/variablelist&amp;gt;
+
+Since: 2.16
+
+</description>
+<parameters>
+<parameter name="argc">
+<parameter_description> Address of the @argc parameter of the main() function.
+Changed if any arguments were handled.
+</parameter_description>
+</parameter>
+<parameter name="argv">
+<parameter_description> Address of the @argv parameter of main().
+Any parameters understood by g_test_init() stripped before return.
+</parameter_description>
+</parameter>
+<parameter name="Varargs">
+<parameter_description> Reserved for future extension. Currently, you must pass %NULL.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_key_file_set_locale_string">
<description>
-Associates a string value for @key and @locale under
-@group_name. If the translation for @key cannot be found
-then it is created.
+Associates a string value for @key and @locale under @group_name.
+If the translation for @key cannot be found then it is created.
Since: 2.6
@@ -16787,7 +28164,7 @@ Since: 2.6
</parameter_description>
</parameter>
<parameter name="locale">
-<parameter_description> a locale
+<parameter_description> a locale identifier
</parameter_description>
</parameter>
<parameter name="string">
@@ -16864,7 +28241,7 @@ freeing or modifying @string then the behaviour is undefined.
To retrieve all the non-overlapping matches of the pattern in
string you can use g_match_info_next().
-&amp;lt;informalexample&amp;gt;&amp;lt;programlisting&amp;gt;
+|[
static void
print_uppercase_words (const gchar *string)
{
@@ -16890,7 +28267,7 @@ g_printerr (&quot;Error while matching: %s\n&quot;, error-&amp;gt;message);
g_error_free (error);
}
}
-&amp;lt;/programlisting&amp;gt;&amp;lt;/informalexample&amp;gt;
+]|
</description>
@@ -16939,6 +28316,12 @@ g_convert(), to convert from the current locale&apos;s encoding to some
other encoding. (Frequently g_locale_to_utf8() and g_locale_from_utf8()
are nice shortcuts, though.)
+On Windows the character set returned by this function is the
+so-called system default ANSI code-page. That is the character set
+used by the &quot;narrow&quot; versions of C library and Win32 functions that
+handle file names. It might be different from the character set
+used by the C library&apos;s current locale.
+
The return value is %TRUE if the locale&apos;s encoding is UTF-8, in that
case you can perhaps avoid calling g_convert().
@@ -16960,8 +28343,8 @@ freed.
<function name="g_key_file_set_string_list">
<description>
Associates a list of string values for @key under @group_name.
-If @key cannot be found then it is created. If @group_name
-cannot be found then it is created.
+If @key cannot be found then it is created.
+If @group_name cannot be found then it is created.
Since: 2.6
@@ -16980,11 +28363,11 @@ Since: 2.6
</parameter_description>
</parameter>
<parameter name="list">
-<parameter_description> an array of locale string values
+<parameter_description> an array of string values
</parameter_description>
</parameter>
<parameter name="length">
-<parameter_description> number of locale string values in @list
+<parameter_description> number of string values in @list
</parameter_description>
</parameter>
</parameters>
@@ -17002,6 +28385,13 @@ Note that this function doesn&apos;t protect whitespace and line endings
from being processed according to the XML rules for normalization
of line endings and attribute values.
+Note also that if given a string containing them, this function
+will produce character references in the range of &amp;amp;#x1; ..
+&amp;amp;#x1f; for all control sequences except for tabstop, newline
+and carriage return. The character references in this range are
+not valid XML 1.0, but they are valid XML 1.1 and will be accepted
+by the GMarkup parser.
+
</description>
<parameters>
@@ -17018,6 +28408,73 @@ of line endings and attribute values.
</return>
</function>
+<function name="g_object_remove_toggle_ref">
+<description>
+Removes a reference added with g_object_add_toggle_ref(). The
+reference count of the object is decreased by one.
+
+Since: 2.8
+
+</description>
+<parameters>
+<parameter name="object">
+<parameter_description> a #GObject
+</parameter_description>
+</parameter>
+<parameter name="notify">
+<parameter_description> a function to call when this reference is the
+last reference to the object, or is no longer
+the last reference.
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> data to pass to @notify
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_param_spec_override">
+<description>
+Creates a new property of type #GParamSpecOverride. This is used
+to direct operations to another paramspec, and will not be directly
+useful unless you are implementing a new base type similar to GObject.
+
+Since: 2.4
+
+
+</description>
+<parameters>
+<parameter name="name">
+<parameter_description> the name of the property.
+</parameter_description>
+</parameter>
+<parameter name="overridden">
+<parameter_description> The property that is being overridden
+</parameter_description>
+</parameter>
+</parameters>
+<return> the newly created #GParamSpec
+</return>
+</function>
+
+<function name="g_type_value_table_peek">
+<description>
+Returns: Location of the #GTypeValueTable associated with @type or
+
+</description>
+<parameters>
+<parameter name="type">
+<parameter_description> A #GType value.
+</parameter_description>
+</parameter>
+</parameters>
+<return> Location of the #GTypeValueTable associated with @type or
+%NULL if there is no #GTypeValueTable associated with @type.
+</return>
+</function>
+
<function name="g_option_context_parse">
<description>
Parses the command line arguments, recognizing options
@@ -17070,23 +28527,104 @@ Since: 2.6
</return>
</function>
-<function name="g_intern_static_string">
+<function name="g_strdup_value_contents">
<description>
-Returns: a canonical representation for the string
+Return a newly allocated string, which describes the contents of a
+#GValue. The main purpose of this function is to describe #GValue
+contents for debugging output, the way in which the contents are
+described may change between different GLib versions.
+
</description>
<parameters>
-<parameter name="string">
-<parameter_description> a static string
+<parameter name="value">
+<parameter_description> #GValue which contents are to be described.
</parameter_description>
</parameter>
</parameters>
-<return> a canonical representation for the string
+<return> Newly allocated string.
+</return>
+</function>
-Since: 2.10
+<function name="g_param_spec_uint">
+<description>
+Creates a new #GParamSpecUInt instance specifying a %G_TYPE_UINT property.
+
+See g_param_spec_internal() for details on property names.
+
+
+</description>
+<parameters>
+<parameter name="name">
+<parameter_description> canonical name of the property specified
+</parameter_description>
+</parameter>
+<parameter name="nick">
+<parameter_description> nick name for the property specified
+</parameter_description>
+</parameter>
+<parameter name="blurb">
+<parameter_description> description of the property specified
+</parameter_description>
+</parameter>
+<parameter name="minimum">
+<parameter_description> minimum value for the property specified
+</parameter_description>
+</parameter>
+<parameter name="maximum">
+<parameter_description> maximum value for the property specified
+</parameter_description>
+</parameter>
+<parameter name="default_value">
+<parameter_description> default value for the property specified
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> flags for the property specified
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly created parameter specification
</return>
</function>
+<function name="g_signal_stop_emission_by_name">
+<description>
+Stops a signal&apos;s current emission.
+
+This is just like g_signal_stop_emission() except it will look up the
+signal id for you.
+
+</description>
+<parameters>
+<parameter name="instance">
+<parameter_description> the object whose signal handlers you wish to stop.
+</parameter_description>
+</parameter>
+<parameter name="detailed_signal">
+<parameter_description> a string of the form &quot;signal-name::detail&quot;.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_closure_unref">
+<description>
+Decrements the reference count of a closure after it was previously
+incremented by the same caller. If no other callers are using the
+closure, then the closure will be destroyed and freed.
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> #GClosure to decrement the reference count on
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_strsplit">
<description>
Splits a string into a maximum of @max_tokens pieces, using the given
@@ -17139,37 +28677,213 @@ Returns: %TRUE if the queue is empty.
</return>
</function>
-<function name="g_hash_table_new_full">
+<function name="g_bookmark_file_set_mime_type">
<description>
-Creates a new #GHashTable like g_hash_table_new() with a reference count
-of 1 and allows to specify functions to free the memory allocated for the
-key and value that get called when removing the entry from the #GHashTable.
+Sets @mime_type as the MIME type of the bookmark for @uri.
+If a bookmark for @uri cannot be found then it is created.
+
+Since: 2.12
</description>
<parameters>
-<parameter name="hash_func">
-<parameter_description> a function to create a hash value from a key.
+<parameter name="bookmark">
+<parameter_description> a #GBookmarkFile
</parameter_description>
</parameter>
-<parameter name="key_equal_func">
-<parameter_description> a function to check two keys for equality.
+<parameter name="uri">
+<parameter_description> a valid URI
</parameter_description>
</parameter>
-<parameter name="key_destroy_func">
-<parameter_description> a function to free the memory allocated for the key
-used when removing the entry from the #GHashTable or %NULL if you
-don&apos;t want to supply such a function.
+<parameter name="mime_type">
+<parameter_description> a MIME type
</parameter_description>
</parameter>
-<parameter name="value_destroy_func">
-<parameter_description> a function to free the memory allocated for the
-value used when removing the entry from the #GHashTable or %NULL if
-you don&apos;t want to supply such a function.
+</parameters>
+<return></return>
+</function>
+
+<function name="g_error_free">
+<description>
+Frees a #GError and associated resources.
+
+
+</description>
+<parameters>
+<parameter name="error">
+<parameter_description> a #GError
</parameter_description>
</parameter>
</parameters>
-<return> a new #GHashTable.
+<return></return>
+</function>
+
+<function name="g_test_queue_destroy">
+<description>
+This function enqueus a callback @destroy_func() to be executed
+during the next test case teardown phase. This is most useful
+to auto destruct allocted test resources at the end of a test run.
+Resources are released in reverse queue order, that means enqueueing
+callback A before callback B will cause B() to be called before
+A() during teardown.
+
+Since: 2.16
+
+</description>
+<parameters>
+<parameter name="destroy_func">
+<parameter_description> Destroy callback for teardown phase.
+</parameter_description>
+</parameter>
+<parameter name="destroy_data">
+<parameter_description> Destroy callback data.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_type_class_add_private">
+<description>
+Registers a private structure for an instantiatable type;
+when an object is allocated, the private structures for
+the type and all of its parent types are allocated
+sequentially in the same memory block as the public
+structures. This function should be called in the
+type&apos;s class_init() function. The private structure can
+be retrieved using the G_TYPE_INSTANCE_GET_PRIVATE() macro.
+The following example shows attaching a private structure
+&amp;lt;structname&amp;gt;MyObjectPrivate&amp;lt;/structname&amp;gt; to an object
+&amp;lt;structname&amp;gt;MyObject&amp;lt;/structname&amp;gt; defined in the standard GObject
+fashion.
+
+|[
+typedef struct _MyObjectPrivate MyObjectPrivate;
+
+struct _MyObjectPrivate {
+int some_field;
+};
+
+#define MY_OBJECT_GET_PRIVATE(o) \
+(G_TYPE_INSTANCE_GET_PRIVATE ((o), MY_TYPE_OBJECT, MyObjectPrivate))
+
+static void
+my_object_class_init (MyObjectClass *klass)
+{
+g_type_class_add_private (klass, sizeof (MyObjectPrivate));
+}
+
+static int
+my_object_get_some_field (MyObject *my_object)
+{
+MyObjectPrivate *priv = MY_OBJECT_GET_PRIVATE (my_object);
+
+return priv-&amp;gt;some_field;
+}
+]|
+
+Since: 2.4
+
+</description>
+<parameters>
+<parameter name="g_class">
+<parameter_description> class structure for an instantiatable type
+</parameter_description>
+</parameter>
+<parameter name="private_size">
+<parameter_description> size of private structure.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_signal_list_ids">
+<description>
+Lists the signals by id that a certain instance or interface type
+created. Further information about the signals can be acquired through
+g_signal_query().
+
+
+</description>
+<parameters>
+<parameter name="itype">
+<parameter_description> Instance or interface type.
+</parameter_description>
+</parameter>
+<parameter name="n_ids">
+<parameter_description> Location to store the number of signal ids for @itype.
+</parameter_description>
+</parameter>
+</parameters>
+<return> Newly allocated array of signal IDs.
+</return>
+</function>
+
+<function name="g_signal_new">
+<description>
+Creates a new signal. (This is usually done in the class initializer.)
+
+A signal name consists of segments consisting of ASCII letters and
+digits, separated by either the &apos;-&apos; or &apos;_&apos; character. The first
+character of a signal name must be a letter. Names which violate these
+rules lead to undefined behaviour of the GSignal system.
+
+When registering a signal and looking up a signal, either separator can
+be used, but they cannot be mixed.
+
+
+</description>
+<parameters>
+<parameter name="signal_name">
+<parameter_description> the name for the signal
+</parameter_description>
+</parameter>
+<parameter name="itype">
+<parameter_description> the type this signal pertains to. It will also pertain to
+types which are derived from this type.
+</parameter_description>
+</parameter>
+<parameter name="signal_flags">
+<parameter_description> a combination of #GSignalFlags specifying detail of when
+the default handler is to be invoked. You should at least specify
+%G_SIGNAL_RUN_FIRST or %G_SIGNAL_RUN_LAST.
+</parameter_description>
+</parameter>
+<parameter name="class_offset">
+<parameter_description> The offset of the function pointer in the class structure
+for this type. Used to invoke a class method generically. Pass 0 to
+not associate a class method with this signal.
+</parameter_description>
+</parameter>
+<parameter name="accumulator">
+<parameter_description> the accumulator for this signal; may be %NULL.
+</parameter_description>
+</parameter>
+<parameter name="accu_data">
+<parameter_description> user data for the @accumulator.
+</parameter_description>
+</parameter>
+<parameter name="c_marshaller">
+<parameter_description> the function to translate arrays of parameter values to
+signal emissions into C language callback invocations.
+</parameter_description>
+</parameter>
+<parameter name="return_type">
+<parameter_description> the type of return value, or #G_TYPE_NONE for a signal
+without a return value.
+</parameter_description>
+</parameter>
+<parameter name="n_params">
+<parameter_description> the number of parameter types to follow.
+</parameter_description>
+</parameter>
+<parameter name="Varargs">
+<parameter_description> a list of types, one for each parameter.
+</parameter_description>
+</parameter>
+</parameters>
+<return> the signal id
</return>
</function>
@@ -17312,6 +29026,28 @@ separator. You need to enclose such paths with single quotes, like
</return>
</function>
+<function name="g_strcmp0">
+<description>
+Compares @str1 and @str2 like strcmp(). Handles %NULL strings gracefully.
+
+
+</description>
+<parameters>
+<parameter name="str1">
+<parameter_description> a C string or %NULL
+</parameter_description>
+</parameter>
+<parameter name="str2">
+<parameter_description> another C string or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> -1, 0 or 1, if @str1 is &amp;lt;, == or &amp;gt; than @str2.
+
+Since: 2.16
+</return>
+</function>
+
<function name="g_sequence_sort">
<description>
Sorts @seq using @cmp_func.
@@ -17385,6 +29121,24 @@ Since: 2.8
</return>
</function>
+<function name="g_value_set_string">
+<description>
+Set the contents of a %G_TYPE_STRING #GValue to @v_string.
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of type %G_TYPE_STRING
+</parameter_description>
+</parameter>
+<parameter name="v_string">
+<parameter_description> caller-owned string to be duplicated for the #GValue
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_io_channel_write_chars">
<description>
Replacement for g_io_channel_write() with the new API.
@@ -17419,7 +29173,7 @@ to @count if @count &amp;gt;= 0.
</parameter_description>
</parameter>
<parameter name="error">
-<parameter_description> A location to return an error of type #GConvertError
+<parameter_description> a location to return an error of type #GConvertError
or #GIOChannelError
</parameter_description>
</parameter>
@@ -17428,6 +29182,24 @@ or #GIOChannelError
</return>
</function>
+<function name="g_object_notify">
+<description>
+Emits a &quot;notify&quot; signal for the property @property_name on @object.
+
+</description>
+<parameters>
+<parameter name="object">
+<parameter_description> a #GObject
+</parameter_description>
+</parameter>
+<parameter name="property_name">
+<parameter_description> the name of a property installed on the class of @object.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_io_channel_get_flags">
<description>
Gets the current flags for a #GIOChannel, including read-only
@@ -17437,7 +29209,7 @@ The values of the flags %G_IO_FLAG_IS_READABLE and %G_IO_FLAG_IS_WRITEABLE
are cached for internal use by the channel when it is created.
If they should change at some later point (e.g. partial shutdown
of a socket with the UNIX shutdown() function), the user
-should immediately call g_io_channel_get_flags () to update
+should immediately call g_io_channel_get_flags() to update
the internal values of these flags.
@@ -17452,66 +29224,236 @@ the internal values of these flags.
</return>
</function>
-<function name="g_locale_from_utf8">
+<function name="g_param_spec_double">
<description>
-Converts a string from UTF-8 to the encoding used for strings by
-the C runtime (usually the same as that used by the operating
-system) in the &amp;lt;link linkend=&quot;setlocale&quot;&amp;gt;current locale&amp;lt;/link&amp;gt;.
+Creates a new #GParamSpecDouble instance specifying a %G_TYPE_DOUBLE
+property.
+
+See g_param_spec_internal() for details on property names.
</description>
<parameters>
-<parameter name="utf8string">
-<parameter_description> a UTF-8 encoded string
+<parameter name="name">
+<parameter_description> canonical name of the property specified
</parameter_description>
</parameter>
-<parameter name="len">
-<parameter_description> the length of the string, or -1 if the string is
-nul-terminated&amp;lt;footnoteref linkend=&quot;nul-unsafe&quot;/&amp;gt;.
+<parameter name="nick">
+<parameter_description> nick name for the property specified
</parameter_description>
</parameter>
-<parameter name="bytes_read">
-<parameter_description> location to store the number of bytes in the
-input string that were successfully converted, or %NULL.
-Even if the conversion was successful, this may be
-less than @len if there were partial characters
-at the end of the input. If the error
-#G_CONVERT_ERROR_ILLEGAL_SEQUENCE occurs, the value
-stored will the byte offset after the last valid
-input sequence.
+<parameter name="blurb">
+<parameter_description> description of the property specified
</parameter_description>
</parameter>
-<parameter name="bytes_written">
-<parameter_description> the number of bytes stored in the output buffer (not
-including the terminating nul).
+<parameter name="minimum">
+<parameter_description> minimum value for the property specified
+</parameter_description>
+</parameter>
+<parameter name="maximum">
+<parameter_description> maximum value for the property specified
+</parameter_description>
+</parameter>
+<parameter name="default_value">
+<parameter_description> default value for the property specified
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> flags for the property specified
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly created parameter specification
+</return>
+</function>
+
+<function name="g_io_channel_read_to_end">
+<description>
+Reads all the remaining data from the file.
+
+
+</description>
+<parameters>
+<parameter name="channel">
+<parameter_description> a #GIOChannel
+</parameter_description>
+</parameter>
+<parameter name="str_return">
+<parameter_description> Location to store a pointer to a string holding
+the remaining data in the #GIOChannel. This data should
+be freed with g_free() when no longer needed. This
+data is terminated by an extra nul character, but there
+may be other nuls in the intervening data.
+</parameter_description>
+</parameter>
+<parameter name="length">
+<parameter_description> location to store length of the data
</parameter_description>
</parameter>
<parameter name="error">
-<parameter_description> location to store the error occuring, or %NULL to ignore
-errors. Any of the errors in #GConvertError may occur.
+<parameter_description> location to return an error of type #GConvertError
+or #GIOChannelError
</parameter_description>
</parameter>
</parameters>
-<return> The converted string, or %NULL on an error.
+<return> %G_IO_STATUS_NORMAL on success.
+This function never returns %G_IO_STATUS_EOF.
</return>
</function>
-<function name="g_key_file_set_list_separator">
+<function name="g_signal_handlers_block_matched">
<description>
-Sets the character which is used to separate
-values in lists. Typically &apos;;&apos; or &apos;,&apos; are used
-as separators. The default list separator is &apos;;&apos;.
+Blocks all handlers on an instance that match a certain selection criteria.
+The criteria mask is passed as an OR-ed combination of #GSignalMatchType
+flags, and the criteria values are passed as arguments.
+Passing at least one of the %G_SIGNAL_MATCH_CLOSURE, %G_SIGNAL_MATCH_FUNC
+or %G_SIGNAL_MATCH_DATA match flags is required for successful matches.
+If no handlers were found, 0 is returned, the number of blocked handlers
+otherwise.
-Since: 2.6
</description>
<parameters>
-<parameter name="key_file">
-<parameter_description> a #GKeyFile
+<parameter name="instance">
+<parameter_description> The instance to block handlers from.
</parameter_description>
</parameter>
-<parameter name="separator">
-<parameter_description> the separator
+<parameter name="mask">
+<parameter_description> Mask indicating which of @signal_id, @detail, @closure, @func
+and/or @data the handlers have to match.
+</parameter_description>
+</parameter>
+<parameter name="signal_id">
+<parameter_description> Signal the handlers have to be connected to.
+</parameter_description>
+</parameter>
+<parameter name="detail">
+<parameter_description> Signal detail the handlers have to be connected to.
+</parameter_description>
+</parameter>
+<parameter name="closure">
+<parameter_description> The closure the handlers will invoke.
+</parameter_description>
+</parameter>
+<parameter name="func">
+<parameter_description> The C closure callback of the handlers (useless for non-C closures).
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> The closure data of the handlers&apos; closures.
+</parameter_description>
+</parameter>
+</parameters>
+<return> The number of handlers that matched.
+</return>
+</function>
+
+<function name="g_random_double">
+<description>
+Return value: A random number.
+
+</description>
+<parameters>
+</parameters>
+<return> A random number.
+</return>
+</function>
+
+<function name="g_object_get_property">
+<description>
+Gets a property of an object.
+
+In general, a copy is made of the property contents and the caller is
+responsible for freeing the memory by calling g_value_unset().
+
+Note that g_object_get_property() is really intended for language
+bindings, g_object_get() is much more convenient for C programming.
+
+</description>
+<parameters>
+<parameter name="object">
+<parameter_description> a #GObject
+</parameter_description>
+</parameter>
+<parameter name="property_name">
+<parameter_description> the name of the property to get
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> return location for the property value
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_string_sprintf">
+<description>
+Writes a formatted string into a #GString.
+This is similar to the standard sprintf() function,
+except that the #GString buffer automatically expands
+to contain the results. The previous contents of the
+#GString are destroyed.
+
+Deprecated: This function has been renamed to g_string_printf().
+
+</description>
+<parameters>
+<parameter name="string">
+<parameter_description> a #GString
+</parameter_description>
+</parameter>
+<parameter name="format">
+<parameter_description> the string format. See the sprintf() documentation
+</parameter_description>
+</parameter>
+<parameter name="Varargs">
+<parameter_description> the parameters to insert into the format string
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_value_set_uint64">
+<description>
+Set the contents of a %G_TYPE_UINT64 #GValue to @v_uint64.
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue of type %G_TYPE_UINT64
+</parameter_description>
+</parameter>
+<parameter name="v_uint64">
+<parameter_description> unsigned 64bit integer value to be set
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_closure_add_finalize_notifier">
+<description>
+Registers a finalization notifier which will be called when the
+reference count of @closure goes down to 0. Multiple finalization
+notifiers on a single closure are invoked in unspecified order. If
+a single call to g_closure_unref() results in the closure being
+both invalidated and finalized, then the invalidate notifiers will
+be run before the finalize notifiers.
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> a #GClosure
+</parameter_description>
+</parameter>
+<parameter name="notify_data">
+<parameter_description> data to pass to @notify_func
+</parameter_description>
+</parameter>
+<parameter name="notify_func">
+<parameter_description> the callback function to register
</parameter_description>
</parameter>
</parameters>
@@ -17538,6 +29480,66 @@ after the second.
</return>
</function>
+<function name="g_param_spec_object">
+<description>
+Creates a new #GParamSpecBoxed instance specifying a %G_TYPE_OBJECT
+derived property.
+
+See g_param_spec_internal() for details on property names.
+
+
+</description>
+<parameters>
+<parameter name="name">
+<parameter_description> canonical name of the property specified
+</parameter_description>
+</parameter>
+<parameter name="nick">
+<parameter_description> nick name for the property specified
+</parameter_description>
+</parameter>
+<parameter name="blurb">
+<parameter_description> description of the property specified
+</parameter_description>
+</parameter>
+<parameter name="object_type">
+<parameter_description> %G_TYPE_OBJECT derived type of this property
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> flags for the property specified
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly created parameter specification
+</return>
+</function>
+
+<function name="g_closure_remove_finalize_notifier">
+<description>
+Removes a finalization notifier.
+
+Notice that notifiers are automatically removed after they are run.
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> a #GClosure
+</parameter_description>
+</parameter>
+<parameter name="notify_data">
+<parameter_description> data which was passed to g_closure_add_finalize_notifier()
+when registering @notify_func
+</parameter_description>
+</parameter>
+<parameter name="notify_func">
+<parameter_description> the callback function to remove
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_timeout_add">
<description>
Sets a function to be called at regular intervals, with the default
@@ -17557,6 +29559,10 @@ about the exact time of the first call of the timer, use the
g_timeout_add_seconds() function; this function allows for more
optimizations and more efficient system power usage.
+This internally creates a main loop source using g_timeout_source_new()
+and attaches it to the main loop context using g_source_attach(). You can
+do these steps manually if you need greater control.
+
</description>
<parameters>
@@ -17578,6 +29584,41 @@ optimizations and more efficient system power usage.
</return>
</function>
+<function name="g_param_spec_param">
+<description>
+Creates a new #GParamSpecParam instance specifying a %G_TYPE_PARAM
+property.
+
+See g_param_spec_internal() for details on property names.
+
+
+</description>
+<parameters>
+<parameter name="name">
+<parameter_description> canonical name of the property specified
+</parameter_description>
+</parameter>
+<parameter name="nick">
+<parameter_description> nick name for the property specified
+</parameter_description>
+</parameter>
+<parameter name="blurb">
+<parameter_description> description of the property specified
+</parameter_description>
+</parameter>
+<parameter name="param_type">
+<parameter_description> a #GType derived from %G_TYPE_PARAM
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> flags for the property specified
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly created parameter specification
+</return>
+</function>
+
<function name="g_mapped_file_get_length">
<description>
Returns: the length of the contents of @file.
@@ -17595,6 +29636,35 @@ Since: 2.8
</return>
</function>
+<function name="g_compute_checksum_for_data">
+<description>
+Computes the checksum for a binary @data of @length. This is a
+convenience wrapper for g_checksum_new(), g_checksum_get_string()
+and g_checksum_free().
+
+
+</description>
+<parameters>
+<parameter name="checksum_type">
+<parameter_description> a #GChecksumType
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> binary blob to compute the digest of
+</parameter_description>
+</parameter>
+<parameter name="length">
+<parameter_description> length of @data
+</parameter_description>
+</parameter>
+</parameters>
+<return> the digest of the binary data as a string in hexadecimal.
+The returned string should be freed with g_free() when done using it.
+
+Since: 2.16
+</return>
+</function>
+
<function name="g_key_file_load_from_file">
<description>
Loads a key file into an empty #GKeyFile structure.
@@ -17609,7 +29679,7 @@ either a #GFileError or #GKeyFileError.
</parameter_description>
</parameter>
<parameter name="file">
-<parameter_description> the path of a filename to load, in the GLib file name encoding
+<parameter_description> the path of a filename to load, in the GLib filename encoding
</parameter_description>
</parameter>
<parameter name="flags">
@@ -17621,46 +29691,73 @@ either a #GFileError or #GKeyFileError.
</parameter_description>
</parameter>
</parameters>
-<return> %TRUE if a key file could be loaded, %FALSE othewise
+<return> %TRUE if a key file could be loaded, %FALSE otherwise
+
Since: 2.6
</return>
</function>
-<function name="g_queue_init">
+<function name="g_cclosure_marshal_VOID__FLAGS">
<description>
-A statically-allocated #GQueue must be initialized with this function
-before it can be used. Alternatively you can initialize it with
-#G_QUEUE_INIT. It is not necessary to initialize queues created with
-g_queue_new().
-
-Since: 2.14
+A marshaller for a #GCClosure with a callback of type
+&amp;lt;literal&amp;gt;void (*callback) (gpointer instance, gint arg1, gpointer user_data)&amp;lt;/literal&amp;gt; where the #gint parameter denotes a flags type.
</description>
<parameters>
-<parameter name="queue">
-<parameter_description> an uninitialized #GQueue
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> ignored
+</parameter_description>
+</parameter>
+<parameter name="n_param_values">
+<parameter_description> 2
+</parameter_description>
+</parameter>
+<parameter name="param_values">
+<parameter_description> a #GValue array holding the instance and the flags parameter
+</parameter_description>
+</parameter>
+<parameter name="invocation_hint">
+<parameter_description> the invocation hint given as the last argument
+to g_closure_invoke()
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when registering the marshaller
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>
-<function name="g_queue_delete_link">
+<function name="g_queue_free">
<description>
-Removes @link_ from @queue and frees it.
-
-@link_ must be part of @queue.
-
-Since: 2.4
+Frees the memory allocated for the #GQueue. Only call this function if
+@queue was created with g_queue_new(). If queue elements contain
+dynamically-allocated memory, they should be freed first.
</description>
<parameters>
<parameter name="queue">
-<parameter_description> a #GQueue
+<parameter_description> a #GQueue.
</parameter_description>
</parameter>
-<parameter name="link_">
-<parameter_description> a #GList link that &amp;lt;emphasis&amp;gt;must&amp;lt;/emphasis&amp;gt; be part of @queue
+</parameters>
+<return></return>
+</function>
+
+<function name="g_list_free_1">
+<description>
+Frees one #GList element.
+It is usually used after g_list_remove_link().
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GList element
</parameter_description>
</parameter>
</parameters>
@@ -17683,6 +29780,40 @@ Since: 2.4
<return></return>
</function>
+<function name="g_param_spec_string">
+<description>
+Creates a new #GParamSpecString instance.
+
+See g_param_spec_internal() for details on property names.
+
+
+</description>
+<parameters>
+<parameter name="name">
+<parameter_description> canonical name of the property specified
+</parameter_description>
+</parameter>
+<parameter name="nick">
+<parameter_description> nick name for the property specified
+</parameter_description>
+</parameter>
+<parameter name="blurb">
+<parameter_description> description of the property specified
+</parameter_description>
+</parameter>
+<parameter name="default_value">
+<parameter_description> default value for the property specified
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> flags for the property specified
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly created parameter specification
+</return>
+</function>
+
<function name="g_async_queue_length">
<description>
Return value: the length of the @queue.
@@ -17698,6 +29829,23 @@ Return value: the length of the @queue.
</return>
</function>
+<function name="g_list_last">
+<description>
+Gets the last element in a #GList.
+
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GList
+</parameter_description>
+</parameter>
+</parameters>
+<return> the last element in the #GList,
+or %NULL if the #GList has no elements
+</return>
+</function>
+
<function name="g_ascii_strtoll">
<description>
Converts a string to a #gint64 value.
@@ -17768,8 +29916,48 @@ Since: 2.14
</return>
</function>
+<function name="g_value_get_flags">
+<description>
+Get the contents of a %G_TYPE_FLAGS #GValue.
+
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a valid #GValue whose type is derived from %G_TYPE_FLAGS
+</parameter_description>
+</parameter>
+</parameters>
+<return> flags contents of @value
+</return>
+</function>
+
+<function name="g_test_rand_double_range">
+<description>
+Get a reproducible random floating pointer number out of a specified range,
+see g_test_rand_int() for details on test case random numbers.
+
+
+</description>
+<parameters>
+<parameter name="range_start">
+<parameter_description> the minimum value returned by this function
+</parameter_description>
+</parameter>
+<parameter name="range_end">
+<parameter_description> the minimum value not returned by this function
+</parameter_description>
+</parameter>
+</parameters>
+<return> a number with @range_start &amp;lt;= number &amp;lt; @range_end.
+
+Since: 2.16
+</return>
+</function>
+
<function name="g_io_channel_read_unichar">
<description>
+Reads a Unicode character from @channel.
This function cannot be called on a channel with %NULL encoding.
@@ -17784,7 +29972,7 @@ This function cannot be called on a channel with %NULL encoding.
</parameter_description>
</parameter>
<parameter name="error">
-<parameter_description> A location to return an error of type #GConvertError
+<parameter_description> a location to return an error of type #GConvertError
or #GIOChannelError
</parameter_description>
</parameter>
@@ -17793,13 +29981,39 @@ or #GIOChannelError
</return>
</function>
+<function name="g_type_next_base">
+<description>
+Given a @leaf_type and a @root_type which is contained in its
+anchestry, return the type that @root_type is the immediate parent
+of. In other words, this function determines the type that is
+derived directly from @root_type which is also a base class of
+@leaf_type. Given a root type and a leaf type, this function can
+be used to determine the types and order in which the leaf type is
+descended from the root type.
+
+
+</description>
+<parameters>
+<parameter name="leaf_type">
+<parameter_description> Descendant of @root_type and the type to be returned.
+</parameter_description>
+</parameter>
+<parameter name="root_type">
+<parameter_description> Immediate parent of the returned type.
+</parameter_description>
+</parameter>
+</parameters>
+<return> Immediate child of @root_type and anchestor of @leaf_type.
+</return>
+</function>
+
<function name="g_mkdir">
<description>
A wrapper for the POSIX mkdir() function. The mkdir() function
attempts to create a directory with the given name and permissions.
The mode argument is ignored on Windows.
-See the C library manual for more details about mkdir().
+See your C library manual for more details about mkdir().
</description>
@@ -17837,9 +30051,32 @@ Since: 2.12
</return>
</function>
+<function name="g_closure_set_marshal">
+<description>
+Sets the marshaller of @closure. The &amp;lt;literal&amp;gt;marshal_data&amp;lt;/literal&amp;gt;
+of @marshal provides a way for a meta marshaller to provide additional
+information to the marshaller. (See g_closure_set_meta_marshal().) For
+GObject&apos;s C predefined marshallers (the g_cclosure_marshal_*()
+functions), what it provides is a callback function to use instead of
+@closure-&amp;gt;callback.
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> a #GClosure
+</parameter_description>
+</parameter>
+<parameter name="marshal">
+<parameter_description> a #GClosureMarshal function
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_time_val_to_iso8601">
<description>
-Converts @time_ into a ISO 8601 encoded string, relative to the
+Converts @time_ into an ISO 8601 encoded string, relative to the
Coordinated Universal Time (UTC).
@@ -17850,7 +30087,7 @@ Coordinated Universal Time (UTC).
</parameter_description>
</parameter>
</parameters>
-<return> a newly allocated string containing a ISO 8601 date
+<return> a newly allocated string containing an ISO 8601 date
Since: 2.12
</return>
@@ -17875,6 +30112,29 @@ Since: 2.14
</return>
</function>
+<function name="g_type_interfaces">
+<description>
+Return a newly allocated and 0-terminated array of type IDs, listing the
+interface types that @type conforms to. The return value has to be
+g_free()ed after use.
+
+
+</description>
+<parameters>
+<parameter name="type">
+<parameter_description> The type to list interface types for.
+</parameter_description>
+</parameter>
+<parameter name="n_interfaces">
+<parameter_description> Optional #guint pointer to contain the number of
+interface types.
+</parameter_description>
+</parameter>
+</parameters>
+<return> Newly allocated and 0-terminated array of interface types.
+</return>
+</function>
+
<function name="g_source_set_funcs">
<description>
Sets the source functions (can be used to override
@@ -17954,6 +30214,48 @@ when using pointers as keys in a #GHashTable.
</return>
</function>
+<function name="g_object_class_override_property">
+<description>
+Registers @property_id as referring to a property with the
+name @name in a parent class or in an interface implemented
+by @oclass. This allows this class to &amp;lt;firstterm&amp;gt;override&amp;lt;/firstterm&amp;gt;
+a property implementation in a parent class or to provide
+the implementation of a property from an interface.
+
+&amp;lt;note&amp;gt;
+Internally, overriding is implemented by creating a property of type
+#GParamSpecOverride; generally operations that query the properties of
+the object class, such as g_object_class_find_property() or
+g_object_class_list_properties() will return the overridden
+property. However, in one case, the @construct_properties argument of
+the @constructor virtual function, the #GParamSpecOverride is passed
+instead, so that the @param_id field of the #GParamSpec will be
+correct. For virtually all uses, this makes no difference. If you
+need to get the overridden property, you can call
+g_param_spec_get_redirect_target().
+&amp;lt;/note&amp;gt;
+
+Since: 2.4
+
+</description>
+<parameters>
+<parameter name="oclass">
+<parameter_description> a #GObjectClass
+</parameter_description>
+</parameter>
+<parameter name="property_id">
+<parameter_description> the new property ID
+</parameter_description>
+</parameter>
+<parameter name="name">
+<parameter_description> the name of a property registered in a parent class or
+in an interface of this class.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_unichar_isalpha">
<description>
Determines whether a character is alphabetic (i.e. a letter).
@@ -18024,36 +30326,18 @@ Since: 2.12
</return>
</function>
-<function name="g_io_channel_set_buffered">
+<function name="g_test_queue_free">
<description>
-The buffering state can only be set if the channel&apos;s encoding
-is %NULL. For any other encoding, the channel must be buffered.
-
-A buffered channel can only be set unbuffered if the channel&apos;s
-internal buffers have been flushed. Newly created channels or
-channels which have returned %G_IO_STATUS_EOF
-not require such a flush. For write-only channels, a call to
-g_io_channel_flush () is sufficient. For all other channels,
-the buffers may be flushed by a call to g_io_channel_seek_position ().
-This includes the possibility of seeking with seek type %G_SEEK_CUR
-and an offset of zero. Note that this means that socket-based
-channels cannot be set unbuffered once they have had data
-read from them.
-
-On unbuffered channels, it is safe to mix read and write
-calls from the new and old APIs, if this is necessary for
-maintaining old code.
+Enqueue a pointer to be released with g_free() during the next
+teardown phase. This is equivalent to calling g_test_queue_destroy()
+with a destroy callback of g_free().
-The default state of the channel is buffered.
+Since: 2.16
</description>
<parameters>
-<parameter name="channel">
-<parameter_description> a #GIOChannel
-</parameter_description>
-</parameter>
-<parameter name="buffered">
-<parameter_description> whether to set the channel buffered or unbuffered
+<parameter name="gfree_pointer">
+<parameter_description> the pointer to be stored.
</parameter_description>
</parameter>
</parameters>
diff --git a/libs/glibmm2/glib/src/glib_docs_override.xml b/libs/glibmm2/glib/src/glib_docs_override.xml
index 3ad6b3a584..13bf35d661 100644
--- a/libs/glibmm2/glib/src/glib_docs_override.xml
+++ b/libs/glibmm2/glib/src/glib_docs_override.xml
@@ -147,5 +147,69 @@ Since: 2.14
</function>
+<function name="g_key_file_load_from_file">
+<description>
+Loads a key file into an empty KeyFile instance.
+If the file could not be loaded then a FileError or KeyFileError exception is thrown.
+
+@throw Glib::FileError
+@throw Glib::KeyFileError
+</description>
+<parameters>
+<parameter name="key_file">
+<parameter_description> an empty #GKeyFile struct
+</parameter_description>
+</parameter>
+<parameter name="file">
+<parameter_description> the path of a filename to load, in the GLib file name encoding
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> flags from #GKeyFileFlags
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> return location for a #GError, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE if a key file could be loaded, %FALSE othewise
+Since: 2.6
+</return>
+</function>
+
+
+<function name="g_key_file_get_value">
+<description>
+Returns the value associated with @key under @group_name.
+
+@throw Glib::FileError in the event the key cannot be found (with the Glib::KEY_FILE_ERROR_KEY_NOT_FOUND code).
+@throw Glib::KeyFileError in the event that the @group_name cannot be found (with the Glib::KEY_FILE_ERROR_GROUP_NOT_FOUND).
+</description>
+<parameters>
+<parameter name="key_file">
+<parameter_description> a #GKeyFile
+</parameter_description>
+</parameter>
+<parameter name="group_name">
+<parameter_description> a group name
+</parameter_description>
+</parameter>
+<parameter name="key">
+<parameter_description> a key
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> return location for a #GError, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> The value as a string.
+
+Since: 2.6
+</return>
+</function>
+
+
</root>
diff --git a/libs/glibmm2/glib/src/glib_enums.defs b/libs/glibmm2/glib/src/glib_enums.defs
index 46b366fb1c..5b24f1615c 100644
--- a/libs/glibmm2/glib/src/glib_enums.defs
+++ b/libs/glibmm2/glib/src/glib_enums.defs
@@ -1,4 +1,4 @@
-;; From /opt/gnome218/include/glib-2.0/glib/gbookmarkfile.h
+;; From /opt/gnome2/include/glib-2.0/glib/gbookmarkfile.h
(define-enum-extended BookmarkFileError
(in-module "G")
@@ -15,7 +15,19 @@
)
)
-;; From /opt/gnome218/include/glib-2.0/glib/gconvert.h
+;; From /opt/gnome2/include/glib-2.0/glib/gchecksum.h
+
+(define-enum-extended ChecksumType
+ (in-module "G")
+ (c-name "GChecksumType")
+ (values
+ '("md5" "G_CHECKSUM_MD5" "0")
+ '("sha1" "G_CHECKSUM_SHA1" "1")
+ '("sha256" "G_CHECKSUM_SHA256" "2")
+ )
+)
+
+;; From /opt/gnome2/include/glib-2.0/glib/gconvert.h
(define-enum-extended ConvertError
(in-module "G")
@@ -30,7 +42,7 @@
)
)
-;; From /opt/gnome218/include/glib-2.0/glib/gdate.h
+;; From /opt/gnome2/include/glib-2.0/glib/gdate.h
(define-enum-extended DateDMY
(in-module "G")
@@ -77,7 +89,7 @@
)
)
-;; From /opt/gnome218/include/glib-2.0/glib/gfileutils.h
+;; From /opt/gnome2/include/glib-2.0/glib/gfileutils.h
(define-enum-extended FileError
(in-module "G")
@@ -123,7 +135,7 @@
)
)
-;; From /opt/gnome218/include/glib-2.0/glib/ghook.h
+;; From /opt/gnome2/include/glib-2.0/glib/ghook.h
(define-flags-extended HookFlagMask
(in-module "G")
@@ -135,7 +147,7 @@
)
)
-;; From /opt/gnome218/include/glib-2.0/glib/giochannel.h
+;; From /opt/gnome2/include/glib-2.0/glib/giochannel.h
(define-enum-extended IOError
(in-module "G")
@@ -206,7 +218,7 @@
)
)
-;; From /opt/gnome218/include/glib-2.0/glib/gkeyfile.h
+;; From /opt/gnome2/include/glib-2.0/glib/gkeyfile.h
(define-enum-extended KeyFileError
(in-module "G")
@@ -231,7 +243,7 @@
)
)
-;; From /opt/gnome218/include/glib-2.0/glib/gmarkup.h
+;; From /opt/gnome2/include/glib-2.0/glib/gmarkup.h
(define-enum-extended MarkupError
(in-module "G")
@@ -243,6 +255,7 @@
'("unknown-element" "G_MARKUP_ERROR_UNKNOWN_ELEMENT" "3")
'("unknown-attribute" "G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE" "4")
'("invalid-content" "G_MARKUP_ERROR_INVALID_CONTENT" "5")
+ '("missing-attribute" "G_MARKUP_ERROR_MISSING_ATTRIBUTE" "6")
)
)
@@ -252,10 +265,24 @@
(values
'("do-not-use-this-unsupported-flag" "G_MARKUP_DO_NOT_USE_THIS_UNSUPPORTED_FLAG" "1 << 0")
'("treat-cdata-as-text" "G_MARKUP_TREAT_CDATA_AS_TEXT" "1 << 1")
+ '("prefix-error-position" "G_MARKUP_PREFIX_ERROR_POSITION" "1 << 2")
+ )
+)
+
+(define-flags-extended MarkupCollectType
+ (in-module "G")
+ (c-name "GMarkupCollectType")
+ (values
+ '("invalid" "G_MARKUP_COLLECT_INVALID" "0")
+ '("string" "G_MARKUP_COLLECT_STRING" "1")
+ '("strdup" "G_MARKUP_COLLECT_STRDUP" "2")
+ '("boolean" "G_MARKUP_COLLECT_BOOLEAN" "3")
+ '("tristate" "G_MARKUP_COLLECT_TRISTATE" "4")
+ '("optional" "G_MARKUP_COLLECT_OPTIONAL" "1 << 16")
)
)
-;; From /opt/gnome218/include/glib-2.0/glib/gmessages.h
+;; From /opt/gnome2/include/glib-2.0/glib/gmessages.h
(define-flags-extended LogLevelFlags
(in-module "G")
@@ -273,7 +300,7 @@
)
)
-;; From /opt/gnome218/include/glib-2.0/glib/gnode.h
+;; From /opt/gnome2/include/glib-2.0/glib/gnode.h
(define-flags-extended TraverseFlags
(in-module "G")
@@ -299,7 +326,7 @@
)
)
-;; From /opt/gnome218/include/glib-2.0/glib/goption.h
+;; From /opt/gnome2/include/glib-2.0/glib/goption.h
(define-flags-extended OptionFlags
(in-module "G")
@@ -341,7 +368,7 @@
)
)
-;; From /opt/gnome218/include/glib-2.0/glib/gregex.h
+;; From /opt/gnome2/include/glib-2.0/glib/gregex.h
(define-enum-extended RegexError
(in-module "G")
@@ -351,6 +378,44 @@
'("optimize" "G_REGEX_ERROR_OPTIMIZE" "1")
'("replace" "G_REGEX_ERROR_REPLACE" "2")
'("match" "G_REGEX_ERROR_MATCH" "3")
+ '("internal" "G_REGEX_ERROR_INTERNAL" "4")
+ '("stray-backslash" "G_REGEX_ERROR_STRAY_BACKSLASH" "101")
+ '("missing-control-char" "G_REGEX_ERROR_MISSING_CONTROL_CHAR" "102")
+ '("unrecognized-escape" "G_REGEX_ERROR_UNRECOGNIZED_ESCAPE" "103")
+ '("quantifiers-out-of-order" "G_REGEX_ERROR_QUANTIFIERS_OUT_OF_ORDER" "104")
+ '("quantifier-too-big" "G_REGEX_ERROR_QUANTIFIER_TOO_BIG" "105")
+ '("unterminated-character-class" "G_REGEX_ERROR_UNTERMINATED_CHARACTER_CLASS" "106")
+ '("invalid-escape-in-character-class" "G_REGEX_ERROR_INVALID_ESCAPE_IN_CHARACTER_CLASS" "107")
+ '("range-out-of-order" "G_REGEX_ERROR_RANGE_OUT_OF_ORDER" "108")
+ '("nothing-to-repeat" "G_REGEX_ERROR_NOTHING_TO_REPEAT" "109")
+ '("unrecognized-character" "G_REGEX_ERROR_UNRECOGNIZED_CHARACTER" "112")
+ '("posix-named-class-outside-class" "G_REGEX_ERROR_POSIX_NAMED_CLASS_OUTSIDE_CLASS" "113")
+ '("unmatched-parenthesis" "G_REGEX_ERROR_UNMATCHED_PARENTHESIS" "114")
+ '("inexistent-subpattern-reference" "G_REGEX_ERROR_INEXISTENT_SUBPATTERN_REFERENCE" "115")
+ '("unterminated-comment" "G_REGEX_ERROR_UNTERMINATED_COMMENT" "118")
+ '("expression-too-large" "G_REGEX_ERROR_EXPRESSION_TOO_LARGE" "120")
+ '("memory-error" "G_REGEX_ERROR_MEMORY_ERROR" "121")
+ '("variable-length-lookbehind" "G_REGEX_ERROR_VARIABLE_LENGTH_LOOKBEHIND" "125")
+ '("malformed-condition" "G_REGEX_ERROR_MALFORMED_CONDITION" "126")
+ '("too-many-conditional-branches" "G_REGEX_ERROR_TOO_MANY_CONDITIONAL_BRANCHES" "127")
+ '("assertion-expected" "G_REGEX_ERROR_ASSERTION_EXPECTED" "128")
+ '("unknown-posix-class-name" "G_REGEX_ERROR_UNKNOWN_POSIX_CLASS_NAME" "130")
+ '("posix-collating-elements-not-supported" "G_REGEX_ERROR_POSIX_COLLATING_ELEMENTS_NOT_SUPPORTED" "131")
+ '("hex-code-too-large" "G_REGEX_ERROR_HEX_CODE_TOO_LARGE" "134")
+ '("invalid-condition" "G_REGEX_ERROR_INVALID_CONDITION" "135")
+ '("single-byte-match-in-lookbehind" "G_REGEX_ERROR_SINGLE_BYTE_MATCH_IN_LOOKBEHIND" "136")
+ '("infinite-loop" "G_REGEX_ERROR_INFINITE_LOOP" "140")
+ '("missing-subpattern-name-terminator" "G_REGEX_ERROR_MISSING_SUBPATTERN_NAME_TERMINATOR" "142")
+ '("duplicate-subpattern-name" "G_REGEX_ERROR_DUPLICATE_SUBPATTERN_NAME" "143")
+ '("malformed-property" "G_REGEX_ERROR_MALFORMED_PROPERTY" "146")
+ '("unknown-property" "G_REGEX_ERROR_UNKNOWN_PROPERTY" "147")
+ '("subpattern-name-too-long" "G_REGEX_ERROR_SUBPATTERN_NAME_TOO_LONG" "148")
+ '("too-many-subpatterns" "G_REGEX_ERROR_TOO_MANY_SUBPATTERNS" "149")
+ '("invalid-octal-value" "G_REGEX_ERROR_INVALID_OCTAL_VALUE" "151")
+ '("too-many-branches-in-define" "G_REGEX_ERROR_TOO_MANY_BRANCHES_IN_DEFINE" "154")
+ '("define-repetion" "G_REGEX_ERROR_DEFINE_REPETION" "155")
+ '("inconsistent-newline-options" "G_REGEX_ERROR_INCONSISTENT_NEWLINE_OPTIONS" "156")
+ '("missing-back-reference" "G_REGEX_ERROR_MISSING_BACK_REFERENCE" "157")
)
)
@@ -391,7 +456,7 @@
)
)
-;; From /opt/gnome218/include/glib-2.0/glib/gscanner.h
+;; From /opt/gnome2/include/glib-2.0/glib/gscanner.h
(define-enum-extended ErrorType
(in-module "G")
@@ -408,7 +473,38 @@
)
)
-;; From /opt/gnome218/include/glib-2.0/glib/gshell.h
+(define-enum-extended TokenType
+ (in-module "G")
+ (c-name "GTokenType")
+ (values
+ '("eof" "G_TOKEN_EOF" "0")
+ '("left-paren" "G_TOKEN_LEFT_PAREN" "'('")
+ '("right-paren" "G_TOKEN_RIGHT_PAREN" "')'")
+ '("left-curly" "G_TOKEN_LEFT_CURLY" "'{'")
+ '("right-curly" "G_TOKEN_RIGHT_CURLY" "']'")
+ '("left-brace" "G_TOKEN_LEFT_BRACE" "'['")
+ '("right-brace" "G_TOKEN_RIGHT_BRACE" "']'")
+ '("equal-sign" "G_TOKEN_EQUAL_SIGN" "'='")
+ '("comma" "G_TOKEN_COMMA" "','")
+ '("none" "G_TOKEN_NONE" "256")
+ '("error" "G_TOKEN_ERROR" "257")
+ '("char" "G_TOKEN_CHAR" "258")
+ '("binary" "G_TOKEN_BINARY" "259")
+ '("octal" "G_TOKEN_OCTAL" "260")
+ '("int" "G_TOKEN_INT" "261")
+ '("hex" "G_TOKEN_HEX" "262")
+ '("float" "G_TOKEN_FLOAT" "263")
+ '("string" "G_TOKEN_STRING" "264")
+ '("symbol" "G_TOKEN_SYMBOL" "265")
+ '("identifier" "G_TOKEN_IDENTIFIER" "266")
+ '("identifier-null" "G_TOKEN_IDENTIFIER_NULL" "267")
+ '("comment-single" "G_TOKEN_COMMENT_SINGLE" "268")
+ '("comment-multi" "G_TOKEN_COMMENT_MULTI" "269")
+ '("last" "G_TOKEN_LAST" "270")
+ )
+)
+
+;; From /opt/gnome2/include/glib-2.0/glib/gshell.h
(define-enum-extended ShellError
(in-module "G")
@@ -420,7 +516,7 @@
)
)
-;; From /opt/gnome218/include/glib-2.0/glib/gslice.h
+;; From /opt/gnome2/include/glib-2.0/glib/gslice.h
(define-enum-extended SliceConfig
(in-module "G")
@@ -435,7 +531,7 @@
)
)
-;; From /opt/gnome218/include/glib-2.0/glib/gspawn.h
+;; From /opt/gnome2/include/glib-2.0/glib/gspawn.h
(define-enum-extended SpawnError
(in-module "G")
@@ -477,7 +573,7 @@
)
)
-;; From /opt/gnome218/include/glib-2.0/glib/gstrfuncs.h
+;; From /opt/gnome2/include/glib-2.0/glib/gstrfuncs.h
(define-flags-extended AsciiType
(in-module "G")
@@ -497,7 +593,36 @@
)
)
-;; From /opt/gnome218/include/glib-2.0/glib/gthread.h
+;; From /opt/gnome2/include/glib-2.0/glib/gtestutils.h
+
+(define-flags-extended TestTrapFlags
+ (in-module "G")
+ (c-name "GTestTrapFlags")
+ (values
+ '("silence-stdout" "G_TEST_TRAP_SILENCE_STDOUT" "1 << 7")
+ '("silence-stderr" "G_TEST_TRAP_SILENCE_STDERR" "1 << 8")
+ '("inherit-stdin" "G_TEST_TRAP_INHERIT_STDIN" "1 << 9")
+ )
+)
+
+(define-enum-extended TestLogType
+ (in-module "G")
+ (c-name "GTestLogType")
+ (values
+ '("none" "G_TEST_LOG_NONE" "0")
+ '("error" "G_TEST_LOG_ERROR" "1")
+ '("start-binary" "G_TEST_LOG_START_BINARY" "2")
+ '("list-case" "G_TEST_LOG_LIST_CASE" "3")
+ '("skip-case" "G_TEST_LOG_SKIP_CASE" "4")
+ '("start-case" "G_TEST_LOG_START_CASE" "5")
+ '("stop-case" "G_TEST_LOG_STOP_CASE" "6")
+ '("min-result" "G_TEST_LOG_MIN_RESULT" "7")
+ '("max-result" "G_TEST_LOG_MAX_RESULT" "8")
+ '("message" "G_TEST_LOG_MESSAGE" "9")
+ )
+)
+
+;; From /opt/gnome2/include/glib-2.0/glib/gthread.h
(define-enum-extended ThreadError
(in-module "G")
@@ -528,7 +653,7 @@
)
)
-;; From /opt/gnome218/include/glib-2.0/glib/gunicode.h
+;; From /opt/gnome2/include/glib-2.0/glib/gunicode.h
(define-enum-extended UnicodeType
(in-module "G")
@@ -682,6 +807,17 @@
'("phoenician" "G_UNICODE_SCRIPT_PHOENICIAN" "64")
'("phags-pa" "G_UNICODE_SCRIPT_PHAGS_PA" "65")
'("nko" "G_UNICODE_SCRIPT_NKO" "66")
+ '("kayah-li" "G_UNICODE_SCRIPT_KAYAH_LI" "67")
+ '("lepcha" "G_UNICODE_SCRIPT_LEPCHA" "68")
+ '("rejang" "G_UNICODE_SCRIPT_REJANG" "69")
+ '("sundanese" "G_UNICODE_SCRIPT_SUNDANESE" "70")
+ '("saurashtra" "G_UNICODE_SCRIPT_SAURASHTRA" "71")
+ '("cham" "G_UNICODE_SCRIPT_CHAM" "72")
+ '("ol-chiki" "G_UNICODE_SCRIPT_OL_CHIKI" "73")
+ '("vai" "G_UNICODE_SCRIPT_VAI" "74")
+ '("carian" "G_UNICODE_SCRIPT_CARIAN" "75")
+ '("lycian" "G_UNICODE_SCRIPT_LYCIAN" "76")
+ '("lydian" "G_UNICODE_SCRIPT_LYDIAN" "77")
)
)
@@ -700,7 +836,7 @@
)
)
-;; From /opt/gnome218/include/glib-2.0/glib/gutils.h
+;; From /opt/gnome2/include/glib-2.0/glib/gutils.h
(define-enum-extended UserDirectory
(in-module "G")
diff --git a/libs/glibmm2/glib/src/glib_functions.defs b/libs/glibmm2/glib/src/glib_functions.defs
index c3c64fe72a..3877c5aac3 100644
--- a/libs/glibmm2/glib/src/glib_functions.defs
+++ b/libs/glibmm2/glib/src/glib_functions.defs
@@ -18,13 +18,14 @@
)
)
-(define-flags ArrayFlags
- (in-module "GBSearch")
- (c-name "GBSearchArrayFlags")
- (gtype-id "G_TYPE_B_SEARCH_ARRAY_FLAGS")
+(define-enum Type
+ (in-module "GChecksum")
+ (c-name "GChecksumType")
+ (gtype-id "G_TYPE_CHECKSUM_TYPE")
(values
- '("lign-power2" "G_BSEARCH_ARRAY_ALIGN_POWER2")
- '("uto-shrink" "G_BSEARCH_ARRAY_AUTO_SHRINK")
+ '("md5" "G_CHECKSUM_MD5")
+ '("sha1" "G_CHECKSUM_SHA1")
+ '("sha256" "G_CHECKSUM_SHA256")
)
)
@@ -90,16 +91,6 @@
)
)
-(define-flags Flag
- (in-module "GDebug")
- (c-name "GDebugFlag")
- (gtype-id "G_TYPE_DEBUG_FLAG")
- (values
- '("warnings" "G_DEBUG_FATAL_WARNINGS")
- '("criticals" "G_DEBUG_FATAL_CRITICALS")
- )
-)
-
(define-enum Error
(in-module "GFile")
(c-name "GFileError")
@@ -275,6 +266,7 @@
'("unknown-element" "G_MARKUP_ERROR_UNKNOWN_ELEMENT")
'("unknown-attribute" "G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE")
'("invalid-content" "G_MARKUP_ERROR_INVALID_CONTENT")
+ '("missing-attribute" "G_MARKUP_ERROR_MISSING_ATTRIBUTE")
)
)
@@ -285,6 +277,21 @@
(values
'("do-not-use-this-unsupported-flag" "G_MARKUP_DO_NOT_USE_THIS_UNSUPPORTED_FLAG")
'("treat-cdata-as-text" "G_MARKUP_TREAT_CDATA_AS_TEXT")
+ '("prefix-error-position" "G_MARKUP_PREFIX_ERROR_POSITION")
+ )
+)
+
+(define-flags CollectType
+ (in-module "GMarkup")
+ (c-name "GMarkupCollectType")
+ (gtype-id "G_TYPE_MARKUP_COLLECT_TYPE")
+ (values
+ '("invalid" "G_MARKUP_COLLECT_INVALID")
+ '("string" "G_MARKUP_COLLECT_STRING")
+ '("strdup" "G_MARKUP_COLLECT_STRDUP")
+ '("boolean" "G_MARKUP_COLLECT_BOOLEAN")
+ '("tristate" "G_MARKUP_COLLECT_TRISTATE")
+ '("optional" "G_MARKUP_COLLECT_OPTIONAL")
)
)
@@ -383,6 +390,44 @@
'("optimize" "G_REGEX_ERROR_OPTIMIZE")
'("replace" "G_REGEX_ERROR_REPLACE")
'("match" "G_REGEX_ERROR_MATCH")
+ '("internal" "G_REGEX_ERROR_INTERNAL")
+ '("stray-backslash" "G_REGEX_ERROR_STRAY_BACKSLASH")
+ '("missing-control-char" "G_REGEX_ERROR_MISSING_CONTROL_CHAR")
+ '("unrecognized-escape" "G_REGEX_ERROR_UNRECOGNIZED_ESCAPE")
+ '("quantifiers-out-of-order" "G_REGEX_ERROR_QUANTIFIERS_OUT_OF_ORDER")
+ '("quantifier-too-big" "G_REGEX_ERROR_QUANTIFIER_TOO_BIG")
+ '("unterminated-character-class" "G_REGEX_ERROR_UNTERMINATED_CHARACTER_CLASS")
+ '("invalid-escape-in-character-class" "G_REGEX_ERROR_INVALID_ESCAPE_IN_CHARACTER_CLASS")
+ '("range-out-of-order" "G_REGEX_ERROR_RANGE_OUT_OF_ORDER")
+ '("nothing-to-repeat" "G_REGEX_ERROR_NOTHING_TO_REPEAT")
+ '("unrecognized-character" "G_REGEX_ERROR_UNRECOGNIZED_CHARACTER")
+ '("posix-named-class-outside-class" "G_REGEX_ERROR_POSIX_NAMED_CLASS_OUTSIDE_CLASS")
+ '("unmatched-parenthesis" "G_REGEX_ERROR_UNMATCHED_PARENTHESIS")
+ '("inexistent-subpattern-reference" "G_REGEX_ERROR_INEXISTENT_SUBPATTERN_REFERENCE")
+ '("unterminated-comment" "G_REGEX_ERROR_UNTERMINATED_COMMENT")
+ '("expression-too-large" "G_REGEX_ERROR_EXPRESSION_TOO_LARGE")
+ '("memory-error" "G_REGEX_ERROR_MEMORY_ERROR")
+ '("variable-length-lookbehind" "G_REGEX_ERROR_VARIABLE_LENGTH_LOOKBEHIND")
+ '("malformed-condition" "G_REGEX_ERROR_MALFORMED_CONDITION")
+ '("too-many-conditional-branches" "G_REGEX_ERROR_TOO_MANY_CONDITIONAL_BRANCHES")
+ '("assertion-expected" "G_REGEX_ERROR_ASSERTION_EXPECTED")
+ '("unknown-posix-class-name" "G_REGEX_ERROR_UNKNOWN_POSIX_CLASS_NAME")
+ '("posix-collating-elements-not-supported" "G_REGEX_ERROR_POSIX_COLLATING_ELEMENTS_NOT_SUPPORTED")
+ '("hex-code-too-large" "G_REGEX_ERROR_HEX_CODE_TOO_LARGE")
+ '("invalid-condition" "G_REGEX_ERROR_INVALID_CONDITION")
+ '("single-byte-match-in-lookbehind" "G_REGEX_ERROR_SINGLE_BYTE_MATCH_IN_LOOKBEHIND")
+ '("infinite-loop" "G_REGEX_ERROR_INFINITE_LOOP")
+ '("missing-subpattern-name-terminator" "G_REGEX_ERROR_MISSING_SUBPATTERN_NAME_TERMINATOR")
+ '("duplicate-subpattern-name" "G_REGEX_ERROR_DUPLICATE_SUBPATTERN_NAME")
+ '("malformed-property" "G_REGEX_ERROR_MALFORMED_PROPERTY")
+ '("unknown-property" "G_REGEX_ERROR_UNKNOWN_PROPERTY")
+ '("subpattern-name-too-long" "G_REGEX_ERROR_SUBPATTERN_NAME_TOO_LONG")
+ '("too-many-subpatterns" "G_REGEX_ERROR_TOO_MANY_SUBPATTERNS")
+ '("invalid-octal-value" "G_REGEX_ERROR_INVALID_OCTAL_VALUE")
+ '("too-many-branches-in-define" "G_REGEX_ERROR_TOO_MANY_BRANCHES_IN_DEFINE")
+ '("define-repetion" "G_REGEX_ERROR_DEFINE_REPETION")
+ '("inconsistent-newline-options" "G_REGEX_ERROR_INCONSISTENT_NEWLINE_OPTIONS")
+ '("missing-back-reference" "G_REGEX_ERROR_MISSING_BACK_REFERENCE")
)
)
@@ -528,12 +573,41 @@
)
)
+(define-flags TrapFlags
+ (in-module "GTest")
+ (c-name "GTestTrapFlags")
+ (gtype-id "G_TYPE_TEST_TRAP_FLAGS")
+ (values
+ '("silence-stdout" "G_TEST_TRAP_SILENCE_STDOUT")
+ '("silence-stderr" "G_TEST_TRAP_SILENCE_STDERR")
+ '("inherit-stdin" "G_TEST_TRAP_INHERIT_STDIN")
+ )
+)
+
+(define-enum LogType
+ (in-module "GTest")
+ (c-name "GTestLogType")
+ (gtype-id "G_TYPE_TEST_LOG_TYPE")
+ (values
+ '("none" "G_TEST_LOG_NONE")
+ '("error" "G_TEST_LOG_ERROR")
+ '("start-binary" "G_TEST_LOG_START_BINARY")
+ '("list-case" "G_TEST_LOG_LIST_CASE")
+ '("skip-case" "G_TEST_LOG_SKIP_CASE")
+ '("start-case" "G_TEST_LOG_START_CASE")
+ '("stop-case" "G_TEST_LOG_STOP_CASE")
+ '("min-result" "G_TEST_LOG_MIN_RESULT")
+ '("max-result" "G_TEST_LOG_MAX_RESULT")
+ '("message" "G_TEST_LOG_MESSAGE")
+ )
+)
+
(define-enum Error
(in-module "GThread")
(c-name "GThreadError")
(gtype-id "G_TYPE_THREAD_ERROR")
(values
- '("n" "G_THREAD_ERROR_AGAIN")
+ '("again" "G_THREAD_ERROR_AGAIN")
)
)
@@ -715,6 +789,17 @@
'("phoenician" "G_UNICODE_SCRIPT_PHOENICIAN")
'("phags-pa" "G_UNICODE_SCRIPT_PHAGS_PA")
'("nko" "G_UNICODE_SCRIPT_NKO")
+ '("kayah-li" "G_UNICODE_SCRIPT_KAYAH_LI")
+ '("lepcha" "G_UNICODE_SCRIPT_LEPCHA")
+ '("rejang" "G_UNICODE_SCRIPT_REJANG")
+ '("sundanese" "G_UNICODE_SCRIPT_SUNDANESE")
+ '("saurashtra" "G_UNICODE_SCRIPT_SAURASHTRA")
+ '("cham" "G_UNICODE_SCRIPT_CHAM")
+ '("ol-chiki" "G_UNICODE_SCRIPT_OL_CHIKI")
+ '("vai" "G_UNICODE_SCRIPT_VAI")
+ '("carian" "G_UNICODE_SCRIPT_CARIAN")
+ '("lycian" "G_UNICODE_SCRIPT_LYCIAN")
+ '("lydian" "G_UNICODE_SCRIPT_LYDIAN")
)
)
@@ -752,10 +837,6 @@
)
-;; From galias.h
-
-
-
;; From galloca.h
(define-function alloca
@@ -1115,6 +1196,14 @@
(return-type "GAsyncQueue*")
)
+(define-function g_async_queue_new_full
+ (c-name "g_async_queue_new_full")
+ (return-type "GAsyncQueue*")
+ (parameters
+ '("GDestroyNotify" "item_free_func")
+ )
+)
+
(define-method lock
(of-object "GAsyncQueue")
(c-name "g_async_queue_lock")
@@ -1828,26 +1917,6 @@
-;; From gbsearcharray.h
-
-(define-function if
- (c-name "if")
- (return-type "else")
- (parameters
- '("cmp-<" "0")
- )
-)
-
-(define-function MIN
- (c-name "MIN")
- (return-type "return")
- (parameters
- '("barray->n_nodes-+" "1")
- )
-)
-
-
-
;; From gcache.h
(define-function g_cache_new
@@ -1911,6 +1980,89 @@
+;; From gchecksum.h
+
+(define-method get_length
+ (of-object "GChecksumType")
+ (c-name "g_checksum_type_get_length")
+ (return-type "gssize")
+)
+
+(define-function g_checksum_new
+ (c-name "g_checksum_new")
+ (is-constructor-of "GChecksum")
+ (return-type "GChecksum*")
+ (parameters
+ '("GChecksumType" "checksum_type")
+ )
+)
+
+(define-method reset
+ (of-object "GChecksum")
+ (c-name "g_checksum_reset")
+ (return-type "none")
+)
+
+(define-method copy
+ (of-object "GChecksum")
+ (c-name "g_checksum_copy")
+ (return-type "GChecksum*")
+)
+
+(define-method free
+ (of-object "GChecksum")
+ (c-name "g_checksum_free")
+ (return-type "none")
+)
+
+(define-method update
+ (of-object "GChecksum")
+ (c-name "g_checksum_update")
+ (return-type "none")
+ (parameters
+ '("const-guchar*" "data")
+ '("gsize" "length")
+ )
+)
+
+(define-method get_string
+ (of-object "GChecksum")
+ (c-name "g_checksum_get_string")
+ (return-type "const-gchar*")
+)
+
+(define-method get_digest
+ (of-object "GChecksum")
+ (c-name "g_checksum_get_digest")
+ (return-type "none")
+ (parameters
+ '("guint8*" "buffer")
+ '("gsize*" "digest_len")
+ )
+)
+
+(define-function g_compute_checksum_for_data
+ (c-name "g_compute_checksum_for_data")
+ (return-type "gchar*")
+ (parameters
+ '("GChecksumType" "checksum_type")
+ '("const-guchar*" "data")
+ '("gsize" "length")
+ )
+)
+
+(define-function g_compute_checksum_for_string
+ (c-name "g_compute_checksum_for_string")
+ (return-type "gchar*")
+ (parameters
+ '("GChecksumType" "checksum_type")
+ '("const-gchar*" "str")
+ '("gssize" "length")
+ )
+)
+
+
+
;; From gcompletion.h
(define-function g_completion_new
@@ -1999,6 +2151,18 @@
)
)
+(define-method
+ (of-object "GIConv")
+ (c-name "g_iconv")
+ (return-type "gsize")
+ (parameters
+ '("gchar**" "inbuf")
+ '("gsize*" "inbytes_left")
+ '("gchar**" "outbuf")
+ '("gsize*" "outbytes_left")
+ )
+)
+
(define-method close
(of-object "GIConv")
(c-name "g_iconv_close")
@@ -2281,10 +2445,6 @@
-;; From gdatasetprivate.h
-
-
-
;; From gdate.h
(define-function g_date_new
@@ -2677,10 +2837,6 @@
-;; From gdebug.h
-
-
-
;; From gdir.h
(define-function g_dir_open
@@ -2771,6 +2927,17 @@
(varargs #t)
)
+(define-function g_set_error_literal
+ (c-name "g_set_error_literal")
+ (return-type "none")
+ (parameters
+ '("GError**" "err")
+ '("GQuark" "domain")
+ '("gint" "code")
+ '("const-gchar*" "message")
+ )
+)
+
(define-function g_propagate_error
(c-name "g_propagate_error")
(return-type "none")
@@ -2788,6 +2955,27 @@
)
)
+(define-function g_prefix_error
+ (c-name "g_prefix_error")
+ (return-type "none")
+ (parameters
+ '("GError**" "err")
+ '("const-gchar*" "format")
+ )
+ (varargs #t)
+)
+
+(define-function g_propagate_prefixed_error
+ (c-name "g_propagate_prefixed_error")
+ (return-type "none")
+ (parameters
+ '("GError**" "dest")
+ '("GError*" "src")
+ '("const-gchar*" "format")
+ )
+ (varargs #t)
+)
+
;; From gfileutils.h
@@ -2863,6 +3051,14 @@
)
)
+(define-function g_format_size_for_display
+ (c-name "g_format_size_for_display")
+ (return-type "char*")
+ (parameters
+ '("goffset" "size")
+ )
+)
+
(define-function g_build_path
(c-name "g_build_path")
(return-type "gchar*")
@@ -3067,6 +3263,43 @@
(return-type "GList*")
)
+(define-method init
+ (of-object "GHashTableIter")
+ (c-name "g_hash_table_iter_init")
+ (return-type "none")
+ (parameters
+ '("GHashTable*" "hash_table")
+ )
+)
+
+(define-method next
+ (of-object "GHashTableIter")
+ (c-name "g_hash_table_iter_next")
+ (return-type "gboolean")
+ (parameters
+ '("gpointer*" "key")
+ '("gpointer*" "value")
+ )
+)
+
+(define-method get_hash_table
+ (of-object "GHashTableIter")
+ (c-name "g_hash_table_iter_get_hash_table")
+ (return-type "GHashTable*")
+)
+
+(define-method remove
+ (of-object "GHashTableIter")
+ (c-name "g_hash_table_iter_remove")
+ (return-type "none")
+)
+
+(define-method steal
+ (of-object "GHashTableIter")
+ (c-name "g_hash_table_iter_steal")
+ (return-type "none")
+)
+
(define-method ref
(of-object "GHashTable")
(c-name "g_hash_table_ref")
@@ -3723,6 +3956,14 @@
(c-name "g_io_channel_win32_new_messages")
(return-type "GIOChannel*")
(parameters
+ '("gsize" "hwnd")
+ )
+)
+
+(define-function g_io_channel_win32_new_messages
+ (c-name "g_io_channel_win32_new_messages")
+ (return-type "GIOChannel*")
+ (parameters
'("guint" "hwnd")
)
)
@@ -4142,7 +4383,7 @@
(define-method set_comment
(of-object "GKeyFile")
(c-name "g_key_file_set_comment")
- (return-type "none")
+ (return-type "gboolean")
(parameters
'("const-gchar*" "group_name")
'("const-gchar*" "key")
@@ -4165,7 +4406,7 @@
(define-method remove_comment
(of-object "GKeyFile")
(c-name "g_key_file_remove_comment")
- (return-type "none")
+ (return-type "gboolean")
(parameters
'("const-gchar*" "group_name")
'("const-gchar*" "key")
@@ -4176,7 +4417,7 @@
(define-method remove_key
(of-object "GKeyFile")
(c-name "g_key_file_remove_key")
- (return-type "none")
+ (return-type "gboolean")
(parameters
'("const-gchar*" "group_name")
'("const-gchar*" "key")
@@ -4187,7 +4428,7 @@
(define-method remove_group
(of-object "GKeyFile")
(c-name "g_key_file_remove_group")
- (return-type "none")
+ (return-type "gboolean")
(parameters
'("const-gchar*" "group_name")
'("GError**" "error")
@@ -4196,18 +4437,6 @@
-;; From glib.h
-
-
-
-;; From glibintl.h
-
-
-
-;; From glib-object.h
-
-
-
;; From glist.h
(define-function g_list_alloc
@@ -4932,6 +5161,18 @@
)
)
+(define-function g_timeout_add_seconds_full
+ (c-name "g_timeout_add_seconds_full")
+ (return-type "guint")
+ (parameters
+ '("gint" "priority")
+ '("guint" "interval")
+ '("GSourceFunc" "function")
+ '("gpointer" "data")
+ '("GDestroyNotify" "notify")
+ )
+)
+
(define-function g_timeout_add_seconds
(c-name "g_timeout_add_seconds")
(return-type "guint")
@@ -5063,6 +5304,22 @@
)
)
+(define-method push
+ (of-object "GMarkupParseContext")
+ (c-name "g_markup_parse_context_push")
+ (return-type "none")
+ (parameters
+ '("GMarkupParser*" "parser")
+ '("gpointer" "user_data")
+ )
+)
+
+(define-method pop
+ (of-object "GMarkupParseContext")
+ (c-name "g_markup_parse_context_pop")
+ (return-type "gpointer")
+)
+
(define-method end_parse
(of-object "GMarkupParseContext")
(c-name "g_markup_parse_context_end_parse")
@@ -5078,6 +5335,12 @@
(return-type "const-gchar*")
)
+(define-method get_element_stack
+ (of-object "GMarkupParseContext")
+ (c-name "g_markup_parse_context_get_element_stack")
+ (return-type "const-GSList*")
+)
+
(define-method get_position
(of-object "GMarkupParseContext")
(c-name "g_markup_parse_context_get_position")
@@ -5088,6 +5351,12 @@
)
)
+(define-method get_user_data
+ (of-object "GMarkupParseContext")
+ (c-name "g_markup_parse_context_get_user_data")
+ (return-type "gpointer")
+)
+
(define-function g_markup_escape_text
(c-name "g_markup_escape_text")
(return-type "gchar*")
@@ -5115,6 +5384,20 @@
)
)
+(define-function g_markup_collect_attributes
+ (c-name "g_markup_collect_attributes")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "element_name")
+ '("const-gchar**" "attribute_names")
+ '("const-gchar**" "attribute_values")
+ '("GError**" "error")
+ '("GMarkupCollectType" "first_type")
+ '("const-gchar*" "first_attr")
+ )
+ (varargs #t)
+)
+
;; From gmem.h
@@ -5123,7 +5406,7 @@
(c-name "g_malloc")
(return-type "gpointer")
(parameters
- '("gulong" "n_bytes")
+ '("gsize" "n_bytes")
)
)
@@ -5131,7 +5414,7 @@
(c-name "g_malloc0")
(return-type "gpointer")
(parameters
- '("gulong" "n_bytes")
+ '("gsize" "n_bytes")
)
)
@@ -5140,7 +5423,7 @@
(return-type "gpointer")
(parameters
'("gpointer" "mem")
- '("gulong" "n_bytes")
+ '("gsize" "n_bytes")
)
)
@@ -5156,7 +5439,7 @@
(c-name "g_try_malloc")
(return-type "gpointer")
(parameters
- '("gulong" "n_bytes")
+ '("gsize" "n_bytes")
)
)
@@ -5164,7 +5447,7 @@
(c-name "g_try_malloc0")
(return-type "gpointer")
(parameters
- '("gulong" "n_bytes")
+ '("gsize" "n_bytes")
)
)
@@ -5173,7 +5456,7 @@
(return-type "gpointer")
(parameters
'("gpointer" "mem")
- '("gulong" "n_bytes")
+ '("gsize" "n_bytes")
)
)
@@ -5202,7 +5485,7 @@
(parameters
'("const-gchar*" "name")
'("gint" "atom_size")
- '("gulong" "area_size")
+ '("gsize" "area_size")
'("gint" "type")
)
)
@@ -5380,6 +5663,18 @@
)
)
+(define-function g_warn_message
+ (c-name "g_warn_message")
+ (return-type "none")
+ (parameters
+ '("const-char*" "domain")
+ '("const-char*" "file")
+ '("int" "line")
+ '("const-char*" "func")
+ '("const-char*" "warnexpr")
+ )
+)
+
(define-function g_assert_warning
(c-name "g_assert_warning")
(return-type "none")
@@ -5419,10 +5714,6 @@
-;; From gmirroringtable.h
-
-
-
;; From gnode.h
(define-function g_node_new
@@ -5937,6 +6228,20 @@
+;; From gpoll.h
+
+(define-function g_poll
+ (c-name "g_poll")
+ (return-type "gint")
+ (parameters
+ '("GPollFD*" "fds")
+ '("guint" "nfds")
+ '("gint" "timeout")
+ )
+)
+
+
+
;; From gprimes.h
(define-function g_spaced_primes_closest
@@ -6021,10 +6326,6 @@
-;; From gprintfint.h
-
-
-
;; From gqsort.h
(define-function g_qsort_with_data
@@ -7132,10 +7433,6 @@
-;; From gscripttable.h
-
-
-
;; From gsequence.h
(define-function g_sequence_new
@@ -7494,6 +7791,15 @@
)
)
+(define-function g_slice_copy
+ (c-name "g_slice_copy")
+ (return-type "gpointer")
+ (parameters
+ '("gsize" "block_size")
+ '("gconstpointer" "mem_block")
+ )
+)
+
(define-function g_slice_free1
(c-name "g_slice_free1")
(return-type "none")
@@ -8035,6 +8341,15 @@
)
)
+(define-function g_utime
+ (c-name "g_utime")
+ (return-type "int")
+ (parameters
+ '("const-gchar*" "filename")
+ '("struct-utimbuf*" "utb")
+ )
+)
+
;; From gstrfuncs.h
@@ -8488,6 +8803,46 @@
)
)
+(define-function g_dgettext
+ (c-name "g_dgettext")
+ (return-type "const-gchar*")
+ (parameters
+ '("const-gchar*" "domain")
+ '("const-gchar*" "msgid")
+ )
+)
+
+(define-function g_dngettext
+ (c-name "g_dngettext")
+ (return-type "const-gchar*")
+ (parameters
+ '("const-gchar*" "domain")
+ '("const-gchar*" "msgid")
+ '("const-gchar*" "msgid_plural")
+ '("gulong" "n")
+ )
+)
+
+(define-function g_dpgettext
+ (c-name "g_dpgettext")
+ (return-type "const-gchar*")
+ (parameters
+ '("const-gchar*" "domain")
+ '("const-gchar*" "msgctxtid")
+ '("gsize" "msgidoffset")
+ )
+)
+
+(define-function g_dpgettext2
+ (c-name "g_dpgettext2")
+ (return-type "const-gchar*")
+ (parameters
+ '("const-gchar*" "domain")
+ '("const-gchar*" "context")
+ '("const-gchar*" "msgid")
+ )
+)
+
;; From gstring.h
@@ -8725,6 +9080,27 @@
)
)
+(define-method overwrite
+ (of-object "GString")
+ (c-name "g_string_overwrite")
+ (return-type "GString*")
+ (parameters
+ '("gsize" "pos")
+ '("const-gchar*" "val")
+ )
+)
+
+(define-method overwrite_len
+ (of-object "GString")
+ (c-name "g_string_overwrite_len")
+ (return-type "GString*")
+ (parameters
+ '("gsize" "pos")
+ '("const-gchar*" "val")
+ '("gssize" "len")
+ )
+)
+
(define-method erase
(of-object "GString")
(c-name "g_string_erase")
@@ -8747,6 +9123,16 @@
(return-type "GString*")
)
+(define-method vprintf
+ (of-object "GString")
+ (c-name "g_string_vprintf")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "format")
+ '("va_list" "args")
+ )
+)
+
(define-method printf
(of-object "GString")
(c-name "g_string_printf")
@@ -8757,6 +9143,16 @@
(varargs #t)
)
+(define-method append_vprintf
+ (of-object "GString")
+ (c-name "g_string_append_vprintf")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "format")
+ '("va_list" "args")
+ )
+)
+
(define-method append_printf
(of-object "GString")
(c-name "g_string_append_printf")
@@ -8767,6 +9163,17 @@
(varargs #t)
)
+(define-method append_uri_escaped
+ (of-object "GString")
+ (c-name "g_string_append_uri_escaped")
+ (return-type "GString*")
+ (parameters
+ '("const-char*" "unescaped")
+ '("const-char*" "reserved_chars_allowed")
+ '("gboolean" "allow_utf8")
+ )
+)
+
(define-method up
(of-object "GString")
(c-name "g_string_up")
@@ -8775,6 +9182,361 @@
+;; From gtestutils.h
+
+(define-function g_strcmp0
+ (c-name "g_strcmp0")
+ (return-type "int")
+ (parameters
+ '("const-char*" "str1")
+ '("const-char*" "str2")
+ )
+)
+
+(define-function g_test_minimized_result
+ (c-name "g_test_minimized_result")
+ (return-type "none")
+ (parameters
+ '("double" "minimized_quantity")
+ '("const-char*" "format")
+ )
+ (varargs #t)
+)
+
+(define-function g_test_maximized_result
+ (c-name "g_test_maximized_result")
+ (return-type "none")
+ (parameters
+ '("double" "maximized_quantity")
+ '("const-char*" "format")
+ )
+ (varargs #t)
+)
+
+(define-function g_test_init
+ (c-name "g_test_init")
+ (return-type "none")
+ (parameters
+ '("int*" "argc")
+ '("char***" "argv")
+ )
+ (varargs #t)
+)
+
+(define-function g_test_run
+ (c-name "g_test_run")
+ (return-type "int")
+)
+
+(define-function g_test_add_func
+ (c-name "g_test_add_func")
+ (return-type "none")
+ (parameters
+ '("const-char*" "testpath")
+ '("void-(*" "test_func")
+ )
+)
+
+(define-function g_test_add_data_func
+ (c-name "g_test_add_data_func")
+ (return-type "none")
+ (parameters
+ '("const-char*" "testpath")
+ '("gconstpointer" "test_data")
+ '("void-(*" "test_func")
+ )
+)
+
+(define-function g_test_message
+ (c-name "g_test_message")
+ (return-type "none")
+ (parameters
+ '("const-char*" "format")
+ )
+ (varargs #t)
+)
+
+(define-function g_test_bug_base
+ (c-name "g_test_bug_base")
+ (return-type "none")
+ (parameters
+ '("const-char*" "uri_pattern")
+ )
+)
+
+(define-function g_test_bug
+ (c-name "g_test_bug")
+ (return-type "none")
+ (parameters
+ '("const-char*" "bug_uri_snippet")
+ )
+)
+
+(define-function g_test_timer_start
+ (c-name "g_test_timer_start")
+ (return-type "none")
+)
+
+(define-function g_test_timer_elapsed
+ (c-name "g_test_timer_elapsed")
+ (return-type "double")
+)
+
+(define-function g_test_timer_last
+ (c-name "g_test_timer_last")
+ (return-type "double")
+)
+
+(define-function g_test_queue_free
+ (c-name "g_test_queue_free")
+ (return-type "none")
+ (parameters
+ '("gpointer" "gfree_pointer")
+ )
+)
+
+(define-function g_test_queue_destroy
+ (c-name "g_test_queue_destroy")
+ (return-type "none")
+ (parameters
+ '("GDestroyNotify" "destroy_func")
+ '("gpointer" "destroy_data")
+ )
+)
+
+(define-function g_test_trap_fork
+ (c-name "g_test_trap_fork")
+ (return-type "gboolean")
+ (parameters
+ '("guint64" "usec_timeout")
+ '("GTestTrapFlags" "test_trap_flags")
+ )
+)
+
+(define-function g_test_trap_has_passed
+ (c-name "g_test_trap_has_passed")
+ (return-type "gboolean")
+)
+
+(define-function g_test_trap_reached_timeout
+ (c-name "g_test_trap_reached_timeout")
+ (return-type "gboolean")
+)
+
+(define-function g_test_rand_int
+ (c-name "g_test_rand_int")
+ (return-type "gint32")
+)
+
+(define-function g_test_rand_int_range
+ (c-name "g_test_rand_int_range")
+ (return-type "gint32")
+ (parameters
+ '("gint32" "begin")
+ '("gint32" "end")
+ )
+)
+
+(define-function g_test_rand_double
+ (c-name "g_test_rand_double")
+ (return-type "double")
+)
+
+(define-function g_test_rand_double_range
+ (c-name "g_test_rand_double_range")
+ (return-type "double")
+ (parameters
+ '("double" "range_start")
+ '("double" "range_end")
+ )
+)
+
+(define-function g_test_create_case
+ (c-name "g_test_create_case")
+ (return-type "GTestCase*")
+ (parameters
+ '("const-char*" "test_name")
+ '("gsize" "data_size")
+ '("gconstpointer" "test_data")
+ '("void-(*" "data_setup")
+ )
+)
+
+(define-function g_test_create_suite
+ (c-name "g_test_create_suite")
+ (return-type "GTestSuite*")
+ (parameters
+ '("const-char*" "suite_name")
+ )
+)
+
+(define-function g_test_get_root
+ (c-name "g_test_get_root")
+ (return-type "GTestSuite*")
+)
+
+(define-method add
+ (of-object "GTestSuite")
+ (c-name "g_test_suite_add")
+ (return-type "none")
+ (parameters
+ '("GTestCase*" "test_case")
+ )
+)
+
+(define-method add_suite
+ (of-object "GTestSuite")
+ (c-name "g_test_suite_add_suite")
+ (return-type "none")
+ (parameters
+ '("GTestSuite*" "nestedsuite")
+ )
+)
+
+(define-function g_test_run_suite
+ (c-name "g_test_run_suite")
+ (return-type "int")
+ (parameters
+ '("GTestSuite*" "suite")
+ )
+)
+
+(define-function g_test_trap_assertions
+ (c-name "g_test_trap_assertions")
+ (return-type "none")
+ (parameters
+ '("const-char*" "domain")
+ '("const-char*" "file")
+ '("int" "line")
+ '("const-char*" "func")
+ '("guint64" "assertion_flags")
+ '("const-char*" "pattern")
+ )
+)
+
+(define-function g_assertion_message
+ (c-name "g_assertion_message")
+ (return-type "none")
+ (parameters
+ '("const-char*" "domain")
+ '("const-char*" "file")
+ '("int" "line")
+ '("const-char*" "func")
+ '("const-char*" "message")
+ )
+)
+
+(define-function g_assertion_message_expr
+ (c-name "g_assertion_message_expr")
+ (return-type "none")
+ (parameters
+ '("const-char*" "domain")
+ '("const-char*" "file")
+ '("int" "line")
+ '("const-char*" "func")
+ '("const-char*" "expr")
+ )
+)
+
+(define-function g_assertion_message_cmpstr
+ (c-name "g_assertion_message_cmpstr")
+ (return-type "none")
+ (parameters
+ '("const-char*" "domain")
+ '("const-char*" "file")
+ '("int" "line")
+ '("const-char*" "func")
+ '("const-char*" "expr")
+ '("const-char*" "arg1")
+ '("const-char*" "cmp")
+ '("const-char*" "arg2")
+ )
+)
+
+(define-function g_assertion_message_cmpnum
+ (c-name "g_assertion_message_cmpnum")
+ (return-type "none")
+ (parameters
+ '("const-char*" "domain")
+ '("const-char*" "file")
+ '("int" "line")
+ '("const-char*" "func")
+ '("const-char*" "expr")
+ '("long-double" "arg1")
+ '("const-char*" "cmp")
+ '("long-double" "arg2")
+ '("char" "numtype")
+ )
+)
+
+(define-function g_assertion_message_error
+ (c-name "g_assertion_message_error")
+ (return-type "none")
+ (parameters
+ '("const-char*" "domain")
+ '("const-char*" "file")
+ '("int" "line")
+ '("const-char*" "func")
+ '("const-char*" "expr")
+ '("GError*" "error")
+ '("GQuark" "error_domain")
+ '("int" "error_code")
+ )
+)
+
+(define-function g_test_add_vtable
+ (c-name "g_test_add_vtable")
+ (return-type "none")
+ (parameters
+ '("const-char*" "testpath")
+ '("gsize" "data_size")
+ '("gconstpointer" "test_data")
+ '("void-(*" "data_setup")
+ )
+)
+
+(define-method name
+ (of-object "GTestLogType")
+ (c-name "g_test_log_type_name")
+ (return-type "const-char*")
+)
+
+(define-function g_test_log_buffer_new
+ (c-name "g_test_log_buffer_new")
+ (is-constructor-of "GTestLogBuffer")
+ (return-type "GTestLogBuffer*")
+)
+
+(define-method free
+ (of-object "GTestLogBuffer")
+ (c-name "g_test_log_buffer_free")
+ (return-type "none")
+)
+
+(define-method push
+ (of-object "GTestLogBuffer")
+ (c-name "g_test_log_buffer_push")
+ (return-type "none")
+ (parameters
+ '("guint" "n_bytes")
+ '("const-guint8*" "bytes")
+ )
+)
+
+(define-method pop
+ (of-object "GTestLogBuffer")
+ (c-name "g_test_log_buffer_pop")
+ (return-type "GTestLogMsg*")
+)
+
+(define-method free
+ (of-object "GTestLogMsg")
+ (c-name "g_test_log_msg_free")
+ (return-type "none")
+)
+
+
+
;; From gthread.h
(define-function guint64
@@ -9003,6 +9765,23 @@
)
)
+(define-function g_once_init_enter_impl
+ (c-name "g_once_init_enter_impl")
+ (return-type "gboolean")
+ (parameters
+ '("volatile-gsize*" "value_location")
+ )
+)
+
+(define-function g_once_init_leave
+ (c-name "g_once_init_leave")
+ (return-type "none")
+ (parameters
+ '("volatile-gsize*" "value_location")
+ '("gsize" "initialization_value")
+ )
+)
+
;; From gthreadpool.h
@@ -9116,15 +9895,6 @@
-;; From gthreadprivate.h
-
-(define-function g_thread_init_glib
- (c-name "g_thread_init_glib")
- (return-type "none")
-)
-
-
-
;; From gtimer.h
(define-function g_timer_new
@@ -9350,14 +10120,6 @@
-;; From gunibreak.h
-
-
-
-;; From gunichartables.h
-
-
-
;; From gunicode.h
(define-function g_get_charset
@@ -9512,6 +10274,12 @@
(return-type "GUnicodeBreakType")
)
+(define-method combining_class
+ (of-object "gunichar")
+ (c-name "g_unichar_combining_class")
+ (return-type "gint")
+)
+
(define-function g_unicode_canonical_ordering
(c-name "g_unicode_canonical_ordering")
(return-type "none")
@@ -9827,15 +10595,44 @@
-;; From gunicodeprivate.h
-
+;; From gurifuncs.h
+(define-function g_uri_unescape_string
+ (c-name "g_uri_unescape_string")
+ (return-type "char*")
+ (parameters
+ '("const-char*" "escaped_string")
+ '("const-char*" "illegal_characters")
+ )
+)
-;; From gunicomp.h
-
+(define-function g_uri_unescape_segment
+ (c-name "g_uri_unescape_segment")
+ (return-type "char*")
+ (parameters
+ '("const-char*" "escaped_string")
+ '("const-char*" "escaped_string_end")
+ '("const-char*" "illegal_characters")
+ )
+)
+(define-function g_uri_parse_scheme
+ (c-name "g_uri_parse_scheme")
+ (return-type "char*")
+ (parameters
+ '("const-char*" "uri")
+ )
+)
-;; From gunidecomp.h
+(define-function g_uri_escape_string
+ (c-name "g_uri_escape_string")
+ (return-type "char*")
+ (parameters
+ '("const-char*" "unescaped")
+ '("const-char*" "reserved_chars_allowed")
+ '("gboolean" "allow_utf8")
+ )
+)
@@ -9907,6 +10704,24 @@
(return-type "const-gchar*")
)
+(define-function g_get_system_data_dirs
+ (c-name "g_get_system_data_dirs")
+ (return-type "const-gchar**")
+)
+
+(define-function g_win32_get_system_data_dirs_for_module
+ (c-name "g_win32_get_system_data_dirs_for_module")
+ (return-type "const-gchar**")
+ (parameters
+ '("gconstpointer" "address")
+ )
+)
+
+(define-function g_get_language_names
+ (c-name "g_get_language_names")
+ (return-type "const-gchar**")
+)
+
(define-function g_get_user_special_dir
(c-name "g_get_user_special_dir")
(return-type "const-gchar*")
@@ -10039,6 +10854,14 @@
)
)
+(define-function atexit
+ (c-name "atexit")
+ (return-type "int")
+ (parameters
+ '("void" "(*")
+ )
+)
+
(define-function g_find_program_in_path
(c-name "g_find_program_in_path")
(return-type "gchar*")
@@ -10102,6 +10925,14 @@
)
)
+(define-function g_win32_get_package_installation_directory_of_module
+ (c-name "g_win32_get_package_installation_directory_of_module")
+ (return-type "gchar*")
+ (parameters
+ '("gpointer" "hmodule")
+ )
+)
+
(define-function g_win32_get_windows_version
(c-name "g_win32_get_windows_version")
(return-type "guint")
diff --git a/libs/glibmm2/glib/src/gmodule_enums.defs b/libs/glibmm2/glib/src/gmodule_enums.defs
index 16b781bd3e..cf02bddfbc 100644
--- a/libs/glibmm2/glib/src/gmodule_enums.defs
+++ b/libs/glibmm2/glib/src/gmodule_enums.defs
@@ -1,4 +1,4 @@
-;; From /home/murrayc/cvs/gnome212/glib/gmodule/gmodule.h
+;; From /opt/gnome2/include/glib-2.0/gmodule.h
(define-flags-extended ModuleFlags
(in-module "G")
diff --git a/libs/glibmm2/glib/src/gmodule_functions.defs b/libs/glibmm2/glib/src/gmodule_functions.defs
index 220ab5148a..853bd0bdd0 100644
--- a/libs/glibmm2/glib/src/gmodule_functions.defs
+++ b/libs/glibmm2/glib/src/gmodule_functions.defs
@@ -14,11 +14,7 @@
)
-;; From /home/murrayc/cvs/gnome212/glib/gmodule/gmoduleconf.h
-
-
-
-;; From /home/murrayc/cvs/gnome212/glib/gmodule/gmodule.h
+;; From gmodule.h
(define-function g_module_supported
(c-name "g_module_supported")
diff --git a/libs/glibmm2/glib/src/gobject_enums.defs b/libs/glibmm2/glib/src/gobject_enums.defs
index d234bdb395..5d796e66d4 100644
--- a/libs/glibmm2/glib/src/gobject_enums.defs
+++ b/libs/glibmm2/glib/src/gobject_enums.defs
@@ -1,4 +1,4 @@
-;; From gobject/gparam.h
+;; From /opt/gnome2/include/glib-2.0/gobject/gparam.h
(define-flags-extended ParamFlags
(in-module "G")
@@ -9,11 +9,12 @@
'("construct" "G_PARAM_CONSTRUCT" "1 << 2")
'("construct-only" "G_PARAM_CONSTRUCT_ONLY" "1 << 3")
'("lax-validation" "G_PARAM_LAX_VALIDATION" "1 << 4")
- '("private" "G_PARAM_PRIVATE" "1 << 5")
+ '("static-name" "G_PARAM_STATIC_NAME" "1 << 5")
+ '("static-blurb" "G_PARAM_STATIC_BLURB" "1 << 7")
)
)
-;; From gobject/gsignal.h
+;; From /opt/gnome2/include/glib-2.0/gobject/gsignal.h
(define-flags-extended SignalFlags
(in-module "G")
@@ -51,7 +52,7 @@
)
)
-;; From gobject/gtype.h
+;; From /opt/gnome2/include/glib-2.0/gobject/gtype.h
(define-flags-extended TypeDebugFlags
(in-module "G")
@@ -64,17 +65,23 @@
)
)
-(define-enum-extended TypeFundamentalFlags
+(define-flags-extended TypeFundamentalFlags
(in-module "G")
(c-name "GTypeFundamentalFlags")
(values
+ '("classed" "G_TYPE_FLAG_CLASSED" "1 << 0")
+ '("instantiatable" "G_TYPE_FLAG_INSTANTIATABLE" "1 << 1")
+ '("derivable" "G_TYPE_FLAG_DERIVABLE" "1 << 2")
+ '("deep-derivable" "G_TYPE_FLAG_DEEP_DERIVABLE" "1 << 3")
)
)
-(define-enum-extended TypeFlags
+(define-flags-extended TypeFlags
(in-module "G")
(c-name "GTypeFlags")
(values
+ '("abstract" "G_TYPE_FLAG_ABSTRACT" "1 << 4")
+ '("value-abstract" "G_TYPE_FLAG_VALUE_ABSTRACT" "1 << 5")
)
)
diff --git a/libs/glibmm2/glib/src/gobject_functions.defs b/libs/glibmm2/glib/src/gobject_functions.defs
index f06327cace..49a6c227c4 100644
--- a/libs/glibmm2/glib/src/gobject_functions.defs
+++ b/libs/glibmm2/glib/src/gobject_functions.defs
@@ -1,16 +1,22 @@
;; -*- scheme -*-
; object definitions ...
-(define-object TypeModule
- (in-module "G")
+(define-object Module
+ (in-module "GType")
(parent "GObject")
(c-name "GTypeModule")
(gtype-id "G_TYPE_TYPE_MODULE")
)
+(define-object Plugin
+ (in-module "GType")
+ (c-name "GTypePlugin")
+ (gtype-id "G_TYPE_TYPE_PLUGIN")
+)
+
;; Enumerations and flags ...
-(define-flags ParamFlags
- (in-module "G")
+(define-flags Flags
+ (in-module "GParam")
(c-name "GParamFlags")
(gtype-id "G_TYPE_PARAM_FLAGS")
(values
@@ -19,12 +25,15 @@
'("construct" "G_PARAM_CONSTRUCT")
'("construct-only" "G_PARAM_CONSTRUCT_ONLY")
'("lax-validation" "G_PARAM_LAX_VALIDATION")
+ '("static-name" "G_PARAM_STATIC_NAME")
'("private" "G_PARAM_PRIVATE")
+ '("static-nick" "G_PARAM_STATIC_NICK")
+ '("static-blurb" "G_PARAM_STATIC_BLURB")
)
)
-(define-flags SignalFlags
- (in-module "G")
+(define-flags Flags
+ (in-module "GSignal")
(c-name "GSignalFlags")
(gtype-id "G_TYPE_SIGNAL_FLAGS")
(values
@@ -38,8 +47,8 @@
)
)
-(define-flags ConnectFlags
- (in-module "G")
+(define-flags Flags
+ (in-module "GConnect")
(c-name "GConnectFlags")
(gtype-id "G_TYPE_CONNECT_FLAGS")
(values
@@ -48,8 +57,8 @@
)
)
-(define-flags SignalMatchType
- (in-module "G")
+(define-flags MatchType
+ (in-module "GSignal")
(c-name "GSignalMatchType")
(gtype-id "G_TYPE_SIGNAL_MATCH_TYPE")
(values
@@ -62,8 +71,8 @@
)
)
-(define-flags TypeDebugFlags
- (in-module "G")
+(define-flags DebugFlags
+ (in-module "GType")
(c-name "GTypeDebugFlags")
(gtype-id "G_TYPE_TYPE_DEBUG_FLAGS")
(values
@@ -74,8 +83,8 @@
)
)
-(define-flags TypeFundamentalFlags
- (in-module "G")
+(define-flags FundamentalFlags
+ (in-module "GType")
(c-name "GTypeFundamentalFlags")
(gtype-id "G_TYPE_TYPE_FUNDAMENTAL_FLAGS")
(values
@@ -86,8 +95,8 @@
)
)
-(define-flags TypeFlags
- (in-module "G")
+(define-flags Flags
+ (in-module "GType")
(c-name "GTypeFlags")
(gtype-id "G_TYPE_TYPE_FLAGS")
(values
@@ -97,7 +106,16 @@
)
-;; From gobject/gboxed.h
+;; From gboxed.h
+
+(define-function g_boxed_copy
+ (c-name "g_boxed_copy")
+ (return-type "gpointer")
+ (parameters
+ '("GType" "boxed_type")
+ '("gconstpointer" "src_boxed")
+ )
+)
(define-function g_boxed_free
(c-name "g_boxed_free")
@@ -148,6 +166,15 @@
)
)
+(define-method take_boxed
+ (of-object "GValue")
+ (c-name "g_value_take_boxed")
+ (return-type "none")
+ (parameters
+ '("gconstpointer" "v_boxed")
+ )
+)
+
(define-method set_boxed_take_ownership
(of-object "GValue")
(c-name "g_value_set_boxed_take_ownership")
@@ -172,17 +199,38 @@
(return-type "GType")
)
+(define-function g_date_get_type
+ (c-name "g_date_get_type")
+ (return-type "GType")
+)
+
+(define-function g_strv_get_type
+ (c-name "g_strv_get_type")
+ (return-type "GType")
+)
+
(define-function g_gstring_get_type
(c-name "g_gstring_get_type")
(return-type "GType")
)
+(define-function g_hash_table_get_type
+ (c-name "g_hash_table_get_type")
+ (return-type "GType")
+)
+
+(define-function g_regex_get_type
+ (c-name "g_regex_get_type")
+ (return-type "GType")
+)
-;; From gobject/gclosure.h
+
+;; From gclosure.h
(define-function g_cclosure_new
(c-name "g_cclosure_new")
+ (is-constructor-of "GCclosure")
(return-type "GClosure*")
(parameters
'("GCallback" "callback_func")
@@ -203,6 +251,7 @@
(define-function g_signal_type_cclosure_new
(c-name "g_signal_type_cclosure_new")
+ (is-constructor-of "GSignalTypeCclosure")
(return-type "GClosure*")
(parameters
'("GType" "itype")
@@ -328,7 +377,7 @@
-;; From gobject/genums.h
+;; From genums.h
(define-function g_enum_get_value
(c-name "g_enum_get_value")
@@ -454,11 +503,16 @@
-;; From gobject/gmarshal.h
+;; From gmarshal.h
+
+;; From gobject.h
-;; From gobject/gobject.h
+(define-function g_initially_unowned_get_type
+ (c-name "g_initially_unowned_get_type")
+ (return-type "GType")
+)
(define-method install_property
(of-object "GObjectClass")
@@ -479,6 +533,57 @@
)
)
+(define-method list_properties
+ (of-object "GObjectClass")
+ (c-name "g_object_class_list_properties")
+ (return-type "GParamSpec**")
+ (parameters
+ '("guint*" "n_properties")
+ )
+)
+
+(define-method override_property
+ (of-object "GObjectClass")
+ (c-name "g_object_class_override_property")
+ (return-type "none")
+ (parameters
+ '("guint" "property_id")
+ '("const-gchar*" "name")
+ )
+)
+
+(define-function g_object_interface_install_property
+ (c-name "g_object_interface_install_property")
+ (return-type "none")
+ (parameters
+ '("gpointer" "g_iface")
+ '("GParamSpec*" "pspec")
+ )
+)
+
+(define-function g_object_interface_find_property
+ (c-name "g_object_interface_find_property")
+ (return-type "GParamSpec*")
+ (parameters
+ '("gpointer" "g_iface")
+ '("const-gchar*" "property_name")
+ )
+)
+
+(define-function g_object_interface_list_properties
+ (c-name "g_object_interface_list_properties")
+ (return-type "GParamSpec**")
+ (parameters
+ '("gpointer" "g_iface")
+ '("guint*" "n_properties_p")
+ )
+)
+
+(define-function g_object_get_type
+ (c-name "g_object_get_type")
+ (return-type "GType")
+)
+
(define-function g_object_new
(c-name "g_object_new")
(return-type "gpointer")
@@ -610,6 +715,22 @@
(return-type "none")
)
+(define-function g_object_is_floating
+ (c-name "g_object_is_floating")
+ (return-type "gboolean")
+ (parameters
+ '("gpointer" "object")
+ )
+)
+
+(define-function g_object_ref_sink
+ (c-name "g_object_ref_sink")
+ (return-type "gpointer")
+ (parameters
+ '("gpointer" "object")
+ )
+)
+
(define-function g_object_ref
(c-name "g_object_ref")
(return-type "gpointer")
@@ -664,6 +785,26 @@
)
)
+(define-method add_toggle_ref
+ (of-object "GObject")
+ (c-name "g_object_add_toggle_ref")
+ (return-type "none")
+ (parameters
+ '("GToggleNotify" "notify")
+ '("gpointer" "data")
+ )
+)
+
+(define-method remove_toggle_ref
+ (of-object "GObject")
+ (c-name "g_object_remove_toggle_ref")
+ (return-type "none")
+ (parameters
+ '("GToggleNotify" "notify")
+ '("gpointer" "data")
+ )
+)
+
(define-method get_qdata
(of-object "GObject")
(c-name "g_object_get_qdata")
@@ -796,7 +937,7 @@
(define-method dup_object
(of-object "GValue")
(c-name "g_value_dup_object")
- (return-type "GObject*")
+ (return-type "gpointer")
)
(define-function g_signal_connect_object
@@ -811,12 +952,27 @@
)
)
+(define-method force_floating
+ (of-object "GObject")
+ (c-name "g_object_force_floating")
+ (return-type "none")
+)
+
(define-method run_dispose
(of-object "GObject")
(c-name "g_object_run_dispose")
(return-type "none")
)
+(define-method take_object
+ (of-object "GValue")
+ (c-name "g_value_take_object")
+ (return-type "none")
+ (parameters
+ '("gpointer" "v_object")
+ )
+)
+
(define-method set_object_take_ownership
(of-object "GValue")
(c-name "g_value_set_object_take_ownership")
@@ -826,9 +982,18 @@
)
)
+(define-function g_object_compat_control
+ (c-name "g_object_compat_control")
+ (return-type "gsize")
+ (parameters
+ '("gsize" "what")
+ '("gpointer" "data")
+ )
+)
+
-;; From gobject/gparam.h
+;; From gparam.h
(define-method ref
(of-object "GParamSpec")
@@ -848,6 +1013,12 @@
(return-type "none")
)
+(define-method ref_sink
+ (of-object "GParamSpec")
+ (c-name "g_param_spec_ref_sink")
+ (return-type "GParamSpec*")
+)
+
(define-method get_qdata
(of-object "GParamSpec")
(c-name "g_param_spec_get_qdata")
@@ -887,6 +1058,12 @@
)
)
+(define-method get_redirect_target
+ (of-object "GParamSpec")
+ (c-name "g_param_spec_get_redirect_target")
+ (return-type "GParamSpec*")
+)
+
(define-function g_param_value_set_default
(c-name "g_param_value_set_default")
(return-type "none")
@@ -974,31 +1151,30 @@
(return-type "GParamSpec*")
)
-(define-method set_param_take_ownership
+(define-method take_param
(of-object "GValue")
- (c-name "g_value_set_param_take_ownership")
+ (c-name "g_value_take_param")
(return-type "none")
(parameters
'("GParamSpec*" "param")
)
)
-(define-function g_param_type_register_static
- (c-name "g_param_type_register_static")
- (return-type "GType")
+(define-method set_param_take_ownership
+ (of-object "GValue")
+ (c-name "g_value_set_param_take_ownership")
+ (return-type "none")
(parameters
- '("const-gchar*" "name")
- '("const-GParamSpecTypeInfo*" "pspec_info")
+ '("GParamSpec*" "param")
)
)
-(define-function _g_param_type_register_static_constant
- (c-name "_g_param_type_register_static_constant")
+(define-function g_param_type_register_static
+ (c-name "g_param_type_register_static")
(return-type "GType")
(parameters
'("const-gchar*" "name")
'("const-GParamSpecTypeInfo*" "pspec_info")
- '("GType" "opt_type")
)
)
@@ -1016,6 +1192,7 @@
(define-function g_param_spec_pool_new
(c-name "g_param_spec_pool_new")
+ (is-constructor-of "GParamSpecPool")
(return-type "GParamSpecPool*")
(parameters
'("gboolean" "type_prefixing")
@@ -1073,7 +1250,7 @@
-;; From gobject/gparamspecs.h
+;; From gparamspecs.h
(define-function g_param_spec_char
(c-name "g_param_spec_char")
@@ -1336,9 +1513,30 @@
)
)
+(define-function g_param_spec_override
+ (c-name "g_param_spec_override")
+ (return-type "GParamSpec*")
+ (parameters
+ '("const-gchar*" "name")
+ '("GParamSpec*" "overridden")
+ )
+)
+
+(define-function g_param_spec_gtype
+ (c-name "g_param_spec_gtype")
+ (return-type "GParamSpec*")
+ (parameters
+ '("const-gchar*" "name")
+ '("const-gchar*" "nick")
+ '("const-gchar*" "blurb")
+ '("GType" "is_a_type")
+ '("GParamFlags" "flags")
+ )
+)
+
-;; From gobject/gsignal.h
+;; From gsignal.h
(define-function g_signal_newv
(c-name "g_signal_newv")
@@ -1391,6 +1589,23 @@
(varargs #t)
)
+(define-function g_signal_new_class_handler
+ (c-name "g_signal_new_class_handler")
+ (return-type "guint")
+ (parameters
+ '("const-gchar*" "signal_name")
+ '("GType" "itype")
+ '("GSignalFlags" "signal_flags")
+ '("GCallback" "class_handler")
+ '("GSignalAccumulator" "accumulator")
+ '("gpointer" "accu_data")
+ '("GSignalCMarshaller" "c_marshaller")
+ '("GType" "return_type")
+ '("guint" "n_params")
+ )
+ (varargs #t)
+)
+
(define-function g_signal_emitv
(c-name "g_signal_emitv")
(return-type "none")
@@ -1513,7 +1728,7 @@
(return-type "gulong")
(parameters
'("guint" "signal_id")
- '("GQuark" "quark")
+ '("GQuark" "detail")
'("GSignalEmissionHook" "hook_func")
'("gpointer" "hook_data")
'("GDestroyNotify" "data_destroy")
@@ -1678,6 +1893,16 @@
)
)
+(define-function g_signal_override_class_handler
+ (c-name "g_signal_override_class_handler")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "signal_name")
+ '("GType" "instance_type")
+ '("GCallback" "class_handler")
+ )
+)
+
(define-function g_signal_chain_from_overridden
(c-name "g_signal_chain_from_overridden")
(return-type "none")
@@ -1687,17 +1912,46 @@
)
)
-(define-function _g_signals_destroy
- (c-name "_g_signals_destroy")
+(define-function g_signal_chain_from_overridden_handler
+ (c-name "g_signal_chain_from_overridden_handler")
(return-type "none")
(parameters
- '("GType" "itype")
+ '("gpointer" "instance")
)
+ (varargs #t)
)
+(define-function g_signal_accumulator_true_handled
+ (c-name "g_signal_accumulator_true_handled")
+ (return-type "gboolean")
+ (parameters
+ '("GSignalInvocationHint*" "ihint")
+ '("GValue*" "return_accu")
+ '("const-GValue*" "handler_return")
+ '("gpointer" "dummy")
+ )
+)
+(define-function g_signal_handlers_destroy
+ (c-name "g_signal_handlers_destroy")
+ (return-type "none")
+ (parameters
+ '("gpointer" "instance")
+ )
+)
+
+
+
+;; From gsourceclosure.h
-;; From gobject/gsourceclosure.h
+(define-method set_closure
+ (of-object "GSource")
+ (c-name "g_source_set_closure")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ )
+)
(define-function g_io_channel_get_type
(c-name "g_io_channel_get_type")
@@ -1711,7 +1965,7 @@
-;; From gobject/gtype.h
+;; From gtype.h
(define-function g_type_init
(c-name "g_type_init")
@@ -1788,6 +2042,12 @@
(return-type "gpointer")
)
+(define-method class_peek_static
+ (of-object "GType")
+ (c-name "g_type_class_peek_static")
+ (return-type "gpointer")
+)
+
(define-function g_type_class_unref
(c-name "g_type_class_unref")
(return-type "none")
@@ -1821,6 +2081,26 @@
)
)
+(define-method default_interface_ref
+ (of-object "GType")
+ (c-name "g_type_default_interface_ref")
+ (return-type "gpointer")
+)
+
+(define-method default_interface_peek
+ (of-object "GType")
+ (c-name "g_type_default_interface_peek")
+ (return-type "gpointer")
+)
+
+(define-function g_type_default_interface_unref
+ (c-name "g_type_default_interface_unref")
+ (return-type "none")
+ (parameters
+ '("gpointer" "g_iface")
+ )
+)
+
(define-method children
(of-object "GType")
(c-name "g_type_children")
@@ -1878,6 +2158,20 @@
)
)
+(define-method register_static_simple
+ (of-object "GType")
+ (c-name "g_type_register_static_simple")
+ (return-type "GType")
+ (parameters
+ '("const-gchar*" "type_name")
+ '("guint" "class_size")
+ '("GClassInitFunc" "class_init")
+ '("guint" "instance_size")
+ '("GInstanceInitFunc" "instance_init")
+ '("GTypeFlags" "flags")
+ )
+)
+
(define-method register_dynamic
(of-object "GType")
(c-name "g_type_register_dynamic")
@@ -1930,6 +2224,33 @@
)
)
+(define-method interface_prerequisites
+ (of-object "GType")
+ (c-name "g_type_interface_prerequisites")
+ (return-type "GType*")
+ (parameters
+ '("guint*" "n_prerequisites")
+ )
+)
+
+(define-function g_type_class_add_private
+ (c-name "g_type_class_add_private")
+ (return-type "none")
+ (parameters
+ '("gpointer" "g_class")
+ '("gsize" "private_size")
+ )
+)
+
+(define-method get_private
+ (of-object "GTypeInstance")
+ (c-name "g_type_instance_get_private")
+ (return-type "gpointer")
+ (parameters
+ '("GType" "private_type")
+ )
+)
+
(define-method get_plugin
(of-object "GType")
(c-name "g_type_get_plugin")
@@ -1941,7 +2262,7 @@
(c-name "g_type_interface_get_plugin")
(return-type "GTypePlugin*")
(parameters
- '("GType" "implementation_type")
+ '("GType" "interface_type")
)
)
@@ -1996,6 +2317,24 @@
)
)
+(define-function g_type_add_interface_check
+ (c-name "g_type_add_interface_check")
+ (return-type "none")
+ (parameters
+ '("gpointer" "check_data")
+ '("GTypeInterfaceCheckFunc" "check_func")
+ )
+)
+
+(define-function g_type_remove_interface_check
+ (c-name "g_type_remove_interface_check")
+ (return-type "none")
+ (parameters
+ '("gpointer" "check_data")
+ '("GTypeInterfaceCheckFunc" "check_func")
+ )
+)
+
(define-method value_table_peek
(of-object "GType")
(c-name "g_type_value_table_peek")
@@ -2096,7 +2435,7 @@
-;; From gobject/gtypemodule.h
+;; From gtypemodule.h
(define-function g_type_module_get_type
(c-name "g_type_module_get_type")
@@ -2147,9 +2486,29 @@
)
)
+(define-method register_enum
+ (of-object "GTypeModule")
+ (c-name "g_type_module_register_enum")
+ (return-type "GType")
+ (parameters
+ '("const-gchar*" "name")
+ '("const-GEnumValue*" "const_static_values")
+ )
+)
+
+(define-method register_flags
+ (of-object "GTypeModule")
+ (c-name "g_type_module_register_flags")
+ (return-type "GType")
+ (parameters
+ '("const-gchar*" "name")
+ '("const-GFlagsValue*" "const_static_values")
+ )
+)
-;; From gobject/gtypeplugin.h
+
+;; From gtypeplugin.h
(define-function g_type_plugin_get_type
(c-name "g_type_plugin_get_type")
@@ -2184,27 +2543,28 @@
(c-name "g_type_plugin_complete_interface_info")
(return-type "none")
(parameters
- '("GType" "interface_type")
'("GType" "instance_type")
+ '("GType" "interface_type")
'("GInterfaceInfo*" "info")
)
)
-;; From gobject/gvaluearray.h
+;; From gvaluearray.h
(define-method get_nth
(of-object "GValueArray")
(c-name "g_value_array_get_nth")
(return-type "GValue*")
(parameters
- '("guint" "index")
+ '("guint" "index_")
)
)
(define-function g_value_array_new
(c-name "g_value_array_new")
+ (is-constructor-of "GValueArray")
(return-type "GValueArray*")
(parameters
'("guint" "n_prealloced")
@@ -2246,7 +2606,7 @@
(c-name "g_value_array_insert")
(return-type "GValueArray*")
(parameters
- '("guint" "index")
+ '("guint" "index_")
'("const-GValue*" "value")
)
)
@@ -2256,7 +2616,7 @@
(c-name "g_value_array_remove")
(return-type "GValueArray*")
(parameters
- '("guint" "index")
+ '("guint" "index_")
)
)
@@ -2281,11 +2641,11 @@
-;; From gobject/gvaluecollector.h
+;; From gvaluecollector.h
-;; From gobject/gvalue.h
+;; From gvalue.h
(define-method init
(of-object "GValue")
@@ -2377,7 +2737,16 @@
-;; From gobject/gvaluetypes.h
+;; From gvaluetypes.h
+
+(define-method set_char
+ (of-object "GValue")
+ (c-name "g_value_set_char")
+ (return-type "none")
+ (parameters
+ '("gchar" "v_char")
+ )
+)
(define-method get_char
(of-object "GValue")
@@ -2580,6 +2949,26 @@
(return-type "gpointer")
)
+(define-function g_gtype_get_type
+ (c-name "g_gtype_get_type")
+ (return-type "GType")
+)
+
+(define-method set_gtype
+ (of-object "GValue")
+ (c-name "g_value_set_gtype")
+ (return-type "none")
+ (parameters
+ '("GType" "v_gtype")
+ )
+)
+
+(define-method get_gtype
+ (of-object "GValue")
+ (c-name "g_value_get_gtype")
+ (return-type "GType")
+)
+
(define-function g_pointer_type_register_static
(c-name "g_pointer_type_register_static")
(return-type "GType")
@@ -2596,6 +2985,15 @@
)
)
+(define-method take_string
+ (of-object "GValue")
+ (c-name "g_value_take_string")
+ (return-type "none")
+ (parameters
+ '("gchar*" "v_string")
+ )
+)
+
(define-method set_string_take_ownership
(of-object "GValue")
(c-name "g_value_set_string_take_ownership")
diff --git a/libs/glibmm2/glib/src/iochannel.ccg b/libs/glibmm2/glib/src/iochannel.ccg
index 8763fd1123..cbeeb35476 100644
--- a/libs/glibmm2/glib/src/iochannel.ccg
+++ b/libs/glibmm2/glib/src/iochannel.ccg
@@ -4,16 +4,16 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -22,7 +22,6 @@
#include <glibmm/iochannel.h>
#include <glibmm/utility.h>
#include <glibmm/main.h>
-#include <glib.h>
namespace
@@ -443,12 +442,15 @@ Glib::RefPtr<IOChannel> wrap(GIOChannel* gobject, bool take_copy)
/**** Glib::GlibmmIOChannel ************************************************/
-// static
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
GIOStatus GlibmmIOChannel::io_read(GIOChannel* channel, char* buf, gsize count,
gsize* bytes_read, GError** err)
+#else
+//Avoid an unused parameter warning when GLIBMM_EXCEPTIONS_ENABLED is used.
+GIOStatus GlibmmIOChannel::io_read(GIOChannel* channel, char* buf, gsize count,
+ gsize* bytes_read, GError** /* err */)
+#endif
{
- if(!&err) err = err; //Avoid an unused parameter warning when GLIBMM_EXCEPTIONS_ENABLED is used.
-
IOChannel *const wrapper = reinterpret_cast<GlibmmIOChannel*>(channel)->wrapper;
#ifdef GLIBMM_EXCEPTIONS_ENABLED
@@ -471,12 +473,15 @@ GIOStatus GlibmmIOChannel::io_read(GIOChannel* channel, char* buf, gsize count,
return G_IO_STATUS_ERROR;
}
-// static
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
GIOStatus GlibmmIOChannel::io_write(GIOChannel* channel, const char* buf, gsize count,
gsize* bytes_written, GError** err)
+#else
+//Avoid an unused parameter warning when GLIBMM_EXCEPTIONS_ENABLED is used.
+GIOStatus GlibmmIOChannel::io_write(GIOChannel* channel, const char* buf, gsize count,
+ gsize* bytes_written, GError** /* err */)
+#endif
{
- if(!&err) err = err; //Avoid an unused parameter warning when GLIBMM_EXCEPTIONS_ENABLED is used.
-
IOChannel *const wrapper = reinterpret_cast<GlibmmIOChannel*>(channel)->wrapper;
#ifdef GLIBMM_EXCEPTIONS_ENABLED
@@ -499,11 +504,13 @@ GIOStatus GlibmmIOChannel::io_write(GIOChannel* channel, const char* buf, gsize
return G_IO_STATUS_ERROR;
}
-// static
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
GIOStatus GlibmmIOChannel::io_seek(GIOChannel* channel, gint64 offset, GSeekType type, GError** err)
+#else
+//Avoid an unused parameter warning when GLIBMM_EXCEPTIONS_ENABLED is used.
+GIOStatus GlibmmIOChannel::io_seek(GIOChannel* channel, gint64 offset, GSeekType type, GError** /* err */)
+#endif
{
- if(!&err) err = err; //Avoid an unused parameter warning when GLIBMM_EXCEPTIONS_ENABLED is used.
-
IOChannel *const wrapper = reinterpret_cast<GlibmmIOChannel*>(channel)->wrapper;
#ifdef GLIBMM_EXCEPTIONS_ENABLED
@@ -526,11 +533,13 @@ GIOStatus GlibmmIOChannel::io_seek(GIOChannel* channel, gint64 offset, GSeekType
return G_IO_STATUS_ERROR;
}
-// static
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
GIOStatus GlibmmIOChannel::io_close(GIOChannel* channel, GError** err)
+#else
+//Avoid an unused parameter warning when GLIBMM_EXCEPTIONS_ENABLED is used.
+GIOStatus GlibmmIOChannel::io_close(GIOChannel* channel, GError** /* err */)
+#endif
{
- if(!&err) err = err; //Avoid an unused parameter warning when GLIBMM_EXCEPTIONS_ENABLED is used.
-
IOChannel *const wrapper = reinterpret_cast<GlibmmIOChannel*>(channel)->wrapper;
#ifdef GLIBMM_EXCEPTIONS_ENABLED
@@ -588,11 +597,13 @@ void GlibmmIOChannel::io_free(GIOChannel* channel)
g_free(channel);
}
-// static
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
GIOStatus GlibmmIOChannel::io_set_flags(GIOChannel* channel, GIOFlags flags, GError** err)
+#else
+//Avoid an unused parameter warning when GLIBMM_EXCEPTIONS_ENABLED is used.
+GIOStatus GlibmmIOChannel::io_set_flags(GIOChannel* channel, GIOFlags flags, GError** /* err */)
+#endif
{
- if(!&err) err = err; //Avoid an unused parameter warning when GLIBMM_EXCEPTIONS_ENABLED is used.
-
IOChannel *const wrapper = reinterpret_cast<GlibmmIOChannel*>(channel)->wrapper;
#ifdef GLIBMM_EXCEPTIONS_ENABLED
diff --git a/libs/glibmm2/glib/src/iochannel.hg b/libs/glibmm2/glib/src/iochannel.hg
index 049c2a390b..91e412cd99 100644
--- a/libs/glibmm2/glib/src/iochannel.hg
+++ b/libs/glibmm2/glib/src/iochannel.hg
@@ -4,16 +4,16 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -24,7 +24,7 @@ _DEFS(glibmm,glib)
#include <glibmm/main.h>
#include <glibmm/refptr.h>
#include <glibmm/ustring.h>
-#include <glib/gtypes.h>
+#include <glib.h>
#include <string>
#include <glibmmconfig.h>
diff --git a/libs/glibmm2/glib/src/keyfile.ccg b/libs/glibmm2/glib/src/keyfile.ccg
index 5ff2afcd03..3579320c29 100644
--- a/libs/glibmm2/glib/src/keyfile.ccg
+++ b/libs/glibmm2/glib/src/keyfile.ccg
@@ -1,16 +1,16 @@
/* Copyright 2006 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -35,61 +35,94 @@ KeyFile::KeyFile(GKeyFile* castitem, bool takes_ownership)
KeyFile::~KeyFile()
{
if (owns_gobject_)
- g_key_file_free(gobject_);
+ g_key_file_free(gobject_);
}
bool KeyFile::load_from_data(const Glib::ustring& data, KeyFileFlags flags)
{
- GError *error = 0;
- bool retvalue = g_key_file_load_from_data(gobj(), data.c_str(), data.bytes(), ((GKeyFileFlags)(flags)), &(error));
- if(error) :: Glib::Error::throw_exception(error);
- return retvalue;
+ GError* error = 0;
+
+ const gboolean result = g_key_file_load_from_data(
+ gobj(), data.c_str(), data.bytes(),
+ static_cast<GKeyFileFlags>(unsigned(flags)),
+ &error);
+
+ if(error)
+ Glib::Error::throw_exception(error);
+
+ return (result != 0);
}
-bool KeyFile::load_from_data_dirs(const std::string& file, std::string& full_path, KeyFileFlags flags)
+bool KeyFile::load_from_data_dirs(const std::string& file, std::string& full_path,
+ KeyFileFlags flags)
{
- GError *error = 0;
- char *full_path_c;
- bool retvalue = g_key_file_load_from_data_dirs(gobj(), file.c_str(), &full_path_c, ((GKeyFileFlags)(flags)), &(error));
- full_path = Glib::convert_return_gchar_ptr_to_ustring(full_path_c);
- if(error) :: Glib::Error::throw_exception(error);
- return retvalue;
+ GError* error = 0;
+ char* full_path_c = 0;
+
+ const gboolean result = g_key_file_load_from_data_dirs(
+ gobj(), file.c_str(), &full_path_c,
+ static_cast<GKeyFileFlags>(unsigned(flags)),
+ &error);
+
+ if(error)
+ Glib::Error::throw_exception(error);
+
+ if(full_path_c)
+ full_path = Glib::ScopedPtr<char>(full_path_c).get();
+ else
+ full_path.erase();
+
+ return (result != 0);
}
Glib::ustring KeyFile::to_data()
{
- GError *error = 0;
- gsize size;
- Glib::ustring retvalue = Glib::convert_return_gchar_ptr_to_ustring(g_key_file_to_data(gobj(), &size, &error));
- if(error) :: Glib::Error::throw_exception(error);
- return retvalue;
+ GError* error = 0;
+ char *const str = g_key_file_to_data(gobj(), 0, &error);
+
+ if(error)
+ Glib::Error::throw_exception(error);
+
+ return Glib::convert_return_gchar_ptr_to_ustring(str);
}
Glib::ArrayHandle<Glib::ustring> KeyFile::get_groups() const
{
- gchar** group_names = 0;
- gsize number_of_groups = 0;
- group_names = g_key_file_get_groups(const_cast<GKeyFile*>(gobj()), &number_of_groups);
- return Glib::ArrayHandle<Glib::ustring>(group_names, number_of_groups, Glib::OWNERSHIP_DEEP);
+ gsize length = 0;
+ char** const array = g_key_file_get_groups(const_cast<GKeyFile*>(gobj()), &length);
+
+ return Glib::ArrayHandle<Glib::ustring>(array, length, Glib::OWNERSHIP_DEEP);
}
Glib::ArrayHandle<Glib::ustring> KeyFile::get_keys(const Glib::ustring& group_name) const
{
- gchar** key_names = 0;
- gsize number_of_keys = 0;
- GError* error = 0;
- key_names = g_key_file_get_keys(const_cast<GKeyFile*>(gobj()), group_name.c_str(), &number_of_keys, &error);
+ gsize length = 0;
+ GError* error = 0;
+
+ char** const array = g_key_file_get_keys(
+ const_cast<GKeyFile*>(gobj()),
+ (group_name.empty()) ? 0 : group_name.c_str(),
+ &length, &error);
+
if(error)
Glib::Error::throw_exception(error);
- return Glib::ArrayHandle<Glib::ustring>(key_names, number_of_keys, Glib::OWNERSHIP_DEEP);
+
+ return Glib::ArrayHandle<Glib::ustring>(array, length, Glib::OWNERSHIP_DEEP);
}
-Glib::ustring KeyFile::get_locale_string(const Glib::ustring& group_name, const Glib::ustring& key) const
+Glib::ustring KeyFile::get_locale_string(const Glib::ustring& group_name,
+ const Glib::ustring& key) const
{
- GError *error = 0;
- Glib::ustring retvalue = Glib::convert_return_gchar_ptr_to_ustring(g_key_file_get_locale_string(const_cast<GKeyFile*>(gobj()), group_name.c_str(), key.c_str(), 0, &(error)));
- if(error) ::Glib::Error::throw_exception(error);
- return retvalue;
+ GError* error = 0;
+ char *const str = g_key_file_get_locale_string(
+ const_cast<GKeyFile*>(gobj()),
+ (group_name.empty()) ? 0 : group_name.c_str(),
+ key.c_str(), 0, &error);
+
+ if(error)
+ Glib::Error::throw_exception(error);
+
+ return Glib::convert_return_gchar_ptr_to_ustring(str);
}
#ifdef GLIBMM_EXCEPTIONS_ENABLED
@@ -99,19 +132,17 @@ int KeyFile::get_integer(const Glib::ustring& key, std::auto_ptr<Glib::Error>& e
#endif //GLIBMM_EXCEPTIONS_ENABLED
{
GError* gerror = 0;
- int retvalue = g_key_file_get_integer(const_cast<GKeyFile*>(gobj()), NULL, key.c_str(), &(gerror));
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
+ const int value = g_key_file_get_integer(const_cast<GKeyFile*>(gobj()),
+ 0, key.c_str(), &gerror);
if(gerror)
- ::Glib::Error::throw_exception(gerror);
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+ Glib::Error::throw_exception(gerror);
#else
- if(gerror)
- error = ::Glib::Error::throw_exception(gerror);
-#endif //GLIBMM_EXCEPTIONS_ENABLED
-
- return retvalue;
+ error = Glib::Error::throw_exception(gerror);
+#endif
+ return value;
}
-
#ifdef GLIBMM_EXCEPTIONS_ENABLED
double KeyFile::get_double(const Glib::ustring& key) const
#else
@@ -136,49 +167,76 @@ void KeyFile::set_double(const Glib::ustring& key, double value)
g_key_file_set_double(gobj(), 0, key.c_str(), value);
}
-
-Glib::ArrayHandle<Glib::ustring> KeyFile::get_string_list(const Glib::ustring& group_name, const Glib::ustring& key) const
+// TODO: alternative code path with exceptions disabled
+Glib::ArrayHandle<Glib::ustring> KeyFile::get_string_list(const Glib::ustring& group_name,
+ const Glib::ustring& key) const
{
- gchar** string_list = 0;
- gsize length_of_list = 0;
- GError* error = 0;
- string_list = g_key_file_get_string_list(const_cast<GKeyFile*>(gobj()), group_name.c_str(), key.c_str(), &length_of_list, &error);
+ gsize length = 0;
+ GError* error = 0;
+
+ char** const array = g_key_file_get_string_list(
+ const_cast<GKeyFile*>(gobj()),
+ (group_name.empty()) ? 0 : group_name.c_str(),
+ key.c_str(), &length, &error);
+
if(error)
Glib::Error::throw_exception(error);
- return Glib::ArrayHandle<Glib::ustring>(string_list, length_of_list, Glib::OWNERSHIP_DEEP);
+
+ return Glib::ArrayHandle<Glib::ustring>(array, length, Glib::OWNERSHIP_DEEP);
}
-Glib::ArrayHandle<Glib::ustring> KeyFile::get_locale_string_list(const Glib::ustring& group_name, const Glib::ustring& key, const Glib::ustring& locale) const
+// TODO: alternative code path with exceptions disabled
+Glib::ArrayHandle<Glib::ustring> KeyFile::get_locale_string_list(const Glib::ustring& group_name,
+ const Glib::ustring& key,
+ const Glib::ustring& locale) const
{
- gchar** string_list = 0;
- gsize length_of_list = 0;
- GError* error = 0;
- string_list = g_key_file_get_locale_string_list(const_cast<GKeyFile*>(gobj()), group_name.c_str(), key.c_str(), locale.c_str(), &length_of_list, &error);
+ gsize length = 0;
+ GError* error = 0;
+
+ char** const array = g_key_file_get_locale_string_list(
+ const_cast<GKeyFile*>(gobj()),
+ (group_name.empty()) ? 0 : group_name.c_str(),
+ key.c_str(), locale.c_str(), &length, &error);
+
if(error)
Glib::Error::throw_exception(error);
- return Glib::ArrayHandle<Glib::ustring>(string_list, length_of_list, Glib::OWNERSHIP_DEEP);
+
+ return Glib::ArrayHandle<Glib::ustring>(array, length, Glib::OWNERSHIP_DEEP);
}
-Glib::ArrayHandle<bool> KeyFile::get_boolean_list(const Glib::ustring& group_name, const Glib::ustring& key) const
+// TODO: alternative code path with exceptions disabled
+Glib::ArrayHandle<bool> KeyFile::get_boolean_list(const Glib::ustring& group_name,
+ const Glib::ustring& key) const
{
- gboolean* bool_list = 0;
- gsize length_of_list = 0;
- GError* error = 0;
- bool_list = g_key_file_get_boolean_list(const_cast<GKeyFile*>(gobj()), group_name.c_str(), key.c_str(), &length_of_list, &error);
+ gsize length = 0;
+ GError* error = 0;
+
+ gboolean *const array = g_key_file_get_boolean_list(
+ const_cast<GKeyFile*>(gobj()),
+ (group_name.empty()) ? 0 : group_name.c_str(),
+ key.c_str(), &length, &error);
+
if(error)
Glib::Error::throw_exception(error);
- return Glib::ArrayHandle<bool>(&bool_list, length_of_list, Glib::OWNERSHIP_DEEP);
+
+ return Glib::ArrayHandle<bool>(array, length, Glib::OWNERSHIP_SHALLOW);
}
-Glib::ArrayHandle<int> KeyFile::get_integer_list(const Glib::ustring& group_name, const Glib::ustring& key) const
+Glib::ArrayHandle<int> KeyFile::get_integer_list(const Glib::ustring& group_name,
+ const Glib::ustring& key) const
{
- gint* integer_list = 0;
- gsize length_of_list = 0;
- GError* error = 0;
- integer_list = g_key_file_get_integer_list(const_cast<GKeyFile*>(gobj()), group_name.c_str(), key.c_str(), &length_of_list, &error);
+ gsize length = 0;
+ GError* error = 0;
+
+ int *const array = g_key_file_get_integer_list(
+ const_cast<GKeyFile*>(gobj()),
+ (group_name.empty()) ? 0 : group_name.c_str(),
+ key.c_str(), &length, &error);
+
if(error)
Glib::Error::throw_exception(error);
- return Glib::ArrayHandle<int>(integer_list, length_of_list, Glib::OWNERSHIP_DEEP);
+
+ return Glib::ArrayHandle<int>(array, length, Glib::OWNERSHIP_SHALLOW);
}
Glib::ArrayHandle<double> KeyFile::get_double_list(const Glib::ustring& group_name, const Glib::ustring& key) const
@@ -192,64 +250,81 @@ Glib::ArrayHandle<double> KeyFile::get_double_list(const Glib::ustring& group_na
return Glib::ArrayHandle<double>(integer_list, length_of_list, Glib::OWNERSHIP_DEEP);
}
-void KeyFile::set_string_list(const Glib::ustring& group_name, const Glib::ustring& key, const Glib::ArrayHandle<Glib::ustring>& list)
+void KeyFile::set_string_list(const Glib::ustring& group_name, const Glib::ustring& key,
+ const Glib::ArrayHandle<Glib::ustring>& list)
{
- gsize length_of_list = list.size();
- g_key_file_set_string_list(gobj(), group_name.c_str(), key.c_str(), list.data(), length_of_list);
+ g_key_file_set_string_list(gobj(), (group_name.empty()) ? 0 : group_name.c_str(),
+ key.c_str(), list.data(), list.size());
}
-void KeyFile::set_locale_string_list(const Glib::ustring& group_name, const Glib::ustring& key, const Glib::ustring& locale, const Glib::ArrayHandle<Glib::ustring>& list)
+void KeyFile::set_locale_string_list(const Glib::ustring& group_name,
+ const Glib::ustring& key, const Glib::ustring& locale,
+ const Glib::ArrayHandle<Glib::ustring>& list)
{
- gsize length_of_list = list.size();
- g_key_file_set_locale_string_list(gobj(), group_name.c_str(), key.c_str(), locale.c_str(), list.data(), length_of_list);
+ g_key_file_set_locale_string_list(gobj(), (group_name.empty()) ? 0 : group_name.c_str(),
+ key.c_str(), locale.c_str(), list.data(), list.size());
}
-void KeyFile::set_integer_list(const Glib::ustring& group_name, const Glib::ustring& key, Glib::ArrayHandle<int>& list)
+void KeyFile::set_integer_list(const Glib::ustring& group_name, const Glib::ustring& key,
+ const Glib::ArrayHandle<int>& list)
{
- gsize length_of_list = list.size();
- g_key_file_set_integer_list(gobj(), group_name.c_str(), key.c_str(), const_cast<int*>(list.data()), length_of_list);
+ g_key_file_set_integer_list(gobj(), (group_name.empty()) ? 0 : group_name.c_str(),
+ key.c_str(), const_cast<int*>(list.data()), list.size());
}
-void KeyFile::set_double_list(const Glib::ustring& group_name, const Glib::ustring& key, Glib::ArrayHandle<double>& list)
+void KeyFile::set_double_list(const Glib::ustring& group_name, const Glib::ustring& key,
+ const Glib::ArrayHandle<double>& list)
{
- gsize length_of_list = list.size();
- g_key_file_set_double_list(gobj(), group_name.c_str(), key.c_str(), const_cast<double*>(list.data()), length_of_list);
+ g_key_file_set_double_list(gobj(), group_name.c_str(), key.c_str(),
+ const_cast<double*>(list.data()), list.size());
}
-void KeyFile::set_boolean_list(const Glib::ustring& group_name, const Glib::ustring& key, Glib::ArrayHandle<bool>& list)
+void KeyFile::set_boolean_list(const Glib::ustring& group_name, const Glib::ustring& key,
+ const Glib::ArrayHandle<bool>& list)
{
- gsize length_of_list = list.size();
- g_key_file_set_boolean_list(gobj(), group_name.c_str(), key.c_str(), *(list.data()), length_of_list);
+ g_key_file_set_boolean_list(gobj(), (group_name.empty()) ? 0 : group_name.c_str(),
+ key.c_str(), const_cast<gboolean*>(list.data()), list.size());
}
Glib::ustring KeyFile::get_comment() const
{
- GError *error = 0;
- Glib::ustring retvalue = Glib::convert_return_gchar_ptr_to_ustring(g_key_file_get_comment(const_cast<GKeyFile*>(gobj()), 0, 0, &(error)));
- if(error) ::Glib::Error::throw_exception(error);
- return retvalue;
+ GError* error = 0;
+ char *const str = g_key_file_get_comment(const_cast<GKeyFile*>(gobj()), 0, 0, &error);
+
+ if(error)
+ Glib::Error::throw_exception(error);
+
+ return Glib::convert_return_gchar_ptr_to_ustring(str);
}
Glib::ustring KeyFile::get_comment(const Glib::ustring& group_name) const
{
- GError *error = 0;
- Glib::ustring retvalue = Glib::convert_return_gchar_ptr_to_ustring(g_key_file_get_comment(const_cast<GKeyFile*>(gobj()), group_name.c_str(), 0, &(error)));
- if(error) ::Glib::Error::throw_exception(error);
- return retvalue;
+ GError* error = 0;
+ char *const str = g_key_file_get_comment(const_cast<GKeyFile*>(gobj()),
+ (group_name.empty()) ? 0 : group_name.c_str(),
+ 0, &error);
+ if(error)
+ Glib::Error::throw_exception(error);
+
+ return Glib::convert_return_gchar_ptr_to_ustring(str);
}
void KeyFile::set_comment(const Glib::ustring& comment)
{
- GError *error = 0;
- g_key_file_set_comment(gobj(), 0, 0, comment.c_str(), &(error));
- if(error) ::Glib::Error::throw_exception(error);
+ GError* error = 0;
+ g_key_file_set_comment(gobj(), 0, 0, comment.c_str(), &error);
+
+ if(error)
+ Glib::Error::throw_exception(error);
}
void KeyFile::set_comment(const Glib::ustring& group_name, const Glib::ustring& comment)
{
- GError *error = 0;
- g_key_file_set_comment(gobj(), group_name.c_str(), 0, comment.c_str(), &(error));
- if(error) ::Glib::Error::throw_exception(error);
+ GError* error = 0;
+ g_key_file_set_comment(gobj(), (group_name.empty()) ? 0 : group_name.c_str(),
+ 0, comment.c_str(), &error);
+ if(error)
+ Glib::Error::throw_exception(error);
}
-}
+} // namespace Glib
diff --git a/libs/glibmm2/glib/src/keyfile.hg b/libs/glibmm2/glib/src/keyfile.hg
index 9fdd4918e5..a20dc09818 100644
--- a/libs/glibmm2/glib/src/keyfile.hg
+++ b/libs/glibmm2/glib/src/keyfile.hg
@@ -1,16 +1,16 @@
/* Copyright(C) 2006 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or(at your option) any later version.
+ * version 2.1 of the License, or(at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -21,7 +21,7 @@ _DEFS(glibmm,glib)
#include <glibmm/arrayhandle.h>
#include <glibmm/error.h>
#include <glibmm/utility.h>
-#include <glib/gkeyfile.h>
+#include <glib.h>
#ifndef DOXYGEN_SHOULD_SKIP_THIS
extern "C" { typedef struct _GKeyFile GKeyFile; }
@@ -71,8 +71,8 @@ _WRAP_GERROR(KeyFileError, GKeyFileError, G_KEY_FILE_ERROR, NO_GTYPE)
*
* Key-value pairs generally have the form key=value, with the exception of localized strings, which have the form
* key[locale]=value. Space before and after the '=' character are ignored. Newline, tab, carriage return and
- * backslash characters in value are escaped as \n, \t, \r, and \\, respectively. To preserve leading spaces in
- * values, these can also be escaped as \s.
+ * backslash characters in value are escaped as \\n, \\t, \\r, and \\\\, respectively. To preserve leading spaces in
+ * values, these can also be escaped as \\s.
*
* Key files can store strings (possibly with localized variants), integers, booleans and lists of these. Lists are
* separated by a separator character, typically ';' or ','. To use the list separator character in a value in a
@@ -324,7 +324,7 @@ public:
* @param key The name of a key
* @param list A list holding object of type bool
*/
- void set_boolean_list(const Glib::ustring& group_name, const Glib::ustring& key, Glib::ArrayHandle<bool>& list);
+ void set_boolean_list(const Glib::ustring& group_name, const Glib::ustring& key, const Glib::ArrayHandle<bool>& list);
_IGNORE(g_key_file_set_boolean_list)
/** Sets a list of integers for the @a key under @a group_name.
@@ -333,7 +333,7 @@ public:
* @param key The name of a key
* @param list A list holding object of type int
*/
- void set_integer_list(const Glib::ustring& group_name, const Glib::ustring& key, Glib::ArrayHandle<int>& list);
+ void set_integer_list(const Glib::ustring& group_name, const Glib::ustring& key, const Glib::ArrayHandle<int>& list);
_IGNORE(g_key_file_set_integer_list)
/** Sets a list of doubles for the @a key under @a group_name.
@@ -344,7 +344,7 @@ public:
*
* @newin2p14
*/
- void set_double_list(const Glib::ustring& group_name, const Glib::ustring& key, Glib::ArrayHandle<double>& list);
+ void set_double_list(const Glib::ustring& group_name, const Glib::ustring& key, const Glib::ArrayHandle<double>& list);
_IGNORE(g_key_file_set_double_list)
diff --git a/libs/glibmm2/glib/src/markup.ccg b/libs/glibmm2/glib/src/markup.ccg
index 8e9103b7a5..17bfc38018 100644
--- a/libs/glibmm2/glib/src/markup.ccg
+++ b/libs/glibmm2/glib/src/markup.ccg
@@ -4,16 +4,16 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -98,7 +98,7 @@ void ParserCallbacks::start_element(GMarkupParseContext* context,
void* user_data,
GError** error)
{
- if(!&error) error = error; //Avoid an unused parameter warning when GLIBMM_EXCEPTIONS_ENABLED is used.
+ (void)error; //Avoid an unused parameter warning when GLIBMM_EXCEPTIONS_ENABLED is used.
ParseContext& cpp_context = *static_cast<ParseContext*>(user_data);
g_return_if_fail(context == cpp_context.gobj());
@@ -139,7 +139,7 @@ void ParserCallbacks::end_element(GMarkupParseContext* context,
void* user_data,
GError** error)
{
- if(!&error) error = error; //Avoid an unused parameter warning when GLIBMM_EXCEPTIONS_ENABLED is used.
+ (void)error; //Avoid an unused parameter warning when GLIBMM_EXCEPTIONS_ENABLED is used.
ParseContext& cpp_context = *static_cast<ParseContext*>(user_data);
g_return_if_fail(context == cpp_context.gobj());
@@ -168,7 +168,7 @@ void ParserCallbacks::text(GMarkupParseContext* context,
void* user_data,
GError** error)
{
- if(!&error) error = error; //Avoid an unused parameter warning when GLIBMM_EXCEPTIONS_ENABLED is used.
+ (void)error; //Avoid an unused parameter warning when GLIBMM_EXCEPTIONS_ENABLED is used.
ParseContext& cpp_context = *static_cast<ParseContext*>(user_data);
g_return_if_fail(context == cpp_context.gobj());
@@ -197,7 +197,7 @@ void ParserCallbacks::passthrough(GMarkupParseContext* context,
void* user_data,
GError** error)
{
- if(!&error) error = error; //Avoid an unused parameter warning when GLIBMM_EXCEPTIONS_ENABLED is used.
+ (void)error; //Avoid an unused parameter warning when GLIBMM_EXCEPTIONS_ENABLED is used.
ParseContext& cpp_context = *static_cast<ParseContext*>(user_data);
g_return_if_fail(context == cpp_context.gobj());
diff --git a/libs/glibmm2/glib/src/markup.hg b/libs/glibmm2/glib/src/markup.hg
index d43bd1442d..b70e653265 100644
--- a/libs/glibmm2/glib/src/markup.hg
+++ b/libs/glibmm2/glib/src/markup.hg
@@ -3,16 +3,16 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/src/module.ccg b/libs/glibmm2/glib/src/module.ccg
index a57217ea92..1954cc66a0 100644
--- a/libs/glibmm2/glib/src/module.ccg
+++ b/libs/glibmm2/glib/src/module.ccg
@@ -4,16 +4,16 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/src/module.hg b/libs/glibmm2/glib/src/module.hg
index cace12a728..951fa938fe 100644
--- a/libs/glibmm2/glib/src/module.hg
+++ b/libs/glibmm2/glib/src/module.hg
@@ -3,16 +3,16 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/src/nodetree.ccg b/libs/glibmm2/glib/src/nodetree.ccg
new file mode 100644
index 0000000000..6ee2218cfb
--- /dev/null
+++ b/libs/glibmm2/glib/src/nodetree.ccg
@@ -0,0 +1 @@
+#include <glibmm/nodetree.h>
diff --git a/libs/glibmm2/glib/src/nodetree.hg b/libs/glibmm2/glib/src/nodetree.hg
new file mode 100644
index 0000000000..782059c11c
--- /dev/null
+++ b/libs/glibmm2/glib/src/nodetree.hg
@@ -0,0 +1,760 @@
+/* Copyright (C) 2007 glibmm development team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+_DEFS(glibmm,glib)
+
+#include <map>
+#include <stack>
+#include <deque>
+
+#include <glibmm/refptr.h>
+#include <glibmm/ustring.h>
+#include <glibmm/error.h>
+#include <glibmm/arrayhandle.h>
+#include <glib.h>
+
+namespace Glib
+{
+
+//Hand-written, instead of using _WRAP_ENUM,
+//because the C enum values don't have a prefix.
+
+/** Specifies the type of traveral performed by methods such as NodeTree::_traverse() and NodeTree::find().
+ *
+ * @ingroup glibmmEnums
+ */
+enum TraverseType
+{
+ TRAVERSE_IN_ORDER = G_IN_ORDER, /*!< Visits a node's left child first, then the node itself, then its right child. This is the one to use if you want the output sorted according to the compare function. */
+ TRAVERSE_PRE_ORDER = G_PRE_ORDER, /*!< Visits a node, then its children. */
+ TRAVERSE_POST_ORDER = G_POST_ORDER, /*!< Visits the node's children, then the node itself. */
+ TRAVERSE_LEVEL_ORDER = G_LEVEL_ORDER /*!< For NodeTree, it vists the root node first, then its children, then its grandchildren, and so on. Note that this is less efficient than the other orders. This is not implemented for Glib::Tree. */
+};
+
+/** N-ary Trees - trees of data with any number of branches
+ * The NodeTree class and its associated functions provide an N-ary tree data structure, in which nodes in the tree can contain arbitrary data.
+ *
+ * To insert a node into a tree use insert(), insert_before(), append() or prepend().
+ *
+ * To create a new node and insert it into a tree use insert_data(), insert_data_before(), append_data() and prepend_data().
+ *
+ * To reverse the children of a node use reverse_children().
+ *
+ * To find a node use root(), find(), find_child(), index_of(), child_index(), first_child(), last_child(), nth_child(), first_sibling(), prev_sibling(), next_sibling() or last_sibling().
+ *
+ * To get information about a node or tree use is_leaf(), is_root(), depth(), node_count(), child_count(), is_ancestor() or max_height().
+ *
+ * To traverse a tree, calling a function for each node visited in the traversal, use traverse() or foreach().
+ *
+ * To remove a node or subtree from a tree use unlink().
+ *
+ * @newin2p18
+ */
+template <typename T>
+class NodeTree
+{
+ _CLASS_GENERIC(NodeTree, GNode)
+public:
+ typedef sigc::slot<bool, NodeTree<T>&> TraverseFunc;
+ typedef sigc::slot<void, NodeTree<T>&> ForeachFunc;
+
+private:
+ static NodeTree<T>* wrap(GNode* node)
+ {
+ if (!node)
+ return 0;
+
+ return reinterpret_cast<NodeTree<T>* >(node->data);
+ }
+
+public:
+ NodeTree()
+ {
+ clone();
+ }
+
+ explicit NodeTree(const T& the_data) :
+ data_(the_data)
+ {
+ clone();
+ }
+ _IGNORE(g_node_new)
+
+ NodeTree(const NodeTree<T>& node) :
+ data_(node.data())
+ {
+ clone(&node);
+ }
+
+ /** Removes the instance and its children from the tree,
+ * freeing any memory allocated.
+ */
+ ~NodeTree()
+ {
+ if(!is_root())
+ unlink();
+
+ clear();
+ }
+ _IGNORE(g_node_destroy)
+
+ NodeTree<T>& operator=(const NodeTree<T>& node)
+ {
+ clear();
+ clone(&node);
+
+ data_ = node.data();
+
+ return *this;
+ }
+
+ /// Provides access to the underlying C GObject.
+ inline GNode* gobj()
+ {
+ return gobject_;
+ }
+
+ /// Provides access to the underlying C GObject.
+ inline const GNode* gobj() const
+ {
+ return gobject_;
+ }
+
+ /** Inserts a NodeTree beneath the parent at the given position.
+ *
+ * @param position the position to place node at, with respect to its siblings
+ * If position is -1, node is inserted as the last child of parent
+ * @param node the NodeTree to insert
+ * @return the inserted NodeTree
+ */
+ NodeTree<T>& insert(int position, NodeTree<T>& node)
+ {
+ g_node_insert(gobj(), position, node.gobj());
+ return node;
+ }
+ _IGNORE(g_node_insert)
+
+ /** Inserts a NodeTree beneath the parent before the given sibling.
+ *
+ * @param sibling the sibling NodeTree to place node before.
+ * @param node the NodeTree to insert
+ * @return the inserted NodeTree
+ */
+ NodeTree<T>& insert_before(NodeTree<T>& sibling, NodeTree<T>& node)
+ {
+ g_node_insert_before(gobj(), sibling.gobj(), node.gobj());
+ return node;
+ }
+ _IGNORE(g_node_insert_before)
+
+ /** Inserts a NodeTree beneath the parent after the given sibling.
+ *
+ * @param sibling the sibling NodeTree to place node after.
+ * @param node the NodeTree to insert
+ * @return the inserted NodeTree
+ */
+ NodeTree<T>& insert_after(NodeTree<T>& sibling, NodeTree<T>& node)
+ {
+ g_node_insert_after(gobj(), sibling.gobj(), node.gobj());
+ return node;
+ }
+ _IGNORE(g_node_insert_after)
+
+
+ /** Inserts a NodeTree as the last child.
+ *
+ * @param node the NodeTree to append
+ * @return the new NodeTree
+ */
+ NodeTree<T>& append(NodeTree<T>& node)
+ {
+ g_node_append(gobj(), node.gobj());
+ return node;
+ }
+ _IGNORE(g_node_append)
+
+ /** Inserts a NodeTree as the first child.
+ *
+ * @param data the data for the NodeTree
+ * @return the NodeTree
+ */
+ NodeTree<T>& prepend(NodeTree<T>& node)
+ {
+ g_node_prepend(gobj(), node.gobj());
+ return node;
+ }
+ _IGNORE(g_node_prepend)
+
+ /** Inserts a new NodeTree at the given position.
+ *
+ * @param position the position to place the new NodeTree at.
+ * If position is -1, the new NodeTree is inserted as the last child of parent
+ * @param data the data for the new NodeTree
+ * @return the new NodeTree
+ */
+ NodeTree<T>* insert_data(int position, const T& the_data)
+ {
+ NodeTree<T>* node = new NodeTree<T>(the_data);
+ insert(position, *node);
+ return node;
+ }
+ _IGNORE(g_node_insert_data)
+
+ /** Inserts a new NodeTree before the given sibling.
+ *
+ * @param sibling the sibling NodeTree to place node before.
+ * @param data the data for the new NodeTree
+ * @return the new NodeTree
+ */
+ NodeTree<T>* insert_data_before(NodeTree<T>& sibling, const T& the_data)
+ {
+ NodeTree<T>* node = new NodeTree<T>(the_data);
+ insert_before(sibling, *node);
+ return node;
+ }
+ _IGNORE(g_node_insert_data_before)
+
+ /** Inserts a new NodeTree as the last child.
+ *
+ * @param data the data for the new NodeTree
+ * @return the new NodeTree
+ */
+ NodeTree<T>* append_data(const T& the_data)
+ {
+ NodeTree<T>* node = new NodeTree<T>(the_data);
+ append(*node);
+ return node;
+ }
+ _IGNORE(g_node_append_data)
+
+ /** Inserts a new NodeTree as the first child.
+ *
+ * @param data the data for the new NodeTree
+ * @return the new NodeTree
+ */
+ NodeTree<T>* prepend_data(const T& the_data)
+ {
+ NodeTree<T>* node = new NodeTree<T>(the_data);
+ prepend(*node);
+ return node;
+ }
+ _IGNORE(g_node_prepend_data)
+
+ /** Reverses the order of the children.
+ */
+ void reverse_children()
+ {
+ g_node_reverse_children(gobj());
+ }
+ _IGNORE(g_node_reverse_children)
+
+ /** Returns a pointer to the root of the tree.
+ *
+ * @return A pointer to the root of the tree.
+ */
+ NodeTree<T>* get_root()
+ {
+ return wrap(g_node_get_root(gobj()));
+ }
+
+ const NodeTree<T>* get_root() const
+ {
+ return wrap(g_node_get_root(gobj()));
+ }
+ _IGNORE(g_node_get_root)
+
+
+ /** Specifies which nodes are visited during several of the NodeTree methods,
+ * including traverse() and find().
+ *
+ * @ingroup glibmmEnums
+ */
+ enum TraverseFlags
+ {
+ TRAVERSE_LEAVES = G_TRAVERSE_LEAVES, /*!< Only leaf nodes should be visited. */
+ TRAVERSE_NON_LEAVES = G_TRAVERSE_NON_LEAVES, /*!< Only non-leaf nodes should be visited. */
+ TRAVERSE_ALL = G_TRAVERSE_ALL, /*!< All nodes should be visited. */
+ TRAVERSE_MASK = G_TRAVERSE_MASK /*!< A mask of all traverse flags. */
+ };
+
+ /** Traverses a tree starting at the current node.
+ * It calls the given function for each node visited.
+ * The traversal can be halted at any point by returning true from @a func.
+ *
+ * @param order The order in which nodes are visited.
+ * @param flags Which types of children are to be visited.
+ * @param max_depth The maximum depth of the traversal.
+ * Nodes below this depth will not be visited.
+ * If max_depth is -1 all nodes in the tree are visited.
+ * If max_depth is 1, only the root is visited.
+ * If max_depth is 2, the root and its children are visited. And so on.
+ * @param func the slot to invoke for each visited child
+ */
+ void traverse(const TraverseFunc& func, TraverseType order = TRAVERSE_IN_ORDER, TraverseFlags flags = TRAVERSE_ALL, int max_depth = -1)
+ {
+ TraverseFunc func_copy = func;
+ g_node_traverse(gobj(), (GTraverseType)order, (GTraverseFlags)flags, max_depth, c_callback_traverse, reinterpret_cast<gpointer>(&func_copy));
+ }
+ _IGNORE(g_node_traverse);
+
+ /** Calls a function for each of the children of a NodeTree.
+ * Note that it doesn't descend beneath the child nodes.
+ *
+ * @param flags Wwhich types of children are to be visited.
+ * @param func The slot to invoke for each visited node.
+ */
+ void foreach(const ForeachFunc& func, TraverseFlags flags = TRAVERSE_ALL)
+ {
+ ForeachFunc func_copy = func;
+ g_node_children_foreach(gobj(), (GTraverseFlags)flags, c_callback_foreach, reinterpret_cast<gpointer>(&func_copy));
+ }
+ _IGNORE(g_node_children_foreach)
+
+ /** Finds the first child of a NodeTree with the given data.
+ *
+ * @param flags Which types of children are to be visited, one of TRAVERSE_ALL, TRAVERSE_LEAVES and TRAVERSE_NON_LEAVES.
+ * @param data The data for which to search.
+ * @return the found child, or 0 if the data is not found
+ */
+ NodeTree<T>* find_child(const T& the_data, TraverseFlags flags = TRAVERSE_ALL)
+ {
+ sigc::slot<void, GNode*, const T&, GNode**> real_slot = sigc::ptr_fun(on_compare_child);
+
+ GNode* child = 0;
+ typedef sigc::slot<void, GNode*> type_foreach_gnode_slot;
+ type_foreach_gnode_slot bound_slot = sigc::bind(real_slot, the_data, &child);
+
+ g_node_children_foreach(gobj(), (GTraverseFlags)flags, c_callback_foreach_compare_child, reinterpret_cast<gpointer>(&bound_slot));
+
+ return wrap(child);
+ }
+
+ /** Finds the first child of a NodeTree with the given data.
+ *
+ * @param flags Which types of children are to be visited, one of TRAVERSE_ALL, TRAVERSE_LEAVES and TRAVERSE_NON_LEAVES.
+ * @param data The data for which to search.
+ * @return the found child, or 0 if the data is not found
+ */
+ const NodeTree<T>* find_child(const T& the_data, TraverseFlags flags = TRAVERSE_ALL) const
+ {
+ return const_cast<NodeTree<T>*>(this)->find_child(flags, the_data);
+ }
+
+ _IGNORE(g_node_find_child)
+
+ /** Finds a node in a tree.
+ *
+ * @param order The order in which nodes are visited: IN_ORDER, TRAVERSE_PRE_ORDER, TRAVERSE_POST_ORDER, or TRAVERSE_LEVEL_ORDER
+ * @param flags Which types of children are to be visited: one of TRAVERSE_ALL, TRAVERSE_LEAVES and TRAVERSE_NON_LEAVES.
+ * @param data The data for which to search.
+ * @return The found node, or 0 if the data is not found.
+ */
+ NodeTree<T>* find(const T& the_data, TraverseType order = TRAVERSE_IN_ORDER, TraverseFlags flags = TRAVERSE_ALL)
+ {
+ //We use a sigc::slot for the C callback, so we can bind some extra data.
+ sigc::slot<gboolean, GNode*, const T&, GNode**> real_slot = sigc::ptr_fun(on_compare_node);
+ GNode* child = 0;
+
+ typedef sigc::slot<gboolean, GNode*> type_traverse_gnode_slot;
+ type_traverse_gnode_slot bound_slot = sigc::bind(real_slot, the_data, &child);
+
+ g_node_traverse(const_cast<GNode*>(gobj()), (GTraverseType)order, (GTraverseFlags)flags, -1, c_callback_traverse_compare_node, reinterpret_cast<gpointer>(&bound_slot));
+
+ return wrap(child);
+ }
+
+ /** Finds a node in a tree.
+ *
+ * @param order The order in which nodes are visited.
+ * @param flags Which types of children are to be visited.
+ * @param data The data for which to search.
+ * @return The found node, or 0 if the data is not found.
+ */
+ const NodeTree<T>* find(const T& the_data, TraverseType order = TRAVERSE_IN_ORDER, TraverseFlags flags = TRAVERSE_ALL) const
+ {
+ return const_cast<NodeTree<T>*>(this)->find(order, flags, the_data);
+ }
+ _IGNORE(g_node_find)
+
+ /** Gets the position of the first child which contains the given data.
+ *
+ * @param data The data to find.
+ * @return The index of the child which contains data, or -1 if the data is not found.
+ */
+ int child_index(const T& the_data) const
+ {
+ int n = 0;
+
+ for(const NodeTree<T>* i = first_child(); i != 0; i = i->next_sibling())
+ {
+ if((i->data()) == the_data)
+ return n;
+
+ n++;
+ }
+
+ return -1;
+ }
+ _IGNORE(g_node_child_index)
+
+ /** Gets the position with respect to its siblings.
+ * child must be a child of node.
+ * The first child is numbered 0, the second 1, and so on.
+ *
+ * @param child A child
+ * @return The position of @a child with respect to its siblings.
+ */
+ int child_position(const NodeTree<T>& child) const
+ {
+ return g_node_child_position(const_cast<GNode*>(gobj()), const_cast<GNode*>(child.gobj()));
+ }
+ _IGNORE(g_node_child_position)
+
+ /** Gets the first child.
+ *
+ * @return The first child, or 0 if the node has no children.
+ */
+ NodeTree<T>* first_child()
+ {
+ return wrap(g_node_first_child(gobj()));
+ }
+
+ /** Gets the first child.
+ *
+ * @return The first child, or 0 if the node has no children.
+ */
+ const NodeTree<T>* first_child() const
+ {
+ return const_cast<NodeTree<T>*>(this)->first_child();
+ }
+ _IGNORE(g_node_first_child)
+
+ /** Gets the last child.
+ *
+ * @return The last child, or 0 if the node has no children.
+ */
+ NodeTree<T>* last_child()
+ {
+ return wrap(g_node_last_child(gobj()));
+ }
+
+ /** Gets the last child.
+ *
+ * @return The last child, or 0 if the node has no children.
+ */
+ const NodeTree<T>* last_child() const
+ {
+ return const_cast<NodeTree<T>*>(this)->last_child();
+ }
+ _IGNORE(g_node_last_child)
+
+ /** Gets the nth child.
+ *
+ * @return The nth child, or 0 if n is too large.
+ */
+ NodeTree<T>* nth_child(int n)
+ {
+ return wrap(g_node_nth_child(gobj(), n));
+ }
+
+ /** Gets the nth child.
+ *
+ * @return The nth child, or 0 if n is too large.
+ */
+ const NodeTree<T>* nth_child(int n) const
+ {
+ return const_cast<NodeTree<T>*>(this)->nth_child(n);
+ }
+ _IGNORE(g_node_nth_child)
+
+ /** Gets the first sibling
+ * @return The first sibling, or 0 if the node has no siblings.
+ */
+ NodeTree<T>* first_sibling()
+ {
+ return wrap(g_node_first_sibling(gobj()));
+ }
+
+ /** Gets the first sibling
+ * @return The first sibling, or 0 if the node has no siblings.
+ */
+ const NodeTree<T>* first_sibling() const
+ {
+ return const_cast<NodeTree<T>*>(this)->first_sibling();
+ }
+ _IGNORE(g_node_first_sibling)
+
+ /** Gets the previous sibling.
+ *
+ * @return The previous sibling, or 0 if the node has no siblings.
+ */
+ NodeTree<T>* prev_sibling()
+ {
+ return wrap(g_node_prev_sibling(gobj()));
+ }
+
+ /** Gets the previous sibling.
+ *
+ * @return The previous sibling, or 0 if the node has no siblings.
+ */
+ const NodeTree<T>* prev_sibling() const
+ {
+ return const_cast<NodeTree<T>*>(this)->prev_sibling();
+ }
+ _IGNORE(g_node_prev_sibling)
+
+ /** Gets the next sibling
+ *
+ * @return The next sibling, or 0 if the node has no siblings.
+ */
+ NodeTree<T>* next_sibling()
+ {
+ return wrap(g_node_next_sibling(gobj()));
+ }
+
+ /** Gets the next sibling
+ *
+ * @return The next sibling, or 0 if the node has no siblings.
+ */
+ const NodeTree<T>* next_sibling() const
+ {
+ return const_cast<NodeTree<T>*>(this)->next_sibling();
+ }
+ _IGNORE(g_node_next_sibling)
+
+ /** Gets the last sibling.
+ *
+ * @return The last sibling, or 0 if the node has no siblings.
+ */
+ NodeTree<T>* last_sibling()
+ {
+ return wrap(g_node_last_sibling(gobj()));
+ }
+
+ /** Gets the last sibling.
+ *
+ * @return The last sibling, or 0 if the node has no siblings.
+ */
+ const NodeTree<T>* last_sibling() const
+ {
+ return const_cast<NodeTree<T>*>(this)->last_sibling();
+ }
+ _IGNORE(g_node_last_sibling)
+
+ /** Returns true if this is a leaf node.
+ *
+ * @return true if this is a leaf node.
+ */
+ bool is_leaf() const
+ {
+ return G_NODE_IS_LEAF(const_cast<GNode*>(gobj()));
+ }
+
+ /** Returns true if this is the root node.
+ *
+ * @return true if this is the root node.
+ */
+ bool is_root() const
+ {
+ return G_NODE_IS_ROOT(const_cast<GNode*>(gobj()));
+ }
+
+ /** Gets the depth of this node.
+ * The root node has a depth of 1.
+ * For the children of the root node the depth is 2. And so on.
+ *
+ * @return the depth of this node
+ */
+ guint depth() const
+ {
+ return g_node_depth(const_cast<GNode*>(gobj()));
+ }
+ _IGNORE(g_node_depth)
+
+ /** Gets the number of nodes in a tree.
+ *
+ * @param flags Which types of children are to be counted: one of TRAVERSE_ALL, TRAVERSE_LEAVES and TRAVERSE_NON_LEAVES
+ * @return The number of nodes in the tree.
+ */
+ guint node_count(TraverseFlags flags = TRAVERSE_ALL) const
+ {
+ return g_node_n_nodes(const_cast<GNode*>(gobj()), (GTraverseFlags)flags);
+ }
+ _IGNORE(g_node_n_nodes)
+
+ /** Gets the number children.
+ *
+ * @return The number of children.
+ */
+ guint child_count() const
+ {
+ return g_node_n_children(const_cast<GNode*>(gobj()));
+ }
+ _IGNORE(g_node_n_children)
+
+ /** Returns true if this is an ancestor of @a descendant.
+ * This is true if this is the parent of @a descendant,
+ * or if this is the grandparent of @a descendant etc.
+ *
+ * @param descendant A node.
+ * @return true if this is an ancestor of descendant.
+ */
+ bool is_ancestor(const NodeTree<T>& descendant) const
+ {
+ return g_node_is_ancestor(const_cast<GNode*>(gobj()), const_cast<GNode*>(descendant.gobj()));
+ }
+ _IGNORE(g_node_is_ancestor)
+
+ /** Gets the maximum height of all branches beneath this node.
+ * This is the maximum distance from the node to all leaf nodes.
+ * If root has no children, 1 is returned. If root has children, 2 is returned. And so on.
+ *
+ * @return The maximum height of all branches.
+ */
+ guint get_max_height() const
+ {
+ return g_node_max_height(const_cast<GNode*>(gobj()));
+ }
+ _IGNORE(g_node_max_height)
+
+ /** Unlinks a node from a tree, resulting in two separate trees.
+ */
+ void unlink()
+ {
+ g_node_unlink(gobj());
+ }
+ _IGNORE(g_node_unlink)
+
+#if 0 //Commented-out because people can just use the copy constructor.
+ /** Recursively copies a node and it's data.
+ *
+ * Returns: a new node containing the copies of the data.
+ */
+ NodeTree<T>* copy_deep() const
+ {
+ //Use copy constructor instead of g_node_copy_deep to create C++ wrappers also not only the wrapped C objects.
+ return new NodeTree<T>(*this);
+ }
+#endif
+ _IGNORE(g_node_copy_deep)
+
+ /// Accessor for this node's data
+ T& data()
+ {
+ return data_;
+ }
+
+ /// Accessor for this node's data
+ const T& data() const
+ {
+ return data_;
+ }
+
+ /** Accessor for this node's parent.
+ *
+ * @return The node's parent.
+ */
+ const NodeTree<T>* parent() const
+ {
+ return wrap(gobj()->parent);
+ }
+
+ // Do not wrap this shallow copy function, because it is not useful:
+ _IGNORE(g_node_copy)
+
+
+private:
+
+ void clear()
+ {
+ //Free the children (not just with g_node_destroy(), to avoid the leaking of C++ wrapper objects):
+ while(NodeTree<T>* i = first_child())
+ delete i;
+
+ //Free the wrapped object (g_node_free not available)
+ g_slice_free(GNode, gobject_);
+ gobject_ = 0;
+ }
+
+ ///Create a new GNode, taking the contents of an existing node if one is specified.
+ void clone(const NodeTree<T>* node = 0)
+ {
+ //Store the this pointer in the GNode so we can discover this wrapper later:
+ gobject_ = g_node_new(reinterpret_cast<gpointer>(this));
+
+ if(node)
+ {
+ //Prepend the copied children of @node to the constructing node.
+ for(const NodeTree<T>* i = node->last_child(); i != 0; i = i->prev_sibling())
+ prepend(*(new NodeTree<T>(*i)));
+ }
+ }
+
+ /// Wrapper for invoking a TraverseFunc.
+ static gboolean c_callback_traverse(GNode* node, gpointer slot)
+ {
+ const TraverseFunc* tf = reinterpret_cast<const TraverseFunc*>(slot);
+ return (*tf)(*wrap(node));
+ }
+
+ /// Wrapper for invoking a ForeachFunc.
+ static void c_callback_foreach(GNode* node, gpointer slot)
+ {
+ const ForeachFunc* ff = reinterpret_cast<const ForeachFunc*>(slot);
+ (*ff)(*wrap(node));
+ }
+
+ /// Method for comparing a single child (Internal use).
+ static void on_compare_child(GNode* node, const T& needle, GNode** result)
+ {
+ if((0 != result) && (wrap(node)->data() == needle))
+ {
+ *result = node;
+ }
+ }
+
+ /// Wrapper for invoking a sigc::slot<void,GNode*> (Internal use).
+ static void c_callback_foreach_compare_child(GNode* node, gpointer data)
+ {
+ const ForeachFunc* slot = reinterpret_cast<const ForeachFunc*>(data);
+ (*slot)(*wrap(node));
+ }
+
+ /// Method for comparing a single node (Internal use).
+ static gboolean on_compare_node(GNode* node, const T& needle, GNode** result)
+ {
+ if(wrap(node)->data() == needle)
+ {
+ *result = node;
+ return TRUE;
+ }
+ return FALSE;
+ }
+
+ /// Wrapper for invoking a sigc::slot<gboolean,GNode*> (Internal use).
+ static gboolean c_callback_traverse_compare_node(GNode* node, gpointer data)
+ {
+ const TraverseFunc* slot = reinterpret_cast<const TraverseFunc*>(data);
+ return (*slot)(*wrap(node));
+ }
+
+
+ GNode* gobject_;
+ T data_;
+};
+
+} // namespace Glib
diff --git a/libs/glibmm2/glib/src/optioncontext.ccg b/libs/glibmm2/glib/src/optioncontext.ccg
index 494e4f39e3..4bf73798e2 100644
--- a/libs/glibmm2/glib/src/optioncontext.ccg
+++ b/libs/glibmm2/glib/src/optioncontext.ccg
@@ -4,23 +4,23 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <glibmm/utility.h>
#include <glibmm/exceptionhandler.h>
-#include <glib/goption.h>
+#include <glib.h>
namespace Glib
{
@@ -109,4 +109,9 @@ void OptionContext::set_translate_func (const SlotTranslate& slot)
&Private::SignalProxy_translate_gtk_callback_destroy);
}
+Glib::ustring OptionContext::get_help(bool main_help) const
+{
+ return Glib::convert_return_gchar_ptr_to_ustring(g_option_context_get_help(const_cast<GOptionContext*>(gobj()), static_cast<int>(main_help), NULL));
+}
+
} // namespace Glib
diff --git a/libs/glibmm2/glib/src/optioncontext.hg b/libs/glibmm2/glib/src/optioncontext.hg
index 1d71ddb4d5..1c20106ac6 100644
--- a/libs/glibmm2/glib/src/optioncontext.hg
+++ b/libs/glibmm2/glib/src/optioncontext.hg
@@ -3,16 +3,16 @@
/* Copyright (C) 2004 The glibmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -41,6 +41,7 @@ _WRAP_GERROR(OptionError, GOptionError, G_OPTION_ERROR, NO_GTYPE)
class OptionContext
{
_CLASS_GENERIC(OptionContext, GOptionContext)
+ _IGNORE(g_option_context_free)
public:
/** Creates a new option context.
@@ -87,6 +88,11 @@ public:
//const OptionGroup& get_main_group() const;
_IGNORE(g_option_context_get_main_group)
+ #m4 _CONVERSION(`const OptionGroup&',`GOptionGroup*',`const_cast<GOptionGroup*>(($3).gobj())')
+ _WRAP_METHOD(Glib::ustring get_help(bool main_help, const OptionGroup& group) const, g_option_context_get_help)
+
+ //TODO: Documentation.
+ Glib::ustring get_help(bool main_help = true) const;
GOptionContext* gobj() { return gobject_; }
const GOptionContext* gobj() const { return gobject_; }
diff --git a/libs/glibmm2/glib/src/optionentry.ccg b/libs/glibmm2/glib/src/optionentry.ccg
index cd35a96e88..6778f68c37 100644
--- a/libs/glibmm2/glib/src/optionentry.ccg
+++ b/libs/glibmm2/glib/src/optionentry.ccg
@@ -4,23 +4,22 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <glibmm/utility.h>
-#include <glib/goption.h>
-#include <glib/gmem.h>
+#include <glib.h>
namespace Glib
{
@@ -74,6 +73,42 @@ OptionEntry& OptionEntry::operator=(const OptionEntry& src)
return *this;
}
+void OptionEntry::set_long_name(const Glib::ustring& value)
+{
+ if(gobject_->long_name)
+ {
+ g_free((gchar*)(gobject_->long_name));
+ gobject_->long_name = NULL;
+ }
+
+ //Note that we do not use NULL for an empty string,
+ //because G_OPTION_REMAINING is actually a "", so it actually has a distinct meaning:
+ //TODO: Wrap G_OPTION_REMAINING in C++ somehow, maybe as an explicit set_long_name(void) or set_is_remaining()? murrayc.
+ gobj()->long_name = (value).c_str() ? g_strdup((value).c_str()) : NULL;
+}
+
+void OptionEntry::set_description(const Glib::ustring& value)
+{
+ if(gobject_->description)
+ {
+ g_free((gchar*)(gobject_->description));
+ gobject_->description = NULL;
+ }
+
+ gobj()->description = (value).empty() ? NULL : g_strdup((value).c_str());
+}
+
+void OptionEntry::set_arg_description(const Glib::ustring& value)
+{
+ if(gobject_->arg_description)
+ {
+ g_free((gchar*)(gobject_->arg_description));
+ gobject_->arg_description = NULL;
+ }
+
+ gobj()->arg_description = (value).empty() ? NULL : g_strdup((value).c_str());
+}
+
} // namespace Glib
diff --git a/libs/glibmm2/glib/src/optionentry.hg b/libs/glibmm2/glib/src/optionentry.hg
index 8944898a82..ae65d4413a 100644
--- a/libs/glibmm2/glib/src/optionentry.hg
+++ b/libs/glibmm2/glib/src/optionentry.hg
@@ -3,16 +3,16 @@
/* Copyright (C) 2004 The glibmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -65,10 +65,11 @@ public:
OptionEntry& operator=(const OptionEntry& src);
-#m4 _CONVERSION(`Glib::ustring',`const gchar*',`g_strdup(($3).c_str())')
+ //#m4 _CONVERSION(`Glib::ustring',`const gchar*',`($3).empty() ? NULL : g_strdup(($3).c_str())')
_MEMBER_GET(long_name, long_name, Glib::ustring, const char*)
- _MEMBER_SET(long_name, long_name, Glib::ustring, const char*)
+
+ void set_long_name(const Glib::ustring& value);
_MEMBER_GET(short_name, short_name, gchar, gchar)
_MEMBER_SET(short_name, short_name, gchar, gchar)
@@ -79,10 +80,14 @@ public:
//TODO: G_OPTION_ARG_CALLBACK,
_MEMBER_GET(description, description, Glib::ustring, const char*)
- _MEMBER_SET(description, description, Glib::ustring, const char*)
+
+ void set_description(const Glib::ustring& value);
+
_MEMBER_GET(arg_description, arg_description, Glib::ustring, const char*)
- _MEMBER_SET(arg_description, arg_description, Glib::ustring, const char*)
+
+ void set_arg_description(const Glib::ustring& value);
+
GOptionEntry* gobj() { return gobject_; }
const GOptionEntry* gobj() const { return gobject_; }
diff --git a/libs/glibmm2/glib/src/optiongroup.ccg b/libs/glibmm2/glib/src/optiongroup.ccg
index c08c79a212..1fc845c2ee 100644
--- a/libs/glibmm2/glib/src/optiongroup.ccg
+++ b/libs/glibmm2/glib/src/optiongroup.ccg
@@ -4,16 +4,16 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -22,8 +22,7 @@
#include <glibmm/optioncontext.h>
#include <glibmm/utility.h>
//#include <glibmm/containers.h>
-#include <glib/gmem.h> // g_malloc
-#include <glib/goption.h>
+#include <glib.h> // g_malloc
namespace Glib
{
diff --git a/libs/glibmm2/glib/src/optiongroup.hg b/libs/glibmm2/glib/src/optiongroup.hg
index c15b80d950..8c013376a7 100644
--- a/libs/glibmm2/glib/src/optiongroup.hg
+++ b/libs/glibmm2/glib/src/optiongroup.hg
@@ -3,16 +3,16 @@
/* Copyright (C) 2004 The glibmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -22,7 +22,7 @@ _DEFS(glibmm,glib)
#include <glibmm/ustring.h>
#include <map>
#include <vector>
-#include <glib/goption.h> //TODO: Try to hide this.
+#include <glib.h> //TODO: Try to hide this.
#ifndef DOXYGEN_SHOULD_SKIP_THIS
diff --git a/libs/glibmm2/glib/src/regex.ccg b/libs/glibmm2/glib/src/regex.ccg
index e087365ed6..abdf05a988 100644
--- a/libs/glibmm2/glib/src/regex.ccg
+++ b/libs/glibmm2/glib/src/regex.ccg
@@ -1,16 +1,16 @@
/* Copyright (C) 2007 The glibmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/src/regex.hg b/libs/glibmm2/glib/src/regex.hg
index 5b029a8f28..5f275d7f91 100644
--- a/libs/glibmm2/glib/src/regex.hg
+++ b/libs/glibmm2/glib/src/regex.hg
@@ -1,16 +1,16 @@
/* Copyright (C) 2007 The glibmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -21,7 +21,7 @@ _DEFS(glibmm,glib)
#include <glibmm/ustring.h>
#include <glibmm/error.h>
#include <glibmm/arrayhandle.h>
-#include <glib/gregex.h>
+#include <glib.h>
#ifndef DOXYGEN_SHOULD_SKIP_THIS
typedef struct _GRegex GRegex;
@@ -99,7 +99,7 @@ public:
#ifdef GLIBMM_EXCEPTIONS_ENABLED
static Glib::RefPtr<Glib::Regex> create(const Glib::ustring& pattern, RegexCompileFlags compile_options = static_cast<RegexCompileFlags>(0), RegexMatchFlags match_options = static_cast<RegexMatchFlags>(0));
#else
- static Glib::RefPtr<Glib::Regex> create(const Glib::ustring& pattern, RegexCompileFlags compile_options = static_cast<RegexCompileFlags>(0), RegexMatchFlags match_options = static_cast<RegexMatchFlags>(0), std::auto_ptr<Glib::Error>& error);
+ static Glib::RefPtr<Glib::Regex> create(const Glib::ustring& pattern, RegexCompileFlags compile_options, RegexMatchFlags match_options, std::auto_ptr<Glib::Error>& error);
#endif /* !GLIBMM_EXCEPTIONS_ENABLED */
_WRAP_METHOD(Glib::ustring get_pattern() const, g_regex_get_pattern)
diff --git a/libs/glibmm2/glib/src/shell.ccg b/libs/glibmm2/glib/src/shell.ccg
index eae98ef7d8..4e2d51f17e 100644
--- a/libs/glibmm2/glib/src/shell.ccg
+++ b/libs/glibmm2/glib/src/shell.ccg
@@ -4,16 +4,16 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/src/shell.hg b/libs/glibmm2/glib/src/shell.hg
index 7c6edf2a2a..3f818f99f0 100644
--- a/libs/glibmm2/glib/src/shell.hg
+++ b/libs/glibmm2/glib/src/shell.hg
@@ -3,23 +3,23 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
_DEFS(glibmm,glib)
-#include <glib/gshell.h>
+#include <glib.h>
#include <string>
#include <glibmm/arrayhandle.h>
diff --git a/libs/glibmm2/glib/src/signalproxy.h.m4 b/libs/glibmm2/glib/src/signalproxy.h.m4
index bf3d55baf9..13e859ec85 100644
--- a/libs/glibmm2/glib/src/signalproxy.h.m4
+++ b/libs/glibmm2/glib/src/signalproxy.h.m4
@@ -6,16 +6,16 @@ dnl Copyright 2001 Free Software Foundation
dnl Copyright 1999 Karl Nelson <kenelson@ece.ucdavis.edu>
dnl
dnl This library is free software; you can redistribute it and/or
-dnl modify it under the terms of the GNU Library General Public
+dnl modify it under the terms of the GNU Lesser General Public
dnl License as published by the Free Software Foundation; either
-dnl version 2 of the License, or (at your option) any later version.
+dnl version 2.1 of the License, or (at your option) any later version.
dnl
dnl This library is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-dnl Library General Public License for more details.
+dnl Lesser General Public License for more details.
dnl
-dnl You should have received a copy of the GNU Library General Public
+dnl You should have received a copy of the GNU Lesser General Public
dnl License along with this library; if not, write to the Free
dnl Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
dnl
diff --git a/libs/glibmm2/glib/src/spawn.ccg b/libs/glibmm2/glib/src/spawn.ccg
index 62655ec597..963de3c5ef 100644
--- a/libs/glibmm2/glib/src/spawn.ccg
+++ b/libs/glibmm2/glib/src/spawn.ccg
@@ -4,21 +4,21 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <glib/gspawn.h>
+#include <glib.h>
#include <glibmm/exceptionhandler.h>
#include <glibmm/utility.h>
@@ -70,6 +70,7 @@ namespace Glib
/**** process spawning functions *******************************************/
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
void spawn_async_with_pipes(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
const Glib::ArrayHandle<std::string>& envp,
@@ -79,10 +80,21 @@ void spawn_async_with_pipes(const std::string& working_directory,
int* standard_input,
int* standard_output,
int* standard_error)
+#else
+void spawn_async_with_pipes(const std::string& working_directory,
+ const Glib::ArrayHandle<std::string>& argv,
+ const Glib::ArrayHandle<std::string>& envp,
+ SpawnFlags flags,
+ const sigc::slot<void>& child_setup,
+ Pid* child_pid,
+ int* standard_input,
+ int* standard_output,
+ int* standard_error, std::auto_ptr<Glib::Error>& error)
+#endif //GLIBMM_EXCEPTIONS_ENABLED
{
const bool setup_slot = !child_setup.empty();
sigc::slot<void> child_setup_ = child_setup;
- GError* error = 0;
+ GError* gerror = 0;
g_spawn_async_with_pipes(
working_directory.c_str(),
@@ -93,12 +105,18 @@ void spawn_async_with_pipes(const std::string& working_directory,
(setup_slot) ? &child_setup_ : 0,
child_pid,
standard_input, standard_output, standard_error,
- &error);
+ &gerror);
- if(error)
- Glib::Error::throw_exception(error);
+ #ifdef GLIBMM_EXCEPTIONS_ENABLED
+ if(gerror)
+ Glib::Error::throw_exception(gerror);
+ #else
+ if(gerror)
+ error = ::Glib::Error::throw_exception(gerror);
+ #endif //GLIBMM_EXCEPTIONS_ENABLED
}
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
void spawn_async_with_pipes(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
SpawnFlags flags,
@@ -107,10 +125,20 @@ void spawn_async_with_pipes(const std::string& working_directory,
int* standard_input,
int* standard_output,
int* standard_error)
+#else
+void spawn_async_with_pipes(const std::string& working_directory,
+ const Glib::ArrayHandle<std::string>& argv,
+ SpawnFlags flags,
+ const sigc::slot<void>& child_setup,
+ Pid* child_pid,
+ int* standard_input,
+ int* standard_output,
+ int* standard_error, std::auto_ptr<Glib::Error>& error)
+#endif //GLIBMM_EXCEPTIONS_ENABLED
{
const bool setup_slot = !child_setup.empty();
sigc::slot<void> child_setup_ = child_setup;
- GError* error = 0;
+ GError* gerror = 0;
g_spawn_async_with_pipes(
working_directory.c_str(),
@@ -120,22 +148,36 @@ void spawn_async_with_pipes(const std::string& working_directory,
(setup_slot) ? &child_setup_ : 0,
child_pid,
standard_input, standard_output, standard_error,
- &error);
+ &gerror);
- if(error)
- Glib::Error::throw_exception(error);
+ #ifdef GLIBMM_EXCEPTIONS_ENABLED
+ if(gerror)
+ Glib::Error::throw_exception(gerror);
+ #else
+ if(gerror)
+ error = ::Glib::Error::throw_exception(gerror);
+ #endif //GLIBMM_EXCEPTIONS_ENABLED
}
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
void spawn_async(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
const Glib::ArrayHandle<std::string>& envp,
SpawnFlags flags,
const sigc::slot<void>& child_setup,
Pid* child_pid)
+#else
+void spawn_async(const std::string& working_directory,
+ const Glib::ArrayHandle<std::string>& argv,
+ const Glib::ArrayHandle<std::string>& envp,
+ SpawnFlags flags,
+ const sigc::slot<void>& child_setup,
+ Pid* child_pid, std::auto_ptr<Glib::Error>& error)
+#endif //GLIBMM_EXCEPTIONS_ENABLED
{
const bool setup_slot = !child_setup.empty();
sigc::slot<void> child_setup_ = child_setup;
- GError* error = 0;
+ GError* gerror = 0;
g_spawn_async(
working_directory.c_str(),
@@ -145,21 +187,34 @@ void spawn_async(const std::string& working_directory,
(setup_slot) ? &child_setup_callback : 0,
(setup_slot) ? &child_setup_ : 0,
child_pid,
- &error);
+ &gerror);
- if(error)
- Glib::Error::throw_exception(error);
+ #ifdef GLIBMM_EXCEPTIONS_ENABLED
+ if(gerror)
+ Glib::Error::throw_exception(gerror);
+ #else
+ if(gerror)
+ error = ::Glib::Error::throw_exception(gerror);
+ #endif //GLIBMM_EXCEPTIONS_ENABLED
}
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
void spawn_async(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
SpawnFlags flags,
const sigc::slot<void>& child_setup,
Pid* child_pid)
+#else
+void spawn_async(const std::string& working_directory,
+ const Glib::ArrayHandle<std::string>& argv,
+ SpawnFlags flags,
+ const sigc::slot<void>& child_setup,
+ Pid* child_pid, std::auto_ptr<Glib::Error>& error)
+#endif //GLIBMM_EXCEPTIONS_ENABLED
{
const bool setup_slot = !child_setup.empty();
sigc::slot<void> child_setup_ = child_setup;
- GError* error = 0;
+ GError* gerror = 0;
g_spawn_async(
working_directory.c_str(),
@@ -168,12 +223,18 @@ void spawn_async(const std::string& working_directory,
(setup_slot) ? &child_setup_callback : 0,
(setup_slot) ? &child_setup_ : 0,
child_pid,
- &error);
+ &gerror);
- if(error)
- Glib::Error::throw_exception(error);
+ #ifdef GLIBMM_EXCEPTIONS_ENABLED
+ if(gerror)
+ Glib::Error::throw_exception(gerror);
+ #else
+ if(gerror)
+ error = ::Glib::Error::throw_exception(gerror);
+ #endif //GLIBMM_EXCEPTIONS_ENABLED
}
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
void spawn_sync(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
const Glib::ArrayHandle<std::string>& envp,
@@ -182,13 +243,23 @@ void spawn_sync(const std::string& working_directory,
std::string* standard_output,
std::string* standard_error,
int* exit_status)
+#else
+void spawn_sync(const std::string& working_directory,
+ const Glib::ArrayHandle<std::string>& argv,
+ const Glib::ArrayHandle<std::string>& envp,
+ SpawnFlags flags,
+ const sigc::slot<void>& child_setup,
+ std::string* standard_output,
+ std::string* standard_error,
+ int* exit_status, std::auto_ptr<Glib::Error>& error)
+#endif //GLIBMM_EXCEPTIONS_ENABLED
{
const bool setup_slot = !child_setup.empty();
sigc::slot<void> child_setup_ = child_setup;
Glib::ScopedPtr<char> buf_standard_output;
Glib::ScopedPtr<char> buf_standard_error;
- GError* error = 0;
+ GError* gerror = 0;
g_spawn_sync(
working_directory.c_str(),
@@ -200,15 +271,21 @@ void spawn_sync(const std::string& working_directory,
(standard_output) ? buf_standard_output.addr() : 0,
(standard_error) ? buf_standard_error.addr() : 0,
exit_status,
- &error);
+ &gerror);
- if(error)
- Glib::Error::throw_exception(error);
+ #ifdef GLIBMM_EXCEPTIONS_ENABLED
+ if(gerror)
+ Glib::Error::throw_exception(gerror);
+ #else
+ if(gerror)
+ error = ::Glib::Error::throw_exception(gerror);
+ #endif //GLIBMM_EXCEPTIONS_ENABLED
copy_output_buf(standard_output, buf_standard_output.get());
copy_output_buf(standard_error, buf_standard_error.get());
}
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
void spawn_sync(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
SpawnFlags flags,
@@ -216,13 +293,22 @@ void spawn_sync(const std::string& working_directory,
std::string* standard_output,
std::string* standard_error,
int* exit_status)
+#else
+void spawn_sync(const std::string& working_directory,
+ const Glib::ArrayHandle<std::string>& argv,
+ SpawnFlags flags,
+ const sigc::slot<void>& child_setup,
+ std::string* standard_output,
+ std::string* standard_error,
+ int* exit_status, std::auto_ptr<Glib::Error>& error)
+#endif //GLIBMM_EXCEPTIONS_ENABLED
{
const bool setup_slot = !child_setup.empty();
sigc::slot<void> child_setup_ = child_setup;
Glib::ScopedPtr<char> buf_standard_output;
Glib::ScopedPtr<char> buf_standard_error;
- GError* error = 0;
+ GError* gerror = 0;
g_spawn_sync(
working_directory.c_str(),
@@ -233,42 +319,68 @@ void spawn_sync(const std::string& working_directory,
(standard_output) ? buf_standard_output.addr() : 0,
(standard_error) ? buf_standard_error.addr() : 0,
exit_status,
- &error);
+ &gerror);
- if(error)
- Glib::Error::throw_exception(error);
+ #ifdef GLIBMM_EXCEPTIONS_ENABLED
+ if(gerror)
+ Glib::Error::throw_exception(gerror);
+ #else
+ if(gerror)
+ error = ::Glib::Error::throw_exception(gerror);
+ #endif //GLIBMM_EXCEPTIONS_ENABLED
copy_output_buf(standard_output, buf_standard_output.get());
copy_output_buf(standard_error, buf_standard_error.get());
}
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
void spawn_command_line_async(const std::string& command_line)
+#else
+void spawn_command_line_async(const std::string& command_line, std::auto_ptr<Glib::Error>& error)
+#endif //GLIBMM_EXCEPTIONS_ENABLED
{
- GError* error = 0;
- g_spawn_command_line_async(command_line.c_str(), &error);
+ GError* gerror = 0;
+ g_spawn_command_line_async(command_line.c_str(), &gerror);
- if(error)
- Glib::Error::throw_exception(error);
+ #ifdef GLIBMM_EXCEPTIONS_ENABLED
+ if(gerror)
+ Glib::Error::throw_exception(gerror);
+ #else
+ if(gerror)
+ error = ::Glib::Error::throw_exception(gerror);
+ #endif //GLIBMM_EXCEPTIONS_ENABLED
}
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
void spawn_command_line_sync(const std::string& command_line,
std::string* standard_output,
std::string* standard_error,
int* exit_status)
+#else
+void spawn_command_line_sync(const std::string& command_line,
+ std::string* standard_output,
+ std::string* standard_error,
+ int* exit_status, std::auto_ptr<Glib::Error>& error);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
{
Glib::ScopedPtr<char> buf_standard_output;
Glib::ScopedPtr<char> buf_standard_error;
- GError* error = 0;
+ GError* gerror = 0;
g_spawn_command_line_sync(
command_line.c_str(),
(standard_output) ? buf_standard_output.addr() : 0,
(standard_error) ? buf_standard_error.addr() : 0,
exit_status,
- &error);
+ &gerror);
- if(error)
- Glib::Error::throw_exception(error);
+ #ifdef GLIBMM_EXCEPTIONS_ENABLED
+ if(gerror)
+ Glib::Error::throw_exception(gerror);
+ #else
+ if(gerror)
+ error = ::Glib::Error::throw_exception(gerror);
+ #endif //GLIBMM_EXCEPTIONS_ENABLED
copy_output_buf(standard_output, buf_standard_output.get());
copy_output_buf(standard_error, buf_standard_error.get());
diff --git a/libs/glibmm2/glib/src/spawn.hg b/libs/glibmm2/glib/src/spawn.hg
index 89b08d0fe0..d9ea0caf2f 100644
--- a/libs/glibmm2/glib/src/spawn.hg
+++ b/libs/glibmm2/glib/src/spawn.hg
@@ -3,16 +3,16 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -44,7 +44,155 @@ _WRAP_ENUM(SpawnFlags, GSpawnFlags, NO_GTYPE)
*/
_WRAP_GERROR(SpawnError, GSpawnError, G_SPAWN_ERROR, NO_GTYPE, s#^2BIG$#TOOBIG#)
-
+/** Executes a child program asynchronously (your program will not
+ * block waiting for the child to exit). The child program is
+ * specified by the only argument that must be provided, @a argv.
+ * The first string in @a argv is of
+ * course the name of the program to execute. By default, the name of
+ * the program must be a full path; the PATH shell variable
+ * will only be searched if you pass the SPAWN_SEARCH_PATH flag.
+ *
+ * On Windows, note that all the string or string vector arguments to
+ * this function and the other spawn*() functions are in UTF-8, the
+ * GLib file name encoding. Unicode characters that are not part of
+ * the system codepage passed in these arguments will be correctly
+ * available in the spawned program only if it uses wide character API
+ * to retrieve its command line. For C programs built with Microsoft's
+ * tools it is enough to make the program have a wmain() instead of
+ * main(). wmain() has a wide character argument vector as parameter.
+ *
+ * At least currently, mingw doesn't support wmain(), so if you use
+ * mingw to develop the spawned program, it will have to call the
+ * undocumented function __wgetmainargs() to get the wide character
+ * argument vector and environment. See gspawn-win32-helper.c in the
+ * GLib sources or init.c in the mingw runtime sources for a prototype
+ * for that function. Alternatively, you can retrieve the Win32 system
+ * level wide character command line passed to the spawned program
+ * using the GetCommandLineW() function.
+ *
+ * On Windows the low-level child process creation API
+ * CreateProcess() doesn't use argument vectors,
+ * but a command line. The C runtime library's
+ * spawn*() family of functions (which
+ * spawn_async_with_pipes() eventually calls) paste the argument
+ * vector elements together into a command line, and the C runtime startup code
+ * does a corresponding reconstruction of an argument vector from the
+ * command line, to be passed to main(). Complications arise when you have
+ * argument vector elements that contain spaces of double quotes. The
+ * spawn*() functions don't do any quoting or
+ * escaping, but on the other hand the startup code does do unquoting
+ * and unescaping in order to enable receiving arguments with embedded
+ * spaces or double quotes. To work around this asymmetry,
+ * spawn_async_with_pipes() will do quoting and escaping on argument
+ * vector elements that need it before calling the C runtime
+ * spawn() function.
+ *
+ * @a envp is a lists of strings, where each string
+ * has the form KEY=VALUE. This will become
+ * the child's environment.
+ *
+ * @a flags should be the bitwise OR of any flags you want to affect the
+ * function's behaviour. The SPAWN_DO_NOT_REAP_CHILD flags means that
+ * the child will not automatically be reaped; you must use a
+ * ChildWatch source to be notified about the death of the child
+ * process. Eventually you must call spawn_close_pid() on the
+ * @a child_pid, in order to free resources which may be associated
+ * with the child process. (On Unix, using a ChildWatch source is
+ * equivalent to calling waitpid() or handling the SIGCHLD signal
+ * manually. On Windows, calling spawn_close_pid() is equivalent
+ * to calling CloseHandle() on the process handle returned in
+ * @a child_pid).
+ *
+ * PAWN_LEAVE_DESCRIPTORS_OPEN means that the parent's open file
+ * descriptors will be inherited by the child; otherwise all
+ * descriptors except stdin/stdout/stderr will be closed before
+ * calling exec() in the child. SPAWN_SEARCH_PATH
+ * means that argv[0] need not be an absolute path, it
+ * will be looked for in the user's PATH.
+ * SPAWN_STDOUT_TO_DEV_NULL means that the child's standard output will
+ * be discarded, instead of going to the same location as the parent's
+ * standard output. If you use this flag, @a standard_output must be NULL.
+ * SPAWN_STDERR_TO_DEV_NULL means that the child's standard error
+ * will be discarded, instead of going to the same location as the parent's
+ * standard error. If you use this flag, @a standard_error must be NULL.
+ * SPAWN_CHILD_INHERITS_STDIN means that the child will inherit the parent's
+ * standard input (by default, the child's standard input is attached to
+ * /dev/null). If you use this flag, @a standard_input must be NULL.
+ * G_SPAWN_FILE_AND_ARGV_ZERO means that the first element of @a argv is
+ * the file to execute, while the remaining elements are the
+ * actual argument vector to pass to the file. Normally
+ * spawn_async_with_pipes() uses argv[0] as the file to execute, and
+ * passes all of @a argv to the child.
+ *
+ * @a child_setup is a callback slot. On POSIX
+ * platforms, the function is called in the child after GLib has
+ * performed all the setup it plans to perform (including creating
+ * pipes, closing file descriptors, etc.) but before calling
+ * exec(). That is, @a child_setup is called just
+ * before calling exec() in the child. Obviously
+ * actions taken in this function will only affect the child, not the
+ * parent. On Windows, there is no separate fork() and exec()
+ * functionality. Child processes are created and run with
+ * a single API call, CreateProcess(). @a child_setup is
+ * called in the parent process just before creating the child
+ * process. You should carefully consider what you do in @a child_setup
+ * if you intend your software to be portable to Windows.
+ *
+ * If non-NULL, @a child_pid will on Unix be filled with the child's
+ * process ID. You can use the process ID to send signals to the
+ * child, or to use child_watch_add() (or waitpid()) if you specified the
+ * SPAWN_DO_NOT_REAP_CHILD flag. On Windows, @a child_pid will be
+ * filled with a handle to the child process only if you specified the
+ * SPAWN_DO_NOT_REAP_CHILD flag. You can then access the child
+ * process using the Win32 API, for example wait for its termination
+ * with the WaitFor*() functions, or examine its
+ * exit code with GetExitCodeProcess(). You should close the handle
+ * with CloseHandle() or spawn_close_pid() when you no longer need it.
+ *
+ * If non-NULL, the @a standard_input, @a standard_output, @a standard_error
+ * locations will be filled with file descriptors for writing to the child's
+ * standard input or reading from its standard output or standard error.
+ * The caller of pawn_async_with_pipes() must close these file descriptors
+ * when they are no longer in use. If these parameters are NULL, the corresponding
+ * pipe won't be created.
+ *
+ * If @a standard_input is NULL, the child's standard input is attached to
+ * /dev/null unless SPAWN_CHILD_INHERITS_STDIN is set.
+ *
+ * If @a standard_error is NULL, the child's standard error goes to the same
+ * location as the parent's standard error unless SPAWN_STDERR_TO_DEV_NULL
+ * is set.
+ *
+ * If @a standard_output is NULL, the child's standard output goes to the same
+ * location as the parent's standard output unless SPAWN_STDOUT_TO_DEV_NULL
+ * is set.
+ *
+ * If @a child_pid is not NULL and an error does not occur then the returned
+ * pid must be closed using spawn_close_pid().
+ *
+ * @note
+ * If you are writing a gtkmm application, and the program you
+ * are spawning is a graphical application, too, then you may
+ * want to use spawn_on_screen_with_pipes() instead to ensure that
+ * the spawned program opens its windows on the right screen.
+ *
+ * @param working_directory Child's current working directory, or an empty string to inherit the parent's, in the GLib file name encoding.
+ * @param argv Child's argument vector.
+ * @param envp Child's environment.
+ * @param flags Flags from SpawnFlags
+ * @param child_setup Slot to run in the child just before exec().
+ * @param child_pid Return location for child process ID, or NULL.
+ * @param standard_input Return location for file descriptor to write to child's stdin, or NULL.
+ * @param standard_output Return location for file descriptor to read child's stdout, or NULL.
+ * @param standard_error Return location for file descriptor to read child's stderr, or NULL.
+ *
+ * @throws SpawnError Errors are reported even if they occur in the child (for example if the
+ * executable in argv[0] is not found). Typically
+ * the message field of returned errors should be displayed
+ * to users. If an error occurs, @a child_pid, @a standard_input, @a standard_output,
+ * and @a standard_error will not be filled with valid values.
+ */
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
void spawn_async_with_pipes(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
const Glib::ArrayHandle<std::string>& envp,
@@ -54,7 +202,36 @@ void spawn_async_with_pipes(const std::string& working_directory,
int* standard_input = 0,
int* standard_output = 0,
int* standard_error = 0);
+#else
+void spawn_async_with_pipes(const std::string& working_directory,
+ const Glib::ArrayHandle<std::string>& argv,
+ const Glib::ArrayHandle<std::string>& envp,
+ SpawnFlags flags,
+ const sigc::slot<void>& child_setup,
+ Pid* child_pid,
+ int* standard_input,
+ int* standard_output,
+ int* standard_error, std::auto_ptr<Glib::Error>& error);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+/** Like the main spawn_async_with_pipes() method, but inheriting the parent's environment.
+ *
+ * @param working_directory Child's current working directory, or an empty string to inherit the parent's, in the GLib file name encoding.
+ * @param argv Child's argument vector.
+ * @param flags Flags from SpawnFlags
+ * @param child_setup Slot to run in the child just before exec().
+ * @param child_pid Return location for child process ID, or NULL.
+ * @param standard_input Return location for file descriptor to write to child's stdin, or NULL.
+ * @param standard_output Return location for file descriptor to read child's stdout, or NULL.
+ * @param standard_error Return location for file descriptor to read child's stderr, or NULL.
+ *
+ * @throws SpawnError Errors are reported even if they occur in the child (for example if the
+ * executable in argv[0] is not found). Typically
+ * the message field of returned errors should be displayed
+ * to users. If an error occurs, @a child_pid, @a standard_input, @a standard_output,
+ * and @a standard_error will not be filled with valid values.
+ */
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
void spawn_async_with_pipes(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
SpawnFlags flags = SpawnFlags(0),
@@ -63,20 +240,115 @@ void spawn_async_with_pipes(const std::string& working_directory,
int* standard_input = 0,
int* standard_output = 0,
int* standard_error = 0);
+#else
+void spawn_async_with_pipes(const std::string& working_directory,
+ const Glib::ArrayHandle<std::string>& argv,
+ SpawnFlags flags,
+ const sigc::slot<void>& child_setup,
+ Pid* child_pid,
+ int* standard_input,
+ int* standard_output,
+ int* standard_error, std::auto_ptr<Glib::Error>& error);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+/** See pawn_async_with_pipes() for a full description. This function
+ * simply calls the spawn_async_with_pipes() without any pipes.
+ *
+ * @note
+ * If you are writing a GTK+ application, and the program you
+ * are spawning is a graphical application, too, then you may
+ * want to use gdk_spawn_on_screen() instead to ensure that
+ * the spawned program opens its windows on the right screen.
+ *
+ * @param working_directory Child's current working directory, or an empty string to inherit parent's.
+ * @param argv Child's argument vector.
+ * @param env Child's environment.
+ * @param flags Flags from SpawnFlags.
+ * @param child_setup Slot to run in the child just before exec().
+ * @param child_pid Return location for child process ID, or NULL
+ *
+ * @throws SpawnError Errors are reported even if they occur in the child (for example if the
+ * executable in argv[0] is not found). Typically
+ * the message field of returned errors should be displayed
+ * to users.
+ */
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
void spawn_async(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
const Glib::ArrayHandle<std::string>& envp,
SpawnFlags flags = SpawnFlags(0),
const sigc::slot<void>& child_setup = sigc::slot<void>(),
Pid* child_pid = 0);
+#else
+void spawn_async(const std::string& working_directory,
+ const Glib::ArrayHandle<std::string>& argv,
+ const Glib::ArrayHandle<std::string>& envp,
+ SpawnFlags flags,
+ const sigc::slot<void>& child_setup,
+ Pid* child_pid, std::auto_ptr<Glib::Error>& error);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+/** Like the main spawn_async() method, but inheriting the parent's environment.
+ *
+ * @param working_directory Child's current working directory, or an empty string to inherit parent's.
+ * @param argv Child's argument vector.
+ * @param env Child's environment.
+ * @param flags Flags from SpawnFlags.
+ * @param child_setup Slot to run in the child just before exec().
+ * @param child_pid Return location for child process ID, or NULL
+ *
+ * @throws SpawnError Errors are reported even if they occur in the child (for example if the
+ * executable in argv[0] is not found). Typically
+ * the message field of returned errors should be displayed
+ * to users.
+ */
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
void spawn_async(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
SpawnFlags flags = SpawnFlags(0),
const sigc::slot<void>& child_setup = sigc::slot<void>(),
Pid* child_pid = 0);
+#else
+void spawn_async(const std::string& working_directory,
+ const Glib::ArrayHandle<std::string>& argv,
+ SpawnFlags flags,
+ const sigc::slot<void>& child_setup,
+ Pid* child_pid, std::auto_ptr<Glib::Error>& error);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+/** Executes a child synchronously (waits for the child to exit before returning).
+ * All output from the child is stored in @a standard_output and @a standard_error,
+ * if those parameters are non-NULL. Note that you must set the
+ * SPAWN_STDOUT_TO_DEV_NULL and SPAWN_STDERR_TO_DEV_NULL flags when
+ * passing NULL for @a standard_output and @a standard_error.
+ * If @a exit_status is non-NULL, the exit status of the child is stored
+ * there as it would be returned by waitpid(); standard UNIX macros such
+ * as WIFEXITED() and WEXITSTATUS() must be used to evaluate the exit status.
+ * Note that this function calls waitpid() even if @a exit_status is NULL, and
+ * does not accept the SPAWN_DO_NOT_REAP_CHILD flag.
+ * If an error occurs, no data is returned in @a standard_output,
+ * @a standard_error, or @a exit_status.
+ *
+ * This function calls spawn_async_with_pipes() internally; see that
+ * function for full details on the other parameters and details on
+ * how these functions work on Windows.
+ *
+ * @param working_directory Child's current working directory, or an empty string to inherit the parent's, in the GLib file name encoding.
+ * @param argv Child's argument vector.
+ * @param envp Child's environment.
+ * @param flags Flags from SpawnFlags
+ * @param child_setup Slot to run in the child just before exec().
+ * @param standard_output Return location for file descriptor to read child's stdout, or NULL.
+ * @param standard_error Return location for file descriptor to read child's stderr, or NULL.
+ * @param exit_status Return location for child exit status, as returned by waitpid(), or NULL
+ *
+ * @throws SpawnError Errors are reported even if they occur in the child (for example if the
+ * executable in argv[0] is not found). Typically
+ * the message field of returned errors should be displayed
+ * to users. If an error occurs, @a child_pid, @a standard_input, @a standard_output,
+ * and @a standard_error will not be filled with valid values.
+ */
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
void spawn_sync(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
const Glib::ArrayHandle<std::string>& envp,
@@ -85,7 +357,34 @@ void spawn_sync(const std::string& working_directory,
std::string* standard_output = 0,
std::string* standard_error = 0,
int* exit_status = 0);
+#else
+void spawn_sync(const std::string& working_directory,
+ const Glib::ArrayHandle<std::string>& argv,
+ const Glib::ArrayHandle<std::string>& envp,
+ SpawnFlags flags,
+ const sigc::slot<void>& child_setup,
+ std::string* standard_output,
+ std::string* standard_error,
+ int* exit_status, std::auto_ptr<Glib::Error>& error);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+/** Like the main spawn_sync() method, but inheriting the parent's environment.
+ *
+ * @param working_directory Child's current working directory, or an empty string to inherit the parent's, in the GLib file name encoding.
+ * @param argv Child's argument vector.
+ * @param flags Flags from SpawnFlags
+ * @param child_setup Slot to run in the child just before exec().
+ * @param standard_output Return location for file descriptor to read child's stdout, or NULL.
+ * @param standard_error Return location for file descriptor to read child's stderr, or NULL.
+ * @param exit_status Return location for child exit status, as returned by waitpid(), or NULL
+ *
+ * @throws SpawnError Errors are reported even if they occur in the child (for example if the
+ * executable in argv[0] is not found). Typically
+ * the message field of returned errors should be displayed
+ * to users. If an error occurs, @a child_pid, @a standard_input, @a standard_output,
+ * and @a standard_error will not be filled with valid values.
+ */
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
void spawn_sync(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
SpawnFlags flags = SpawnFlags(0),
@@ -93,14 +392,91 @@ void spawn_sync(const std::string& working_directory,
std::string* standard_output = 0,
std::string* standard_error = 0,
int* exit_status = 0);
+#else
+void spawn_sync(const std::string& working_directory,
+ const Glib::ArrayHandle<std::string>& argv,
+ SpawnFlags flags,
+ const sigc::slot<void>& child_setup,
+ std::string* standard_output,
+ std::string* standard_error ,
+ int* exit_status, std::auto_ptr<Glib::Error>& error);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+/** A simple version of spawn_async() that parses a command line with
+ * shell_parse_argv() and passes it to spawn_async(). It runs a
+ * command line in the background. Unlike spawn_async(), the
+ * SPAWN_SEARCH_PATH flag is enabled, other flags are not. Note
+ * that SPAWN_SEARCH_PATH can have security implications, so
+ * consider using spawn_async() directly if appropriate.
+ *
+ * The same concerns on Windows apply as for spawn_command_line_sync().
+ *
+ * @param command_line A command line.
+ *
+ * @throws SpawnError Errors are reported even if they occur in the child (for example if the
+ * executable in argv[0] is not found). Typically
+ * the message field of returned errors should be displayed
+ * to users.
+ * @throws ShellError If the command line could not be parsed.
+ */
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
void spawn_command_line_async(const std::string& command_line);
+#else
+void spawn_command_line_async(const std::string& command_line, std::auto_ptr<Glib::Error>& error);
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+/** A simple version of spawn_sync() with little-used parameters
+ * removed, taking a command line instead of an argument vector. See
+ * spawn_sync() for full details. @a command_line will be parsed by
+ * shell_parse_argv(). Unlike spawn_sync(), the SPAWN_SEARCH_PATH flag
+ * is enabled. Note that SPAWN_SEARCH_PATH can have security
+ * implications, so consider using spawn_sync() directly if
+ * appropriate.
+ *
+ * If @a exit_status is non-NULL, the exit status of the child is stored there as
+ * it would be returned by waitpid(); standard UNIX macros such as WIFEXITED()
+ * and WEXITSTATUS() must be used to evaluate the exit status.
+ *
+ * On Windows, please note the implications of shell_parse_argv()
+ * parsing @a command_line. Parsing is done according to Unix shell rules, not
+ * Windows command interpreter rules.
+ * Space is a separator, and backslashes are
+ * special. Thus you cannot simply pass a @a command_line containing
+ * canonical Windows paths, like "c:\\program files\\app\\app.exe", as
+ * the backslashes will be eaten, and the space will act as a
+ * separator. You need to enclose such paths with single quotes, like
+ * "'c:\\program files\\app\\app.exe' 'e:\\folder\\argument.txt'".
+ *
+ * @param command_line A command line.
+ * @param standard_output Return location for child output.
+ * @param standard_error Return location for child errors.
+ * @param exit_status Return location for child exit status, as returned by waitpid().
+ *
+ * @throws SpawnError Errors are reported even if they occur in the child (for example if the
+ * executable in argv[0] is not found). Typically
+ * the message field of returned errors should be displayed
+ * to users.
+ * @throws ShellError If the command line could not be parsed.
+ */
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
void spawn_command_line_sync(const std::string& command_line,
std::string* standard_output = 0,
std::string* standard_error = 0,
int* exit_status = 0);
+#else
+void spawn_command_line_sync(const std::string& command_line,
+ std::string* standard_output,
+ std::string* standard_error,
+ int* exit_status, std::auto_ptr<Glib::Error>& error;
+#endif //GLIBMM_EXCEPTIONS_ENABLED
+/** On some platforms, notably WIN32, the Pid type represents a resource
+ * which must be closed to prevent resource leaking. close_pid()
+ * is provided for this purpose. It should be used on all platforms, even
+ * though it doesn't do anything under UNIX.
+ *
+ * @param pid The process identifier to close.
+ */
void spawn_close_pid(Pid pid);
/** @} group Spawn */
diff --git a/libs/glibmm2/glib/src/template.macros.m4 b/libs/glibmm2/glib/src/template.macros.m4
index 38e7927bfc..33b8b97380 100644
--- a/libs/glibmm2/glib/src/template.macros.m4
+++ b/libs/glibmm2/glib/src/template.macros.m4
@@ -7,16 +7,16 @@ dnl
dnl Currently maintained by Tero Pulkkinen. <terop@modeemi.cs.tut.fi>
dnl
dnl This library is free software; you can redistribute it and/or
-dnl modify it under the terms of the GNU Library General Public
+dnl modify it under the terms of the GNU Lesser General Public
dnl License as published by the Free Software Foundation; either
-dnl version 2 of the License, or (at your option) any later version.
+dnl version 2.1 of the License, or (at your option) any later version.
dnl
dnl This library is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-dnl Library General Public License for more details.
+dnl Lesser General Public License for more details.
dnl
-dnl You should have received a copy of the GNU Library General Public
+dnl You should have received a copy of the GNU Lesser General Public
dnl License along with this library; if not, write to the Free
dnl Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
dnl
diff --git a/libs/glibmm2/glib/src/thread.ccg b/libs/glibmm2/glib/src/thread.ccg
index 5e3ff52d0d..4b5bd89863 100644
--- a/libs/glibmm2/glib/src/thread.ccg
+++ b/libs/glibmm2/glib/src/thread.ccg
@@ -4,16 +4,16 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/src/thread.hg b/libs/glibmm2/glib/src/thread.hg
index 4289bdf8f8..439d98dc27 100644
--- a/libs/glibmm2/glib/src/thread.hg
+++ b/libs/glibmm2/glib/src/thread.hg
@@ -3,23 +3,23 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
_DEFS(glibmm,glib)
-#include <glib/gthread.h>
+#include <glib.h>
#include <cstddef>
#include <sigc++/sigc++.h>
@@ -174,6 +174,7 @@ class Thread
public:
class Exit;
+ //See http://bugzilla.gnome.org/show_bug.cgi?id=512348 about the sigc::trackable issue.
/** Creates a new thread with the priority <tt>THREAD_PRIORITY_NORMAL</tt>.
* If @a joinable is @c true, you can wait for this thread's termination by
* calling join(). Otherwise the thread will just disappear, when ready.
@@ -182,6 +183,10 @@ public:
* pass additional arguments using sigc::bind(). If the thread was created
* successfully, it is returned, otherwise a ThreadError exception is thrown.
*
+ * Because sigc::trackable is not thread safe, if the slot represents a
+ * non-static class method (that is, it is created by sigc::mem_fun()), the
+ * class concerned should not derive from sigc::trackable.
+ *
* @param slot A slot to execute in the new thread.
* @param joinable Should this thread be joinable?
* @return The new Thread* on success.
@@ -189,6 +194,7 @@ public:
*/
static Thread* create(const sigc::slot<void>& slot, bool joinable);
+ //See http://bugzilla.gnome.org/show_bug.cgi?id=512348 about the sigc::trackable issue.
/** Creates a new thread with the priority @a priority. The stack gets the
* size @a stack_size or the default value for the current platform, if
* @a stack_size is <tt>0</tt>.
@@ -204,6 +210,10 @@ public:
* pass additional arguments using sigc::bind(). If the thread was created
* successfully, it is returned.
*
+ * Because sigc::trackable is not thread safe, if the slot represents a
+ * non-static class method (that is, it is created by sigc::mem_fun()), the
+ * class concerned should not derive from sigc::trackable.
+ *
* @note It is not guaranteed, that threads with different priorities really
* behave accordingly. On some systems (e.g. Linux) only root can increase
* priorities. On other systems (e.g. Solaris) there doesn't seem to be
diff --git a/libs/glibmm2/glib/src/unicode.ccg b/libs/glibmm2/glib/src/unicode.ccg
index 7d994ef05b..054fbfc501 100644
--- a/libs/glibmm2/glib/src/unicode.ccg
+++ b/libs/glibmm2/glib/src/unicode.ccg
@@ -4,16 +4,16 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/glib/src/unicode.hg b/libs/glibmm2/glib/src/unicode.hg
index 27424331c3..8c6446c4b6 100644
--- a/libs/glibmm2/glib/src/unicode.hg
+++ b/libs/glibmm2/glib/src/unicode.hg
@@ -3,16 +3,16 @@
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
@@ -43,9 +43,7 @@ inline $1 $2(char c)
_POP()
#m4end
-#include <glib/gmacros.h>
-#include <glib/gstrfuncs.h>
-#include <glib/gunicode.h>
+#include <glib.h>
// Not used, but we want to get rid of possible <ctype.h> macros.
#include <cctype>
diff --git a/libs/glibmm2/glib/src/uriutils.ccg b/libs/glibmm2/glib/src/uriutils.ccg
new file mode 100644
index 0000000000..ddd25e59d4
--- /dev/null
+++ b/libs/glibmm2/glib/src/uriutils.ccg
@@ -0,0 +1,45 @@
+// -*- c++ -*-
+/* $Id: fileutils.ccg,v 1.1 2003/01/07 16:58:25 murrayc Exp $ */
+
+/* Copyright (C) 2002 The gtkmm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <glib.h>
+#include <glibmm/utility.h>
+
+namespace Glib
+{
+
+std::string uri_unescape_string(const std::string& escaped_string, const std::string& illegal_characters)
+{
+ gchar* cresult = g_uri_unescape_string(escaped_string.c_str(), illegal_characters.c_str());
+ return Glib::convert_return_gchar_ptr_to_stdstring(cresult);
+}
+
+std::string uri_parse_scheme(const std::string& uri)
+{
+ return Glib::convert_return_gchar_ptr_to_stdstring( g_uri_parse_scheme(uri.c_str()) );
+}
+
+std::string uri_escape_string(const std::string& unescaped, const std::string& reserved_chars_allowed, bool allow_utf8)
+{
+ gchar* cresult = g_uri_escape_string(unescaped.c_str(), reserved_chars_allowed.c_str(), allow_utf8);
+ return Glib::convert_return_gchar_ptr_to_stdstring(cresult);
+}
+
+} // namespace Glib
+
diff --git a/libs/glibmm2/glib/src/uriutils.hg b/libs/glibmm2/glib/src/uriutils.hg
new file mode 100644
index 0000000000..50a9f1b4e2
--- /dev/null
+++ b/libs/glibmm2/glib/src/uriutils.hg
@@ -0,0 +1,93 @@
+/* $Id: fileutils.hg,v 1.3 2004/01/22 18:38:12 murrayc Exp $ */
+
+/* Copyright (C) 2002 The gtkmm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+_DEFS(glibmm,glib)
+
+#include <string>
+#include <glibmmconfig.h>
+
+GLIBMM_USING_STD(string)
+
+
+namespace Glib
+{
+
+/** @defgroup UriUtils URI Utilities
+ * Various uri-related functions.
+ */
+
+//Note that the illegal_characters and reserved_chars_allowed parameters are bytes and may not be UTF-8
+//so they are not Glib::ustring. See http://bugzilla.gnome.org/show_bug.cgi?id=508773
+
+/** Unescapes a whole escaped string.
+ * If any of the characters in @a illegal_characters or the character zero appears
+ * as an escaped character in @a escaped_string then that is an error and an empty string
+ * will be returned. This is useful it you want to avoid, for instance, having a
+ * slash being expanded in an escaped path element, which might confuse pathname
+ * handling.
+ *
+ * @param escaped_string An escaped string to be unescaped.
+ * @param illegal_characters An optional string of illegal characters not to be allowed.
+ * @result An unescaped version of @a escaped_string.
+ *
+ * @ingroup UriUtils
+ * @newin2p16
+ */
+std::string uri_unescape_string(const std::string& escaped_string, const std::string& illegal_characters = std::string());
+
+//TODO: Use iterator?
+//char * g_uri_unescape_segment (const char *escaped_string,
+// const char *escaped_string_end,
+// const char *illegal_characters);
+
+/** Gets the scheme portion of a URI. RFC 3986 decodes the scheme as:
+ * @code
+ * URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
+ * @endcode
+ * Common schemes include "file", "http", "svn+ssh", etc.
+ *
+ * @param uri
+ * @result The "Scheme" component of the URI, or an empty string on error.
+ *
+ * @ingroup UriUtils
+ * @newin2p16
+ */
+std::string uri_parse_scheme(const std::string& uri);
+
+/** Escapes a string for use in a URI.
+ *
+ * Normally all characters that are not "unreserved" (i.e. ASCII alphanumerical
+ * characters plus dash, dot, underscore and tilde) are escaped.
+ * But if you specify characters in @a reserved_chars_allowed they are not
+ * escaped. This is useful for the "reserved" characters in the URI
+ * specification, since those are allowed unescaped in some portions of
+ * a URI.
+ *
+ * @param unescaped The unescaped input string.
+ * @param reserved_chars_allowed A string of reserved characters that are allowed to be used.
+ * @param allow_utf8 true if the result can include UTF-8 characters.
+ * @result An escaped version of @a unescaped.
+ *
+ * @ingroup UriUtils
+ * @newin2p16
+ */
+std::string uri_escape_string(const std::string& unescaped, const std::string& reserved_chars_allowed = std::string(), bool allow_utf8 = true);
+
+} // namespace Glib
+
diff --git a/libs/glibmm2/glib/src/value_basictypes.cc.m4 b/libs/glibmm2/glib/src/value_basictypes.cc.m4
index f87461aaf1..9bd95dc1ff 100644
--- a/libs/glibmm2/glib/src/value_basictypes.cc.m4
+++ b/libs/glibmm2/glib/src/value_basictypes.cc.m4
@@ -1,22 +1,22 @@
divert(-1)
-dnl $Id: value_basictypes.cc.m4 348 2006-11-22 11:14:43Z murrayc $
+dnl $Id: value_basictypes.cc.m4 779 2009-01-19 17:58:50Z murrayc $
dnl Glib::Value specializations for fundamental types
dnl
dnl Copyright 2002 The gtkmm Development Team
dnl
dnl This library is free software; you can redistribute it and/or
-dnl modify it under the terms of the GNU Library General Public
+dnl modify it under the terms of the GNU Lesser General Public
dnl License as published by the Free Software Foundation; either
-dnl version 2 of the License, or (at your option) any later version.
+dnl version 2.1 of the License, or (at your option) any later version.
dnl
dnl This library is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-dnl Library General Public License for more details.
+dnl Lesser General Public License for more details.
dnl
-dnl You should have received a copy of the GNU Library General Public
+dnl You should have received a copy of the GNU Lesser General Public
dnl License along with this library; if not, write to the Free
dnl Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
diff --git a/libs/glibmm2/glib/src/value_basictypes.h.m4 b/libs/glibmm2/glib/src/value_basictypes.h.m4
index 08c4a90998..b033d44b03 100644
--- a/libs/glibmm2/glib/src/value_basictypes.h.m4
+++ b/libs/glibmm2/glib/src/value_basictypes.h.m4
@@ -1,22 +1,22 @@
divert(-1)
-dnl $Id: value_basictypes.h.m4 2 2003-01-07 16:59:16Z murrayc $
+dnl $Id: value_basictypes.h.m4 779 2009-01-19 17:58:50Z murrayc $
dnl Glib::Value specializations for fundamental types
dnl
dnl Copyright 2002 The gtkmm Development Team
dnl
dnl This library is free software; you can redistribute it and/or
-dnl modify it under the terms of the GNU Library General Public
+dnl modify it under the terms of the GNU Lesser General Public
dnl License as published by the Free Software Foundation; either
-dnl version 2 of the License, or (at your option) any later version.
+dnl version 2.1 of the License, or (at your option) any later version.
dnl
dnl This library is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-dnl Library General Public License for more details.
+dnl Lesser General Public License for more details.
dnl
-dnl You should have received a copy of the GNU Library General Public
+dnl You should have received a copy of the GNU Lesser General Public
dnl License along with this library; if not, write to the Free
dnl Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
diff --git a/libs/glibmm2/scripts/Makefile.in b/libs/glibmm2/scripts/Makefile.in
index 29f82d0e6a..95d0827b38 100644
--- a/libs/glibmm2/scripts/Makefile.in
+++ b/libs/glibmm2/scripts/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.10 from Makefile.am.
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -38,6 +38,7 @@ DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/scripts/c_std.m4 \
$(top_srcdir)/scripts/cxx.m4 $(top_srcdir)/scripts/cxx_std.m4 \
+ $(top_srcdir)/scripts/dk-feature.m4 \
$(top_srcdir)/scripts/docgen.m4 \
$(top_srcdir)/scripts/glibmm_check_perl.m4 \
$(top_srcdir)/scripts/macros.m4 \
@@ -47,7 +48,8 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h \
- $(top_builddir)/glib/glibmmconfig.h
+ $(top_builddir)/glib/glibmmconfig.h \
+ $(top_builddir)/gio/giommconfig.h
CONFIG_CLEAN_FILES =
SOURCES =
DIST_SOURCES =
@@ -84,6 +86,7 @@ DEPDIR = @DEPDIR@
DISABLE_DEPRECATED_API_CFLAGS = @DISABLE_DEPRECATED_API_CFLAGS@
DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
@@ -92,6 +95,8 @@ EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
+GIOMM_CFLAGS = @GIOMM_CFLAGS@
+GIOMM_LIBS = @GIOMM_LIBS@
GLIBMM_CFLAGS = @GLIBMM_CFLAGS@
GLIBMM_LIBS = @GLIBMM_LIBS@
GLIBMM_MAJOR_VERSION = @GLIBMM_MAJOR_VERSION@
@@ -99,6 +104,7 @@ GLIBMM_MICRO_VERSION = @GLIBMM_MICRO_VERSION@
GLIBMM_MINOR_VERSION = @GLIBMM_MINOR_VERSION@
GLIBMM_RELEASE = @GLIBMM_RELEASE@
GLIBMM_VERSION = @GLIBMM_VERSION@
+GMMPROC_DIR = @GMMPROC_DIR@
GREP = @GREP@
GTHREAD_CFLAGS = @GTHREAD_CFLAGS@
GTHREAD_LIBS = @GTHREAD_LIBS@
@@ -120,6 +126,7 @@ M4 = @M4@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
+NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
@@ -132,6 +139,7 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
PERL_PATH = @PERL_PATH@
PKG_CONFIG = @PKG_CONFIG@
RANLIB = @RANLIB@
+SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
@@ -185,6 +193,7 @@ sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/libs/glibmm2/scripts/depcomp b/libs/glibmm2/scripts/depcomp
index ca5ea4e1ef..e5f9736c72 100755
--- a/libs/glibmm2/scripts/depcomp
+++ b/libs/glibmm2/scripts/depcomp
@@ -1,9 +1,9 @@
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
-scriptversion=2006-10-15.18
+scriptversion=2007-03-29.01
-# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006 Free Software
+# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007 Free Software
# Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
@@ -215,34 +215,39 @@ aix)
# current directory. Also, the AIX compiler puts `$object:' at the
# start of each line; $object doesn't have directory information.
# Version 6 uses the directory in both cases.
- stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
- tmpdepfile="$stripped.u"
+ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+ test "x$dir" = "x$object" && dir=
+ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
if test "$libtool" = yes; then
+ tmpdepfile1=$dir$base.u
+ tmpdepfile2=$base.u
+ tmpdepfile3=$dir.libs/$base.u
"$@" -Wc,-M
else
+ tmpdepfile1=$dir$base.u
+ tmpdepfile2=$dir$base.u
+ tmpdepfile3=$dir$base.u
"$@" -M
fi
stat=$?
- if test -f "$tmpdepfile"; then :
- else
- stripped=`echo "$stripped" | sed 's,^.*/,,'`
- tmpdepfile="$stripped.u"
- fi
-
if test $stat -eq 0; then :
else
- rm -f "$tmpdepfile"
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
exit $stat
fi
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ do
+ test -f "$tmpdepfile" && break
+ done
if test -f "$tmpdepfile"; then
- outname="$stripped.o"
# Each line is of the form `foo.o: dependent.h'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
- sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
- sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
+ sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
+ # That's a tab and a space in the [].
+ sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
diff --git a/libs/glibmm2/scripts/dk-feature.m4 b/libs/glibmm2/scripts/dk-feature.m4
new file mode 100644
index 0000000000..87a0e26e3e
--- /dev/null
+++ b/libs/glibmm2/scripts/dk-feature.m4
@@ -0,0 +1,101 @@
+## Copyright (c) 2004-2007 Daniel Elstner <daniel.kitta@gmail.com>
+##
+## This file is part of danielk's Autostuff.
+##
+## danielk's Autostuff is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as published
+## by the Free Software Foundation; either version 2 of the License, or (at
+## your option) any later version.
+##
+## danielk's Autostuff is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License along
+## with danielk's Autostuff; if not, write to the Free Software Foundation,
+## Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+#serial 20070105
+
+## _DK_SH_VAR_PUSH_DEPTH(depth, variable, [value])
+##
+m4_define([_DK_SH_VAR_PUSH_DEPTH],
+[dnl
+m4_pushdef([_DK_SH_VAR_DEPTH_$2], [$1])[]dnl
+dk_save_sh_var_$2_$1=$$2
+m4_if([$3], [],, [$2=$3
+])[]dnl
+])
+
+## _DK_SH_VAR_POP_DEPTH(depth, variable)
+##
+m4_define([_DK_SH_VAR_POP_DEPTH],
+[dnl
+$2=$dk_save_sh_var_$2_$1
+m4_popdef([_DK_SH_VAR_DEPTH_$2])[]dnl
+])
+
+## DK_SH_VAR_PUSH(variable, [value])
+##
+## Temporarily replace the current value of the shell variable <variable>
+## with <value> until DK_SH_VAR_POP(<variable>) is invoked to restore the
+## original value. If <value> is empty, <variable> is left unchanged but
+## its current value is still saved.
+##
+## This macro may safely be used repeatedly on the same shell variable,
+## as long as each DK_SH_VAR_PUSH(variable) is matched by a corresponding
+## DK_SH_VAR_POP(variable).
+##
+AC_DEFUN([DK_SH_VAR_PUSH],
+[dnl
+m4_if([$1],, [AC_FATAL([argument expected])])[]dnl
+_DK_SH_VAR_PUSH_DEPTH(m4_ifdef([_DK_SH_VAR_DEPTH_$1],
+ [m4_incr(_DK_SH_VAR_DEPTH_$1)],
+ [1]),
+ [$1], [$2])[]dnl
+])
+
+## DK_SH_VAR_POP(variable)
+##
+## Restore the original value of the shell variable <variable> which it had
+## before the corresponding invocation of DK_SH_VAR_PUSH(<variable>).
+##
+AC_DEFUN([DK_SH_VAR_POP],
+[dnl
+m4_if([$1],, [AC_FATAL([argument expected])])[]dnl
+_DK_SH_VAR_POP_DEPTH(_DK_SH_VAR_DEPTH_$1, [$1])[]dnl
+])
+
+## _DK_CHECK_FEATURE_VAR(feature, source, cache var, shell var, cpp define)
+##
+m4_define([_DK_CHECK_FEATURE_VAR],
+[dnl
+AC_CACHE_CHECK([for $1], [$3],
+ [AC_LINK_IFELSE([$2], [$3=yes], [$3=no])])
+$4=$$3
+
+AS_IF([test "x$$4" = xyes],
+ [AC_DEFINE([$5], [1], [Define to 1 if $1 is available.])
+])[]dnl
+])
+
+## DK_CHECK_FEATURE(feature, test source)
+##
+## Check for a feature of the C/C++ environment. If compiling and linking
+## the supplied test program is successful, the configuration header macro
+## <PACKAGE_TARNAME>_HAVE_<FEATURE> is defined to 1 and "yes" is assigned
+## to the shell variable <PACKAGE_TARNAME>_FEATURE_<FEATURE>. Otherwise,
+## <PACKAGE_TARNAME>_FEATURE_<FEATURE> is set to "no".
+##
+## This macro is intended to be used in conjunction with AC_LANG_PROGRAM
+## or AC_LANG_SOURCE.
+##
+AC_DEFUN([DK_CHECK_FEATURE],
+[dnl
+m4_if([$2],, [AC_FATAL([2 arguments expected])])[]dnl
+_DK_CHECK_FEATURE_VAR([$1], [$2],
+ m4_quote(AS_TR_SH([dk_cv_feature_$1])),
+ m4_quote(AS_TR_CPP(AC_PACKAGE_TARNAME[_FEATURE_$1])),
+ m4_quote(AS_TR_CPP(AC_PACKAGE_TARNAME[_HAVE_$1])))[]dnl
+])
diff --git a/libs/glibmm2/scripts/macros.m4 b/libs/glibmm2/scripts/macros.m4
index abc7f8ae2d..71afb22b67 100644
--- a/libs/glibmm2/scripts/macros.m4
+++ b/libs/glibmm2/scripts/macros.m4
@@ -10,7 +10,7 @@ AC_CHECK_PROGS(M4, gm4 m4, m4)
if test "$M4" = "m4"; then
AC_MSG_CHECKING(whether m4 is GNU m4)
- if $M4 --version </dev/null 2>/dev/null | grep '^GNU [Mm]4 ' >/dev/null ; then
+ if $M4 --version </dev/null 2>/dev/null | grep -i '^GNU M4 ' >/dev/null ; then
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
diff --git a/libs/glibmm2/tools/Makefile.am b/libs/glibmm2/tools/Makefile.am
index cbe60fe9b0..7efc4e05f2 100644
--- a/libs/glibmm2/tools/Makefile.am
+++ b/libs/glibmm2/tools/Makefile.am
@@ -6,6 +6,6 @@ SUBDIRS = m4 pm extra_defs_gen
EXTRA_DIST = Makefile_list_of_sources.am_fragment $(files_tools_perl) README TODO enum.pl
gmmproc_bin_SCRIPTS = gmmproc $(files_tools_genwrap)
-gmmproc_bindir = $(libdir)/glibmm-2.4/proc
+gmmproc_bindir = $(GMMPROC_DIR)
diff --git a/libs/glibmm2/tools/Makefile.in b/libs/glibmm2/tools/Makefile.in
index 09b6c6ca31..170e587c9b 100644
--- a/libs/glibmm2/tools/Makefile.in
+++ b/libs/glibmm2/tools/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.10 from Makefile.am.
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -40,7 +40,14 @@ DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
TODO
subdir = tools
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/scripts/c_std.m4 \
+ $(top_srcdir)/scripts/cxx.m4 $(top_srcdir)/scripts/cxx_std.m4 \
+ $(top_srcdir)/scripts/dk-feature.m4 \
+ $(top_srcdir)/scripts/docgen.m4 \
+ $(top_srcdir)/scripts/glibmm_check_perl.m4 \
+ $(top_srcdir)/scripts/macros.m4 \
+ $(top_srcdir)/scripts/reduced.m4 $(top_srcdir)/scripts/sun.m4 \
+ $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
@@ -86,8 +93,10 @@ CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED_API_CFLAGS = @DISABLE_DEPRECATED_API_CFLAGS@
DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
@@ -109,6 +118,8 @@ GMMPROC_DIR = @GMMPROC_DIR@
GREP = @GREP@
GTHREAD_CFLAGS = @GTHREAD_CFLAGS@
GTHREAD_LIBS = @GTHREAD_LIBS@
+GTKMMPROC_MERGECDOCS = @GTKMMPROC_MERGECDOCS@
+GTKMM_DOXYGEN_INPUT = @GTKMM_DOXYGEN_INPUT@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -121,9 +132,11 @@ LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
+M4 = @M4@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
+NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
@@ -133,6 +146,7 @@ PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL_PATH = @PERL_PATH@
PKG_CONFIG = @PKG_CONFIG@
RANLIB = @RANLIB@
SED = @SED@
@@ -189,6 +203,7 @@ sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
files_tools_m4 = base.m4 class_shared.m4 class_boxedtype.m4 class_boxedtype_static.m4 \
@@ -196,7 +211,7 @@ files_tools_m4 = base.m4 class_shared.m4 class_boxedtype.m4 class_boxedtype_stat
class_interface.m4 class_opaque_refcounted.m4 class_opaque_copyable.m4 \
gerror.m4 \
compare.m4 convert.m4 convert_base.m4 convert_gtkmm.m4 convert_atk.m4 convert_gdk.m4 \
- convert_glib.m4 convert_gtk.m4 convert_pango.m4 ctor.m4 doc.m4 enum.m4 list.m4 member.m4 \
+ convert_glib.m4 convert_gio.m4 convert_gtk.m4 convert_pango.m4 ctor.m4 doc.m4 enum.m4 list.m4 member.m4 \
method.m4 property.m4 signal.m4 vfunc.m4
files_tools_pm = DocsParser.pm GtkDefs.pm Enum.pm Function.pm FunctionBase.pm Object.pm Output.pm Property.pm Util.pm WrapParser.pm
@@ -205,7 +220,7 @@ files_tools_perl = $(files_tools_genwrap) gmmproc.in
SUBDIRS = m4 pm extra_defs_gen
EXTRA_DIST = Makefile_list_of_sources.am_fragment $(files_tools_perl) README TODO enum.pl
gmmproc_bin_SCRIPTS = gmmproc $(files_tools_genwrap)
-gmmproc_bindir = $(libdir)/glibmm-2.4/proc
+gmmproc_bindir = $(GMMPROC_DIR)
all: all-recursive
.SUFFIXES:
@@ -343,8 +358,8 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
+ $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
@@ -369,8 +384,8 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
@@ -380,13 +395,12 @@ ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
- here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
diff --git a/libs/glibmm2/tools/enum.pl b/libs/glibmm2/tools/enum.pl
index 8cc6ff9011..97804c5f2f 100644
--- a/libs/glibmm2/tools/enum.pl
+++ b/libs/glibmm2/tools/enum.pl
@@ -123,7 +123,7 @@ sub process
}
elsif ($i =~ /^(\S+)\s*=\s*(0x[0-9a-fA-F]+)$/ ||
$i =~ /^(\S+)\s*=\s*(-?[0-9]+)$/ ||
- $i =~ /^(\S+)\s*=\s*(1\s*<<\s*[0-9]+)$/
+ $i =~ /^(\S+)\s*=\s*\(?(1\s*<<\s*[0-9]+)\)?$/
)
{
my ($tmp1, $tmp2) = ($1, $2);
diff --git a/libs/glibmm2/tools/extra_defs_gen/Makefile.am b/libs/glibmm2/tools/extra_defs_gen/Makefile.am
index 871bb4e386..8a830d6fc3 100644
--- a/libs/glibmm2/tools/extra_defs_gen/Makefile.am
+++ b/libs/glibmm2/tools/extra_defs_gen/Makefile.am
@@ -21,9 +21,13 @@ sublib_include_HEADERS = $(files_h)
# Build the generate_properties_defs utility executable.
# This is not used to build the rest of glibmm.
-INCLUDES = $(GLIBMM_CFLAGS)
-LIBS = $(GLIBMM_LIBS)
+INCLUDES = $(GLIBMM_CFLAGS) $(GIOMM_CFLAGS)
+LIBS = $(GLIBMM_LIBS) $(GIOMM_LIBS)
+
+noinst_PROGRAMS = generate_extra_defs generate_defs_gio
-noinst_PROGRAMS = generate_extra_defs
generate_extra_defs_SOURCES = generate_defs_glib.cc
generate_extra_defs_LDADD = libglibmm_generate_extra_defs-2.4.la
+
+generate_defs_gio_SOURCES = generate_defs_gio.cc
+generate_defs_gio_LDADD = libglibmm_generate_extra_defs-2.4.la
diff --git a/libs/glibmm2/tools/extra_defs_gen/Makefile.in b/libs/glibmm2/tools/extra_defs_gen/Makefile.in
index 2d3247f307..cbc789eab4 100644
--- a/libs/glibmm2/tools/extra_defs_gen/Makefile.in
+++ b/libs/glibmm2/tools/extra_defs_gen/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.10 from Makefile.am.
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -36,12 +36,20 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-noinst_PROGRAMS = generate_extra_defs$(EXEEXT)
+noinst_PROGRAMS = generate_extra_defs$(EXEEXT) \
+ generate_defs_gio$(EXEEXT)
subdir = tools/extra_defs_gen
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(sublib_include_HEADERS)
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/scripts/c_std.m4 \
+ $(top_srcdir)/scripts/cxx.m4 $(top_srcdir)/scripts/cxx_std.m4 \
+ $(top_srcdir)/scripts/dk-feature.m4 \
+ $(top_srcdir)/scripts/docgen.m4 \
+ $(top_srcdir)/scripts/glibmm_check_perl.m4 \
+ $(top_srcdir)/scripts/macros.m4 \
+ $(top_srcdir)/scripts/reduced.m4 $(top_srcdir)/scripts/sun.m4 \
+ $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
@@ -74,11 +82,14 @@ libglibmm_generate_extra_defs_2_4_la_LINK = $(LIBTOOL) --tag=CXX \
$(libglibmm_generate_extra_defs_2_4_la_LDFLAGS) $(LDFLAGS) -o \
$@
PROGRAMS = $(noinst_PROGRAMS)
+am_generate_defs_gio_OBJECTS = generate_defs_gio.$(OBJEXT)
+generate_defs_gio_OBJECTS = $(am_generate_defs_gio_OBJECTS)
+generate_defs_gio_DEPENDENCIES = libglibmm_generate_extra_defs-2.4.la
am_generate_extra_defs_OBJECTS = generate_defs_glib.$(OBJEXT)
generate_extra_defs_OBJECTS = $(am_generate_extra_defs_OBJECTS)
generate_extra_defs_DEPENDENCIES = \
libglibmm_generate_extra_defs-2.4.la
-DEFAULT_INCLUDES = -I. -I$(top_builddir) -I$(top_builddir)/glib -I$(top_builddir)/gio@am__isrc@
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -I$(top_builddir)/glib -I$(top_builddir)/gio
depcomp = $(SHELL) $(top_srcdir)/scripts/depcomp
am__depfiles_maybe = depfiles
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
@@ -100,9 +111,9 @@ LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
$(LDFLAGS) -o $@
SOURCES = $(libglibmm_generate_extra_defs_2_4_la_SOURCES) \
- $(generate_extra_defs_SOURCES)
+ $(generate_defs_gio_SOURCES) $(generate_extra_defs_SOURCES)
DIST_SOURCES = $(libglibmm_generate_extra_defs_2_4_la_SOURCES) \
- $(generate_extra_defs_SOURCES)
+ $(generate_defs_gio_SOURCES) $(generate_extra_defs_SOURCES)
sublib_includeHEADERS_INSTALL = $(INSTALL_HEADER)
HEADERS = $(sublib_include_HEADERS)
ETAGS = etags
@@ -128,8 +139,10 @@ CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED_API_CFLAGS = @DISABLE_DEPRECATED_API_CFLAGS@
DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
@@ -151,6 +164,8 @@ GMMPROC_DIR = @GMMPROC_DIR@
GREP = @GREP@
GTHREAD_CFLAGS = @GTHREAD_CFLAGS@
GTHREAD_LIBS = @GTHREAD_LIBS@
+GTKMMPROC_MERGECDOCS = @GTKMMPROC_MERGECDOCS@
+GTKMM_DOXYGEN_INPUT = @GTKMM_DOXYGEN_INPUT@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -159,13 +174,15 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LIBGLIBMM_SO_VERSION = @LIBGLIBMM_SO_VERSION@
LIBOBJS = @LIBOBJS@
-LIBS = $(GLIBMM_LIBS)
+LIBS = $(GLIBMM_LIBS) $(GIOMM_LIBS)
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
+M4 = @M4@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
+NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
@@ -175,6 +192,7 @@ PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL_PATH = @PERL_PATH@
PKG_CONFIG = @PKG_CONFIG@
RANLIB = @RANLIB@
SED = @SED@
@@ -231,6 +249,7 @@ sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
files_h = generate_extra_defs.h
@@ -246,9 +265,11 @@ sublib_include_HEADERS = $(files_h)
# Build the generate_properties_defs utility executable.
# This is not used to build the rest of glibmm.
-INCLUDES = $(GLIBMM_CFLAGS)
+INCLUDES = $(GLIBMM_CFLAGS) $(GIOMM_CFLAGS)
generate_extra_defs_SOURCES = generate_defs_glib.cc
generate_extra_defs_LDADD = libglibmm_generate_extra_defs-2.4.la
+generate_defs_gio_SOURCES = generate_defs_gio.cc
+generate_defs_gio_LDADD = libglibmm_generate_extra_defs-2.4.la
all: all-am
.SUFFIXES:
@@ -288,8 +309,8 @@ install-libLTLIBRARIES: $(lib_LTLIBRARIES)
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
f=$(am__strip_dir) \
- echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
- $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
else :; fi; \
done
@@ -297,8 +318,8 @@ uninstall-libLTLIBRARIES:
@$(NORMAL_UNINSTALL)
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
p=$(am__strip_dir) \
- echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
- $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
done
clean-libLTLIBRARIES:
@@ -318,6 +339,9 @@ clean-noinstPROGRAMS:
echo " rm -f $$p $$f"; \
rm -f $$p $$f ; \
done
+generate_defs_gio$(EXEEXT): $(generate_defs_gio_OBJECTS) $(generate_defs_gio_DEPENDENCIES)
+ @rm -f generate_defs_gio$(EXEEXT)
+ $(CXXLINK) $(generate_defs_gio_OBJECTS) $(generate_defs_gio_LDADD) $(LIBS)
generate_extra_defs$(EXEEXT): $(generate_extra_defs_OBJECTS) $(generate_extra_defs_DEPENDENCIES)
@rm -f generate_extra_defs$(EXEEXT)
$(CXXLINK) $(generate_extra_defs_OBJECTS) $(generate_extra_defs_LDADD) $(LIBS)
@@ -328,6 +352,7 @@ mostlyclean-compile:
distclean-compile:
-rm -f *.tab.c
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/generate_defs_gio.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/generate_defs_glib.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/generate_extra_defs.Plo@am__quote@
@@ -380,8 +405,8 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
+ $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
@@ -393,8 +418,8 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
@@ -404,13 +429,12 @@ ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
- here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
diff --git a/libs/glibmm2/tools/extra_defs_gen/generate_defs_gio.cc b/libs/glibmm2/tools/extra_defs_gen/generate_defs_gio.cc
new file mode 100644
index 0000000000..6874a10fdc
--- /dev/null
+++ b/libs/glibmm2/tools/extra_defs_gen/generate_defs_gio.cc
@@ -0,0 +1,72 @@
+/* generate_defs_gio.cc
+ *
+ * Copyright (C) 2007 The gtkmm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include "generate_extra_defs.h"
+#include <iostream>
+#include <gio/gio.h>
+#include <gio/gunixinputstream.h>
+#include <gio/gunixoutputstream.h>
+
+int main (int argc, char** argv)
+{
+ g_type_init ();
+
+ std::cout << get_defs(G_TYPE_ASYNC_RESULT)
+ << get_defs(G_TYPE_CANCELLABLE)
+ << get_defs(G_TYPE_BUFFERED_INPUT_STREAM)
+ << get_defs(G_TYPE_BUFFERED_OUTPUT_STREAM)
+ << get_defs(G_TYPE_DATA_INPUT_STREAM)
+ << get_defs(G_TYPE_DATA_OUTPUT_STREAM)
+ << get_defs(G_TYPE_DRIVE)
+ << get_defs(G_TYPE_FILE)
+ << get_defs(G_TYPE_FILE_ENUMERATOR)
+ << get_defs(G_TYPE_FILE_INFO)
+ << get_defs(G_TYPE_FILE_ICON)
+ << get_defs(G_TYPE_FILE_MONITOR)
+ << get_defs(G_TYPE_FILENAME_COMPLETER)
+// << get_defs(G_TYPE_FILE_ATTRIBUTE_INFO_LIST)
+// << get_defs(G_TYPE_FILE_ATTRIBUTE_MATCHER)
+ << get_defs(G_TYPE_FILE_INPUT_STREAM)
+ << get_defs(G_TYPE_FILE_OUTPUT_STREAM)
+ << get_defs(G_TYPE_FILTER_INPUT_STREAM)
+ << get_defs(G_TYPE_FILTER_OUTPUT_STREAM)
+
+ << get_defs(G_TYPE_UNIX_INPUT_STREAM)
+ << get_defs(G_TYPE_UNIX_OUTPUT_STREAM)
+
+ << get_defs(G_TYPE_INPUT_STREAM)
+ << get_defs(G_TYPE_LOADABLE_ICON)
+ << get_defs(G_TYPE_MEMORY_INPUT_STREAM)
+ << get_defs(G_TYPE_MEMORY_OUTPUT_STREAM)
+ << get_defs(G_TYPE_MOUNT)
+ << get_defs(G_TYPE_MOUNT_OPERATION)
+ << get_defs(G_TYPE_SEEKABLE)
+ << get_defs(G_TYPE_SIMPLE_ASYNC_RESULT)
+ << get_defs(G_TYPE_THEMED_ICON)
+
+ //TODO: This causes a g_warning:
+ //GLib-GObject-CRITICAL **: g_param_spec_pool_list: assertion `pool != NULL' failed"
+ << get_defs(G_TYPE_VOLUME)
+
+ << get_defs(G_TYPE_VOLUME_MONITOR)
+
+ << std::endl;
+
+ return 0;
+}
diff --git a/libs/glibmm2/tools/extra_defs_gen/generate_defs_glib.cc b/libs/glibmm2/tools/extra_defs_gen/generate_defs_glib.cc
index d643e0c46a..b0806de001 100644
--- a/libs/glibmm2/tools/extra_defs_gen/generate_defs_glib.cc
+++ b/libs/glibmm2/tools/extra_defs_gen/generate_defs_glib.cc
@@ -1,4 +1,4 @@
-/* $Id: generate_defs_glib.cc 29 2003-04-19 12:39:06Z murrayc $ */
+/* $Id: generate_defs_glib.cc 779 2009-01-19 17:58:50Z murrayc $ */
/* generate_defs_gtk.cc
*
@@ -12,9 +12,9 @@
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/tools/extra_defs_gen/generate_extra_defs.cc b/libs/glibmm2/tools/extra_defs_gen/generate_extra_defs.cc
index 81a8776955..5bfb7680e4 100644
--- a/libs/glibmm2/tools/extra_defs_gen/generate_extra_defs.cc
+++ b/libs/glibmm2/tools/extra_defs_gen/generate_extra_defs.cc
@@ -1,26 +1,27 @@
-/* $Id: generate_extra_defs.cc 204 2005-02-13 14:30:19Z murrayc $ */
+/* $Id: generate_extra_defs.cc 792 2009-03-09 17:43:04Z daniel $ */
/* generate_extra_defs.cc
*
* Copyright (C) 2001 The Free Software Foundation
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "generate_extra_defs.h"
+#include <algorithm>
std::string get_properties(GType gtype)
{
@@ -28,10 +29,37 @@ std::string get_properties(GType gtype)
std::string strObjectName = g_type_name(gtype);
//Get the list of properties:
- GObjectClass* pGClass = G_OBJECT_CLASS(g_type_class_ref(gtype));
-
+ GParamSpec** ppParamSpec = 0;
guint iCount = 0;
- GParamSpec** ppParamSpec = g_object_class_list_properties (pGClass, &iCount);
+ if(G_TYPE_IS_OBJECT(gtype))
+ {
+ GObjectClass* pGClass = G_OBJECT_CLASS(g_type_class_ref(gtype));
+ ppParamSpec = g_object_class_list_properties (pGClass, &iCount);
+ g_type_class_unref(pGClass);
+
+ if(!ppParamSpec)
+ {
+ strResult += ";; Warning: g_object_class_list_properties() returned NULL for " + std::string(g_type_name(gtype)) + "\n";
+ }
+ }
+ else if (G_TYPE_IS_INTERFACE(gtype))
+ {
+ gpointer pGInterface = g_type_default_interface_ref(gtype);
+ if(pGInterface) //We check because this fails for G_TYPE_VOLUME, for some reason.
+ {
+ ppParamSpec = g_object_interface_list_properties(pGInterface, &iCount);
+ g_type_default_interface_unref(pGInterface);
+
+ if(!ppParamSpec)
+ {
+ strResult += ";; Warning: g_object_interface_list_properties() returned NULL for " + std::string(g_type_name(gtype)) + "\n";
+ }
+ }
+ }
+
+ //This extra check avoids an occasional crash, for instance for GVolume
+ if(!ppParamSpec)
+ iCount = 0;
for(guint i = 0; i < iCount; i++)
{
@@ -39,11 +67,13 @@ std::string get_properties(GType gtype)
if(pParamSpec)
{
//Name and type:
- std::string strName = g_param_spec_get_name(pParamSpec);
- std::string strTypeName = G_PARAM_SPEC_TYPE_NAME(pParamSpec);
-
+ const std::string strName = g_param_spec_get_name(pParamSpec);
+ const std::string strTypeName = G_PARAM_SPEC_TYPE_NAME(pParamSpec);
+
const gchar* pchBlurb = g_param_spec_get_blurb(pParamSpec);
- std::string strDocs = (pchBlurb ? pchBlurb : std::string());
+ std::string strDocs = (pchBlurb) ? pchBlurb : "";
+ // Quick hack to get rid of nested double quotes:
+ std::replace(strDocs.begin(), strDocs.end(), '"', '\'');
strResult += "(define-property " + strName + "\n";
strResult += " (of-object \"" + strObjectName + "\")\n";
@@ -69,7 +99,6 @@ std::string get_properties(GType gtype)
}
g_free(ppParamSpec);
- g_type_class_unref(pGClass); //to match the g_type_class_ref() above.
return strResult;
}
@@ -109,9 +138,12 @@ std::string get_signals(GType gtype)
std::string strObjectName = g_type_name(gtype);
gpointer gclass_ref = 0;
+ gpointer ginterface_ref = 0;
if(G_TYPE_IS_OBJECT(gtype))
gclass_ref = g_type_class_ref(gtype); //Ensures that class_init() is called.
+ else if(G_TYPE_IS_INTERFACE(gtype))
+ ginterface_ref = g_type_default_interface_ref(gtype); //install signals.
//Get the list of signals:
guint iCount = 0;
@@ -194,6 +226,8 @@ std::string get_signals(GType gtype)
if(gclass_ref)
g_type_class_unref(gclass_ref); //to match the g_type_class_ref() above.
+ else if(ginterface_ref)
+ g_type_default_interface_unref(ginterface_ref); // for interface ref above.
return strResult;
}
@@ -205,10 +239,11 @@ std::string get_defs(GType gtype)
std::string strObjectName = g_type_name(gtype);
std::string strDefs = ";; From " + strObjectName + "\n\n";
- strDefs += get_signals(gtype);
-
- if(G_TYPE_IS_OBJECT(gtype))
+ if(G_TYPE_IS_OBJECT(gtype) || G_TYPE_IS_INTERFACE(gtype))
+ {
+ strDefs += get_signals(gtype);
strDefs += get_properties(gtype);
+ }
return strDefs;
}
diff --git a/libs/glibmm2/tools/extra_defs_gen/generate_extra_defs.h b/libs/glibmm2/tools/extra_defs_gen/generate_extra_defs.h
index af90b0cf30..e7ce8f027e 100644
--- a/libs/glibmm2/tools/extra_defs_gen/generate_extra_defs.h
+++ b/libs/glibmm2/tools/extra_defs_gen/generate_extra_defs.h
@@ -1,20 +1,20 @@
-/* $Id: generate_extra_defs.h 2 2003-01-07 16:59:16Z murrayc $ */
+/* $Id: generate_extra_defs.h 779 2009-01-19 17:58:50Z murrayc $ */
/* generate_extra_defs.h
*
* Copyright (C) 2001 The Free Software Foundation
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
diff --git a/libs/glibmm2/tools/m4/Makefile.am b/libs/glibmm2/tools/m4/Makefile.am
index d3ec8fba7d..218150d697 100644
--- a/libs/glibmm2/tools/m4/Makefile.am
+++ b/libs/glibmm2/tools/m4/Makefile.am
@@ -5,6 +5,6 @@ EXTRA_DIST = Makefile_list_of_sources.am_fragment $(files_tools_m4)
# Install the .m4, files:
-tools_m4_includedir = $(libdir)/glibmm-2.4/proc/m4
+tools_m4_includedir = $(GMMPROC_DIR)/m4
tools_m4_include_HEADERS = $(files_tools_m4)
diff --git a/libs/glibmm2/tools/m4/Makefile.in b/libs/glibmm2/tools/m4/Makefile.in
index 41677371e8..4116da92ae 100644
--- a/libs/glibmm2/tools/m4/Makefile.in
+++ b/libs/glibmm2/tools/m4/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.10 from Makefile.am.
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -37,7 +37,14 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(top_srcdir)/tools/m4/Makefile_list_of_sources.am_fragment
subdir = tools/m4
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/scripts/c_std.m4 \
+ $(top_srcdir)/scripts/cxx.m4 $(top_srcdir)/scripts/cxx_std.m4 \
+ $(top_srcdir)/scripts/dk-feature.m4 \
+ $(top_srcdir)/scripts/docgen.m4 \
+ $(top_srcdir)/scripts/glibmm_check_perl.m4 \
+ $(top_srcdir)/scripts/macros.m4 \
+ $(top_srcdir)/scripts/reduced.m4 $(top_srcdir)/scripts/sun.m4 \
+ $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
@@ -79,8 +86,10 @@ CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED_API_CFLAGS = @DISABLE_DEPRECATED_API_CFLAGS@
DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
@@ -102,6 +111,8 @@ GMMPROC_DIR = @GMMPROC_DIR@
GREP = @GREP@
GTHREAD_CFLAGS = @GTHREAD_CFLAGS@
GTHREAD_LIBS = @GTHREAD_LIBS@
+GTKMMPROC_MERGECDOCS = @GTKMMPROC_MERGECDOCS@
+GTKMM_DOXYGEN_INPUT = @GTKMM_DOXYGEN_INPUT@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -114,9 +125,11 @@ LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
+M4 = @M4@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
+NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
@@ -126,6 +139,7 @@ PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL_PATH = @PERL_PATH@
PKG_CONFIG = @PKG_CONFIG@
RANLIB = @RANLIB@
SED = @SED@
@@ -182,6 +196,7 @@ sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
files_tools_m4 = base.m4 class_shared.m4 class_boxedtype.m4 class_boxedtype_static.m4 \
@@ -189,13 +204,13 @@ files_tools_m4 = base.m4 class_shared.m4 class_boxedtype.m4 class_boxedtype_stat
class_interface.m4 class_opaque_refcounted.m4 class_opaque_copyable.m4 \
gerror.m4 \
compare.m4 convert.m4 convert_base.m4 convert_gtkmm.m4 convert_atk.m4 convert_gdk.m4 \
- convert_glib.m4 convert_gtk.m4 convert_pango.m4 ctor.m4 doc.m4 enum.m4 list.m4 member.m4 \
+ convert_glib.m4 convert_gio.m4 convert_gtk.m4 convert_pango.m4 ctor.m4 doc.m4 enum.m4 list.m4 member.m4 \
method.m4 property.m4 signal.m4 vfunc.m4
EXTRA_DIST = Makefile_list_of_sources.am_fragment $(files_tools_m4)
# Install the .m4, files:
-tools_m4_includedir = $(libdir)/glibmm-2.4/proc/m4
+tools_m4_includedir = $(GMMPROC_DIR)/m4
tools_m4_include_HEADERS = $(files_tools_m4)
all: all-am
@@ -258,8 +273,8 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
+ $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
@@ -271,8 +286,8 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
@@ -282,13 +297,12 @@ ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
- here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
diff --git a/libs/glibmm2/tools/m4/Makefile_list_of_sources.am_fragment b/libs/glibmm2/tools/m4/Makefile_list_of_sources.am_fragment
index ab2e9c1a3c..0eaa3e6fd1 100644
--- a/libs/glibmm2/tools/m4/Makefile_list_of_sources.am_fragment
+++ b/libs/glibmm2/tools/m4/Makefile_list_of_sources.am_fragment
@@ -3,6 +3,6 @@ files_tools_m4 = base.m4 class_shared.m4 class_boxedtype.m4 class_boxedtype_stat
class_interface.m4 class_opaque_refcounted.m4 class_opaque_copyable.m4 \
gerror.m4 \
compare.m4 convert.m4 convert_base.m4 convert_gtkmm.m4 convert_atk.m4 convert_gdk.m4 \
- convert_glib.m4 convert_gtk.m4 convert_pango.m4 ctor.m4 doc.m4 enum.m4 list.m4 member.m4 \
+ convert_glib.m4 convert_gio.m4 convert_gtk.m4 convert_pango.m4 ctor.m4 doc.m4 enum.m4 list.m4 member.m4 \
method.m4 property.m4 signal.m4 vfunc.m4
diff --git a/libs/glibmm2/tools/m4/base.m4 b/libs/glibmm2/tools/m4/base.m4
index 459ef89769..b70335a835 100644
--- a/libs/glibmm2/tools/m4/base.m4
+++ b/libs/glibmm2/tools/m4/base.m4
@@ -1,4 +1,4 @@
-dnl $Id: base.m4 454 2007-10-12 19:58:00Z arminb $
+dnl $Id: base.m4 452 2007-10-12 19:52:11Z arminb $
divert(-1)
dnl
diff --git a/libs/glibmm2/tools/m4/class_gobject.m4 b/libs/glibmm2/tools/m4/class_gobject.m4
index 32992bdef2..b27957d862 100644
--- a/libs/glibmm2/tools/m4/class_gobject.m4
+++ b/libs/glibmm2/tools/m4/class_gobject.m4
@@ -1,4 +1,4 @@
-dnl $Id: class_gobject.m4 413 2007-05-14 19:28:31Z murrayc $
+dnl $Id: class_gobject.m4 479 2007-12-28 11:51:47Z murrayc $
define(`_CLASS_GOBJECT',`dnl
@@ -59,6 +59,17 @@ dnl define(`__BOOL_NO_WRAP_FUNCTION__',`$1')
dnl _POP()
dnl ')
+dnl Some gobjects actually derive from GInitiallyUnowned, which does some odd reference-counting that is useful to C coders.
+dnl We don't want to expose that base class in our API,
+dnl but we do want to reverse what it does:
+define(`_DERIVES_INITIALLY_UNOWNED',`dnl
+_PUSH()
+dnl Define this macro to be tested for later.
+define(`__BOOL_DERIVES_INITIALLY_UNOWNED__',`$1')
+_POP()
+')
+
+
dnl
dnl _CREATE_METHOD(args_type_and_name_hpp, args_type_and_name_cpp,args_name_only);
dnl
@@ -161,7 +172,9 @@ __CNAME__* __CPPNAME__::gobj_copy()
__CPPNAME__::__CPPNAME__`'(const Glib::ConstructParams& construct_params)
:
__CPPPARENT__`'(construct_params)
-{}
+{
+_INITIALLY_UNOWNED_SINK
+}
__CPPNAME__::__CPPNAME__`'(__CNAME__* castitem)
:
diff --git a/libs/glibmm2/tools/m4/class_interface.m4 b/libs/glibmm2/tools/m4/class_interface.m4
index e34366371d..5e71d137e7 100644
--- a/libs/glibmm2/tools/m4/class_interface.m4
+++ b/libs/glibmm2/tools/m4/class_interface.m4
@@ -1,4 +1,4 @@
-dnl $Id: class_interface.m4 446 2007-09-26 15:10:44Z murrayc $
+dnl $Id: class_interface.m4 580 2008-02-04 20:27:38Z murrayc $
define(`_CLASS_INTERFACE',`dnl
@@ -10,9 +10,9 @@ define(`__CNAME__',`$2')
define(`__CCAST__',`$3')
define(`__CCLASS__',`$4') dnl SomethingIface or SomethingClass, both suffixes are used.
define(`__BASE__',_LOWER(__CPPNAME__))
-define(`__CPPPARENT__',`Glib::Interface')
-dnl define(`__CPARENT__',`GObject')
-define(`__PCAST__',`(GObject*)')
+define(`__CPPPARENT__',m4_ifelse($5,`',`Glib::Interface',$5)) #Optional parameter.
+define(`__CPARENT__',m4_ifelse($6,`',`GObject',$6)) #Optional parameter.
+define(`__PCAST__',`(__CPARENT__`'*)')
define(`__BOOL_IS_INTERFACE__',`1')
@@ -34,7 +34,7 @@ dnl
dnl
dnl
define(`_PH_CLASS_DECLARATION_INTERFACE',`dnl
-class __CPPNAME__`'_Class : public Glib::Interface_Class
+class __CPPNAME__`'_Class : public __CPPPARENT__`'_Class
{
public:
typedef __CPPNAME__ CppObjectType;
@@ -187,7 +187,7 @@ Glib::ObjectBase* __CPPNAME__`'_Class::wrap_new(GObject* object)
__CPPNAME__::__CPPNAME__`'()
:
- Glib::Interface(__BASE__`'_class_.init())
+ __CPPPARENT__`'(__BASE__`'_class_.init())
{}
__CPPNAME__::__CPPNAME__`'(__CNAME__* castitem)
@@ -195,6 +195,11 @@ __CPPNAME__::__CPPNAME__`'(__CNAME__* castitem)
__CPPPARENT__`'(__PCAST__`'(castitem))
{}
+__CPPNAME__::__CPPNAME__`'(const Glib::Interface_Class& interface_class)
+: __CPPPARENT__`'(interface_class)
+{
+}
+
__CPPNAME__::~__CPPNAME__`'()
{}
@@ -238,6 +243,14 @@ private:
protected:
__CPPNAME__`'(); // you must derive from this class
+ /** Called by constructors of derived classes. Provide the result of
+ * the Class init() function to ensure that it is properly
+ * initialized.
+ *
+ * @param interface_class The Class object for the derived type.
+ */
+ explicit __CPPNAME__`'(const Glib::Interface_Class& interface_class);
+
public:
// This is public so that C++ wrapper instances can be
// created for C instances of unwrapped types.
diff --git a/libs/glibmm2/tools/m4/class_shared.m4 b/libs/glibmm2/tools/m4/class_shared.m4
index fa5d302b8c..235b0d3dc5 100644
--- a/libs/glibmm2/tools/m4/class_shared.m4
+++ b/libs/glibmm2/tools/m4/class_shared.m4
@@ -1,4 +1,4 @@
-dnl $Id: class_shared.m4 320 2006-09-19 20:07:31Z murrayc $
+dnl $Id: class_shared.m4 540 2008-01-25 20:29:42Z murrayc $
define(`_CLASS_START',`dnl
_PUSH(SECTION_CLASS1)
@@ -42,7 +42,13 @@ ifelse(`$2',,,`
_POP()
')
-
+dnl GVolumeMonitor can be broken/impeded by defining a sub-type.
+define(`_DO_NOT_DERIVE_GTYPE',`dnl
+_PUSH()
+dnl Define this macro to be tested for later.
+define(`__BOOL_DO_NOT_DERIVE_GTYPE__',`$1')
+_POP()
+')
dnl
dnl
@@ -54,7 +60,8 @@ public:
#ifndef DOXYGEN_SHOULD_SKIP_THIS
typedef __CPPNAME__ CppObjectType;
typedef __REAL_CNAME__ BaseObjectType;
-ifdef(`__BOOL_NO_DERIVED_CLASS__',`dnl
+ifdef(`__BOOL_DO_NOT_DERIVE_GTYPE__',`dnl
+ typedef __CPPPARENT__`'_Class CppClassParent;
',`dnl
typedef __REAL_CNAME__`'Class BaseClassType;
typedef __CPPPARENT__`'_Class CppClassParent;
@@ -66,7 +73,7 @@ ifdef(`__BOOL_NO_DERIVED_CLASS__',`dnl
const Glib::Class& init();
-ifdef(`__BOOL_NO_DERIVED_CLASS__',`dnl
+ifdef(`__BOOL_DO_NOT_DERIVE_GTYPE__',`dnl
',`dnl
static void class_init_function(void* g_class, void* class_data);
')dnl
@@ -98,6 +105,10 @@ const Glib::Class& __CPPNAME__`'_Class::init()
{
if(!gtype_) // create the GType if necessary
{
+ifdef(`__BOOL_DO_NOT_DERIVE_GTYPE__',`dnl
+ // Do not derive a GType, or use a derived klass:
+ gtype_ = CppClassParent::CppObjectType::get_type();
+',`dnl
// Glib::Class has to know the class init function to clone custom types.
class_init_func_ = &__CPPNAME__`'_Class::class_init_function;
@@ -110,11 +121,12 @@ const Glib::Class& __CPPNAME__`'_Class::init()
// Add derived versions of interfaces, if the C type implements any interfaces:
_IMPORT(SECTION_CC_IMPLEMENTS_INTERFACES)
+')
}
return *this;
}
-ifdef(`__BOOL_NO_DERIVED_CLASS__',`dnl
+ifdef(`__BOOL_DO_NOT_DERIVE_GTYPE__',`dnl
',`dnl
void __CPPNAME__`'_Class::class_init_function(void* g_class, void* class_data)
diff --git a/libs/glibmm2/tools/m4/convert_gio.m4 b/libs/glibmm2/tools/m4/convert_gio.m4
new file mode 100644
index 0000000000..c886213ad7
--- /dev/null
+++ b/libs/glibmm2/tools/m4/convert_gio.m4
@@ -0,0 +1,123 @@
+_CONV_ENUM(G,PasswordSave)
+_CONV_ENUM(G,AskPasswordFlags)
+_CONV_ENUM(G,MountOperationResult)
+_CONV_ENUM(G,MountUnmountFlags)
+_CONV_ENUM(G,MountMountFlags)
+_CONV_ENUM(G,FileAttributeType)
+_CONV_ENUM(G,FileAttributeInfoFlags)
+_CONV_ENUM(G,FileCopyFlags)
+_CONV_ENUM(G,FileCreateFlags)
+_CONV_ENUM(G,FileMonitorFlags)
+_CONV_ENUM(G,FileMonitorEvent)
+_CONV_ENUM(G,FileQueryInfoFlags)
+_CONV_ENUM(G,FileType)
+_CONV_ENUM(G,OutputStreamSpliceFlags)
+_CONV_ENUM(G,AppInfoCreateFlags)
+_CONV_ENUM(G,DataStreamByteOrder)
+_CONV_ENUM(G,DataStreamNewlineType)
+_CONV_ENUM(G,EmblemOrigin)
+
+
+# AppInfo
+_CONVERSION(`GAppInfo*',`Glib::RefPtr<AppInfo>',`Glib::wrap($3)')
+_CONVERSION(`const Glib::RefPtr<AppLaunchContext>&',`GAppLaunchContext*',__CONVERT_REFPTR_TO_P)
+_CONVERSION(`GAppLaunchContext*',`const Glib::RefPtr<AppLaunchContext>&',Glib::wrap($3))
+_CONVERSION(`const Glib::RefPtr<AppInfo>&',`GAppInfo*',__CONVERT_REFPTR_TO_P)
+_CONVERSION(`Glib::RefPtr<AppInfo>',`GAppInfo*',__CONVERT_REFPTR_TO_P)
+_CONVERSION(`GAppInfo*',`const Glib::RefPtr<AppInfo>&',`Glib::wrap($3)')
+_CONVERSION(`const Glib::ListHandle< Glib::RefPtr<Gio::File> >&',`GList*',`$3.data()')
+
+# AsyncResult
+_CONVERSION(`Glib::RefPtr<Glib::Object>',`GObject*',__CONVERT_REFPTR_TO_P)
+_CONVERSION(`const Glib::RefPtr<AsyncResult>&',`GAsyncResult*',__CONVERT_REFPTR_TO_P)
+_CONVERSION(`Glib::RefPtr<AsyncResult>&',`GAsyncResult*',__CONVERT_REFPTR_TO_P)
+
+# Cancellable
+_CONVERSION(`const Glib::RefPtr<Cancellable>&',`GCancellable*',__CONVERT_CONST_REFPTR_TO_P)
+_CONVERSION(`GCancellable*', `Glib::RefPtr<Cancellable>', `Glib::wrap($3)')
+
+# DesktopAppInfo
+_CONVERSION(`GDesktopAppInfo*', `Glib::RefPtr<DesktopAppInfo>', `Glib::wrap($3)')
+
+# Drive
+_CONVERSION(`GDrive*',`Glib::RefPtr<Drive>',`Glib::wrap($3)')
+
+# File
+_CONVERSION(`return-char*',`std::string',`Glib::convert_return_gchar_ptr_to_stdstring($3)')
+_CONVERSION(`Glib::RefPtr<File>',`GFile*',__CONVERT_REFPTR_TO_P)
+_CONVERSION(`const Glib::RefPtr<File>&',`GFile*',__CONVERT_REFPTR_TO_P)
+_CONVERSION(`const Glib::RefPtr<const File>&',`GFile*',__CONVERT_CONST_REFPTR_TO_P_SUN(Gio::File))
+_CONVERSION(`GFile*',`Glib::RefPtr<File>',`Glib::wrap($3)')
+_CONVERSION(`GFile*',`Glib::RefPtr<const File>',`Glib::wrap($3)')
+
+
+# FileAttribute
+_CONVERSION(`GFileAttributeValue*',`FileAttributeValue',`Glib::wrap($3)')
+_CONVERSION(`const FileAttributeValue&',`const GFileAttributeValue*',`$3.gobj()')
+_CONVERSION(`GFileAttributeInfoList*',`Glib::RefPtr<FileAttributeInfoList>',`Glib::wrap($3)')
+
+#FileEnumerator
+_CONVERSION(`GFileEnumerator*',`Glib::RefPtr<FileEnumerator>',`Glib::wrap($3)')
+
+# FileInfo
+_CONVERSION(`GFileInfo*',`Glib::RefPtr<FileInfo>',`Glib::wrap($3)')
+_CONVERSION(`Glib::RefPtr<FileInfo>&',`GFileInfo*',__CONVERT_REFPTR_TO_P)
+_CONVERSION(`const Glib::RefPtr<FileInfo>&',`GFileInfo*',__CONVERT_REFPTR_TO_P)
+_CONVERSION(`char**',`Glib::StringArrayHandle',`Glib::StringArrayHandle($3)')
+_CONVERSION(`Glib::TimeVal&', `GTimeVal*', static_cast<$2>(&$3))
+_CONVERSION(`const Glib::TimeVal&', `GTimeVal*', const_cast<GTimeVal*>(static_cast<const GTimeVal*>(&$3)))
+_CONVERSION(`const Glib::RefPtr<FileAttributeMatcher>&',`GFileAttributeMatcher*',__CONVERT_CONST_REFPTR_TO_P)
+
+# FileInputStream
+_CONVERSION(`GFileInputStream*',`Glib::RefPtr<FileInputStream>',`Glib::wrap($3)')
+
+# FileMonitor
+_CONVERSION(`GFileMonitor*',`Glib::RefPtr<FileMonitor>',`Glib::wrap($3)')
+
+# FileOutputStream
+_CONVERSION(`GFileOutputStream*',`Glib::RefPtr<FileOutputStream>',`Glib::wrap($3)')
+
+# FilterInputStream
+#_CONVERSION(`GFilterInputStream*',`Glib::RefPtr<FilterInputStream>',`Glib::wrap($3)')
+
+
+# Icon
+_CONVERSION(`GIcon*',`Glib::RefPtr<Icon>',`Glib::wrap($3)')
+_CONVERSION(`const Glib::RefPtr<Icon>&',`GIcon*',__CONVERT_CONST_REFPTR_TO_P)
+_CONVERSION(`Glib::RefPtr<Icon>',`GIcon*',__CONVERT_REFPTR_TO_P)
+_CONVERSION(`Glib::RefPtr<const Icon>',`GIcon*',__CONVERT_CONST_REFPTR_TO_P)
+
+_CONVERSION(`const Glib::RefPtr<Emblem>&',`GEmblem*',__CONVERT_CONST_REFPTR_TO_P)
+_CONVERSION(`const Glib::RefPtr<Emblem>&',`GEmblem*',__CONVERT_CONST_REFPTR_TO_P)
+
+# InputStream
+_CONVERSION(`const Glib::RefPtr<InputStream>&',`GInputStream*',__CONVERT_CONST_REFPTR_TO_P)
+_CONVERSION(`GInputStream*',`Glib::RefPtr<InputStream>',`Glib::wrap($3)')
+
+#Mount
+_CONVERSION(`GMount*',`Glib::RefPtr<Mount>',`Glib::wrap($3)')
+_CONVERSION(`const Glib::RefPtr<Mount>&',`GMount*',__CONVERT_CONST_REFPTR_TO_P)
+
+# MountOptions
+_CONVERSION(`GPasswordSave',`PasswordSave',`($2)$3')
+_CONVERSION(`PasswordSave',`GPasswordSave',`($2)$3')
+
+#MountOperation
+#_CONVERSION(`GAskPasswordFlags',`AskPasswordFlags',`($2)$3')
+
+# OutputStream
+_CONVERSION(`GOutputStream*',`Glib::RefPtr<OutputStream>',`Glib::wrap($3)')
+_CONVERSION(`const Glib::RefPtr<OutputStream>&',`GOutputStream*',__CONVERT_CONST_REFPTR_TO_P)
+
+#Volume
+_CONVERSION(`GVolume*',`Glib::RefPtr<Volume>',`Glib::wrap($3)')
+
+# VolumeMonitor
+_CONVERSION(`GVolumeMonitor*',`Glib::RefPtr<VolumeMonitor>',`Glib::wrap($3)')
+_CONVERSION(`const Glib::RefPtr<Drive>&',`GDrive*',__CONVERT_CONST_REFPTR_TO_P)
+_CONVERSION(`const Glib::RefPtr<Mount>&',`GMount*',__CONVERT_CONST_REFPTR_TO_P)
+_CONVERSION(`const Glib::RefPtr<Volume>&',`GVolume*',__CONVERT_CONST_REFPTR_TO_P)
+
+#Vfs
+_CONVERSION(`GVfs*', `Glib::RefPtr<Vfs>', `Glib::wrap($3)')
+
diff --git a/libs/glibmm2/tools/m4/convert_glib.m4 b/libs/glibmm2/tools/m4/convert_glib.m4
index 20d29095be..80cb2cc198 100644
--- a/libs/glibmm2/tools/m4/convert_glib.m4
+++ b/libs/glibmm2/tools/m4/convert_glib.m4
@@ -26,6 +26,7 @@ _CONV_GLIB_ENUM(KeyFileFlags)
_CONV_GLIB_ENUM(RegexCompileFlags)
_CONV_GLIB_ENUM(RegexMatchFlags)
+
_CONVERSION(`gunichar&',`gunichar*',`&($3)')
_CONVERSION(`gsize&',`gsize*',`&($3)')
@@ -35,16 +36,23 @@ define(`__GCHARP_TO_USTRING',`Glib::convert_const_gchar_ptr_to_ustring($`'3)')
define(`__GCHARP_TO_STDSTRING',`Glib::convert_const_gchar_ptr_to_stdstring($`'3)')
_CONVERSION(`const Glib::ustring&',`const char*',`$3.c_str()')
+_CONVERSION(`const Glib::ustring&', `const guchar*', `(($2)$3.c_str())')
_CONVERSION(`const std::string&',`const char*',`$3.c_str()')
+_CONVERSION(`std::string',`const char*',`$3.c_str()')
_CONVERSION(`const Glib::ustring&',`gchar*',`const_cast<gchar*>($3.c_str())')
_CONVERSION(`gchar*',`Glib::ustring',__GCHARP_TO_USTRING)
_CONVERSION(`const-gchar*',`Glib::ustring',__GCHARP_TO_USTRING)
+_CONVERSION(`const-guchar*',`Glib::ustring',__GCHARP_TO_USTRING)
_CONVERSION(`const gchar*',`Glib::ustring',__GCHARP_TO_USTRING)
_CONVERSION(`const char*',`Glib::ustring',__GCHARP_TO_USTRING)
_CONVERSION(`const char*',`std::string',__GCHARP_TO_STDSTRING)
-_CONVERSION(`const gchar*',`const Glib::ustring&',__GCHARP_TO_USTRING)
_CONVERSION(`const char*',`const-gchar*',`$3')
_CONVERSION(`const-gchar*',`const char*',`$3')
+_CONVERSION(`const char*',`const std::string&',__GCHARP_TO_STDSTRING)
+_CONVERSION(`char*',`std::string',__GCHARP_TO_STDSTRING)
+_CONVERSION(`std::string', `char*', `g_strdup(($3).c_str())')
+_CONVERSION(`const std::string&', `char*', `g_strdup(($3).c_str())')
+_CONVERSION(`Glib::ustring', `char*', `g_strdup(($3).c_str())')
_CONVERSION(`return-gchar*',`Glib::ustring',`Glib::convert_return_gchar_ptr_to_ustring($3)')
_CONVERSION(`return-gchar*',`std::string',`Glib::convert_return_gchar_ptr_to_stdstring($3)')
@@ -67,3 +75,4 @@ _CONVERSION(`const GValue*', `const Glib::ValueBase&', `*reinterpret_cast<const
_CONVERSION(`OptionGroup&',`GOptionGroup*',`($3).gobj()')
#_CONVERSION(`GOptionGroup*',`OptionGroup',`Glib::wrap(($3), true /* take_copy */)')
+_CONVERSION(`Glib::KeyFile&',`GKeyFile*',`($3).gobj()')
diff --git a/libs/glibmm2/tools/m4/convert_gtkmm.m4 b/libs/glibmm2/tools/m4/convert_gtkmm.m4
index d50e36239d..5d810a43dd 100644
--- a/libs/glibmm2/tools/m4/convert_gtkmm.m4
+++ b/libs/glibmm2/tools/m4/convert_gtkmm.m4
@@ -1,4 +1,4 @@
-dnl $Id: convert_gtkmm.m4 2 2003-01-07 16:59:16Z murrayc $
+dnl $Id: convert_gtkmm.m4 509 2008-01-15 12:23:43Z murrayc $
include(convert_base.m4)
include(convert_gtk.m4)
@@ -6,3 +6,4 @@ include(convert_pango.m4)
include(convert_gdk.m4)
include(convert_atk.m4)
include(convert_glib.m4)
+include(convert_gio.m4)
diff --git a/libs/glibmm2/tools/m4/ctor.m4 b/libs/glibmm2/tools/m4/ctor.m4
index bfb20bbaf7..b91d10c88b 100644
--- a/libs/glibmm2/tools/m4/ctor.m4
+++ b/libs/glibmm2/tools/m4/ctor.m4
@@ -1,8 +1,16 @@
-dnl $Id: ctor.m4 376 2007-01-28 22:22:16Z daniel $
+dnl $Id: ctor.m4 479 2007-12-28 11:51:47Z murrayc $
dnl
dnl M4 macros for constructor generation.
dnl
+dnl Code to sink a GInitiallyUnowned:
+dnl
+m4_define(`_INITIALLY_UNOWNED_SINK',`dnl
+ifdef(`__BOOL_DERIVES_INITIALLY_UNOWNED__',`dnl
+ if(gobject_ && g_object_is_floating (gobject_))
+ g_object_ref_sink(gobject_); //Stops it from being floating.
+',`')')
+
dnl Declares and implements the default constructor
dnl
m4_define(`_CTOR_DEFAULT',`dnl
@@ -15,6 +23,8 @@ __CPPNAME__::__CPPNAME__`'()
__CPPPARENT__`'(Glib::ConstructParams(__BASE__`'_class_.init()))
{
_IMPORT(SECTION_CC_INITIALIZE_CLASS_EXTRA)
+
+_INITIALLY_UNOWNED_SINK
}
_POP()')
@@ -33,6 +43,8 @@ __CPPNAME__::$1`'($3)
__CPPPARENT__`'(Glib::ConstructParams(__BASE__`'_class_.init()m4_ifelse(`$4',,,`, $4, static_cast<char*>(0)')))
{
_IMPORT(SECTION_CC_INITIALIZE_CLASS_EXTRA)
+
+_INITIALLY_UNOWNED_SINK
}
_POP()')
diff --git a/libs/glibmm2/tools/pm/DocsParser.pm b/libs/glibmm2/tools/pm/DocsParser.pm
index 5b2abef88f..a29c7a8942 100644
--- a/libs/glibmm2/tools/pm/DocsParser.pm
+++ b/libs/glibmm2/tools/pm/DocsParser.pm
@@ -291,14 +291,17 @@ sub append_parameter_docs($$)
foreach my $param (@param_names)
{
- my $desc = $$param_descriptions->{$param};
-
- $param =~ s/([a-zA-Z0-9]*(_[a-zA-Z0-9]+)*)_?/$1/g;
- DocsParser::convert_docs_to_cpp($obj_function, \$desc);
- if(length($desc) > 0)
+ if ($param ne "error" ) #We wrap GErrors as exceptions, so ignore these.
{
- $desc .= '.' unless($desc =~ /(?:^|\.)$/);
- $$text .= "\n\@param ${param} \u${desc}";
+ my $desc = $$param_descriptions->{$param};
+
+ $param =~ s/([a-zA-Z0-9]*(_[a-zA-Z0-9]+)*)_?/$1/g;
+ DocsParser::convert_docs_to_cpp($obj_function, \$desc);
+ if(length($desc) > 0)
+ {
+ $desc .= '.' unless($desc =~ /(?:^|\.)$/);
+ $$text .= "\n\@param ${param} \u${desc}";
+ }
}
}
}
@@ -350,7 +353,11 @@ sub convert_tags_to_doxygen($)
# Some argument names are suffixed by "_" -- strip this.
# gtk-doc uses @thearg, but doxygen uses @a thearg.
- s" ?\@([a-zA-Z0-9]*(_[a-zA-Z0-9]+)*)_?\b" \@a $1 "g;
+ s" ?\@([a-zA-Z0-9]*(_[a-zA-Z0-9]+)*)_?\b" \@a $1"g;
+
+ # Don't convert doxygen's @throws and @param, so these can be used in the
+ # docs_override.xml:
+ s" \@a (throws|param)" \@$1"g;
s"^Note ?\d?: "\@note "mg;
s"&lt;/?programlisting&gt;""g;
@@ -410,6 +417,7 @@ sub substitute_identifiers($$)
# Undo wrong substitutions.
s/\bHas::/HAS_/g;
s/\bNo::/NO_/g;
+ s/\bG:://g; #Rename G::Something to Something. Doesn't seem to work. murrayc.
# Replace C function names with C++ counterparts.
s/\b([a-z]+_[a-z][a-z\d_]+) ?\(\)/&DocsParser::substitute_function($doc_func, $1)/eg;
diff --git a/libs/glibmm2/tools/pm/Makefile.am b/libs/glibmm2/tools/pm/Makefile.am
index a4796c0491..aa165c3b98 100644
--- a/libs/glibmm2/tools/pm/Makefile.am
+++ b/libs/glibmm2/tools/pm/Makefile.am
@@ -5,6 +5,6 @@ EXTRA_DIST = Makefile_list_of_sources.am_fragment $(files_tools_pm)
# Install the .pm, files:
-tools_pm_includedir = $(libdir)/glibmm-2.4/proc/pm
+tools_pm_includedir = $(GMMPROC_DIR)/pm
tools_pm_include_HEADERS = $(files_tools_pm)
diff --git a/libs/glibmm2/tools/pm/Makefile.in b/libs/glibmm2/tools/pm/Makefile.in
index adef12b01a..330a0c7b04 100644
--- a/libs/glibmm2/tools/pm/Makefile.in
+++ b/libs/glibmm2/tools/pm/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.10 from Makefile.am.
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -37,7 +37,14 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(top_srcdir)/tools/pm/Makefile_list_of_sources.am_fragment
subdir = tools/pm
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/scripts/c_std.m4 \
+ $(top_srcdir)/scripts/cxx.m4 $(top_srcdir)/scripts/cxx_std.m4 \
+ $(top_srcdir)/scripts/dk-feature.m4 \
+ $(top_srcdir)/scripts/docgen.m4 \
+ $(top_srcdir)/scripts/glibmm_check_perl.m4 \
+ $(top_srcdir)/scripts/macros.m4 \
+ $(top_srcdir)/scripts/reduced.m4 $(top_srcdir)/scripts/sun.m4 \
+ $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
@@ -79,8 +86,10 @@ CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED_API_CFLAGS = @DISABLE_DEPRECATED_API_CFLAGS@
DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@
DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
@@ -102,6 +111,8 @@ GMMPROC_DIR = @GMMPROC_DIR@
GREP = @GREP@
GTHREAD_CFLAGS = @GTHREAD_CFLAGS@
GTHREAD_LIBS = @GTHREAD_LIBS@
+GTKMMPROC_MERGECDOCS = @GTKMMPROC_MERGECDOCS@
+GTKMM_DOXYGEN_INPUT = @GTKMM_DOXYGEN_INPUT@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -114,9 +125,11 @@ LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
+M4 = @M4@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
+NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
@@ -126,6 +139,7 @@ PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL_PATH = @PERL_PATH@
PKG_CONFIG = @PKG_CONFIG@
RANLIB = @RANLIB@
SED = @SED@
@@ -182,13 +196,14 @@ sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
files_tools_pm = DocsParser.pm GtkDefs.pm Enum.pm Function.pm FunctionBase.pm Object.pm Output.pm Property.pm Util.pm WrapParser.pm
EXTRA_DIST = Makefile_list_of_sources.am_fragment $(files_tools_pm)
# Install the .pm, files:
-tools_pm_includedir = $(libdir)/glibmm-2.4/proc/pm
+tools_pm_includedir = $(GMMPROC_DIR)/pm
tools_pm_include_HEADERS = $(files_tools_pm)
all: all-am
@@ -251,8 +266,8 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
+ $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
@@ -264,8 +279,8 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
@@ -275,13 +290,12 @@ ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
- here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
diff --git a/libs/glibmm2/tools/pm/Output.pm b/libs/glibmm2/tools/pm/Output.pm
index cd62edbb28..7d23130adb 100644
--- a/libs/glibmm2/tools/pm/Output.pm
+++ b/libs/glibmm2/tools/pm/Output.pm
@@ -598,6 +598,12 @@ sub output_wrap_property($$$$$$)
{
# construct-only functions can be read, but not written.
$proxy_suffix = "_ReadOnly";
+
+ if($objProperty->get_readable() ne 1)
+ {
+ $self->output_wrap_failed($name, "attempt to wrap write-only and construct-only property.");
+ return;
+ }
}
elsif($objProperty->get_readable() ne 1)
{