gobject-introspection 3.1.1-x86-mingw32 → 3.1.2-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (97) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +2 -2
  3. data/ext/gobject-introspection/extconf.rb +2 -2
  4. data/ext/gobject-introspection/rb-gi-argument.c +65 -10
  5. data/ext/gobject-introspection/rb-gi-field-info.c +81 -14
  6. data/ext/gobject-introspection/rb-gi-loader.c +8 -3
  7. data/ext/gobject-introspection/rb-gi-repository.c +5 -1
  8. data/lib/2.2/gobject_introspection.so +0 -0
  9. data/lib/2.3/gobject_introspection.so +0 -0
  10. data/lib/2.4/gobject_introspection.so +0 -0
  11. data/lib/gobject-introspection/loader.rb +49 -13
  12. data/lib/gobject-introspection/repository.rb +7 -0
  13. data/test/test-union-info.rb +34 -2
  14. data/vendor/local/bin/g-ir-compiler.exe +0 -0
  15. data/vendor/local/bin/g-ir-generate.exe +0 -0
  16. data/vendor/local/bin/g-ir-inspect.exe +0 -0
  17. data/vendor/local/bin/libgirepository-1.0-1.dll +0 -0
  18. data/vendor/local/lib/girepository-1.0/GIRepository-2.0.typelib +0 -0
  19. data/vendor/local/lib/girepository-1.0/GLib-2.0.typelib +0 -0
  20. data/vendor/local/lib/girepository-1.0/Gio-2.0.typelib +0 -0
  21. data/vendor/local/lib/gobject-introspection/giscanner/__init__.pyc +0 -0
  22. data/vendor/local/lib/gobject-introspection/giscanner/__init__.pyo +0 -0
  23. data/vendor/local/lib/gobject-introspection/giscanner/annotationmain.pyc +0 -0
  24. data/vendor/local/lib/gobject-introspection/giscanner/annotationmain.pyo +0 -0
  25. data/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyc +0 -0
  26. data/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyo +0 -0
  27. data/vendor/local/lib/gobject-introspection/giscanner/ast.pyc +0 -0
  28. data/vendor/local/lib/gobject-introspection/giscanner/ast.pyo +0 -0
  29. data/vendor/local/lib/gobject-introspection/giscanner/cachestore.pyc +0 -0
  30. data/vendor/local/lib/gobject-introspection/giscanner/cachestore.pyo +0 -0
  31. data/vendor/local/lib/gobject-introspection/giscanner/ccompiler.py +5 -4
  32. data/vendor/local/lib/gobject-introspection/giscanner/ccompiler.pyc +0 -0
  33. data/vendor/local/lib/gobject-introspection/giscanner/ccompiler.pyo +0 -0
  34. data/vendor/local/lib/gobject-introspection/giscanner/codegen.pyc +0 -0
  35. data/vendor/local/lib/gobject-introspection/giscanner/codegen.pyo +0 -0
  36. data/vendor/local/lib/gobject-introspection/giscanner/collections/__init__.pyc +0 -0
  37. data/vendor/local/lib/gobject-introspection/giscanner/collections/__init__.pyo +0 -0
  38. data/vendor/local/lib/gobject-introspection/giscanner/collections/counter.pyc +0 -0
  39. data/vendor/local/lib/gobject-introspection/giscanner/collections/counter.pyo +0 -0
  40. data/vendor/local/lib/gobject-introspection/giscanner/collections/ordereddict.pyc +0 -0
  41. data/vendor/local/lib/gobject-introspection/giscanner/collections/ordereddict.pyo +0 -0
  42. data/vendor/local/lib/gobject-introspection/giscanner/docmain.pyc +0 -0
  43. data/vendor/local/lib/gobject-introspection/giscanner/docmain.pyo +0 -0
  44. data/vendor/local/lib/gobject-introspection/giscanner/docwriter.pyc +0 -0
  45. data/vendor/local/lib/gobject-introspection/giscanner/docwriter.pyo +0 -0
  46. data/vendor/local/lib/gobject-introspection/giscanner/dumper.py +8 -7
  47. data/vendor/local/lib/gobject-introspection/giscanner/dumper.pyc +0 -0
  48. data/vendor/local/lib/gobject-introspection/giscanner/dumper.pyo +0 -0
  49. data/vendor/local/lib/gobject-introspection/giscanner/gdumpparser.pyc +0 -0
  50. data/vendor/local/lib/gobject-introspection/giscanner/gdumpparser.pyo +0 -0
  51. data/vendor/local/lib/gobject-introspection/giscanner/girparser.pyc +0 -0
  52. data/vendor/local/lib/gobject-introspection/giscanner/girparser.pyo +0 -0
  53. data/vendor/local/lib/gobject-introspection/giscanner/girwriter.py +1 -1
  54. data/vendor/local/lib/gobject-introspection/giscanner/girwriter.pyc +0 -0
  55. data/vendor/local/lib/gobject-introspection/giscanner/girwriter.pyo +0 -0
  56. data/vendor/local/lib/gobject-introspection/giscanner/introspectablepass.pyc +0 -0
  57. data/vendor/local/lib/gobject-introspection/giscanner/introspectablepass.pyo +0 -0
  58. data/vendor/local/lib/gobject-introspection/giscanner/libtoolimporter.pyc +0 -0
  59. data/vendor/local/lib/gobject-introspection/giscanner/libtoolimporter.pyo +0 -0
  60. data/vendor/local/lib/gobject-introspection/giscanner/maintransformer.pyc +0 -0
  61. data/vendor/local/lib/gobject-introspection/giscanner/maintransformer.pyo +0 -0
  62. data/vendor/local/lib/gobject-introspection/giscanner/message.pyc +0 -0
  63. data/vendor/local/lib/gobject-introspection/giscanner/message.pyo +0 -0
  64. data/vendor/local/lib/gobject-introspection/giscanner/msvccompiler.pyc +0 -0
  65. data/vendor/local/lib/gobject-introspection/giscanner/msvccompiler.pyo +0 -0
  66. data/vendor/local/lib/gobject-introspection/giscanner/scannermain.py +3 -0
  67. data/vendor/local/lib/gobject-introspection/giscanner/scannermain.pyc +0 -0
  68. data/vendor/local/lib/gobject-introspection/giscanner/scannermain.pyo +0 -0
  69. data/vendor/local/lib/gobject-introspection/giscanner/sectionparser.pyc +0 -0
  70. data/vendor/local/lib/gobject-introspection/giscanner/sectionparser.pyo +0 -0
  71. data/vendor/local/lib/gobject-introspection/giscanner/shlibs.pyc +0 -0
  72. data/vendor/local/lib/gobject-introspection/giscanner/shlibs.pyo +0 -0
  73. data/vendor/local/lib/gobject-introspection/giscanner/sourcescanner.pyc +0 -0
  74. data/vendor/local/lib/gobject-introspection/giscanner/sourcescanner.pyo +0 -0
  75. data/vendor/local/lib/gobject-introspection/giscanner/testcodegen.pyc +0 -0
  76. data/vendor/local/lib/gobject-introspection/giscanner/testcodegen.pyo +0 -0
  77. data/vendor/local/lib/gobject-introspection/giscanner/transformer.py +1 -6
  78. data/vendor/local/lib/gobject-introspection/giscanner/transformer.pyc +0 -0
  79. data/vendor/local/lib/gobject-introspection/giscanner/transformer.pyo +0 -0
  80. data/vendor/local/lib/gobject-introspection/giscanner/utils.pyc +0 -0
  81. data/vendor/local/lib/gobject-introspection/giscanner/utils.pyo +0 -0
  82. data/vendor/local/lib/gobject-introspection/giscanner/xmlwriter.pyc +0 -0
  83. data/vendor/local/lib/gobject-introspection/giscanner/xmlwriter.pyo +0 -0
  84. data/vendor/local/lib/libgirepository-1.0.a +0 -0
  85. data/vendor/local/lib/libgirepository-1.0.dll.a +0 -0
  86. data/vendor/local/lib/pkgconfig/gobject-introspection-1.0.pc +1 -1
  87. data/vendor/local/lib/pkgconfig/gobject-introspection-no-export-1.0.pc +1 -1
  88. data/vendor/local/share/gir-1.0/GIRepository-2.0.gir +18 -6
  89. data/vendor/local/share/gir-1.0/GLib-2.0.gir +186 -61
  90. data/vendor/local/share/gir-1.0/GObject-2.0.gir +565 -389
  91. data/vendor/local/share/gir-1.0/Gio-2.0.gir +921 -57
  92. data/vendor/local/share/gobject-introspection-1.0/Makefile.introspection +4 -0
  93. data/vendor/local/share/gobject-introspection-1.0/tests/gimarshallingtests.c +262 -0
  94. data/vendor/local/share/gobject-introspection-1.0/tests/gimarshallingtests.h +45 -1
  95. data/vendor/local/share/gobject-introspection-1.0/tests/regress.c +37 -0
  96. data/vendor/local/share/gobject-introspection-1.0/tests/regress.h +4 -0
  97. metadata +5 -5
@@ -16,6 +16,13 @@
16
16
 
17
17
  module GObjectIntrospection
18
18
  class Repository
19
+ class << self
20
+ alias_method :default_raw, :default
21
+ def default
22
+ @@default ||= default_raw
23
+ end
24
+ end
25
+
19
26
  include Enumerable
20
27
 
21
28
  def each(*namespaces)
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2012 Ruby-GNOME2 Project Team
1
+ # Copyright (C) 2012-2017 Ruby-GNOME2 Project Team
2
2
  #
3
3
  # This library is free software; you can redistribute it and/or
4
4
  # modify it under the terms of the GNU Lesser General Public
@@ -16,6 +16,38 @@
16
16
 
17
17
  class TestUnionInfo < Test::Unit::TestCase
18
18
  def setup
19
- # TODO: find UnionInfo
19
+ @repository = GObjectIntrospection::Repository.default
20
+ @repository.require("GLib")
21
+ @info = @repository.find("GLib", "Mutex")
22
+ end
23
+
24
+ def test_n_fields
25
+ assert_equal(2, @info.n_fields)
26
+ end
27
+
28
+ def test_get_field
29
+ assert_kind_of(GObjectIntrospection::FieldInfo,
30
+ @info.get_field(0))
31
+ end
32
+
33
+ def test_n_methods
34
+ assert_operator(@info.n_methods, :>=, 5)
35
+ end
36
+
37
+ def test_get_method
38
+ assert_kind_of(GObjectIntrospection::FunctionInfo,
39
+ @info.get_method(0))
40
+ end
41
+
42
+ def test_size
43
+ assert_operator(@info.size, :>=, 8)
44
+ end
45
+
46
+ def test_alignment
47
+ assert_operator(@info.alignment, :>=, 8)
48
+ end
49
+
50
+ def test_discriminated
51
+ assert_false(@info.discriminated?)
20
52
  end
21
53
  end
Binary file
Binary file
Binary file
@@ -19,6 +19,7 @@
19
19
  #
20
20
 
21
21
  import os
22
+ import shlex
22
23
  import subprocess
23
24
  import tempfile
24
25
 
@@ -108,14 +109,14 @@ class CCompiler(object):
108
109
 
109
110
  self._cflags_no_deprecation_warnings = "-Wno-deprecated-declarations"
110
111
 
111
- def get_internal_link_flags(self, args, libtool, libraries, libpaths):
112
+ def get_internal_link_flags(self, args, libtool, libraries, extra_libraries, libpaths):
112
113
  # An "internal" link is where the library to be introspected
113
114
  # is being built in the current directory.
114
115
 
115
116
  if not libtool:
116
117
  # non-libtool case: prepare distutils use
117
118
  if self.check_is_msvc():
118
- for library in libraries:
119
+ for library in libraries + extra_libraries:
119
120
  # MSVC Builds don't use libtool, so no .la libraries,
120
121
  # so just add the library directly.
121
122
  self.compiler.add_library(library)
@@ -136,7 +137,7 @@ class CCompiler(object):
136
137
  if sys.platform != 'darwin':
137
138
  args.append('-Wl,--no-as-needed')
138
139
 
139
- for library in libraries:
140
+ for library in libraries + extra_libraries:
140
141
  self.compiler.add_library(library)
141
142
  if not self.check_is_msvc():
142
143
  for library_path in libpaths:
@@ -213,7 +214,7 @@ class CCompiler(object):
213
214
  # This is to handle the case where macros are defined in CFLAGS
214
215
  cflags = os.environ.get('CFLAGS')
215
216
  if cflags:
216
- for i, cflag in enumerate(cflags.split()):
217
+ for i, cflag in enumerate(shlex.split(cflags)):
217
218
  if cflag.startswith('-D'):
218
219
  stridx = cflag.find('=')
219
220
  if stridx > -1:
@@ -26,6 +26,7 @@ from __future__ import unicode_literals
26
26
 
27
27
  import os
28
28
  import sys
29
+ import shlex
29
30
  import subprocess
30
31
  import shutil
31
32
  import tempfile
@@ -232,15 +233,10 @@ class DumpCompiler(object):
232
233
  # MSVC Builds use the INCLUDE, LIB envvars,
233
234
  # which are automatically picked up during
234
235
  # compilation and linking
235
- cppflags = os.environ.get('CPPFLAGS', '')
236
- for cppflag in cppflags.split():
236
+ for cppflag in shlex.split(os.environ.get('CPPFLAGS', '')):
237
237
  args.append(cppflag)
238
- cflags = os.environ.get('CFLAGS', '')
239
- for cflag in cflags.split():
238
+ for cflag in shlex.split(os.environ.get('CFLAGS', '')):
240
239
  args.append(cflag)
241
- ldflags = os.environ.get('LDFLAGS', '')
242
- for ldflag in ldflags.split():
243
- args.append(ldflag)
244
240
 
245
241
  # Make sure to list the library to be introspected first since it's
246
242
  # likely to be uninstalled yet and we want the uninstalled RPATHs have
@@ -259,6 +255,7 @@ class DumpCompiler(object):
259
255
  self._compiler.get_internal_link_flags(args,
260
256
  libtool,
261
257
  self._options.libraries,
258
+ self._options.extra_libraries,
262
259
  self._options.library_paths)
263
260
  args.extend(pkg_config_libs)
264
261
 
@@ -268,6 +265,10 @@ class DumpCompiler(object):
268
265
  libtool,
269
266
  self._options.libraries)
270
267
 
268
+ if not self._compiler.check_is_msvc():
269
+ for ldflag in shlex.split(os.environ.get('LDFLAGS', '')):
270
+ args.append(ldflag)
271
+
271
272
  if not libtool:
272
273
  # non-libtool: prepare distutils for linking the introspection
273
274
  # dumper program...
@@ -276,7 +276,7 @@ class GIRWriter(XMLWriter):
276
276
  assert isinstance(ntype, ast.Type), ntype
277
277
  attrs = []
278
278
  if ntype.ctype:
279
- attrs.append(('c:type', ntype.ctype))
279
+ attrs.append(('c:type', ntype.complete_ctype or ntype.ctype))
280
280
  if isinstance(ntype, ast.Array):
281
281
  if ntype.array_type != ast.Array.C:
282
282
  attrs.insert(0, ('name', ntype.array_type))
@@ -140,6 +140,9 @@ def _get_option_parser():
140
140
  parser.add_option("-l", "--library",
141
141
  action="append", dest="libraries", default=[],
142
142
  help="libraries of this unit")
143
+ parser.add_option("", "--extra-library",
144
+ action="append", dest="extra_libraries", default=[],
145
+ help="Extra libraries to link the binary against")
143
146
  parser.add_option("-L", "--library-path",
144
147
  action="append", dest="library_paths", default=[],
145
148
  help="directories to search for libraries")
@@ -613,12 +613,7 @@ raise ValueError."""
613
613
  CTYPE_BASIC_TYPE,
614
614
  CTYPE_VOID):
615
615
  name = self.strip_identifier(symbol.ident)
616
- if symbol.base_type.name:
617
- complete_ctype = self._create_complete_source_type(symbol.base_type)
618
- target = self.create_type_from_ctype_string(symbol.base_type.name,
619
- complete_ctype=complete_ctype)
620
- else:
621
- target = ast.TYPE_ANY
616
+ target = self._create_type_from_base(symbol.base_type)
622
617
  if name in ast.type_names:
623
618
  return None
624
619
  # https://bugzilla.gnome.org/show_bug.cgi?id=755882
Binary file
@@ -21,4 +21,4 @@ Libs.private:
21
21
 
22
22
  Name: gobject-introspection
23
23
  Description: GObject Introspection
24
- Version: 1.50.0
24
+ Version: 1.52.1
@@ -20,4 +20,4 @@ Libs.private:
20
20
 
21
21
  Name: gobject-introspection
22
22
  Description: GObject Introspection
23
- Version: 1.50.0
23
+ Version: 1.52.1
@@ -1854,7 +1854,9 @@ g_base_info_unref() when done.</doc>
1854
1854
  </parameter>
1855
1855
  <parameter name="in_args" transfer-ownership="none">
1856
1856
  <doc xml:space="preserve">TODO</doc>
1857
- <type name="Argument" c:type="const GIArgument*"/>
1857
+ <array length="3" zero-terminated="0" c:type="GIArgument*">
1858
+ <type name="Argument" c:type="GIArgument"/>
1859
+ </array>
1858
1860
  </parameter>
1859
1861
  <parameter name="n_in_args" transfer-ownership="none">
1860
1862
  <doc xml:space="preserve">TODO</doc>
@@ -1862,7 +1864,9 @@ g_base_info_unref() when done.</doc>
1862
1864
  </parameter>
1863
1865
  <parameter name="out_args" transfer-ownership="none">
1864
1866
  <doc xml:space="preserve">TODO</doc>
1865
- <type name="Argument" c:type="const GIArgument*"/>
1867
+ <array length="5" zero-terminated="0" c:type="GIArgument*">
1868
+ <type name="Argument" c:type="GIArgument"/>
1869
+ </array>
1866
1870
  </parameter>
1867
1871
  <parameter name="n_out_args" transfer-ownership="none">
1868
1872
  <doc xml:space="preserve">TODO</doc>
@@ -2397,7 +2401,9 @@ have been g_module_symbol()&lt;!-- --&gt;ed before calling this function.</doc>
2397
2401
  <doc xml:space="preserve">an array of #GIArgument&lt;!-- --&gt;s, one for each in
2398
2402
  parameter of @info. If there are no in parameter, @in_args
2399
2403
  can be %NULL</doc>
2400
- <type name="Argument" c:type="const GIArgument*"/>
2404
+ <array length="2" zero-terminated="0" c:type="GIArgument*">
2405
+ <type name="Argument" c:type="GIArgument"/>
2406
+ </array>
2401
2407
  </parameter>
2402
2408
  <parameter name="n_in_args" transfer-ownership="none">
2403
2409
  <doc xml:space="preserve">the length of the @in_args array</doc>
@@ -2407,7 +2413,9 @@ have been g_module_symbol()&lt;!-- --&gt;ed before calling this function.</doc>
2407
2413
  <doc xml:space="preserve">an array of #GIArgument&lt;!-- --&gt;s, one for each out
2408
2414
  parameter of @info. If there are no out parameters, @out_args
2409
2415
  may be %NULL</doc>
2410
- <type name="Argument" c:type="const GIArgument*"/>
2416
+ <array length="4" zero-terminated="0" c:type="GIArgument*">
2417
+ <type name="Argument" c:type="GIArgument"/>
2418
+ </array>
2411
2419
  </parameter>
2412
2420
  <parameter name="n_out_args" transfer-ownership="none">
2413
2421
  <doc xml:space="preserve">the length of the @out_args array</doc>
@@ -4101,7 +4109,9 @@ argument lists.</doc>
4101
4109
  <doc xml:space="preserve">an array of #GIArgument&lt;!-- --&gt;s, one for each in
4102
4110
  parameter of @info. If there are no in parameter, @in_args
4103
4111
  can be %NULL</doc>
4104
- <type name="Argument" c:type="const GIArgument*"/>
4112
+ <array length="3" zero-terminated="0" c:type="GIArgument*">
4113
+ <type name="Argument" c:type="GIArgument"/>
4114
+ </array>
4105
4115
  </parameter>
4106
4116
  <parameter name="n_in_args" transfer-ownership="none">
4107
4117
  <doc xml:space="preserve">the length of the @in_args array</doc>
@@ -4111,7 +4121,9 @@ argument lists.</doc>
4111
4121
  <doc xml:space="preserve">an array of #GIArgument&lt;!-- --&gt;s, one for each out
4112
4122
  parameter of @info. If there are no out parameters, @out_args
4113
4123
  may be %NULL</doc>
4114
- <type name="Argument" c:type="const GIArgument*"/>
4124
+ <array length="5" zero-terminated="0" c:type="GIArgument*">
4125
+ <type name="Argument" c:type="GIArgument"/>
4126
+ </array>
4115
4127
  </parameter>
4116
4128
  <parameter name="n_out_args" transfer-ownership="none">
4117
4129
  <doc xml:space="preserve">the length of the @out_args array</doc>
@@ -26,7 +26,7 @@ allowed. The year is represented with four digits.</doc>
26
26
  </alias>
27
27
  <alias name="MutexLocker" c:type="GMutexLocker">
28
28
  <doc xml:space="preserve">Opaque type. See g_mutex_locker_new() for details.</doc>
29
- <type name="gpointer" c:type="gpointer"/>
29
+ <type name="none" c:type="void"/>
30
30
  </alias>
31
31
  <alias name="Pid" c:type="GPid">
32
32
  <doc xml:space="preserve">A type which is used to hold a process identification.
@@ -36,7 +36,7 @@ while Windows uses process handles (which are pointers).
36
36
 
37
37
  GPid is used in GLib only for descendant processes spawned with
38
38
  the g_spawn functions.</doc>
39
- <type name="gpointer" c:type="gpointer"/>
39
+ <type name="gpointer" c:type="void*"/>
40
40
  </alias>
41
41
  <alias name="Quark" c:type="GQuark">
42
42
  <doc xml:space="preserve">A GQuark is a non-zero integer which uniquely identifies a
@@ -46,7 +46,7 @@ particular string. A GQuark value of zero is associated to %NULL.</doc>
46
46
  <alias name="Strv" c:type="GStrv">
47
47
  <doc xml:space="preserve">A typedef alias for gchar**. This is mostly useful when used together with
48
48
  g_auto().</doc>
49
- <type name="gpointer" c:type="gpointer"/>
49
+ <type name="utf8" c:type="gchar**"/>
50
50
  </alias>
51
51
  <alias name="Time" c:type="GTime">
52
52
  <doc xml:space="preserve">Simply a replacement for time_t. It has been deprecated
@@ -3361,6 +3361,9 @@ date to include new hashing algorithm types.</doc>
3361
3361
  <member name="sha512" value="3" c:identifier="G_CHECKSUM_SHA512">
3362
3362
  <doc xml:space="preserve">Use the SHA-512 hashing algorithm (Since: 2.36)</doc>
3363
3363
  </member>
3364
+ <member name="sha384" value="4" c:identifier="G_CHECKSUM_SHA384">
3365
+ <doc xml:space="preserve">Use the SHA-384 hashing algorithm (Since: 2.51)</doc>
3366
+ </member>
3364
3367
  </enumeration>
3365
3368
  <callback name="ChildWatchFunc" c:type="GChildWatchFunc">
3366
3369
  <doc xml:space="preserve">Prototype of a #GChildWatchSource callback, called when a child
@@ -7413,7 +7416,9 @@ The g_direct_equal(), g_int_equal(), g_int64_equal(), g_double_equal()
7413
7416
  and g_str_equal() functions are provided for the most common types
7414
7417
  of keys. If @key_equal_func is %NULL, keys are compared directly in
7415
7418
  a similar fashion to g_direct_equal(), but without the overhead of
7416
- a function call.</doc>
7419
+ a function call. @key_equal_func is called with the key from the hash table
7420
+ as its first parameter, and the user-provided key to check against as
7421
+ its second.</doc>
7417
7422
  <return-value>
7418
7423
  <doc xml:space="preserve">a new #GHashTable</doc>
7419
7424
  <type name="GLib.HashTable" c:type="GHashTable*">
@@ -7444,7 +7449,7 @@ Since version 2.42 it is permissible for destroy notify functions to
7444
7449
  recursively remove further items from the hash table. This is only
7445
7450
  permissible if the application still holds a reference to the hash table.
7446
7451
  This means that you may need to ensure that the hash table is empty by
7447
- calling g_hash_table_remove_all before releasing the last reference using
7452
+ calling g_hash_table_remove_all() before releasing the last reference using
7448
7453
  g_hash_table_unref().</doc>
7449
7454
  <return-value>
7450
7455
  <doc xml:space="preserve">a new #GHashTable</doc>
@@ -8007,7 +8012,8 @@ g_hmac_get_digest() have been called on a #GHmac, the HMAC
8007
8012
  will be closed and it won't be possible to call g_hmac_update()
8008
8013
  on it anymore.
8009
8014
 
8010
- Support for digests of type %G_CHECKSUM_SHA512 has been added in GLib 2.42.</doc>
8015
+ Support for digests of type %G_CHECKSUM_SHA512 has been added in GLib 2.42.
8016
+ Support for %G_CHECKSUM_SHA384 was added in GLib 2.52.</doc>
8011
8017
  <return-value>
8012
8018
  <doc xml:space="preserve">the newly created #GHmac, or %NULL.
8013
8019
  Use g_hmac_unref() to free the memory allocated by it.</doc>
@@ -10685,7 +10691,8 @@ integer.
10685
10691
 
10686
10692
  If @key cannot be found then 0 is returned and @error is set to
10687
10693
  #G_KEY_FILE_ERROR_KEY_NOT_FOUND. Likewise, if the value associated
10688
- with @key cannot be interpreted as an integer then 0 is returned
10694
+ with @key cannot be interpreted as an integer, or is out of range
10695
+ for a #gint, then 0 is returned
10689
10696
  and @error is set to #G_KEY_FILE_ERROR_INVALID_VALUE.</doc>
10690
10697
  <return-value transfer-ownership="none">
10691
10698
  <doc xml:space="preserve">the value associated with the key as an integer, or
@@ -10716,7 +10723,8 @@ integers.
10716
10723
 
10717
10724
  If @key cannot be found then %NULL is returned and @error is set to
10718
10725
  #G_KEY_FILE_ERROR_KEY_NOT_FOUND. Likewise, if the values associated
10719
- with @key cannot be interpreted as integers then %NULL is returned
10726
+ with @key cannot be interpreted as integers, or are out of range for
10727
+ #gint, then %NULL is returned
10720
10728
  and @error is set to #G_KEY_FILE_ERROR_INVALID_VALUE.</doc>
10721
10729
  <return-value transfer-ownership="container">
10722
10730
  <doc xml:space="preserve">
@@ -11176,9 +11184,13 @@ set to either a #GFileError or #GKeyFileError.</doc>
11176
11184
  throws="1">
11177
11185
  <doc xml:space="preserve">This function looks for a key file named @file in the paths
11178
11186
  specified in @search_dirs, loads the file into @key_file and
11179
- returns the file's full path in @full_path. If the file could not
11180
- be loaded then an %error is set to either a #GFileError or
11181
- #GKeyFileError.</doc>
11187
+ returns the file's full path in @full_path.
11188
+
11189
+ If the file could not be found in any of the @search_dirs,
11190
+ %G_KEY_FILE_ERROR_NOT_FOUND is returned. If
11191
+ the file is found but the OS returns an error when opening or reading the
11192
+ file, a %G_FILE_ERROR is returned. If there is a problem parsing the file, a
11193
+ %G_KEY_FILE_ERROR is returned.</doc>
11182
11194
  <return-value transfer-ownership="none">
11183
11195
  <doc xml:space="preserve">%TRUE if a key file could be loaded, %FALSE otherwise</doc>
11184
11196
  <type name="gboolean" c:type="gboolean"/>
@@ -11219,8 +11231,13 @@ be loaded then an %error is set to either a #GFileError or
11219
11231
  version="2.6"
11220
11232
  throws="1">
11221
11233
  <doc xml:space="preserve">Loads a key file into an empty #GKeyFile structure.
11222
- If the file could not be loaded then @error is set to
11223
- either a #GFileError or #GKeyFileError.</doc>
11234
+
11235
+ If the OS returns an error when opening or reading the file, a
11236
+ %G_FILE_ERROR is returned. If there is a problem parsing the file, a
11237
+ %G_KEY_FILE_ERROR is returned.
11238
+
11239
+ This function will never return a %G_KEY_FILE_ERROR_NOT_FOUND error. If the
11240
+ @file is not found, %G_FILE_ERROR_NOENT is returned.</doc>
11224
11241
  <return-value transfer-ownership="none">
11225
11242
  <doc xml:space="preserve">%TRUE if a key file could be loaded, %FALSE otherwise</doc>
11226
11243
  <type name="gboolean" c:type="gboolean"/>
@@ -13075,7 +13092,7 @@ linked against at application run time.</doc>
13075
13092
  <doc xml:space="preserve">The maximum value which can be held in a #guint8.</doc>
13076
13093
  <type name="guint8" c:type="guint8"/>
13077
13094
  </constant>
13078
- <constant name="MICRO_VERSION" value="2" c:type="GLIB_MICRO_VERSION">
13095
+ <constant name="MICRO_VERSION" value="1" c:type="GLIB_MICRO_VERSION">
13079
13096
  <doc xml:space="preserve">The micro version number of the GLib library.
13080
13097
 
13081
13098
  Like #gtk_micro_version, but from the headers used at
@@ -13102,7 +13119,7 @@ linked against at application run time.</doc>
13102
13119
  <doc xml:space="preserve">The minimum value which can be held in a #gint8.</doc>
13103
13120
  <type name="gint8" c:type="gint8"/>
13104
13121
  </constant>
13105
- <constant name="MINOR_VERSION" value="50" c:type="GLIB_MINOR_VERSION">
13122
+ <constant name="MINOR_VERSION" value="52" c:type="GLIB_MINOR_VERSION">
13106
13123
  <doc xml:space="preserve">The minor version number of the GLib library.
13107
13124
 
13108
13125
  Like #gtk_minor_version, but from the headers used at
@@ -13185,7 +13202,7 @@ You must have successfully acquired the context with
13185
13202
  g_main_context_acquire() before you may call this function.</doc>
13186
13203
  <return-value transfer-ownership="none">
13187
13204
  <doc xml:space="preserve">%TRUE if some sources are ready to be dispatched.</doc>
13188
- <type name="gint" c:type="gint"/>
13205
+ <type name="gboolean" c:type="gboolean"/>
13189
13206
  </return-value>
13190
13207
  <parameters>
13191
13208
  <instance-parameter name="context" transfer-ownership="none">
@@ -16508,18 +16525,14 @@ arguments.</doc>
16508
16525
  <parameter name="argc"
16509
16526
  direction="inout"
16510
16527
  caller-allocates="0"
16511
- transfer-ownership="full"
16512
- nullable="1"
16513
- allow-none="1">
16528
+ transfer-ownership="full">
16514
16529
  <doc xml:space="preserve">a pointer to the number of command line arguments</doc>
16515
16530
  <type name="gint" c:type="gint*"/>
16516
16531
  </parameter>
16517
16532
  <parameter name="argv"
16518
16533
  direction="inout"
16519
16534
  caller-allocates="0"
16520
- transfer-ownership="full"
16521
- nullable="1"
16522
- allow-none="1">
16535
+ transfer-ownership="full">
16523
16536
  <doc xml:space="preserve">a pointer to the array of command line arguments</doc>
16524
16537
  <array length="0" zero-terminated="0" c:type="gchar***">
16525
16538
  <type name="utf8" c:type="gchar**"/>
@@ -24058,7 +24071,13 @@ idle_callback (gpointer data)
24058
24071
 
24059
24072
  return FALSE;
24060
24073
  }
24061
- ]|</doc>
24074
+ ]|
24075
+
24076
+ Calls to this function from a thread other than the one acquired by the
24077
+ #GMainContext the #GSource is attached to are typically redundant, as the
24078
+ source could be destroyed immediately after this function returns. However,
24079
+ once a source is destroyed it cannot be un-destroyed, so this function can be
24080
+ used for opportunistic checks from any thread.</doc>
24062
24081
  <return-value transfer-ownership="none">
24063
24082
  <doc xml:space="preserve">%TRUE if the source has been destroyed</doc>
24064
24083
  <type name="gboolean" c:type="gboolean"/>
@@ -24313,6 +24332,9 @@ other suggests that it would be delivered first, and the ready time
24313
24332
  for both sources is reached during the same main context iteration
24314
24333
  then the order of dispatch is undefined.
24315
24334
 
24335
+ It is a no-op to call this function on a #GSource which has already been
24336
+ destroyed with g_source_destroy().
24337
+
24316
24338
  This API is only intended to be used by implementations of #GSource.
24317
24339
  Do not call this API on a #GSource that you did not create.</doc>
24318
24340
  <return-value transfer-ownership="none">
@@ -25718,7 +25740,7 @@ These two options correspond rather directly to the 'dist' and
25718
25740
  'built' terminology that automake uses and are explicitly used to
25719
25741
  distinguish between the 'srcdir' and 'builddir' being separate. All
25720
25742
  files in your project should either be dist (in the
25721
- `DIST_EXTRA` or `dist_schema_DATA`
25743
+ `EXTRA_DIST` or `dist_schema_DATA`
25722
25744
  sense, in which case they will always be in the srcdir) or built (in
25723
25745
  the `BUILT_SOURCES` sense, in which case they will
25724
25746
  always be in the builddir).
@@ -27956,7 +27978,7 @@ This macro is provided for code readability.</doc>
27956
27978
  Since new unicode versions may add new types here, applications should be ready
27957
27979
  to handle unknown values. They may be regarded as %G_UNICODE_BREAK_UNKNOWN.
27958
27980
 
27959
- See &lt;ulink url="http://www.unicode.org/unicode/reports/tr14/"&gt;http://www.unicode.org/unicode/reports/tr14/&lt;/ulink&gt;.</doc>
27981
+ See [Unicode Line Breaking Algorithm](http://www.unicode.org/unicode/reports/tr14/).</doc>
27960
27982
  <member name="mandatory"
27961
27983
  value="0"
27962
27984
  c:identifier="G_UNICODE_BREAK_MANDATORY">
@@ -28163,9 +28185,7 @@ and is interchangeable with #PangoScript.
28163
28185
 
28164
28186
  Note that new types may be added in the future. Applications
28165
28187
  should be ready to handle unknown values.
28166
- See &lt;ulink
28167
- url="http://www.unicode.org/reports/tr24/"&gt;Unicode Standard Annex
28168
- #24: Script names&lt;/ulink&gt;.</doc>
28188
+ See [Unicode Standard Annex #24: Script names](http://www.unicode.org/reports/tr24/).</doc>
28169
28189
  <member name="invalid_code"
28170
28190
  value="-1"
28171
28191
  c:identifier="G_UNICODE_SCRIPT_INVALID_CODE">
@@ -28766,7 +28786,7 @@ url="http://www.unicode.org/reports/tr24/"&gt;Unicode Standard Annex
28766
28786
  <enumeration name="UnicodeType" c:type="GUnicodeType">
28767
28787
  <doc xml:space="preserve">These are the possible character classifications from the
28768
28788
  Unicode specification.
28769
- See &lt;ulink url="http://www.unicode.org/reports/tr44/#General_Category_Values"&gt;Unicode Character Database&lt;/unlink&gt;.</doc>
28789
+ See [Unicode Character Database](http://www.unicode.org/reports/tr44/#General_Category_Values).</doc>
28770
28790
  <member name="control" value="0" c:identifier="G_UNICODE_CONTROL">
28771
28791
  <doc xml:space="preserve">General category "Other, Control" (Cc)</doc>
28772
28792
  </member>
@@ -30661,11 +30681,11 @@ the appropriate type:
30661
30681
  - %G_VARIANT_TYPE_DOUBLE: #gdouble
30662
30682
 
30663
30683
  For example, if calling this function for an array of 32-bit integers,
30664
- you might say sizeof(gint32). This value isn't used except for the purpose
30684
+ you might say `sizeof(gint32)`. This value isn't used except for the purpose
30665
30685
  of a double-check that the form of the serialised data matches the caller's
30666
30686
  expectation.
30667
30687
 
30668
- @n_elements, which must be non-%NULL is set equal to the number of
30688
+ @n_elements, which must be non-%NULL, is set equal to the number of
30669
30689
  items in the array.</doc>
30670
30690
  <return-value transfer-ownership="none">
30671
30691
  <doc xml:space="preserve">a pointer to
@@ -31996,11 +32016,41 @@ this function.</doc>
31996
32016
  </method>
31997
32017
  <method name="open" c:identifier="g_variant_builder_open" version="2.24">
31998
32018
  <doc xml:space="preserve">Opens a subcontainer inside the given @builder. When done adding
31999
- items to the subcontainer, g_variant_builder_close() must be called.
32019
+ items to the subcontainer, g_variant_builder_close() must be called. @type
32020
+ is the type of the container: so to build a tuple of several values, @type
32021
+ must include the tuple itself.
32000
32022
 
32001
32023
  It is an error to call this function in any way that would cause an
32002
32024
  inconsistent value to be constructed (ie: adding too many values or
32003
- a value of an incorrect type).</doc>
32025
+ a value of an incorrect type).
32026
+
32027
+ Example of building a nested variant:
32028
+ |[&lt;!-- language="C" --&gt;
32029
+ GVariantBuilder builder;
32030
+ guint32 some_number = get_number ();
32031
+ g_autoptr (GHashTable) some_dict = get_dict ();
32032
+ GHashTableIter iter;
32033
+ const gchar *key;
32034
+ const GVariant *value;
32035
+ g_autoptr (GVariant) output = NULL;
32036
+
32037
+ g_variant_builder_init (&amp;builder, G_VARIANT_TYPE ("(ua{sv})"));
32038
+ g_variant_builder_add (&amp;builder, "u", some_number);
32039
+ g_variant_builder_open (&amp;builder, G_VARIANT_TYPE ("a{sv}"));
32040
+
32041
+ g_hash_table_iter_init (&amp;iter, some_dict);
32042
+ while (g_hash_table_iter_next (&amp;iter, (gpointer *) &amp;key, (gpointer *) &amp;value))
32043
+ {
32044
+ g_variant_builder_open (&amp;builder, G_VARIANT_TYPE ("{sv}"));
32045
+ g_variant_builder_add (&amp;builder, "s", key);
32046
+ g_variant_builder_add (&amp;builder, "v", value);
32047
+ g_variant_builder_close (&amp;builder);
32048
+ }
32049
+
32050
+ g_variant_builder_close (&amp;builder);
32051
+
32052
+ output = g_variant_builder_end (&amp;builder);
32053
+ ]|</doc>
32004
32054
  <return-value transfer-ownership="none">
32005
32055
  <type name="none" c:type="void"/>
32006
32056
  </return-value>
@@ -32010,7 +32060,7 @@ a value of an incorrect type).</doc>
32010
32060
  <type name="VariantBuilder" c:type="GVariantBuilder*"/>
32011
32061
  </instance-parameter>
32012
32062
  <parameter name="type" transfer-ownership="none">
32013
- <doc xml:space="preserve">a #GVariantType</doc>
32063
+ <doc xml:space="preserve">the #GVariantType of the container</doc>
32014
32064
  <type name="VariantType" c:type="const GVariantType*"/>
32015
32065
  </parameter>
32016
32066
  </parameters>
@@ -34923,7 +34973,9 @@ representation.</doc>
34923
34973
 
34924
34974
  The output buffer must be large enough to fit all the data that will
34925
34975
  be written to it. It will need up to 4 bytes, or up to 5 bytes if
34926
- line-breaking is enabled.</doc>
34976
+ line-breaking is enabled.
34977
+
34978
+ The @out array will not be automatically nul-terminated.</doc>
34927
34979
  <return-value transfer-ownership="none">
34928
34980
  <doc xml:space="preserve">The number of bytes of output that was written</doc>
34929
34981
  <type name="gsize" c:type="gsize"/>
@@ -37334,8 +37386,7 @@ codes are those in the #GFileError enumeration. In the error case,
37334
37386
  direction="out"
37335
37387
  caller-allocates="0"
37336
37388
  transfer-ownership="full"
37337
- optional="1"
37338
- allow-none="1">
37389
+ nullable="1">
37339
37390
  <doc xml:space="preserve">location to store length in bytes of the contents, or %NULL</doc>
37340
37391
  <type name="gsize" c:type="gsize*"/>
37341
37392
  </parameter>
@@ -37640,11 +37691,9 @@ encoding used for filenames.</doc>
37640
37691
  direction="out"
37641
37692
  caller-allocates="0"
37642
37693
  transfer-ownership="full"
37643
- nullable="1"
37644
37694
  optional="1"
37645
37695
  allow-none="1">
37646
- <doc xml:space="preserve">Location to store hostname for the
37647
- URI.
37696
+ <doc xml:space="preserve">Location to store hostname for the URI.
37648
37697
  If there is no hostname in the URI, %NULL will be
37649
37698
  stored in this location.</doc>
37650
37699
  <type name="utf8" c:type="gchar**"/>
@@ -41072,18 +41121,25 @@ created. Returns -1 if an error occurred, with errno set.</doc>
41072
41121
  </parameter>
41073
41122
  </parameters>
41074
41123
  </function>
41075
- <function name="mkdtemp" c:identifier="g_mkdtemp" version="2.30">
41124
+ <function name="mkdtemp"
41125
+ c:identifier="g_mkdtemp"
41126
+ version="2.30"
41127
+ introspectable="0">
41076
41128
  <doc xml:space="preserve">Creates a temporary directory. See the mkdtemp() documentation
41077
41129
  on most UNIX-like systems.
41078
41130
 
41079
41131
  The parameter is a string that should follow the rules for
41080
41132
  mkdtemp() templates, i.e. contain the string "XXXXXX".
41081
41133
  g_mkdtemp() is slightly more flexible than mkdtemp() in that the
41082
- sequence does not have to occur at the very end of the template
41083
- and you can pass a @mode and additional @flags. The X string will
41084
- be modified to form the name of a directory that didn't exist.
41134
+ sequence does not have to occur at the very end of the template.
41135
+ The X string will be modified to form the name of a directory that
41136
+ didn't exist.
41085
41137
  The string should be in the GLib file name encoding. Most importantly,
41086
- on Windows it should be in UTF-8.</doc>
41138
+ on Windows it should be in UTF-8.
41139
+
41140
+ If you are going to be creating a temporary directory inside the
41141
+ directory returned by g_get_tmp_dir(), you might want to use
41142
+ g_dir_make_tmp() instead.</doc>
41087
41143
  <return-value transfer-ownership="full" nullable="1">
41088
41144
  <doc xml:space="preserve">A pointer to @tmpl, which has been
41089
41145
  modified to hold the directory name. In case of errors, %NULL is
@@ -41097,18 +41153,25 @@ on Windows it should be in UTF-8.</doc>
41097
41153
  </parameter>
41098
41154
  </parameters>
41099
41155
  </function>
41100
- <function name="mkdtemp_full" c:identifier="g_mkdtemp_full" version="2.30">
41156
+ <function name="mkdtemp_full"
41157
+ c:identifier="g_mkdtemp_full"
41158
+ version="2.30"
41159
+ introspectable="0">
41101
41160
  <doc xml:space="preserve">Creates a temporary directory. See the mkdtemp() documentation
41102
41161
  on most UNIX-like systems.
41103
41162
 
41104
41163
  The parameter is a string that should follow the rules for
41105
41164
  mkdtemp() templates, i.e. contain the string "XXXXXX".
41106
- g_mkdtemp() is slightly more flexible than mkdtemp() in that the
41165
+ g_mkdtemp_full() is slightly more flexible than mkdtemp() in that the
41107
41166
  sequence does not have to occur at the very end of the template
41108
41167
  and you can pass a @mode. The X string will be modified to form
41109
41168
  the name of a directory that didn't exist. The string should be
41110
41169
  in the GLib file name encoding. Most importantly, on Windows it
41111
- should be in UTF-8.</doc>
41170
+ should be in UTF-8.
41171
+
41172
+ If you are going to be creating a temporary directory inside the
41173
+ directory returned by g_get_tmp_dir(), you might want to use
41174
+ g_dir_make_tmp() instead.</doc>
41112
41175
  <return-value transfer-ownership="full" nullable="1">
41113
41176
  <doc xml:space="preserve">A pointer to @tmpl, which has been
41114
41177
  modified to hold the directory name. In case of errors, %NULL is
@@ -41126,7 +41189,7 @@ should be in UTF-8.</doc>
41126
41189
  </parameter>
41127
41190
  </parameters>
41128
41191
  </function>
41129
- <function name="mkstemp" c:identifier="g_mkstemp">
41192
+ <function name="mkstemp" c:identifier="g_mkstemp" introspectable="0">
41130
41193
  <doc xml:space="preserve">Opens a temporary file. See the mkstemp() documentation
41131
41194
  on most UNIX-like systems.
41132
41195
 
@@ -41152,7 +41215,10 @@ Most importantly, on Windows it should be in UTF-8.</doc>
41152
41215
  </parameter>
41153
41216
  </parameters>
41154
41217
  </function>
41155
- <function name="mkstemp_full" c:identifier="g_mkstemp_full" version="2.22">
41218
+ <function name="mkstemp_full"
41219
+ c:identifier="g_mkstemp_full"
41220
+ version="2.22"
41221
+ introspectable="0">
41156
41222
  <doc xml:space="preserve">Opens a temporary file. See the mkstemp() documentation
41157
41223
  on most UNIX-like systems.
41158
41224
 
@@ -41730,9 +41796,7 @@ to take advantage of this feature is up to you.</doc>
41730
41796
  <parameter name="err"
41731
41797
  direction="inout"
41732
41798
  caller-allocates="0"
41733
- transfer-ownership="full"
41734
- nullable="1"
41735
- allow-none="1">
41799
+ transfer-ownership="full">
41736
41800
  <doc xml:space="preserve">a return location for a #GError</doc>
41737
41801
  <type name="Error" c:type="GError**"/>
41738
41802
  </parameter>
@@ -45706,6 +45770,7 @@ So far, the following arguments are understood:
45706
45770
  - `--verbose`: Run tests verbosely.
45707
45771
  - `-q`, `--quiet`: Run tests quietly.
45708
45772
  - `-p PATH`: Execute all tests matching the given path.
45773
+ - `-s PATH`: Skip all tests matching the given path.
45709
45774
  This can also be used to force a test to run that would otherwise
45710
45775
  be skipped (ie, a test whose name contains "/subprocess").
45711
45776
  - `-m {perf|slow|thorough|quick|undefined|no-undefined}`: Execute tests according to these test modes:
@@ -45875,7 +45940,7 @@ order for test result reports.</doc>
45875
45940
  version="2.16">
45876
45941
  <doc xml:space="preserve">This function enqueus a callback @destroy_func to be executed
45877
45942
  during the next test case teardown phase. This is most useful
45878
- to auto destruct allocted test resources at the end of a test run.
45943
+ to auto destruct allocated test resources at the end of a test run.
45879
45944
  Resources are released in reverse queue order, that means enqueueing
45880
45945
  callback A before callback B will cause B() to be called before
45881
45946
  A() during teardown.</doc>
@@ -45986,8 +46051,9 @@ see g_test_rand_int() for details on test case random numbers.</doc>
45986
46051
  <doc xml:space="preserve">Runs all tests under the toplevel suite which can be retrieved
45987
46052
  with g_test_get_root(). Similar to g_test_run_suite(), the test
45988
46053
  cases to be run are filtered according to test path arguments
45989
- (`-p testpath`) as parsed by g_test_init(). g_test_run_suite()
45990
- or g_test_run() may only be called once in a program.
46054
+ (`-p testpath` and `-s testpath`) as parsed by g_test_init().
46055
+ g_test_run_suite() or g_test_run() may only be called once in a
46056
+ program.
45991
46057
 
45992
46058
  In general, the tests and sub-suites within each suite are run in
45993
46059
  the order in which they are defined. However, note that prior to
@@ -46024,9 +46090,10 @@ producing TAP output, or 77 (treated as "skip test" by Automake) otherwise.</doc
46024
46090
  version="2.16">
46025
46091
  <doc xml:space="preserve">Execute the tests within @suite and all nested #GTestSuites.
46026
46092
  The test suites to be executed are filtered according to
46027
- test path arguments (`-p testpath`) as parsed by g_test_init().
46028
- See the g_test_run() documentation for more information on the
46029
- order that tests are run in.
46093
+ test path arguments (`-p testpath` and `-s testpath`) as parsed by
46094
+ g_test_init(). See the g_test_run() documentation for more
46095
+ information on the order that tests are run in.
46096
+
46030
46097
 
46031
46098
  g_test_run_suite() or g_test_run() may only be called once
46032
46099
  in a program.</doc>
@@ -48287,8 +48354,35 @@ overlong encodings of valid characters.</doc>
48287
48354
  <type name="utf8" c:type="const gchar*"/>
48288
48355
  </parameter>
48289
48356
  <parameter name="max_len" transfer-ownership="none">
48290
- <doc xml:space="preserve">the maximum number of bytes to read, or -1, for no maximum or
48291
- if @p is nul-terminated</doc>
48357
+ <doc xml:space="preserve">the maximum number of bytes to read, or -1 if @p is nul-terminated</doc>
48358
+ <type name="gssize" c:type="gssize"/>
48359
+ </parameter>
48360
+ </parameters>
48361
+ </function>
48362
+ <function name="utf8_make_valid"
48363
+ c:identifier="g_utf8_make_valid"
48364
+ version="2.52">
48365
+ <doc xml:space="preserve">If the provided string is valid UTF-8, return a copy of it. If not,
48366
+ return a copy in which bytes that could not be interpreted as valid Unicode
48367
+ are replaced with the Unicode replacement character (U+FFFD).
48368
+
48369
+ For example, this is an appropriate function to use if you have received
48370
+ a string that was incorrectly declared to be UTF-8, and you need a valid
48371
+ UTF-8 version of it that can be logged or displayed to the user, with the
48372
+ assumption that it is close enough to ASCII or UTF-8 to be mostly
48373
+ readable as-is.</doc>
48374
+ <return-value transfer-ownership="full">
48375
+ <doc xml:space="preserve">a valid UTF-8 string whose content resembles @str</doc>
48376
+ <type name="utf8" c:type="gchar*"/>
48377
+ </return-value>
48378
+ <parameters>
48379
+ <parameter name="str" transfer-ownership="none">
48380
+ <doc xml:space="preserve">string to coerce into UTF-8</doc>
48381
+ <type name="utf8" c:type="const gchar*"/>
48382
+ </parameter>
48383
+ <parameter name="len" transfer-ownership="none">
48384
+ <doc xml:space="preserve">the maximum length of @str to use, in bytes. If @len &lt; 0,
48385
+ then the string is nul-terminated.</doc>
48292
48386
  <type name="gssize" c:type="gssize"/>
48293
48387
  </parameter>
48294
48388
  </parameters>
@@ -48798,6 +48892,37 @@ on your system.</doc>
48798
48892
  </parameter>
48799
48893
  </parameters>
48800
48894
  </function>
48895
+ <function name="uuid_string_is_valid"
48896
+ c:identifier="g_uuid_string_is_valid"
48897
+ version="2.52">
48898
+ <doc xml:space="preserve">Parses the string @str and verify if it is a UUID.
48899
+
48900
+ The function accepts the following syntax:
48901
+
48902
+ - simple forms (e.g. `f81d4fae-7dec-11d0-a765-00a0c91e6bf6`)
48903
+
48904
+ Note that hyphens are required within the UUID string itself,
48905
+ as per the aforementioned RFC.</doc>
48906
+ <return-value transfer-ownership="none">
48907
+ <doc xml:space="preserve">%TRUE if @str is a valid UUID, %FALSE otherwise.</doc>
48908
+ <type name="gboolean" c:type="gboolean"/>
48909
+ </return-value>
48910
+ <parameters>
48911
+ <parameter name="str" transfer-ownership="none">
48912
+ <doc xml:space="preserve">a string representing a UUID</doc>
48913
+ <type name="utf8" c:type="const gchar*"/>
48914
+ </parameter>
48915
+ </parameters>
48916
+ </function>
48917
+ <function name="uuid_string_random"
48918
+ c:identifier="g_uuid_string_random"
48919
+ version="2.52">
48920
+ <doc xml:space="preserve">Generates a random UUID (RFC 4122 version 4) as a string.</doc>
48921
+ <return-value transfer-ownership="full">
48922
+ <doc xml:space="preserve">A string that should be freed with g_free().</doc>
48923
+ <type name="utf8" c:type="gchar*"/>
48924
+ </return-value>
48925
+ </function>
48801
48926
  <function name="variant_get_gtype" c:identifier="g_variant_get_gtype">
48802
48927
  <return-value transfer-ownership="none">
48803
48928
  <type name="GType" c:type="GType"/>