handle negative integers.
2003-02-03 Michael Natterer <mitch@gimp.org> * app/config/gimpscanner.c (gimp_scanner_parse_int): handle negative integers. (gimp_scanner_parse_string[no_validate]): return NULL for empty strings (don't simply leave the return location untouched).
This commit is contained in:

committed by
Michael Natterer

parent
daf60f2582
commit
b55203abb5
@ -1,3 +1,11 @@
|
|||||||
|
2003-02-03 Michael Natterer <mitch@gimp.org>
|
||||||
|
|
||||||
|
* app/config/gimpscanner.c (gimp_scanner_parse_int): handle
|
||||||
|
negative integers.
|
||||||
|
|
||||||
|
(gimp_scanner_parse_string[no_validate]): return NULL for empty
|
||||||
|
strings (don't simply leave the return location untouched).
|
||||||
|
|
||||||
2003-02-03 Sven Neumann <sven@gimp.org>
|
2003-02-03 Sven Neumann <sven@gimp.org>
|
||||||
|
|
||||||
* app/config/gimpconfig-deserialize.c
|
* app/config/gimpconfig-deserialize.c
|
||||||
|
@ -149,6 +149,10 @@ gimp_scanner_parse_string (GScanner *scanner,
|
|||||||
|
|
||||||
*dest = g_strdup (scanner->value.v_string);
|
*dest = g_strdup (scanner->value.v_string);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
*dest = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@ -164,6 +168,8 @@ gimp_scanner_parse_string_no_validate (GScanner *scanner,
|
|||||||
|
|
||||||
if (*scanner->value.v_string)
|
if (*scanner->value.v_string)
|
||||||
*dest = g_strdup (scanner->value.v_string);
|
*dest = g_strdup (scanner->value.v_string);
|
||||||
|
else
|
||||||
|
*dest = NULL;
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@ -172,12 +178,23 @@ gboolean
|
|||||||
gimp_scanner_parse_int (GScanner *scanner,
|
gimp_scanner_parse_int (GScanner *scanner,
|
||||||
gint *dest)
|
gint *dest)
|
||||||
{
|
{
|
||||||
|
gboolean negate = FALSE;
|
||||||
|
|
||||||
|
if (g_scanner_peek_next_token (scanner) == '-')
|
||||||
|
{
|
||||||
|
negate = TRUE;
|
||||||
|
g_scanner_get_next_token (scanner);
|
||||||
|
}
|
||||||
|
|
||||||
if (g_scanner_peek_next_token (scanner) != G_TOKEN_INT)
|
if (g_scanner_peek_next_token (scanner) != G_TOKEN_INT)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
g_scanner_get_next_token (scanner);
|
g_scanner_get_next_token (scanner);
|
||||||
|
|
||||||
*dest = scanner->value.v_int;
|
if (negate)
|
||||||
|
*dest = -scanner->value.v_int;
|
||||||
|
else
|
||||||
|
*dest = scanner->value.v_int;
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
@ -149,6 +149,10 @@ gimp_scanner_parse_string (GScanner *scanner,
|
|||||||
|
|
||||||
*dest = g_strdup (scanner->value.v_string);
|
*dest = g_strdup (scanner->value.v_string);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
*dest = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@ -164,6 +168,8 @@ gimp_scanner_parse_string_no_validate (GScanner *scanner,
|
|||||||
|
|
||||||
if (*scanner->value.v_string)
|
if (*scanner->value.v_string)
|
||||||
*dest = g_strdup (scanner->value.v_string);
|
*dest = g_strdup (scanner->value.v_string);
|
||||||
|
else
|
||||||
|
*dest = NULL;
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@ -172,12 +178,23 @@ gboolean
|
|||||||
gimp_scanner_parse_int (GScanner *scanner,
|
gimp_scanner_parse_int (GScanner *scanner,
|
||||||
gint *dest)
|
gint *dest)
|
||||||
{
|
{
|
||||||
|
gboolean negate = FALSE;
|
||||||
|
|
||||||
|
if (g_scanner_peek_next_token (scanner) == '-')
|
||||||
|
{
|
||||||
|
negate = TRUE;
|
||||||
|
g_scanner_get_next_token (scanner);
|
||||||
|
}
|
||||||
|
|
||||||
if (g_scanner_peek_next_token (scanner) != G_TOKEN_INT)
|
if (g_scanner_peek_next_token (scanner) != G_TOKEN_INT)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
g_scanner_get_next_token (scanner);
|
g_scanner_get_next_token (scanner);
|
||||||
|
|
||||||
*dest = scanner->value.v_int;
|
if (negate)
|
||||||
|
*dest = -scanner->value.v_int;
|
||||||
|
else
|
||||||
|
*dest = scanner->value.v_int;
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user