Ragnvald Maartmann-Moe IV
2211f6fb1a
Codingstyle cleanup.
2007-11-05 11:32:15 +00:00
Bill Currie
ce2ba56c47
gcc 4.2 clean
2007-05-31 05:58:33 +00:00
Bill Currie
ff132bb536
64bit windows patch from phrosty
2007-04-04 07:48:14 +00:00
Bill Currie
81a57bb3fa
patch from phrosty for vc2005 support. includes fixes for a bunch of gcc-isms that crept in over the years.
2007-03-22 23:20:57 +00:00
Bill Currie
99c0954b47
the big dso visibility patch :). Sure, we have to have unique names for static builds, but with controlled visibitly we should get faster program loads (although this isn't C++, so it's not as bad) and complex plugins are cleaner.
2007-03-10 12:00:59 +00:00
Bill Currie
7d2784e1bc
whitespace
2006-07-23 01:34:14 +00:00
Bill Currie
3fb03fc2be
hah, should have been using __attribute__((used)) all that time (rather
...
than __attribute__((unused))). fixes the missing console in -x11
2005-08-04 15:27:09 +00:00
Bill Currie
501180aaac
gcc-4.0 fixes. even found some bugs :) (names /not/ mangled this time)
2005-06-08 06:35:48 +00:00
Bill Currie
0cbfc6f801
plug a leak
2005-05-07 07:38:04 +00:00
Bill Currie
b2a6a20426
avoid a buffer underflow
2005-03-24 15:00:37 +00:00
Bill Currie
ca46503607
add -Wsign-compare (default for -Wall only in C++) and fix up the warnings
2004-07-13 19:14:01 +00:00
Brian Koropoff
8bbd7bc13a
For some reason, using static nested function as callback = segfault.
...
Fixed.
2004-04-09 18:18:19 +00:00
Bill Currie
08b9a328fb
don't know why I thought gib depended on console...
2004-01-21 04:49:28 +00:00
Bill Currie
77b2942982
several libs can now get built as dlls in windows: console, gamecode,
...
gamecode_builtins, gib, image, modules, object, ruamoko and util.
2004-01-19 07:47:41 +00:00
Bill Currie
2a399cc4b4
Sys_PathType has been unnecessary for a while so nuke it
2004-01-13 21:30:13 +00:00
Brian Koropoff
37a64e59ab
Change some error names, mark a few things static that should be. Instead
...
of using a colon to specify a parent class in a GIB class definition,
"extends" is now used. If no parent class is specified, it now defaults to
Object.
2003-11-29 02:01:31 +00:00
Brian Koropoff
f4c174184d
Add support for named arguments in GIB functions and methods, fix a few
...
bugs, allow subclasses of classes written in GIB to access the same set
of instance variables.
2003-10-19 00:51:47 +00:00
Brian Koropoff
ad61e0684c
Make GIB_Reply an actual function, store object handles as a string, add
...
the ObjectHash class.
2003-09-21 00:30:47 +00:00
Brian Koropoff
362d58fd95
Made reference counting of objects more sane. If a message is sent by an
...
object, the sending object is included in the message. This is available
in GIB-scripted methods as the local variable "sender", which will be 0
if the sender was not an object.
2003-09-11 08:51:44 +00:00
Brian Koropoff
687a0845b6
Introducing the GIB Object System (TM). This breaks scriptable HUD for now
...
and probably has enough bugs to leave the Orkin man scratching his head,
but it works and allows you to do neat things like write classes in GIB
(amazing!) and subclass builtin classes (which are Object and Thread at the
moment, Hash should be coming soon as a replacement for stem and leaf
variables).
2003-09-11 06:03:13 +00:00
Brian Koropoff
b7d076feab
Add support for run-time regex options (REG_NOTBOL and REG_NOTEOL),
...
and more text transformation functions.
2003-07-15 21:40:37 +00:00
Brian Koropoff
1f6acdb0cc
Make file::delete and file::move use QFS functions.
2003-05-25 05:42:01 +00:00
Bill Currie
c2c3a62956
nuke Qexpand_squiggle. instead, expand ~ to $HOME on qfs initialization and
...
cache the value.
don't call Qopen directly in the engine. instead call QFS_Open (generic) or
QFS_WOpen (write only, zip flag).
rework QFS_NextFilename to use a dstring (avoiding a potential buffer
overflow), support 10000 files and work from the top-level fs_userpath
directory. adjust QFS_WriteFile and QFS_WriteBuffers etc to suit.
make sw32 screenshots actually get written.
hopefully everything gets written to the right places :)
2003-05-23 17:17:01 +00:00
Brian Koropoff
c3d18bd53a
Make file::read and file::write use the new QFS functions. This allows
...
reading files out of paks from GIB. file::find still needs to be updated
(and renamed).
2003-05-22 02:32:38 +00:00
Brian Koropoff
fad902f0bf
Fixed a thinko that was causing events not to run under certain
...
circumstances.
2003-05-17 17:36:10 +00:00
Brian Koropoff
ff5ad2ee1c
Added text::white and text::brown builtins to produce text of specific
...
colors.
2003-05-16 07:24:58 +00:00
Brian Koropoff
6eaa5518a4
Nuke some dprintfs
2003-05-15 22:39:04 +00:00
Brian Koropoff
bf675e793e
Fixed a few GIB bugs, added the chomp builtin.
2003-05-14 21:13:41 +00:00
Bill Currie
eb099ae0d3
make qf gcc 3.3 clean
2003-04-17 00:01:48 +00:00
Brian Koropoff
11e2f0d16a
Added a generic interface for using handles in GIB and made GIB threads
...
use it.
2003-04-14 01:17:55 +00:00
Brian Koropoff
e707e9bb89
Moved gib_*.h into include/ and moved the necessary declarations and struct
...
definitions to QF/gib.h to interface with libQFgib.
2003-04-13 22:07:58 +00:00
Brian Koropoff
3b703db4d4
Added the beginnings of an interface between Ruamoko and GIB. Although the
...
API is by no means finalized, it's now possible to write GIB builtins in
Ruamoko that can take arguments and return values to GIB.
2003-04-13 20:43:52 +00:00
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