rpms/egoboo/devel KNOWN-BUGS.txt, NONE, 1.1 egoboo-2.4.3-unix.patch, 1.1, 1.2 egoboo.spec, 1.2, 1.3

Hans de Goede (jwrdegoede) fedora-extras-commits at redhat.com
Thu Oct 25 13:29:10 UTC 2007


Author: jwrdegoede

Update of /cvs/extras/rpms/egoboo/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv18474

Modified Files:
	egoboo-2.4.3-unix.patch egoboo.spec 
Added Files:
	KNOWN-BUGS.txt 
Log Message:
* Thu Oct 25 2007 Hans de Goede <j.w.r.degoede at hhs.nl> 2.4.3-4
- Fix yet another crash only occuring on i386 and another one only occuring
  when playing a paladin on x86_64 (bz 351171)



--- NEW FILE KNOWN-BUGS.txt ---
1) When loading a saved game, then exiting the saved game, and then
   starting a new player you get a message: "Press space to respawn" and
   pressing space does nothing.

Workaround: when you want to start a new player after loading a saved game,
completely exit egoboo and start it again.

egoboo-2.4.3-unix.patch:

Index: egoboo-2.4.3-unix.patch
===================================================================
RCS file: /cvs/extras/rpms/egoboo/devel/egoboo-2.4.3-unix.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- egoboo-2.4.3-unix.patch	9 Oct 2007 08:32:52 -0000	1.1
+++ egoboo-2.4.3-unix.patch	25 Oct 2007 13:29:05 -0000	1.2
@@ -27,6 +27,24 @@
 diff -up egosrc234/game/game.c.unix egosrc234/game/game.c
 --- egosrc234/game/game.c.unix	2007-09-20 11:08:08.000000000 +0200
 +++ egosrc234/game/game.c	2007-10-08 22:57:53.000000000 +0200
+@@ -414,14 +414,15 @@ unsigned char goto_colon_yesno(FILE* fil
+     //     bfalse if there are no more
+     char cTmp;
+ 
+-    fscanf(fileread, "%c", &cTmp);
+-    while(cTmp != ':')
++    do
+     {
+         if(fscanf(fileread, "%c", &cTmp)==EOF)
+         {
+             return bfalse;
+         }
+     }
++    while(cTmp != ':');
++    
+     return btrue;
+ }
+ 
 @@ -3427,7 +3427,7 @@ void update_timers()
      lstclock = allclock;
      allclock = SDL_GetTicks()-sttclock;
@@ -187,17 +205,41 @@
 diff -up egosrc234/game/graphic.c.unix egosrc234/game/graphic.c
 --- egosrc234/game/graphic.c.unix	2007-09-19 22:12:00.000000000 +0200
 +++ egosrc234/game/graphic.c	2007-10-08 22:56:46.000000000 +0200
-@@ -3,6 +3,10 @@
+@@ -3,6 +3,11 @@
  
  #include "egoboo.h"
  
 +#ifdef __unix__
++#include <unistd.h>
 +#define min(a,b) ( ((a)<(b))? (a):(b) )
 +#endif
 +
  // Defined in egoboo.h
  SDL_Surface *displaySurface = NULL;
  bool_t	gTextureOn = bfalse;
+@@ -1107,6 +1108,22 @@ int load_one_object(int skin, char* tmpl
+     //printf(" DIAG: load object model\n");
+     // Load the object model
+     make_newloadname(tmploadname, "tris.md2", newloadname);
++
++#ifdef __unix__
++    // unix is case sensitive, but sometimes this file is called tris.MD2
++    if (access(newloadname, R_OK))
++    {
++        make_newloadname(tmploadname, "tris.MD2", newloadname);
++        // still no luck !
++        if (access(newloadname, R_OK))
++        {
++            fprintf(stderr, "ERROR: cannot open: %s\n", newloadname);
++            SDL_Quit ();
++            exit(1);
++        }
++    }
++#endif
++        
+     load_one_md2(newloadname, object);
+ 	md2_models[object] = md2_loadFromFile(newloadname);
+ 
 @@ -1278,7 +1282,7 @@ void load_all_objects(char *modname)
  
      // Log all of the script errors
@@ -582,3 +624,64 @@
 +  for (f = 0; f < 70; ++f) printf("*");printf("\n");
 +  return 0;
 +}
+diff -up egosrc234/game/script.c~ egosrc234/game/script.c
+--- egosrc234/game/script.c~	2007-10-25 13:21:49.000000000 +0200
++++ egosrc234/game/script.c	2007-10-25 13:33:01.000000000 +0200
+@@ -41,6 +41,7 @@ void insert_space(int position)
+             cTmp=cSwap;
+             position++;
+         }
++        cLineBuffer[position] = 0; // or cTmp as cTmp == 0
+     }
+ }
+ 
+@@ -77,7 +77,7 @@ int load_one_line(int read)
+     // Parse to start to maintain indentation
+     iLineSize = 0;
+     stillgoing = btrue;
+-    while(stillgoing)
++    while(stillgoing && read < iLoadSize)
+     {
+         cTmp = cLoadBuffer[read];
+         stillgoing = bfalse;
+@@ -93,7 +93,7 @@ int load_one_line(int read)
+     // Parse to comment or end of line
+     foundtext = bfalse;
+     stillgoing = btrue;
+-    while(stillgoing)
++    while(stillgoing && read < iLoadSize)
+     {
+         cTmp = cLoadBuffer[read];  read++;
+         if(cTmp=='\t')
+@@ -109,7 +109,11 @@ int load_one_line(int read)
+         if(cTmp == '/' && cLoadBuffer[read] == '/')
+             stillgoing=bfalse;
+     }
+-    iLineSize--;  cLineBuffer[iLineSize]=0;
++    if (stillgoing == bfalse)
++        iLineSize--;
++    
++    cLineBuffer[iLineSize]=0;
++    
+     if(iLineSize>=1)
+     {
+         if(cLineBuffer[iLineSize-1]==' ')
+@@ -153,7 +154,8 @@ int load_parsed_line(int read)
+         cLineBuffer[iLineSize]=cTmp;  iLineSize++;
+         read++;  cTmp = cLoadBuffer[read];
+     }
+-    cLineBuffer[iLineSize]=0;  iLineSize++; read++;
++    cLineBuffer[iLineSize]=0;
++    read++; // skip terminating zero for next call of load_parsed_line()
+     return read;
+ }
+ 
+@@ -298,7 +300,7 @@ int tell_code(int read)
+ 
+     // Skip spaces
+     cTmp=cLineBuffer[read];
+-    while(cTmp==' ' || cTmp==0)
++    while(cTmp==' ')
+     {
+         read++;
+         cTmp=cLineBuffer[read];


Index: egoboo.spec
===================================================================
RCS file: /cvs/extras/rpms/egoboo/devel/egoboo.spec,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- egoboo.spec	9 Oct 2007 08:39:02 -0000	1.2
+++ egoboo.spec	25 Oct 2007 13:29:05 -0000	1.3
@@ -1,6 +1,6 @@
 Name:           egoboo
 Version:        2.4.3
-Release:        2%{?dist}
+Release:        4%{?dist}
 Summary:        A top down graphical (3D) RPG in the spirit of Nethack
 Group:          Amusements/Games
 License:        GPLv3
@@ -8,6 +8,7 @@
 # this is http://home.no.net/egoboo/egosrc243.rar repackaged in tar.gz
 Source0:        %{name}-%{version}.tar.gz
 Source1:        %{name}.desktop
+Source2:        KNOWN-BUGS.txt
 Patch0:         %{name}-2.4.3-unix.patch
 Patch1:         %{name}-2.4.3-opengl-wrapper.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -27,6 +28,7 @@
 %setup -q -n egosrc234
 %patch0 -p1
 %patch1 -p1
+cp -a %{SOURCE2} .
 sed -i 's/\r//g' game/change.log game/Egoboodoc.txt
 iconv -f ISO-8859-1 -t UTF8 game/change.log > ChangeLog
 
@@ -56,13 +58,20 @@
 %files
 %defattr(-,root,root,-)
 # note the end-users docs are in the -data package
-%doc ChangeLog game/Egoboodoc.txt
+%doc ChangeLog game/Egoboodoc.txt KNOWN-BUGS.txt
 %{_bindir}/%{name}
 %{_libexecdir}/%{name}
 %{_datadir}/applications/fedora-%{name}.desktop
 
 
 %changelog
+* Thu Oct 25 2007 Hans de Goede <j.w.r.degoede at hhs.nl> 2.4.3-4
+- Fix yet another crash only occuring on i386 and another one only occuring
+  when playing a paladin on x86_64 (bz 351171)
+
+* Wed Oct 24 2007 Hans de Goede <j.w.r.degoede at hhs.nl> 2.4.3-3
+- Fix several hangs and crashes (bz 351171)
+
 * Tue Oct  9 2007 Hans de Goede <j.w.r.degoede at hhs.nl> 2.4.3-2
 - Merge my unix port patches with the one found here:
   http://freegamer.schattenkind.net/index.php?t=msg&th=152




More information about the fedora-extras-commits mailing list