An change was introduced on sqlite3_vfs which causes an incompatible
pointer error when mixed with older sqlite versions. Thus bump the
required version to 3.6.10 as well.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6564 4a71c877-e1ca-e34f-864e-861f7616d084
- If it does, check whether it's behaviour is consistent with our implementation
- If behaviour is consistent: use the system's implementation
- If not, rename our implementation (to prevent symbol clashes) and use our own
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6556 4a71c877-e1ca-e34f-864e-861f7616d084
* It seems that autoconf (2.63 or 2.62) changed the names that are acceptable as custom variable name, and no longer accepts LT_\w+ as variable names.
This addresses #201 and hopefully fixes it.
@EvilGuru, if this fixes it, please close the ticket.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6538 4a71c877-e1ca-e34f-864e-861f7616d084
* Detect libsvg-cairo in the configure script
* Link against libsvg-cairo
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6440 4a71c877-e1ca-e34f-864e-861f7616d084
* Use this macro definition for widget:addAnimation(frames) instead of the previously custom crafted typemap
* Add src/lua_memberfnptr.i and src/lua_table_as_array.i to the Makefile's EXTRA_DIST list
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6439 4a71c877-e1ca-e34f-864e-861f7616d084
* Alter the "(callback handler, callback destructor, void *userData)" typemap such that it can be used as a more generic member-function callback
* Additionally place this typemap in a file of its own for greater ease of reuse
* Use this new typemap (for type SWIGLUA_MEMBER_FN) in the interface definition because of its greater simplicity
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6438 4a71c877-e1ca-e34f-864e-861f7616d084
* Make its dependency on AC_PROG_SED and AC_PROG_GREP explicit (AC_REQUIRE)
* Depend on AX_WITH_PROG for finding out about SWIG's location
* Use AX_COMPARE_VERSION (instead of lost of customly crafted code) to compare SWIG's version to that required
* Instead of emitting a warning error out when SWIG can't be found or it doesn't satisfy the required version
* Use a ''correct'' commandline (parameters to SWIG and correct regex + substitution) to find out SWIG's version
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6436 4a71c877-e1ca-e34f-864e-861f7616d084
- This reduces the complexity of those functions ''significantly''
* Mark yyerror functions with printf formatting with WZ_DECL_FORMAT(printf, ...)
(@trunk = the original intented target for r6430)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6432 4a71c877-e1ca-e34f-864e-861f7616d084
is thus always facing upwards. This option is now enabled by default to obtain some feedback.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6410 4a71c877-e1ca-e34f-864e-861f7616d084
* Use C89 style variable declarations (i.e. at the beginning of scope-blocks)
* Use a proper set of #include paths
This should fix#160, patch by <i-NoD> slightly modified by me (moved variable declarations to the most local scope where used)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6385 4a71c877-e1ca-e34f-864e-861f7616d084
- Use 0:0:0 as current version (API=0, API_IMPLEMENTATION=0, IMPLEMENTATION_AGE=0)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6375 4a71c877-e1ca-e34f-864e-861f7616d084
- We currently do this for Lua
- Libtool is apparently smart enough to find out about libtool libraries on its own (so we don't need to "hack" our way to finding those)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6374 4a71c877-e1ca-e34f-864e-861f7616d084
This allows easy detection of betawidget by means of pkg-config
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6373 4a71c877-e1ca-e34f-864e-861f7616d084
- Make sure to build libbetawidget.la in lib/betawidget/ first though (because tools/ depends on that)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6369 4a71c877-e1ca-e34f-864e-861f7616d084
* Use plain "cairo" instead of "cairo-svg" because "cairo-svg" is an ''output'' backend in which we're not interested
* When re-running aclocal make sure to pass `-I m4` to it
* For lack of -Werror lets compile with -Werror-implicit-function-declaration to die at implicit function declarations (rather than getting stranger errors)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6368 4a71c877-e1ca-e34f-864e-861f7616d084
* Rename LIST_ADDEND to LIST_APPEND (because that's what it does: append to a list)
* Clean up the assertion in LIST_REMOVE
* Prevent a potential bug in LIST_APPEND by not initialising the psNext pointer to NULL
- doesn't ever occur right now, for one simple reason: the only place where this macro is used is on a structure that's initialised with memset(0)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6260 4a71c877-e1ca-e34f-864e-861f7616d084
* Fix several parameters that got passed wrong and didn't get caught due to the different definitions
Caught by EvilGuru
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6256 4a71c877-e1ca-e34f-864e-861f7616d084
* If initialisation of the debug callback failed, do ''not'' add it to the list of debug callbacks to use
This fixes ticket:136
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6249 4a71c877-e1ca-e34f-864e-861f7616d084
Forces window XP users to also use a software device for openAL. (already the default for the other platforms & vista). This allows 256 sources, instead of 16.
Note: *this is windows specific* and will not affect the other platforms.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6223 4a71c877-e1ca-e34f-864e-861f7616d084
* use mkstemp(3) to create a temporary file that's guaranteed not to exist already
Prevents a potential symlink attack (e.g. where /tmp/warzone2100.gdmp is symlinked by user A to a file owned by user B, then having user B crash warzone)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6214 4a71c877-e1ca-e34f-864e-861f7616d084
(Normally, it dumps only when LOG_SCRIPT is defined, but we can't determine where the script errors are when LOG_SCRIPT isn't used)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6212 4a71c877-e1ca-e34f-864e-861f7616d084
* Instead rely on setting that pointer to NULL in the client code that calls animObj_Remove in the first place
- This was already done in all but one case where animObj_Remove was called
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6180 4a71c877-e1ca-e34f-864e-861f7616d084
* Missing returns from function
* Functions that are defined in both DEBUG and NDEBUG builds but only used in DEBUG builds
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6179 4a71c877-e1ca-e34f-864e-861f7616d084
* Mark several parameters that aren't being used (but shouldn't be removed) with WZ_DECL_UNUSED
* Use "(unsigned )?int" instead of "[SU](D?WORD|BYTE)" where the size guarantee is not required
* Instead of "(X - Y) >= 0" use the logically equivalent and more readable "X >= Y"
* Remove redundant function prototypes
* Move variables into a more local scope where possible
* Assign the result of an expression to a variable once so that the expression doesn't have to be duplicated several times
* Move constant UNALLOCATED_OBJECT out of the header and into the only source file where it's ever used
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6160 4a71c877-e1ca-e34f-864e-861f7616d084
* Const correctness
* Use "(unsigned )?int" instead of "[SU](D?WORD|BYTE)" where the size guarantee is not required
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6158 4a71c877-e1ca-e34f-864e-861f7616d084
* Implement hypot() and hypotf() on non-C99 systems
* Wherever the parameters to dirtyHypot() are signed: use hypotf() instead
* Move some variables in to a more local scope
* Merge the conditions of some nested if-statements
* Get rid of some stupidly named variables (tempx and tempy are ''not'' good variable names, the names should indicate ''what'' the variables contain, not for how long)
* Remove some unnecessary casting between float and [SU]DWORD
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6157 4a71c877-e1ca-e34f-864e-861f7616d084
* The lexers depend on the parser's headers so make sure to compile the parsers first
* Move a misplaced line-wrapping backslash in src/makefile.win32
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6153 4a71c877-e1ca-e34f-864e-861f7616d084
* Rewrite NETgetGameFlagsUnjoined such that it's not hardcoded for its `flag` parameter anymore
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6150 4a71c877-e1ca-e34f-864e-861f7616d084
Do this because we cannot trust malloc()'s heaps to be intact at the time an exception handler gets called.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6146 4a71c877-e1ca-e34f-864e-861f7616d084
* Add support for decoding and displaying of OggTheora/Vorbis videos
* Change all references to *.rpl files to *.ogg files (and lower case them)
* Add a new menu (and config) option for selecting the size at which to display videos (1x (native), 2x, full screen)
This closes ticket:64 and ticket:46
Code changes are ticket:64 (patch by Gerard Krol, Giel van Schijndel and Buginator)
FMVs can be found at http://download.gna.org/warzone/videos/sequences_ogg.zip (for now at least)
Videos encoded by Angus Lees
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6119 4a71c877-e1ca-e34f-864e-861f7616d084
* Use "bool" instead of "BOOL" for the return types of lib/sequence functions
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6112 4a71c877-e1ca-e34f-864e-861f7616d084
* 3.6.0 introduced an interface change to the VFS layer
* Updated physfs_vfs.c for the interface change in 3.6.0, breaking compatibility with SQLite < 3.6.0
* Change the configure script to require sqlite3 >= 3.6
This closes ticket:66
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6034 4a71c877-e1ca-e34f-864e-861f7616d084
* Use the pkg-config variables SQLITE_CFLAGS and SQLITE_LIBS to compile and link with instead
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6021 4a71c877-e1ca-e34f-864e-861f7616d084
* Require sqlite3 versions >= 3.5.4 and < 3.6 (due to r5984 these versions are possible)
* Move physfs_vfs.[ch] from lib/sqlite3/ to lib/framework/
* Update the autotools, raw win32 Makefile, Code::Blocks and MSVC build systems
- NOTE: Xcode still requires an update
This closes ticket:59
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6018 4a71c877-e1ca-e34f-864e-861f7616d084
* These can be defined using Lua tables; see the example code in sdl-testapp.lua
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6016 4a71c877-e1ca-e34f-864e-861f7616d084
* Add method `destroy` to the Lua class `widget` and its children in the betawidget module
* Add some code that demonstrates the usage of widget:destroy() and its current flaws (i.e. segfaults ''will'' occur when using widget after calling the destroy() method on it, garbage collection is included in "using")
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6008 4a71c877-e1ca-e34f-864e-861f7616d084
* Use a separate cairo_pattern for each window to store the window gradient in
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6007 4a71c877-e1ca-e34f-864e-861f7616d084
* Compile the utility part we use from Warzone (framework/utf.c and ivis_opengl/GLee.c) separately
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6002 4a71c877-e1ca-e34f-864e-861f7616d084
- We can safely catch the only one case where this filename is used (see comment in diff for an explanation)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5984 4a71c877-e1ca-e34f-864e-861f7616d084
* In the Lua test app use betawidget.getTime() to determine the *true* amount of time passed since registering of the timer event
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5979 4a71c877-e1ca-e34f-864e-861f7616d084
* If the Lua event handler function didn't return a value, assume it was successful (and leave the stack as is)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5978 4a71c877-e1ca-e34f-864e-861f7616d084
- This struct is only destroyed when the callback is destroyed, which (by default) only happens when the widget is destroyed.
- Keeping a reference to the widget prevents Lua's garbage collector from ever destroying the widget
- Thus store a reference to the widget in a Lua "weak table"
- Also store the callback function in this table
* Thus we now only keep a reference to a Lua table referring to the widget (weakly) and the function (normally/strongly)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5972 4a71c877-e1ca-e34f-864e-861f7616d084
* Be more interesting when clicking the first window
* Add a timer event handler
* Add a clipboard usage example
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5968 4a71c877-e1ca-e34f-864e-861f7616d084
* Partially generated by SWIG
* Partially handcrafted
* Already supports registering Lua functions as event handlers of `widget` derivatives
* Slight change in betawidget headers because the struct typedef's somehow confused the compiler
* Use libtool for linking with Lua
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5963 4a71c877-e1ca-e34f-864e-861f7616d084
* When only compiling and linking against betawidget just forward declare cairo_t
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5938 4a71c877-e1ca-e34f-864e-861f7616d084
* Make sure to call va_end on all instances of va_list when we're done with it
Similar to r5930 (which fixed ticket:50)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5931 4a71c877-e1ca-e34f-864e-861f7616d084
* Because va_copy is C99 provide a fallback for it on non-C99 systems (which assumes that va_list is just a pointer to the stack)
This fixes ticket:50, thanks to Buginator for finding the cause (though this solution is different from his suggestion)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5930 4a71c877-e1ca-e34f-864e-861f7616d084
* This will allow encoding of Unicode strings to UTF-8 regardless of its current encoding
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5899 4a71c877-e1ca-e34f-864e-861f7616d084
* This will allow determining of the length of a string when encoded as UTF-8 regardless of its current encoding
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5898 4a71c877-e1ca-e34f-864e-861f7616d084
This is meant to be used with betawidget
This is a revert of r2477 (which removed the UTF-8 module)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5895 4a71c877-e1ca-e34f-864e-861f7616d084
* ASSERT_HELPER can be used by debug functions that wish to alter the location information attached and printed with ASSERTs
* Add some missing semi-colons (the previous ASSERT macro had a terminating semi-colon)
* Change an ASSERT that checks calloc's return value into an if() block (we can also run out of memory on non-debug builds...)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5865 4a71c877-e1ca-e34f-864e-861f7616d084
* Remove some redundant debug(LOG_NEVER calls (they're preceded by a sound_GetError() call which will already dump that info)
* Improve some comments
* Log sound errors to LOG_SOUND, not to LOG_NEVER
* In sound_DestroyStream make sure to bail out when we fail to retrieve the buffer count (as that could cause memory over-allocation)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5860 4a71c877-e1ca-e34f-864e-861f7616d084
(NOTE, this is really a temp fix, so it don't crash/cause more openAL errors. The sound code need a rewrite to correctly fix this problem)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5853 4a71c877-e1ca-e34f-864e-861f7616d084
"Poked" by ticket:23 to add these API-level comments, but the comments themselves are completely different.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5821 4a71c877-e1ca-e34f-864e-861f7616d084
* More granular control over window position (relative offsets &c);
* frame drawing code.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5816 4a71c877-e1ca-e34f-864e-861f7616d084
* Add 4 new functions `Vector[23][fi]_LinearInterpolate` which linearly interpolate the position between to points at a certain distance from the starting point
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5784 4a71c877-e1ca-e34f-864e-861f7616d084
Deletion suggested by Buginator. This should fix bug #12136
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5777 4a71c877-e1ca-e34f-864e-861f7616d084
* Reduce the nesting inside Init_FBO
* Bail out of Init_FBO as soon as we discovered that FBOs are unavailable
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5771 4a71c877-e1ca-e34f-864e-861f7616d084
* Restore the empty lines removed in r5732
* Add a note to GAMESTRUCT containing a list of elements that need to be updated when GAMESTRUCT's definition changes
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5770 4a71c877-e1ca-e34f-864e-861f7616d084
* Fix indentation
* Don't repeat function prototypes in their pre-leading comments
* "Upgrade" some function comments to Doxygen comments
* Remove whitespace from the end of lines
* Reintroduce empty lines removed in r5733
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5769 4a71c877-e1ca-e34f-864e-861f7616d084
* Rename audio_Get3DPlayerRotAboutVerticalAxis to audio_GetPlayerOrientation and change it to return two Vector3f's with a forward and upward pointing vector in it (which can be directly used by OpenAL)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5763 4a71c877-e1ca-e34f-864e-861f7616d084
* Use Vector3f_Mult to multiply all members with some number instead of doing it manually
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5762 4a71c877-e1ca-e34f-864e-861f7616d084
* Update the autotools, win32 makefiles, Code::Blocks and MSVC build systems
NOTE: Xcode will need an update for this
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5761 4a71c877-e1ca-e34f-864e-861f7616d084
* Vector3f_ToRadians to convert a rotation vector (Euler angles) from degrees to radians
* Vector3iPSX_To3fDegree to convert the PSX "wannabe-float" degree vectors into a vector of ''real'' floats, with ''real'' degrees (i.e. 360 is completely round, instead of 65536 representing that)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5745 4a71c877-e1ca-e34f-864e-861f7616d084
This allows players to get to the correct starting position on the map they picked, much easier.
Note, this uses a FBO. If your card doesn't support it, then you will basically notice nothing different. A fallback routine is done (but not in this patch), it is just waiting for a decent font *bitmap* that we can use.
Please see http://forums.wz2100.net/viewtopic.php?f=19&t=1953 for more discussion on the matter.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5733 4a71c877-e1ca-e34f-864e-861f7616d084
* At the only place where these ID numbers where used (scrValDefSave and scrValDefLoad), use the key-string instead (e.g. "ZNULLBODY" instead of 17)
* Rename function strresGetStringByID to strresGetString
* Increment event save file version to 4 (version of savegame.es files)
* Reject loading of savegames that need to load non-NULL ST_TEXTSTRING variables from version < 4
NOTE: This may break current savegames of games that use scripts with variables of type TEXTSTRING in them (AFAIK currently only ''some'' campaign and tutorial savegames have these).
This closes ticket:19
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5685 4a71c877-e1ca-e34f-864e-861f7616d084
* Don't maintain a secondary linked list of strings in strres.c
* Add the string that's tracked and it's ID number to the TREAP_NODE structure
* Let the treap code manage its own memory
* Have the treap code perform reverse lookups using either the resource string (i.e. not the "key" string) or associated ID number
NOTE: Searching a treap for anything else than the key is O(n), but that's no worse than a linked list, which is O(n) as well. Walking a treap has O(log n) as memory requirement, whereas walking a linked list has O(1) as memory requirement (stack size). So the only disadvantage is that searching the treap has a (highly remote!) possibility of stack overflows.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5666 4a71c877-e1ca-e34f-864e-861f7616d084
* Replace the only use of strresGetIDString with a call to function strresGetStringByID, which will also return NULL on failure to find the given ID string
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5663 4a71c877-e1ca-e34f-864e-861f7616d084
* Get rid of function strresGetIDNum with its inconvenient API and use strresGetStringByID instead
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5661 4a71c877-e1ca-e34f-864e-861f7616d084
* Instead use strdup() where a non-const reference to these strings is used
* NOTE: This may introduce memory leaks, but I'd rather have memory leaks than double-frees, of which I'm frankly surprised that they don't occur ''much'' more often
* Change FindDroidTemplate to take its parameter as const
* Don't multi-purpose the parameters of FindDroidTemplate as local variables
* Store string variables in getName as const
* scrvGetString:
* Directly return the string it retrieved and use NULL to indicate failure
* Return the string as `const'
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5658 4a71c877-e1ca-e34f-864e-861f7616d084
* Allocate STR_ID structures in such a way that a single free() call on it will suffice as cleanup
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5657 4a71c877-e1ca-e34f-864e-861f7616d084
* Change allocateName to do as the name suggests and actually ''allocate'' a string!
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5656 4a71c877-e1ca-e34f-864e-861f7616d084
* Instead pass the current STR_RES* pointer to work on to the parser function
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5654 4a71c877-e1ca-e34f-864e-861f7616d084
In any case I ''think'' these ASSERTs always hold true, (and for the testing I've done so far they do). But I'd like some more certainty and confirmation, hence why I'm committing this (before I make changes that rely on that assertion holding true), so other people get a chance to test this and prove my assertion wrong.
Thus, ''if'', these ASSERTs are triggered, please open a bugreport or otherwise notify me of it (e-mail, IRC, text message, postal mail, phone call, etc.)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5649 4a71c877-e1ca-e34f-864e-861f7616d084
* win32 Makefile system:
* Compile with debug symbols and all warnings enabled on both debug ''and'' non-debug builds
* Only use -Werror-implicit-function-declaration when compiling C sources, as for C++ implicit function declarations are illegal anyway (and g++ thus doesn't like this compiler option)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@5647 4a71c877-e1ca-e34f-864e-861f7616d084