Package: hex-a-hop
Version: 0.0.20070315-7
Severity: normal

The following patch makes it not SEGV when it can't load a bmp file, makes the
SWAP16 and SWAP32 macros available from savestate.h, and makes the = operator
on the String class behave correctly when assigning the value of "".

This makes it all compile correctly for editing.

diff -ru hex-a-hop-0.0.20070315.new/hex_puzzzle.cpp 
hex-a-hop-0.0.20070315/hex_puzzzle.cpp
--- hex-a-hop-0.0.20070315.new/hex_puzzzle.cpp  2009-10-11 22:01:42.000000000 
+1100
+++ hex-a-hop-0.0.20070315/hex_puzzzle.cpp      2009-10-11 21:10:02.000000000 
+1100
@@ -2416,6 +2417,7 @@
                if (strstr(bmp, ".bmp"))
                {
                        g = SDL_LoadBMP(bmp);
+                       if (!g) FATAL("Unable to SDL_LoadBMP file", bmp);
 
                        char out[1024];
                        strcpy(out, bmp);
diff -ru hex-a-hop-0.0.20070315.new/savestate.h 
hex-a-hop-0.0.20070315/savestate.h
--- hex-a-hop-0.0.20070315.new/savestate.h      2009-10-11 18:01:54.000000000 
+1100
+++ hex-a-hop-0.0.20070315/savestate.h  2009-10-11 18:28:52.000000000 +1100
@@ -18,6 +18,16 @@
 
 
 struct HexPuzzle;
+
+#include <SDL/SDL_endian.h>
+
+#if SDL_BYTEORDER == SDL_LIL_ENDIAN
+#define SWAP16(X)    (X)
+#define SWAP32(X)    (X)
+#else
+#define SWAP16(X)    SDL_Swap16(X)
+#define SWAP32(X)    SDL_Swap32(X)
+#endif
 
 class LevelSave
 {
diff -ru hex-a-hop-0.0.20070315.new/state.h hex-a-hop-0.0.20070315/state.h
--- hex-a-hop-0.0.20070315.new/state.h  2009-10-11 18:01:54.000000000 +1100
+++ hex-a-hop-0.0.20070315/state.h      2009-10-11 21:50:45.000000000 +1100
@@ -63,16 +63,51 @@
        int len;
        char* data;
 public:
-       void reserve(int i) { if (i<0) FATAL("-ve string length."); if (i<=len) 
return; len=i; data=(char*)realloc(data, (len+1)*sizeof(char)); }
+       void reserve(int i)
+       {
+               if (i < 0)
+                       FATAL("-ve string length.");
+               if (i <= len)
+                       return;
+               data = (char*)realloc(data, (i+1)*sizeof(char));
+               if(!len)
+                       data[0] = '\0';
+               len = i;
+       }
        String() : len(0), data(NULL) {}
        String(String const & s) : len(0), data(NULL) { reserve(s.len); 
strcpy(data, s.data); }
        ~String() { free(data); }
        operator const char* () const {return data ? data : "";}
        void operator = (String const & a) { *this = (const char*)a; }
-       void operator = (const char * a) { reserve(strlen(a)); strcpy(data, a); 
}
+       void operator = (const char * a)
+       {
+               if(!a || !a[0])
+               {
+                       truncate(0);
+                       return;
+               }
+               reserve(strlen(a)); strcpy(data, a);
+       }
        void operator += (const char * a) { reserve(strlen(a)+len); 
strcat(data, a); }
-       void truncate (int pos) { data[pos] = '\0'; }
-       void fix_backslashes() { if(data) for (int i=0; data[i]; i++) if 
(data[i]=='\\') data[i]='/'; }
+       void truncate (int pos)
+       {
+               if(data && pos < len)
+               {
+                       data[pos] = '\0';
+                       len = 0;
+               }
+       }
+       void fix_backslashes()
+       {
+               if(data)
+               {
+                       for (int i=0; data[i]; i++)
+                       {
+                               if (data[i]=='\\')
+                                       data[i]='/';
+                       }
+               }
+       }
 };
 
 class State

-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.31-trunk-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages hex-a-hop depends on:
ii  libc6                         2.9-27     GNU C Library: Shared libraries
ii  libgcc1                       1:4.4.1-6  GCC support library
ii  libsdl-pango1                 0.1.2-4    text rendering with Pango in SDL a
ii  libsdl1.2debian               1.2.13-5   Simple DirectMedia Layer
ii  libstdc++6                    4.4.1-6    The GNU Standard C++ Library v3

hex-a-hop recommends no packages.

hex-a-hop suggests no packages.

-- no debconf information



-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to