59 Commits

Author SHA1 Message Date
Matthias Clasen
36372b5add Improve an error message
svn path=/trunk/; revision=7189
2008-07-16 04:28:07 +00:00
Ryan Lortie
178698c8d3 add functions g_markup_parse_context_{push,pop} in order to provide some
2008-07-10  Ryan Lortie  <desrt@desrt.ca>

        * docs/reference/glib/glib-sections.txt:
        * glib/glib.symbols:
        * glib/gmarkup.c:
        * glib/gmarkup.h: add functions g_markup_parse_context_{push,pop} in
        order to provide some small hooks on which to build easy-to-use
        subparsers.
 
        * glib/tests/Makefile: add new test
        * glib/tests/markup-subparser.c: new test for subparsers
 
        Fixes bug #337518.


svn path=/trunk/; revision=7174
2008-07-10 08:41:59 +00:00
Matthias Clasen
b28e9afd69 Fix the docs
svn path=/trunk/; revision=6811
2008-04-03 04:11:13 +00:00
Murray Cumming
0ae78c829d Bug 521591 – g_markup_parse_context_parse() creates GError message that
2008-03-11  Murray Cumming  <murrayc@murrayc.com>

Bug 521591 – g_markup_parse_context_parse() creates GError message that 
is invalid UTF8.

* glib/gmarkup.c (set_error): Make sure that the GError::message is 
valid UTF-8 even if it is complaining about invalid UTF-8 in the 
markup text, using _g_utf8_make_valid().

svn path=/trunk/; revision=6680
2008-03-11 15:43:25 +00:00
Mathias Hasselmann
bef69cd7b3 Resolve 64 bit-shift bug in g_markup_collect_attributes.
Spotted by Lieven van der Heide.

* glib/gmarkup.c: Use G_GUINT64_CONSTANT in bit-shift.

svn path=/trunk/; revision=6243
2008-01-04 12:40:03 +00:00
Hans Breuer
27cb515443 added glib_gettext (in use by gio) also try building gio
2007-12-03  Hans Breuer  <hans@breuer.org>

	* glib/glib.symbols : added glib_gettext (in use by gio)
	* makefile.msc : also try building gio
	
	* glib/gmarkup.c : use G_GUINT64_CONSTANT() to avoid 
	'bad suffix on number'
	* glib/gtestutils.c : declare cariable at the beginning of the block,
	include <io.h> for G_OS_WIN32
	* makefile.msc.in : add gurifuncs and gtestutils


svn path=/trunk/; revision=6028
2007-12-03 22:46:17 +00:00
Matthias Clasen
cf0b542ab0 Doc improvements
svn path=/trunk/; revision=5988
2007-11-29 02:58:24 +00:00
Matthias Clasen
3feb9d4741 Add Since tags
svn path=/trunk/; revision=5986
2007-11-29 02:36:12 +00:00
Ryan Lortie
052bd9da4f Add new function g_markup_collect_attributes (bug #496847).
2007-11-26  Ryan Lortie  <desrt@desrt.ca>
 
        Add new function g_markup_collect_attributes (bug #496847).
 
        * glib/glib.symbols: add g_markup_collect_attributes
 
        * docs/reference/glib/glib-sections.txt:
        * glib/gmarkup.h:
        * glib/gmarkup.c: add g_markup_collect_attributes and new enumerated
        type GMarkupCollectType.  Add new error code
        G_MARKUP_ERROR_MISSING_ATTRIBUTE that is thrown by the attribute
        collector.


svn path=/trunk/; revision=5947
2007-11-27 01:37:33 +00:00
Matthias Clasen
d2f111fca7 Require gtk-doc 1.8.
2007-11-25  Matthias Clasen  <mclasen@redhat.com>

        * configure.in: Require gtk-doc 1.8.

        * glib/gasyncqueue.c:
        * glib/gdate.c:
        * glib/gfileutils.c:
        * glib/gmain.c:
        * glib/gmarkup.c:
        * glib/gregex.c:
        * glib/gtestutils.c:
        * glib/gutils.c: Use gtk-doc abbreviations for
        examples in doc comments.


svn path=/trunk/; revision=5933
2007-11-25 06:05:06 +00:00
Ryan Lortie
1e2c77ecbc new flag G_MARKUP_PREFIX_ERROR_POSITION to cause the parser to prepend
006-11-15  Ryan Lortie  <desrt@desrt.ca>

        * docs/reference/glib/tmpl/markup.sgml:
        * glib/gmarkup.h:
        * glib/gmarkup.c: new flag G_MARKUP_PREFIX_ERROR_POSITION to cause the
        parser to prepend location information (ie: "Error on line %d, char
        %d:") to errors generated by the GMarkupParser callbacks.

        Closes #496046.

svn path=/trunk/; revision=5860
2007-11-16 03:36:51 +00:00
Matthias Clasen
589bd2f463 New function, to get the stack of open elements. (#452887, Ryan Lortie)
2007-11-07  Matthias Clasen <mclasen@redhat.com>

        * glib/glib.symbols:
        * glib/gmarkup.[hc] (g_markup_parse_context_get_element_stack):
        New function, to get the stack of open elements.  (#452887,
        Ryan Lortie)


svn path=/trunk/; revision=5816
2007-11-08 03:28:09 +00:00
Matthias Clasen
28f781501e Handle restricted characters by converting them to numeric character
2007-08-08  Matthias Clasen  <mclasen@redhat.com>

        * glib/gmarkup.c (append_escaped_text): Handle restricted
        characters by converting them to numeric character
        entities.  (#464145, Andreas Monitzer)

        * tests/markup-escape-test.c: Add tests for restricted
        characters and numeric character entities.


svn path=/trunk/; revision=5684
2007-08-09 02:06:04 +00:00
Matthias Clasen
77363936cc Handle all states. (#454473)
2007-07-07  Matthias Clasen  <mclasen@redhat.com>

        * glib/gmarkup.c (g_markup_parse_context_end_parse): Handle
        all states.  (#454473)



svn path=/trunk/; revision=5604
2007-07-08 00:18:38 +00:00
Matthias Clasen
5eaddd21bb Report more accurate position for invalid UTF-8. (#350802, Simon Budig)
2007-03-06  Matthias Clasen  <mclasen@redhat.com>

        * glib/gmarkup.c (g_markup_parse_context_parse): Report
        more accurate position for invalid UTF-8.  (#350802,
        Simon Budig)



svn path=/trunk/; revision=5373
2007-03-06 07:12:50 +00:00
Matthias Clasen
48876d7fb5 Fix PLT issues 2006-09-30 14:06:45 +00:00
Matthias Clasen
c699743eca Don't call va_end on caller-provided va_args. (#353584, Chris Wilson)
2006-08-30  Matthias Clasen  <mclasen@redhat.com>

	* glib/gmarkup.c (g_markup_vprintf_escaped): Don't call
	va_end on caller-provided va_args.  (#353584, Chris Wilson)
2006-08-30 19:07:54 +00:00
Matthias Clasen
c4d88c74c8 Small optimizations 2006-05-29 00:57:22 +00:00
Matthias Clasen
f4f6480042 Add a GMarkupParseFlags flag for treating CDATA as text.
2006-05-28  Matthias Clasen  <mclasen@redhat.com>

	* glib/gmarkup.h: Add a GMarkupParseFlags flag for
	treating CDATA as text.

	* glib/gmarkup.c (g_markup_parse_context_parse):
	Implement it here.
2006-05-29 00:08:30 +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
9414478982 Doc addition
2005-10-05  Matthias Clasen  <mclasen@redhat.com>

	* glib/gmarkup.c (g_markup_escape_text): Doc addition
2005-10-05 20:11:25 +00:00
Matthias Clasen
047558bc21 Clarify docs.
2005-09-12  Matthias Clasen  <mclasen@redhat.com>

	* glib/gmarkup.c (g_markup_escape_text): Clarify docs.
2005-09-12 18:23:43 +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
0d0698b9cc Fix error reporting in gmarkup 2005-03-06 20:26:28 +00:00
Matthias Clasen
39a681995c Add a test with a long entity name.
2005-01-24  Matthias Clasen  <mclasen@redhat.com>

	* tests/markups/fail-40.gmarkup: Add a test with a long entity
	name.

	* glib/gmarkup.c (unescape_text_state_inside_entity_name): Don't
	copy the entity name into a short buffer of fixed length. Instead,
	compare it in place with strncmp(), and do a full strdup() in the
	error path.  (#165100, Simon Budig)
2005-01-24 17:25:37 +00:00
Matthias Clasen
8f0d5d169e Define empty for gcc 2.95.
2004-11-29  Matthias Clasen  <mclasen@redhat.com>

	* glib/gmacros.h (G_GNUC_MALLOC): Define empty for gcc 2.95.

	* glib/gmarkup.c (unescape_text_state_after_charref_hash):
	Avoid a strndup() here, noticed by Morten Welinder.
2004-11-29 14:50:47 +00:00
Matthias Clasen
18651f45d0 Remove leftover noinline attributes. (is_name_start_char, is_name_char):
2004-11-29  Matthias Clasen  <mclasen@redhat.com>

	* glib/gmarkup.c: Remove leftover noinline attributes.
	(is_name_start_char, is_name_char): Avoid possible reads
	beyond the end of g_ascii_table.
2004-11-29 06:51:16 +00:00
Matthias Clasen
75942393f5 Remove leftover noinline attributes.
2004-11-29  Matthias Clasen  <mclasen@redhat.com>

	* glib/gmarkup.c: Remove leftover noinline attributes.
2004-11-29 06:32:38 +00:00
Matthias Clasen
86c78552ec Optimizations; don't scan the entire text in find_current_text_end(),
2004-11-28  Matthias Clasen  <mclasen@redhat.com>

	* glib/gmarkup.c: Optimizations; don't scan the entire text
	in find_current_text_end(), split unescape_text() into multiple
	functions.  (#159001, Havoc Pennington)
2004-11-28 05:40:10 +00:00
Matthias Clasen
dafdffd751 Implement the same PLT reduction technique used in GTK+:
Thu Sep 16 02:03:15 2004  Matthias Clasen  <maclas@gmx.de>

	Implement the same PLT reduction technique used in GTK+:
2004-09-16 06:05:53 +00:00
Matthias Clasen
889096b1ea Tests for handling of whitespace inside tags.
2004-07-28  Matthias Clasen  <mclasen@redhat.com>

	* tests/markups/valid-{9,10,11}.gmarkup:
	* tests/markups/fail-{37,38,39}.gmarkup: Tests for handling
	of whitespace inside tags.

	* glib/gmarkup.c (enum GMarkupParseState): Add
	STATE_AFTER_ATTRIBUTE_NAME and STATE_AFTER_CLOSE_TAG_NAME.
	(g_markup_parse_context_parse): Accept whitespace between
	attribute names, '=' and attribute values and between
	close tag name and '>'. (#148646, Hiroyuki Ikezoe)
2004-07-28 15:00:59 +00:00
Matthias Clasen
dfce076fe4 Fix an off-by-one error in g_markup_parse_context_parse(). (#142794,
Tue Jun  1 21:56:31 2004  Matthias Clasen  <maclas@gmx.de>

	* glib/gmarkup.c (advance_char): Fix an off-by-one error
	in g_markup_parse_context_parse().  (#142794, Morten Welinder)
2004-06-02 02:02:31 +00:00
Matthias Clasen
fce9dce6b3 Document as 2.4 additions. (unescape_text): Implement newline and
Wed Oct  8 23:40:26 2003  Matthias Clasen  <maclas@gmx.de>

	* glib/gmarkup.c (g_markup_printf_escaped):
	(g_markup_vprintf_escaped): Document as 2.4 additions.
	(unescape_text): Implement newline and whitespace normalization
	according to the XML specification.  (#123919)
	(g_markup_escape_text): Document whitespace (non)handling.
2003-10-08 21:44:04 +00:00
Owen Taylor
2f4c3d8a6d Add g_markup_printf_escaped(), g_markup_vprintf_escaped().
Thu Sep 11 20:11:05 2003  Owen Taylor  <otaylor@redhat.com>

        * glib/gmarkup.c: Add g_markup_printf_escaped(),
        g_markup_vprintf_escaped().

        * tests/markup-escape-test.c (main): Test for
        g_markup_escape_text(), g_markup_printf_escaped().
2003-09-12 00:17:02 +00:00
Matthias Clasen
6710fd6e06 Optimize the common cases (init == NULL or init == "") a bit. replace uses
2003-03-30  Matthias Clasen  <maclas@gmx.de>

	* glib/gstring.c (g_string_new): Optimize the common cases
	(init == NULL or init == "") a bit.
	* glib/gmarkup.c, glib/gmessages.c, glib/gscanner.c,
	glib/gshell.c, glib/gspawn-win32-helper.c, glib/gspawn-win32.c,
	glib/gspawn.c, gobject/gvaluetransform.c: replace uses of
	g_string_new ("") by g_string_new (NULL).  (#106973, Morten Welinder)
2003-03-30 22:02:20 +00:00
Owen Taylor
bbbd329ff5 Patch from Sven Neumann to make the include order consistent. (#71704)
Tue Dec  3 20:22:27 2002  Owen Taylor  <otaylor@redhat.com>

        * glib/*.c: Patch from Sven Neumann to make the
        include order consistent. (#71704)
2002-12-04 01:27:44 +00:00
Matthias Clasen
a69dc4b65d Mark 2.2 API additions. 2002-11-28 00:15:45 +00:00
Matthias Clasen
e7d3a38f48 Use g_return_val_if_fail, no g_return_if_fail.
* glib/gmarkup.c (g_markup_parse_context_get_element):
	Use g_return_val_if_fail, no g_return_if_fail.
2002-08-07 22:15:43 +00:00
Matthias Clasen
0a064bd795 New function to get the currently open element. (#70448)
* glib/gmarkup.h:
	* glib/gmarkup.c (g_markup_parse_context_get_element): New
	function to get the currently open element.  (#70448)
2002-07-15 21:33:18 +00:00
Matthias Clasen
60f59976d9 New testcases.
2002-05-18  Matthias Clasen  <maclas@gmx.de>

	* tests/markups/fail-36.gmarkup:
	* tests/markups/fail-35.gmarkup:
	* tests/markups/valid-8.gmarkup:
	* tests/markups/valid-7.gmarkup:
	* tests/markups/valid-6.gmarkup:
	* tests/markups/valid-5.gmarkup: New testcases.

	* tests/markup-test.c (passthrough_handler):
	(text_handler): Don't ignore the text_len parameter.

	* glib/gmarkup.c (find_current_text_end): Don't hang on embedded
	nuls.  (#81977)
	(g_markup_parse_context_parse): Fix passthrough handling to
	correctly skip processing instructions, comments, doctype
	declarations and CDATA marked sections.  (#81977)
2002-05-18 22:06:54 +00:00
Matthias Clasen
6853c2b880 Report unfinished entity references as errors rather than running into an
* glib/gmarkup.c (unescape_text): Report unfinished entity
	references as errors rather than running into an assert.  (#80441)
2002-05-07 21:45:21 +00:00
Owen Taylor
57d9c0926a 1.3.14
Sun Feb 17 11:37:06 2002  Owen Taylor  <otaylor@redhat.com>

        * 1.3.14

        * glib/glibintl.h: Error out of config.h wasn't included
        rather than including it, since config.h must be the
        first thing included.

        * glib/gconvert.c glib/gmarkup.c glib/gshell.c glib/gspawn.c
        glib/gunibreak.c glib/gunidecomp.c glib/guniprop.c:
        Include config.h as the first thing. (#71704, Morten
        Welinder)
2002-02-17 23:28:43 +00:00
Darin Adler
e507791c85 New. (skip_spaces): g_unichar_isspace -> xml_isspace isspace ->
* glib/gmarkup.c: (xml_isspace): New.
	(skip_spaces): g_unichar_isspace -> xml_isspace
	* glib/gstrfuncs.c: (g_ascii_strtod): isspace -> g_ascii_isspace
	isxdigit -> g_ascii_isxdigit, isdigit -> g_ascii_isdigit
2002-02-10 05:56:06 +00:00
Matthias Clasen
b08db9f35e Test attribute value delimiters.
* tests/markups/valid-4.gmarkup: Test attribute value delimiters.

	* glib/gmarkup.c (g_markup_parse_context_parse): Support
	' and " as attribute value delimiters.  (#70677)
2002-02-09 22:08:10 +00:00
Matthias Clasen
fc0aea182c Change the order in which some error conditions are checked to improve
* glib/gmarkup.c (g_markup_parse_context_parse): Change the
        order in which some error conditions are checked to improve
        error messages. (#69646)
2002-01-30 22:14:16 +00:00
Havoc Pennington
3370260a13 NULL-terminate context->attr_values so g_strfreev() is safe. Would
2002-01-28  Havoc Pennington  <hp@pobox.com>

	* glib/gmarkup.c (add_attribute): NULL-terminate
	context->attr_values so g_strfreev() is safe.
	Would previously crash if parsing was ended prior
	to ending the start tag.
	(g_markup_parse_context_parse): add a couple assertions
2002-01-29 03:42:23 +00:00
Kjartan Maraas
2fe3a9d756 Fix a typo.
2001-06-27  Kjartan Maraas  <kmaraas@gnome.org>

	* glib/gmarkup.c: Fix a typo.
2001-06-27 19:18:07 +00:00
Owen Taylor
f5c28ce4ab Changes for 64-bit cleanliness, loosely based on patch from Mark Murnane.
Wed Jun 20 12:00:54 2001  Owen Taylor  <otaylor@redhat.com>

        Changes for 64-bit cleanliness, loosely based on patch
	from Mark Murnane.

	* gconvert.c (g_convert/g_convert_with_fallback): Remove
	workarounds for since-fixed GNU libc bugs. Minor
	doc fix.

	* gconvert.[ch]: Change gint to gsize/gssize as
	appropriate.

	* gconvert.c (g_locale/filename_to/from_utf8): Fix incorrect
	computation of bytes_read / bytes_written.

	* gfileutils.[ch] (g_file_get_contents): Make length
	out parameter 'gsize *len'.

	* ghook.c (g_hook_compare_ids): Don't compare a
	and b as 'a - b'.

	* gmacros.h (GSIZE_TO_POINTER): Add GPOINTER_TO_SIZE,
	GSIZE_TO_POINTER.

	* gmain.c (g_timeout_prepare): Rewrite to avoid
	overflows. (Fixes bug when system clock skews
	backwards more than 24 days.)

	* gmarkup.[ch]: Make lengths passed to callbacks
	gsize, length for g_markup_parse-context_parse(),
	g_markup_escape_text() gssize.

	* gmessages.[ch] (g_printf_string_upper_bound): Change
	return value to gsize.

	* gmessages.c (printf_string_upper_bound): Remove
	a ridiculous use of 'inline' on a 300 line function.

	* gstring.[ch]: Represent size of string as a gsize,
	not gint. Make parameters to functions take gsize,
	or gssize where -1 is allowed.

	* gstring.c (g_string_erase): Make
	g_string_erase (string, pos, -1) a synonym for
	g_string_truncate for consistency with other G*
	APIs.

	* gstrfuncs.[ch]: Make all functions taking a string
	length, take a gsize, or gssize if -1 is allowed.
	(g_strstr_len, g_strrstr_len). Also fix some boundary
	conditions in g_str[r]str[_len].

	* gutf8.c tests/unicode-encoding.c: Make parameters that
	are byte lengths gsize, gssize as appropriate. Make
	character offsets, other counts, glong.

	* gasyncqueue.c gcompletion.c
          timeloop.c timeloop-basic.c gutils.c gspawn.c.
	Small 64 bit cleanliness fixups.

	* glist.c (g_list_sort2, g_list_sort_real): Fix functions
	that should have been static.

	* gdate.c (g_date_fill_parse_tokens): Fix extra
	declaration that was shadowing another.

	* tests/module-test.c: Include string.h

Mon Jun 18 15:43:29 2001  Owen Taylor  <otaylor@redhat.com>

	* gutf8.c (g_get_charset): Make argument
	G_CONST_RETURN char **.
2001-06-23 13:55:09 +00:00
CEST 2001 Paolo Molaro
477106292a back out change by mitch@convergence.de and apply patch in bug id #52067
Thu May 24 21:24:16 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* gmarkup.c: back out change by mitch@convergence.de and apply patch in
	bug id #52067 that fixes the same problem in a more complete manner.
	This fixes also a segfault for a malformed XML file and adds a new
	test case.
2001-05-24 19:30:40 +00:00
Michael Natterer
05f143a808 don't g_strdup()/g_free() all parsed attributes and their values twice but
2001-05-18  Michael Natterer  <mitch@convergence.de>

	* gmarkup.c: don't g_strdup()/g_free() all parsed attributes and
	their values twice but simply copy the string pointers from the
	GMarkupAttribute struct to the string arrays before passing them
	to start_element().
2001-05-18 12:38:32 +00:00