mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-11-10 03:16:17 +01:00
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)
This commit is contained in:
parent
6715999ca1
commit
b08db9f35e
@ -1,3 +1,10 @@
|
||||
2002-02-09 Matthias Clasen <matthias@local>
|
||||
|
||||
* 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 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||
|
||||
* configure.in: Make --disable-threads work again. (#71034)
|
||||
|
@ -1,3 +1,10 @@
|
||||
2002-02-09 Matthias Clasen <matthias@local>
|
||||
|
||||
* 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 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||
|
||||
* configure.in: Make --disable-threads work again. (#71034)
|
||||
|
@ -1,3 +1,10 @@
|
||||
2002-02-09 Matthias Clasen <matthias@local>
|
||||
|
||||
* 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 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||
|
||||
* configure.in: Make --disable-threads work again. (#71034)
|
||||
|
@ -1,3 +1,10 @@
|
||||
2002-02-09 Matthias Clasen <matthias@local>
|
||||
|
||||
* 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 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||
|
||||
* configure.in: Make --disable-threads work again. (#71034)
|
||||
|
@ -1,3 +1,10 @@
|
||||
2002-02-09 Matthias Clasen <matthias@local>
|
||||
|
||||
* 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 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||
|
||||
* configure.in: Make --disable-threads work again. (#71034)
|
||||
|
@ -1,3 +1,10 @@
|
||||
2002-02-09 Matthias Clasen <matthias@local>
|
||||
|
||||
* 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 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||
|
||||
* configure.in: Make --disable-threads work again. (#71034)
|
||||
|
@ -1,3 +1,10 @@
|
||||
2002-02-09 Matthias Clasen <matthias@local>
|
||||
|
||||
* 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 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||
|
||||
* configure.in: Make --disable-threads work again. (#71034)
|
||||
|
@ -1,3 +1,10 @@
|
||||
2002-02-09 Matthias Clasen <matthias@local>
|
||||
|
||||
* 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 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||
|
||||
* configure.in: Make --disable-threads work again. (#71034)
|
||||
|
@ -48,7 +48,8 @@ typedef enum
|
||||
STATE_INSIDE_ATTRIBUTE_NAME,
|
||||
STATE_BETWEEN_ATTRIBUTES,
|
||||
STATE_AFTER_ATTRIBUTE_EQUALS_SIGN,
|
||||
STATE_INSIDE_ATTRIBUTE_VALUE,
|
||||
STATE_INSIDE_ATTRIBUTE_VALUE_SQ,
|
||||
STATE_INSIDE_ATTRIBUTE_VALUE_DQ,
|
||||
STATE_INSIDE_TEXT,
|
||||
STATE_AFTER_CLOSE_TAG_SLASH,
|
||||
STATE_INSIDE_CLOSE_TAG_NAME,
|
||||
@ -1213,11 +1214,17 @@ g_markup_parse_context_parse (GMarkupParseContext *context,
|
||||
break;
|
||||
|
||||
case STATE_AFTER_ATTRIBUTE_EQUALS_SIGN:
|
||||
/* Possible next state: INSIDE_ATTRIBUTE_VALUE */
|
||||
/* Possible next state: INSIDE_ATTRIBUTE_VALUE_[SQ/DQ] */
|
||||
if (*context->iter == '"')
|
||||
{
|
||||
advance_char (context);
|
||||
context->state = STATE_INSIDE_ATTRIBUTE_VALUE;
|
||||
context->state = STATE_INSIDE_ATTRIBUTE_VALUE_DQ;
|
||||
context->start = context->iter;
|
||||
}
|
||||
else if (*context->iter == '\'')
|
||||
{
|
||||
advance_char (context);
|
||||
context->state = STATE_INSIDE_ATTRIBUTE_VALUE_SQ;
|
||||
context->start = context->iter;
|
||||
}
|
||||
else
|
||||
@ -1235,15 +1242,28 @@ g_markup_parse_context_parse (GMarkupParseContext *context,
|
||||
}
|
||||
break;
|
||||
|
||||
case STATE_INSIDE_ATTRIBUTE_VALUE:
|
||||
case STATE_INSIDE_ATTRIBUTE_VALUE_SQ:
|
||||
case STATE_INSIDE_ATTRIBUTE_VALUE_DQ:
|
||||
/* Possible next states: BETWEEN_ATTRIBUTES */
|
||||
{
|
||||
gchar delim;
|
||||
|
||||
if (context->state == STATE_INSIDE_ATTRIBUTE_VALUE_SQ)
|
||||
{
|
||||
delim = '\'';
|
||||
}
|
||||
else
|
||||
{
|
||||
delim = '"';
|
||||
}
|
||||
|
||||
do
|
||||
{
|
||||
if (*context->iter == '"')
|
||||
if (*context->iter == delim)
|
||||
break;
|
||||
}
|
||||
while (advance_char (context));
|
||||
|
||||
}
|
||||
if (context->iter == context->current_text_end)
|
||||
{
|
||||
/* The value hasn't necessarily ended. Merge with
|
||||
@ -1599,7 +1619,8 @@ g_markup_parse_context_end_parse (GMarkupParseContext *context,
|
||||
"following an attribute name; no attribute value"));
|
||||
break;
|
||||
|
||||
case STATE_INSIDE_ATTRIBUTE_VALUE:
|
||||
case STATE_INSIDE_ATTRIBUTE_VALUE_SQ:
|
||||
case STATE_INSIDE_ATTRIBUTE_VALUE_DQ:
|
||||
set_error (context, error, G_MARKUP_ERROR_PARSE,
|
||||
_("Document ended unexpectedly while inside an attribute "
|
||||
"value"));
|
||||
|
8
tests/markups/valid-4.gmarkup
Normal file
8
tests/markups/valid-4.gmarkup
Normal file
@ -0,0 +1,8 @@
|
||||
<foo>
|
||||
<bar a='1'/>
|
||||
<bar a="2"/>
|
||||
<bar a='3"'/>
|
||||
<bar a="4'"/>
|
||||
<bar a="5''''"/>
|
||||
</foo>
|
||||
|
Loading…
Reference in New Issue
Block a user