Author: miriam
Date: 2008-05-19 15:35:20 +0000 (Mon, 19 May 2008)
New Revision: 7107

Modified:
   packages/trunk/biniax2/debian/patches/fixes.patch
Log:
Fixed patch so that user directories are compliant with XDG Base Directory 
Specification
http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html



Modified: packages/trunk/biniax2/debian/patches/fixes.patch
===================================================================
--- packages/trunk/biniax2/debian/patches/fixes.patch   2008-05-19 08:10:38 UTC 
(rev 7106)
+++ packages/trunk/biniax2/debian/patches/fixes.patch   2008-05-19 15:35:20 UTC 
(rev 7107)
@@ -1,10 +1,10 @@
 # Copyright (C) 2008 by Miriam Ruiz <[EMAIL PROTECTED]>
 # Distributed under the same license as the game. See debian/copyright
 
-Index: biniax2/biniax.c
+Index: biniax2-0.0.20080409/biniax.c
 ===================================================================
---- biniax2.orig/biniax.c      2008-04-18 13:40:19.000000000 +0000
-+++ biniax2/biniax.c   2008-04-18 13:45:00.000000000 +0000
+--- biniax2-0.0.20080409.orig/biniax.c 2008-05-19 14:32:53.000000000 +0000
++++ biniax2-0.0.20080409/biniax.c      2008-05-19 15:03:38.000000000 +0000
 @@ -51,6 +51,18 @@
  #include "lev.h"
  #include "inc.h"
@@ -53,35 +53,58 @@
        
        /******************************************************************
        SHOW INITIAL WELCOME SCREEN                                             
   
-@@ -1161,11 +1187,43 @@
+@@ -1161,11 +1187,66 @@
  GAME AND HISCORE SAVE / RESTORE
  
******************************************************************************/
  
 +static const char *saveFileName()
 +{
 +#ifndef _WIN32
-+        static char filename[PATH_MAX] = "";
-+        char *home;
-+        struct passwd *passwd;
-+        if (*filename)
-+                return filename;
-+        if (!getuid() || !(home = getenv("HOME")))
-+        {
-+                passwd = getpwuid (getuid());
-+                home=passwd->pw_dir;
-+                if (!home)
-+                {
-+                        fprintf(stderr, "$HOME is not defined.n");
-+                        return "./autosave.bnx2";
-+                }
-+        }
-+        if (strlen(home) > PATH_MAX - sizeof("/.biniax2/autosave"))
-+        {
-+                fprintf(stderr, "$HOME is excessively long.n");
-+                return "./autosave.bnx2";
-+        }
-+        snprintf(filename, sizeof(filename), "%s/.biniax2", home);
-+        mkdir(filename, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
++      char filename[PATH_MAX];
++      char *home;     
++      struct passwd *passwd;
++      if (!getuid())
++      {
++                              fprintf(stderr, "No access to data files for 
root.\n");
++                              return BNX_FALSE;               
++      } else {
++              if ((home = getenv("XDG_DATA_HOME")))
++              { /* See 
http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html */
++                      if (strlen(home) > PATH_MAX - sizeof("/biniax2/hof"))
++                      {
++                              fprintf(stderr, "$XDG_DATA_HOME is excessively 
long.n");
++                              return BNX_FALSE;
++                      }
++                      snprintf(filename, sizeof(filename), "%s/biniax2", 
home);
++                      mkdir(filename, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH); 
                
++              }
++              else if ((home = getenv("HOME")))
++              {
++                      passwd = getpwuid (getuid());
++                      home=passwd->pw_dir;
++                      if (!home)
++                      {
++                              fprintf(stderr, "$HOME is not defined.\n");
++                              return BNX_FALSE;
++                      }
++                      if (strlen(home) > PATH_MAX - 
sizeof("/.local/share/biniax2/autosave"))
++                      {
++                              fprintf(stderr, "$HOME is excessively long.n");
++                              return BNX_FALSE;
++                      }
++                      snprintf(filename, sizeof(filename), "%s/.local", home);
++                      mkdir(filename, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
++                      strncat(filename, "/share", sizeof(filename)-1);
++                      mkdir(filename, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
++                      strncat(filename, "/biniax2", sizeof(filename)-1);
++                      mkdir(filename, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
++              }
++              else
++              {
++                      fprintf(stderr, "Neither $XDG_DATA_HOME nor $HOME are 
defined.\n");
++                      return BNX_FALSE;
++              }
++      }
 +        strncat(filename, "/autosave", sizeof(filename)-1);
 +        return filename;
 +#else
@@ -98,7 +121,7 @@
  
        if ( file == (FILE *) NULL )
                return BNX_FALSE;
-@@ -1181,7 +1239,7 @@
+@@ -1181,7 +1262,7 @@
  {
        FILE            *file;
  
@@ -107,10 +130,10 @@
  
        if ( file == (FILE *) NULL )
                return BNX_FALSE;
-Index: biniax2/desktop/cfg.c
+Index: biniax2-0.0.20080409/desktop/cfg.c
 ===================================================================
---- biniax2.orig/desktop/cfg.c 2008-04-18 13:40:19.000000000 +0000
-+++ biniax2/desktop/cfg.c      2008-04-18 13:40:20.000000000 +0000
+--- biniax2-0.0.20080409.orig/desktop/cfg.c    2008-05-19 14:32:53.000000000 
+0000
++++ biniax2-0.0.20080409/desktop/cfg.c 2008-05-19 15:03:30.000000000 +0000
 @@ -30,6 +30,17 @@
  
  #include "inc.h"
@@ -129,7 +152,7 @@
  
  
/******************************************************************************
  FUNCTIONS
-@@ -52,13 +63,40 @@
+@@ -52,13 +63,63 @@
        char    buffer[ _Cfg_Buffer ];
        int             nTemp;
  
@@ -137,23 +160,46 @@
 +      char filename[PATH_MAX];
 +      char *home;     
 +      struct passwd *passwd;
-+      if (!getuid() || !(home = getenv("HOME")))
++      if (!getuid())
 +      {
-+              passwd = getpwuid (getuid());
-+              home=passwd->pw_dir;
-+              if (!home)
++                              fprintf(stderr, "No access to config files for 
root.\n");
++                              return BNX_FALSE;               
++      } else {
++              if ((home = getenv("XDG_CONFIG_HOME")))
++              { /* See 
http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html */
++                      if (strlen(home) > PATH_MAX - sizeof("/biniax2/config"))
++                      {
++                              fprintf(stderr, "$XDG_CONFIG_HOME is 
excessively long.n");
++                              return BNX_FALSE;
++                      }
++                      snprintf(filename, sizeof(filename), "%s/biniax2", 
home);
++                      mkdir(filename, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH); 
                
++              }
++              else if ((home = getenv("HOME")))
 +              {
-+                      fprintf(stderr, "$HOME is not defined.n");
++                      passwd = getpwuid (getuid());
++                      home=passwd->pw_dir;
++                      if (!home)
++                      {
++                              fprintf(stderr, "$HOME is not defined.\n");
++                              return BNX_FALSE;
++                      }
++                      if (strlen(home) > PATH_MAX - 
sizeof("/.config/biniax2/config"))
++                      {
++                              fprintf(stderr, "$HOME is excessively long.n");
++                              return BNX_FALSE;
++                      }
++                      snprintf(filename, sizeof(filename), "%s/.config", 
home);
++                      mkdir(filename, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
++                      strncat(filename, "/biniax2", sizeof(filename)-1);
++                      mkdir(filename, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
++              }
++              else
++              {
++                      fprintf(stderr, "Neither $XDG_CONFIG_HOME nor $HOME are 
defined.\n");
 +                      return BNX_FALSE;
 +              }
 +      }
-+      if (strlen(home) > PATH_MAX - sizeof("/.biniax2/config"))
-+      {
-+              fprintf(stderr, "$HOME is excessively long.n");
-+              return BNX_FALSE;
-+      }
-+      snprintf(filename, sizeof(filename), "%s/.biniax2", home);
-+      mkdir(filename, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
 +      strncat(filename, "/config", sizeof(filename)-1);
 +#else
 +      char filename[] = "./config.bnx2";
@@ -171,7 +217,7 @@
                return BNX_FALSE;
        }
  
-@@ -76,6 +114,10 @@
+@@ -76,6 +137,10 @@
  
        fclose( f );
  
@@ -182,7 +228,7 @@
        return BNX_TRUE;
  }
  
-@@ -84,12 +126,28 @@
+@@ -84,12 +149,28 @@
        return _Cfg.sound;
  }
  
@@ -211,10 +257,10 @@
 +{
 +      _Cfg.fullscreen = b;
 +}
-Index: biniax2/desktop/cfg.h
+Index: biniax2-0.0.20080409/desktop/cfg.h
 ===================================================================
---- biniax2.orig/desktop/cfg.h 2008-04-18 13:40:19.000000000 +0000
-+++ biniax2/desktop/cfg.h      2008-04-18 13:40:20.000000000 +0000
+--- biniax2-0.0.20080409.orig/desktop/cfg.h    2008-05-19 14:32:53.000000000 
+0000
++++ biniax2-0.0.20080409/desktop/cfg.h 2008-05-19 14:32:59.000000000 +0000
 @@ -43,4 +43,8 @@
  BNX_BOOL cfgGetMusic();
  BNX_BOOL cfgGetFullscreen();
@@ -224,10 +270,10 @@
 +void cfgSetFullscreen(BNX_BOOL);
 +                                             
  #endif
-Index: biniax2/hof.c
+Index: biniax2-0.0.20080409/hof.c
 ===================================================================
---- biniax2.orig/hof.c 2008-04-18 13:40:19.000000000 +0000
-+++ biniax2/hof.c      2008-04-18 13:45:00.000000000 +0000
+--- biniax2-0.0.20080409.orig/hof.c    2008-05-19 14:32:53.000000000 +0000
++++ biniax2-0.0.20080409/hof.c 2008-05-19 15:03:34.000000000 +0000
 @@ -31,6 +31,18 @@
  
  #include "inc.h"
@@ -247,36 +293,59 @@
  #define chCursor '_'
  #define chSpace ' '
  
-@@ -82,6 +94,37 @@
+@@ -82,6 +94,60 @@
        }
  }
  
 +static const char *hofFileName()
 +{
 +#ifndef _WIN32
-+      static char filename[PATH_MAX] = "";
-+      char *home;
++      char filename[PATH_MAX];
++      char *home;     
 +      struct passwd *passwd;
-+      if (*filename)
-+              return filename;
-+      if (!getuid() || !(home = getenv("HOME")))
++      if (!getuid())
 +      {
-+              passwd = getpwuid (getuid());
-+              home=passwd->pw_dir;
-+              if (!home)
++                              fprintf(stderr, "No access to data files for 
root.\n");
++                              return BNX_FALSE;               
++      } else {
++              if ((home = getenv("XDG_DATA_HOME")))
++              { /* See 
http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html */
++                      if (strlen(home) > PATH_MAX - sizeof("/biniax2/hof"))
++                      {
++                              fprintf(stderr, "$XDG_DATA_HOME is excessively 
long.n");
++                              return BNX_FALSE;
++                      }
++                      snprintf(filename, sizeof(filename), "%s/biniax2", 
home);
++                      mkdir(filename, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH); 
                
++              }
++              else if ((home = getenv("HOME")))
 +              {
-+                      fprintf(stderr, "$HOME is not defined.n");
-+                      return "./hof.bnx2";
++                      passwd = getpwuid (getuid());
++                      home=passwd->pw_dir;
++                      if (!home)
++                      {
++                              fprintf(stderr, "$HOME is not defined.\n");
++                              return BNX_FALSE;
++                      }
++                      if (strlen(home) > PATH_MAX - 
sizeof("/.local/share/biniax2/hof"))
++                      {
++                              fprintf(stderr, "$HOME is excessively long.n");
++                              return BNX_FALSE;
++                      }
++                      snprintf(filename, sizeof(filename), "%s/.local", home);
++                      mkdir(filename, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
++                      strncat(filename, "/share", sizeof(filename)-1);
++                      mkdir(filename, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
++                      strncat(filename, "/biniax2", sizeof(filename)-1);
++                      mkdir(filename, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
 +              }
++              else
++              {
++                      fprintf(stderr, "Neither $XDG_DATA_HOME nor $HOME are 
defined.\n");
++                      return BNX_FALSE;
++              }
 +      }
-+      if (strlen(home) > PATH_MAX - sizeof("/.biniax2/hof"))
-+      {
-+              fprintf(stderr, "$HOME is excessively long.n");
-+              return "./hof.bnx2";
-+      }
-+      snprintf(filename, sizeof(filename), "%s/.biniax2", home);
-+      mkdir(filename, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
-+      strncat(filename, "/hof", sizeof(filename)-1);
++      strncat(filename, "/config", sizeof(filename)-1);
 +      return filename;
 +#else
 +      return "./hof.bnx2";
@@ -285,7 +354,7 @@
  
  BNX_BOOL hofInit()
  {
-@@ -98,7 +141,7 @@
+@@ -98,7 +164,7 @@
                Hof.tactic[ i ].score = (cHofEntries - i) * cHofInitScore;
        }
  
@@ -294,7 +363,7 @@
  
        if ( file == (FILE *) NULL )
                return BNX_FALSE;
-@@ -114,7 +157,7 @@
+@@ -114,7 +180,7 @@
  {
        FILE            *file;
  
@@ -303,7 +372,7 @@
  
        if ( file == (FILE *) NULL )
                return BNX_FALSE;
-@@ -246,4 +289,4 @@
+@@ -246,4 +312,4 @@
  BNX_HALL *hofGet()
  {
        return (BNX_HALL *) &Hof;


_______________________________________________
Pkg-games-commits mailing list
[email protected]
http://lists.alioth.debian.org/mailman/listinfo/pkg-games-commits

Reply via email to