[gnome-games] Fix games not initializing the scores setgid code



commit 44cfe8c18013ebb571d111377c018617f7d12b79
Author: Robert Ancell <robert ancell canonical com>
Date:   Wed Jan 18 13:24:22 2012 +1100

    Fix games not initializing the scores setgid code

 glines/src/glines.c                         |    2 ++
 gnibbles/src/main.c                         |    2 ++
 gnobots2/src/gnobots.c                      |    2 ++
 gnomine/src/gnomine.vala                    |    2 ++
 gnotravex/src/gnotravex.vala                |    1 +
 gnotski/src/gnotski.c                       |    2 ++
 gtali/src/gyahtzee.c                        |    2 ++
 libgames-support/GnomeGamesSupport-1.0.vapi |    3 +++
 libgames-support/games-scores-backend.c     |   10 ++++++++--
 libgames-support/games-scores-backend.h     |    1 +
 libgames-support/games-scores.c             |    6 ++++++
 libgames-support/games-scores.h             |    1 +
 mahjongg/src/mahjongg.vala                  |    2 ++
 quadrapassel/src/main.cpp                   |    4 +---
 14 files changed, 35 insertions(+), 5 deletions(-)
---
diff --git a/glines/src/glines.c b/glines/src/glines.c
index 960ceb9..194d0a5 100644
--- a/glines/src/glines.c
+++ b/glines/src/glines.c
@@ -1506,6 +1506,8 @@ main (int argc, char *argv[])
   gboolean retval;
   GError *error = NULL;
 
+  games_scores_startup ();
+
   rgen = g_rand_new ();
 
   context = g_option_context_new (NULL);
diff --git a/gnibbles/src/main.c b/gnibbles/src/main.c
index fc8e270..9a6303f 100644
--- a/gnibbles/src/main.c
+++ b/gnibbles/src/main.c
@@ -891,6 +891,8 @@ main (int argc, char **argv)
   int i;
   GError *error = NULL;
 
+  games_scores_startup ();
+
   g_set_application_name (_("Nibbles"));
   
   if (gtk_clutter_init (&argc, &argv) != CLUTTER_INIT_SUCCESS) {
diff --git a/gnobots2/src/gnobots.c b/gnobots2/src/gnobots.c
index 7c00bcd..af2db8f 100644
--- a/gnobots2/src/gnobots.c
+++ b/gnobots2/src/gnobots.c
@@ -143,6 +143,8 @@ main (int argc, char *argv[])
   gboolean retval;
   GError *error = NULL;
 
+  games_scores_startup ();
+
   gettimeofday (&tv, NULL);
   srand (tv.tv_usec);
 
diff --git a/gnomine/src/gnomine.vala b/gnomine/src/gnomine.vala
index 7688716..9b8e225 100644
--- a/gnomine/src/gnomine.vala
+++ b/gnomine/src/gnomine.vala
@@ -768,6 +768,8 @@ public class GnoMine : Gtk.Application
 
     public static int main (string[] args)
     {
+        GnomeGamesSupport.scores_startup ();
+
         var context = new OptionContext ("");
         context.set_translation_domain (GETTEXT_PACKAGE);
         context.add_group (Gtk.get_option_group (true));
diff --git a/gnotravex/src/gnotravex.vala b/gnotravex/src/gnotravex.vala
index 042b184..2f30044 100644
--- a/gnotravex/src/gnotravex.vala
+++ b/gnotravex/src/gnotravex.vala
@@ -330,6 +330,7 @@ public class Gnotravex : Gtk3.Application
 
     public static int main (string[] args)
     {
+        GnomeGamesSupport.scores_startup ();
         var app = new Gnotravex ();
         return app.run (args);
     }
diff --git a/gnotski/src/gnotski.c b/gnotski/src/gnotski.c
index c930866..5e1af38 100644
--- a/gnotski/src/gnotski.c
+++ b/gnotski/src/gnotski.c
@@ -459,6 +459,8 @@ main (int argc, char **argv)
   gboolean retval;
   GError *error = NULL;
 
+  games_scores_startup ();
+
   context = g_option_context_new (NULL);
   g_option_context_set_translation_domain (context, GETTEXT_PACKAGE);
   g_option_context_add_group (context, gtk_get_option_group (TRUE));
diff --git a/gtali/src/gyahtzee.c b/gtali/src/gyahtzee.c
index 8efeeb3..6d8f7f3 100644
--- a/gtali/src/gyahtzee.c
+++ b/gtali/src/gyahtzee.c
@@ -878,6 +878,8 @@ main (int argc, char *argv[])
   gboolean retval;
   GError *error = NULL;
 
+  games_scores_startup ();
+
   /* Reset all yahtzee variables before parsing args */
   YahtzeeInit ();
 
diff --git a/libgames-support/GnomeGamesSupport-1.0.vapi b/libgames-support/GnomeGamesSupport-1.0.vapi
index 5f95ae1..4a9b154 100644
--- a/libgames-support/GnomeGamesSupport-1.0.vapi
+++ b/libgames-support/GnomeGamesSupport-1.0.vapi
@@ -96,6 +96,9 @@ namespace GnomeGamesSupport
         public bool get_is_fullscreen ();
     }
 
+    [CCode (cheader_filename = "games-scores.h")]
+    public void scores_startup ();
+
     [CCode (cprefix = "GAMES_SCORES_STYLE_", cheader_filename = "games-score.h")]
     public enum ScoreStyle
     {
diff --git a/libgames-support/games-scores-backend.c b/libgames-support/games-scores-backend.c
index 7a4b49f..f574713 100644
--- a/libgames-support/games-scores-backend.c
+++ b/libgames-support/games-scores-backend.c
@@ -47,6 +47,14 @@ struct GamesScoresBackendPrivate {
 
 G_DEFINE_TYPE (GamesScoresBackend, games_scores_backend, G_TYPE_OBJECT);
 
+void
+games_scores_backend_startup (void)
+{
+#ifdef ENABLE_SETGID
+  setgid_io_init ();
+#endif
+}
+
 static void
 games_scores_backend_finalize (GObject *object)
 {
@@ -179,8 +187,6 @@ games_scores_backend_get_scores (GamesScoresBackend * self)
   ssize_t length, target;
   GList *t;
   
-  setgid_io_init ();
-
   /* Check for a change in the scores file and update if necessary. */
   error = setgid_io_stat (self->priv->filename, &info);
 
diff --git a/libgames-support/games-scores-backend.h b/libgames-support/games-scores-backend.h
index 6b20141..131fb4b 100644
--- a/libgames-support/games-scores-backend.h
+++ b/libgames-support/games-scores-backend.h
@@ -53,6 +53,7 @@ typedef struct {
   GObjectClass parent_class;
 } GamesScoresBackendClass;
 
+void                games_scores_backend_startup        (void);
 GType               games_scores_backend_get_type       (void);
 GamesScoresBackend *games_scores_backend_new            (GamesScoreStyle style,
                                                          char *base_name,
diff --git a/libgames-support/games-scores.c b/libgames-support/games-scores.c
index d385297..8b097e4 100644
--- a/libgames-support/games-scores.c
+++ b/libgames-support/games-scores.c
@@ -51,6 +51,12 @@ struct GamesScoresPrivate {
   GamesScoresCategoryInternal dummycat;
 };
 
+void
+games_scores_startup (void)
+{
+  games_scores_backend_startup ();
+}
+
 static void
 games_scores_category_free (GamesScoresCategoryInternal *cat)
 {
diff --git a/libgames-support/games-scores.h b/libgames-support/games-scores.h
index 388d68d..02e31c6 100644
--- a/libgames-support/games-scores.h
+++ b/libgames-support/games-scores.h
@@ -62,6 +62,7 @@ typedef struct {
   GObjectClass parent;
 } GamesScoresClass;
 
+void            games_scores_startup           (void);
 GType           games_scores_get_type          (void);
 GamesScores    *games_scores_new               (const char *app_name,
                                                 const GamesScoresCategory *categories,
diff --git a/mahjongg/src/mahjongg.vala b/mahjongg/src/mahjongg.vala
index 5eadd13..73b5d16 100644
--- a/mahjongg/src/mahjongg.vala
+++ b/mahjongg/src/mahjongg.vala
@@ -771,6 +771,8 @@ public class Mahjongg : Gtk.Application
 
     public static int main (string[] args)
     {
+        GnomeGamesSupport.scores_startup ();
+
         Gtk.init (ref args);
 
         var context = new OptionContext ("");
diff --git a/quadrapassel/src/main.cpp b/quadrapassel/src/main.cpp
index 52dbcbc..a1a1591 100644
--- a/quadrapassel/src/main.cpp
+++ b/quadrapassel/src/main.cpp
@@ -32,9 +32,7 @@ main(int argc, char *argv[])
 	gboolean retval;
 	GError *error = NULL;
 
-#ifdef ENABLE_SETGID
-	setgid_io_init ();
-#endif
+    games_scores_startup ();
 
 	int cmdlineLevel = 0;
 



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