@img/sharp-libvips-dev 1.1.0-rc3 → 1.1.0-rc4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/include/aom/aom_codec.h +18 -1
  2. package/include/aom/aom_encoder.h +2 -0
  3. package/include/aom/aom_image.h +3 -1
  4. package/include/aom/aomcx.h +52 -12
  5. package/include/cairo/cairo-version.h +1 -1
  6. package/include/expat.h +4 -2
  7. package/include/expat_config.h +3 -3
  8. package/include/ffi.h +1 -1
  9. package/include/fontconfig/fontconfig.h +22 -2
  10. package/include/gio-unix-2.0/gio/gdesktopappinfo.h +1 -1
  11. package/include/gio-unix-2.0/gio/gunixmounts.h +95 -23
  12. package/include/glib-2.0/gio/gdbusconnection.h +65 -5
  13. package/include/glib-2.0/gio/gdebugcontroller.h +1 -1
  14. package/include/glib-2.0/gio/gfile.h +4 -0
  15. package/include/glib-2.0/gio/gio-visibility.h +34 -0
  16. package/include/glib-2.0/gio/gioenums.h +14 -3
  17. package/include/glib-2.0/gio/gioenumtypes.h +3 -3
  18. package/include/glib-2.0/gio/giotypes.h +4 -4
  19. package/include/glib-2.0/gio/gmemorymonitor.h +1 -1
  20. package/include/glib-2.0/gio/gnetworkmonitor.h +1 -1
  21. package/include/glib-2.0/gio/gpowerprofilemonitor.h +1 -1
  22. package/include/glib-2.0/gio/gproxy.h +1 -1
  23. package/include/glib-2.0/gio/gproxyresolver.h +1 -1
  24. package/include/glib-2.0/gio/gresource.h +6 -0
  25. package/include/glib-2.0/gio/gtlsbackend.h +1 -1
  26. package/include/glib-2.0/gio/gvfs.h +3 -3
  27. package/include/glib-2.0/gio/gvolumemonitor.h +1 -1
  28. package/include/glib-2.0/girepository/gi-visibility.h +34 -0
  29. package/include/glib-2.0/girepository/gicallableinfo.h +12 -0
  30. package/include/glib-2.0/girepository/gitypes.h +1 -0
  31. package/include/glib-2.0/glib/garray.h +1 -1
  32. package/include/glib-2.0/glib/gerror.h +1 -1
  33. package/include/glib-2.0/glib/glib-visibility.h +34 -0
  34. package/include/glib-2.0/glib/gmacros.h +3 -3
  35. package/include/glib-2.0/glib/gmain.h +79 -1
  36. package/include/glib-2.0/glib/gmem.h +3 -0
  37. package/include/glib-2.0/glib/goption.h +58 -36
  38. package/include/glib-2.0/glib/gqueue.h +1 -1
  39. package/include/glib-2.0/glib/grefstring.h +4 -0
  40. package/include/glib-2.0/glib/gstdio.h +65 -0
  41. package/include/glib-2.0/glib/gstrfuncs.h +4 -0
  42. package/include/glib-2.0/glib/gtestutils.h +65 -33
  43. package/include/glib-2.0/glib/gthread.h +2 -0
  44. package/include/glib-2.0/glib/gtypes.h +1 -1
  45. package/include/glib-2.0/glib/gunicode.h +21 -5
  46. package/include/glib-2.0/glib/gvariant.h +50 -13
  47. package/include/glib-2.0/glib/gvarianttype.h +62 -46
  48. package/include/glib-2.0/glib/gversionmacros.h +9 -0
  49. package/include/glib-2.0/glib-unix.h +21 -0
  50. package/include/glib-2.0/gmodule/gmodule-visibility.h +34 -0
  51. package/include/glib-2.0/gobject/glib-enumtypes.h +1 -1
  52. package/include/glib-2.0/gobject/gobject-visibility.h +34 -0
  53. package/include/glib-2.0/gobject/gobjectnotifyqueue.c +1 -1
  54. package/include/glib-2.0/gobject/gparam.h +4 -2
  55. package/include/glib-2.0/gobject/gsignal.h +22 -7
  56. package/include/glib-2.0/gobject/gtype.h +10 -4
  57. package/include/harfbuzz/hb-draw.h +1 -1
  58. package/include/harfbuzz/hb-face.h +15 -2
  59. package/include/harfbuzz/hb-ft.h +11 -1
  60. package/include/harfbuzz/hb-ot-shape.h +6 -0
  61. package/include/harfbuzz/hb-paint.h +1 -1
  62. package/include/harfbuzz/hb-shape.h +2 -0
  63. package/include/harfbuzz/hb-subset-serialize.h +83 -0
  64. package/include/harfbuzz/hb-subset.h +12 -0
  65. package/include/harfbuzz/hb-version.h +3 -3
  66. package/include/lcms2.h +7 -5
  67. package/include/lcms2_plugin.h +1 -1
  68. package/include/libexif/exif-byte-order.h +2 -0
  69. package/include/libexif/exif-content.h +2 -0
  70. package/include/libexif/exif-data-type.h +2 -0
  71. package/include/libexif/exif-data.h +3 -2
  72. package/include/libexif/exif-entry.h +2 -0
  73. package/include/libexif/exif-format.h +2 -0
  74. package/include/libexif/exif-ifd.h +2 -0
  75. package/include/libexif/exif-loader.h +2 -0
  76. package/include/libexif/exif-log.h +2 -0
  77. package/include/libexif/exif-mem.h +2 -0
  78. package/include/libexif/exif-mnote-data.h +2 -0
  79. package/include/libexif/exif-tag.h +2 -0
  80. package/include/libexif/exif-utils.h +2 -0
  81. package/include/libheif/heif.h +12 -3
  82. package/include/libheif/heif_cxx.h +18 -12
  83. package/include/libheif/heif_items.h +2 -2
  84. package/include/libheif/heif_properties.h +4 -4
  85. package/include/libheif/heif_version.h +2 -2
  86. package/include/libpng16/png.h +120 -12
  87. package/include/libpng16/pngconf.h +2 -3
  88. package/include/libpng16/pnglibconf.h +11 -2
  89. package/include/librsvg-2.0/librsvg/rsvg-features.h +1 -1
  90. package/include/librsvg-2.0/librsvg/rsvg-pixbuf.h +1 -1
  91. package/include/librsvg-2.0/librsvg/rsvg-version.h +2 -2
  92. package/include/librsvg-2.0/librsvg/rsvg.h +1 -1
  93. package/include/libxml2/libxml/xmlversion.h +4 -4
  94. package/include/pango-1.0/pango/pango-features.h +3 -3
  95. package/include/pango-1.0/pango/pango-font.h +31 -2
  96. package/include/pango-1.0/pango/pango-fontmap.h +4 -0
  97. package/include/pango-1.0/pango/pango-layout.h +10 -1
  98. package/include/pango-1.0/pango/pango-version-macros.h +52 -0
  99. package/include/pango-1.0/pango/pangofc-fontmap.h +6 -0
  100. package/include/pixman-1/pixman-version.h +3 -3
  101. package/include/png.h +120 -12
  102. package/include/pngconf.h +2 -3
  103. package/include/pnglibconf.h +11 -2
  104. package/include/vips/colour.h +2 -0
  105. package/include/vips/version.h +4 -4
  106. package/include/webp/encode.h +5 -4
  107. package/include/webp/sharpyuv/sharpyuv.h +14 -5
  108. package/include/webp/sharpyuv/sharpyuv_csp.h +5 -0
  109. package/include/webp/types.h +2 -2
  110. package/include/zlib.h +4 -4
  111. package/package.json +1 -1
  112. package/versions.json +19 -19
@@ -56,4 +56,8 @@ gsize g_ref_string_length (char *str);
56
56
  */
57
57
  typedef char GRefString;
58
58
 
59
+ GLIB_AVAILABLE_IN_2_84
60
+ gboolean g_ref_string_equal (const char *str1,
61
+ const char *str2);
62
+
59
63
  G_END_DECLS
@@ -179,6 +179,71 @@ GLIB_AVAILABLE_IN_2_36
179
179
  gboolean g_close (gint fd,
180
180
  GError **error);
181
181
 
182
+ /**
183
+ * g_clear_fd: (skip)
184
+ * @fd_ptr: (not optional) (inout) (transfer full): a pointer to a file descriptor
185
+ * @error: Used to return an error on failure
186
+ *
187
+ * If @fd_ptr points to a file descriptor, close it and return
188
+ * whether closing it was successful, like g_close().
189
+ * If @fd_ptr points to a negative number, return %TRUE without closing
190
+ * anything.
191
+ * In both cases, set @fd_ptr to `-1` before returning.
192
+ *
193
+ * Like g_close(), if closing the file descriptor fails, the error is
194
+ * stored in both %errno and @error. If this function succeeds,
195
+ * %errno is undefined.
196
+ *
197
+ * On POSIX platforms, this function is async-signal safe
198
+ * if @error is %NULL and @fd_ptr points to either a negative number or a
199
+ * valid open file descriptor.
200
+ * This makes it safe to call from a signal handler or a #GSpawnChildSetupFunc
201
+ * under those conditions.
202
+ * See [`signal(7)`](man:signal(7)) and
203
+ * [`signal-safety(7)`](man:signal-safety(7)) for more details.
204
+ *
205
+ * It is a programming error for @fd_ptr to point to a non-negative
206
+ * number that is not a valid file descriptor.
207
+ *
208
+ * A typical use of this function is to clean up a file descriptor at
209
+ * the end of its scope, whether it has been set successfully or not:
210
+ *
211
+ * |[
212
+ * gboolean
213
+ * operate_on_fd (GError **error)
214
+ * {
215
+ * gboolean ret = FALSE;
216
+ * int fd = -1;
217
+ *
218
+ * fd = open_a_fd (error);
219
+ *
220
+ * if (fd < 0)
221
+ * goto out;
222
+ *
223
+ * if (!do_something (fd, error))
224
+ * goto out;
225
+ *
226
+ * if (!g_clear_fd (&fd, error))
227
+ * goto out;
228
+ *
229
+ * ret = TRUE;
230
+ *
231
+ * out:
232
+ * // OK to call even if fd was never opened or was already closed
233
+ * g_clear_fd (&fd, NULL);
234
+ * return ret;
235
+ * }
236
+ * ]|
237
+ *
238
+ * This function is also useful in conjunction with #g_autofd.
239
+ *
240
+ * Returns: %TRUE on success
241
+ * Since: 2.76
242
+ */
243
+ GLIB_AVAILABLE_STATIC_INLINE_IN_2_76
244
+ static inline gboolean g_clear_fd (int *fd_ptr,
245
+ GError **error);
246
+
182
247
  GLIB_AVAILABLE_STATIC_INLINE_IN_2_76
183
248
  static inline gboolean
184
249
  g_clear_fd (int *fd_ptr,
@@ -476,6 +476,10 @@ gboolean g_ascii_string_to_unsigned (const gchar *str,
476
476
  * Since: 2.76
477
477
  */
478
478
  GLIB_AVAILABLE_STATIC_INLINE_IN_2_76
479
+ static inline gboolean g_set_str (char **str_pointer,
480
+ const char *new_str);
481
+
482
+ GLIB_AVAILABLE_STATIC_INLINE_IN_2_76
479
483
  static inline gboolean
480
484
  g_set_str (char **str_pointer,
481
485
  const char *new_str)
@@ -302,34 +302,61 @@ void g_test_init (int *argc,
302
302
  /**
303
303
  * G_TEST_OPTION_ISOLATE_DIRS:
304
304
  *
305
- * Creates a unique temporary directory for each unit test and uses
306
- * g_set_user_dirs() to set XDG directories to point into subdirectories of it
307
- * for the duration of the unit test. The directory tree is cleaned up after the
308
- * test finishes successfully. Note that this doesn’t take effect until
309
- * g_test_run() is called, so calls to (for example) g_get_user_home_dir() will
310
- * return the system-wide value when made in a test program’s main() function.
305
+ * A value that can be passed as an option to [func@GLib.test_init].
306
+ *
307
+ * Creates a unique temporary directory for each unit test and uses sets
308
+ * XDG directories to point into subdirectories of it for the duration of
309
+ * the unit test. The directory tree is cleaned up after the test finishes
310
+ * successfully.
311
+ *
312
+ * Note that this doesn’t take effect until [func@GLib.test_run] is called,
313
+ * so calls to (for example) [func@GLib.get_home_dir] will return the
314
+ * system-wide value when made in a test program’s main() function.
311
315
  *
312
316
  * The following functions will return subdirectories of the temporary directory
313
317
  * when this option is used. The specific subdirectory paths in use are not
314
318
  * guaranteed to be stable API — always use a getter function to retrieve them.
315
319
  *
316
- * - g_get_home_dir()
317
- * - g_get_user_cache_dir()
318
- * - g_get_system_config_dirs()
319
- * - g_get_user_config_dir()
320
- * - g_get_system_data_dirs()
321
- * - g_get_user_data_dir()
322
- * - g_get_user_state_dir()
323
- * - g_get_user_runtime_dir()
320
+ * - [func@GLib.get_home_dir]
321
+ * - [func@GLib.get_user_cache_dir]
322
+ * - [func@GLib.get_system_config_dirs]
323
+ * - [func@GLib.get_user_config_dir]
324
+ * - [func@GLib.get_system_data_dirs]
325
+ * - [func@GLib.get_user_data_dir]
326
+ * - [func@GLib.get_user_state_dir]
327
+ * - [func@GLib.get_user_runtime_dir]
324
328
  *
325
329
  * The subdirectories may not be created by the test harness; as with normal
326
- * calls to functions like g_get_user_cache_dir(), the caller must be prepared
327
- * to create the directory if it doesn’t exist.
330
+ * calls to functions like [func@GLib.get_user_cache_dir], the caller must
331
+ * be prepared to create the directory if it doesn’t exist.
328
332
  *
329
333
  * Since: 2.60
330
334
  */
331
335
  #define G_TEST_OPTION_ISOLATE_DIRS "isolate_dirs"
332
336
 
337
+ /**
338
+ * G_TEST_OPTION_NO_PRGNAME:
339
+ *
340
+ * A value that can be passed as an option to [func@GLib.test_init].
341
+ *
342
+ * If this option is given, [func@GLib.test_init] will not call [func@GLib.set_prgname].
343
+ *
344
+ * Since: 2.84
345
+ */
346
+ #define G_TEST_OPTION_NO_PRGNAME "no_g_set_prgname"
347
+
348
+ /**
349
+ * G_TEST_OPTION_NONFATAL_ASSERTIONS:
350
+ *
351
+ * A value that can be passed as an option to [func@GLib.test_init].
352
+ *
353
+ * If this option is given, assertions will not abort the process, but
354
+ * call [func@GLib.test_fail]. Equivalent to [func@GLib.test_set_nonfatal_assertions].
355
+ *
356
+ * Since: 2.84
357
+ */
358
+ #define G_TEST_OPTION_NONFATAL_ASSERTIONS "nonfatal-assertions"
359
+
333
360
  /* While we discourage its use, g_assert() is often used in unit tests
334
361
  * (especially in legacy code). g_assert_*() should really be used instead.
335
362
  * g_assert() can be disabled at client program compile time, which can render
@@ -412,20 +439,24 @@ void g_test_disable_crash_reporting (void);
412
439
 
413
440
  /**
414
441
  * g_test_add:
415
- * @testpath: The test path for a new test case.
416
- * @Fixture: The type of a fixture data structure.
417
- * @tdata: Data argument for the test functions.
418
- * @fsetup: The function to set up the fixture data.
419
- * @ftest: The actual test function.
420
- * @fteardown: The function to tear down the fixture data.
442
+ * @testpath: the test path for a new test case
443
+ * @Fixture: the type of a fixture data structure
444
+ * @tdata: data argument for the test functions
445
+ * @fsetup: the function to set up the fixture data
446
+ * @ftest: the actual test function
447
+ * @fteardown: the function to tear down the fixture data
448
+ *
449
+ * Hooks up a new test case at @testpath.
421
450
  *
422
- * Hook up a new test case at @testpath, similar to g_test_add_func().
423
- * A fixture data structure with setup and teardown functions may be provided,
424
- * similar to g_test_create_case().
451
+ * This function is similar to [func@GLib.test_add_func].
425
452
  *
426
- * g_test_add() is implemented as a macro, so that the fsetup(), ftest() and
427
- * fteardown() callbacks can expect a @Fixture pointer as their first argument
428
- * in a type safe manner. They otherwise have type #GTestFixtureFunc.
453
+ * A fixture data structure with setup and teardown functions
454
+ * may be provided, similar to [func@GLib.test_create_case].
455
+ *
456
+ * `g_test_add()` is implemented as a macro, so that the @fsetup,
457
+ * @ftest and @fteardown callbacks can expect a @Fixture pointer
458
+ * as their first argument in a type safe manner. They otherwise
459
+ * have type `GTestFixtureFunc`.
429
460
  *
430
461
  * Since: 2.16
431
462
  */
@@ -482,12 +513,13 @@ void g_test_queue_destroy (GDestroyNotify destroy_func,
482
513
  * child process is shared with stdin of its parent process.
483
514
  * It is redirected to `/dev/null` otherwise.
484
515
  *
485
- * Test traps are guards around forked tests.
486
- * These flags determine what traps to set.
516
+ * Flags to pass to [func@GLib.test_trap_fork] to control input and output.
517
+ *
518
+ * Test traps are guards around forked tests. These flags determine what traps to set.
487
519
  *
488
- * Deprecated: 2.38: #GTestTrapFlags is used only with g_test_trap_fork(),
489
- * which is deprecated. g_test_trap_subprocess() uses
490
- * #GTestSubprocessFlags.
520
+ * Deprecated: 2.38: `GTestTrapFlags` is used only with [func@GLib.test_trap_fork],
521
+ * which is deprecated. Its replacement, [func@GLib.test_trap_subprocess] uses
522
+ * [flags@GLib.TestSubprocessFlags].
491
523
  */
492
524
  typedef enum {
493
525
  G_TEST_TRAP_DEFAULT GLIB_AVAILABLE_ENUMERATOR_IN_2_74 = 0,
@@ -165,6 +165,8 @@ gpointer g_thread_join (GThread *thread);
165
165
  GLIB_AVAILABLE_IN_ALL
166
166
  void g_thread_yield (void);
167
167
 
168
+ GLIB_AVAILABLE_IN_2_84
169
+ const char * g_thread_get_name (GThread *thread);
168
170
 
169
171
  GLIB_AVAILABLE_IN_2_32
170
172
  void g_mutex_init (GMutex *mutex);
@@ -247,7 +247,7 @@ typedef const gchar * (*GTranslateFunc) (const gchar *str,
247
247
  */
248
248
  #if defined (__GNUC__) && (__GNUC__ >= 2) && defined (__OPTIMIZE__)
249
249
 
250
- # if __GNUC__ >= 4 && defined (__GNUC_MINOR__) && __GNUC_MINOR__ >= 3
250
+ # if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
251
251
  # define GUINT32_SWAP_LE_BE(val) ((guint32) __builtin_bswap32 ((guint32) (val)))
252
252
  # define GUINT64_SWAP_LE_BE(val) ((guint64) __builtin_bswap64 ((guint64) (val)))
253
253
  # endif
@@ -205,10 +205,10 @@ typedef enum
205
205
  * @G_UNICODE_BREAK_EMOJI_MODIFIER: Emoji Modifier (EM). Since: 2.50
206
206
  * @G_UNICODE_BREAK_ZERO_WIDTH_JOINER: Zero Width Joiner (ZWJ). Since: 2.50
207
207
  * @G_UNICODE_BREAK_AKSARA: Aksara (AK). Since: 2.80
208
- * @G_UNICODE_BREAK_AKSARA_PRE_BASE (AP). Since: 2.80
209
- * @G_UNICODE_BREAK_AKSARA_START (AS). Since: 2.80
210
- * @G_UNICODE_BREAK_VIRAMA_FINAL (VF). Since: 2.80
211
- * @G_UNICODE_BREAK_VIRAMA (VI). Since: 2.80
208
+ * @G_UNICODE_BREAK_AKSARA_PRE_BASE: Aksara Pre-Base (AP). Since: 2.80
209
+ * @G_UNICODE_BREAK_AKSARA_START: Aksara Start (AS). Since: 2.80
210
+ * @G_UNICODE_BREAK_VIRAMA_FINAL: Virama Final (VF). Since: 2.80
211
+ * @G_UNICODE_BREAK_VIRAMA: Virama (VI). Since: 2.80
212
212
  *
213
213
  * These are the possible line break classifications.
214
214
  *
@@ -450,6 +450,13 @@ typedef enum
450
450
  * @G_UNICODE_SCRIPT_MATH: Mathematical notation. Since: 2.72
451
451
  * @G_UNICODE_SCRIPT_KAWI: Kawi. Since 2.74
452
452
  * @G_UNICODE_SCRIPT_NAG_MUNDARI: Nag Mundari. Since 2.74
453
+ * @G_UNICODE_SCRIPT_TODHRI: Todhri. Since: 2.84
454
+ * @G_UNICODE_SCRIPT_GARAY: Garay. Since: 2.84
455
+ * @G_UNICODE_SCRIPT_TULU_TIGALARI: Tulu-Tigalari. Since: 2.84
456
+ * @G_UNICODE_SCRIPT_SUNUWAR: Sunuwar. Since: 2.84
457
+ * @G_UNICODE_SCRIPT_GURUNG_KHEMA: Gurung Khema. Since: 2.84
458
+ * @G_UNICODE_SCRIPT_KIRAT_RAI: Kirat Rai. Since: 2.84
459
+ * @G_UNICODE_SCRIPT_OL_ONAL: Ol Onal. Since: 2.84
453
460
  *
454
461
  * The #GUnicodeScript enumeration identifies different writing
455
462
  * systems. The values correspond to the names as defined in the
@@ -661,7 +668,16 @@ typedef enum
661
668
 
662
669
  /* Unicode 15.0 additions */
663
670
  G_UNICODE_SCRIPT_KAWI GLIB_AVAILABLE_ENUMERATOR_IN_2_74, /* Kawi */
664
- G_UNICODE_SCRIPT_NAG_MUNDARI GLIB_AVAILABLE_ENUMERATOR_IN_2_74, /* Nag Mundari */
671
+ G_UNICODE_SCRIPT_NAG_MUNDARI GLIB_AVAILABLE_ENUMERATOR_IN_2_74, /* Nagm */
672
+
673
+ /* Unicode 16.0 additions */
674
+ G_UNICODE_SCRIPT_TODHRI GLIB_AVAILABLE_ENUMERATOR_IN_2_84, /* Todr */
675
+ G_UNICODE_SCRIPT_GARAY GLIB_AVAILABLE_ENUMERATOR_IN_2_84, /* Gara */
676
+ G_UNICODE_SCRIPT_TULU_TIGALARI GLIB_AVAILABLE_ENUMERATOR_IN_2_84, /* Tutg */
677
+ G_UNICODE_SCRIPT_SUNUWAR GLIB_AVAILABLE_ENUMERATOR_IN_2_84, /* Sunu */
678
+ G_UNICODE_SCRIPT_GURUNG_KHEMA GLIB_AVAILABLE_ENUMERATOR_IN_2_84, /* Gukh */
679
+ G_UNICODE_SCRIPT_KIRAT_RAI GLIB_AVAILABLE_ENUMERATOR_IN_2_84, /* Krai */
680
+ G_UNICODE_SCRIPT_OL_ONAL GLIB_AVAILABLE_ENUMERATOR_IN_2_84, /* Onao */
665
681
  } GUnicodeScript;
666
682
 
667
683
  GLIB_AVAILABLE_IN_ALL
@@ -344,23 +344,25 @@ GQuark g_variant_parse_error_quark (void);
344
344
  * G_VARIANT_BUILDER_INIT:
345
345
  * @variant_type: a const GVariantType*
346
346
  *
347
- * A stack-allocated #GVariantBuilder must be initialized if it is
348
- * used together with g_auto() to avoid warnings or crashes if
349
- * function returns before g_variant_builder_init() is called on the
350
- * builder.
347
+ * A stack-allocated [struct@GLib.VariantBuilder] must be initialized
348
+ * if it is used together with
349
+ * [`g_auto()`](auto-cleanup.html#variable-declaration). This macro can
350
+ * be used as initializer when declaring the builder, but it cannot be
351
+ * assigned to a variable.
351
352
  *
352
- * This macro can be used as initializer instead of an
353
- * explicit zeroing a variable when declaring it and a following
354
- * g_variant_builder_init(), but it cannot be assigned to a variable.
353
+ * The effects of initializing the builder with
354
+ * `G_VARIANT_BUILDER_INIT` is the same as initializing it with
355
+ * [func@GLib.VARIANT_BUILDER_INIT_UNSET], followed by a call to
356
+ * [method@GLib.VariantBuilder.init].
355
357
  *
356
- * The passed @variant_type should be a static GVariantType to avoid
357
- * lifetime issues, as copying the @variant_type does not happen in
358
- * the G_VARIANT_BUILDER_INIT() call, but rather in functions that
359
- * make sure that #GVariantBuilder is valid.
358
+ * The passed @variant_type should be a static [type@GLib.VariantType]
359
+ * to avoid lifetime issues, as copying the @variant_type does not
360
+ * happen in the `G_VARIANT_BUILDER_INIT` call, but rather in functions
361
+ * that make sure that [struct@GLib.VariantBuilder] is valid.
360
362
  *
361
- * |[<!-- language="C" -->
363
+ * ```c
362
364
  * g_auto(GVariantBuilder) builder = G_VARIANT_BUILDER_INIT (G_VARIANT_TYPE_BYTESTRING);
363
- * ]|
365
+ * ```
364
366
  *
365
367
  * Since: 2.50
366
368
  */
@@ -373,6 +375,38 @@ GQuark g_variant_parse_error_quark (void);
373
375
  } \
374
376
  }
375
377
 
378
+ /**
379
+ * G_VARIANT_BUILDER_INIT_UNSET:
380
+ *
381
+ * A stack-allocated [struct@GLib.VariantBuilder] must be initialized
382
+ * if it is used together with
383
+ * [`g_auto()`](auto-cleanup.html#variable-declaration). This macro can
384
+ * be used as initializer when declaring the builder, but it cannot be
385
+ * assigned to a variable.
386
+ *
387
+ * The builder can be initialized to a specific [type@GLib.VariantType]
388
+ * later with [method@GLib.VariantBuilder.init].
389
+ *
390
+ * Use [func@GLib.VARIANT_BUILDER_INIT] to directly initialize the
391
+ * builder with a specific [type@GLib.VariantType].
392
+ *
393
+ * ```c
394
+ * g_auto(GVariantBuilder) builder = G_VARIANT_BUILDER_INIT_UNSET ();
395
+ *
396
+ * if (condition)
397
+ * return NULL;
398
+ *
399
+ * g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{su}"));
400
+ * return g_variant_ref_sink (g_variant_builder_end (&builder));
401
+ * ```
402
+ *
403
+ * Since: 2.84
404
+ */
405
+ #define G_VARIANT_BUILDER_INIT_UNSET() \
406
+ { \
407
+ 0, \
408
+ } GLIB_AVAILABLE_MACRO_IN_2_84
409
+
376
410
  GLIB_AVAILABLE_IN_ALL
377
411
  GVariantBuilder * g_variant_builder_new (const GVariantType *type);
378
412
  GLIB_AVAILABLE_IN_ALL
@@ -382,6 +416,9 @@ GVariantBuilder * g_variant_builder_ref (GVarian
382
416
  GLIB_AVAILABLE_IN_ALL
383
417
  void g_variant_builder_init (GVariantBuilder *builder,
384
418
  const GVariantType *type);
419
+ GLIB_AVAILABLE_IN_2_84
420
+ void g_variant_builder_init_static (GVariantBuilder *builder,
421
+ const GVariantType *type);
385
422
  GLIB_AVAILABLE_IN_ALL
386
423
  GVariant * g_variant_builder_end (GVariantBuilder *builder);
387
424
  GLIB_AVAILABLE_IN_ALL
@@ -36,7 +36,7 @@ typedef struct _GVariantType GVariantType;
36
36
  /**
37
37
  * G_VARIANT_TYPE_BOOLEAN:
38
38
  *
39
- * The type of a value that can be either %TRUE or %FALSE.
39
+ * The type of a value that can be either true or false.
40
40
  **/
41
41
  #define G_VARIANT_TYPE_BOOLEAN ((const GVariantType *) "b")
42
42
 
@@ -58,6 +58,7 @@ typedef struct _GVariantType GVariantType;
58
58
  * G_VARIANT_TYPE_UINT16:
59
59
  *
60
60
  * The type of an integer value that can range from 0 to 65535.
61
+ *
61
62
  * There were about this many people living in Toronto in the 1870s.
62
63
  **/
63
64
  #define G_VARIANT_TYPE_UINT16 ((const GVariantType *) "q")
@@ -74,7 +75,8 @@ typedef struct _GVariantType GVariantType;
74
75
  * G_VARIANT_TYPE_UINT32:
75
76
  *
76
77
  * The type of an integer value that can range from 0 to 4294967295.
77
- * That's one number for everyone who was around in the late 1970s.
78
+ *
79
+ * That’s one number for everyone who was around in the late 1970s.
78
80
  **/
79
81
  #define G_VARIANT_TYPE_UINT32 ((const GVariantType *) "u")
80
82
 
@@ -90,18 +92,21 @@ typedef struct _GVariantType GVariantType;
90
92
  * G_VARIANT_TYPE_UINT64:
91
93
  *
92
94
  * The type of an integer value that can range from 0
93
- * to 18446744073709551615 (inclusive). That's a really big number,
94
- * but a Rubik's cube can have a bit more than twice as many possible
95
- * positions.
95
+ * to 18446744073709551615 (inclusive).
96
+ *
97
+ * That’s a really big number, but a Rubik’s cube can have a bit more than
98
+ * twice as many possible positions.
96
99
  **/
97
100
  #define G_VARIANT_TYPE_UINT64 ((const GVariantType *) "t")
98
101
 
99
102
  /**
100
103
  * G_VARIANT_TYPE_DOUBLE:
101
104
  *
102
- * The type of a double precision IEEE754 floating point number.
103
- * These guys go up to about 1.80e308 (plus and minus) but miss out on
104
- * some numbers in between. In any case, that's far greater than the
105
+ * The type of a double precision
106
+ * [IEEE 754 floating point number](https://en.wikipedia.org/wiki/IEEE_754).
107
+ *
108
+ * These go up to about 1.80e308 (plus and minus) but miss out on
109
+ * some numbers in between. In any case, that’s far greater than the
105
110
  * estimated number of fundamental particles in the observable
106
111
  * universe.
107
112
  **/
@@ -110,32 +115,39 @@ typedef struct _GVariantType GVariantType;
110
115
  /**
111
116
  * G_VARIANT_TYPE_STRING:
112
117
  *
113
- * The type of a string. "" is a string. %NULL is not a string.
118
+ * The type of a string.
119
+ *
120
+ * `""` is a string. `NULL` is not a string.
114
121
  **/
115
122
  #define G_VARIANT_TYPE_STRING ((const GVariantType *) "s")
116
123
 
117
124
  /**
118
125
  * G_VARIANT_TYPE_OBJECT_PATH:
119
126
  *
120
- * The type of a D-Bus object reference. These are strings of a
121
- * specific format used to identify objects at a given destination on
122
- * the bus.
127
+ * The type of a
128
+ * [D-Bus object path](https://dbus.freedesktop.org/doc/dbus-specification.html#message-protocol-marshaling-object-path).
129
+ *
130
+ * These are strings of a specific format used to identify objects at a given
131
+ * destination on the bus.
123
132
  *
124
133
  * If you are not interacting with D-Bus, then there is no reason to make
125
134
  * use of this type. If you are, then the D-Bus specification contains a
126
- * precise description of valid object paths.
135
+ * [precise description of valid object paths](https://dbus.freedesktop.org/doc/dbus-specification.html#message-protocol-marshaling-object-path).
127
136
  **/
128
137
  #define G_VARIANT_TYPE_OBJECT_PATH ((const GVariantType *) "o")
129
138
 
130
139
  /**
131
140
  * G_VARIANT_TYPE_SIGNATURE:
132
141
  *
133
- * The type of a D-Bus type signature. These are strings of a specific
134
- * format used as type signatures for D-Bus methods and messages.
142
+ * The type of a
143
+ * [D-Bus type signature](https://dbus.freedesktop.org/doc/dbus-specification.html#type-system).
144
+ *
145
+ * These are strings of a specific format used as type signatures for D-Bus
146
+ * methods and messages.
135
147
  *
136
148
  * If you are not interacting with D-Bus, then there is no reason to make
137
149
  * use of this type. If you are, then the D-Bus specification contains a
138
- * precise description of valid signature strings.
150
+ * [precise description of valid signature strings](https://dbus.freedesktop.org/doc/dbus-specification.html#type-system).
139
151
  **/
140
152
  #define G_VARIANT_TYPE_SIGNATURE ((const GVariantType *) "g")
141
153
 
@@ -150,7 +162,7 @@ typedef struct _GVariantType GVariantType;
150
162
  /**
151
163
  * G_VARIANT_TYPE_HANDLE:
152
164
  *
153
- * The type of a 32bit signed integer value, that by convention, is used
165
+ * The type of a 32-bit signed integer value, that by convention, is used
154
166
  * as an index into an array of file descriptors that are sent alongside
155
167
  * a D-Bus message.
156
168
  *
@@ -162,8 +174,9 @@ typedef struct _GVariantType GVariantType;
162
174
  /**
163
175
  * G_VARIANT_TYPE_UNIT:
164
176
  *
165
- * The empty tuple type. Has only one instance. Known also as "triv"
166
- * or "void".
177
+ * The empty tuple type.
178
+ *
179
+ * Has only one instance. Known also as ‘triv’ or ‘void’.
167
180
  **/
168
181
  #define G_VARIANT_TYPE_UNIT ((const GVariantType *) "()")
169
182
 
@@ -186,7 +199,7 @@ typedef struct _GVariantType GVariantType;
186
199
  /**
187
200
  * G_VARIANT_TYPE_MAYBE:
188
201
  *
189
- * An indefinite type that is a supertype of every maybe type.
202
+ * An indefinite type that is a supertype of every maybe type.
190
203
  **/
191
204
  #define G_VARIANT_TYPE_MAYBE ((const GVariantType *) "m*")
192
205
 
@@ -216,7 +229,7 @@ typedef struct _GVariantType GVariantType;
216
229
  /**
217
230
  * G_VARIANT_TYPE_DICTIONARY:
218
231
  *
219
- * An indefinite type that is a supertype of every dictionary type --
232
+ * An indefinite type that is a supertype of every dictionary type
220
233
  * that is, any array type that has an element type equal to any
221
234
  * dictionary entry type.
222
235
  **/
@@ -239,8 +252,10 @@ typedef struct _GVariantType GVariantType;
239
252
  /**
240
253
  * G_VARIANT_TYPE_BYTESTRING:
241
254
  *
242
- * The type of an array of bytes. This type is commonly used to pass
243
- * around strings that may not be valid utf8. In that case, the
255
+ * The type of an array of bytes.
256
+ *
257
+ * This type is commonly used to pass around strings that may not be valid
258
+ * UTF-8, such as file system paths. In that case, the
244
259
  * convention is that the nul terminator character should be included as
245
260
  * the last character in the array.
246
261
  **/
@@ -257,7 +272,7 @@ typedef struct _GVariantType GVariantType;
257
272
  * G_VARIANT_TYPE_VARDICT:
258
273
  *
259
274
  * The type of a dictionary mapping strings to variants (the ubiquitous
260
- * "a{sv}" type).
275
+ * `a{sv}` type).
261
276
  *
262
277
  * Since: 2.30
263
278
  **/
@@ -266,19 +281,20 @@ typedef struct _GVariantType GVariantType;
266
281
 
267
282
  /**
268
283
  * G_VARIANT_TYPE:
269
- * @type_string: a well-formed #GVariantType type string
284
+ * @type_string: a well-formed [type@GLib.VariantType] type string
285
+ *
286
+ * Converts a string to a const [type@GLib.VariantType].
270
287
  *
271
- * Converts a string to a const #GVariantType. Depending on the
272
- * current debugging level, this function may perform a runtime check
273
- * to ensure that @string is a valid GVariant type string.
288
+ * Depending on the current debugging level, this function may perform a runtime
289
+ * check to ensure that @string is a valid [type@GLib.Variant] type string.
274
290
  *
275
291
  * It is always a programmer error to use this macro with an invalid
276
- * type string. If in doubt, use g_variant_type_string_is_valid() to
292
+ * type string. If in doubt, use [func@GLib.variant_type_string_is_valid] to
277
293
  * check if the string is valid.
278
294
  *
279
295
  * Since 2.24
280
296
  **/
281
- #ifndef G_DISABLE_CHECKS
297
+ #ifndef G_DISABLE_CAST_CHECKS
282
298
  # define G_VARIANT_TYPE(type_string) (g_variant_type_checked_ ((type_string)))
283
299
  #else
284
300
  # define G_VARIANT_TYPE(type_string) ((const GVariantType *) (type_string))
@@ -286,7 +302,7 @@ typedef struct _GVariantType GVariantType;
286
302
 
287
303
  /* type string checking */
288
304
  GLIB_AVAILABLE_IN_ALL
289
- gboolean g_variant_type_string_is_valid (const gchar *type_string);
305
+ gboolean g_variant_type_string_is_valid (const gchar *type_string) G_GNUC_CONST;
290
306
  GLIB_AVAILABLE_IN_ALL
291
307
  gboolean g_variant_type_string_scan (const gchar *string,
292
308
  const gchar *limit,
@@ -310,21 +326,21 @@ gchar * g_variant_type_dup_string (const G
310
326
 
311
327
  /* classification */
312
328
  GLIB_AVAILABLE_IN_ALL
313
- gboolean g_variant_type_is_definite (const GVariantType *type);
329
+ gboolean g_variant_type_is_definite (const GVariantType *type) G_GNUC_CONST;
314
330
  GLIB_AVAILABLE_IN_ALL
315
- gboolean g_variant_type_is_container (const GVariantType *type);
331
+ gboolean g_variant_type_is_container (const GVariantType *type) G_GNUC_CONST;
316
332
  GLIB_AVAILABLE_IN_ALL
317
- gboolean g_variant_type_is_basic (const GVariantType *type);
333
+ gboolean g_variant_type_is_basic (const GVariantType *type) G_GNUC_CONST;
318
334
  GLIB_AVAILABLE_IN_ALL
319
- gboolean g_variant_type_is_maybe (const GVariantType *type);
335
+ gboolean g_variant_type_is_maybe (const GVariantType *type) G_GNUC_CONST;
320
336
  GLIB_AVAILABLE_IN_ALL
321
- gboolean g_variant_type_is_array (const GVariantType *type);
337
+ gboolean g_variant_type_is_array (const GVariantType *type) G_GNUC_CONST;
322
338
  GLIB_AVAILABLE_IN_ALL
323
- gboolean g_variant_type_is_tuple (const GVariantType *type);
339
+ gboolean g_variant_type_is_tuple (const GVariantType *type) G_GNUC_CONST;
324
340
  GLIB_AVAILABLE_IN_ALL
325
- gboolean g_variant_type_is_dict_entry (const GVariantType *type);
341
+ gboolean g_variant_type_is_dict_entry (const GVariantType *type) G_GNUC_CONST;
326
342
  GLIB_AVAILABLE_IN_ALL
327
- gboolean g_variant_type_is_variant (const GVariantType *type);
343
+ gboolean g_variant_type_is_variant (const GVariantType *type) G_GNUC_CONST;
328
344
 
329
345
  /* for hash tables */
330
346
  GLIB_AVAILABLE_IN_ALL
@@ -336,21 +352,21 @@ gboolean g_variant_type_equal (gconstp
336
352
  /* subtypes */
337
353
  GLIB_AVAILABLE_IN_ALL
338
354
  gboolean g_variant_type_is_subtype_of (const GVariantType *type,
339
- const GVariantType *supertype);
355
+ const GVariantType *supertype) G_GNUC_CONST;
340
356
 
341
357
  /* type iterator interface */
342
358
  GLIB_AVAILABLE_IN_ALL
343
- const GVariantType * g_variant_type_element (const GVariantType *type);
359
+ const GVariantType * g_variant_type_element (const GVariantType *type) G_GNUC_CONST;
344
360
  GLIB_AVAILABLE_IN_ALL
345
- const GVariantType * g_variant_type_first (const GVariantType *type);
361
+ const GVariantType * g_variant_type_first (const GVariantType *type) G_GNUC_CONST;
346
362
  GLIB_AVAILABLE_IN_ALL
347
- const GVariantType * g_variant_type_next (const GVariantType *type);
363
+ const GVariantType * g_variant_type_next (const GVariantType *type) G_GNUC_CONST;
348
364
  GLIB_AVAILABLE_IN_ALL
349
- gsize g_variant_type_n_items (const GVariantType *type);
365
+ gsize g_variant_type_n_items (const GVariantType *type) G_GNUC_CONST;
350
366
  GLIB_AVAILABLE_IN_ALL
351
- const GVariantType * g_variant_type_key (const GVariantType *type);
367
+ const GVariantType * g_variant_type_key (const GVariantType *type) G_GNUC_CONST;
352
368
  GLIB_AVAILABLE_IN_ALL
353
- const GVariantType * g_variant_type_value (const GVariantType *type);
369
+ const GVariantType * g_variant_type_value (const GVariantType *type) G_GNUC_CONST;
354
370
 
355
371
  /* constructors */
356
372
  GLIB_AVAILABLE_IN_ALL
@@ -404,6 +404,15 @@
404
404
  * Since: 2.82
405
405
  */
406
406
  #define GLIB_VERSION_2_82 (G_ENCODE_VERSION (2, 82))
407
+ /**
408
+ * GLIB_VERSION_2_84:
409
+ *
410
+ * A macro that evaluates to the 2.84 version of GLib, in a format
411
+ * that can be used by the C pre-processor.
412
+ *
413
+ * Since: 2.84
414
+ */
415
+ #define GLIB_VERSION_2_84 (G_ENCODE_VERSION (2, 84))
407
416
 
408
417
  /**
409
418
  * GLIB_VERSION_CUR_STABLE: