[beast/devel: 7/15] SFI: merge SfiTokenType into GTokenType



commit 105f0329cd620a27d4b27cc9df0aa51d16f652e6
Author: Tim Janik <timj gnu org>
Date:   Sun Dec 16 22:36:12 2012 +0100

    SFI: merge SfiTokenType into GTokenType

 beast-gtk/bstgconfig.c     |    2 +-
 beast-gtk/bstkeybindings.c |    2 +-
 beast-gtk/bstmsgabsorb.c   |    2 +-
 beast-gtk/bstskinconfig.c  |    2 +-
 bse/Makefile.am            |    2 +-
 bse/bsebus.cc              |    6 +++---
 bse/bsedatapocket.cc       |   34 +++++++++++++++++-----------------
 bse/bsedefs.h              |    2 +-
 bse/bseobject.cc           |    2 +-
 bse/bseobject.h            |    2 +-
 bse/bseparasite.c          |    9 ++++-----
 bse/bsepart.cc             |   18 +++++++++---------
 bse/bseserver.cc           |    4 ++--
 bse/bsesource.cc           |    6 +++---
 bse/bsestorage.h           |    4 ++--
 bse/bsetrack.cc            |    8 ++++----
 bse/bsewave.cc             |   32 ++++++++++++++++----------------
 sfi/sfistore.h             |   42 ++++++++++++++++++++----------------------
 18 files changed, 88 insertions(+), 91 deletions(-)
---
diff --git a/beast-gtk/bstgconfig.c b/beast-gtk/bstgconfig.c
index bacf368..851e05a 100644
--- a/beast-gtk/bstgconfig.c
+++ b/beast-gtk/bstgconfig.c
@@ -209,7 +209,7 @@ bst_rc_dump (const gchar *file_name)
   return close (fd) < 0 ? BSE_ERROR_IO : BSE_ERROR_NONE;
 }
 
-static SfiTokenType
+static GTokenType
 rc_file_try_statement (gpointer   context_data,
 		       SfiRStore *rstore,
 		       GScanner  *scanner,
diff --git a/beast-gtk/bstkeybindings.c b/beast-gtk/bstkeybindings.c
index 10a34df..63b934d 100644
--- a/beast-gtk/bstkeybindings.c
+++ b/beast-gtk/bstkeybindings.c
@@ -656,7 +656,7 @@ bst_key_binding_dump (const gchar *file_name,
   return close (fd) < 0 ? BSE_ERROR_IO : BSE_ERROR_NONE;
 }
 
-static SfiTokenType
+static GTokenType
 key_binding_try_statement (gpointer   context_data,
                            SfiRStore *rstore,
                            GScanner  *scanner,
diff --git a/beast-gtk/bstmsgabsorb.c b/beast-gtk/bstmsgabsorb.c
index 2465af7..cb9a9ed 100644
--- a/beast-gtk/bstmsgabsorb.c
+++ b/beast-gtk/bstmsgabsorb.c
@@ -304,7 +304,7 @@ bst_msg_absorb_config_save (void)
   g_free (file_name);
 }
 
-static SfiTokenType
+static GTokenType
 msg_absorb_config_try_statement (gpointer   context_data,
                                  SfiRStore *rstore,
                                  GScanner  *scanner,
diff --git a/beast-gtk/bstskinconfig.c b/beast-gtk/bstskinconfig.c
index 9fe92f1..7cd8f67 100644
--- a/beast-gtk/bstskinconfig.c
+++ b/beast-gtk/bstskinconfig.c
@@ -245,7 +245,7 @@ bst_skin_dump (const gchar *file_name)
   return close (fd) < 0 ? BSE_ERROR_IO : BSE_ERROR_NONE;
 }
 
-static SfiTokenType
+static GTokenType
 skin_file_try_statement (gpointer   context_data,
                          SfiRStore *rstore,
                          GScanner  *scanner,
diff --git a/bse/Makefile.am b/bse/Makefile.am
index 4cf8646..24394b9 100644
--- a/bse/Makefile.am
+++ b/bse/Makefile.am
@@ -80,7 +80,7 @@ bse_sources = $(strip \
 	bsepcmdevice.cc		bsepcmdevice-oss.cc	bsepcmdevice-null.cc		bseplugin.c \
 	bseprocedure.c		bseproject.cc		bsescripthelper.c		bseserver.cc \
 	bsesnet.cc		bsesnooper.c		bsesong.cc			bsesequencer.cc \
-	bsesource.cc		bsestandardosc.cc	bsestandardsynths.cc		bsestorage.c \
+	bsesource.cc		bsestandardosc.cc	bsestandardsynths.cc		bsestorage.cc \
 	bseinstrumentoutput.cc	bsesubiport.cc		bseinstrumentinput.cc		bsesuboport.cc \
 	bsesubsynth.cc		bsesuper.cc		bsetrack.cc			bsetype.cc \
 	bseutils.cc		bsemidivoice.c		bsewave.cc			bsewaveosc.cc \
diff --git a/bse/bsebus.cc b/bse/bsebus.cc
index cfbe926..4a94154 100644
--- a/bse/bsebus.cc
+++ b/bse/bsebus.cc
@@ -783,7 +783,7 @@ bus_restore_start (BseObject  *object,
   BSE_OBJECT_CLASS (bus_parent_class)->restore_start (object, storage);
 }
 
-static SfiTokenType
+static GTokenType
 bus_restore_private (BseObject  *object,
                      BseStorage *storage,
                      GScanner   *scanner)
@@ -797,10 +797,10 @@ bus_restore_private (BseObject  *object,
       /* parse osource upath and queue handler */
       GTokenType token = bse_storage_parse_item_link (storage, BSE_ITEM (self), bus_restore_add_input, NULL);
       if (token != G_TOKEN_NONE)
-        return SfiTokenType (token);
+        return token;
       /* close statement */
       parse_or_return (scanner, ')');
-      return SFI_TOKEN_NONE;
+      return G_TOKEN_NONE;
     }
   else /* chain parent class' handler */
     return BSE_OBJECT_CLASS (bus_parent_class)->restore_private (object, storage, scanner);
diff --git a/bse/bsedatapocket.cc b/bse/bsedatapocket.cc
index c7596bf..8f8ed3b 100644
--- a/bse/bsedatapocket.cc
+++ b/bse/bsedatapocket.cc
@@ -47,7 +47,7 @@ static gboolean     bse_data_pocket_needs_storage       (BseItem
                                                          BseStorage             *storage);
 static void	    bse_data_pocket_do_store_private	(BseObject		*object,
 							 BseStorage		*storage);
-static SfiTokenType bse_data_pocket_restore_private	(BseObject		*object,
+static GTokenType   bse_data_pocket_restore_private	(BseObject		*object,
 							 BseStorage		*storage,
                                                          GScanner               *scanner);
 
@@ -550,20 +550,20 @@ object_entry_resolved (void           *data,
 {
   ObjectEntry *oentry = (ObjectEntry*) data;
   BseDataPocket *pocket = BSE_DATA_POCKET (from_item);
-  
+
   if (error)
-    bse_storage_warn (storage, error);
+    bse_storage_warn (storage, "%s", error);
   else if (oentry->id)
     {
       BseDataPocketValue value;
-      
+
       value.v_object = to_item;
       _bse_data_pocket_entry_set (pocket, oentry->id, oentry->quark, BSE_DATA_POCKET_OBJECT, value);
     }
   g_free (oentry);
 }
 
-static SfiTokenType
+static GTokenType
 parse_set_data (BseDataPocket *pocket,
 		uint           id,
 		BseStorage    *storage,
@@ -583,7 +583,7 @@ parse_set_data (BseDataPocket *pocket,
   g_scanner_get_next_token (scanner);
   scanner->config->char_2_token = char_2_token;
   if (scanner->token != G_TOKEN_CHAR)
-    return SfiTokenType (G_TOKEN_CHAR);
+    return G_TOKEN_CHAR;
   ttype = scanner->value.v_char;
   
   switch (ttype)
@@ -619,19 +619,19 @@ parse_set_data (BseDataPocket *pocket,
       oentry->quark = quark;
       token = bse_storage_parse_item_link (storage, BSE_ITEM (pocket), object_entry_resolved, oentry);
       if (token != G_TOKEN_NONE)
-	return SfiTokenType (token);
+	return token;
       if (g_scanner_peek_next_token (scanner) != ')')
 	{
 	  oentry->id = 0;
-	  return SfiTokenType (')');
+	  return GTokenType (')');
 	}
       break;
     default:
       /* unmatched data type */
-      return (SfiTokenType) bse_storage_warn_skip (storage,
-				                   "invalid data type specification `%c' for \"%s\"",
-				                   ttype,
-				                   g_quark_to_string (quark));
+      return bse_storage_warn_skip (storage,
+                                    "invalid data type specification `%c' for \"%s\"",
+                                    ttype,
+                                    g_quark_to_string (quark));
     }
   peek_or_return (scanner, ')');
   
@@ -641,10 +641,10 @@ parse_set_data (BseDataPocket *pocket,
   
   g_scanner_get_next_token (scanner); /* eat ')' */
   
-  return SFI_TOKEN_NONE;
+  return G_TOKEN_NONE;
 }
 
-static SfiTokenType
+static GTokenType
 bse_data_pocket_restore_private (BseObject  *object,
 				 BseStorage *storage,
                                  GScanner   *scanner)
@@ -670,13 +670,13 @@ bse_data_pocket_restore_private (BseObject  *object,
 		{
 		  expected_token = (GTokenType) parse_set_data (pocket, id, storage, scanner);
 		  if (expected_token != G_TOKEN_NONE)
-		    return SfiTokenType (expected_token);
+		    return expected_token;
 		}
 	      else
 		bse_storage_warn_skip (storage, "unknown directive `%s'", scanner->next_value.v_identifier);
 	    }
 	  else
-	    return SfiTokenType (')');
+	    return GTokenType (')');
 	}
       parse_or_return (scanner, ')');
       expected_token = G_TOKEN_NONE;
@@ -684,5 +684,5 @@ bse_data_pocket_restore_private (BseObject  *object,
   else /* chain parent class' handler */
     expected_token = (GTokenType) BSE_OBJECT_CLASS (parent_class)->restore_private (object, storage, scanner);
 
-  return SfiTokenType (expected_token);
+  return expected_token;
 }
diff --git a/bse/bsedefs.h b/bse/bsedefs.h
index 9339cc1..6616526 100644
--- a/bse/bsedefs.h
+++ b/bse/bsedefs.h
@@ -137,7 +137,7 @@ typedef void          (*BseFreeFunc)         (gpointer           data);
 typedef gboolean      (*BseIOWatch)	     (gpointer		 data,
                                               guint              n_pfds,
 					      GPollFD		*pfd);
-typedef SfiTokenType  (*BseTryStatement)     (gpointer           context_data,
+typedef GTokenType    (*BseTryStatement)     (gpointer           context_data,
                                               BseStorage        *storage,
                                               GScanner          *scanner,
                                               gpointer           user_data);
diff --git a/bse/bseobject.cc b/bse/bseobject.cc
index a9e05bc..798bac6 100644
--- a/bse/bseobject.cc
+++ b/bse/bseobject.cc
@@ -614,7 +614,7 @@ object_restore_start (BseObject      *object,
 {
 }
 
-static SfiTokenType
+static GTokenType
 object_restore_private (BseObject      *object,
                         BseStorage     *storage,
                         GScanner       *scanner)
diff --git a/bse/bseobject.h b/bse/bseobject.h
index c033784..1d4cb99 100644
--- a/bse/bseobject.h
+++ b/bse/bseobject.h
@@ -84,7 +84,7 @@ struct _BseObjectClass
 						 BseStorage	*storage);
   void                  (*restore_start)        (BseObject      *object,
                                                  BseStorage     *storage);
-  SfiTokenType		(*restore_private)	(BseObject	*object,
+  GTokenType		(*restore_private)	(BseObject	*object,
 						 BseStorage	*storage,
                                                  GScanner       *scanner);
   void                  (*restore_finish)       (BseObject      *object,
diff --git a/bse/bseparasite.c b/bse/bseparasite.c
index b69f39e..7c92b58 100644
--- a/bse/bseparasite.c
+++ b/bse/bseparasite.c
@@ -20,7 +20,6 @@
 #include <sfi/gbsearcharray.h>
 #include <string.h>
 
-
 typedef struct {
   const gchar *path;
   SfiRec      *rec;
@@ -619,7 +618,7 @@ bse_parasite_restore (BseObject  *object,
   GTokenType ttype;
   guint n_values;
   gpointer data;
-  
+
   /* check identifier */
   if (g_scanner_peek_next_token (scanner) != G_TOKEN_IDENTIFIER ||
       !bse_string_equals ("parasite", scanner->next_value.v_identifier))
@@ -638,12 +637,12 @@ bse_parasite_restore (BseObject  *object,
   if (g_scanner_get_next_token (scanner) != G_TOKEN_STRING)
     return G_TOKEN_STRING;
   quark = g_quark_from_string (scanner->value.v_string);
-  
-  switch (ttype)
+
+  switch ((uint) ttype)
     {
       guint i;
       gfloat *floats;
-      
+
     case PARASITE_FLOAT:
       if (g_scanner_get_next_token (scanner) != G_TOKEN_INT)
 	return G_TOKEN_INT;
diff --git a/bse/bsepart.cc b/bse/bsepart.cc
index 0ea07d5..9401c07 100644
--- a/bse/bsepart.cc
+++ b/bse/bsepart.cc
@@ -56,7 +56,7 @@ static void	    bse_part_dispose		(GObject	*object);
 static void	    bse_part_finalize		(GObject	*object);
 static void	    bse_part_store_private	(BseObject	*object,
 						 BseStorage	*storage);
-static SfiTokenType bse_part_restore_private	(BseObject	*object,
+static GTokenType   bse_part_restore_private	(BseObject	*object,
 						 BseStorage	*storage,
                                                  GScanner       *scanner);
 
@@ -1470,7 +1470,7 @@ bse_part_store_private (BseObject  *object,
     }
 }
 
-static SfiTokenType
+static GTokenType
 bse_part_restore_private (BseObject  *object,
 			  BseStorage *storage,
                           GScanner   *scanner)
@@ -1491,7 +1491,7 @@ bse_part_restore_private (BseObject  *object,
       parse_or_return (scanner, G_TOKEN_INT);           /* channel */
       channel = scanner->value.v_int64;
       if (channel >= self->n_channels)
-        return (SfiTokenType) bse_storage_warn_skip (storage, "ignoring notes with invalid channel: %u", channel);
+        return bse_storage_warn_skip (storage, "ignoring notes with invalid channel: %u", channel);
       while (g_scanner_peek_next_token (scanner) != ')')
         {
           guint tick, duration, note;
@@ -1531,7 +1531,7 @@ bse_part_restore_private (BseObject  *object,
                               channel, tick, duration, note);
         }
       parse_or_return (scanner, ')');
-      return SFI_TOKEN_NONE;
+      return G_TOKEN_NONE;
     }
   else if (quark == quark_insert_controls)
     {
@@ -1563,7 +1563,7 @@ bse_part_restore_private (BseObject  *object,
           else
             {
               g_clear_error (&error);
-              return SfiTokenType (G_TOKEN_FLOAT);
+              return G_TOKEN_FLOAT;
             }
           if (g_scanner_peek_next_token (scanner) != ')')
             g_clear_error (&error);
@@ -1575,7 +1575,7 @@ bse_part_restore_private (BseObject  *object,
           g_clear_error (&error);
         }
       parse_or_return (scanner, ')');
-      return SFI_TOKEN_NONE;
+      return G_TOKEN_NONE;
     }
   else if (quark == quark_insert_note)       /* pre-0.6.0 */
     {
@@ -1610,7 +1610,7 @@ bse_part_restore_private (BseObject  *object,
       if (!bse_part_insert_note (self, ~0, tick, duration, note, fine_tune, velocity))
 	bse_storage_warn (storage, "note insertion (note=%d tick=%u duration=%u) failed",
 			  note, tick, duration);
-      return SFI_TOKEN_NONE;
+      return G_TOKEN_NONE;
     }
   else if (quark == quark_insert_control)       /* pre-0.6.0 */
     {
@@ -1637,12 +1637,12 @@ bse_part_restore_private (BseObject  *object,
           value = negate ? -scanner->value.v_float : scanner->value.v_float;
         }
       else
-        return SfiTokenType (G_TOKEN_FLOAT);
+        return G_TOKEN_FLOAT;
       parse_or_return (scanner, ')');
 
       if (!bse_part_insert_control (self, tick, BseMidiSignalType (ctype), CLAMP (value, -1, +1)))
         bse_storage_warn (storage, "skipping control event of invalid type: %d", ctype);
-      return SFI_TOKEN_NONE;
+      return G_TOKEN_NONE;
     }
   else /* chain parent class' handler */
     return BSE_OBJECT_CLASS (parent_class)->restore_private (object, storage, scanner);
diff --git a/bse/bseserver.cc b/bse/bseserver.cc
index 3549e21..8d05573 100644
--- a/bse/bseserver.cc
+++ b/bse/bseserver.cc
@@ -164,7 +164,7 @@ bse_server_class_init (BseServerClass *klass)
 						     G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
 }
 
-static SfiTokenType
+static GTokenType
 rc_file_try_statement (gpointer   context_data,
 		       SfiRStore *rstore,
 		       GScanner  *scanner,
@@ -185,7 +185,7 @@ rc_file_try_statement (gpointer   context_data,
                       "bse-preferences", rec,
                       NULL);
       sfi_value_free (value);
-      return SfiTokenType (token);
+      return token;
     }
   else
     return SFI_TOKEN_UNMATCHED;
diff --git a/bse/bsesource.cc b/bse/bsesource.cc
index 35e5e08..8dad64c 100644
--- a/bse/bsesource.cc
+++ b/bse/bsesource.cc
@@ -1856,7 +1856,7 @@ resolve_osource_input (gpointer     data,
   g_free (dinput);
 }
 
-static SfiTokenType
+static GTokenType
 bse_source_restore_private (BseObject  *object,
 			    BseStorage *storage,
                             GScanner   *scanner)
@@ -1886,7 +1886,7 @@ bse_source_restore_private (BseObject  *object,
 	{
 	  GTokenType token = bse_storage_parse_item_link (storage, BSE_ITEM (source), resolve_osource_input, dinput);
 	  if (token != G_TOKEN_NONE)
-	    return SfiTokenType (token);
+	    return token;
 	}
 
       /* parse ochannel name */
@@ -1896,7 +1896,7 @@ bse_source_restore_private (BseObject  *object,
 
       /* close statement */
       parse_or_return (scanner, ')');
-      return SFI_TOKEN_NONE;
+      return G_TOKEN_NONE;
     }
   else /* chain parent class' handler */
     return BSE_OBJECT_CLASS (parent_class)->restore_private (object, storage, scanner);
diff --git a/bse/bsestorage.h b/bse/bsestorage.h
index 0d5eb7c..4851d16 100644
--- a/bse/bsestorage.h
+++ b/bse/bsestorage.h
@@ -115,9 +115,9 @@ void         bse_storage_input_text             (BseStorage             *self,
 GTokenType   bse_storage_restore_item           (BseStorage             *self,
                                                  gpointer                item);
 void         bse_storage_store_item             (BseStorage             *self,
-                                                 gpointer                item);
+                                                 BseItem                *item);
 void         bse_storage_store_child            (BseStorage             *self,
-                                                 gpointer                item);
+                                                 BseItem                *item);
 const gchar* bse_storage_item_get_compat_type   (BseItem                *item);
 
 
diff --git a/bse/bsetrack.cc b/bse/bsetrack.cc
index 21022cc..00b3ead 100644
--- a/bse/bsetrack.cc
+++ b/bse/bsetrack.cc
@@ -67,7 +67,7 @@ static void         bse_track_get_property        (GObject       *object,
                                                    GParamSpec    *pspec);
 static void         bse_track_store_private       (BseObject     *object,
                                                    BseStorage    *storage);
-static SfiTokenType bse_track_restore_private     (BseObject     *object,
+static GTokenType   bse_track_restore_private     (BseObject     *object,
                                                    BseStorage    *storage,
                                                    GScanner      *scanner);
 static void         bse_track_update_midi_channel (BseTrack      *self);
@@ -951,7 +951,7 @@ part_link_resolved (gpointer        data,
     }
 }
 
-static SfiTokenType
+static GTokenType
 bse_track_restore_private (BseObject  *object,
 			   BseStorage *storage,
                            GScanner   *scanner)
@@ -970,9 +970,9 @@ bse_track_restore_private (BseObject  *object,
       tick = scanner->value.v_int64;
       token = bse_storage_parse_item_link (storage, BSE_ITEM (self), part_link_resolved, GUINT_TO_POINTER (tick));
       if (token != G_TOKEN_NONE)
-	return SfiTokenType (token);
+	return token;
       parse_or_return (scanner, ')');
-      return SFI_TOKEN_NONE;
+      return G_TOKEN_NONE;
     }
   else /* chain parent class' handler */
     return BSE_OBJECT_CLASS (parent_class)->restore_private (object, storage, scanner);
diff --git a/bse/bsewave.cc b/bse/bsewave.cc
index 7644bee..f1e47c3 100644
--- a/bse/bsewave.cc
+++ b/bse/bsewave.cc
@@ -419,7 +419,7 @@ bse_wave_store_private (BseObject  *object,
     }
 }
 
-static SfiTokenType
+static GTokenType
 parse_wave_chunk (BseWave         *wave,
 		  BseStorage      *storage,
                   GScanner        *scanner,
@@ -437,38 +437,38 @@ parse_wave_chunk (BseWave         *wave,
       pwchunk->xinfos = NULL;
       GTokenType token = bse_storage_parse_xinfos (storage, &pwchunk->xinfos);
       if (token != G_TOKEN_NONE)
-        return SfiTokenType (token);
+        return token;
     }
   else if (bse_storage_match_data_handle (storage, quark))
     {
-      guint expected_token;
+      GTokenType expected_token;
       if (pwchunk->data_handle)
-	return (SfiTokenType) bse_storage_warn_skip (storage, "duplicate wave data reference");
+	return bse_storage_warn_skip (storage, "duplicate wave data reference");
       expected_token = bse_storage_parse_data_handle_rest (storage,
                                                            &pwchunk->data_handle,
                                                            &pwchunk->wh_n_channels,
                                                            &pwchunk->wh_mix_freq,
                                                            &pwchunk->wh_osc_freq);
       if (expected_token != G_TOKEN_NONE)
-	return SfiTokenType (expected_token);
+	return expected_token;
       if (!pwchunk->data_handle)
         bse_storage_warn (storage, "invalid wave data reference");
       /* closing brace already parsed by bse_storage_parse_data_handle_rest() */
-      return SFI_TOKEN_NONE;
+      return G_TOKEN_NONE;
     }
   else if (BSE_STORAGE_COMPAT (storage, 0, 5, 1) && quark == quark_wave_handle)
     {
-      guint expected_token;
+      GTokenType expected_token;
       g_scanner_get_next_token (scanner); /* eat identifier */
       if (pwchunk->data_handle)
-	return (SfiTokenType) bse_storage_warn_skip (storage, "duplicate wave data reference");
+	return bse_storage_warn_skip (storage, "duplicate wave data reference");
       expected_token = bse_storage_parse_data_handle (storage,
                                                       &pwchunk->data_handle,
                                                       &pwchunk->wh_n_channels,
                                                       &pwchunk->wh_mix_freq,
                                                       &pwchunk->wh_osc_freq);
       if (expected_token != G_TOKEN_NONE)
-	return SfiTokenType (expected_token);
+	return expected_token;
       if (!pwchunk->data_handle)
         bse_storage_warn (storage, "invalid wave data reference");
     }
@@ -494,10 +494,10 @@ parse_wave_chunk (BseWave         *wave,
     }
   else
     return SFI_TOKEN_UNMATCHED;
-  return g_scanner_get_next_token (scanner) == ')' ? SFI_TOKEN_NONE : SfiTokenType (')');
+  return g_scanner_get_next_token (scanner) == ')' ? G_TOKEN_NONE : GTokenType (')');
 }
 
-static SfiTokenType
+static GTokenType
 bse_wave_restore_private (BseObject  *object,
 			  BseStorage *storage,
                           GScanner   *scanner)
@@ -518,7 +518,7 @@ bse_wave_restore_private (BseObject  *object,
       gchar **xinfos = NULL;
       GTokenType token = bse_storage_parse_xinfos (storage, &xinfos);
       if (token != G_TOKEN_NONE)
-        return SfiTokenType (token);
+        return token;
       guint i = 0;
       for (i = 0; xinfos && xinfos[i]; i++)
         wave->xinfos = bse_xinfos_parse_assignment (wave->xinfos, xinfos[i]);
@@ -538,7 +538,7 @@ bse_wave_restore_private (BseObject  *object,
       if (g_scanner_get_next_token (scanner) != G_TOKEN_STRING)
 	{
 	  g_free (file_name);
-	  return SfiTokenType (G_TOKEN_STRING);
+	  return G_TOKEN_STRING;
 	}
       wave_name = g_strdup (scanner->value.v_string);
       skip_list = bse_freq_array_new (1024);
@@ -600,14 +600,14 @@ bse_wave_restore_private (BseObject  *object,
       if (g_scanner_get_next_token (scanner) != G_TOKEN_STRING)
 	{
 	  g_free (file_name);
-	  return SfiTokenType (G_TOKEN_STRING);
+	  return G_TOKEN_STRING;
 	}
       gchar *wave_name = g_strdup (scanner->value.v_string);
       if (g_scanner_get_next_token (scanner) != ')')
 	{
 	  g_free (file_name);
 	  g_free (wave_name);
-	  return SfiTokenType (')');
+	  return GTokenType (')');
 	}
       // g_print ("set-locator \"%s\" \"%s\"\n", file_name, wave_name);
       bse_wave_set_locator (wave, file_name, wave_name);
@@ -689,7 +689,7 @@ bse_wave_restore_private (BseObject  *object,
   else /* chain parent class' handler */
     expected_token = (GTokenType) BSE_OBJECT_CLASS (parent_class)->restore_private (object, storage, scanner);
 
-  return SfiTokenType (expected_token);
+  return expected_token;
 }
 
 void
diff --git a/sfi/sfistore.h b/sfi/sfistore.h
index 4242bed..db2763d 100644
--- a/sfi/sfistore.h
+++ b/sfi/sfistore.h
@@ -36,17 +36,13 @@ typedef struct
   guint    flushed : 1;
   gchar    comment_start;
 } SfiWStore;
-typedef enum    /*< skip >*/
-{
-  SFI_TOKEN_NONE = G_TOKEN_NONE, // convenience
-  SFI_TOKEN_UNMATCHED   = G_TOKEN_LAST + 1,
-  SFI_TOKEN_LAST
-} SfiTokenType;
+#define SFI_TOKEN_UNMATCHED     ((GTokenType) (G_TOKEN_LAST + 1))
+#define SFI_TOKEN_LAST          ((GTokenType) (SFI_TOKEN_UNMATCHED + 1))
 typedef struct _SfiRStore SfiRStore;
-typedef SfiTokenType (*SfiStoreParser)  (gpointer        context_data,
-                                         SfiRStore      *rstore, /* parser_this */
-                                         GScanner       *scanner,
-                                         gpointer        user_data);
+typedef GTokenType (*SfiStoreParser)  (gpointer        context_data,
+                                       SfiRStore      *rstore, /* parser_this */
+                                       GScanner       *scanner,
+                                       gpointer        user_data);
 struct _SfiRStore
 {
   GScanner      *scanner;
@@ -140,18 +136,20 @@ void            sfi_rstore_quick_scan         (SfiRStore      *rstore,
 
 
 /* --- convenience --- */
-#define sfi_scanner_parse_or_return(scanner, token)  G_STMT_START{ \
-  SfiTokenType _t = (SfiTokenType) (token); \
-  if ((SfiTokenType) g_scanner_get_next_token (scanner) != _t) \
-    return _t; \
-}G_STMT_END
-#define sfi_scanner_peek_or_return(scanner, token)   G_STMT_START{ \
-  GScanner *__s = (scanner); SfiTokenType _t = (SfiTokenType) (token); \
-  if ((SfiTokenType) g_scanner_peek_next_token (__s) != _t) { \
-    g_scanner_get_next_token (__s); /* advance position for error-handler */ \
-    return _t; \
-  } \
-}G_STMT_END
+#define sfi_scanner_parse_or_return(scanner, token)  G_STMT_START {     \
+  GTokenType _t = GTokenType (token);                                   \
+  if (g_scanner_get_next_token (scanner) != _t)                         \
+    return _t;                                                          \
+} G_STMT_END
+#define sfi_scanner_peek_or_return(scanner, token)   G_STMT_START {     \
+  GTokenType _t = GTokenType (token);                                   \
+  GScanner *__s = (scanner);                                            \
+  if (g_scanner_peek_next_token (__s) != _t)                            \
+    {                                                                   \
+      g_scanner_get_next_token (__s); /* advance to error pos */        \
+      return _t;                                                        \
+    }                                                                   \
+} G_STMT_END
 
 
 G_END_DECLS



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]