libgimpconfig: add gimp_scanner_parse_int64()

This commit is contained in:
Michael Natterer 2013-06-28 22:02:29 +02:00
parent 7ff7fa84b6
commit 3cc53dab0b
3 changed files with 38 additions and 0 deletions

View file

@ -60,6 +60,7 @@ EXPORTS
gimp_scanner_parse_float gimp_scanner_parse_float
gimp_scanner_parse_identifier gimp_scanner_parse_identifier
gimp_scanner_parse_int gimp_scanner_parse_int
gimp_scanner_parse_int64
gimp_scanner_parse_matrix2 gimp_scanner_parse_matrix2
gimp_scanner_parse_string gimp_scanner_parse_string
gimp_scanner_parse_string_no_validate gimp_scanner_parse_string_no_validate

View file

@ -371,6 +371,41 @@ gimp_scanner_parse_int (GScanner *scanner,
return TRUE; return TRUE;
} }
/**
* gimp_scanner_parse_int64:
* @scanner: A #GScanner created by gimp_scanner_new_file() or
* gimp_scanner_new_string()
* @dest: Return location for the parsed integer
*
* Return value: %TRUE on success
*
* Since: GIMP 2.8
**/
gboolean
gimp_scanner_parse_int64 (GScanner *scanner,
gint64 *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)
return FALSE;
g_scanner_get_next_token (scanner);
if (negate)
*dest = -scanner->value.v_int64;
else
*dest = scanner->value.v_int64;
return TRUE;
}
/** /**
* gimp_scanner_parse_float: * gimp_scanner_parse_float:
* @scanner: A #GScanner created by gimp_scanner_new_file() or * @scanner: A #GScanner created by gimp_scanner_new_file() or

View file

@ -48,6 +48,8 @@ gboolean gimp_scanner_parse_data (GScanner *scanner,
guint8 **dest); guint8 **dest);
gboolean gimp_scanner_parse_int (GScanner *scanner, gboolean gimp_scanner_parse_int (GScanner *scanner,
gint *dest); gint *dest);
gboolean gimp_scanner_parse_int64 (GScanner *scanner,
gint64 *dest);
gboolean gimp_scanner_parse_float (GScanner *scanner, gboolean gimp_scanner_parse_float (GScanner *scanner,
gdouble *dest); gdouble *dest);
gboolean gimp_scanner_parse_boolean (GScanner *scanner, gboolean gimp_scanner_parse_boolean (GScanner *scanner,