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

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 (119) 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/archive.h +3 -3
  6. package/include/archive_entry.h +3 -2
  7. package/include/cairo/cairo-version.h +1 -1
  8. package/include/expat.h +6 -4
  9. package/include/expat_config.h +3 -3
  10. package/include/ffi.h +1 -1
  11. package/include/fontconfig/fcfreetype.h +5 -5
  12. package/include/fontconfig/fcprivate.h +86 -92
  13. package/include/fontconfig/fontconfig.h +337 -310
  14. package/include/gio-unix-2.0/gio/gdesktopappinfo.h +1 -1
  15. package/include/gio-unix-2.0/gio/gunixmounts.h +95 -23
  16. package/include/glib-2.0/gio/gdbusconnection.h +65 -5
  17. package/include/glib-2.0/gio/gdebugcontroller.h +1 -1
  18. package/include/glib-2.0/gio/gfile.h +4 -0
  19. package/include/glib-2.0/gio/gio-visibility.h +34 -0
  20. package/include/glib-2.0/gio/gioenums.h +14 -3
  21. package/include/glib-2.0/gio/gioenumtypes.h +3 -3
  22. package/include/glib-2.0/gio/giotypes.h +4 -4
  23. package/include/glib-2.0/gio/gmemorymonitor.h +1 -1
  24. package/include/glib-2.0/gio/gnetworkmonitor.h +1 -1
  25. package/include/glib-2.0/gio/gpowerprofilemonitor.h +1 -1
  26. package/include/glib-2.0/gio/gproxy.h +1 -1
  27. package/include/glib-2.0/gio/gproxyresolver.h +1 -1
  28. package/include/glib-2.0/gio/gresource.h +6 -0
  29. package/include/glib-2.0/gio/gtlsbackend.h +1 -1
  30. package/include/glib-2.0/gio/gvfs.h +3 -3
  31. package/include/glib-2.0/gio/gvolumemonitor.h +1 -1
  32. package/include/glib-2.0/girepository/gi-visibility.h +34 -0
  33. package/include/glib-2.0/girepository/gicallableinfo.h +12 -0
  34. package/include/glib-2.0/girepository/gitypes.h +1 -0
  35. package/include/glib-2.0/glib/garray.h +1 -1
  36. package/include/glib-2.0/glib/gerror.h +1 -1
  37. package/include/glib-2.0/glib/glib-visibility.h +34 -0
  38. package/include/glib-2.0/glib/gmacros.h +3 -3
  39. package/include/glib-2.0/glib/gmain.h +79 -1
  40. package/include/glib-2.0/glib/gmem.h +3 -0
  41. package/include/glib-2.0/glib/goption.h +58 -36
  42. package/include/glib-2.0/glib/gqueue.h +1 -1
  43. package/include/glib-2.0/glib/grefstring.h +4 -0
  44. package/include/glib-2.0/glib/gstdio.h +65 -0
  45. package/include/glib-2.0/glib/gstrfuncs.h +4 -0
  46. package/include/glib-2.0/glib/gtestutils.h +65 -33
  47. package/include/glib-2.0/glib/gthread.h +2 -0
  48. package/include/glib-2.0/glib/gtypes.h +1 -1
  49. package/include/glib-2.0/glib/gunicode.h +21 -5
  50. package/include/glib-2.0/glib/gvariant.h +50 -13
  51. package/include/glib-2.0/glib/gvarianttype.h +62 -46
  52. package/include/glib-2.0/glib/gversionmacros.h +9 -0
  53. package/include/glib-2.0/glib-unix.h +21 -0
  54. package/include/glib-2.0/gmodule/gmodule-visibility.h +34 -0
  55. package/include/glib-2.0/gobject/glib-enumtypes.h +1 -1
  56. package/include/glib-2.0/gobject/gobject-visibility.h +34 -0
  57. package/include/glib-2.0/gobject/gobjectnotifyqueue.c +1 -1
  58. package/include/glib-2.0/gobject/gparam.h +4 -2
  59. package/include/glib-2.0/gobject/gsignal.h +22 -7
  60. package/include/glib-2.0/gobject/gtype.h +10 -4
  61. package/include/harfbuzz/hb-buffer.h +62 -3
  62. package/include/harfbuzz/hb-common.h +11 -0
  63. package/include/harfbuzz/hb-draw.h +10 -2
  64. package/include/harfbuzz/hb-face.h +29 -2
  65. package/include/harfbuzz/hb-font.h +6 -0
  66. package/include/harfbuzz/hb-ft.h +15 -1
  67. package/include/harfbuzz/hb-ot-shape.h +6 -0
  68. package/include/harfbuzz/hb-paint.h +9 -1
  69. package/include/harfbuzz/hb-shape.h +2 -0
  70. package/include/harfbuzz/hb-subset-serialize.h +83 -0
  71. package/include/harfbuzz/hb-subset.h +12 -0
  72. package/include/harfbuzz/hb-version.h +3 -3
  73. package/include/lcms2.h +7 -5
  74. package/include/lcms2_plugin.h +1 -1
  75. package/include/libexif/exif-byte-order.h +2 -0
  76. package/include/libexif/exif-content.h +2 -0
  77. package/include/libexif/exif-data-type.h +2 -0
  78. package/include/libexif/exif-data.h +3 -2
  79. package/include/libexif/exif-entry.h +2 -0
  80. package/include/libexif/exif-format.h +2 -0
  81. package/include/libexif/exif-ifd.h +2 -0
  82. package/include/libexif/exif-loader.h +2 -0
  83. package/include/libexif/exif-log.h +2 -0
  84. package/include/libexif/exif-mem.h +2 -0
  85. package/include/libexif/exif-mnote-data.h +2 -0
  86. package/include/libexif/exif-tag.h +2 -0
  87. package/include/libexif/exif-utils.h +2 -0
  88. package/include/libheif/heif.h +12 -3
  89. package/include/libheif/heif_cxx.h +18 -12
  90. package/include/libheif/heif_items.h +2 -2
  91. package/include/libheif/heif_properties.h +4 -4
  92. package/include/libheif/heif_version.h +2 -2
  93. package/include/libpng16/png.h +120 -12
  94. package/include/libpng16/pngconf.h +2 -3
  95. package/include/libpng16/pnglibconf.h +11 -2
  96. package/include/librsvg-2.0/librsvg/rsvg-features.h +1 -1
  97. package/include/librsvg-2.0/librsvg/rsvg-pixbuf.h +1 -1
  98. package/include/librsvg-2.0/librsvg/rsvg-version.h +3 -3
  99. package/include/librsvg-2.0/librsvg/rsvg.h +1 -1
  100. package/include/libxml2/libxml/xmlversion.h +4 -4
  101. package/include/pango-1.0/pango/pango-features.h +3 -3
  102. package/include/pango-1.0/pango/pango-font.h +32 -3
  103. package/include/pango-1.0/pango/pango-fontmap.h +4 -0
  104. package/include/pango-1.0/pango/pango-layout.h +10 -1
  105. package/include/pango-1.0/pango/pango-version-macros.h +52 -0
  106. package/include/pango-1.0/pango/pangofc-fontmap.h +6 -0
  107. package/include/pixman-1/pixman-version.h +3 -3
  108. package/include/png.h +120 -12
  109. package/include/pngconf.h +2 -3
  110. package/include/pnglibconf.h +11 -2
  111. package/include/vips/colour.h +2 -0
  112. package/include/vips/version.h +4 -4
  113. package/include/webp/encode.h +5 -4
  114. package/include/webp/sharpyuv/sharpyuv.h +14 -5
  115. package/include/webp/sharpyuv/sharpyuv_csp.h +5 -0
  116. package/include/webp/types.h +2 -2
  117. package/include/zlib.h +4 -4
  118. package/package.json +1 -1
  119. package/versions.json +20 -20
@@ -1018,3 +1018,37 @@
1018
1018
  #define GLIB_AVAILABLE_ENUMERATOR_IN_2_82
1019
1019
  #define GLIB_AVAILABLE_TYPE_IN_2_82
1020
1020
  #endif
1021
+
1022
+ #if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_84
1023
+ #define GLIB_DEPRECATED_IN_2_84 GLIB_DEPRECATED
1024
+ #define GLIB_DEPRECATED_IN_2_84_FOR(f) GLIB_DEPRECATED_FOR (f)
1025
+ #define GLIB_DEPRECATED_MACRO_IN_2_84 GLIB_DEPRECATED_MACRO
1026
+ #define GLIB_DEPRECATED_MACRO_IN_2_84_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f)
1027
+ #define GLIB_DEPRECATED_ENUMERATOR_IN_2_84 GLIB_DEPRECATED_ENUMERATOR
1028
+ #define GLIB_DEPRECATED_ENUMERATOR_IN_2_84_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f)
1029
+ #define GLIB_DEPRECATED_TYPE_IN_2_84 GLIB_DEPRECATED_TYPE
1030
+ #define GLIB_DEPRECATED_TYPE_IN_2_84_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f)
1031
+ #else
1032
+ #define GLIB_DEPRECATED_IN_2_84 _GLIB_EXTERN
1033
+ #define GLIB_DEPRECATED_IN_2_84_FOR(f) _GLIB_EXTERN
1034
+ #define GLIB_DEPRECATED_MACRO_IN_2_84
1035
+ #define GLIB_DEPRECATED_MACRO_IN_2_84_FOR(f)
1036
+ #define GLIB_DEPRECATED_ENUMERATOR_IN_2_84
1037
+ #define GLIB_DEPRECATED_ENUMERATOR_IN_2_84_FOR(f)
1038
+ #define GLIB_DEPRECATED_TYPE_IN_2_84
1039
+ #define GLIB_DEPRECATED_TYPE_IN_2_84_FOR(f)
1040
+ #endif
1041
+
1042
+ #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_84
1043
+ #define GLIB_AVAILABLE_IN_2_84 GLIB_UNAVAILABLE (2, 84)
1044
+ #define GLIB_AVAILABLE_STATIC_INLINE_IN_2_84 GLIB_UNAVAILABLE_STATIC_INLINE (2, 84)
1045
+ #define GLIB_AVAILABLE_MACRO_IN_2_84 GLIB_UNAVAILABLE_MACRO (2, 84)
1046
+ #define GLIB_AVAILABLE_ENUMERATOR_IN_2_84 GLIB_UNAVAILABLE_ENUMERATOR (2, 84)
1047
+ #define GLIB_AVAILABLE_TYPE_IN_2_84 GLIB_UNAVAILABLE_TYPE (2, 84)
1048
+ #else
1049
+ #define GLIB_AVAILABLE_IN_2_84 _GLIB_EXTERN
1050
+ #define GLIB_AVAILABLE_STATIC_INLINE_IN_2_84
1051
+ #define GLIB_AVAILABLE_MACRO_IN_2_84
1052
+ #define GLIB_AVAILABLE_ENUMERATOR_IN_2_84
1053
+ #define GLIB_AVAILABLE_TYPE_IN_2_84
1054
+ #endif
@@ -190,6 +190,8 @@
190
190
  #define g_macro__has_attribute_fallthrough G_GNUC_CHECK_VERSION (6, 0)
191
191
  #define g_macro__has_attribute_may_alias G_GNUC_CHECK_VERSION (3, 3)
192
192
  #define g_macro__has_attribute_warn_unused_result G_GNUC_CHECK_VERSION (3, 4)
193
+ #define g_macro__has_attribute_no_sanitize_address 0
194
+ #define g_macro__has_attribute_ifunc 0
193
195
 
194
196
  #endif
195
197
 
@@ -1237,11 +1239,9 @@
1237
1239
  #if G_GNUC_CHECK_VERSION(2, 0) && defined(__OPTIMIZE__)
1238
1240
  #define _G_BOOLEAN_EXPR_IMPL(uniq, expr) \
1239
1241
  G_GNUC_EXTENSION ({ \
1240
- int G_PASTE (_g_boolean_var_, uniq); \
1242
+ int G_PASTE (_g_boolean_var_, uniq) = 0; \
1241
1243
  if (expr) \
1242
1244
  G_PASTE (_g_boolean_var_, uniq) = 1; \
1243
- else \
1244
- G_PASTE (_g_boolean_var_, uniq) = 0; \
1245
1245
  G_PASTE (_g_boolean_var_, uniq); \
1246
1246
  })
1247
1247
  #define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
@@ -275,7 +275,7 @@ struct _GSource
275
275
  GMainContext *context;
276
276
 
277
277
  gint priority;
278
- guint flags;
278
+ guint flags; /* (atomic) */
279
279
  guint source_id;
280
280
 
281
281
  GSList *poll_fds;
@@ -634,6 +634,9 @@ typedef void GMainContextPusher GLIB_AVAILABLE_TYPE_IN_2_64;
634
634
  * Since: 2.64
635
635
  */
636
636
  G_GNUC_BEGIN_IGNORE_DEPRECATIONS
637
+ GLIB_AVAILABLE_STATIC_INLINE_IN_2_64
638
+ static inline GMainContextPusher *g_main_context_pusher_new (GMainContext *main_context);
639
+
637
640
  GLIB_AVAILABLE_STATIC_INLINE_IN_2_64
638
641
  static inline GMainContextPusher *
639
642
  g_main_context_pusher_new (GMainContext *main_context)
@@ -656,6 +659,9 @@ G_GNUC_END_IGNORE_DEPRECATIONS
656
659
  * Since: 2.64
657
660
  */
658
661
  G_GNUC_BEGIN_IGNORE_DEPRECATIONS
662
+ GLIB_AVAILABLE_STATIC_INLINE_IN_2_64
663
+ static inline void g_main_context_pusher_free (GMainContextPusher *pusher);
664
+
659
665
  GLIB_AVAILABLE_STATIC_INLINE_IN_2_64
660
666
  static inline void
661
667
  g_main_context_pusher_free (GMainContextPusher *pusher)
@@ -866,6 +872,54 @@ void g_clear_handle_id (guint *tag_ptr,
866
872
  } G_STMT_END \
867
873
  GLIB_AVAILABLE_MACRO_IN_2_56
868
874
 
875
+ /**
876
+ * g_steal_handle_id:
877
+ * @handle_pointer: (inout) (not optional): a pointer to a handle ID
878
+ *
879
+ * Sets @handle_pointer to `0`, returning the value that was there before.
880
+ *
881
+ * Conceptually, this transfers the ownership of the handle ID from the
882
+ * referenced variable to the ‘caller’ of the macro (ie: ‘steals’ the
883
+ * handle ID).
884
+ *
885
+ * This can be very useful to make ownership transfer explicit, or to prevent
886
+ * a handle from being released multiple times. For example:
887
+ *
888
+ * ```c
889
+ * void
890
+ * maybe_unsubscribe_signal (ContextStruct *data)
891
+ * {
892
+ * if (some_complex_logic (data))
893
+ * {
894
+ * g_dbus_connection_signal_unsubscribe (data->connection,
895
+ * g_steal_handle_id (&data->subscription_id));
896
+ * // now data->subscription_id isn’t a dangling handle
897
+ * }
898
+ * }
899
+ * ```
900
+ *
901
+ * While [func@GLib.clear_handle_id] can be used in many of the same situations
902
+ * as `g_steal_handle_id()`, this is one situation where it cannot be used, as
903
+ * there is no way to pass the `GDBusConnection` to a
904
+ * [type@GLib.ClearHandleFunc].
905
+ *
906
+ * Since: 2.84
907
+ */
908
+ GLIB_AVAILABLE_STATIC_INLINE_IN_2_84
909
+ static inline unsigned int g_steal_handle_id (unsigned int *handle_pointer);
910
+
911
+ GLIB_AVAILABLE_STATIC_INLINE_IN_2_84
912
+ static inline unsigned int
913
+ g_steal_handle_id (unsigned int *handle_pointer)
914
+ {
915
+ unsigned int handle;
916
+
917
+ handle = *handle_pointer;
918
+ *handle_pointer = 0;
919
+
920
+ return handle;
921
+ }
922
+
869
923
  /* Idles, child watchers and timeouts */
870
924
  GLIB_AVAILABLE_IN_ALL
871
925
  guint g_timeout_add_full (gint priority,
@@ -930,6 +984,30 @@ void g_main_context_invoke (GMainContext *context,
930
984
  GSourceFunc function,
931
985
  gpointer data);
932
986
 
987
+ /**
988
+ * g_steal_fd:
989
+ * @fd_ptr: (not optional) (inout): A pointer to a file descriptor
990
+ *
991
+ * Sets @fd_ptr to `-1`, returning the value that was there before.
992
+ *
993
+ * Conceptually, this transfers the ownership of the file descriptor
994
+ * from the referenced variable to the caller of the function (i.e.
995
+ * ‘steals’ the reference). This is very similar to [func@GLib.steal_pointer],
996
+ * but for file descriptors.
997
+ *
998
+ * On POSIX platforms, this function is async-signal safe
999
+ * (see [`signal(7)`](man:signal(7)) and
1000
+ * [`signal-safety(7)`](man:signal-safety(7))), making it safe to call from a
1001
+ * signal handler or a #GSpawnChildSetupFunc.
1002
+ *
1003
+ * This function preserves the value of `errno`.
1004
+ *
1005
+ * Returns: the value that @fd_ptr previously had
1006
+ * Since: 2.70
1007
+ */
1008
+ GLIB_AVAILABLE_STATIC_INLINE_IN_2_70
1009
+ static inline int g_steal_fd (int *fd_ptr);
1010
+
933
1011
  GLIB_AVAILABLE_STATIC_INLINE_IN_2_70
934
1012
  static inline int
935
1013
  g_steal_fd (int *fd_ptr)
@@ -229,6 +229,9 @@ void g_aligned_free_sized (gpointer mem,
229
229
  *
230
230
  * Since: 2.44
231
231
  */
232
+ GLIB_AVAILABLE_STATIC_INLINE_IN_2_44
233
+ static inline gpointer g_steal_pointer (gpointer pp);
234
+
232
235
  GLIB_AVAILABLE_STATIC_INLINE_IN_2_44
233
236
  static inline gpointer
234
237
  g_steal_pointer (gpointer pp)
@@ -55,32 +55,51 @@ typedef struct _GOptionEntry GOptionEntry;
55
55
 
56
56
  /**
57
57
  * GOptionFlags:
58
- * @G_OPTION_FLAG_NONE: No flags. Since: 2.42.
59
58
  * @G_OPTION_FLAG_HIDDEN: The option doesn't appear in `--help` output.
60
59
  * @G_OPTION_FLAG_IN_MAIN: The option appears in the main section of the
61
- * `--help` output, even if it is defined in a group.
60
+ * `--help` output, even if it is defined in a group.
62
61
  * @G_OPTION_FLAG_REVERSE: For options of the %G_OPTION_ARG_NONE kind, this
63
- * flag indicates that the sense of the option is reversed. i.e. %FALSE will
64
- * be stored into the argument rather than %TRUE.
62
+ * flag indicates that the sense of the option is reversed. i.e. %FALSE will
63
+ * be stored into the argument rather than %TRUE.
65
64
  * @G_OPTION_FLAG_NO_ARG: For options of the %G_OPTION_ARG_CALLBACK kind,
66
- * this flag indicates that the callback does not take any argument
67
- * (like a %G_OPTION_ARG_NONE option). Since 2.8
65
+ * this flag indicates that the callback does not take any argument
66
+ * (like a %G_OPTION_ARG_NONE option). Since 2.8
68
67
  * @G_OPTION_FLAG_FILENAME: For options of the %G_OPTION_ARG_CALLBACK
69
- * kind, this flag indicates that the argument should be passed to the
70
- * callback in the GLib filename encoding rather than UTF-8. Since 2.8
68
+ * kind, this flag indicates that the argument should be passed to the
69
+ * callback in the GLib filename encoding rather than UTF-8. Since 2.8
71
70
  * @G_OPTION_FLAG_OPTIONAL_ARG: For options of the %G_OPTION_ARG_CALLBACK
72
- * kind, this flag indicates that the argument supply is optional.
73
- * If no argument is given then data of %GOptionParseFunc will be
74
- * set to NULL. Since 2.8
71
+ * kind, this flag indicates that the argument supply is optional.
72
+ * If no argument is given then data of %GOptionParseFunc will be
73
+ * set to NULL. Since 2.8
75
74
  * @G_OPTION_FLAG_NOALIAS: This flag turns off the automatic conflict
76
- * resolution which prefixes long option names with `groupname-` if
77
- * there is a conflict. This option should only be used in situations
78
- * where aliasing is necessary to model some legacy commandline interface.
79
- * It is not safe to use this option, unless all option groups are under
80
- * your direct control. Since 2.8.
75
+ * resolution which prefixes long option names with `groupname-` if
76
+ * there is a conflict. This option should only be used in situations
77
+ * where aliasing is necessary to model some legacy commandline interface.
78
+ * It is not safe to use this option, unless all option groups are under
79
+ * your direct control. Since 2.8.
81
80
  *
82
81
  * Flags which modify individual options.
83
82
  */
83
+
84
+ /**
85
+ * G_OPTION_FLAG_NONE:
86
+ *
87
+ * No flags.
88
+ *
89
+ * Since: 2.42
90
+ */
91
+
92
+ /**
93
+ * G_OPTION_FLAG_DEPRECATED:
94
+ *
95
+ * This flag marks the option as deprecated in the `--help`.
96
+ *
97
+ * You should update the description of the option to describe what
98
+ * the user should do in response to the deprecation, for instance:
99
+ * remove the option, or replace it with another one.
100
+ *
101
+ * Since: 2.84
102
+ */
84
103
  typedef enum
85
104
  {
86
105
  G_OPTION_FLAG_NONE = 0,
@@ -90,7 +109,8 @@ typedef enum
90
109
  G_OPTION_FLAG_NO_ARG = 1 << 3,
91
110
  G_OPTION_FLAG_FILENAME = 1 << 4,
92
111
  G_OPTION_FLAG_OPTIONAL_ARG = 1 << 5,
93
- G_OPTION_FLAG_NOALIAS = 1 << 6
112
+ G_OPTION_FLAG_NOALIAS = 1 << 6,
113
+ G_OPTION_FLAG_DEPRECATED GLIB_AVAILABLE_ENUMERATOR_IN_2_84 = 1 << 7
94
114
  } GOptionFlags;
95
115
 
96
116
  /**
@@ -98,21 +118,21 @@ typedef enum
98
118
  * @G_OPTION_ARG_NONE: No extra argument. This is useful for simple flags or booleans.
99
119
  * @G_OPTION_ARG_STRING: The option takes a UTF-8 string argument.
100
120
  * @G_OPTION_ARG_INT: The option takes an integer argument.
101
- * @G_OPTION_ARG_CALLBACK: The option provides a callback (of type
102
- * #GOptionArgFunc) to parse the extra argument.
121
+ * @G_OPTION_ARG_CALLBACK: The option provides a callback (of type #GOptionArgFunc)
122
+ * to parse the extra argument.
103
123
  * @G_OPTION_ARG_FILENAME: The option takes a filename as argument, which will
104
- be in the GLib filename encoding rather than UTF-8.
124
+ be in the GLib filename encoding rather than UTF-8.
105
125
  * @G_OPTION_ARG_STRING_ARRAY: The option takes a string argument, multiple
106
- * uses of the option are collected into an array of strings.
126
+ * uses of the option are collected into an array of strings.
107
127
  * @G_OPTION_ARG_FILENAME_ARRAY: The option takes a filename as argument,
108
- * multiple uses of the option are collected into an array of strings.
128
+ * multiple uses of the option are collected into an array of strings.
109
129
  * @G_OPTION_ARG_DOUBLE: The option takes a double argument. The argument
110
- * can be formatted either for the user's locale or for the "C" locale.
111
- * Since 2.12
130
+ * can be formatted either for the user's locale or for the "C" locale.
131
+ * Since 2.12
112
132
  * @G_OPTION_ARG_INT64: The option takes a 64-bit integer. Like
113
- * %G_OPTION_ARG_INT but for larger numbers. The number can be in
114
- * decimal base, or in hexadecimal (when prefixed with `0x`, for
115
- * example, `0xffffffff`). Since 2.12
133
+ * %G_OPTION_ARG_INT but for larger numbers. The number can be in
134
+ * decimal base, or in hexadecimal (when prefixed with `0x`, for
135
+ * example, `0xffffffff`). Since 2.12
116
136
  *
117
137
  * The #GOptionArg enum values determine which type of extra argument the
118
138
  * options expect to find. If an option expects an extra argument, it can
@@ -221,7 +241,7 @@ GQuark g_option_error_quark (void);
221
241
  * @long_name: The long name of an option can be used to specify it
222
242
  * in a commandline as `--long_name`. Every option must have a
223
243
  * long name. To resolve conflicts if multiple option groups contain
224
- * the same long name, it is also possible to specify the option as
244
+ * the same long name, it is also possible to specify the option as
225
245
  * `--groupname-long_name`.
226
246
  * @short_name: If an option has a short name, it can be specified
227
247
  * `-short_name` in a commandline. @short_name must be a printable
@@ -234,13 +254,15 @@ GQuark g_option_error_quark (void);
234
254
  * called to handle the extra argument. Otherwise, @arg_data is a
235
255
  * pointer to a location to store the value, the required type of
236
256
  * the location depends on the @arg type:
237
- * - %G_OPTION_ARG_NONE: %gboolean
238
- * - %G_OPTION_ARG_STRING: %gchar*
239
- * - %G_OPTION_ARG_INT: %gint
240
- * - %G_OPTION_ARG_FILENAME: %gchar*
241
- * - %G_OPTION_ARG_STRING_ARRAY: %gchar**
242
- * - %G_OPTION_ARG_FILENAME_ARRAY: %gchar**
243
- * - %G_OPTION_ARG_DOUBLE: %gdouble
257
+ *
258
+ * - %G_OPTION_ARG_NONE: %gboolean
259
+ * - %G_OPTION_ARG_STRING: %gchar*
260
+ * - %G_OPTION_ARG_INT: %gint
261
+ * - %G_OPTION_ARG_FILENAME: %gchar*
262
+ * - %G_OPTION_ARG_STRING_ARRAY: %gchar**
263
+ * - %G_OPTION_ARG_FILENAME_ARRAY: %gchar**
264
+ * - %G_OPTION_ARG_DOUBLE: %gdouble
265
+ *
244
266
  * If @arg type is %G_OPTION_ARG_STRING or %G_OPTION_ARG_FILENAME,
245
267
  * the location will contain a newly allocated string if the option
246
268
  * was given. That string needs to be freed by the callee using g_free().
@@ -253,7 +275,7 @@ GQuark g_option_error_quark (void);
253
275
  * by the option in `--help` output. The @arg_description is translated
254
276
  * using the @translate_func of the group, see
255
277
  * g_option_group_set_translation_domain().
256
- *
278
+ *
257
279
  * A GOptionEntry struct defines a single option. To have an effect, they
258
280
  * must be added to a #GOptionGroup with g_option_context_add_main_entries()
259
281
  * or g_option_group_add_entries().
@@ -44,7 +44,7 @@ typedef struct _GQueue GQueue;
44
44
  * @length: the number of elements in the queue
45
45
  *
46
46
  * Contains the public fields of a
47
- * [Queue][glib-Double-ended-Queues].
47
+ * [Queue](data-structures.html#double-ended-queues).
48
48
  */
49
49
  struct _GQueue
50
50
  {
@@ -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