Commit Graph

76 Commits

Author SHA1 Message Date
Sam Thursfield
dcbaae4fa2 Update GError docs to use G_DEFINE_QUARK 2020-02-26 20:06:13 +01:00
Philip Withnall
fba54eaf59 gerror: Add a docs paragraph about not displaying errors verbatim in UI
It’s confusing and often doesn’t help the user. Match the error code and
come up with a more UI-appropriate error message.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2019-08-26 14:46:55 +03:00
Philip Withnall
321f914071 gerror: Add a missing precondition assertion in documentation
Inspired by !673.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2019-02-18 13:23:13 +00:00
Philip Withnall
ca1aaccbff docs: Remove redundant sentence from g_prefix_error() documentation
Signed-off-by: Philip Withnall <withnall@endlessm.com>
Reviewed-by: nobody
2018-01-05 19:36:07 +00:00
Philip Withnall
5cddde1fb2 Consistently save errno immediately after the operation setting it
Prevent the situation where errno is set by function A, then function B
is called (which is typically _(), but could be anything else) and it
overwrites errno, then errno is checked by the caller.

errno is a horrific API, and we need to be careful to save its value as
soon as a function call (which might set it) returns. i.e. Follow the
pattern:
  int errsv, ret;
  ret = some_call_which_might_set_errno ();
  errsv = errno;

  if (ret < 0)
    puts (strerror (errsv));

This patch implements that pattern throughout GLib. There might be a few
places in the test code which still use errno directly. They should be
ported as necessary. It doesn’t modify all the call sites like this:
  if (some_call_which_might_set_errno () && errno == ESOMETHING)
since the refactoring involved is probably more harmful than beneficial
there. It does, however, refactor other call sites regardless of whether
they were originally buggy.

https://bugzilla.gnome.org/show_bug.cgi?id=785577
2017-08-03 10:21:13 +01:00
Sébastien Wilmet
f9faac7661 glib/: LGPLv2+ -> LGPLv2.1+
All glib/*.{c,h} files have been processed, as well as gtester-report.

12 of those files are not licensed under LGPL:

	gbsearcharray.h
	gconstructor.h
	glibintl.h
	gmirroringtable.h
	gscripttable.h
	gtranslit-data.h
	gunibreak.h
	gunichartables.h
	gunicomp.h
	gunidecomp.h
	valgrind.h
	win_iconv.c

Some of them are generated files, some are licensed under a BSD-style
license and win_iconv.c is in the public domain.

Sub-directories inside glib/:

	deprecated/: processed in a previous commit
	glib-mirroring-tab/: already LGPLv2.1+
	gnulib/: not modified, the code is copied from gnulib
	libcharset/: a copy
	pcre/: a copy
	tests/: processed in a previous commit

https://bugzilla.gnome.org/show_bug.cgi?id=776504
2017-05-24 11:58:19 +02:00
Philip Withnall
b63469d726 docs: Fix (nullable) (optional) annotations
There are a few places where commit 18a33f72 replaced valid (nullable)
(optional) annotations with just (optional). That has a different
meaning.

(nullable) (optional) can only be applied to gpointer* parameters, and
means that both the gpointer* and returned gpointer can be NULL. i.e.
The caller can pass in NULL to ignore the return value; and the returned
value can be NULL.

(optional) can be applied to anything* parameters, and means that the
anything* can be NULL. i.e. The caller can pass in NULL to ignore the
return value. The return value cannot be NULL.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2017-04-28 12:32:12 +01:00
Christian Hergert
18a33f72db introspection: use (nullable) or (optional) instead of (allow-none)
If we have an input parameter (or return value) we need to use (nullable).
However, if it is an (inout) or (out) parameter, (optional) is sufficient.

It looks like (nullable) could be used for everything according to the
Annotation documentation, but (optional) is more specific.
2016-11-22 14:14:37 -08:00
Stephan Hesse
4569161f81 gerror: Mention that g_clear_error can be used with an "empty" GError
It is fine to do:
GError *error = NULL;
g_clear_error (&error);

https://bugzilla.gnome.org/show_bug.cgi?id=762937
2016-03-10 09:11:13 +01:00
Matthias Clasen
5efc8686ee Remove erroneous markup in GError docs 2016-03-02 19:06:49 -05:00
Philip Withnall
25a7c817d3 glib: Add missing (nullable) and (optional) annotations
Add various (nullable) and (optional) annotations which were missing
from a variety of functions. Also port a couple of existing (allow-none)
annotations in the same files to use (nullable) and (optional) as
appropriate instead.

Secondly, add various (not nullable) annotations as needed by the new
default in gobject-introspection of marking gpointers as (nullable). See
https://bugzilla.gnome.org/show_bug.cgi?id=729660.

This includes adding some stub documentation comments for the
assertion macro error functions, which weren’t previously documented.
The new comments are purely to allow for annotations, and hence are
marked as (skip) to prevent the symbols appearing in the GIR file.

https://bugzilla.gnome.org/show_bug.cgi?id=719966
2015-11-07 10:48:32 +01:00
Philip Withnall
0cc8c0f3e1 gerror: Add (optional) annotation to g_propagate_error()
Also clarify in the documentation that @src must be non-%NULL.
2015-10-08 11:16:02 +01:00
Philip Withnall
de04fd1304 gerror: Document the disadvantages of using GError
And move the discussion to a new subsection in the GError documentation.
Follow-up from commit 04662a8667.

https://bugzilla.gnome.org/show_bug.cgi?id=743011
2015-09-28 13:32:36 +01:00
Philip Withnall
04662a8667 gerror: Document advantages of GError over numeric error codes
Despite knowing about GError, there are multiple cases where developers
have still used traditional numeric error codes, and then got themselves
into a mess about bindability and generation of error messages.

Try and avoid this by including a brief paragraph on the benefits of
GError over EINVAL-style error codes.

https://bugzilla.gnome.org/show_bug.cgi?id=743011
2015-09-28 13:04:25 +01:00
Philip Withnall
5ceaeef832 gerror: Add an extra heading to the GError documentation
This means that the top of the documentation can link forward to this
important section, and random people on the internet can link directly
to it on developer.gnome.org.

https://bugzilla.gnome.org/show_bug.cgi?id=743011
2015-09-28 13:04:25 +01:00
Matthias Clasen
07b3595c23 Trivial: fix a typo
Pointed out in https://bugzilla.gnome.org/show_bug.cgi?id=750399
2015-06-05 11:54:40 -04:00
Philip Withnall
bdfc8231c6 gerror: Minor clarifications to the GError documentation
• Clarify that GError** parameters are for the return of _newly
   allocated_ GError*s.
 • Clarify that errors may need to be checked for explicitly if the
   return value of a function doesn’t reliably indicate them.

https://bugzilla.gnome.org/show_bug.cgi?id=741779
2015-03-04 08:45:00 +00:00
Matthias Clasen
26c66ab1b9 Clarify g_propagate_error docs
I just ran into a bug that was caused by having src being a
persistent GError* that was not cleared after propagating it.
2014-10-10 14:17:56 -04:00
Dan Winship
c67d23aa2f Clarify expectations with error codes like G_IO_ERROR_FAILED
If an error code enumeration is expected to be extended in the future,
people shouldn't compare explicitly against its generic "FAILED" value.

https://bugzilla.gnome.org/show_bug.cgi?id=726775
2014-03-20 09:31:56 -04:00
William Jon McCann
20f4d1820b docs: use "Returns:" consistently
Instead of "Return value:".
2014-02-19 19:41:52 -05:00
Matthias Clasen
bc6ee788b4 docs: let go of &ast;
Since we are no longer using sgml mode, using /&ast; &ast;/ to
escape block comments inside examples does not work anymore.
Switch to using line comments with //
2014-02-14 21:33:36 -05:00
Simon McVittie
a3cb5ce33b Be more clear that g_return_if_fail is undefined behaviour
In particular, it is not incorrect to g_return_if_fail (..., FALSE)
in a function returning a "success" gboolean and a GError: "failure to
meet the preconditions is an error" takes precedence over the
GError documentation's guarantee that the error will be set on failure.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=660809
Reviewed-by: Emmanuele Bassi
2014-02-11 15:01:58 +00:00
Matthias Clasen
35066ed6c6 Docs: Drop entities, switch away from sgml mode
Since all element markup is now gone from the doc comments,
we can turn off the gtk-doc sgml mode, which means that from
now on, docbook markup is no longer allowed in doc comments.

To make this possible, we have to replace all remaining
entities in doc comments by their replacement text, &amp; -> &
and so on.
2014-02-09 02:07:26 -05:00
Matthias Clasen
3232425785 Docs: replace <literal> by ` 2014-02-06 08:07:16 -05:00
Matthias Clasen
adf892e96a Annotate all examples with their language
The C ones, at least.
2014-02-01 15:11:49 -05:00
Matthias Clasen
42cf80780b Docs: Big entity cleanup
Strip lots of entity use from |[ ]| examples (which are now
implicit CDATA). Also remove many redundant uses of <!-- -->.
2014-02-01 12:00:30 -05:00
Matthias Clasen
d76f4455f1 GError: Convert docs to markdown
In particular, convert lists to markdown syntax.
2014-02-01 10:22:44 -05:00
Matthias Clasen
4d12e0d66f Docs: Don't use the emphasis tag
Most of the time, the text read just as well without the extra
boldness.
2014-01-31 20:34:33 -05:00
Daniel Mustieles
078dbda148 Updated FSF's address 2014-01-31 14:31:55 +01:00
Dan Winship
ab3c55435a gerror: Don't leak memory when overwrite warning
Even though we can't always make no-leak guarantees when g_warning()
in this case we're testing this behavior in tests, and it would be
good to be able to valgrind this.

https://bugzilla.gnome.org/show_bug.cgi?id=711751
2013-11-10 22:40:08 +01:00
Stef Walter
2672228733 gerror: Don't leak when warning about overwriting an error
While not strictly necessary, this fixes a false positive
leak in the tests.

https://bugzilla.gnome.org/show_bug.cgi?id=627423
2013-11-06 10:14:16 +01:00
Henrique Dante de Almeida
c219181cb2 Add G_GNUC_PRINTF on all functions with format strings
This allows compilation with clang without errors, even when
-Wformat-nonliteral is active (as long as there are no real cases of
non literal formatting).

https://bugzilla.gnome.org/show_bug.cgi?id=691608
2013-01-13 12:32:40 -05:00
Robert Ancell
4143842eb4 Add missing allow-none annotations for function parameters.
Found using:
find . -name '*.c' | xargs grep 'or %NULL' | grep ' \* @' | grep -v '@error' | grep -v allow-none
2012-03-31 20:34:28 +11:00
Simon McVittie
6d9f874330 g_error_new_valist, g_error_copy: warn if domain is 0 or message is NULL
Neither of those usages is valid, but there's a lot of use of 0 as a
domain "in the wild", so we can't g_return_if_fail yet.

Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=660371
2012-01-15 23:21:03 -05:00
Matthias Clasen
186c15fc87 GError: small documentation addition
Document that out variables are not guaranteed to be set to
defined values if an error is thrown. Inspired by bug 658315
2012-01-15 23:18:09 -05:00
Stef Walter
7e92997539 documentation fixes
Fixes for gtk-doc warnings.

http://bugzilla.gnome.org/show_bug.cgi?id=66469

https://bugzilla.gnome.org/show_bug.cgi?id=664699
2011-12-13 23:01:51 -05:00
Ryan Lortie
37c740d509 Don't #include <glib/gslice.h> from gmem.h
It looks like this was done just to help people port from gmem to
gslice, but nothing in this header actually requires gslice.h to be
included.
2011-09-18 22:07:18 -04:00
Ryan Lortie
5dbc12e9f1 Replace @Varargs with @...
to make gtk-doc happy.
2011-07-22 15:47:24 +02:00
Matthias Clasen
c9379bcfe1 Move GError docs inline and ditch template 2011-07-18 23:58:32 -04:00
Matthias Clasen
f13d561211 More header inclusion cleanup 2010-09-05 00:23:03 -04:00
Ryan Lortie
2e53e50244 glib/: fully remove galias hacks 2010-07-07 19:34:35 -04:00
Benjamin Otte
981d14e85c Improve documentation for g_error_matches() 2009-08-18 11:35:01 +02:00
Matthias Clasen
d5a5130519 Minor doc fix 2009-07-05 23:55:00 -04:00
Yeti
01b79d67ef Make g_error_new_valist public
Bug #569024.
2009-05-23 17:52:58 +02:00
Matthias Clasen
a1c45bd9ae Add a since
svn path=/trunk/; revision=7279
2008-08-01 18:30:37 +00:00
Christian Persch
9c50d657e5 Add g_set_error_literal. Bug #535947.
svn path=/trunk/; revision=7050
2008-06-16 16:41:01 +00:00
Mathias Hasselmann
a27d6affec Improve wording for g_propagate_error docs.
* glib/gerror.c: Improve wording for g_propagate_error docs.

svn path=/trunk/; revision=6056
2007-12-06 09:20:13 +00:00
Matthias Clasen
3feb9d4741 Add Since tags
svn path=/trunk/; revision=5986
2007-11-29 02:36:12 +00:00
Sven Neumann
d07f85e11e use g_strconcat() instead of g_strjoin() to concatenate two strings.
2007-11-20  Sven Neumann  <sven@gimp.org>

	* glib/gerror.c (g_error_add_prefix): use g_strconcat() instead of
	g_strjoin() to concatenate two strings.

svn path=/trunk/; revision=5873
2007-11-20 10:46:15 +00:00
Ryan Lortie
f2a5aa6700 new functions g_prefix_error and g_propagate_prefixed_error.
2006-11-15  Ryan Lortie  <desrt@desrt.ca>

        * docs/reference/glib/glib-sections.txt:
        * glib/glib.symbols:
        * glib/gerror.h:
        * glib/gerror.c: new functions g_prefix_error and
        g_propagate_prefixed_error.


svn path=/trunk/; revision=5859
2007-11-16 03:05:45 +00:00