[Freeciv-Dev] RE : (PR#39629) Freeciv SDl/Client Win2000

2007-08-30 Thread Champsavoir Nicolas

URL: http://bugs.freeciv.org/Ticket/Display.html?id=39629 

Freeciv Windows SDL Client 2.1.0 beta 6.

-Message d'origine-
De : Daniel Markstedt [mailto:[EMAIL PROTECTED] 
Envoyé : mercredi 29 août 2007 23:21
À : Champsavoir Nicolas
Objet : Re: [Freeciv-Dev] (PR#39629) Freeciv SDl/Client Win2000



URL: http://bugs.freeciv.org/Ticket/Display.html?id=39629 

On 8/29/07, Champsavoir Nicolas [EMAIL PROTECTED] wrote:

 URL: http://bugs.freeciv.org/Ticket/Display.html?id=39629 

 I had the following bug while try to attack a city with a military 
 unit
 :

 Assertion failed !
 Program: civclient.exe
 File: goto.c
 Line: 862
 Expression: unit_is_in_focus(punit)


 Nicolas CHAMPSAVOIR
 CNES - DCT/PS/SSC
 Tel: (05.61.2) 7.41.43


What version of Freeciv is this?





___
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev


[Freeciv-Dev] (PR#39629) Freeciv SDl/Client Win2000

2007-08-30 Thread Pepeto _

URL: http://bugs.freeciv.org/Ticket/Display.html?id=39629 

I think it's not linked with the SDL client. It's a usual client crash.
It should be fixed since revisions 13382 (trunk) and 13384 (2.1) (just
after beta 6 release...) in the patch for #18010.

This bugs was already reported many times: #15854, #39339 and #39430.
Maybe other tickets too but I didn't find them yet...

___
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev


[Freeciv-Dev] (PR#39632) [Patch] Remove CVS references from docs

2007-08-30 Thread Marko Lindqvist

URL: http://bugs.freeciv.org/Ticket/Display.html?id=39632 

 I still found some places where documentation referred Freeciv
version control as CVS. Patch contains also some other minor
corrections applicable for both S2_1 and TRUNK.


 - ML

diff -Nurd -X.diff_ignore freeciv/debian/build.debian freeciv/debian/build.debian
--- freeciv/debian/build.debian	2007-08-04 18:36:08.0 +0300
+++ freeciv/debian/build.debian	2007-08-30 12:55:19.0 +0300
@@ -43,12 +43,12 @@
 MAJOR_VERSION=`awk -F= '$1 == MAJOR_VERSION {print $2}' configure.in`
 MINOR_VERSION=`awk -F= '$1 == MINOR_VERSION {print $2}' configure.in`
 PATCH_VERSION=`awk -F= '$1 == PATCH_VERSION {print $2}' configure.in`
-snapversion=${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-cvs`date +%Y%m%d`
+snapversion=${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-svn`date +%Y%m%d`
 
 cat debian/changelog EOF
 freeciv ($snapversion) experimental; urgency=low
 
-  * New upstream release (CVS snapshot)
+  * New upstream release (svn snapshot)
 
  -- $EMAIL  `822-date`
 
diff -Nurd -X.diff_ignore freeciv/debian/INSTALL.debian freeciv/debian/INSTALL.debian
--- freeciv/debian/INSTALL.debian	2007-08-04 18:36:08.0 +0300
+++ freeciv/debian/INSTALL.debian	2007-08-30 12:58:27.0 +0300
@@ -14,10 +14,10 @@
 
 Of course, maybe the source tree where you're reading this file is newer
 than any version available on your Debian CD or in the ftp mirrors -
-probably a CVS grab - or you want to build it yourself for some other
+probably a svn grab - or you want to build it yourself for some other
 reason (like applying unofficial patches). Ok, you can have your cake and
 eat it too; we made a script to easily build a .deb package directly out of
-the source tree - and get a nice version number if it's a CVS snapshot, too.
+the source tree - and get a nice version number if it's a svn snapshot, too.
 
 First you will need to check if you have the following packages installed:
 
@@ -55,7 +55,7 @@
 $ make distclean
 $ fakeroot build.debian
 $ su
-# dpkg -i ../freeciv_1.11.5+cvs20010419_i386.deb
+# dpkg -i ../freeciv_1.11.5+svn20010419_i386.deb
 # exit
 $
 
diff -Nurd -X.diff_ignore freeciv/doc/BUGS freeciv/doc/BUGS
--- freeciv/doc/BUGS	2007-08-04 18:36:17.0 +0300
+++ freeciv/doc/BUGS	2007-08-30 12:55:51.0 +0300
@@ -88,7 +88,7 @@
  assertion oject-ref_count  0' failed.
 
) please restart your client and append -- --g-fatal-warnings to
-   the command line. Unfortunately this only works with a current CVS
+   the command line. Unfortunately this only works with a current svn
or with version 2.0.0 or better. You will get a core dump this
way. Please include in your bug report the stack trace of this
core dump.
diff -Nurd -X.diff_ignore freeciv/doc/CodingStyle freeciv/doc/CodingStyle
--- freeciv/doc/CodingStyle	2007-08-12 23:55:10.0 +0300
+++ freeciv/doc/CodingStyle	2007-08-30 12:46:01.0 +0300
@@ -228,7 +228,7 @@
 - When doing a diff for a patch, be sure to exclude unnecessary files
   by using the -X argument to diff.  E.g.:
 
-% diff -ruN -Xdiff_ignore freeciv_cvs freeciv /tmp/fix-foo-bug-0.diff
+% diff -ruN -Xdiff_ignore freeciv_svn freeciv /tmp/fix-foo-bug-0.diff
 
   A suggested diff_ignore file is included in the Freeciv distribution.
 
diff -Nurd -X.diff_ignore freeciv/doc/HACKING freeciv/doc/HACKING
--- freeciv/doc/HACKING	2007-08-04 18:36:17.0 +0300
+++ freeciv/doc/HACKING	2007-08-30 12:45:53.0 +0300
@@ -58,7 +58,7 @@
 Server Autogame Testing
 ===
 Code changes should always be tested before submission for inclusion
-into the CVS source tree. It is useful to run the client and server as
+into the svn source tree. It is useful to run the client and server as
 autogames to verify either a particular savegame no longer shows a
 fixed bug, or as a random sequence of games in a while loop overnight.
 
@@ -1035,7 +1035,7 @@
 - When doing a diff for a patch, be sure to exclude unnecessary files
   by using the -X argument to diff.  E.g.:
 
-% diff -ruN -Xdiff_ignore freeciv_cvs freeciv /tmp/fix-foo-bug-0.diff
+% diff -ruN -Xdiff_ignore freeciv_svn freeciv /tmp/fix-foo-bug-0.diff
 
   A suggested diff_ignore file is included in the Freeciv distribution.
 
diff -Nurd -X.diff_ignore freeciv/doc/README.sound freeciv/doc/README.sound
--- freeciv/doc/README.sound	2007-08-04 18:36:17.0 +0300
+++ freeciv/doc/README.sound	2007-08-30 12:50:13.0 +0300
@@ -23,9 +23,8 @@
 with eg tar -xzvf stdsoundsX.tar.gz or use WinZip (for Windows), and
 put the files in the data directory mentioned above.
 
-Note that the CVS version neither includes any sound files nor any
-sound spec file. You can get soundsets (sound files and a spec file)
-from ftp://ftp.freeciv.org/freeciv/contrib/sounds/. At this address
+You can get additional soundsets (sound files and a spec file)
+from 

Re: [Freeciv-Dev] (PR#39632) [Patch] Remove CVS references from docs

2007-08-30 Thread Marko Lindqvist

URL: http://bugs.freeciv.org/Ticket/Display.html?id=39632 

On 30/08/2007, Marko Lindqvist [EMAIL PROTECTED] wrote:

  I still found some places where documentation referred Freeciv
 version control as CVS. Patch contains also some other minor
 corrections applicable for both S2_1 and TRUNK.

 S2_0 needs a bit different version.


 - ML

diff -Nurd -X.diff_ignore freeciv/debian/build.debian freeciv/debian/build.debian
--- freeciv/debian/build.debian	2007-03-05 19:15:18.0 +0200
+++ freeciv/debian/build.debian	2007-08-30 13:09:39.0 +0300
@@ -43,12 +43,12 @@
 MAJOR_VERSION=`awk -F= '$1 == MAJOR_VERSION {print $2}' configure.in`
 MINOR_VERSION=`awk -F= '$1 == MINOR_VERSION {print $2}' configure.in`
 PATCH_VERSION=`awk -F= '$1 == PATCH_VERSION {print $2}' configure.in`
-snapversion=${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-cvs`date +%Y%m%d`
+snapversion=${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-svn`date +%Y%m%d`
 
 cat debian/changelog EOF
 freeciv ($snapversion) experimental; urgency=low
 
-  * New upstream release (CVS snapshot)
+  * New upstream release (svn snapshot)
 
  -- $EMAIL  `822-date`
 
diff -Nurd -X.diff_ignore freeciv/debian/INSTALL.debian freeciv/debian/INSTALL.debian
--- freeciv/debian/INSTALL.debian	2007-03-05 19:15:18.0 +0200
+++ freeciv/debian/INSTALL.debian	2007-08-30 13:09:39.0 +0300
@@ -14,10 +14,10 @@
 
 Of course, maybe the source tree where you're reading this file is newer
 than any version available on your Debian CD or in the ftp mirrors -
-probably a CVS grab - or you want to build it yourself for some other
+probably a svn grab - or you want to build it yourself for some other
 reason (like applying unofficial patches). Ok, you can have your cake and
 eat it too; we made a script to easily build a .deb package directly out of
-the source tree - and get a nice version number if it's a CVS snapshot, too.
+the source tree - and get a nice version number if it's a svn snapshot, too.
 
 First you will need to check if you have the following packages installed:
 
@@ -55,7 +55,7 @@
 $ make distclean
 $ fakeroot build.debian
 $ su
-# dpkg -i ../freeciv_1.11.5+cvs20010419_i386.deb
+# dpkg -i ../freeciv_1.11.5+svn20010419_i386.deb
 # exit
 $
 
diff -Nurd -X.diff_ignore freeciv/doc/BUGS freeciv/doc/BUGS
--- freeciv/doc/BUGS	2007-08-04 04:27:23.0 +0300
+++ freeciv/doc/BUGS	2007-08-30 13:10:08.0 +0300
@@ -122,7 +122,7 @@
  assertion oject-ref_count  0' failed.
 
) please restart your client and append -- --g-fatal-warnings to
-   the command line. Unfortunately this only works with a current CVS
+   the command line. Unfortunately this only works with a current svn
or with version 1.15 or better. You will get a core dump this
way. Please include in your bug report the stack trace of this
core dump.
diff -Nurd -X.diff_ignore freeciv/doc/CodingStyle freeciv/doc/CodingStyle
--- freeciv/doc/CodingStyle	2007-08-12 23:55:16.0 +0300
+++ freeciv/doc/CodingStyle	2007-08-30 13:09:39.0 +0300
@@ -223,7 +223,7 @@
 - When doing a diff for a patch, be sure to exclude unnecessary files
   by using the -X argument to diff.  E.g.:
 
-% diff -ruN -Xdiff_ignore freeciv_cvs freeciv /tmp/fix-foo-bug-0.diff
+% diff -ruN -Xdiff_ignore freeciv_svn freeciv /tmp/fix-foo-bug-0.diff
 
   A suggested diff_ignore file is included in the Freeciv distribution.
 
diff -Nurd -X.diff_ignore freeciv/doc/HACKING freeciv/doc/HACKING
--- freeciv/doc/HACKING	2007-03-05 19:15:21.0 +0200
+++ freeciv/doc/HACKING	2007-08-30 13:09:39.0 +0300
@@ -54,7 +54,7 @@
 Server Autogame Testing
 ===
 Code changes should always be tested before submission for inclusion
-into the CVS source tree. It is useful to run the client and server as
+into the svn source tree. It is useful to run the client and server as
 autogames to verify either a particular savegame no longer shows a
 fixed bug, or as a random sequence of games in a while loop overnight.
 
@@ -1031,7 +1031,7 @@
 - When doing a diff for a patch, be sure to exclude unnecessary files
   by using the -X argument to diff.  E.g.:
 
-% diff -ruN -Xdiff_ignore freeciv_cvs freeciv /tmp/fix-foo-bug-0.diff
+% diff -ruN -Xdiff_ignore freeciv_svn freeciv /tmp/fix-foo-bug-0.diff
 
   A suggested diff_ignore file is included in the Freeciv distribution.
 
diff -Nurd -X.diff_ignore freeciv/doc/README.sound freeciv/doc/README.sound
--- freeciv/doc/README.sound	2007-03-05 19:15:21.0 +0200
+++ freeciv/doc/README.sound	2007-08-30 13:12:25.0 +0300
@@ -23,9 +23,9 @@
 with eg tar -xzvf stdsoundsX.tar.gz or use WinZip (for Windows), and
 put the files in the data directory mentioned above.
 
-Note that the CVS version neither includes any sound files nor any
+Note that the svn version neither includes any sound files nor any
 sound spec file. You can get soundsets (sound files and a spec file)

Re: [Freeciv-Dev] (PR#4712) Version strings for svn versions

2007-08-30 Thread Marko Lindqvist

URL: http://bugs.freeciv.org/Ticket/Display.html?id=4712 

On 14/08/2007, Marko Lindqvist [EMAIL PROTECTED] wrote:

  Attached patch adds target fc_svnrev_gen.h to common/Makefile. At
 this point this file is not used (included) anywhere, and it is not
 dependency for anything (it will be built only if explicitly
 requested)

  That header contains a couple of macros.
  - First there is either FC_SVNREV_ON or FC_SVNREV_OFF defined.
 FC_SVNREV_ON will be defined if source directory is unmodified svn
 checkout directory.
  - FC_SVNREV itself contains release string (r13171) if FC_SVNREV_ON
 defined, or some fallback string if FC_SVNREV_OFF is defined.

  I have tested this in my system using number of tricks, but in the
 end it cannot be fully tested before it is committed (since changing
 build system locally to support this will mean that local system is
 not unmodified).
  Plan is to commit this and then to test that it works. Then we can
 start using it.

 Mostly rewritten to make later integration easier


 - ML

diff -Nurd -X.diff_ignore freeciv/bootstrap/fc_svnrev_gen.h.in freeciv/bootstrap/fc_svnrev_gen.h.in
--- freeciv/bootstrap/fc_svnrev_gen.h.in	1970-01-01 02:00:00.0 +0200
+++ freeciv/bootstrap/fc_svnrev_gen.h.in	2007-08-30 14:38:47.0 +0300
@@ -0,0 +1,29 @@
+/**
+ Freeciv - Copyright (C) 2004 - The Freeciv Project
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+***/
+
+/* common/fc_svnrev_gen.h is automatically generated from
+ * bootstrap/fc_svnrev_gen.h.in. Do not edit fc_svnrev_ge.h, edit
+ * fc_svnrev_gen.h.in */
+
+#ifndef FC__FC_SVNREV_H
+#define FC__FC_SVNREV_H
+
+/* Either FC_SVNREV_OFF or FC_SVNREV_ON macro defined.
+ * If FC_SVNREV_ON is defined, FC_SVNREV contains valid svn revision number
+ * string (currently starting with 'r')
+ * If FC_SVNREV_OFF is defined, you should not use FC_SVNREV even though
+ * it does contain fallback string (currently dist) */
+#define FC_SVNREV_SVNREVSTATE
+#define FC_SVNREV SVNREV
+
+#endif /* FC__FC_SVNREV_H */
diff -Nurd -X.diff_ignore freeciv/bootstrap/generate_svnrev.sh freeciv/bootstrap/generate_svnrev.sh
--- freeciv/bootstrap/generate_svnrev.sh	1970-01-01 02:00:00.0 +0200
+++ freeciv/bootstrap/generate_svnrev.sh	2007-08-30 15:04:34.0 +0300
@@ -0,0 +1,41 @@
+#!/bin/sh
+
+# This script generates fc_svnrev_gen.h from fc_svnrev_gen.h.in.
+# See fc_svnrev_gen.h.in for details.
+
+# Parameters - $1 - top srcdir
+#  $2 - top builddir
+#
+
+# Absolete paths
+INPUTDIR=$(cd $1/bootstrap ; pwd)
+OUTPUTDIR=$(cd $2/common ; pwd)
+
+REVSTATE=OFF
+REV=dist
+
+(cd $INPUTDIR
+ # Check that all commands required by this script are available
+ # If not, we will not claim to know which svn revision this is
+ # (REVSTATE will be OFF)
+ if which svn  which tail  which wc ; then
+   REVTMP=r$(svn info 2/dev/null | grep ^Revision:  | sed 's/^Revision: //')
+   if test $REVTMP != r ; then
+ # This is svn checkout. Check for local modifications
+ if test $(cd $1 ; svn diff | wc -l) -eq 0 ; then
+   REVSTATE=ON
+   REV=$REVTMP
+ else
+   REV=modified $REVTMP
+ fi
+   fi
+ fi
+
+ sed -e s,SVNREV,$REV, -e s,SVNREVSTATE,$REVSTATE, fc_svnrev_gen.h.in  $OUTPUTDIR/fc_svnrev_gen.h.tmp
+ if ! test -f $OUTPUTDIR/fc_svnrev_gen.h ||
+! cmp $OUTPUTDIR/fc_svnrev_gen.h $OUTPUTDIR/fc_svnrev_gen.h.tmp
+ then
+   mv $OUTPUTDIR/fc_svnrev_gen.h.tmp $OUTPUTDIR/fc_svnrev_gen.h
+ fi
+ rm -f $OUTPUTDIR/fc_svnrev_gen.h.tmp
+)  /dev/null
diff -Nurd -X.diff_ignore freeciv/common/Makefile.am freeciv/common/Makefile.am
--- freeciv/common/Makefile.am	2007-08-30 14:38:04.0 +0300
+++ freeciv/common/Makefile.am	2007-08-30 14:55:42.0 +0300
@@ -91,6 +91,9 @@
 	cd $(srcdir)  ./generate_packets.py
 	touch packets_generate
 
+.PHONY : fc_svnrev_gen.h
+fc_svnrev_gen.h :
+	$(top_srcdir)/bootstrap/generate_svnrev.sh $(top_srcdir) $(top_builddir)
+
 #libcivcommon_a_DEPENDENCIES = ../utility/libcivutility.a
 #libcivcommon_a_LIBADD   = ../utility/libcivutility.a
-
___
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev


[Freeciv-Dev] (PR#39634) [Bug] Magic ruleset crash in maybe_make_contact() - unit_owner()

2007-08-30 Thread Marko Lindqvist

URL: http://bugs.freeciv.org/Ticket/Display.html?id=39634 

 Server crash in S2_1 using magic ruleset. Cannot reproduce.

 Program received signal SIGSEGV, Segmentation fault.
unit_owner (punit=0x0125a001) at ../../src.patched/common/unit.c:1100
1100{
(gdb) bt full
#0  unit_owner (punit=0x0125a001) at
../../src.patched/common/unit.c:1100
No locals.
#1  0x0043803b in maybe_make_contact (ptile=0xa14318, pplayer=0x86b368)
at ../../src.patched/server/plrhand.c:1215
myiter = (struct genlist_link *) 0xacfaa0
pcity = value optimized out
tile1 = value optimized out
_y_itr = 20
_max_dist = value optimized out
_x_itr = 18
dummy_y = value optimized out
_index = 7
#2  0x0041a9cf in move_unit (punit=0xbb37e0,
pdesttile=0xa14318, move_cost=3)
at ../../src.patched/server/unittools.c:2890
tile1 = (struct tile *) 0xa17f18
_y_itr = 22
_max_dist = value optimized out
_x_itr = 17
dummy_y = value optimized out
_index = 9
pplayer = (struct player *) 0x86b368
psrctile = (struct tile *) 0xa160a0
pcity = value optimized out
ptransporter = value optimized out
old_vision = (struct vision *) 0xacfab0
#3  0x0045b5e3 in handle_unit_move_request (punit=0xbb37e0,
pdesttile=0xa14318, igzoc=false,
move_diplomat_city=value optimized out) at
../../src.patched/server/unithand.c:1162
move_cost = 0
pplayer = value optimized out
pcity = value optimized out
__PRETTY_FUNCTION__ = handle_unit_move_request
#4  0x004cbab4 in ai_unit_attack (punit=0xbb37e0, ptile=0xa14318)
at ../../src.patched/ai/aitools.c:957
bodyguard = (struct unit *) 0x0
sanity = 397
__PRETTY_FUNCTION__ = ai_unit_attack
#5  0x004cbc7a in ai_unit_execute_path (punit=0xbb37e0, path=0x122a870)
at ../../src.patched/ai/aitools.c:192
ptile = (struct tile *) 0xa14318
id = 397
is_ai = true
i = 1
#6  0x004cc894 in ai_follow_path (punit=0xbb37e0,
path=0x122a870, ptile=value optimized out)
at ../../src.patched/ai/aitools.c:386
old_tile = (struct tile *) 0xa14318
activity = ACTIVITY_IDLE
alive = value optimized out
#7  0x004ccb7f in ai_unit_goto_constrained (punit=0xbb37e0,
ptile=0xa14318,
parameter=0x7fffb5cc0ca0) at ../../src.patched/ai/aitools.c:460
alive = value optimized out
map = (struct pf_map *) 0x127c900
path = (struct pf_path *) 0x122a870
#8  0x004ccc87 in ai_unit_goto (punit=0xbb37e0, ptile=0xa14318)
at ../../src.patched/ai/aitools.c:791
parameter = {start_tile = 0xa160a0, moves_left_initially = 9,
fuel_left_initially = 1,
  move_rate = 9, fuel = 1, owner = 0x86b368, unit_flags = {vec =
\000\000\004\000\000\000\000},
  omniscience = true, turn_mode = TM_WORST_TIME, get_MC = 0x4d80f0
sea_overlap_move, unknown_MC = 6,
  get_TB = 0x4d84b0 no_fights, get_EC = 0x4cc610
prefer_short_stacks, get_zoc = 0,
  is_pos_dangerous = 0x4d89e0 trireme_is_pos_dangerous, get_costs =
0, data = 0x7fffb5cc0d10}
risk_cost = {base_value = 40, fearfulness =
606.81481481481478, ocean_cost = 20,
  unsafe_terrain_cost = 6, enemy_zoc_cost = 1310720}
#9  0x004c2079 in ai_manage_explorer (punit=0xbb37e0) at
../../src.patched/ai/aiexplorer.c:345
_y_itr = 21
_dx = 1
ptile1 = (struct tile *) 0x12
_x_itr = 18
_dy = 1
_index = 9
_sq_radius = 1
desirable = 14940
log_desirable = value optimized out
pos = {tile = 0xa14318, turn = 0, moves_left = 6, fuel_left =
1, total_MC = 3, total_EC = 0,
  dir_to_next_pos = 4294967295, dir_to_here = DIR8_NORTHEAST}
pplayer = (struct player *) 0x86b368
init_moves = 9
log_most_desirable = 9.6117974586868087
max_dist = 7
best_tile = (struct tile *) 0xa14318
best_MC = value optimized out
map = (struct pf_map *) 0x127c900
parameter = {start_tile = 0xa160a0, moves_left_initially = 9,
fuel_left_initially = 1,
  move_rate = 9, fuel = 1, owner = 0x86b368, unit_flags = {vec =
\000\000\004\000\000\000\000},
  omniscience = false, turn_mode = TM_WORST_TIME, get_MC = 0x4d8410
seamove, unknown_MC = 6,
  get_TB = 0x4d8500 no_fights_or_unknown, get_EC = 0, get_zoc = 0,
  is_pos_dangerous = 0x4d89e0 trireme_is_pos_dangerous, get_costs =
0, data = 0x2b8cf5a2f980}
logDF = -0.51082562376599072
logBPS = 11.71015205448437
__PRETTY_FUNCTION__ = ai_manage_explorer
#10 0x004c2a6c in ai_manage_ferryboat (pplayer=0x86b368, punit=0xbb37e0)
at ../../src.patched/ai/aiferry.c:1010
cargo = value optimized out
pcity = value optimized out
sanity = 397
__PRETTY_FUNCTION__ = ai_manage_ferryboat
#11 0x004d22a2 in ai_manage_unit (pplayer=0x86b368, punit=0xbb37e0)
at 

[Freeciv-Dev] (PR#39635) [Patch] Silence S2_1 bad unit type ... fstk -error messages

2007-08-30 Thread Marko Lindqvist

URL: http://bugs.freeciv.org/Ticket/Display.html?id=39635 

 There are many legitimate reasons why fstk is called with unit type
it cannot handle (with custom rulesets at least). In these cases it
simply fails to find target, which is handled in a sane way.
 There is real problem in that AI is not using its units effectively
(fstk cannot handle all units), but rewriting that will not happen in
S2_1 (things have already improved in trunk). So there is no point in
flooding console with error messages (magic ruleset causes a lot of
these) in stable branch.

 Attached patch turns LOG_ERROR into LOG_DEBUG. For S2_1 only.


 - ML

diff -Nurd -X.diff_ignore freeciv/ai/aiunit.c freeciv/ai/aiunit.c
--- freeciv/ai/aiunit.c	2007-07-04 14:04:26.0 +0300
+++ freeciv/ai/aiunit.c	2007-08-30 16:15:53.0 +0300
@@ -1240,7 +1240,13 @@
 
   if (!is_ground_unit(punit)  !is_sailing_unit(punit)) {
 /* Don't know what to do with them! */
-UNIT_LOG(LOG_ERROR, punit, bad unit type passed to fstk);
+/* This is not LOG_ERROR in stable branch, as calling
+ * fstk is in many cases right thing to do when custom
+ * rulesets are used - and callers correctly handle cases
+ * where fstk failed to find target.
+ * In trunk, handling of units different to those in default
+ * ruleset should be improved. */
+UNIT_LOG(LOG_DEBUG, punit, bad unit type passed to fstk);
 return 0;
   }
 
___
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev


[Freeciv-Dev] (PR#39636) [Patch] Fix failing vision assert

2007-08-30 Thread Marko Lindqvist

URL: http://bugs.freeciv.org/Ticket/Display.html?id=39636 

 Assert fails when updating unit causes it to have smaller vision range.

 Consistency between vision layers is being checked in wrong place -
when we are in the middle of the process updating them one by one.
Attached patch removes assert after update of single layer, and places
it after all the layers have been iterated (similar iteration is in
several places)

 Is there another bug in the fact that V_INVIS layer has been greater?
Shouldn't it be constant to all units (revealing only adjacent tiles)?


 - ML

diff -Nurd -X.diff_ignore freeciv/server/citytools.c freeciv/server/citytools.c
--- freeciv/server/citytools.c	2007-08-13 22:23:44.0 +0300
+++ freeciv/server/citytools.c	2007-08-30 17:30:49.0 +0300
@@ -769,7 +769,7 @@
   int old_trade_routes[NUM_TRADEROUTES];
   bv_imprs had_small_wonders;
   char old_city_name[MAX_LEN_NAME];
-  struct vision *old_vision;
+  struct vision *old_vision, *new_vision;
 
   assert(pgiver != ptaker);
 
@@ -800,12 +800,15 @@
 
   give_citymap_from_player_to_player(pcity, pgiver, ptaker);
   old_vision = pcity-server.vision;
-  pcity-server.vision = vision_new(ptaker, pcity-tile, FALSE);
+  new_vision = vision_new(ptaker, pcity-tile, FALSE);
+  pcity-server.vision = new_vision;
   vision_layer_iterate(v) {
-vision_change_sight(pcity-server.vision, v,
+vision_change_sight(new_vision, v,
 			vision_get_sight(old_vision, v));
   } vision_layer_iterate_end;
 
+  ASSERT_VISION(new_vision);
+
   sz_strlcpy(old_city_name, pcity-name);
   if (game.info.allowed_city_names == 1
city_list_find_name(ptaker-cities, pcity-name)) {
@@ -2165,4 +2168,6 @@
 
   vision_change_sight(pcity-server.vision, V_MAIN, radius_sq);
   vision_change_sight(pcity-server.vision, V_INVIS, 2);
+
+  ASSERT_VISION(pcity-server.vision);
 }
diff -Nurd -X.diff_ignore freeciv/server/maphand.c freeciv/server/maphand.c
--- freeciv/server/maphand.c	2007-07-04 14:04:17.0 +0300
+++ freeciv/server/maphand.c	2007-08-30 17:12:27.0 +0300
@@ -1700,15 +1700,7 @@
 }
 
 /* Vision structure - see documentation in maphand.h */
-struct vision {
-  /* These values cannot be changed after initialization. */
-  struct player *player;
-  struct tile *tile;
-  bool can_reveal_tiles;
 
-  /* The radius of the vision source. */
-  int radius_sq[V_COUNT];
-};
 
 /
   Create a new vision source.
@@ -1753,8 +1745,6 @@
 		   vision-radius_sq[vlayer], radius_sq,
 		   vision-can_reveal_tiles, vlayer);
   vision-radius_sq[vlayer] = radius_sq;
-
-  assert(vision-radius_sq[V_MAIN] = vision-radius_sq[V_INVIS]);
 }
 
 /
diff -Nurd -X.diff_ignore freeciv/server/maphand.h freeciv/server/maphand.h
--- freeciv/server/maphand.h	2007-06-28 20:19:22.0 +0300
+++ freeciv/server/maphand.h	2007-08-30 17:12:26.0 +0300
@@ -149,7 +149,17 @@
   vision sources are active.  The same process applies when transferring
   a unit or city between players, etc.
 /
-struct vision;
+
+struct vision {
+  /* These values cannot be changed after initialization. */
+  struct player *player;
+  struct tile *tile;
+  bool can_reveal_tiles;
+
+  /* The radius of the vision source. */
+  int radius_sq[V_COUNT];
+};
+
 struct vision *vision_new(struct player *pplayer, struct tile *ptile,
 			  bool can_reveal_tiles);
 int vision_get_sight(const struct vision *vision, enum vision_layer vlayer);
@@ -158,4 +168,9 @@
 void vision_clear_sight(struct vision *vision);
 void vision_free(struct vision *vision);
 
+#define ASSERT_VISION(v)  \
+ do { \
+   assert((v)-radius_sq[V_MAIN] = (v)-radius_sq[V_INVIS]); \
+ } while(FALSE);
+
 #endif  /* FC__MAPHAND_H */
diff -Nurd -X.diff_ignore freeciv/server/unittools.c freeciv/server/unittools.c
--- freeciv/server/unittools.c	2007-08-06 16:42:12.0 +0300
+++ freeciv/server/unittools.c	2007-08-30 17:05:46.0 +0300
@@ -2723,6 +2723,7 @@
   struct city *pcity;
   struct unit *ptransporter = NULL;
   struct vision *old_vision = punit-server.vision;
+  struct vision *new_vision;
 
   conn_list_do_buffer(pplayer-connections);
 
@@ -2743,13 +2744,16 @@
 /* Insert them again. */
 unit_list_iterate(cargo_units, pcargo) {
   struct vision *old_vision = pcargo-server.vision;
+  struct vision *new_vision = vision_new(pcargo-owner, pdesttile, TRUE);
 
-  pcargo-server.vision = vision_new(pcargo-owner, pdesttile, TRUE);
+  pcargo-server.vision = new_vision;
   vision_layer_iterate(v) {
-	vision_change_sight(pcargo-server.vision, v,
+	vision_change_sight(new_vision, v,
 			get_unit_vision_at(pcargo, pdesttile, v));
   } 

[Freeciv-Dev] (PR#39634) [Bug] Magic ruleset crash in maybe_make_contact() - unit_owner()

2007-08-30 Thread Pepeto _

URL: http://bugs.freeciv.org/Ticket/Display.html?id=39634 

I think you you ran the server with autoauttack on? I already observed
this crash on warserver 0.8.13d when I hosted them. I reported this
crash to Yaro, but his forum is no available since he left from Freeciv.

But I found the revision he fixed it:
http://svn.gna.org/viewcvs/freeciv-warclient?view=revrev=193

The problem was the units which makes the move get killed, but the
server continue to use this punit pointer.

___
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev


[Freeciv-Dev] (PR#39634) [Bug] Magic ruleset crash in maybe_make_contact() - unit_owner()

2007-08-30 Thread Pepeto _

URL: http://bugs.freeciv.org/Ticket/Display.html?id=39634 

 [pepeto - Jeu. Aoû. 30 15:56:42 2007]:
 
 I think you you ran the server with autoauttack on? I already observed
 this crash on warserver 0.8.13d when I hosted them. I reported this
 crash to Yaro, but his forum is no available since he left from Freeciv.
 
 But I found the revision he fixed it:
 http://svn.gna.org/viewcvs/freeciv-warclient?view=revrev=193
 
 The problem was the units which makes the move get killed, but the
 server continue to use this punit pointer.
 
I looked at the code it seems it's not what I described. But I think
it's something linked to this. BUT, I found a bad code line in this code
which must be changed:
  wakeup_neighbor_sentries(punit);
  if (!unit_survive_autoattack(punit)) {
return FALSE;
  }
  maybe_make_contact(pdesttile, unit_owner(punit));

  conn_list_do_unbuffer(pplayer-connections);

if the unit doesn't survive to the attack the connection list is not
free, so this connection wouldn't receive any packet until they
disconnect. There should be a
conn_list_do_unbuffer(pplayer-connections); before return FALSE (line
2888).

___
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev


[Freeciv-Dev] (PR#39634) [Bug] Magic ruleset crash in maybe_make_contact() - unit_owner()

2007-08-30 Thread Pepeto _

URL: http://bugs.freeciv.org/Ticket/Display.html?id=39634 

Why this 'open' state is always by default when we post response, so
annoying, sorry :(

___
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev


[Freeciv-Dev] (PR#39638) Non i18n'd string in client/helpdata.c

2007-08-30 Thread Joan Creus

URL: http://bugs.freeciv.org/Ticket/Display.html?id=39638 

In client/helpdata.c, line 1253 (revision 13433) (within
helptext_government()) the output variable is assigned All, without the _(

   const char *output = All;

As far as I've seen, in the default ruleset, this string only appears on the
help text for both Anarchy and Despotism, where it says that each worked
tile that gives more than %d %s will suffer a -1 penalty when not
celebrating.

It's most obvious in my language, because All means garlic, so the
message becomes something like if a worked tile gives more than 2 garlic
you will get a penalty. Kinda misleading.

I'm not sure if it's just a matter of sticking the _( in front, or there are
more implications in the logic of the program.

Cheers,

Joan

In client/helpdata.c, line 1253 (revision 13433) (within helptext_government()) the output variable is assigned All, without the _( const char *output = All;As far as Ive seen, in the default ruleset, this string only appears on the help text for both Anarchy and Despotism, where it says that each worked tile that gives more than %d %s will suffer a -1 penalty when not celebrating.
Its most obvious in my language, because All means garlic, so the message becomes something like if a worked tile gives more than 2 garlic you will get a penalty. Kinda misleading.
Im not sure if its just a matter of sticking the _( in front, or there are more implications in the logic of the program.Cheers,Joan
___
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev


[Freeciv-Dev] (PR#39637) Typo in server/cityturn.c

2007-08-30 Thread Joan Creus

URL: http://bugs.freeciv.org/Ticket/Display.html?id=39637 

This transaction appears to have no content
The variable name has sneaked into the string, I think. It says pimprove
sold! when it should be improvement sold. See diff.

Cheers,

Joan
The variable name has sneaked into the string, I think. It says pimprove sold! when it should be improvement sold. See diff.Cheers,Joan
Index: cityturn.c
===
--- cityturn.c	(revision 13420)
+++ cityturn.c	(working copy)
@@ -1373,7 +1373,7 @@
   if (pplayer-economic.gold - upkeep  0) {
 	notify_player(pplayer, pcity-tile, E_IMP_AUCTIONED,
 			 _(Can't afford to maintain %s in %s, 
-			   pimprove sold!),
+			   improvement sold!),
 			 improvement_name_translation(pimprove),
 			 pcity-name);
 	do_sell_building(pplayer, pcity, pimprove);
___
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev


[Freeciv-Dev] (PR#39627) [Bug] assert fail when taking player

2007-08-30 Thread Pepeto _

URL: http://bugs.freeciv.org/Ticket/Display.html?id=39627 

 [EMAIL PROTECTED] - Mar. Aoû. 28 22:55:36 2007]:
 
 On 29/08/07, Michael Kaufman [EMAIL PROTECTED] wrote:
 
  The last time I checked, not doing a client reset on player switch
caused
  bad things to happen, but I can't be more specific than that.
 
  Then S2_1 solution would probably be to make even more complete
 reset, setting also player-nation to NULL for all players.
  Actually, player-nation reset should be added to
 handle_ruleset_control() in any case for player-nation-player
 consistency.
 
 
  - ML
 
 
 
This would just make the problem in a other place... I think Michael
Kaufman is right, there should be a game_free() game_init() when the
player quits a server. Maybe a right place for it: set_client_state()
when the new state will be CLIENT_PRE_GAME_STATE. The same if the old
state is already CLIENT_PRE_GAME_STATE.

___
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev


Re: [Freeciv-Dev] (PR#39627) [Bug] assert fail when taking player

2007-08-30 Thread Marko Lindqvist

URL: http://bugs.freeciv.org/Ticket/Display.html?id=39627 

On 29/08/2007, Marko Lindqvist [EMAIL PROTECTED] wrote:
 On 29/08/07, Michael Kaufman [EMAIL PROTECTED] wrote:
 
  The last time I checked, not doing a client reset on player switch caused
  bad things to happen, but I can't be more specific than that.

  Then S2_1 solution would probably be to make even more complete
 reset, setting also player-nation to NULL for all players.
  Actually, player-nation reset should be added to
 handle_ruleset_control() in any case for player-nation-player
 consistency.

 This patch adds player-nation reset after nation-player has been
reseted in handle_ruleset_control(). This should fix several client
end player-nation-player inconsistency crashes, and it helps against
crash in this ticket too.


 - ML

diff -Nurd -X.diff_ignore freeciv/client/packhand.c freeciv/client/packhand.c
--- freeciv/client/packhand.c	2007-08-21 21:41:47.0 +0300
+++ freeciv/client/packhand.c	2007-08-30 22:39:28.0 +0300
@@ -2118,6 +2118,12 @@
   nations_alloc(packet-nation_count);
   city_styles_alloc(packet-styles_count);
 
+  /* After nation ruleset free/alloc, nation-player pointers are NULL.
+   * We have to initialize player-nation too, to keep state consistent. */ 
+  players_iterate(pplayer) {
+pplayer-nation = NO_NATION_SELECTED;
+  } players_iterate_end;
+
   if (packet-prefered_tileset[0] != '\0') {
 /* There is tileset suggestion */
 if (strcmp(packet-prefered_tileset, tileset_get_name(tileset))) {
___
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev


Re: [Freeciv-Dev] (PR#39627) [Bug] assert fail when taking player

2007-08-30 Thread Marko Lindqvist

URL: http://bugs.freeciv.org/Ticket/Display.html?id=39627 

On 30/08/2007, Pepeto _ [EMAIL PROTECTED] wrote:

  [EMAIL PROTECTED] - Mar. Aoû. 28 22:55:36 2007]:
 
  On 29/08/07, Michael Kaufman [EMAIL PROTECTED] wrote:
  
   The last time I checked, not doing a client reset on player switch
 caused
   bad things to happen, but I can't be more specific than that.
 
   Then S2_1 solution would probably be to make even more complete
  reset, setting also player-nation to NULL for all players.
   Actually, player-nation reset should be added to
  handle_ruleset_control() in any case for player-nation-player
  consistency.
 

  there should be a game_free() game_init()

 I don't think other pointers than player-nation are used between
ruleset_data_free() and receiving relevant packet again.

 Problem with game_free() + game_init() are is-info packets. Delta
code needs changes so that we can force sending those packets again.


 - ML



___
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev


[Freeciv-Dev] (PR#39639) [Patch] Fix attribute chunk delta problems

2007-08-30 Thread Marko Lindqvist

URL: http://bugs.freeciv.org/Ticket/Display.html?id=39639 

 Attribute chunk packet has constant size data block. If there is not
that much usable data, delta code has been working with somewhat
random data. This has caused extra traffic at least.
 Attached patch fills unused portion of data block with 0.


 - ML

diff -Nurd -X.diff_ignore freeciv/common/packets.c freeciv/common/packets.c
--- freeciv/common/packets.c	2007-08-11 12:17:15.0 +0300
+++ freeciv/common/packets.c	2007-08-30 23:09:42.0 +0300
@@ -646,6 +646,12 @@
 	   packet.chunk_length);
 bytes_left -= packet.chunk_length;
 
+if (packet.chunk_length  ATTRIBUTE_CHUNK_SIZE) {
+  /* Last chunk is not full. Make sure that delta does
+   * not use random data. */
+  memset(packet.data, 0, ATTRIBUTE_CHUNK_SIZE - packet.chunk_length);
+}
+
 send_packet_player_attribute_chunk(pconn, packet);
   }
 
___
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev


Re: [Freeciv-Dev] (PR#39634) [Bug] Magic ruleset crash in maybe_make_contact() - unit_owner()

2007-08-30 Thread Marko Lindqvist

URL: http://bugs.freeciv.org/Ticket/Display.html?id=39634 

On 30/08/2007, Pepeto _ [EMAIL PROTECTED] wrote:

 I looked at the code it seems it's not what I described. But I think
 it's something linked to this. BUT, I found a bad code line in this code
 which must be changed:
   wakeup_neighbor_sentries(punit);
   if (!unit_survive_autoattack(punit)) {
 return FALSE;
   }
   maybe_make_contact(pdesttile, unit_owner(punit));

   conn_list_do_unbuffer(pplayer-connections);

 if the unit doesn't survive to the attack the connection list is not
 free

 Fix for that one.


 - ML

diff -Nurd -X.diff_ignore freeciv/server/unittools.c freeciv/server/unittools.c
--- freeciv/server/unittools.c	2007-08-06 16:42:12.0 +0300
+++ freeciv/server/unittools.c	2007-08-31 00:59:37.0 +0300
@@ -2885,6 +2885,7 @@
 		 API_TYPE_TILE, pdesttile);
   wakeup_neighbor_sentries(punit);
   if (!unit_survive_autoattack(punit)) {
+conn_list_do_unbuffer(pplayer-connections);
 return FALSE;
   }
   maybe_make_contact(pdesttile, unit_owner(punit));
___
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev


Re: [Freeciv-Dev] (PR#39638) Non i18n'd string in client/helpdata.c

2007-08-30 Thread Daniel Markstedt

URL: http://bugs.freeciv.org/Ticket/Display.html?id=39638 

On 8/31/07, Joan Creus [EMAIL PROTECTED] wrote:

 URL: http://bugs.freeciv.org/Ticket/Display.html?id=39638
 

 In client/helpdata.c, line 1253 (revision 13433) (within
 helptext_government()) the output variable is assigned All, without the _(

const char *output = All;

 As far as I've seen, in the default ruleset, this string only appears on the
 help text for both Anarchy and Despotism, where it says that each worked
 tile that gives more than %d %s will suffer a -1 penalty when not
 celebrating.

 It's most obvious in my language, because All means garlic, so the
 message becomes something like if a worked tile gives more than 2 garlic
 you will get a penalty. Kinda misleading.

 I'm not sure if it's just a matter of sticking the _( in front, or there are
 more implications in the logic of the program.

 Cheers,

 Joan


The sentence produced by this string is awful even in its raw English form:

 * Each worked tile that gives more than 2 All will suffer a -1
penalty when not celebrating.

Wouldn't it make more sense to replace 'All' with something like 'of
any output'?

 ~Daniel



___
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev


Re: [Freeciv-Dev] (PR#39638) Non i18n'd string in client/helpdata.c

2007-08-30 Thread Marko Lindqvist

URL: http://bugs.freeciv.org/Ticket/Display.html?id=39638 

On 31/08/2007, Daniel Markstedt [EMAIL PROTECTED] wrote:


 The sentence produced by this string is awful even in its raw English form:

  * Each worked tile that gives more than 2 All will suffer a -1
 penalty when not celebrating.

 Wouldn't it make more sense to replace 'All' with something like 'of
 any output'?

 ...with some code changes and additional strings. It is currently
used in sentences:

Each worked tile that gives more than %d All will suffer a -1
penalty when not celebrating.
Each worked tile with at least 1 All will yield %d additional All
when celebrating.
Each worked tile with at least 1 All will yield %d additional All.
All production will suffer massive waste.
All production will suffer some waste.
All production will suffer a small amount of waste.
All waste will increase quickly with distance from capital.
All waste will increase with distance from capital.
All waste will increase slowly with distance from capital.

Following sentences also use 'output', but they should only appear if there
is some real output type (and not with All):
You pay %d times normal All upkeep for your units.
Each of your cities will avoid paying %d All towards unit upkeep.


 This help generation function is very broken considering alternative
rulesets (not only that it lacks information, but it also produces
misinformation in some cases)


 - ML



___
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev


Re: [Freeciv-Dev] (PR#39630) Typos in several nation rulesets

2007-08-30 Thread Daniel Markstedt

URL: http://bugs.freeciv.org/Ticket/Display.html?id=39630 

On 8/30/07, Joan Creus [EMAIL PROTECTED] wrote:

 URL: http://bugs.freeciv.org/Ticket/Display.html?id=39630
 

 This transaction appears to have no content

 Several typos I have found in the ottoman, colombian, westphalian, malian,
 byzantium, and romanian rulesets while translating. See file for the
 details.

 Cheers,

 Joan


Updated version with two more typo fixes posted in another ticket.

 ~Daniel



nationtypos.diff
Description: Binary data
___
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev


[Freeciv-Dev] (PR#39640) [rulesets] Norman nation

2007-08-30 Thread Daniel Markstedt

URL: http://bugs.freeciv.org/Ticket/Display.html?id=39640 

Norman nation, written by me, flag by Wikimedia Commons' User:Andersersej.

See also http://forum.freeciv.org/viewtopic.php?t=2273start=90

 ~Daniel

inline: normandy.svg

norman.ruleset
Description: Binary data
___
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev


[Freeciv-Dev] (PR#12165) Tileset tag memory leak

2007-08-30 Thread Marko Lindqvist

URL: http://bugs.freeciv.org/Ticket/Display.html?id=12165 

Subject: duplicate tileset tags cause a memory leak
Date: Mon, 07 Feb 2005 20:50:17 -0500
To: The default queue
From: Jason Dorje Short

This is in 2.0 and 2.0.99.

The code is in tilespec.c:

for (k = 0; k  num_tags; k++) {
(void) hash_replace(sprite_hash, mystrdup(tags[k]), ss);
}
}

this leads to lots of leaked memory from the mystrdup call, when civ3gfx
(which has many duplicate tags) is used.

---

 Patch


 - ML

diff -Nurd -X.diff_ignore freeciv/client/tilespec.c freeciv/client/tilespec.c
--- freeciv/client/tilespec.c	2007-08-25 15:16:07.0 +0300
+++ freeciv/client/tilespec.c	2007-08-31 02:25:44.0 +0300
@@ -429,6 +429,13 @@
 
 int focus_unit_state = 0;
 
+/
+  Hash callback for freeing key
+/
+static void sprite_hash_free_key(void *key)
+{
+  free(key);
+}
 
 /
   Return the name of the given tileset.
@@ -1593,7 +1600,8 @@
   }
 
   assert(t-sprite_hash == NULL);
-  t-sprite_hash = hash_new(hash_fval_string, hash_fcmp_string);
+  t-sprite_hash = hash_new_full(hash_fval_string, hash_fcmp_string,
+ sprite_hash_free_key, NULL);
   for (i = 0; i  num_spec_files; i++) {
 struct specfile *sf = fc_malloc(sizeof(*sf));
 char *dname;
@@ -4430,7 +4438,6 @@
   const char *key = hash_key_by_number(t-sprite_hash, 0);
 
   hash_delete_entry(t-sprite_hash, key);
-  free((void *) key);
 }
 
 hash_free(t-sprite_hash);
___
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev


Re: [Freeciv-Dev] (PR#17982) units that obsolete each other

2007-08-30 Thread Marko Lindqvist

URL: http://bugs.freeciv.org/Ticket/Display.html?id=17982 

On 23/06/2006, Billy Naylor [EMAIL PROTECTED] wrote:

 using revision 12030 of freeciv 2.1.0

 a broken rndCIv ruleset had Ballista  Catapult obsolete each other,
 which meant the client froze when the first city was created.

 this should have been caught by the server when it parsed rulesets.

 Attached patch catches upgrade loops when parsing rulesets.


 - ML

diff -Nurd -X.diff_ignore freeciv/server/ruleset.c freeciv/server/ruleset.c
--- freeciv/server/ruleset.c	2007-08-11 21:57:28.0 +0300
+++ freeciv/server/ruleset.c	2007-08-31 03:10:53.0 +0300
@@ -3273,6 +3273,8 @@
 **/
 static bool sanity_check_ruleset_data(void)
 {
+  int num_utypes;
+
   /* Check that all players can have their initial techs */
   nations_iterate(pnation) {
 int i;
@@ -3321,5 +3323,22 @@
 }
   } players_iterate_end;
 
+  /* Check against unit upgrade loops */
+  num_utypes = game.control.num_unit_types;
+  unit_type_iterate(putype) {
+int chain_length = 0;
+struct unit_type *upgraded = putype;
+
+while(upgraded != NULL) {
+  upgraded = upgraded-obsoleted_by;
+  chain_length++;
+  if (chain_length  num_utypes) {
+freelog(LOG_FATAL, There seems to be obsoleted_by loop in update 
+chain that starts from %s, utype_rule_name(putype));
+exit(EXIT_FAILURE);
+  }
+}
+  } unit_type_iterate_end;
+
   return TRUE;
 }
___
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev


[Freeciv-Dev] (PR#39641) [Patch] Use default metamessage from start

2007-08-30 Thread Marko Lindqvist

URL: http://bugs.freeciv.org/Ticket/Display.html?id=39641 

 Automatic metamessage is set (and sent) to metaserver only after
first player is actually connected server.
 Attached patch fixes this. For trunk, S2_1 and S2_0.


 - ML

diff -Nurd -X.diff_ignore freeciv/server/srv_main.c freeciv/server/srv_main.c
--- freeciv/server/srv_main.c	2007-08-30 12:36:18.0 +0300
+++ freeciv/server/srv_main.c	2007-08-31 03:25:26.0 +0300
@@ -1814,6 +1814,7 @@
 server_open_meta(); /* open socket for meta server */ 
   }
 
+  maybe_automatic_meta_message(default_meta_message_string());
   (void) send_server_info_to_metaserver(META_INFO);
 
   /* accept new players, wait for serverop to start..*/
___
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev


Re: [Freeciv-Dev] (PR#39545) [Patch] Up to date freeciv.spec.in

2007-08-30 Thread Egor Vyscrebentsov

URL: http://bugs.freeciv.org/Ticket/Display.html?id=39545 

On Wed, 29 Aug 2007 Marko Lindqvist wrote:

 On 29/08/2007, Egor Vyscrebentsov wrote:
 
  PS. It seems to me that we may move away from alternatives, assuming
  that civclient is always gui-gtk-2.0 client. However, I had some
  thoughts about making civclient a wrapper that will try to find
  and start clients in our order. (Well, it can be created for *nix
  systems, not for win*; but we don't have rpm for win* :), so that
  shouldn't be a problem if we'll have patch, applying in spec.)
  Maybe there is more general solution.
 
  For testing compilation of all the clients after source changes, I
 considered modifying --enable-client configure option to support
 something like '--enable-client=gtk,sdl,xaw' or '--enable-client=all'.

This is one of my dreams. 'all' is too much, but having more than one
client built by one 'make' is really what I like to have.

 Then civclient would just start some certain gui-binary (maybe just as
 symbolic link to that particular gui-binary)
  Seems to be too much work for small gain, though.

Well, now I know only two guys (besides specs) who use build out of srcdir.
So build out of srcdir might be considered as 'too much work for small gain'
too ;) Seriously, I think, making more than one client feature is more than
it seems to be now.

-- 
Thanks, evyscr



___
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev