27193 Commits

Author SHA1 Message Date
Michael Catanzaro
1db9976099 Merge branch 'backport-3400-error-literals-dngettext-glib-2-76' into 'glib-2-76'
Backport !3400 “Revert "Fix error format in gio/gunixconnection.c (part 2)"” to glib-2-76

See merge request GNOME/glib!3403
2023-04-26 18:02:40 +00:00
James Knight
aae4df5c6b gio: switch gunixconnection ngettext with g_dngettext calls
This commit changes the use of `ngettext` with `g_dngettext`. The
project defined `g_dngettext` (with domain support) provides the same
functionality as `ngettext` with a NULL domain provided. The purpose of
this change is to help address a build error for certain compilers that
trigger a `format-nonliteral` error-promoted-warning when using
`ngettext` (see also [1][2]). The benefit of switching to use
`g_dngettext` is that the function is defined with `G_GNUC_FORMAT`. This
provides a hint to GNU GCC compilers to still sanity check these
arguments, but not generate a `format-nonliteral`.

[1]: 4ae8606b6f80f9764e1f0a82cea7e23c8af487ae
[2]: 0ca660315a9044696f778da087a6e3dd8910a765

Signed-off-by: James Knight <james.d.knight@live.com>
2023-04-26 17:30:18 +01:00
James Knight
a47bd14e83 Revert "Fix error format in gio/gunixconnection.c (part 2)"
This reverts commit 4ae8606b6f80f9764e1f0a82cea7e23c8af487ae. The idea
for the change [1] was to address a build error for certain compilers
that trigger a `format-nonliteral` error-promoted-warning since these
compilers do not gracefully support `ngettext` usage. The changes
following a pattern from an old commit [2]; however, James Hilliard has
pointed out these changes do not work as intended. A deeper inspection
of the commit showed that the commit was from an old merge request that
was not pulled in, detailing why the changes did not work (see also
[3][4]).

Manipulating the sockets unit test confirms that the format values no
longer get a proper value:

    ...
    ok 9 /socket/address
    ok 10 /socket/unix-from-fd
    ok 11 /socket/unix-connection
    **
    GLib-GIO:ERROR:../gio/tests/socket.c:1493:test_unix_connection_ancillary_data: assertion failed (err == NULL): Expecting one fd, but got %d
     (g-io-error-quark, 0)
    ...

And reverting this change restores the original functionality:

    ...
    ok 9 /socket/address
    ok 10 /socket/unix-from-fd
    ok 11 /socket/unix-connection
    **
    GLib-GIO:ERROR:../gio/tests/socket.c:1493:test_unix_connection_ancillary_data: assertion failed (err == NULL): Expecting 1 control message, got 0 (g-io-error-quark, 0)
    ...

[1]: https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3390
[2]: 44b3d5d80445234041f6c59feb89645f7102c3a4
[3]: https://gitlab.gnome.org/GNOME/glib/-/merge_requests/770
[4]: https://gitlab.gnome.org/GNOME/glib/-/issues/1744

Signed-off-by: James Knight <james.d.knight@live.com>
2023-04-26 17:30:18 +01:00
Peter Kjellerstedt
d5c5685ad3 Avoid having g_futex_simple() inadvertently modify errno
If both __NR_futex and __NR_futex_time64 are defined, g_futex_simple()
will first call futex_time64(). If that fails with ENOSYS, then
futex_time() is called instead. However, errno was not saved and
restored in this case, which would result in g_futex_simple()
returning with errno set to ENOSYS, even if futex_time() succeeded.
2023-04-26 15:06:37 +01:00
Marco Trevisan (Treviño)
41ae5b5632
2.76.2
Signed-off-by: Marco Trevisan (Treviño) <mail@3v1n0.net>
2.76.2
2023-04-21 16:46:05 +02:00
Marco Trevisan (Treviño)
4ed5539d0a gmodule: Define a gmodule include dependency and use it in gio modules
Various gio modules include gmodule.h that requires the
gmodule-visibility.h to be already built.

To make this easier, just provide a dependency and use it where we are
building modules that do not depend on libgio_dep (that already includes
that).

Fixes: https://gitlab.gnome.org/GNOME/glib/-/issues/2982


(cherry picked from commit fe38a02c62c2ceff43a539efa3a31fe2ee72b4fe)
2023-04-21 10:00:34 -04:00
James Knight
e82348db62 Fix error format in gio/gunixconnection.c (part 2)
Update a series of error messages to use `g_set_error_literal` instead
of `g_set_error`. This should prevent `format-nonliteral` compiler
issues when `-Werror` is configured:

    ../gio/gunixconnection.c: In function ‘g_unix_connection_receive_fd’:
    ../gio/gunixconnection.c:183:9: error: format not a string literal, argument types not checked [-Werror=format-nonliteral]
      183 |         nscm);
          |         ^~~~
    ../gio/gunixconnection.c:217:20: error: format not a string literal, argument types not checked [-Werror=format-nonliteral]
      217 |                    nfd);
          |                    ^~~
    ../gio/gunixconnection.c: In function ‘g_unix_connection_receive_credentials’:
    ../gio/gunixconnection.c:601:24: error: format not a string literal, argument types not checked [-Werror=format-nonliteral]
      601 |                        nscm);
          |                        ^~~~

This is similar to a previous change [1] made to `gunixconnection.c`.

[1]: 44b3d5d80445234041f6c59feb89645f7102c3a4

Signed-off-by: James Knight <james.d.knight@live.com>


(cherry picked from commit 4ae8606b6f80f9764e1f0a82cea7e23c8af487ae)
2023-04-21 08:05:50 -04:00
Marco Trevisan (Treviño)
aa3e3225a7 appmonitor: Skip the test under OSX
Since commit c0ca3f99 this test is strictly depending on GDesktopAppInfo
that is not defined or available in macos, so skip the test as we do for
windows.

We could have done this at meson level too, but keeping it this way is
probably a better reminder that this should be adapted for such scenario
one day™

See: https://gitlab.gnome.org/GNOME/glib/-/jobs/2753753


(cherry picked from commit d296e9455976f1bcf62a83750606befff72aa06e)
2023-04-20 13:10:00 -04:00
badcel
fd92dfd78a gsocket: Explicitly mark size parameter as (in)
The generated gir file marks the size parameter as "out" by default. This is wrong in the context of a caller allocated buffer with a given size. Explicitly marking the size parameter as (in) fixes the issue.


(cherry picked from commit f510fa02273e67323c0a91bfb3dca6b00b2147ad)
2023-04-20 08:46:14 -04:00
Marco Trevisan (Treviño)
d677b483a7 gmacros: Do not redefine NULL on C++
Even though having NULL as nullptr should be the standard for newer C++
versions, it may break some headers, so let's not touch it for now.

Closes: https://gitlab.gnome.org/GNOME/glib/-/issues/2973


(cherry picked from commit 164f199afc26eb684d0577d67b2b569595be2397)
2023-04-20 08:37:27 -04:00
Marco Trevisan
45300ae6ea Merge branch 'signal-handler-matching-docs' into 'main'
gsignal: Clarify documentation for GSignalMatchType matching

See merge request GNOME/glib!3377
2023-04-14 13:53:49 +00:00
Philip Withnall
2d8e38c00d gsignal: Clarify documentation for GSignalMatchType matching
The use of ‘OR’ in the existing documentation suggests that the matching
is disjunctive, but it’s actually conjunctive. Clarify that in the
documentation and add a test.

Spotted while reviewing
https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3376.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2023-04-14 13:55:20 +01:00
Emmanuele Bassi
2f828ef2d4 Merge branch '95-markup-docs' into 'main'
docs: Add simple GMarkup parser example

Closes #95

See merge request GNOME/glib!3364
2023-04-13 21:37:41 +00:00
Emmanuele Bassi
b94d0c2168 Merge branch '799-app-info-monitor-docs' into 'main'
gappinfo: Clarify one-shot behaviour of GAppInfoMonitor::changed in docs

Closes #799

See merge request GNOME/glib!3346
2023-04-13 21:37:36 +00:00
Emmanuele Bassi
2af45f9c20 Merge branch 'libicu-tests' into 'main'
unicode: add tests for g_utf8_normalize() and empty strings

See merge request GNOME/glib!3326
2023-04-13 21:35:51 +00:00
Emmanuele Bassi
18ae2a3d4e Merge branch '322-proxy-subclass-example' into 'main'
tests: Finish update of gdbus-example-proxy-subclass to new GDBus API

Closes #322

See merge request GNOME/glib!3332
2023-04-13 21:35:13 +00:00
Emmanuele Bassi
2972cb61f5 Merge branch 'update-unicode-normalisation-tests' into 'main'
tests: Update Unicode normalisation tests from Unicode 15

See merge request GNOME/glib!3351
2023-04-13 21:33:23 +00:00
Emmanuele Bassi
28209912ef Merge branch '2969-date-time-format-docs' into 'main'
gdatetime: Improve Markdown formatting of g_date_time_format() docs

Closes #2969

See merge request GNOME/glib!3362
2023-04-13 21:32:57 +00:00
Philip Withnall
9e83c0e37e Merge branch 'docs-2963' into 'main'
README.win32.md: Update info for G_PLATFORM_WIN32

Closes #2963

See merge request GNOME/glib!3363
2023-04-13 15:27:49 +00:00
Emmanuele Bassi
ee119b4f02 Merge branch '252-classed-docs' into 'main'
gtype: Improve documentation for G_TYPE_IS_CLASSED and interfaces

Closes #252

See merge request GNOME/glib!3374
2023-04-13 14:52:47 +00:00
Philip Withnall
d1eb9c840c tests: Add type flag tests for interfaces
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Helps: #252
2023-04-13 15:39:37 +01:00
Philip Withnall
783f1b8640 gtype: Improve documentation for G_TYPE_IS_CLASSED and interfaces
The documentation previously implicitly said in a few places that
interfaces are classed, but reading through the implementation of
`GType`, I don’t think they are. If they were, the registration of the
fundamental `G_TYPE_INTERFACE` in `gobject_init()` would specify
`G_TYPE_FLAG_CLASSED`. It only specifies `G_TYPE_FLAG_DERIVABLE`.

I think this makes sense, because you can’t subclass an interface.
Subclassing is a key property of being classed.

Tweak the `GType` tutorial to remove that implicit statement, and expand
the documentation for `G_TYPE_IS_CLASSED`.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Fixes: #252
2023-04-13 15:37:00 +01:00
Philip Withnall
c1e0506d86 gtype: Clarify return value documentation
‘returns TRUE on success’ is misleading for a lot of these macros, as
they are checking whether a type has a certain property. Such a check
could be successful but return `FALSE`, by the normal meaning of the
word ‘success’.

Instead, reword the docs to spell out when `TRUE` will be returned.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2023-04-13 13:51:04 +01:00
Philip Withnall
718b5d5cd3 Merge branch 'gcc-build-fix' into 'main'
gio: Fix multiple definition error with tests

Closes #2966

See merge request GNOME/glib!3368
2023-04-11 11:31:37 +00:00
David King
6651e80d35 docs: Add simple GMarkup parser example
Based on an initial parser by Luc Pionchon. Tweaked to update to the
latest coding standards by Philip Withnall.

Fixes: #95
2023-04-11 12:19:30 +01:00
Philip Withnall
93168d5319 Merge branch 'old-linux-kernel-futex' into 'main'
gthread-posix: fix build against very old Linux headers

Closes #2861

See merge request GNOME/glib!3370
2023-04-11 11:10:28 +00:00
Peter Williams
1219920fcf gthread-posix: fix build against very old Linux headers
See issue GNOME/glib#2861. Even though (hopefully!) few people are
actually running kernels this old, some build frameworks use very old
kernel headers to try to maximize the portability of their binary
artifacts.
2023-04-10 10:36:41 -04:00
Alexander Shopov
6834f225f7 Update Bulgarian translation 2023-04-07 17:12:37 +00:00
Alexander Shopov
3d608960fb Update Bulgarian translation 2023-04-07 16:58:17 +00:00
Dan Yeaw
50851e2706 Fix multiple definition error
Fixes #2966 when compiling with GCC < 9.1 or Clang < 14.0.
2023-04-07 15:22:11 +00:00
Philip Withnall
adcf017eb4 Merge branch 'gwin32-avoid-g-return-macro' into 'main'
gwin32: Avoid use of function call with side effect in g_return_* macro

See merge request GNOME/glib!3365
2023-04-06 13:51:38 +00:00
Kleis Auke Wolthuizen
86ef92d548 gwin32: Avoid use of function call with side effect in g_return_* macro
This ensures that _g_win32_call_rtl_version is always called,
regardless of whether G_DISABLE_CHECKS is defined or not.
2023-04-06 15:19:35 +02:00
Chun-wei Fan
553d82c793 README.win32.md: Update info for G_PLATFORM_WIN32
Correct the info on G_PLATFORM_WIN32, now that we only define it when
GLib is built for native Windows, not Cygwin.  Make it clear that it
should not be used to check for conditional compilation for Cygwin
builds of GLib.
2023-04-06 15:40:07 +08:00
Philip Withnall
ca98d60d6d gdatetime: Improve Markdown formatting of g_date_time_format() docs
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Fixes: #2969
2023-04-05 17:53:41 +01:00
Marco Trevisan
9ec6695a72 Merge branch 'drop-gitignore' into 'main'
build: Drop old .gitignore files from test directories

See merge request GNOME/glib!3333
2023-04-05 14:29:13 +00:00
Marco Trevisan
66d9ab7808 Merge branch '2952-pollable-docs' into 'main'
gpollable: Clarify that can_poll() must be called before other methods

Closes #2952

See merge request GNOME/glib!3348
2023-04-05 14:27:07 +00:00
Marco Trevisan
218daa079e Merge branch '2960-debug-controller-docs' into 'main'
gdebugcontrollerdbus: Fix incorrect paragraph on auth in documentation

Closes #2960

See merge request GNOME/glib!3354
2023-04-05 14:24:50 +00:00
Marco Trevisan
34dc240322 Merge branch '2864-gvalue-docs' into 'main'
gvalue: Fix a typo in a function name in an example in the docs

Closes #2864

See merge request GNOME/glib!3349
2023-04-05 14:17:48 +00:00
Marco Trevisan
913f206b30 Merge branch 'make_clang_happier' into 'main'
Make clang++ happier when using G_STATIC_ASSERT

See merge request GNOME/glib!3357
2023-04-05 14:16:06 +00:00
Philip Withnall
a6f31f3ede Merge branch 'fix-issue-2972' into 'main'
GWin32AppInfo: Fix g_str_has_prefix() check

Closes #2972

See merge request GNOME/glib!3359
2023-04-05 14:09:53 +00:00
Luca Bacci
65e2413dd5 GWin32AppInfo: Fix g_str_has_prefix() check
Fixes https://gitlab.gnome.org/GNOME/glib/-/issues/2972
2023-04-05 13:50:23 +02:00
Albert Astals Cid
925d2b3b1f Make clang++ happier when using G_STATIC_ASSERT
clang++ says it supports _Static_assert but then will
complain that it's a C11 extension and that you should not use
it in C++ code (which imho is fair enough)

So try to detect a C++ compiler first and then the C compiler,
similarly to what is done for the G_NORETURN case
2023-04-01 11:35:25 +02:00
Alexander Shopov
4263cd8cbb Update Bulgarian translation 2023-03-31 10:00:41 +00:00
Philip Withnall
eb94540f4c Merge branch 'sam/goptioncontext-docs' into 'main'
Link goption documentation to GOptionContext type

Closes #2953

See merge request GNOME/glib!3350
2023-03-29 14:21:25 +00:00
Philip Withnall
224e4e53e2 gdebugcontrollerdbus: Fix incorrect paragraph on auth in documentation
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Fixes: #2960
2023-03-29 14:05:43 +01:00
Boyuan Yang
c051fc483f Update Chinese (China) translation 2023-03-26 19:14:34 +00:00
Philip Withnall
a476a047b9 tests: Update Unicode normalisation tests from Unicode 15
The file comes from
https://www.unicode.org/Public/UCD/latest/ucd/NormalizationTest.txt.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2023-03-24 12:21:37 +00:00
Sam Thursfield
2d216d4d8c Link goption documentation to GOptionContext type
This makes the goption overview visible in the gi-docgen docs as part of
the GOptionContext type. Previously it was not visible anywhere.

Fixes https://gitlab.gnome.org/GNOME/glib/-/issues/2953
2023-03-23 14:01:45 +00:00
Philip Withnall
3504385eba gvalue: Fix a typo in a function name in an example in the docs
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Fixes: #2864
2023-03-23 12:24:33 +00:00
Philip Withnall
e2d06873f9 gpollable: Clarify that can_poll() must be called before other methods
Both `GPollableInputStream` and `GPollableOutputStream` are dynamic
interfaces, in that their implementation on a class may only be
functional if certain prerequisites are met at runtime. For example,
a `GConverterInputStream` is only pollable if its base stream is
pollable, and that’s determined at runtime rather than compile time.

As such, both interfaces have a `can_poll()` method. If that method
returns `FALSE`, the behaviour of all other methods on the interface is
undefined.

That was mentioned in the documentation for `can_poll()`, but not any of
the other documentation for the interfaces, which made it a bit hard to
find.

Mention it more widely.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Fixes: #2952
2023-03-23 12:08:08 +00:00