* Replace "nstr = malloc(strlen(str) + 1); strcpy(nstr, str);" by using "nstr = strdup(str);" instead
* Remove a non-sensical self-assignment ("pIdent = pIdent;")
* In scriptAddVariable:
* "Overallocate" for the new VAR_SYMBOL so that we can store the identifier in that single chunk of memory
* This allows deallocating the entire structure with a single free() call (which prevents problems with the constness change to VAR_SYMBOL mentioned above)
* Don't take ownership of the memory pointed to by psVarIdent->pIdent, just copy its contents instead
* Make FREE_VARIDENTDECL a function instead: freeVARIDENTDECL
* In this function also free psDcl->pIdent
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@4696 4a71c877-e1ca-e34f-864e-861f7616d084
* Remove unused function scriptClearLocalVariables() (which was effectively a NOP due to psLocalVars being NULL)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@4691 4a71c877-e1ca-e34f-864e-861f7616d084
* In function dataScriptLoad, make "printHack" a "static const" instead of a local non-const variable (emphasizes that it really is a compile-time constant; also towards the compiler btw, GCC treats a static const var as a preprocessor macro with static type checking)
* Move global variables pScrInputFiles (formerly pScrInputBuffer), scr_include_stack_ptr, scr_num_macros, scr_macro_stack_ptr, pScrMacroBuffer and scrInclLine from script_parser.y to script_lexer.l and mark them static to disallow external linkage (to make it a little bit better encapsulated and localised)
* Make function scriptCompile return a SCRIPT_CODE* pointer instead of a BOOL and writing the same pointer into an output pointer (instead upon failure it now returns NULL)
* Move some of the functionality of scriptCompile to new function scriptSetInputFile instead (which is based upon scriptSetInputBuffer)
* Modify script_lexer.l to read include files directly from the files rather than an intermediate memory buffer (by means of a modified YY_INPUT macro)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2532 4a71c877-e1ca-e34f-864e-861f7616d084
- Add -Wno-nonnull to debug=strict to make it compile (Remove it from AM_CFLAGS)
- Remove -Wno-unused-label as this warning is not generated anymore
- Fix a "... from incompatible pointer type" warning which led to a lot of strings (and associated functions) in the widget area becoming const
- Maybe found the reason for images in UTF-8 strings
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1405 4a71c877-e1ca-e34f-864e-861f7616d084
Example:
#include "multiplay/skirmish/my_include.slo"
-Implemented C-like #define preprocessor directive. Nested macros allowed with up to depth of MAX_SCR_MACRO_DEPTH.
-Added a script function for a fast feature iteration (returns burning as well as non-burning oil resources)
-Replaced some custom Pumpkin routines with default FLEX routines
-Some cleanups
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@950 4a71c877-e1ca-e34f-864e-861f7616d084
- Fix a lot of char* related warnings (fixing of scripttabs.c needs to be finished like I started it)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@867 4a71c877-e1ca-e34f-864e-861f7616d084
-compiler and parts of interpreter now use union to store different data types
-got rid of a great deal of pointer->integer casts
-ASSERT() now outputs last event (or function) called by scripts
-implemented float data type support for the scripting engine - basic functionality at the moment
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@846 4a71c877-e1ca-e34f-864e-861f7616d084
Mainly explicit casts, some type changes, a few fixes.
We need to have a look if this line creates any problems:
lib/script/interp.c @@ -329,7 +329,7 @@
- if(!RetStackRemember(CurEvent, (ip + 2))) //Remember where to jump back later
+ if(!RetStackRemember(CurEvent, *(ip + 2))) //Remember where to jump back later
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@719 4a71c877-e1ca-e34f-864e-861f7616d084
Patch marks several read-only function parameters and datastructures as such by adding const.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@709 4a71c877-e1ca-e34f-864e-861f7616d084
- Replace every occurence of VOID with void (and LPVOID with void*)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@703 4a71c877-e1ca-e34f-864e-861f7616d084
-implemented string support
-functions can now have arguments, example:
function STRING myFunc(DROID myDroid, int myInt2){<code>}
-functions can have return values:
return <statement>;
or just "return;" for void functions
-function calls are made the normal c/c++ way (using the function from the first example):
myString = myFunc(myDroid, 156);
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@583 4a71c877-e1ca-e34f-864e-861f7616d084
more than half the warnings on gcc4, and makes sure we do not
get signedness problems between platforms where char is defined
with different signedness. Also set line-ending properites for
some bison/flex files that did not have it set.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@563 4a71c877-e1ca-e34f-864e-861f7616d084
-added simple function support
Limitations:
-void return type only
-no arguments support
Example:
function void myFunc() {<code>}
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@557 4a71c877-e1ca-e34f-864e-861f7616d084