Commit Graph

39 Commits

Author SHA1 Message Date
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
64434acfe1 Accept duplicate groups. (#157877, Sebastien Bacher)
2006-04-18  Matthias Clasen  <mclasen@redhat.com>

	* glib/gkeyfile.c (g_key_file_add_group): Accept duplicate
	groups.  (#157877, Sebastien Bacher)

	* tests/keyfile-test.c: Add tests for duplicate key and
	duplicate group handling.
2006-04-19 02:39:37 +00:00
Matthias Clasen
b58fb2bdb5 Move short_month_names and long_month_names to bss.
2006-04-04  Matthias Clasen  <mclasen@redhat.com>

        * glib/gdate.c: Move short_month_names and long_month_names
        to bss.

        * glib/gspawn-win32.c (g_spawn_error_quark):
        * glib/gspawn.c (g_spawn_error_quark):
        * glib/gshell.c (g_shell_error_quark):
        * glib/gmarkup.c (g_markup_error_quark):
        * glib/goption.c (g_option_error_quark):
        * glib/gkeyfile.c (g_key_file_error_quark):
        * glib/giochannel.c (g_io_channel_error_quark):
        * glib/gfileutils.c (g_file_error_quark):
        * glib/gconvert.c (g_convert_error_quark):
        * glib/gbookmarkfile.c (g_bookmark_file_error_quark):
        * glib/gthread.c (g_thread_error_quark): No point in making
        the error path fast by caching quarks.

        * glib/gbookmarkfile.c: Make the parser struct const.
2006-04-04 04:37:39 +00:00
Matthias Clasen
402a1081ae Add a note about casting the results of g_new() and g_new0().
2006-01-17  Matthias Clasen  <mclasen@redhat.com>

	* glib/tmpl/memory.sgml: Add a note about casting the results
	of g_new() and g_new0().
2006-01-18 03:51:39 +00:00
Matthias Clasen
81719cc164 Add a test for grup names of length 1.
2005-09-14  Matthias Clasen  <mclasen@redhat.com>

	* tests/keyfile-test.c: Add a test for grup names of length 1.

	* glib/gkeyfile.c (g_key_file_line_is_group): Accept group names
	of length 1.  (#316309)
2005-09-14 18:04:53 +00:00
Matthias Clasen
1c0b689399 The return value of read() is signed. (#315273, Kjartan Maraas)
2005-09-05  Matthias Clasen  <mclasen@redhat.com>

	* glib/gkeyfile.c (g_key_file_load_from_fd): The return value
	of read() is signed.  (#315273, Kjartan Maraas)
2005-09-05 17:55:11 +00:00
Matthias Clasen
1f9b1179cd And remove a redundant cast 2005-07-01 19:29:33 +00:00
Matthias Clasen
7e9c3ab123 Fix an extra indirection 2005-07-01 19:28:37 +00:00
Matthias Clasen
9d6e10125b Don't reverse the order of multiline comments.
2005-07-01  Matthias Clasen  <mclasen@redhat.com>

	* glib/gkeyfile.c (g_key_file_get_key_comment):
	(g_key_file_get_top_comment): Don't reverse the order of multiline
	comments.
	(g_key_file_get_group_comment): Actually get the group comment.

	* tests/keyfile-test.c (test_comments): Test that comments are
	handled properly.  (#309263, Mikael Magnusson)
2005-07-01 18:54:25 +00:00
Matthias Clasen
58f83683e9 Don't leak memory here.
2005-06-23  Matthias Clasen  <mclasen@redhat.com>

	* tests/keyfile-test.c (test_group_remove): Don't leak
	memory here.

	* glib/gkeyfile.c (g_key_file_load_from_data_dirs): Don't
	leak output_path.  (#308546, Kjartan Maraas)
2005-06-23 16:28:55 +00:00
Matthias Clasen
f3a61fe4a0 Don't leak output_path. (#308546, Kjartan Maraas)
2005-06-23  Matthias Clasen  <mclasen@redhat.com>

	* glib/gkeyfile.c (g_key_file_load_from_data_dirs): Don't
	leak output_path.  (#308546, Kjartan Maraas)
2005-06-23 16:13:33 +00:00
Matthias Clasen
42a32a7817 Forgotten file 2005-06-10 13:24:30 +00:00
Matthias Clasen
ae98c7d6c5 Update the documentation, reflecting the fact that the special case for
2005-03-17  Matthias Clasen  <mclasen@redhat.com>

	* glib/gkeyfile.c: Update the documentation, reflecting the
	fact that the special case for !group_name --> start_group
	got removed.  (#170566, Tim-Philipp Müller)
2005-03-17 19:28:15 +00:00
Matthias Clasen
608a31b98e Make PLT-reduction work with gcc4, and don't include everything in
2005-03-13  Matthias Clasen  <mclasen@redhat.com>

	Make PLT-reduction work with gcc4, and don't include
	everything in galias.h:

	* glib/glib.symbols: Group symbols by header and source file.
	* glib/makegalias.pl: Protect definitions by the same
	preprocessor symbols used to guard the headers. Move
	the alias declarations to a separate file which is
	produced when calling makegalias.pl -def
	* glib/Makefile.am (galiasdef.c): Add a rule to generate this
	file.
	* glib/*.c: Include galias.h after the other GLib headers,
	include galiasdef.c at the bottom.
2005-03-14 04:26:57 +00:00
Matthias Clasen
de2763c99a Don't leak path
2005-02-09  Matthias Clasen  <mclasen@redhat.com>

	* glib/gkeyfile.c (find_file_in_data_dirs): Don't leak path
2005-02-09 15:40:12 +00:00
Matthias Clasen
348da88e27 Don't write out of bounds.
2005-02-08  Matthias Clasen  <mclasen@redhat.com>

	* glib/gkeyfile.c (g_key_file_parse_value_as_string): Don't
	write out of bounds.

	* glib/goption.c (g_option_context_parse): Fix a
	one-too-short memory allocation.  (#166609, Nicolas Laurent)

	* tests/Makefile.am (TESTS_ENVIRONMENT): Add tests with
	MALLOC_CHECK_.

	* tests/option-test.c: Add a test for unkown short options.
2005-02-08 15:14:31 +00:00
Matthias Clasen
4a2773ee7b Add test case for key removal.
2005-02-01  Matthias Clasen  <mclasen@redhat.com>

	* tests/keyfile-test.c (test_key_remove): Add test case for
	key removal.

	* glib/gkeyfile.c (g_key_file_remove_key): Actually remove
	the key from the list of pairs.  (#165980, David Hoover)
2005-02-02 03:25:00 +00:00
Matthias Clasen
afb83c6f3b Doc clarifications. (#165907, Vincent Untz)
2005-02-01  Matthias Clasen  <mclasen@redhat.com>

	* glib/gkeyfile.c: Doc clarifications.  (#165907, Vincent Untz)
2005-02-01 14:17:25 +00:00
Matthias Clasen
df59e8e19b Add test case for group removal.
2005-02-01  Matthias Clasen  <mclasen@redhat.com>

	* tests/keyfile-test.c (test_group_remove): Add test case for
	group removal.

	* glib/gkeyfile.c (g_key_file_remove_group): Don't segfault
	if the group doesn't exist.  (#165887, Mathias Hasselmann)
2005-02-01 14:10:46 +00:00
Matthias Clasen
3db329a613 Don't interpret leading zeros as octal. The specification requires %f
2005-01-20  Matthias Clasen  <mclasen@redhat.com>

	* glib/gkeyfile.c (g_key_file_parse_value_as_integer): Don't
	interpret leading zeros as octal. The specification requires
	%f parsing, and %f doesn't allow octal.

	* tests/keyfile-test.c: Add some more tests.
2005-01-20 17:16:47 +00:00
Matthias Clasen
9775edea89 Add some more tests.
2005-01-20  Matthias Clasen  <mclasen@redhat.com>

	* tests/keyfile-test.c: Add some more tests.

	* glib/gkeyfile.c (g_key_file_get_keys): Return keys in
	the order found in the file, rather than the opposite.
	(g_key_file_parse_value_as_string): Fix error reporting.
2005-01-20 15:31:55 +00:00
Matthias Clasen
92a710ba28 Accept \r\n as line end. (#163030, Bastian Nocera)
2005-01-19  Matthias Clasen  <mclasen@redhat.com>

	* glib/gkeyfile.c (g_key_file_parse_data): Accept \r\n as
	line end.  (#163030, Bastian Nocera)
	(g_key_file_load_from_data): Make -1 work as a size.

	* tests/keyfile-test.c: Some unit tests for the keyfile
	parser.

	* tests/Makefile.am (test_programs): Add keyfile-test.
2005-01-19 14:14:27 +00:00
Matthias Clasen
c8a9a239ca Fix a sparse warning. (#164467, Kjartan Maraas)
2005-01-18  Matthias Clasen  <mclasen@redhat.com>

	* glib/gkeyfile.c (g_key_file_get_boolean_list): Fix a
	sparse warning.  (#164467, Kjartan Maraas)
2005-01-18 13:19:02 +00:00
Matthias Clasen
40b4e103b4 Don't access invalid memory address if p wasn't increased. (#159557,
2004-11-26  Matthias Clasen  <mclasen@redhat.com>

	* glib/gkeyfile.c (g_key_file_parse_value_as_string):
	Don't access invalid memory address if p wasn't
	increased.  (#159557, Frederic Crozat)
2004-11-27 02:59:09 +00:00
Matthias Clasen
f8b65c0a0e *** empty log message *** 2004-11-17 01:29:29 +00:00
Matthias Clasen
035484a411 Use S_ISREG(), since S_IFMT and S_IFREG are apprarently missing on some
2004-11-15  Matthias Clasen  <mclasen@redhat.com>

	* glib/gkeyfile.c (g_key_file_load_from_fd): Use S_ISREG(), since
	S_IFMT and S_IFREG are apprarently missing on some systems (they
	are SUS, but not Posix).  (#158263)
2004-11-15 13:50:31 +00:00
Ray Strode
0a5580d822 don't return an error if we come across a value with invalid utf8 or if we
2004-11-01  Ray Strode <rstrode@redhat.com>

	* glib/gkeyfile.c:
	(g_key_file_get_locale_string): don't return an
	error if we come across a value with invalid utf8 or
	if we don't find a translated string. Just fallback
	to the untranslated string (Mark McLoughlin, bug
	#156790).

	* glib/gkeyfile.c:
	(g_key_file_init), (g_key_file_clear): track the
	actual start GKeyFileGroup rather than just its name
	(g_key_file_parse_group): allow add_group() to
	update the start group.
	(g_key_file_remove_group_node): update the start
	group if it gets removed (Mark McLoughlin, bug
	#156790).

	* glib/gkeyfile.c:
	(g_key_file_parse_string_as_value): Don't escape
	tabs and spaces in the middle of key values.
2004-11-01 19:28:32 +00:00
Ray Strode
f72f7be1d3 clean up a leak (#156652, Morten Welinder) (g_key_file_load_from_fd):
2004-10-28  Ray Strode  <rstrode@redhat.com>

	* glib/gkeyfile.c
	(find_file_in_data_dirs): clean up a leak (#156652,
        Morten Welinder)
        (g_key_file_load_from_fd): propagate fstat() error
        conditions and retry read on EAGAIN (#156647, Morten
        Welinder).  Return error if file is NOT regular, not if
        it is regular (bug introduced from last commited bug
        fix).
        (g_key_file_load_from_data_dirs): allocate enough space
        for the terminating NULL.
2004-10-28 22:10:06 +00:00
Ray Strode
6b931891bc Don't use S_ISREG macro (#156728, Kazuki IWAMOTO)
2004-10-28  Ray Strode  <rstrode@redhat.com>

	* glib/gkeyfile.c: Don't use S_ISREG macro (#156728,
	Kazuki IWAMOTO)
2004-10-28 18:42:46 +00:00
Matthias Clasen
59501ed292 Add a missing "Since: 2.6" comment.
2004-10-28  Matthias Clasen  <mclasen@redhat.com>

	* glib/gkeyfile.c: Add a missing "Since: 2.6" comment.
2004-10-28 14:10:02 +00:00
Tor Lillqvist
7e52a0584f Include gstdio.h and use g_open().
2004-10-28  Tor Lillqvist  <tml@iki.fi>

	* glib/gkeyfile.c: Include gstdio.h and use g_open().
2004-10-28 03:04:10 +00:00
Ray Strode
31c3bd53a2 Move file is regular check to load_from_file to use fstat() instead of
2004-10-27  Ray Strode  <rstrode@redhat.com>

	* glib/gkeyfile.c:
	 (g_key_file_load_from_fd),
	 (g_key_file_load_from_file):
	 Move file is regular check to load_from_file to use
	 fstat() instead of race prone g_file_test().  Don't
	 clear/init until needed. Change error messages to be
	 more consistent.
	 (g_key_file_load_from_data),
	 (g_key_file_load_from_data_dirs),
	 (g_key_file_parse_data),
	 (g_key_file_get_value),
	 (g_key_file_get_string),
	 (g_key_file_set_string),
	 (g_key_file_get_string_list),
	 (g_key_file_set_string_list),
	 (g_key_file_set_locale_string),
	 (g_key_file_get_locale_string),
	 (g_key_file_set_locale_string_list),
	 (g_key_file_get_boolean),
	 (g_key_file_set_boolean),
	 (g_key_file_get_boolean_list),
	 (g_key_file_set_boolean_list),
	 (g_key_file_get_integer),
	 (g_key_file_get_integer_list),
	 (g_key_file_set_integer_list),
	 (g_key_file_remove_key):
	 Add more g_return_*if_fail checks for public functions.
2004-10-27 21:22:01 +00:00
Matthias Clasen
da9d1cd0f6 Fix includes. (#156500, #156499, Kazuki IWAMOTO)
2004-10-27  Matthias Clasen  <mclasen@redhat.com>

	* glib/gkeyfile.c: Fix includes. (#156500, #156499,
	Kazuki IWAMOTO)
2004-10-27 05:12:27 +00:00
Matthias Clasen
b5e4a809fa Add a missing include. 2004-10-26 18:48:55 +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
196be2da77 Don't include ctype.h needlessly. (#156424, Morten Welinder)
2004-10-26  Matthias Clasen  <mclasen@redhat.com>

	* glib/gkeyfile.c: Don't include ctype.h needlessly.  (#156424,
	Morten Welinder)
2004-10-26 05:16:47 +00:00
Matthias Clasen
1ec985a141 Don't destroy the lookup map if it is NULL.
2004-10-24  Matthias Clasen  <mclasen@redhat.com>

	* glib/gkeyfile.c (g_key_file_remove_group_node): Don't
	destroy the lookup map if it is NULL.

20
2004-10-24 05:49:14 +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