Commit Graph

135 Commits

Author SHA1 Message Date
Brian Koropoff f287e78030 Optimized the way resetting buffer states occurs and fixed thread::kill so
threads actually die as they are supposed to.
2003-04-11 05:58:58 +00:00
Brian Koropoff af114732ef Oops, forgot these. 2003-04-11 04:37:41 +00:00
Brian Koropoff d8c0f50c11 The ultimate GIB bugfix commit, including reworked semantic processing,
a fix for arguments passed to a GIB function run via rcon, and various
other fixes.
2003-04-11 02:57:11 +00:00
Brian Koropoff 3b99b7366f Fixed two bugs in complex variable substitution. 2003-03-02 05:11:22 +00:00
Brian Koropoff cd3fc3569b Fixed a bug on out-of-bounds array access attempts and enhanced the now-
functioning infobot.gib.
2003-03-01 07:24:58 +00:00
Brian Koropoff 2be8a851d5 Oops, make 'return' GIB builtin actually end the current function. 2003-03-01 02:44:58 +00:00
Brian Koropoff 7f72596ab5 Fix a bug with embedded commands and make the parser more anal about what
can be embedded.
2003-02-28 05:07:15 +00:00
Brian Koropoff 11596e4b42 Fixed a bug with parse trees being freed early. 2003-02-28 04:03:45 +00:00
Brian Koropoff ce80fffe69 Massive bug and memory leak fixing. 2003-02-26 07:44:34 +00:00
Brian Koropoff 61d315755a Fix a braino that most likely broke concatenation. 2003-02-26 02:51:40 +00:00
Ragnvald Maartmann-Moe IV 5fc069753a Warning fix (c might be used before initialization).
Too tired to check if there's an actual bug there. Goodnight...
2003-02-25 08:35:31 +00:00
Brian Koropoff 020a9262f7 Made the parser anal about concatenation usage and fixed several bugs by
running /dev/urandom through carne to catch problems.
2003-02-25 08:04:48 +00:00
Brian Koropoff c9fbb334f1 Cleaned up the GIB parser and GIB_Execute() a lot. Made aliases work in
GIB.  Added some breakpoint GIB builtins for debugging script/intepreter
interactions.  Made carne work properly again (local variables don't
disappear in interactive mode)
2003-02-25 06:52:27 +00:00
Brian Koropoff 71a4ff6379 Use floor() or ceil() based on sign for 'trunc' GIB math function. 2003-02-23 22:53:36 +00:00
Brian Koropoff 6141bc35d0 Removed the 'random' GIB builtin and replaced it with the rand() math
function in the math evaluator.  Added the trunc() math function as well.
2003-02-23 22:14:07 +00:00
Brian Koropoff 36774a612d Use atof when checking truth values. 2003-02-23 21:14:33 +00:00
Brian Koropoff 5acf0bbeda Fixed a bug in the 'contains' GIB builtin and added more to the GIB docs. 2003-02-22 07:19:51 +00:00
Brian Koropoff a9fa6c06d5 Remove some stupid hacks so that negation works again. 2003-02-17 20:33:56 +00:00
Brian Koropoff 00d71f13f6 Make %var expansion actually work. 2003-02-17 08:55:40 +00:00
Brian Koropoff f6da3baa1e Temporarily fixed GIB filesystem access until I can work out a system that
better meshes with the new QFS.  Fixed up some GIB scripts a bit.
2003-02-16 21:27:18 +00:00
Brian Koropoff 760210dc7b GIB: Many bugfixes and cleanups. Added bitwise math operations, expansion
of leaf names in a stem variable via %var, the builtin functions 'count'
and 'contains', and an initial interface between qw-server and GIB to allow
querying of clients and their info strings.  Also cleaned up the chat event
interface a bit.  Renamed a few builtins.
2003-02-16 19:46:34 +00:00
Brian Koropoff af520a373a More cleanups and bug fixes. Added stem-and-leaf variables back in and
added the global::delete builtin.
2003-02-16 02:44:24 +00:00
Brian Koropoff fc37941ca5 Tidied up some Sys_Printf()s that indent mangled. 2003-02-15 02:27:25 +00:00
Bill Currie c91137e4db run gib through indent 2003-02-14 22:42:11 +00:00
Bill Currie 851d203916 work towards a more secure qfs 2003-02-14 22:36:10 +00:00
Bill Currie 68d2167c9e fix a sequence point issue that could cause index to be put on the stack
before being initialized
2003-02-14 20:36:15 +00:00
Bill Currie 6a687f5e45 rename all the globals in quakefs.[ch] to be QFS_* or qfs_* 2003-02-14 19:46:07 +00:00
Brian Koropoff 3c522a83bc Various cleanups and bugfixes. Added proper line number reporting to
errors.  A few new builtin functions, such as slice::find and thread::list.
2003-02-14 08:06:01 +00:00
Brian Koropoff 5870c2cbce Nuked some code obsoleted by reference counting. 2003-01-31 21:47:16 +00:00
Brian Koropoff 48c3e5a6c3 Fixed a stupid, stupid bug. 2003-01-31 20:36:39 +00:00
Brian Koropoff b0e6f46b7e GIB: Even more bugfixes. 2003-01-31 05:22:20 +00:00
Bill Currie fdb74e1aba win32 doesn't like random 2003-01-31 04:40:40 +00:00
Brian Koropoff 47d35f3e2d GIB: Added ifnot, fixed several bugs, updated zoom.gib yet again. 2003-01-31 03:43:56 +00:00
Brian Koropoff 580ca17546 GIB: Added proper reference counting on parse trees, got threads working
again, added a few new builtins and renamed some others, made misc. fixes
and enhancements.
2003-01-30 23:26:43 +00:00
Brian Koropoff 4ee0c42dcc Made GIB var substitution use cvars as a last resort. 2003-01-30 20:43:57 +00:00
Brian Koropoff 1f5cabcba9 A few GIB bugfixes, cleanups, and enhancements. Still more to come. 2003-01-29 04:34:23 +00:00
Brian Koropoff 06cd013fc6 Fix for older compilers that only allow variables to be declared at the top
of a program block.
2003-01-28 23:55:21 +00:00
Brian Koropoff 59fbd48a81 Overhauled GIB to parse scripts in advance, among other design and language
changes.  There still remains some bugs to be squashed, a feature or two to
add, and some polishing to be done.  However, it seems to be in a workable
state.
2003-01-28 21:16:21 +00:00
Bill Currie 761a7546dd re-arrange things so __attribute__ and __builtin_expect are properly
autoconfiscated so rcsid will continue to work with gcc 3.3
2003-01-15 15:31:36 +00:00
Bill Currie a4dfef63c3 make all files with rcsid include config.h 2003-01-14 20:18:29 +00:00
Bill Currie 71196fedf6 make gcc more anal about prototypes, string constants and function
visibility (ie, global functions must have a prototype)
2003-01-06 18:28:13 +00:00
Brian Koropoff c522970a88 Added a GIB event system for registering GIB callback functions to be
started when a named event occurs.  Added a few test events to the qw
client and server.  Cleaned up the range GIB builtin a bit.
2003-01-03 04:30:38 +00:00
Brian Koropoff 79a638198d Fix a memory leak. 2003-01-03 04:15:32 +00:00
Brian Koropoff 091e9d3f3d A few cleanups, and made assignment/incremement/decrement operations
return a value.
2003-01-03 04:10:50 +00:00
Bill Currie b8216807fe fix a warning 2002-12-14 01:56:37 +00:00
Brian Koropoff 32e5e6ef0b Numerous GIB bug fixes and optimizations. Fixed/updated some GIB scripts
as well.
2002-12-13 23:36:05 +00:00
Brian Koropoff 74ee0cfd0e Changed the behavior of field::get with a null field separator to match
that of for loops.  Added support for var++, var--, var += foo, var -= foo,
var *= foo, and var /= foo.
2002-12-10 00:04:15 +00:00
Brian Koropoff 91266619f3 Added the sqrt and abs math functions and the continue GIB builtin. I
changed where a loop program gets copied back into its buffer so that the
continue builtin would work.
2002-12-08 20:55:40 +00:00
Brian Koropoff 0a8ff6a8cf In addition to .gib files, anything exec'ed from within a GIB buffer is now
put in a new buffer on the stack and stripped of comments.  Fixed an
instance of a function name that I forgot to change in cb.gib.
2002-12-03 05:54:13 +00:00
Brian Koropoff 714f2ced4c Fixed several GIB bugs, optimized Cbuf_Execute_Stack a bit, changed QW
clients to use a separate buffer for stufftext commands.
2002-12-01 07:22:42 +00:00
Brian Koropoff a62a92c1be Fixed regex::extract to start at the correct argument when setting the
value of variables.
2002-11-21 00:20:39 +00:00
Brian Koropoff 854f6d9054 Created gib_regex.[ch] to manage regular expressions in GIB. Regexs are
now cached and only recompiled when compile flags change.  Changed regex
builtins to take an options string argument after the regular expression.
2002-11-19 06:24:29 +00:00
Bill Currie 1251cbda9e gee, you'ld think gnu would get pointer <-> int portability right :P 2002-11-19 05:40:04 +00:00
Bill Currie a17673bb69 fix some warnings 2002-11-19 04:34:44 +00:00
Brian Koropoff 0e0d8bd542 Added support for enclosing embedded commands in $() and cleaned up the
parser a bit to accomodate this.  Backslashes in double quotes are now only
removed if they escape a character that can't be written normally, or
another backslash.  Removed start position support from string::findsub
since variable slices can be used instead.  Added support for regular
expressions in the form of regex::match, regex::replace, and
regex::extract.  Checked in regex.c from GNU regex 0.12 for platforms that
do not have regex functions in their standard library. Two minor changes
were made to this file to fix gcc warnings.  Prepared the path transform
function for a change to a filesystem rooted at fs_userpath instead of the
current gamedir, but these changes are commented out pending security
considerations.
2002-11-19 04:15:36 +00:00
Brian Koropoff acbd838b09 Fixed a format string and added a cast to some pointer arithmetic. This
fix compile problems on non-intel archs.
2002-11-17 00:12:14 +00:00
Brian Koropoff d4b1c74866 Added the string::findsub builtin. Added a reset function to the cbuf
interpreter struct so that custom cbuf data can be reset after an error.
This fixes a bug where GIB would think it was still waiting for a return
value after an error occurred in an embedded command.
2002-11-16 20:56:04 +00:00
Brian Koropoff ac8169ba54 Changed file::find to take the path and glob as one argument. Made some
miscellaneous file access cleanups.
2002-11-16 03:52:07 +00:00
Bill Currie f26ec7377c fix an uninitialized variable 2002-11-16 02:03:39 +00:00
Brian Koropoff 78785a90f8 Added a primitive interactive mode to carne and modified the file::read
GIB builtin to use Qopen instead of COM_LoadHunkFile.  This makes it work
properly in carne.
2002-11-15 23:27:07 +00:00
Brian Koropoff 625e1e36d6 Added Sys_PathType, which reports whether a path is absolute, relative
below, or relative above (uses .. to ascend the filesystem). Changed
file functions in GIB to use this.  GIB can now be initialized in a
non-sandboxed mode, which at the moment means that GIB scripts run with
carne can access the entire filesystem.
2002-11-14 05:28:54 +00:00
Brian Koropoff 7b0c24a386 Added carne, the stand-alone GIB interpreter. Made a few changes to GIB
to accommodate it.  Added the strict flag to cbufs, which causes an error
to be generated when a command is not found instead of just warning the
user.  GIB buffers have the strict flag set by default.
2002-11-14 02:10:55 +00:00
Brian Koropoff cef0d957e2 Added useful error messages to the math parser, cleaned up implied
multiplication a bit, and added some whitespace to cbuf errors for
readability.
2002-11-13 03:03:37 +00:00
Brian Koropoff 0f71b02fd7 Changed the name of GIB builtins from string.length to string::length, etc.
Made a few miscellaneous cleanups and enhancements to builtins and changed
all the GIB scripts in CVS to reflect the new naming conventions.
2002-11-11 01:57:34 +00:00
Bill Currie 498bdcc406 compile fixes for alpha linux 2002-11-10 02:50:42 +00:00
Brian Koropoff b40400d59c Moved GIB into libs/gib and made util no longer depend on it. Cleaned up
some cruft from a previous incarnation of GIB.
2002-11-09 07:13:52 +00:00
Bill Currie 538515bee6 forgot to nuke this 2002-03-06 04:17:50 +00:00
Bill Currie 544ca8118a "gib" never got all that useful, and with the new command parser coming in
and csqc, it's pretty obsolete, too.
2002-03-05 21:47:03 +00:00
Bill Currie 26d7463be7 the majority of raptor's sgi build patch. I'll look at the last two bits
(server.c and vid_sdl.c) later.
2002-03-03 06:03:51 +00:00
Bill Currie d168a3daee this should remove the requirement for gmake on bsd systems 2001-11-12 16:23:41 +00:00
Bill Currie 8ae3ef9482 fix some warning in solaris 2001-10-30 16:41:21 +00:00
Bill Currie b1f4a778f9 the rcsid commit from hell }:> 2001-09-28 06:26:31 +00:00
Bill Currie 49a85718f8 total nukage of Con_*Printf calls from libs (except for video). Sys_*Printf
(Sys_DPrintf is new) is now used exclusively for all lib printing. Con_Init
sets the sys printf recirection to Con_Print (which has been revamped
appropriatly) and the server sets it to SV_Print (which was SV_Printf and
the new SV_Printf calls /it/). This should fix the rcon print redirection
issues.
2001-09-21 04:22:46 +00:00
Ragnvald Maartmann-Moe IV dc947ce8f5 Whitespace. 2001-09-10 12:56:23 +00:00
Bill Currie 1c9e1b176f fear the mighty const correct patch 2001-07-15 07:04:17 +00:00
Bill Currie 560b475880 gcc 3.0 compile fixes 2001-06-19 22:05:13 +00:00
Joseph Carter 22e4ce887f Include files for gib have been relocated out of include/ 2001-06-08 18:46:26 +00:00
Bill Currie 7ad0f7ed2b various compile fixes for mingw. 2001-06-01 00:39:31 +00:00
Joseph Carter 05adfd0e53 quakefs.h -> vfs.h
quakeio.h -> vfile.h

More diff reduction between trunk and my VFS code.  Also took the time to
put some headers in order and fix a few #include's pointed out by moving
things around a bit.
2001-05-30 04:34:06 +00:00
Joseph Carter 186d577818 s/QFile/VFile/g - makes my diffs much smaller and more manageable for the
VFS work.
2001-05-30 03:21:19 +00:00
Bill Currie 48278f3a46 fix the spaces in the header 2001-05-25 20:48:51 +00:00
Chris Ison 14fc2d0b6c added GPL comments and fixed missing include in gib_modules.c 2001-05-25 20:31:47 +00:00
Joseph Carter c5735d2f19 A little sanity in gib's header deps. Not much granted, but it's there. 2001-05-25 16:09:14 +00:00
Adam Olsen abd7d79d6b two little bugfixes :) 2001-05-22 15:11:54 +00:00
Bill Currie eb95bcae84 move the gib language out of nq and into its own dir (hehe, libQFgib:) 2001-05-17 21:45:56 +00:00