tCurrency can now be configured with Currency.Symbol and Currency.Prefix; Windo… | |
git clone git://src.adamsgaard.dk/vaccinewars | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 61edd1ea12d1bcde6aec9bd8033db8bf527e542a | |
parent 1d4fe829cbae531259381286d3166e18d070d05d | |
Author: Ben Webb <[email protected]> | |
Date: Mon, 29 Oct 2001 22:47:12 +0000 | |
Currency can now be configured with Currency.Symbol and Currency.Prefix; | |
Windows client windows cannot now be made unreadably small; | |
bank/loan shark dialog now warns on entering negative prices; | |
default configuration is restored properly at the start of each game | |
Diffstat: | |
M ChangeLog | 4 ++++ | |
M TODO | 3 --- | |
M acconfig.h | 7 ------- | |
M configure | 238 ++++++++++++++++-------------… | |
M configure.in | 11 +++++++---- | |
M doc/Makefile.in | 12 +++++++----- | |
M doc/configfile.html | 19 ++++++++++++++++--- | |
M doc/protocol.html | 13 +++++++++---- | |
M po/Makefile.in.in | 182 +++++++++++------------------… | |
M src/Makefile.in | 12 +++++++----- | |
M src/curses_client.c | 2 ++ | |
M src/dopewars.c | 124 +++++++++++++++++++++++++++--… | |
M src/dopewars.h | 17 +++++++++++++++-- | |
M src/gtk_client.c | 90 ++++++++++++++++++-----------… | |
M src/gtkport.c | 40 +++++++++++++++++++++++++++++… | |
M src/gtkport.h | 5 +++++ | |
M src/message.c | 119 +++++++++++++++++------------… | |
M src/winmain.c | 4 +++- | |
18 files changed, 524 insertions(+), 378 deletions(-) | |
--- | |
diff --git a/ChangeLog b/ChangeLog | |
t@@ -1,4 +1,8 @@ | |
cvs | |
+ - Currency can now be configured with Currency.Symbol and Currency.Prefix | |
+ - Windows client windows cannot now be made unreadably small | |
+ - Bank/loan shark dialog now warns on entering negative prices | |
+ - Default configuration is restored properly at the start of each game | |
- Translations should now work with the Windows client | |
- Documentation on the client-server protocol added | |
- Windows graphical server can be minimized to the System Tray | |
diff --git a/TODO b/TODO | |
t@@ -1,9 +1,6 @@ | |
-- Implement allow_shrink window attribute for Windows client | |
- Make server run as an NT Service | |
-- Restore default configuration properly at the start of each game | |
- Configuration file editor thingy in the client? | |
- Make minimize-to-systray code a) more robust and b) configurable | |
-- Have bank/loan shark dialog warn on entering negative prices | |
- GSS_API SOCKS support? | |
- Fix problem with dialogs popping up while menus are open | |
- Increase difficulty of escaping from another player - impose penalty on | |
diff --git a/acconfig.h b/acconfig.h | |
t@@ -23,10 +23,3 @@ | |
/* Do we have GTK+ with a non-buggy gtk_entry_set_visibility() ? | |
(i.e. >= 1.2.10) */ | |
#undef HAVE_FIXED_GTK | |
- | |
-#undef ENABLE_NLS | |
-#undef HAVE_CATGETS | |
-#undef HAVE_GETTEXT | |
-#undef HAVE_LC_MESSAGES | |
-#undef HAVE_STPCPY | |
- | |
diff --git a/configure b/configure | |
t@@ -1571,10 +1571,10 @@ EOF | |
- CFLAGS="$CFLAGS -mwindows -fnative-struct -mno-cygwin" | |
+ CFLAGS="$CFLAGS -mwindows -fnative-struct" | |
+ CPPFLAGS="$CPPFLAGS -mno-cygwin" | |
LIBS="$LIBS -lwsock32 -lcomctl32 -lmpr" | |
- | |
- LDFLAGS="$LDFLAGS -lglib-1.3" | |
+ LDFLAGS="$LDFLAGS -mno-cygwin -lglib-1.3" | |
WNDRES="dopewars.res" | |
t@@ -2801,7 +2801,7 @@ EOF | |
fi | |
-for ac_hdr in unistd.h | |
+for ac_hdr in stdlib.h unistd.h sys/stat.h sys/types.h | |
do | |
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` | |
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 | |
t@@ -2933,11 +2933,24 @@ else | |
#include <fcntl.h> | |
#include <sys/mman.h> | |
+#if HAVE_SYS_TYPES_H | |
+# include <sys/types.h> | |
+#endif | |
+ | |
+#if HAVE_STDLIB_H | |
+# include <stdlib.h> | |
+#endif | |
+ | |
+#if HAVE_SYS_STAT_H | |
+# include <sys/stat.h> | |
+#endif | |
+ | |
+#if HAVE_UNISTD_H | |
+# include <unistd.h> | |
+#endif | |
+ | |
/* This mess was copied from the GNU getpagesize.h. */ | |
#ifndef HAVE_GETPAGESIZE | |
-# ifdef HAVE_UNISTD_H | |
-# include <unistd.h> | |
-# endif | |
/* Assume that all systems that can run configure have sys/param.h. */ | |
# ifndef HAVE_SYS_PARAM_H | |
t@@ -3045,7 +3058,7 @@ main() | |
} | |
EOF | |
-if { (eval echo configure:3049: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:3062: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
then | |
ac_cv_func_mmap_fixed_mapped=yes | |
else | |
t@@ -3069,12 +3082,12 @@ fi | |
echo $ac_n "checking whether we are using the GNU C Library 2.1 or newer""… | |
-echo "configure:3073: checking whether we are using the GNU C Library 2.1 or n… | |
+echo "configure:3086: checking whether we are using the GNU C Library 2.1 or n… | |
if eval "test \"`echo '$''{'ac_cv_gnu_library_2_1'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
cat > conftest.$ac_ext <<EOF | |
-#line 3078 "configure" | |
+#line 3091 "configure" | |
#include "confdefs.h" | |
#include <features.h> | |
t@@ -3110,17 +3123,17 @@ stdlib.h string.h unistd.h sys/param.h | |
do | |
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` | |
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 | |
-echo "configure:3114: checking for $ac_hdr" >&5 | |
+echo "configure:3127: checking for $ac_hdr" >&5 | |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
cat > conftest.$ac_ext <<EOF | |
-#line 3119 "configure" | |
+#line 3132 "configure" | |
#include "confdefs.h" | |
#include <$ac_hdr> | |
EOF | |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" | |
-{ (eval echo configure:3124: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } | |
+{ (eval echo configure:3137: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } | |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` | |
if test -z "$ac_err"; then | |
rm -rf conftest* | |
t@@ -3151,12 +3164,12 @@ getgid getuid mempcpy munmap putenv setenv setlocale s… | |
strdup strtoul tsearch __argz_count __argz_stringify __argz_next | |
do | |
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 | |
-echo "configure:3155: checking for $ac_func" >&5 | |
+echo "configure:3168: checking for $ac_func" >&5 | |
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
cat > conftest.$ac_ext <<EOF | |
-#line 3160 "configure" | |
+#line 3173 "configure" | |
#include "confdefs.h" | |
/* System header to define __stub macros and hopefully few prototypes, | |
which can conflict with char $ac_func(); below. */ | |
t@@ -3179,7 +3192,7 @@ $ac_func(); | |
; return 0; } | |
EOF | |
-if { (eval echo configure:3183: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:3196: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
rm -rf conftest* | |
eval "ac_cv_func_$ac_func=yes" | |
else | |
t@@ -3219,7 +3232,7 @@ fi | |
echo $ac_n "checking for iconv""... $ac_c" 1>&6 | |
-echo "configure:3223: checking for iconv" >&5 | |
+echo "configure:3236: checking for iconv" >&5 | |
if eval "test \"`echo '$''{'am_cv_func_iconv'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
t@@ -3227,7 +3240,7 @@ else | |
am_cv_func_iconv="no, consider installing GNU libiconv" | |
am_cv_lib_iconv=no | |
cat > conftest.$ac_ext <<EOF | |
-#line 3231 "configure" | |
+#line 3244 "configure" | |
#include "confdefs.h" | |
#include <stdlib.h> | |
#include <iconv.h> | |
t@@ -3237,7 +3250,7 @@ iconv_t cd = iconv_open("",""); | |
iconv_close(cd); | |
; return 0; } | |
EOF | |
-if { (eval echo configure:3241: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:3254: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
rm -rf conftest* | |
am_cv_func_iconv=yes | |
else | |
t@@ -3249,7 +3262,7 @@ rm -f conftest* | |
am_save_LIBS="$LIBS" | |
LIBS="$LIBS -liconv" | |
cat > conftest.$ac_ext <<EOF | |
-#line 3253 "configure" | |
+#line 3266 "configure" | |
#include "confdefs.h" | |
#include <stdlib.h> | |
#include <iconv.h> | |
t@@ -3259,7 +3272,7 @@ iconv_t cd = iconv_open("",""); | |
iconv_close(cd); | |
; return 0; } | |
EOF | |
-if { (eval echo configure:3263: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:3276: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
rm -rf conftest* | |
am_cv_lib_iconv=yes | |
am_cv_func_iconv=yes | |
t@@ -3280,13 +3293,13 @@ echo "$ac_t""$am_cv_func_iconv" 1>&6 | |
EOF | |
echo $ac_n "checking for iconv declaration""... $ac_c" 1>&6 | |
-echo "configure:3284: checking for iconv declaration" >&5 | |
+echo "configure:3297: checking for iconv declaration" >&5 | |
if eval "test \"`echo '$''{'am_cv_proto_iconv'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
cat > conftest.$ac_ext <<EOF | |
-#line 3290 "configure" | |
+#line 3303 "configure" | |
#include "confdefs.h" | |
#include <stdlib.h> | |
t@@ -3305,7 +3318,7 @@ int main() { | |
; return 0; } | |
EOF | |
-if { (eval echo configure:3309: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5… | |
+if { (eval echo configure:3322: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5… | |
rm -rf conftest* | |
am_cv_proto_iconv_arg1="" | |
else | |
t@@ -3334,19 +3347,19 @@ EOF | |
echo $ac_n "checking for nl_langinfo and CODESET""... $ac_c" 1>&6 | |
-echo "configure:3338: checking for nl_langinfo and CODESET" >&5 | |
+echo "configure:3351: checking for nl_langinfo and CODESET" >&5 | |
if eval "test \"`echo '$''{'am_cv_langinfo_codeset'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
cat > conftest.$ac_ext <<EOF | |
-#line 3343 "configure" | |
+#line 3356 "configure" | |
#include "confdefs.h" | |
#include <langinfo.h> | |
int main() { | |
char* cs = nl_langinfo(CODESET); | |
; return 0; } | |
EOF | |
-if { (eval echo configure:3350: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:3363: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
rm -rf conftest* | |
am_cv_langinfo_codeset=yes | |
else | |
t@@ -3369,19 +3382,19 @@ EOF | |
if test $ac_cv_header_locale_h = yes; then | |
echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 | |
-echo "configure:3373: checking for LC_MESSAGES" >&5 | |
+echo "configure:3386: checking for LC_MESSAGES" >&5 | |
if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
cat > conftest.$ac_ext <<EOF | |
-#line 3378 "configure" | |
+#line 3391 "configure" | |
#include "confdefs.h" | |
#include <locale.h> | |
int main() { | |
return LC_MESSAGES | |
; return 0; } | |
EOF | |
-if { (eval echo configure:3385: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:3398: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
rm -rf conftest* | |
am_cv_val_LC_MESSAGES=yes | |
else | |
t@@ -3402,7 +3415,7 @@ EOF | |
fi | |
fi | |
echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6 | |
-echo "configure:3406: checking whether NLS is requested" >&5 | |
+echo "configure:3419: checking whether NLS is requested" >&5 | |
# Check whether --enable-nls or --disable-nls was given. | |
if test "${enable_nls+set}" = set; then | |
enableval="$enable_nls" | |
t@@ -3424,7 +3437,7 @@ fi | |
EOF | |
echo $ac_n "checking whether included gettext is requested""... $ac_c" 1… | |
-echo "configure:3428: checking whether included gettext is requested" >&5 | |
+echo "configure:3441: checking whether included gettext is requested" >&5 | |
# Check whether --with-included-gettext or --without-included-gettext wa… | |
if test "${with_included_gettext+set}" = set; then | |
withval="$with_included_gettext" | |
t@@ -3444,17 +3457,17 @@ fi | |
ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'` | |
echo $ac_n "checking for libintl.h""... $ac_c" 1>&6 | |
-echo "configure:3448: checking for libintl.h" >&5 | |
+echo "configure:3461: checking for libintl.h" >&5 | |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
cat > conftest.$ac_ext <<EOF | |
-#line 3453 "configure" | |
+#line 3466 "configure" | |
#include "confdefs.h" | |
#include <libintl.h> | |
EOF | |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" | |
-{ (eval echo configure:3458: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } | |
+{ (eval echo configure:3471: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } | |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` | |
if test -z "$ac_err"; then | |
rm -rf conftest* | |
t@@ -3471,12 +3484,12 @@ fi | |
if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then | |
echo "$ac_t""yes" 1>&6 | |
echo $ac_n "checking for GNU gettext in libc""... $ac_c" 1>&6 | |
-echo "configure:3475: checking for GNU gettext in libc" >&5 | |
+echo "configure:3488: checking for GNU gettext in libc" >&5 | |
if eval "test \"`echo '$''{'gt_cv_func_gnugettext1_libc'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
cat > conftest.$ac_ext <<EOF | |
-#line 3480 "configure" | |
+#line 3493 "configure" | |
#include "confdefs.h" | |
#include <libintl.h> | |
extern int _nl_msg_cat_cntr; | |
t@@ -3485,7 +3498,7 @@ bindtextdomain ("", ""); | |
return (int) gettext ("") + _nl_msg_cat_cntr | |
; return 0; } | |
EOF | |
-if { (eval echo configure:3489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:3502: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
rm -rf conftest* | |
gt_cv_func_gnugettext1_libc=yes | |
else | |
t@@ -3501,14 +3514,14 @@ echo "$ac_t""$gt_cv_func_gnugettext1_libc" 1>&6 | |
if test "$gt_cv_func_gnugettext1_libc" != "yes"; then | |
echo $ac_n "checking for GNU gettext in libintl""... $ac_c" 1>&6 | |
-echo "configure:3505: checking for GNU gettext in libintl" >&5 | |
+echo "configure:3518: checking for GNU gettext in libintl" >&5 | |
if eval "test \"`echo '$''{'gt_cv_func_gnugettext1_libintl'+set}'`\" = set"; t… | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
gt_save_LIBS="$LIBS" | |
LIBS="$LIBS -lintl $LIBICONV" | |
cat > conftest.$ac_ext <<EOF | |
-#line 3512 "configure" | |
+#line 3525 "configure" | |
#include "confdefs.h" | |
#include <libintl.h> | |
extern int _nl_msg_cat_cntr; | |
t@@ -3517,7 +3530,7 @@ bindtextdomain ("", ""); | |
return (int) gettext ("") + _nl_msg_cat_cntr | |
; return 0; } | |
EOF | |
-if { (eval echo configure:3521: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:3534: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
rm -rf conftest* | |
gt_cv_func_gnugettext1_libintl=yes | |
else | |
t@@ -3550,12 +3563,12 @@ EOF | |
for ac_func in dcgettext | |
do | |
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 | |
-echo "configure:3554: checking for $ac_func" >&5 | |
+echo "configure:3567: checking for $ac_func" >&5 | |
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
cat > conftest.$ac_ext <<EOF | |
-#line 3559 "configure" | |
+#line 3572 "configure" | |
#include "confdefs.h" | |
/* System header to define __stub macros and hopefully few prototypes, | |
which can conflict with char $ac_func(); below. */ | |
t@@ -3578,7 +3591,7 @@ $ac_func(); | |
; return 0; } | |
EOF | |
-if { (eval echo configure:3582: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:3595: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
rm -rf conftest* | |
eval "ac_cv_func_$ac_func=yes" | |
else | |
t@@ -3604,10 +3617,10 @@ done | |
LIBS="$gt_save_LIBS" | |
- # Extract the first word of "msgfmt", so it can be a… | |
+ # Extract the first word of "msgfmt", so it can be a program name… | |
set dummy msgfmt; ac_word=$2 | |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 | |
-echo "configure:3611: checking for $ac_word" >&5 | |
+echo "configure:3624: checking for $ac_word" >&5 | |
if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
t@@ -3620,28 +3633,28 @@ else | |
for ac_dir in $PATH; do | |
test -z "$ac_dir" && ac_dir=. | |
if test -f $ac_dir/$ac_word; then | |
- if $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1; then | |
+ if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then | |
ac_cv_path_MSGFMT="$ac_dir/$ac_word" | |
break | |
fi | |
fi | |
done | |
IFS="$ac_save_ifs" | |
- test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" | |
+ test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no" | |
;; | |
esac | |
fi | |
MSGFMT="$ac_cv_path_MSGFMT" | |
-if test "$MSGFMT" != ":"; then | |
+if test -n "$MSGFMT"; then | |
echo "$ac_t""$MSGFMT" 1>&6 | |
else | |
echo "$ac_t""no" 1>&6 | |
fi | |
- | |
- # Extract the first word of "gmsgfmt", so it can be a program nam… | |
+ if test "$MSGFMT" != "no"; then | |
+ # Extract the first word of "gmsgfmt", so it can be a program n… | |
set dummy gmsgfmt; ac_word=$2 | |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 | |
-echo "configure:3645: checking for $ac_word" >&5 | |
+echo "configure:3658: checking for $ac_word" >&5 | |
if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
t@@ -3674,11 +3687,12 @@ else | |
echo "$ac_t""no" 1>&6 | |
fi | |
+ fi | |
- # Extract the first word of "xgettext", so it can be… | |
+ # Extract the first word of "xgettext", so it can be a program na… | |
set dummy xgettext; ac_word=$2 | |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 | |
-echo "configure:3682: checking for $ac_word" >&5 | |
+echo "configure:3696: checking for $ac_word" >&5 | |
if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
t@@ -3691,7 +3705,7 @@ else | |
for ac_dir in $PATH; do | |
test -z "$ac_dir" && ac_dir=. | |
if test -f $ac_dir/$ac_word; then | |
- if $ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1; then | |
+ if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then | |
ac_cv_path_XGETTEXT="$ac_dir/$ac_word" | |
break | |
fi | |
t@@ -3703,7 +3717,7 @@ else | |
esac | |
fi | |
XGETTEXT="$ac_cv_path_XGETTEXT" | |
-if test "$XGETTEXT" != ":"; then | |
+if test -n "$XGETTEXT"; then | |
echo "$ac_t""$XGETTEXT" 1>&6 | |
else | |
echo "$ac_t""no" 1>&6 | |
t@@ -3728,7 +3742,7 @@ fi | |
# Extract the first word of "msgfmt", so it can be a program name with… | |
set dummy msgfmt; ac_word=$2 | |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 | |
-echo "configure:3732: checking for $ac_word" >&5 | |
+echo "configure:3746: checking for $ac_word" >&5 | |
if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
t@@ -3741,19 +3755,19 @@ else | |
for ac_dir in $PATH; do | |
test -z "$ac_dir" && ac_dir=. | |
if test -f $ac_dir/$ac_word; then | |
- if $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1; then | |
+ if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then | |
ac_cv_path_MSGFMT="$ac_dir/$ac_word" | |
break | |
fi | |
fi | |
done | |
IFS="$ac_save_ifs" | |
- test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" | |
+ test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="msgfmt" | |
;; | |
esac | |
fi | |
MSGFMT="$ac_cv_path_MSGFMT" | |
-if test "$MSGFMT" != ":"; then | |
+if test -n "$MSGFMT"; then | |
echo "$ac_t""$MSGFMT" 1>&6 | |
else | |
echo "$ac_t""no" 1>&6 | |
t@@ -3762,7 +3776,7 @@ fi | |
# Extract the first word of "gmsgfmt", so it can be a program name wit… | |
set dummy gmsgfmt; ac_word=$2 | |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 | |
-echo "configure:3766: checking for $ac_word" >&5 | |
+echo "configure:3780: checking for $ac_word" >&5 | |
if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
t@@ -3798,7 +3812,7 @@ fi | |
# Extract the first word of "xgettext", so it can be a program name wi… | |
set dummy xgettext; ac_word=$2 | |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 | |
-echo "configure:3802: checking for $ac_word" >&5 | |
+echo "configure:3816: checking for $ac_word" >&5 | |
if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
t@@ -3811,7 +3825,7 @@ else | |
for ac_dir in $PATH; do | |
test -z "$ac_dir" && ac_dir=. | |
if test -f $ac_dir/$ac_word; then | |
- if $ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1; then | |
+ if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then | |
ac_cv_path_XGETTEXT="$ac_dir/$ac_word" | |
break | |
fi | |
t@@ -3823,7 +3837,7 @@ else | |
esac | |
fi | |
XGETTEXT="$ac_cv_path_XGETTEXT" | |
-if test "$XGETTEXT" != ":"; then | |
+if test -n "$XGETTEXT"; then | |
echo "$ac_t""$XGETTEXT" 1>&6 | |
else | |
echo "$ac_t""no" 1>&6 | |
t@@ -3837,17 +3851,8 @@ fi | |
LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` | |
fi | |
- if test "$GMSGFMT" != ":"; then | |
- if $GMSGFMT --statistics /dev/null >/dev/null 2>&1; th… | |
- : ; | |
- else | |
- echo "$ac_t""found msgfmt program is not GNU msgfmt; ignore it" 1>&6 | |
- GMSGFMT=":" | |
- fi | |
- fi | |
- | |
- if test "$XGETTEXT" != ":"; then | |
- if $XGETTEXT --omit-header /dev/null >/dev/null 2>&1; … | |
+ if test "$XGETTEXT" != ":"; then | |
+ if $XGETTEXT --omit-header /dev/null 2> /dev/null; then | |
: ; | |
else | |
echo "$ac_t""found xgettext program is not GNU xgettext; ignore it" … | |
t@@ -3869,7 +3874,7 @@ do | |
# Extract the first word of "$ac_prog", so it can be a program name with args. | |
set dummy $ac_prog; ac_word=$2 | |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 | |
-echo "configure:3873: checking for $ac_word" >&5 | |
+echo "configure:3878: checking for $ac_word" >&5 | |
if eval "test \"`echo '$''{'ac_cv_prog_INTLBISON'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
t@@ -3902,8 +3907,8 @@ done | |
ac_verc_fail=yes | |
else | |
echo $ac_n "checking version of bison""... $ac_c" 1>&6 | |
-echo "configure:3906: checking version of bison" >&5 | |
- ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \(… | |
+echo "configure:3911: checking version of bison" >&5 | |
+ ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison .* \… | |
case $ac_prog_version in | |
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; | |
1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) | |
t@@ -3949,7 +3954,7 @@ echo "configure:3906: checking version of bison" >&5 | |
LINGUAS= | |
else | |
echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6 | |
-echo "configure:3953: checking for catalogs to be installed" >&5 | |
+echo "configure:3958: checking for catalogs to be installed" >&5 | |
NEW_LINGUAS= | |
for presentlang in $ALL_LINGUAS; do | |
useit=no | |
t@@ -4038,7 +4043,7 @@ if test "$GUI_CLIENT" = "yes" -o "$GUI_SERVER" = "yes" ;… | |
fi | |
echo $ac_n "checking size of long long""... $ac_c" 1>&6 | |
-echo "configure:4042: checking size of long long" >&5 | |
+echo "configure:4047: checking size of long long" >&5 | |
if eval "test \"`echo '$''{'ac_cv_sizeof_long_long'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
t@@ -4046,18 +4051,18 @@ else | |
{ echo "configure: error: can not run test program while cross compiling" … | |
else | |
cat > conftest.$ac_ext <<EOF | |
-#line 4050 "configure" | |
+#line 4055 "configure" | |
#include "confdefs.h" | |
#include <stdio.h> | |
-main() | |
+int main() | |
{ | |
FILE *f=fopen("conftestval", "w"); | |
- if (!f) exit(1); | |
+ if (!f) return(1); | |
fprintf(f, "%d\n", sizeof(long long)); | |
- exit(0); | |
+ return(0); | |
} | |
EOF | |
-if { (eval echo configure:4061: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:4066: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
then | |
ac_cv_sizeof_long_long=`cat conftestval` | |
else | |
t@@ -4078,7 +4083,7 @@ EOF | |
echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6 | |
-echo "configure:4082: checking for 8-bit clean memcmp" >&5 | |
+echo "configure:4087: checking for 8-bit clean memcmp" >&5 | |
if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
t@@ -4086,7 +4091,7 @@ else | |
ac_cv_func_memcmp_clean=no | |
else | |
cat > conftest.$ac_ext <<EOF | |
-#line 4090 "configure" | |
+#line 4095 "configure" | |
#include "confdefs.h" | |
main() | |
t@@ -4096,7 +4101,7 @@ main() | |
} | |
EOF | |
-if { (eval echo configure:4100: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:4105: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
then | |
ac_cv_func_memcmp_clean=yes | |
else | |
t@@ -4114,7 +4119,7 @@ echo "$ac_t""$ac_cv_func_memcmp_clean" 1>&6 | |
test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.${ac_objext}" | |
echo $ac_n "checking whether setvbuf arguments are reversed""... $ac_c" 1>&6 | |
-echo "configure:4118: checking whether setvbuf arguments are reversed" >&5 | |
+echo "configure:4123: checking whether setvbuf arguments are reversed" >&5 | |
if eval "test \"`echo '$''{'ac_cv_func_setvbuf_reversed'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
t@@ -4122,7 +4127,7 @@ else | |
{ echo "configure: error: can not run test program while cross compiling" … | |
else | |
cat > conftest.$ac_ext <<EOF | |
-#line 4126 "configure" | |
+#line 4131 "configure" | |
#include "confdefs.h" | |
#include <stdio.h> | |
/* If setvbuf has the reversed format, exit 0. */ | |
t@@ -4136,7 +4141,7 @@ main () { | |
exit(0); /* Non-reversed systems segv here. */ | |
} | |
EOF | |
-if { (eval echo configure:4140: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:4145: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
then | |
ac_cv_func_setvbuf_reversed=yes | |
else | |
t@@ -4160,12 +4165,12 @@ EOF | |
fi | |
echo $ac_n "checking for strftime""... $ac_c" 1>&6 | |
-echo "configure:4164: checking for strftime" >&5 | |
+echo "configure:4169: checking for strftime" >&5 | |
if eval "test \"`echo '$''{'ac_cv_func_strftime'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
cat > conftest.$ac_ext <<EOF | |
-#line 4169 "configure" | |
+#line 4174 "configure" | |
#include "confdefs.h" | |
/* System header to define __stub macros and hopefully few prototypes, | |
which can conflict with char strftime(); below. */ | |
t@@ -4188,7 +4193,7 @@ strftime(); | |
; return 0; } | |
EOF | |
-if { (eval echo configure:4192: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:4197: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
rm -rf conftest* | |
eval "ac_cv_func_strftime=yes" | |
else | |
t@@ -4210,7 +4215,7 @@ else | |
echo "$ac_t""no" 1>&6 | |
# strftime is in -lintl on SCO UNIX. | |
echo $ac_n "checking for strftime in -lintl""... $ac_c" 1>&6 | |
-echo "configure:4214: checking for strftime in -lintl" >&5 | |
+echo "configure:4219: checking for strftime in -lintl" >&5 | |
ac_lib_var=`echo intl'_'strftime | sed 'y%./+-%__p_%'` | |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
t@@ -4218,7 +4223,7 @@ else | |
ac_save_LIBS="$LIBS" | |
LIBS="-lintl $LIBS" | |
cat > conftest.$ac_ext <<EOF | |
-#line 4222 "configure" | |
+#line 4227 "configure" | |
#include "confdefs.h" | |
/* Override any gcc2 internal prototype to avoid an error. */ | |
/* We use char because int might match the return type of a gcc2 | |
t@@ -4229,7 +4234,7 @@ int main() { | |
strftime() | |
; return 0; } | |
EOF | |
-if { (eval echo configure:4233: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:4238: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
rm -rf conftest* | |
eval "ac_cv_lib_$ac_lib_var=yes" | |
else | |
t@@ -4258,12 +4263,12 @@ fi | |
for ac_func in strdup strstr getopt_long | |
do | |
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 | |
-echo "configure:4262: checking for $ac_func" >&5 | |
+echo "configure:4267: checking for $ac_func" >&5 | |
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
cat > conftest.$ac_ext <<EOF | |
-#line 4267 "configure" | |
+#line 4272 "configure" | |
#include "confdefs.h" | |
/* System header to define __stub macros and hopefully few prototypes, | |
which can conflict with char $ac_func(); below. */ | |
t@@ -4286,7 +4291,7 @@ $ac_func(); | |
; return 0; } | |
EOF | |
-if { (eval echo configure:4290: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:4295: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
rm -rf conftest* | |
eval "ac_cv_func_$ac_func=yes" | |
else | |
t@@ -4317,14 +4322,14 @@ if test "$CYGWIN" = "yes" ; then | |
else | |
echo $ac_n "checking for library containing socket""... $ac_c" 1>&6 | |
-echo "configure:4321: checking for library containing socket" >&5 | |
+echo "configure:4326: checking for library containing socket" >&5 | |
if eval "test \"`echo '$''{'ac_cv_search_socket'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
ac_func_search_save_LIBS="$LIBS" | |
ac_cv_search_socket="no" | |
cat > conftest.$ac_ext <<EOF | |
-#line 4328 "configure" | |
+#line 4333 "configure" | |
#include "confdefs.h" | |
/* Override any gcc2 internal prototype to avoid an error. */ | |
/* We use char because int might match the return type of a gcc2 | |
t@@ -4335,7 +4340,7 @@ int main() { | |
socket() | |
; return 0; } | |
EOF | |
-if { (eval echo configure:4339: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:4344: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
rm -rf conftest* | |
ac_cv_search_socket="none required" | |
else | |
t@@ -4346,7 +4351,7 @@ rm -f conftest* | |
test "$ac_cv_search_socket" = "no" && for i in socket; do | |
LIBS="-l$i $ac_func_search_save_LIBS" | |
cat > conftest.$ac_ext <<EOF | |
-#line 4350 "configure" | |
+#line 4355 "configure" | |
#include "confdefs.h" | |
/* Override any gcc2 internal prototype to avoid an error. */ | |
/* We use char because int might match the return type of a gcc2 | |
t@@ -4357,7 +4362,7 @@ int main() { | |
socket() | |
; return 0; } | |
EOF | |
-if { (eval echo configure:4361: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:4366: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
rm -rf conftest* | |
ac_cv_search_socket="-l$i" | |
break | |
t@@ -4379,14 +4384,14 @@ else : | |
fi | |
echo $ac_n "checking for library containing gethostbyname""... $ac_c" 1>&6 | |
-echo "configure:4383: checking for library containing gethostbyname" >&5 | |
+echo "configure:4388: checking for library containing gethostbyname" >&5 | |
if eval "test \"`echo '$''{'ac_cv_search_gethostbyname'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
ac_func_search_save_LIBS="$LIBS" | |
ac_cv_search_gethostbyname="no" | |
cat > conftest.$ac_ext <<EOF | |
-#line 4390 "configure" | |
+#line 4395 "configure" | |
#include "confdefs.h" | |
/* Override any gcc2 internal prototype to avoid an error. */ | |
/* We use char because int might match the return type of a gcc2 | |
t@@ -4397,7 +4402,7 @@ int main() { | |
gethostbyname() | |
; return 0; } | |
EOF | |
-if { (eval echo configure:4401: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:4406: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
rm -rf conftest* | |
ac_cv_search_gethostbyname="none required" | |
else | |
t@@ -4408,7 +4413,7 @@ rm -f conftest* | |
test "$ac_cv_search_gethostbyname" = "no" && for i in nsl socket; do | |
LIBS="-l$i $ac_func_search_save_LIBS" | |
cat > conftest.$ac_ext <<EOF | |
-#line 4412 "configure" | |
+#line 4417 "configure" | |
#include "confdefs.h" | |
/* Override any gcc2 internal prototype to avoid an error. */ | |
/* We use char because int might match the return type of a gcc2 | |
t@@ -4419,7 +4424,7 @@ int main() { | |
gethostbyname() | |
; return 0; } | |
EOF | |
-if { (eval echo configure:4423: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:4428: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
rm -rf conftest* | |
ac_cv_search_gethostbyname="-l$i" | |
break | |
t@@ -4442,12 +4447,12 @@ fi | |
for ac_func in socket gethostbyname select | |
do | |
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 | |
-echo "configure:4446: checking for $ac_func" >&5 | |
+echo "configure:4451: checking for $ac_func" >&5 | |
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then | |
echo $ac_n "(cached) $ac_c" 1>&6 | |
else | |
cat > conftest.$ac_ext <<EOF | |
-#line 4451 "configure" | |
+#line 4456 "configure" | |
#include "confdefs.h" | |
/* System header to define __stub macros and hopefully few prototypes, | |
which can conflict with char $ac_func(); below. */ | |
t@@ -4470,7 +4475,7 @@ $ac_func(); | |
; return 0; } | |
EOF | |
-if { (eval echo configure:4474: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
+if { (eval echo configure:4479: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } &&… | |
rm -rf conftest* | |
eval "ac_cv_func_$ac_func=yes" | |
else | |
t@@ -4954,9 +4959,6 @@ for ac_file in $CONFIG_FILES; do | |
ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` | |
ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" | |
ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` | |
- # In autoconf-2.13 it is called $ac_given_srcdir. | |
- # In autoconf-2.50 it is called $srcdir. | |
- test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" | |
case "$ac_given_srcdir" in | |
.) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; | |
/*) top_srcdir="$ac_given_srcdir" ;; | |
t@@ -4964,9 +4966,9 @@ for ac_file in $CONFIG_FILES; do | |
esac | |
if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then | |
rm -f "$ac_dir/POTFILES" | |
- test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || ec… | |
+ echo creating "$ac_dir/POTFILES" | |
sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/&… | |
- test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || ec… | |
+ echo creating "$ac_dir/Makefile" | |
sed -e "/POTFILES =/r $ac_dir/POTFILES" "$ac_dir/Makefile.in" > "$… | |
fi | |
;; | |
diff --git a/configure.in b/configure.in | |
t@@ -48,11 +48,14 @@ if test "$CYGWIN" = "yes" ; then | |
dnl even when glib-1.3.dll is - so we assume GLib is in place; the worst | |
dnl that can happen is that "make" fails later on. | |
- CFLAGS="$CFLAGS -mwindows -fnative-struct -mno-cygwin" | |
+ dnl Libraries and flags | |
+ dnl N.B. -mno-cygwin is included in CPPFLAGS so the right headers | |
+ dnl are detected (in /usr/include/mingw/ rather than /usr/include) | |
+ dnl later on - e.g. sys/param.h isn't in mingw. | |
+ CFLAGS="$CFLAGS -mwindows -fnative-struct" | |
+ CPPFLAGS="$CPPFLAGS -mno-cygwin" | |
LIBS="$LIBS -lwsock32 -lcomctl32 -lmpr" | |
- | |
- dnl Glib stuff | |
- LDFLAGS="$LDFLAGS -lglib-1.3" | |
+ LDFLAGS="$LDFLAGS -mno-cygwin -lglib-1.3" | |
dnl We need to compile and then link in the Windows resources | |
WNDRES="dopewars.res" | |
diff --git a/doc/Makefile.in b/doc/Makefile.in | |
t@@ -57,11 +57,15 @@ POST_INSTALL = : | |
NORMAL_UNINSTALL = : | |
PRE_UNINSTALL = : | |
POST_UNINSTALL = : | |
+host_alias = @host_alias@ | |
+host_triplet = @host@ | |
+BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ | |
CATALOGS = @CATALOGS@ | |
CATOBJEXT = @CATOBJEXT@ | |
CC = @CC@ | |
DATADIRNAME = @DATADIRNAME@ | |
GENCAT = @GENCAT@ | |
+GLIBC21 = @GLIBC21@ | |
GLIB_CFLAGS = @GLIB_CFLAGS@ | |
GLIB_CONFIG = @GLIB_CONFIG@ | |
GLIB_LIBS = @GLIB_LIBS@ | |
t@@ -72,13 +76,12 @@ GTKPORT_O = @GTKPORT_O@ | |
GTK_CFLAGS = @GTK_CFLAGS@ | |
GTK_CONFIG = @GTK_CONFIG@ | |
GTK_LIBS = @GTK_LIBS@ | |
-GT_NO = @GT_NO@ | |
-GT_YES = @GT_YES@ | |
-INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@ | |
INSTOBJEXT = @INSTOBJEXT@ | |
-INTLDEPS = @INTLDEPS@ | |
+INTLBISON = @INTLBISON@ | |
INTLLIBS = @INTLLIBS@ | |
INTLOBJS = @INTLOBJS@ | |
+INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ | |
+LIBICONV = @LIBICONV@ | |
MAKEINFO = @MAKEINFO@ | |
MKINSTALLDIRS = @MKINSTALLDIRS@ | |
MSGFMT = @MSGFMT@ | |
t@@ -90,7 +93,6 @@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ | |
USE_NLS = @USE_NLS@ | |
VERSION = @VERSION@ | |
WNDRES = @WNDRES@ | |
-l = @l@ | |
localedir = @localedir@ | |
DOCPATH = ${DESTDIR}${datadir}/doc/${PACKAGE}-${VERSION}/ | |
diff --git a/doc/configfile.html b/doc/configfile.html | |
t@@ -427,12 +427,25 @@ against a player.</dd> | |
<h2><a name="advanced">Advanced configuration</a></h2> | |
<dl> | |
-<dt><b>LogLevel=<i>2</i></b></dt> | |
+<dt><b>Currrency.Symbol=<i>$</i></b></dt> | |
+<dd>Uses the dollar (<i>$</i>) symbol to display all prices of drugs, guns, | |
+etc.</dd> | |
+ | |
+<dt><b>Currrency.Prefix=<i>TRUE</i></b></dt> | |
+<dd>Prints Currency.Symbol in front of any price - e.g. "$1,000"; if | |
+FALSE, prints it after the price - e.g. "1,000 $".</dd> | |
+ | |
+<dt><b>Log.File=<i>dopewars.log</i></b></dt> | |
+<dd>By default, server log messages are printed to the screen (standard | |
+output). By setting this variable, they will instead be written to the file | |
+<i>dopewars.log</i>.</dd> | |
+ | |
+<dt><b>Log.Level=<i>2</i></b></dt> | |
<dd>Most server log messages are given a priority level, from 0 (most urgent) | |
to 5 (most verbose). This setting instructs the server only to log messages | |
from level 0 up to <i>2</i>, inclusive.</dd> | |
-<dt><b>LogTimestamp=<i>"[%H:%M:%S] "</i></b></dt> | |
+<dt><b>Log.Timestamp=<i>"[%H:%M:%S] "</i></b></dt> | |
<dd>Prefixes all log messages with a timestamp of the form (e.g.) | |
<i>[16:34:49]</i>. This is a string which is passed as input to the | |
<tt>strftime(3)</tt> function. If this is set to a blank string, then no | |
t@@ -584,6 +597,6 @@ any drugs, and clients will display this information if av… | |
<ul> | |
<li><a href="index.html">Main index</a></li> | |
</ul> | |
-<p>Last update: <b>16-10-2001</b></p> | |
+<p>Last update: <b>28-10-2001</b></p> | |
</body> | |
</html> | |
diff --git a/doc/protocol.html b/doc/protocol.html | |
t@@ -73,7 +73,9 @@ terminated by the message terminator, \n - it may also be te… | |
character. This allows the client to ignore extra fields, if later versions | |
of the protocol should add them. (N.B. This does not apply to free-form text | |
fields, as in the C_QUESTION, C_PRINTMESSAGE, C_MSG, C_MSGTO, and C_FIGHTPRINT | |
-messages, which _do_ extend to the end of the message.)</p> | |
+messages, which _do_ extend to the end of the message.) Note also that older | |
+servers may not send all the fields, so if fewer fields than expected are | |
+received, the client should substitute default values.</p> | |
<p>Message codes are shown below, together with the symbolic constants used in | |
the dopewars code for clarity (e.g. the 'A' code is represented by | |
t@@ -287,7 +289,7 @@ e.g. "1^AbFred"<br /> | |
<dt><b>C_INIT</b> ('<tt>k</tt>')</dt> | |
<dd>Tells the client about various global game settings<br /> | |
-<tt>data</tt> = <tt>"version"^<numloc>^<numgun>^<numdrug>^"b… | |
+<tt>data</tt> = <tt>"version"^<numloc>^<numgun>^<numdrug>^"b… | |
<tt>version</tt> = dopewars version of the server - e.g. "1.5.2"<br /> | |
<tt>numloc</tt> = the number of locations in the game<br /> | |
<tt>numgun</tt> = the number of guns in the game<br /> | |
t@@ -297,7 +299,10 @@ e.g. "1^AbFred"<br /> | |
<tt>bank</tt>, <tt>gunshop</tt>, <tt>pub</tt> = various names used in the | |
game<br /> | |
<tt>ID</tt> = the ID that the client should use to refer to itself<br /> | |
-e.g. "^Ak1.5.2^8^4^12^bitch^bitches^gun^guns^drug^drugs^12-^-1984^0^the Loan S… | |
+<tt>prefix</tt> = '1' if the currency symbol (e.g. $) should be printed before | |
+prices in the game, '0' otherwise<br /> | |
+<tt>currency</tt> = the currency symbol to use<br /> | |
+e.g. "^Ak1.5.2^8^4^12^bitch^bitches^gun^guns^drug^drugs^12-^-1984^0^the Loan S… | |
<b>Answer required:</b> no<p /></dd> | |
<dt><b>C_DATA</b> ('<tt>l</tt>')</dt> | |
t@@ -553,7 +558,7 @@ e.g.<br /> | |
</ul> | |
</li> | |
</ul> | |
-<p>Last update: <b>25-10-2001</b></p> | |
+<p>Last update: <b>29-10-2001</b></p> | |
</body> | |
</html> | |
diff --git a/po/Makefile.in.in b/po/Makefile.in.in | |
t@@ -1,5 +1,5 @@ | |
# Makefile for program source directory in GNU NLS utilities package. | |
-# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <[email protected]> | |
+# Copyright (C) 1995-1997, 2000, 2001 by Ulrich Drepper <[email protected]… | |
# | |
# This file file be copied and used freely without restrictions. It can | |
# be used in projects which are not available under the GNU Public License | |
t@@ -9,6 +9,10 @@ | |
PACKAGE = @PACKAGE@ | |
VERSION = @VERSION@ | |
+# These two variables depend on the location of this directory. | |
+subdir = po | |
+top_builddir = .. | |
+ | |
SHELL = /bin/sh | |
@SET_MAKE@ | |
t@@ -18,22 +22,20 @@ VPATH = @srcdir@ | |
prefix = @prefix@ | |
exec_prefix = @exec_prefix@ | |
-datadir = $(prefix)/@DATADIRNAME@ | |
+datadir = @datadir@ | |
localedir = $(datadir)/locale | |
-gnulocaledir = $(prefix)/share/locale | |
-gettextsrcdir = $(prefix)/share/gettext/po | |
-subdir = po | |
+gettextsrcdir = $(datadir)/gettext/po | |
INSTALL = @INSTALL@ | |
INSTALL_DATA = @INSTALL_DATA@ | |
-MKINSTALLDIRS = $(top_srcdir)/@MKINSTALLDIRS@ | |
+MKINSTALLDIRS = @MKINSTALLDIRS@ | |
+mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS… | |
CC = @CC@ | |
-GENCAT = @GENCAT@ | |
-GMSGFMT = PATH=../src:$$PATH @GMSGFMT@ | |
+GMSGFMT = @GMSGFMT@ | |
MSGFMT = @MSGFMT@ | |
-XGETTEXT = PATH=../src:$$PATH @XGETTEXT@ | |
-MSGMERGE = PATH=../src:$$PATH msgmerge | |
+XGETTEXT = @XGETTEXT@ | |
+MSGMERGE = msgmerge | |
DEFS = @DEFS@ | |
CFLAGS = @CFLAGS@ | |
t@@ -43,20 +45,17 @@ INCLUDES = -I.. -I$(top_srcdir)/intl | |
COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) | |
-SOURCES = cat-id-tbl.c | |
POFILES = @POFILES@ | |
GMOFILES = @GMOFILES@ | |
DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(PACKAGE).pot \ | |
-stamp-cat-id $(POFILES) $(GMOFILES) $(SOURCES) | |
+$(POFILES) $(GMOFILES) | |
POTFILES = \ | |
CATALOGS = @CATALOGS@ | |
-CATOBJEXT = @CATOBJEXT@ | |
-INSTOBJEXT = @INSTOBJEXT@ | |
.SUFFIXES: | |
-.SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat | |
+.SUFFIXES: .c .o .po .pox .gmo .mo | |
.c.o: | |
$(COMPILE) $< | |
t@@ -70,19 +69,19 @@ INSTOBJEXT = @INSTOBJEXT@ | |
.po.gmo: | |
file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \ | |
- && rm -f $$file && $(GMSGFMT) -o $$file $< | |
- | |
-.po.cat: | |
- sed -f ../intl/po2msg.sed < $< > $*.msg \ | |
- && rm -f $@ && $(GENCAT) $@ $*.msg | |
+ && rm -f $$file && $(GMSGFMT) --statistics -o $$file $< | |
all: all-@USE_NLS@ | |
-all-yes: cat-id-tbl.c $(CATALOGS) | |
+all-yes: $(CATALOGS) | |
all-no: | |
-$(srcdir)/$(PACKAGE).pot: $(POTFILES) | |
+# Note: Target 'all' must not depend on target '$(srcdir)/$(PACKAGE).pot', | |
+# otherwise packages like GCC can not be built if only parts of the source | |
+# have been downloaded. | |
+ | |
+$(srcdir)/$(PACKAGE).pot: $(POTFILES) $(srcdir)/POTFILES.in | |
$(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \ | |
--add-comments --keyword=_ --keyword=N_ \ | |
--files-from=$(srcdir)/POTFILES.in \ | |
t@@ -90,78 +89,35 @@ $(srcdir)/$(PACKAGE).pot: $(POTFILES) | |
|| ( rm -f $(srcdir)/$(PACKAGE).pot \ | |
&& mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot ) | |
-$(srcdir)/cat-id-tbl.c: stamp-cat-id; @: | |
-$(srcdir)/stamp-cat-id: $(PACKAGE).pot | |
- rm -f cat-id-tbl.tmp | |
- sed -f ../intl/po2tbl.sed $(srcdir)/$(PACKAGE).pot \ | |
- | sed -e "s/@PACKAGE NAME@/$(PACKAGE)/" > cat-id-tbl.tmp | |
- if cmp -s cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; then \ | |
- rm cat-id-tbl.tmp; \ | |
- else \ | |
- echo cat-id-tbl.c changed; \ | |
- rm -f $(srcdir)/cat-id-tbl.c; \ | |
- mv cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; \ | |
- fi | |
- cd $(srcdir) && rm -f stamp-cat-id && echo timestamp > stamp-cat-id | |
- | |
install: install-exec install-data | |
install-exec: | |
install-data: install-data-@USE_NLS@ | |
-install-data-no: all | |
-install-data-yes: all | |
- if test -r "$(MKINSTALLDIRS)"; then \ | |
- $(MKINSTALLDIRS) $(datadir); \ | |
+ if test "$(PACKAGE)" = "gettext"; then \ | |
+ $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ | |
+ $(INSTALL_DATA) $(srcdir)/Makefile.in.in \ | |
+ $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \ | |
else \ | |
- $(SHELL) $(top_srcdir)/mkinstalldirs $(datadir); \ | |
+ : ; \ | |
fi | |
+install-data-no: all | |
+install-data-yes: all | |
+ $(mkinstalldirs) $(DESTDIR)$(datadir) | |
@catalogs='$(CATALOGS)'; \ | |
for cat in $$catalogs; do \ | |
cat=`basename $$cat`; \ | |
- case "$$cat" in \ | |
- *.gmo) destdir=$(gnulocaledir);; \ | |
- *) destdir=$(localedir);; \ | |
- esac; \ | |
- lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ | |
- dir=$$destdir/$$lang/LC_MESSAGES; \ | |
- if test -r "$(MKINSTALLDIRS)"; then \ | |
- $(MKINSTALLDIRS) $$dir; \ | |
- else \ | |
- $(SHELL) $(top_srcdir)/mkinstalldirs $$dir; \ | |
- fi; \ | |
+ lang=`echo $$cat | sed 's/\.gmo$$//'`; \ | |
+ dir=$(localedir)/$$lang/LC_MESSAGES; \ | |
+ $(mkinstalldirs) $(DESTDIR)$$dir; \ | |
if test -r $$cat; then \ | |
- $(INSTALL_DATA) $$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \ | |
- echo "installing $$cat as $$dir/$(PACKAGE)$(INSTOBJEXT)"; \ | |
+ $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \ | |
+ echo "installing $$cat as $(DESTDIR)$$dir/$(PACKAGE).mo"; \ | |
else \ | |
- $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \ | |
+ $(INSTALL_DATA) $(srcdir)/$$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \ | |
echo "installing $(srcdir)/$$cat as" \ | |
- "$$dir/$(PACKAGE)$(INSTOBJEXT)"; \ | |
- fi; \ | |
- if test -r $$cat.m; then \ | |
- $(INSTALL_DATA) $$cat.m $$dir/$(PACKAGE)$(INSTOBJEXT).m; \ | |
- echo "installing $$cat.m as $$dir/$(PACKAGE)$(INSTOBJEXT).m"; \ | |
- else \ | |
- if test -r $(srcdir)/$$cat.m ; then \ | |
- $(INSTALL_DATA) $(srcdir)/$$cat.m \ | |
- $$dir/$(PACKAGE)$(INSTOBJEXT).m; \ | |
- echo "installing $(srcdir)/$$cat as" \ | |
- "$$dir/$(PACKAGE)$(INSTOBJEXT).m"; \ | |
- else \ | |
- true; \ | |
- fi; \ | |
+ "$(DESTDIR)$$dir/$(PACKAGE).mo"; \ | |
fi; \ | |
done | |
- if test "$(PACKAGE)" = "gettext"; then \ | |
- if test -r "$(MKINSTALLDIRS)"; then \ | |
- $(MKINSTALLDIRS) $(gettextsrcdir); \ | |
- else \ | |
- $(SHELL) $(top_srcdir)/mkinstalldirs $(gettextsrcdir); \ | |
- fi; \ | |
- $(INSTALL_DATA) $(srcdir)/Makefile.in.in \ | |
- $(gettextsrcdir)/Makefile.in.in; \ | |
- else \ | |
- : ; \ | |
- fi | |
# Define this as empty until I found a useful application. | |
installcheck: | |
t@@ -170,76 +126,68 @@ uninstall: | |
catalogs='$(CATALOGS)'; \ | |
for cat in $$catalogs; do \ | |
cat=`basename $$cat`; \ | |
- lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ | |
- rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \ | |
- rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \ | |
- rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \ | |
- rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \ | |
+ lang=`echo $$cat | sed 's/\.gmo$$//'`; \ | |
+ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE).mo; \ | |
done | |
- rm -f $(gettextsrcdir)/po-Makefile.in.in | |
+ if test "$(PACKAGE)" = "gettext"; then \ | |
+ rm -f $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \ | |
+ else \ | |
+ : ; \ | |
+ fi | |
check: all | |
-cat-id-tbl.o: ../intl/libgettext.h | |
- | |
dvi info tags TAGS ID: | |
mostlyclean: | |
- rm -f core core.* *.pox $(PACKAGE).po *.old.po cat-id-tbl.tmp | |
+ rm -f core core.* *.pox $(PACKAGE).po *.new.po | |
rm -fr *.o | |
clean: mostlyclean | |
distclean: clean | |
- rm -f Makefile Makefile.in POTFILES *.mo *.msg *.cat *.cat.m | |
+ rm -f Makefile Makefile.in POTFILES *.mo | |
maintainer-clean: distclean | |
@echo "This command is intended for maintainers to use;" | |
@echo "it deletes files that may require special tools to rebuild." | |
rm -f $(GMOFILES) | |
-distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) | |
-dist distdir: update-po $(DISTFILES) | |
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) | |
+dist distdir: | |
+ $(MAKE) update-po | |
+ @$(MAKE) dist2 | |
+# This is a separate target because 'update-po' must be executed before. | |
+dist2: $(DISTFILES) | |
dists="$(DISTFILES)"; \ | |
for file in $$dists; do \ | |
- ln $(srcdir)/$$file $(distdir) 2> /dev/null \ | |
- || cp -p $(srcdir)/$$file $(distdir); \ | |
+ if test -f $$file; then dir=.; else dir=$(srcdir); fi; \ | |
+ cp -p $$dir/$$file $(distdir); \ | |
done | |
update-po: Makefile | |
$(MAKE) $(PACKAGE).pot | |
- PATH=`pwd`/../src:$$PATH; \ | |
+ if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; fi; \ | |
cd $(srcdir); \ | |
- catalogs='$(CATALOGS)'; \ | |
+ catalogs='$(GMOFILES)'; \ | |
for cat in $$catalogs; do \ | |
cat=`basename $$cat`; \ | |
- lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ | |
- mv $$lang.po $$lang.old.po; \ | |
+ lang=`echo $$cat | sed 's/\.gmo$$//'`; \ | |
echo "$$lang:"; \ | |
- if $(MSGMERGE) $$lang.old.po $(PACKAGE).pot -o $$lang.po; then \ | |
- rm -f $$lang.old.po; \ | |
+ if $(MSGMERGE) $$lang.po $(PACKAGE).pot -o $$lang.new.po; then \ | |
+ mv -f $$lang.new.po $$lang.po; \ | |
else \ | |
echo "msgmerge for $$cat failed!"; \ | |
- rm -f $$lang.po; \ | |
- mv $$lang.old.po $$lang.po; \ | |
+ rm -f $$lang.new.po; \ | |
fi; \ | |
done | |
+ $(MAKE) update-gmo | |
-POTFILES: POTFILES.in | |
- ( if test 'x$(srcdir)' != 'x.'; then \ | |
- posrcprefix='$(top_srcdir)/'; \ | |
- else \ | |
- posrcprefix="../"; \ | |
- fi; \ | |
- rm -f $@-t $@ \ | |
- && (sed -e '/^#/d' -e '/^[ ]*$$/d' \ | |
- -e "s@.*@ $$posrcprefix& \\\\@" < $(srcdir)/[email protected] \ | |
- | sed -e '$$s/\\$$//') > $@-t \ | |
- && chmod a-w $@-t \ | |
- && mv $@-t $@ ) | |
- | |
-Makefile: Makefile.in.in ../config.status POTFILES | |
- cd .. \ | |
+update-gmo: Makefile $(GMOFILES) | |
+ @: | |
+ | |
+Makefile: Makefile.in.in $(top_builddir)/config.status POTFILES.in | |
+ cd $(top_builddir) \ | |
&& CONFIG_FILES=$(subdir)/[email protected] CONFIG_HEADERS= \ | |
$(SHELL) ./config.status | |
diff --git a/src/Makefile.in b/src/Makefile.in | |
t@@ -57,11 +57,15 @@ POST_INSTALL = : | |
NORMAL_UNINSTALL = : | |
PRE_UNINSTALL = : | |
POST_UNINSTALL = : | |
+host_alias = @host_alias@ | |
+host_triplet = @host@ | |
+BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ | |
CATALOGS = @CATALOGS@ | |
CATOBJEXT = @CATOBJEXT@ | |
CC = @CC@ | |
DATADIRNAME = @DATADIRNAME@ | |
GENCAT = @GENCAT@ | |
+GLIBC21 = @GLIBC21@ | |
GLIB_CFLAGS = @GLIB_CFLAGS@ | |
GLIB_CONFIG = @GLIB_CONFIG@ | |
GLIB_LIBS = @GLIB_LIBS@ | |
t@@ -72,13 +76,12 @@ GTKPORT_O = @GTKPORT_O@ | |
GTK_CFLAGS = @GTK_CFLAGS@ | |
GTK_CONFIG = @GTK_CONFIG@ | |
GTK_LIBS = @GTK_LIBS@ | |
-GT_NO = @GT_NO@ | |
-GT_YES = @GT_YES@ | |
-INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@ | |
INSTOBJEXT = @INSTOBJEXT@ | |
-INTLDEPS = @INTLDEPS@ | |
+INTLBISON = @INTLBISON@ | |
INTLLIBS = @INTLLIBS@ | |
INTLOBJS = @INTLOBJS@ | |
+INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ | |
+LIBICONV = @LIBICONV@ | |
MAKEINFO = @MAKEINFO@ | |
MKINSTALLDIRS = @MKINSTALLDIRS@ | |
MSGFMT = @MSGFMT@ | |
t@@ -90,7 +93,6 @@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ | |
USE_NLS = @USE_NLS@ | |
VERSION = @VERSION@ | |
WNDRES = @WNDRES@ | |
-l = @l@ | |
localedir = @localedir@ | |
bin_PROGRAMS = dopewars | |
diff --git a/src/curses_client.c b/src/curses_client.c | |
t@@ -1400,6 +1400,7 @@ void print_status(Player *Play,gboolean DispDrug) { | |
text=g_string_new(NULL); | |
attrset(TitleAttr); | |
+ clear_line(0); | |
g_string_sprintf(text,"%s%02d%s",Names.Month,Play->Turn,Names.Year); | |
mvaddstr(0,3,text->str); | |
t@@ -2048,6 +2049,7 @@ void CursesLoop(void) { | |
Curses_DoGame(Play); | |
ShutdownNetwork(Play); | |
CleanUpServer(); | |
+ RestoreConfig(); | |
attrset(TextAttr); | |
mvaddstr(23,20,_("Play again? ")); | |
c=GetKey(_("YN"),"YN",TRUE,TRUE,FALSE); | |
diff --git a/src/dopewars.c b/src/dopewars.c | |
t@@ -65,9 +65,10 @@ gboolean Network,Client,Server,NotifyMetaServer,AIPlayer; | |
dopewars in single-player or antique mode: | |
Network=Server=Client=FALSE | |
*/ | |
+FILE *logfp; | |
unsigned Port=7902; | |
gboolean Sanitized,ConfigVerbose,DrugValue; | |
-char *HiScoreFile=NULL,*ServerName=NULL,*Pager=NULL,*ConvertFile=NULL; | |
+gchar *HiScoreFile=NULL,*ServerName=NULL,*Pager=NULL,*ConvertFile=NULL; | |
gboolean WantHelp,WantVersion,WantAntique,WantColour,WantNetwork,WantConvert; | |
ClientType WantedClient; | |
int NumLocation=0,NumGun=0,NumCop=0,NumDrug=0,NumSubway=0, | |
t@@ -150,6 +151,8 @@ struct NAMES DefaultNames = { | |
N_("Dan\'s House of Guns"),N_("the pub") | |
}; | |
+struct CURRENCY Currency; | |
+ | |
struct PRICES Prices = { | |
20000,10000 | |
}; | |
t@@ -175,8 +178,7 @@ int NumTurns=31; | |
int PlayerArmour=100,BitchArmour=50; | |
-int LogLevel=2; | |
-gchar *LogTimestamp=NULL; | |
+struct LOG Log; | |
struct GLOBALS Globals[] = { | |
/* The following strings are the helptexts for all the options that can be | |
t@@ -263,10 +265,19 @@ struct GLOBALS Globals[] = { | |
{ &NumTurns,NULL,NULL,NULL,NULL,"NumTurns", | |
N_("No. of game turns (if 0, game never ends)"), | |
NULL,NULL,0,"",NULL,NULL }, | |
- { &LogLevel,NULL,NULL,NULL,NULL,"LogLevel", | |
+ { NULL,NULL,NULL,&Currency.Symbol,NULL,"Currency.Symbol", | |
+ N_("The currency symbol (e.g. $)"), | |
+ NULL,NULL,0,"",NULL,NULL }, | |
+ { NULL,&Currency.Prefix,NULL,NULL,NULL,"Currency.Prefix", | |
+ N_("If TRUE, the currency symbol precedes prices"), | |
+ NULL,NULL,0,"",NULL,NULL }, | |
+ { NULL,NULL,NULL,&Log.File,NULL,"Log.File", | |
+ N_("File to write log messages to"), | |
+ NULL,NULL,0,"",NULL,NULL }, | |
+ { &Log.Level,NULL,NULL,NULL,NULL,"Log.Level", | |
N_("Controls the number of log messages produced"), | |
NULL,NULL,0,"",NULL,NULL }, | |
- { NULL,NULL,NULL,&LogTimestamp,NULL,"LogTimestamp", | |
+ { NULL,NULL,NULL,&Log.Timestamp,NULL,"Log.Timestamp", | |
N_("strftime() format string for log timestamps"), | |
NULL,NULL,0,"",NULL,NULL }, | |
{ NULL,&Sanitized,NULL,NULL,NULL,"Sanitized", | |
t@@ -863,7 +874,9 @@ gchar *FormatPrice(price_t price) { | |
g_string_prepend(PriceStr,thou); | |
First=FALSE; | |
} | |
- g_string_prepend_c(PriceStr,'$'); | |
+ if (Currency.Prefix) g_string_prepend(PriceStr,Currency.Symbol); | |
+ else g_string_append(PriceStr,Currency.Symbol); | |
+ | |
NewBuffer=PriceStr->str; | |
/* Free the string structure only, not the char data */ | |
g_string_free(PriceStr,FALSE); | |
t@@ -1336,6 +1349,63 @@ void CopyDrugs(struct DRUGS *dest,struct DRUGS *src) { | |
dest->ExpensiveMultiply=src->ExpensiveMultiply; | |
} | |
+static struct PRICES BackupPrices; | |
+static struct NAMES BackupNames; | |
+static struct DRUG *BackupDrug=NULL; | |
+static struct GUN *BackupGun=NULL; | |
+static struct LOCATION *BackupLocation=NULL; | |
+static struct CURRENCY BackupCurrency = { NULL,TRUE }; | |
+static gint NumBackupDrug=0,NumBackupGun=0,NumBackupLocation=0; | |
+ | |
+void BackupConfig(void) { | |
+ gint i; | |
+ BackupPrices.Spy = Prices.Spy; | |
+ BackupPrices.Tipoff = Prices.Tipoff; | |
+ AssignName(&BackupCurrency.Symbol,Currency.Symbol); | |
+ BackupCurrency.Prefix = Currency.Prefix; | |
+ CopyNames(&BackupNames,&Names); | |
+ | |
+/* Free existing backups of guns, drugs, and locations */ | |
+ for (i=0;i<NumBackupGun;i++) g_free(BackupGun[i].Name); | |
+ g_free(BackupGun); | |
+ for (i=0;i<NumBackupDrug;i++) { | |
+ g_free(BackupDrug[i].Name); | |
+ g_free(BackupDrug[i].CheapStr); | |
+ } | |
+ g_free(BackupDrug); | |
+ for (i=0;i<NumBackupLocation;i++) g_free(BackupLocation[i].Name); | |
+ g_free(BackupLocation); | |
+ | |
+ NumBackupGun = NumGun; | |
+ BackupGun = g_new0(struct GUN,NumGun); | |
+ for (i=0;i<NumGun;i++) CopyGun(&BackupGun[i],&Gun[i]); | |
+ | |
+ NumBackupDrug = NumDrug; | |
+ BackupDrug = g_new0(struct DRUG,NumDrug); | |
+ for (i=0;i<NumDrug;i++) CopyDrug(&BackupDrug[i],&Drug[i]); | |
+ | |
+ NumBackupLocation = NumLocation; | |
+ BackupLocation = g_new0(struct LOCATION,NumLocation); | |
+ for (i=0;i<NumLocation;i++) CopyLocation(&BackupLocation[i],&Location[i]); | |
+} | |
+ | |
+void RestoreConfig(void) { | |
+ gint i; | |
+ | |
+ Prices.Spy = BackupPrices.Spy; | |
+ Prices.Tipoff = BackupPrices.Tipoff; | |
+ CopyNames(&Names,&BackupNames); | |
+ AssignName(&Currency.Symbol,BackupCurrency.Symbol); | |
+ Currency.Prefix = BackupCurrency.Prefix; | |
+ | |
+ ResizeGuns(NumBackupGun); | |
+ for (i=0;i<NumGun;i++) CopyGun(&Gun[i],&BackupGun[i]); | |
+ ResizeDrugs(NumBackupDrug); | |
+ for (i=0;i<NumDrug;i++) CopyDrug(&Drug[i],&BackupDrug[i]); | |
+ ResizeLocations(NumBackupLocation); | |
+ for (i=0;i<NumLocation;i++) CopyLocation(&Location[i],&BackupLocation[i]); | |
+} | |
+ | |
void ScannerErrorHandler(GScanner *scanner,gchar *msg,gint error) { | |
g_print("%s\n",msg); | |
} | |
t@@ -1730,13 +1800,18 @@ void SetupParameters() { | |
WantedClient=CLIENT_AUTO; | |
Server=AIPlayer=Client=Network=FALSE; | |
+ Log.Level=2; | |
+ Log.Timestamp=g_strdup("[%H:%M:%S] "); | |
+ Log.File=NULL; | |
+ | |
+ Currency.Symbol = g_strdup("$"); | |
+ Currency.Prefix = TRUE; | |
+ | |
/* Set hard-coded default values */ | |
g_free(HiScoreFile); g_free(ServerName); g_free(Pager); | |
- g_free(LogTimestamp); | |
HiScoreFile=g_strdup_printf("%s/dopewars.sco",DATADIR); | |
ServerName=g_strdup("localhost"); | |
Pager=g_strdup("more"); | |
- LogTimestamp=g_strdup("[%H:%M:%S] "); | |
CopyNames(&Names,&DefaultNames); | |
CopyDrugs(&Drugs,&DefaultDrugs); | |
t@@ -1790,6 +1865,10 @@ void SetupParameters() { | |
systems only) */ | |
ReadConfigFile("dopewars-config.txt"); | |
#endif | |
+ | |
+/* Save this configuration, so we can restore those elements that get | |
+ overwritten when we connect to a dopewars server */ | |
+ BackupConfig(); | |
} | |
void HandleHelpTexts() { | |
t@@ -1820,7 +1899,8 @@ Drug dealing game based on \"Drug Wars\" by John E. Dell… | |
-g, --config-file=FILE specify the pathname of a dopewars configuration fil… | |
This file is read immediately when the -g option\n\ | |
is encountered\n\ | |
- -r, --pidfile=FILE maintain pid file \"file\" while running the server\… | |
+ -r, --pidfile=FILE maintain pid file \"FILE\" while running the server\… | |
+ -l, --logfile=FILE write log information to \"FILE\"\n\ | |
-c, --ai-player create and run a computer player\n\ | |
-w, --windowed-client force the use of a graphical (windowed)\n\ | |
client (GTK+ or Win32)\n\ | |
t@@ -1853,6 +1933,7 @@ Drug dealing game based on \"Drug Wars\" by John E. Dell… | |
-g file specify the pathname of a dopewars configuration file. This file\n\ | |
is read immediately when the -g option is encountered\n\ | |
-r file maintain pid file \"file\" while running the server\n\ | |
+ -l file write log information to \"file\"\n\ | |
-c create and run a computer player\n\ | |
-w force the use of a graphical (windowed) client (GTK+ or Win32)\n\ | |
-t force the use of a text-mode client (curses)\n\ | |
t@@ -1867,7 +1948,7 @@ Report bugs to the author at [email protected]\… | |
void HandleCmdLine(int argc,char *argv[]) { | |
int c; | |
- static const gchar *options = "anbchvf:o:sSp:g:r:wtC:"; | |
+ static const gchar *options = "anbchvf:o:sSp:g:r:wtC:l:"; | |
#ifdef HAVE_GETOPT_LONG | |
static const struct option long_options[] = { | |
{ "no-color", no_argument, NULL, 'b' }, | |
t@@ -1885,6 +1966,7 @@ void HandleCmdLine(int argc,char *argv[]) { | |
{ "windowed-client", no_argument, NULL, 'w' }, | |
{ "text-client", no_argument, NULL, 't' }, | |
{ "convert", required_argument, NULL, 'C' }, | |
+ { "logfile", required_argument, NULL, 'l' }, | |
{ "help", no_argument, NULL, 'h' }, | |
{ "version", no_argument, NULL, 'v' }, | |
{ 0, 0, 0, 0 } | |
t@@ -1913,6 +1995,7 @@ void HandleCmdLine(int argc,char *argv[]) { | |
case 'p': Port=atoi(optarg); break; | |
case 'g': ReadConfigFile(optarg); break; | |
case 'r': AssignName(&PidFile,optarg); break; | |
+ case 'l': AssignName(&Log.File,optarg); break; | |
case 'w': WantedClient=CLIENT_WINDOW; break; | |
case 't': WantedClient=CLIENT_CURSES; break; | |
case 'C': AssignName(&ConvertFile,optarg); WantConvert=TRUE; break; | |
t@@ -1940,16 +2023,16 @@ GString *GetLogString(GLogLevelFlags log_level,const g… | |
struct tm *timep; | |
text=g_string_new(""); | |
- if (LogTimestamp) { | |
+ if (Log.Timestamp) { | |
tim=time(NULL); | |
timep=localtime(&tim); | |
- strftime(TimeBuf,80,LogTimestamp,timep); | |
+ strftime(TimeBuf,80,Log.Timestamp,timep); | |
TimeBuf[79]='\0'; | |
g_string_append(text,TimeBuf); | |
} | |
for (i=0;i<MAXLOG;i++) if (log_level&(1<<(G_LOG_LEVEL_USER_SHIFT+i))) { | |
- if (i>LogLevel) { g_string_free(text,TRUE); return NULL; } | |
+ if (i>Log.Level) { g_string_free(text,TRUE); return NULL; } | |
g_string_sprintfa(text,"%d: ",i); | |
} | |
g_string_append(text,message); | |
t@@ -1964,7 +2047,8 @@ static void ServerLogMessage(const gchar *log_domain,GLo… | |
GString *text; | |
text=GetLogString(log_level,message); | |
if (text) { | |
- g_print("%s\n",text->str); g_string_free(text,TRUE); | |
+ fprintf(logfp ? logfp : stdout,"%s\n",text->str); | |
+ g_string_free(text,TRUE); | |
} | |
} | |
#endif | |
t@@ -1993,8 +2077,17 @@ int main(int argc,char *argv[]) { | |
GuiServerLoop(); | |
#else | |
/* Deal with dopelog() stuff nicely */ | |
+ logfp = fopen(Log.File,"a"); | |
+ if (logfp) { | |
+#ifdef SETVBUF_REVERSED /* 2nd and 3rd arguments are reversed on some systems … | |
+ setvbuf(logfp,_IOLBF,(char *)NULL,0); | |
+#else | |
+ setvbuf(logfp,(char *)NULL,_IOLBF,0); | |
+#endif | |
+ } | |
g_log_set_handler(NULL,LogMask(),ServerLogMessage,NULL); | |
- ServerLoop(); | |
+ /*if (fork()<=0)*/ ServerLoop(); | |
+ fclose(logfp); | |
#endif /* GUI_SERVER */ | |
#else | |
g_print(_("This binary has been compiled without networking " | |
t@@ -2020,6 +2113,7 @@ int main(int argc,char *argv[]) { | |
} | |
CloseHighScoreFile(); | |
g_free(PidFile); | |
+ g_free(Log.File); | |
g_free(ConvertFile); | |
return 0; | |
} | |
diff --git a/src/dopewars.h b/src/dopewars.h | |
t@@ -90,6 +90,11 @@ struct METASERVER { | |
}; | |
#endif | |
+struct CURRENCY { | |
+ gchar *Symbol; | |
+ gboolean Prefix; | |
+}; | |
+ | |
struct PRICES { | |
price_t Spy,Tipoff; | |
}; | |
t@@ -136,6 +141,13 @@ typedef enum { | |
PEYOTE, SHROOMS, SPEED, WEED | |
} DrugIndex; | |
+struct LOG { | |
+ gchar *File; | |
+ gint Level; | |
+ gchar *Timestamp; | |
+}; | |
+ | |
+ | |
extern int ClientSock,ListenSock; | |
extern gboolean Network,Client,Server,NotifyMetaServer,AIPlayer; | |
extern unsigned Port; | |
t@@ -148,6 +160,7 @@ extern ClientType WantedClient; | |
extern int LoanSharkLoc,BankLoc,GunShopLoc,RoughPubLoc; | |
extern int DrugSortMethod,FightTimeout,IdleTimeout,ConnectTimeout; | |
extern int MaxClients,AITurnPause; | |
+extern struct CURRENCY Currency; | |
extern struct PRICES Prices; | |
extern struct BITCH Bitch; | |
extern price_t StartCash,StartDebt; | |
t@@ -161,8 +174,6 @@ extern gboolean UseSocks; | |
extern int NumTurns; | |
extern int PlayerArmour,BitchArmour; | |
-extern int LogLevel; | |
-extern gchar *LogTimestamp; | |
#define MAXLOG 6 | |
t@@ -311,6 +322,7 @@ extern char **SubwaySaying; | |
extern char **StoppedTo; | |
extern GSList *ServerList; | |
extern GScannerConfig ScannerConfig; | |
+extern struct LOG Log; | |
GSList *RemovePlayer(Player *Play,GSList *First); | |
Player *GetPlayerByID(guint ID,GSList *First); | |
t@@ -380,4 +392,5 @@ gboolean IsCop(Player *Play); | |
void dopelog(int loglevel,const gchar *format,...); | |
GLogLevelFlags LogMask(void); | |
GString *GetLogString(GLogLevelFlags log_level,const gchar *message); | |
+void RestoreConfig(void); | |
#endif | |
diff --git a/src/gtk_client.c b/src/gtk_client.c | |
t@@ -439,7 +439,7 @@ void HandleClientMessage(char *pt,Player *Play) { | |
"<main>/Errands/Sack Bitch..."); | |
/* Text for the Errands/Sack Bitch menu item */ | |
- text=dpg_strdup_printf(_("%/Sack Bitch menu item/S_ack %Tde"), | |
+ text=dpg_strdup_printf(_("%/Sack Bitch menu item/S_ack %Tde..."), | |
Names.Bitch); | |
SetAccelerator(MenuItem,text,NULL,NULL,NULL); | |
g_free(text); | |
t@@ -1626,6 +1626,7 @@ void EndGame(void) { | |
ShutdownNetwork(ClientData.Play); | |
UpdatePlayerLists(); | |
CleanUpServer(); | |
+ RestoreConfig(); | |
InGame=FALSE; | |
UpdateMenus(); | |
} | |
t@@ -2495,41 +2496,50 @@ static void TransferPayAll(GtkWidget *widget,GtkWidget… | |
} | |
static void TransferOK(GtkWidget *widget,GtkWidget *dialog) { | |
- gpointer Debt; | |
- GtkWidget *deposit,*entry; | |
- gchar *text; | |
- price_t money; | |
+ gpointer Debt; | |
+ GtkWidget *deposit,*entry; | |
+ gchar *text,*title; | |
+ price_t money; | |
+ gboolean withdraw=FALSE; | |
+ | |
+ Debt=gtk_object_get_data(GTK_OBJECT(dialog),"debt"); | |
+ entry=GTK_WIDGET(gtk_object_get_data(GTK_OBJECT(dialog),"entry")); | |
+ text=gtk_editable_get_chars(GTK_EDITABLE(entry),0,-1); | |
+ money=strtoprice(text); | |
+ g_free(text); | |
- Debt=gtk_object_get_data(GTK_OBJECT(dialog),"debt"); | |
- entry=GTK_WIDGET(gtk_object_get_data(GTK_OBJECT(dialog),"entry")); | |
- text=gtk_editable_get_chars(GTK_EDITABLE(entry),0,-1); | |
- money=strtoprice(text); | |
- g_free(text); | |
+ if (Debt) { | |
+/* Title of loan shark dialog - (%Tde="The Loan Shark" by default) */ | |
+ title = dpg_strdup_printf(_("%/LoanShark window title/%Tde"), | |
+ Names.LoanSharkName); | |
+ if (money>ClientData.Play->Debt) money=ClientData.Play->Debt; | |
+ } else { | |
+/* Title of bank dialog - (%Tde="The Bank" by default) */ | |
+ title = dpg_strdup_printf(_("%/BankName window title/%Tde"), | |
+ Names.BankName); | |
+ deposit=GTK_WIDGET(gtk_object_get_data(GTK_OBJECT(dialog),"deposit")); | |
+ if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(deposit))) { | |
+ withdraw=TRUE; | |
+ } | |
+ } | |
- if (money<0) money=0; | |
- if (Debt) { | |
- if (money>ClientData.Play->Debt) money=ClientData.Play->Debt; | |
- } else { | |
- deposit=GTK_WIDGET(gtk_object_get_data(GTK_OBJECT(dialog),"deposit")); | |
- if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(deposit))) { | |
- money=-money; | |
- } | |
- if (-money>ClientData.Play->Bank) { | |
- GtkMessageBox(dialog,_("There isn't that much money available..."), | |
- Names.BankName,MB_OK); | |
- return; | |
- } | |
- } | |
- if (money>ClientData.Play->Cash) { | |
- GtkMessageBox(dialog,_("You don't have that much money!"), | |
- Debt ? Names.LoanSharkName : Names.BankName,MB_OK); | |
- return; | |
- } | |
- text=pricetostr(money); | |
- SendClientMessage(ClientData.Play,C_NONE, | |
- Debt ? C_PAYLOAN : C_DEPOSIT,NULL,text); | |
- g_free(text); | |
- gtk_widget_destroy(dialog); | |
+ if (money<0) { | |
+ GtkMessageBox(dialog,_("You must enter a positive amount of money!"), | |
+ title,MB_OK); | |
+ } else if (!Debt && withdraw && money>ClientData.Play->Bank) { | |
+ GtkMessageBox(dialog,_("There isn't that much money available..."), | |
+ title,MB_OK); | |
+ } else if (money>ClientData.Play->Cash) { | |
+ GtkMessageBox(dialog,_("You don't have that much money!"), | |
+ title,MB_OK); | |
+ } else { | |
+ text=pricetostr(withdraw ? -money : money); | |
+ SendClientMessage(ClientData.Play,C_NONE, | |
+ Debt ? C_PAYLOAN : C_DEPOSIT,NULL,text); | |
+ g_free(text); | |
+ gtk_widget_destroy(dialog); | |
+ } | |
+ g_free(title); | |
} | |
void TransferDialog(gboolean Debt) { | |
t@@ -2593,14 +2603,20 @@ void TransferDialog(gboolean Debt) { | |
radio=gtk_radio_button_new_with_label(group,_("Withdraw")); | |
gtk_table_attach_defaults(GTK_TABLE(table),radio,0,1,3,4); | |
} | |
- label=gtk_label_new("$"); | |
- gtk_table_attach_defaults(GTK_TABLE(table),label,1,2,2,4); | |
+ label=gtk_label_new(Currency.Symbol); | |
entry=gtk_entry_new(); | |
gtk_entry_set_text(GTK_ENTRY(entry),"0"); | |
gtk_object_set_data(GTK_OBJECT(dialog),"entry",entry); | |
gtk_signal_connect(GTK_OBJECT(entry),"activate", | |
GTK_SIGNAL_FUNC(TransferOK),dialog); | |
- gtk_table_attach_defaults(GTK_TABLE(table),entry,2,3,2,4); | |
+ | |
+ if (Currency.Prefix) { | |
+ gtk_table_attach_defaults(GTK_TABLE(table),label,1,2,2,4); | |
+ gtk_table_attach_defaults(GTK_TABLE(table),entry,2,3,2,4); | |
+ } else { | |
+ gtk_table_attach_defaults(GTK_TABLE(table),label,2,3,2,4); | |
+ gtk_table_attach_defaults(GTK_TABLE(table),entry,1,2,2,4); | |
+ } | |
gtk_box_pack_start(GTK_BOX(vbox),table,TRUE,TRUE,0); | |
diff --git a/src/gtkport.c b/src/gtkport.c | |
t@@ -213,6 +213,8 @@ static void gtk_window_update_focus(GtkWindow *window); | |
static void gtk_window_set_focus(GtkWindow *window); | |
static void gtk_window_handle_user_size(GtkWindow *window, | |
GtkAllocation *allocation); | |
+static void gtk_window_handle_minmax_size(GtkWindow *window, | |
+ LPMINMAXINFO minmax); | |
static void gtk_window_handle_auto_size(GtkWindow *window, | |
GtkAllocation *allocation); | |
static void gtk_window_set_initial_position(GtkWindow *window, | |
t@@ -850,6 +852,14 @@ LRESULT CALLBACK MainWndProc(HWND hwnd,UINT msg,UINT wPar… | |
gtk_window_handle_user_size(GTK_WINDOW(window),&alloc); | |
gtk_widget_set_size(window,&alloc); | |
break; | |
+ case WM_GETMINMAXINFO: | |
+ widget=GTK_WIDGET(GetWindowLong(hwnd,GWL_USERDATA)); | |
+ if (widget) klass=GTK_OBJECT(widget)->klass; else klass=NULL; | |
+ if (klass==&GtkWindowClass) { | |
+ gtk_window_handle_minmax_size(GTK_WINDOW(widget), | |
+ (LPMINMAXINFO)lParam); | |
+ } | |
+ break; | |
case WM_ACTIVATE: | |
case WM_ACTIVATEAPP: | |
widget=GTK_WIDGET(GetWindowLong(hwnd,GWL_USERDATA)); | |
t@@ -1289,6 +1299,7 @@ GtkWidget *gtk_window_new(GtkWindowType type) { | |
win->title=g_strdup(""); | |
win->type=type; | |
+ win->allow_grow = TRUE; | |
return GTK_WIDGET(win); | |
} | |
t@@ -1317,6 +1328,13 @@ void gtk_window_set_transient_for(GtkWindow *window,Gtk… | |
} | |
} | |
+void gtk_window_set_policy(GtkWindow *window,gint allow_shrink, | |
+ gint allow_grow,gint auto_shrink) { | |
+ window->allow_shrink = allow_shrink; | |
+ window->allow_grow = allow_grow; | |
+ window->auto_shrink = auto_shrink; | |
+} | |
+ | |
void gtk_window_set_menu(GtkWindow *window,GtkMenuBar *menu_bar) { | |
HWND hWnd; | |
HMENU hMenu; | |
t@@ -1988,15 +2006,19 @@ void gtk_vbox_set_size(GtkWidget *widget,GtkAllocation… | |
void gtk_window_realize(GtkWidget *widget) { | |
GtkWindow *win=GTK_WINDOW(widget); | |
HWND Parent; | |
+ DWORD resize=0; | |
+ | |
+ if (win->allow_shrink || win->allow_grow) resize=WS_SIZEBOX; | |
+ | |
Parent=gtk_get_parent_hwnd(widget->parent); | |
if (win->type==GTK_WINDOW_TOPLEVEL) { | |
widget->hWnd = CreateWindow("mainwin",win->title, | |
- WS_OVERLAPPEDWINDOW|CS_HREDRAW|CS_VREDRAW|WS_SIZEBOX, | |
+ WS_OVERLAPPEDWINDOW|CS_HREDRAW|CS_VREDRAW|resize, | |
CW_USEDEFAULT,0,0,0,Parent,NULL,hInst,NULL); | |
if (!TopLevel) TopLevel=widget->hWnd; | |
} else { | |
widget->hWnd = CreateWindow(WC_GTKDIALOG,win->title, | |
- WS_CAPTION|WS_SYSMENU|CS_HREDRAW|CS_VREDRAW|WS_SIZEBOX, | |
+ WS_CAPTION|WS_SYSMENU|CS_HREDRAW|CS_VREDRAW|resize, | |
CW_USEDEFAULT,0,0,0,Parent,NULL,hInst,NULL); | |
} | |
WindowList=g_slist_append(WindowList,(gpointer)win); | |
t@@ -4448,6 +4470,20 @@ void gtk_window_handle_user_size(GtkWindow *window, | |
GtkAllocation *allocation) { | |
} | |
+void gtk_window_handle_minmax_size(GtkWindow *window,LPMINMAXINFO minmax) { | |
+ GtkRequisition *req; | |
+ | |
+ req = >K_WIDGET(window)->requisition; | |
+ if (!window->allow_shrink) { | |
+ minmax->ptMinTrackSize.x = req->width; | |
+ minmax->ptMinTrackSize.y = req->height; | |
+ } | |
+ if (!window->allow_grow) { | |
+ minmax->ptMaxTrackSize.x = req->width; | |
+ minmax->ptMaxTrackSize.y = req->height; | |
+ } | |
+} | |
+ | |
void gtk_window_set_initial_position(GtkWindow *window, | |
GtkAllocation *allocation) { | |
RECT rect; | |
diff --git a/src/gtkport.h b/src/gtkport.h | |
t@@ -449,6 +449,9 @@ struct _GtkWindow { | |
GtkWidget *focus; | |
HACCEL hAccel; | |
guint modal : 1; | |
+ guint allow_shrink : 1; | |
+ guint allow_grow : 1; | |
+ guint auto_shrink : 1; | |
}; | |
typedef struct _GtkTable GtkTable; | |
t@@ -534,6 +537,8 @@ GtkWidget *gtk_window_new(GtkWindowType type); | |
void gtk_window_set_title(GtkWindow *window,const gchar *title); | |
void gtk_window_set_default_size(GtkWindow *window,gint width,gint height); | |
void gtk_window_set_transient_for(GtkWindow *window,GtkWindow *parent); | |
+void gtk_window_set_policy(GtkWindow *window,gint allow_shrink, | |
+ gint allow_grow,gint auto_shrink); | |
void gtk_container_add(GtkContainer *container,GtkWidget *widget); | |
void gtk_container_set_border_width(GtkContainer *container,guint border_width… | |
GtkWidget *gtk_button_new_with_label(const gchar *label); | |
diff --git a/src/message.c b/src/message.c | |
t@@ -512,73 +512,82 @@ void SendSpyReport(Player *To,Player *SpiedOn) { | |
#define NUMNAMES 12 | |
void SendInitialData(Player *To) { | |
- gchar *LocalNames[NUMNAMES] = { Names.Bitch,Names.Bitches,Names.Gun, | |
- Names.Guns,Names.Drug,Names.Drugs, | |
- Names.Month,Names.Year,Names.LoanSharkName, | |
- Names.BankName,Names.GunShopName, | |
- Names.RoughPubName }; | |
- gint i; | |
- GString *text; | |
- | |
- if (!Network) return; | |
- if (!HaveAbility(To,A_TSTRING)) for (i=0;i<NUMNAMES;i++) { | |
- LocalNames[i] = GetDefaultTString(LocalNames[i]); | |
- } | |
- text=g_string_new(""); | |
- g_string_sprintf(text,"%s^%d^%d^%d^",VERSION,NumLocation,NumGun,NumDrug); | |
- for (i=0;i<8;i++) { | |
- g_string_append(text,LocalNames[i]); | |
- g_string_append_c(text,'^'); | |
- } | |
- if (HaveAbility(To,A_PLAYERID)) g_string_sprintfa(text,"%d^",To->ID); | |
+ gchar *LocalNames[NUMNAMES] = { Names.Bitch,Names.Bitches,Names.Gun, | |
+ Names.Guns,Names.Drug,Names.Drugs, | |
+ Names.Month,Names.Year,Names.LoanSharkName, | |
+ Names.BankName,Names.GunShopName, | |
+ Names.RoughPubName }; | |
+ gint i; | |
+ GString *text; | |
+ | |
+ if (!Network) return; | |
+ if (!HaveAbility(To,A_TSTRING)) for (i=0;i<NUMNAMES;i++) { | |
+ LocalNames[i] = GetDefaultTString(LocalNames[i]); | |
+ } | |
+ text=g_string_new(""); | |
+ g_string_sprintf(text,"%s^%d^%d^%d^",VERSION,NumLocation,NumGun,NumDrug); | |
+ for (i=0;i<8;i++) { | |
+ g_string_append(text,LocalNames[i]); | |
+ g_string_append_c(text,'^'); | |
+ } | |
+ if (HaveAbility(To,A_PLAYERID)) g_string_sprintfa(text,"%d^",To->ID); | |
/* Player ID is expected after the first 8 names, so send the rest now */ | |
- for (i=8;i<NUMNAMES;i++) { | |
- g_string_append(text,LocalNames[i]); | |
- g_string_append_c(text,'^'); | |
- } | |
+ for (i=8;i<NUMNAMES;i++) { | |
+ g_string_append(text,LocalNames[i]); | |
+ g_string_append_c(text,'^'); | |
+ } | |
- if (!HaveAbility(To,A_TSTRING)) for (i=0;i<NUMNAMES;i++) { | |
- g_free(LocalNames[i]); | |
- } | |
- SendServerMessage(NULL,C_NONE,C_INIT,To,text->str); | |
- g_string_free(text,TRUE); | |
+ if (!HaveAbility(To,A_TSTRING)) for (i=0;i<NUMNAMES;i++) { | |
+ g_free(LocalNames[i]); | |
+ } | |
+ | |
+ g_string_sprintfa(text,"%c%s^",Currency.Prefix ? '1' : '0',Currency.Symbol); | |
+ SendServerMessage(NULL,C_NONE,C_INIT,To,text->str); | |
+ g_string_free(text,TRUE); | |
} | |
void ReceiveInitialData(Player *Play,char *Data) { | |
- char *pt,*ServerVersion; | |
- GSList *list; | |
- pt=Data; | |
- ServerVersion=GetNextWord(&pt,"(unknown)"); | |
- ResizeLocations(GetNextInt(&pt,NumLocation)); | |
- ResizeGuns(GetNextInt(&pt,NumGun)); | |
- ResizeDrugs(GetNextInt(&pt,NumDrug)); | |
- for (list=FirstClient;list;list=g_slist_next(list)) { | |
- UpdatePlayer((Player*)list->data); | |
- } | |
- AssignName(&Names.Bitch,GetNextWord(&pt,"")); | |
- AssignName(&Names.Bitches,GetNextWord(&pt,"")); | |
- AssignName(&Names.Gun,GetNextWord(&pt,"")); | |
- AssignName(&Names.Guns,GetNextWord(&pt,"")); | |
- AssignName(&Names.Drug,GetNextWord(&pt,"")); | |
- AssignName(&Names.Drugs,GetNextWord(&pt,"")); | |
- AssignName(&Names.Month,GetNextWord(&pt,"")); | |
- AssignName(&Names.Year,GetNextWord(&pt,"")); | |
- if (HaveAbility(Play,A_PLAYERID)) Play->ID=GetNextInt(&pt,0); | |
+ char *pt,*ServerVersion,*curr; | |
+ GSList *list; | |
+ pt=Data; | |
+ ServerVersion=GetNextWord(&pt,"(unknown)"); | |
+ ResizeLocations(GetNextInt(&pt,NumLocation)); | |
+ ResizeGuns(GetNextInt(&pt,NumGun)); | |
+ ResizeDrugs(GetNextInt(&pt,NumDrug)); | |
+ for (list=FirstClient;list;list=g_slist_next(list)) { | |
+ UpdatePlayer((Player*)list->data); | |
+ } | |
+ AssignName(&Names.Bitch,GetNextWord(&pt,"")); | |
+ AssignName(&Names.Bitches,GetNextWord(&pt,"")); | |
+ AssignName(&Names.Gun,GetNextWord(&pt,"")); | |
+ AssignName(&Names.Guns,GetNextWord(&pt,"")); | |
+ AssignName(&Names.Drug,GetNextWord(&pt,"")); | |
+ AssignName(&Names.Drugs,GetNextWord(&pt,"")); | |
+ AssignName(&Names.Month,GetNextWord(&pt,"")); | |
+ AssignName(&Names.Year,GetNextWord(&pt,"")); | |
+ if (HaveAbility(Play,A_PLAYERID)) Play->ID=GetNextInt(&pt,0); | |
/* Servers up to version 1.4.8 don't send the following names, so | |
default to the existing values if they haven't been sent */ | |
- AssignName(&Names.LoanSharkName,GetNextWord(&pt,Names.LoanSharkName)); | |
- AssignName(&Names.BankName,GetNextWord(&pt,Names.BankName)); | |
- AssignName(&Names.GunShopName,GetNextWord(&pt,Names.GunShopName)); | |
- AssignName(&Names.RoughPubName,GetNextWord(&pt,Names.RoughPubName)); | |
+ AssignName(&Names.LoanSharkName,GetNextWord(&pt,Names.LoanSharkName)); | |
+ AssignName(&Names.BankName,GetNextWord(&pt,Names.BankName)); | |
+ AssignName(&Names.GunShopName,GetNextWord(&pt,Names.GunShopName)); | |
+ AssignName(&Names.RoughPubName,GetNextWord(&pt,Names.RoughPubName)); | |
+ | |
+/* Currency data are only sent by versions >= 1.5.3 */ | |
+ curr = GetNextWord(&pt,NULL); | |
+ if (curr && strlen(curr)>=1) { | |
+ Currency.Prefix = (curr[0]=='1'); | |
+ AssignName(&Currency.Symbol,&curr[1]); | |
+ } | |
- if (strcmp(VERSION,ServerVersion)!=0) { | |
- g_message(_("This server is version %s, while your client is " | |
+ if (strcmp(VERSION,ServerVersion)!=0) { | |
+ g_message(_("This server is version %s, while your client is " | |
"version %s.\nBe warned that different versions may not be fully compatible!\n" | |
-"Refer to the website at http://bellatrix.pcl.ox.ac.uk/~ben/dopewars/\n" | |
+"Refer to the website at http://dopewars.sourceforge.net/\n" | |
"for the latest version."),ServerVersion,VERSION); | |
- } | |
+ } | |
} | |
void SendMiscData(Player *To) { | |
diff --git a/src/winmain.c b/src/winmain.c | |
t@@ -247,7 +247,9 @@ int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevIn… | |
LogFileEnd(); | |
g_strfreev(split); | |
CloseHighScoreFile(); | |
- if (PidFile) g_free(PidFile); | |
+ g_free(PidFile); | |
+ g_free(Log.File); | |
+ g_free(ConvertFile); | |
return 0; | |
} | |