Commit Graph

12 Commits

Author SHA1 Message Date
Simon McVittie
81c6adb0f7 Declare copyright and licensing using REUSE
To fill in some gaps, I've had to make some assumptions:

* trivial changes (such as checking for an additional function or
  header file in libglnx.m4) are assumed to not be copyrightable
* Will Thompson and Matthew Leeds are assumed to be contributing on
  behalf of Endless Mobile Inc.
* files with no explicit licensing information are assumed to be
  under the license found in COPYING

Reference: https://reuse.software/
Signed-off-by: Simon McVittie <smcv@debian.org>
2022-02-19 22:57:48 +00:00
Will Thompson
016ea9168b errors: don't use 'static inline' on varargs functions
This caused GCC 6.3.0 -Winline to complain:

    ../../../ext/libglnx/glnx-errors.h:169:1: warning: function
        ‘glnx_throw_errno_prefix’ can never be inlined because it uses
        variable argument lists [-Winline]
     glnx_throw_errno_prefix (GError **error, const char *fmt, ...)
     ^~~~~~~~~~~~~~~~~~~~~~~
    ../../../ext/libglnx/glnx-errors.h:169:1: warning: inlining failed
        in call to ‘glnx_throw_errno_prefix’: function not inlinable
        [-Winline]
2017-11-02 17:14:06 +00:00
Jonathan Lebon
c820571bc4 errors: check for an error before prefixing
Minor tweak to the new `GLNX_AUTO_PREFIX_ERROR`. Since the common case
is that there's no errors, let's bring down the same check that
`g_prefix_error` does to avoid a function call most of the time.
2017-07-21 14:09:24 -07:00
Colin Walters
7d6a31fb93 errors: Mark GLNX_AUTO_PREFIX_ERROR() as used
Since it's intentional we never use it, and `clang` barfs on this (rightly).
2017-07-20 15:12:08 -04:00
Colin Walters
607f1775bb errors: Add GLNX_AUTO_PREFIX_ERROR
In a lot of places in ostree, we end up prefixing errors in the *caller*.
Often we only have 1-2 callers, and doing the error prefixing isn't
too duplicative.  But there are definitely cases where it's cleaner
to do the prefixing in the callee.  We have functions that aren't
ported to new style for this reason (they still do the prefixing
in `out:`).

Introduce a cleanup-oriented version of error prefixing so we can port those
functions too.
2017-07-17 12:23:31 -04:00
Jonathan Lebon
32231fdb52 glnx-errors.h: add a glnx_throw_prefix() variant
For completeness. It just looks much cleaner than doing the `, FALSE`
trick. It also takes care of appending the ': ' for you like its errno
version.
2017-05-11 12:34:02 -04:00
Colin Walters
4040f55ac5 errors: Fix legacy set_prefix_error_from_errno()
We were missing the previous automatic `: ` addition; noticed in
a failing ostree test.

Fix this by just calling the new API as the non-prefix case does too.
2017-03-24 15:26:57 -04:00
Jonathan Lebon
0c52d85e69 glnx-errors.h: add glnx_null_throw[_*] variants
These are equivalent to the non-null throw, except that the returned
value is a NULL pointer. They can be used in functions where one wants
to return a pointer. E.g.:

	GKeyFile *foo(GError **error) {
		return glnx_null_throw (error, "foobar");
	}

The function call redirections are wrapped around a compound statement
expression[1] so that they represent a single top-level expression. This
allows us to avoid -Wunused-value warnings vs using a comma operator if
the return value isn't used.

I made the 'args...' absorb the fmt argument as well so that callers can
still use it without always having to specify at least one additional
variadic argument. I had to check to be sure that the expansion is all
done by the preprocessor, so we don't need to worry about stack
intricacies.

[1] https://gcc.gnu.org/onlinedocs/gcc/Statement-Exprs.html
2017-03-23 10:57:48 -04:00
Colin Walters
602fdd93cb errors: Add glnx_throw() and tests
Following up to the previous commit, also shorten our use of
`g_set_error (..., G_IO_ERROR_FAILED, ...)`. There's a lot of
this in libostree at least.

See also https://bugzilla.gnome.org/show_bug.cgi?id=774061
2017-03-22 11:08:13 -04:00
Colin Walters
074236b88d errors: Add new glnx_throw_errno{,_prefix}() APIs
We have a *lot* of code of the form:

```
if (unlinkat (fd, pathname) < 0)
  {
     glnx_set_error_from_errno (error);
     goto out;
  }
```

After conversion to `return FALSE style` which is in progress, it's way shorter,
and clearer like this:

```
if (unlinkat (fd, pathname) < 0)
  return glnx_throw_errno (error);
```
2017-03-22 11:03:32 -04:00
Matthew Barnes
fa43744c05 Fix includes when relying on backported g_autoptr() 2015-02-18 16:45:45 -05:00
Colin Walters
8e9a171ec4 Import directory iteration, errno handling, and shutil from libgsystem 2015-02-15 11:53:34 -05:00