Commit Graph

27 Commits

Author SHA1 Message Date
Philip Withnall
70ee43f1e9 glib: Add SPDX license headers automatically
Add SPDX license (but not copyright) headers to all files which follow a
certain pattern in their existing non-machine-readable header comment.

This commit was entirely generated using the command:
```
git ls-files glib/*.[ch] | xargs perl -0777 -pi -e 's/\n \*\n \* This library is free software; you can redistribute it and\/or\n \* modify it under the terms of the GNU Lesser General Public/\n \*\n \* SPDX-License-Identifier: LGPL-2.1-or-later\n \*\n \* This library is free software; you can redistribute it and\/or\n \* modify it under the terms of the GNU Lesser General Public/igs'
```

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

Helps: #1415
2022-05-18 09:19:02 +01:00
Philip Withnall
c849a4ddd3 glib: Drop G_GNUC_MALLOC usage from various other allocation functions
These functions may be OK to leave the G_GNUC_MALLOC attribute on,
because the only valid pointers in the storage areas they return are,
themselves, new pointers.

However, it’s a lot easier to remove the attributes now than to try and
diagnose miscompilations in future. The performance impact of this is
likely to be unmeasurable. If there are performance problems caused by
this, then they can be profiled and fixed case-by-case in future,
bearing in mind the possibility for miscompilation if G_GNUC_MALLOC is
readded.

Signed-off-by: Philip Withnall <withnall@endlessm.com>

https://gitlab.gnome.org/GNOME/glib/issues/1465
2018-08-22 11:18:02 +01:00
Allison Lortie
1574321e51 GKeyFile: add API for getting locale of a string
g_key_file_get_locale_string() returns a translated string from the
keyfile.  In some cases, it may be useful to know the locale that that
string came from.

Add a new API, g_key_file_get_locale_for_key(), that returns the locale
of the string.

Include tests.

(Modified by Philip Withnall to rename the API and fix some minor review
issues. Squash in a separate test case commit.)

https://bugzilla.gnome.org/show_bug.cgi?id=605700
2018-02-06 15:51:33 +00: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
Sébastien Wilmet
8edcf67b02 License headers: "GLib" -> "This library"
Harmonize a little the license headers. In most of the license headers
in GLib, it is "This library".

It is also what is explained at:
https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html#SEC4
"How to Apply These Terms to Your New Libraries"

https://bugzilla.gnome.org/show_bug.cgi?id=776586
2017-01-04 19:12:56 +01:00
Cosimo Cecchi
d07e166432 gkeyfile: add g_key_file_load_from_bytes() API
This makes it easier to use GKeyFile from language bindings, and makes
the API more consistent and modern with the new data type available in
GLib.

https://bugzilla.gnome.org/show_bug.cgi?id=767880
2016-06-20 17:53:00 -07:00
Daniel Mustieles
078dbda148 Updated FSF's address 2014-01-31 14:31:55 +01:00
Ryan Lortie
5d7a7df867 Add g_key_file_save_to_file()
To write a keyfile to disk.

https://bugzilla.gnome.org/show_bug.cgi?id=309224
2013-10-04 12:18:20 -04:00
Ryan Lortie
6dc5c118e4 Implement the Desktop Action specification
For some time, the desktop file specification has supported "additional
application actions".  This is intended to allow for additional methods
of starting an app, such as a mail client having a "Compose New Message"
action that brings up the compose window instead of the folder list.

This patch adds support for this with a relatively minimal API.

In the case that the application is a GApplication and DBusActivatable,
desktop actions are translated into GActions that have been added to the
application with g_action_map_add_action().  This more or less closes
the loop on being able to activate an application with an action
invocation (instead of 'activate').

https://bugzilla.gnome.org/show_bug.cgi?id=664444
2013-07-11 12:48:08 -04:00
Ryan Lortie
afc8b1020a GDesktopAppInfo: support DBusActivatable
Support the sender-side of the freedesktop application specification for
cases that we find 'DBusActivatable=true' in the desktop file.

https://bugzilla.gnome.org/show_bug.cgi?id=699259
2013-06-07 18:36:55 -04:00
Ryan Lortie
0156092a42 various: add GLIB_AVAILABLE_IN_ALL everywhere else
Add the GLIB_AVAILABLE_IN_ALL annotation to all old functions (that
haven't already been annotated with the GLIB_AVAILABLE_IN_* macros or a
deprecation macro).

If we discover in the future that we cannot use only one macro on
Windows, it will be an easy sed patch to fix that.

https://bugzilla.gnome.org/show_bug.cgi?id=688681
2013-01-13 13:11:57 -05:00
Matthias Clasen
e1b99b2ddc Move single-include guards inside include guards
gcc has optimizations for include guards that only work
if they are outermost in the the header.
https://bugzilla.gnome.org/show_bug.cgi?id=689810
2012-12-27 23:43:14 -05:00
Christian Persch
a57c9148cf GKeyFile: Add refcounting API
Adds g_key_file_ref and g_key_file_unref, to be used by a future
GKeyFile boxed type for language bindings.

Based on the patch by Christian Persch and Emmanuele Bassi.

Author: Christian Persch
Signed-off-by: Johan Dahlin
Signed-off-by: Giovanni Campagna

https://bugzilla.gnome.org/show_bug.cgi?id=590808
2011-10-15 17:44:45 -04:00
Matthias Clasen
7455dd370e Make single includes mandatory
This has been the official line since 2.17, which seems plenty
long enough for a transition phase.
2011-10-12 00:25:38 -04:00
Colin Walters
8b061e023c Revert addition of g_key_file_has_key_full
Per IRC discussion, we can just ask bindings to use
g_key_file_get_value() to test for the existence of a key.

I left the "fixed" code in the source tree as static because it makes
more sense to me.
2011-07-22 10:56:54 -04:00
Colin Walters
9966fe4493 g_key_file_has_key_full: New function to fix g_key_file_has_key()'s GError semantics
See https://bugzilla.gnome.org/show_bug.cgi?id=649657 for discussion
of why it's bad for bindings for gerror return values to both signal
errors and carry meaning.

https://bugzilla.gnome.org/show_bug.cgi?id=650345
2011-05-18 11:53:21 -04:00
Simon McVittie
6bea235c8b Support 64bit integers in GKeyFile 2010-05-08 21:30:27 -04:00
Michael Natterer
e0aa9d8a61 #define __GLIB_H_INSIDE__ around including everything.
2008-05-05  Michael Natterer  <mitch@imendio.com>

	* glib/glib.h: #define __GLIB_H_INSIDE__ around including
	everything.

	* glib/*.h: check for that define instead of __G_LIB_H__ if
	G_DISABLE_SINGLE_INCLUDES is defined.

	* glib/gdatasetprivate.h: #include <glib.h> instead of
	<glib/gdataset.h>


svn path=/trunk/; revision=6875
2008-05-05 15:02:15 +00:00
Michael Natterer
f4bb21aa1d make it possible to disable single-file includes by defining
2008-03-14  Michael Natterer  <mitch@imendio.com>

	* glib/*.h: make it possible to disable single-file includes by
	defining G_DISABLE_SINGLE_INCLUDES when building against GLib.
	Approved by Tim Janik.

	* glib/glib.h: include <glib/gslice.h>.

	* glib/gi18n.h
	* glib/gi18n-lib.h
	* glib/gprintf.h: include <glib.h> so the above works when these
	files are included without including <glib.h> first.


svn path=/trunk/; revision=6713
2008-03-14 19:30:38 +00:00
Matthias Clasen
1dc3d6f088 Make some functions that take a GError return boolean instead of void.
2007-11-07  Matthias Clasen <mclasen@redhat.com>

        * glib/gkeyfile.[hc]: Make some functions that take
        a GError return boolean instead of void.  (#375651, Matt Barnes)



svn path=/trunk/; revision=5815
2007-11-08 03:19:37 +00:00
Dan Winship
90320fba4f add defines for desktop file handling. #339225, original patch from
* glib/gkeyfile.h: add defines for desktop file handling. #339225,
	original patch from Vincent Untz.

svn path=/trunk/; revision=5521
2007-05-30 14:25:34 +00:00
William Jon McCann
fc161a7058 Add g_key_file_load_from_dirs for looking through a search path for a
2007-04-19  William Jon McCann  <mccann@jhu.edu>

	* glib/gkeyfile.[ch]: (find_file_in_data_dirs),
	(g_key_file_load_from_dirs), (g_key_file_load_from_data_dirs):
	Add g_key_file_load_from_dirs for looking through a search
	path for a key-file. (#355334)


svn path=/trunk/; revision=5453
2007-04-19 20:48:22 +00:00
Matthias Clasen
22ec64756c Add api to get and set doubles and lists of doubles. (#164719, Maurizio
2006-04-18  Matthias Clasen  <mclasen@redhat.com>

	* glib/gkeyfile.h:
	* glib/glib.symbols:
	* glib/gkeyfile.c: Add api to get and set doubles and
	lists of doubles.  (#164719, Maurizio Monge, Dom Lachowicz)

	* tests/keyfile-test.c: Add tests for new api.
2006-04-19 02:59:37 +00:00
Matthias Clasen
379e87466d Mark functions with G_GNUC_MALLOC when appropriate.
2004-11-28  Matthias Clasen  <mclasen@redhat.com>

	* glib/gconvert.h:
	* glib/gkeyfile.h:
	* glib/gmem.h:
	* glib/gstrfuncs.h:
	* glib/gunicode.h:
	* glib/gutils.h: Mark functions with G_GNUC_MALLOC when appropriate.

	* glib/glib.symbols: Add G_GNUC_MALLOC annotations.

	* glib/gmacros.h (G_GNUC_MALLOC): Add a macro for
	__attribute__((__malloc__)).  (#61780)
2004-11-28 19:12:04 +00:00
Matthias Clasen
5a6df6dd65 Documentation fixes. 2004-10-26 16:10:52 +00:00
Ray Strode
d59b22a981 Add Matthias to "Written by" lines (GKeyFileGroup): add field to hold
2004-10-26  Ray Strode  <rstrode@redhat.com>

	* glib/gkeyfile.c: Add Matthias to "Written by" lines
	 (GKeyFileGroup): add field to hold comments about groups
	 (g_key_file_load_from_fd): return TRUE on success and
	 FALSE on failure.  Don't close fd's opened by other
	 parent function.
	 (g_key_file_load_from_file): run FILE_IS_REGULAR test
	 before trying to open file, to save an fd from being
	 leaked (would probably be better to use fstat()). Close
	 fd when done with it. Return TRUE on success and FALSE
	 on failure.
	 (g_key_file_load_from_data): Return TRUE on success and
	 FALSE on failure.
	 (g_key_file_load_from_data_dirs): remove superfluous
	 const modifier.  Return TRUE on success and FALSE on
	 failure.  Stop trying to load files when one succeeds.
	 (g_key_file_parse_key_value_pair): don't validate input
	 for UTF-8 until users uses a getter that does
	 validation.  Don't leak copy of start_group_name.
	 (g_key_file_to_data): serialize new comment field for
	 groups.
	 (g_key_file_get_keys): Remove convenience code to let
	 NULL group mean start group.  Get rid of unneeded NULL
	 check before g_strdup.
	 (g_key_file_get_groups): Reverse groups list before
	 sending to user because it is maintained in backward
	 order internally.
	 (g_key_file_get_value),
	 (g_key_file_set_value): add g_return checks at top of
	 public functions.
	 (g_key_file_get_string),
	 (g_key_file_get_string_list): validate key value is UTF-8.
	 (g_key_file_[sg]et_*comment): new functions for
	 setting/getting comments
	 (g_key_file_remove_comment): new function to remove
	 comment block
	 (g_key_file_remove_key_value_pair_node): new function to
	 pull a key-value pair out of the list and free it.
	 (g_key_file_remove_group_node): call
	 g_key_file_remove_key_value_pair_node instead of
	 freeing the list immediately to get better statistics
	 for approximate_size.
	 (g_key_file_remove_group): use lookup_group_node instead
	 of lookup_group to prevent a g_list_find call.
	 (g_key_file_add_key): report group also when unable to
	 find key.
	 (g_key_file_lookup_group_node): new function to make
	 getting the group node from a group name easier.
	 (g_key_file_lookup_group): use lookup_group_node under
	 the hood.
	 (g_key_file_lookup_key_value_pair_node): new function to
	 make getting the key-value pair from a group and key
	 name eaiser.
	 (g_key_file_parse_comment_as_value): new function to add '#' to the
	 beginning of every line.
	 (g_key_file_parse_value_as_comment): new function that
	 attempts to be the inverse of comment as value.
2004-10-26 12:35:58 +00:00
Matthias Clasen
bfa8a37a9e Add a parser for desktop entries and similar files with a .ini-like
2004-10-23  Matthias Clasen  <mclasen@redhat.com>

	* glib/gkeyfile.h:
	* glib/gkeyfile.c: Add a parser for desktop entries and
	similar files with a .ini-like syntax.  (#139974, Ray Strode)

	* glib/glib.h: Include gkeyfile.h

	* glib/Makefile.am (libglib_2_0_la_SOURCES): Add gkeyfile.c
	(glibsubinclude_HEADERS): Add gkeyfile.h

	* glib/gutils.c (_g_compute_locale_variants): Make this
	non-static and use it in gkeyfile.c
2004-10-23 06:16:42 +00:00