[gimp] libgimpconfig: add gimp_scanner_parse_int64()
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] libgimpconfig: add gimp_scanner_parse_int64()
- Date: Fri, 28 Jun 2013 20:03:54 +0000 (UTC)
commit 3cc53dab0b5696b07130b0851e4d38787215797b
Author: Michael Natterer <mitch gimp org>
Date: Fri Jun 28 22:02:29 2013 +0200
libgimpconfig: add gimp_scanner_parse_int64()
libgimpconfig/gimpconfig.def | 1 +
libgimpconfig/gimpscanner.c | 35 +++++++++++++++++++++++++++++++++++
libgimpconfig/gimpscanner.h | 2 ++
3 files changed, 38 insertions(+), 0 deletions(-)
---
diff --git a/libgimpconfig/gimpconfig.def b/libgimpconfig/gimpconfig.def
index fb3dfd1..c29106e 100644
--- a/libgimpconfig/gimpconfig.def
+++ b/libgimpconfig/gimpconfig.def
@@ -60,6 +60,7 @@ EXPORTS
gimp_scanner_parse_float
gimp_scanner_parse_identifier
gimp_scanner_parse_int
+ gimp_scanner_parse_int64
gimp_scanner_parse_matrix2
gimp_scanner_parse_string
gimp_scanner_parse_string_no_validate
diff --git a/libgimpconfig/gimpscanner.c b/libgimpconfig/gimpscanner.c
index b674809..b94d74d 100644
--- a/libgimpconfig/gimpscanner.c
+++ b/libgimpconfig/gimpscanner.c
@@ -372,6 +372,41 @@ gimp_scanner_parse_int (GScanner *scanner,
}
/**
+ * 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:
* @scanner: A #GScanner created by gimp_scanner_new_file() or
* gimp_scanner_new_string()
diff --git a/libgimpconfig/gimpscanner.h b/libgimpconfig/gimpscanner.h
index c2824f0..5833f42 100644
--- a/libgimpconfig/gimpscanner.h
+++ b/libgimpconfig/gimpscanner.h
@@ -48,6 +48,8 @@ gboolean gimp_scanner_parse_data (GScanner *scanner,
guint8 **dest);
gboolean gimp_scanner_parse_int (GScanner *scanner,
gint *dest);
+gboolean gimp_scanner_parse_int64 (GScanner *scanner,
+ gint64 *dest);
gboolean gimp_scanner_parse_float (GScanner *scanner,
gdouble *dest);
gboolean gimp_scanner_parse_boolean (GScanner *scanner,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]