2 - parse fixed file and sort strings into tree structure
3 - printf() the structure as "simulation" of execution
6 - free malloc'ed memory after successfully executing string
9 - split one sourcefile into multiple included into main file
10 - removed debug information on parsing
13 - always check for (malloc()!=NULL) else exit(-1)
14 - use "#warning FIXME: blah" to mark bugs/missing sections/hacks
15 - introduced files BUGS and ChangeLog
18 - now the sources compile into modules
19 - start interpreting commands
22 - fixed problem that startup.o has to be the first objectfile
23 - added int *intval; to struct ScriptArg
24 - support for integers in script (bin,dec,hex)
27 - added commands.h which contains the strings of known commands
28 - added texts.h which contains the default values of some variables
31 - moved content of commands.h into execute.h and deleted commands.h :-(
34 - added support for LINUX only compilation
35 (for testing issues only - will go away soon)
36 - added preliminary code for some functions (abort,exit,transcript)
39 - changed installation dir to SYS:Utilities and metatarget to utilities
40 - added support for variable storage and restorage (untested!!!)
41 - added first test code for variable lists
44 - added support for set command
45 - fixed bug that ->parent has not been set
46 - fixed bug in dynamic variable list creation
49 - prepared main() for ReadArgs()
50 - realloc() can be used as malloc() -- shortens code ;-)
51 - added collection of arguments for _STRING ( "..." ... ) to pass
53 - fixed a bug which caused parse_script() to have an empty ScriptArg at
54 end of lists, now if RBRACK is detected the last element is deleted
55 and pointers made valid (except if it would be the one and only!!!
56 In this case ->parent->cmd has to be set to NULL as well etc.
57 (Maybe we should terminate if braces are empty?) )
58 - added missing "@" for preset variables
61 - left out previous version due to superstition ;-)
62 - fixed bug which allocated one byte too less 8-|
63 (hope this fixes previous problems...), marked those bugs as fixed
64 - symbols now may be finished with a semicolon
65 - added some cleanup routines
66 - split variable specific stuff into own object file variables.c
67 - added function prototypes to *.c
68 - added stripping of quotes in _STRING (plus freeing temporary spaces
72 - commands are now case insensitive
73 - supplied debugging code for "working" "welcome" and "complete"
74 - reduced code in variables.c
75 - supplied final code for "transcript [string|var|cmd]..."
76 - now we execute commands, too, where values should be (we always get
78 - removed obsolete testing code
81 - added demo/test script for written functions test.script_simple
82 - added "+" and "and" handling
83 - added function for stripping quotes off a string
84 ( to be more precise: strip off first and last character )
85 - installer didn't recognize negative numbers :-( Fixed.
88 - First try with RawDoFmt() -- not very successful :-(
91 - Added code for "bitand" "bitor" "bitxor" "/" "-" "or" "xor" "=" "<" "<="
92 ">" ">=" "<>" (integrated into "and" )
93 - Implemented "*" "not" "bitnot" "strlen" "select" "if"
97 - added cleanup() before each exit(-1);
98 - added support for number-strings in arithmetic functions where missing
100 - fixed bug in "select" and return (NULL|0) if n<=0 or n>number of items
101 - fixed bug in variable storage (if text == NULL )
102 - added return value for blocks
103 - implemented "while" "until"
106 - RawDoFmt() works now!
107 - added "shiftleft" and "shiftrght" to "and"
109 - Optimized item to integer conversion
112 - added error.h with structs/defines on error Handling
113 - added procedure.c with functions on user-defined procedures
114 - added blank template for "_PROCEDURE" keyword:
115 procedures are parsed before script execution,
116 redefinition of procedures is not allowed
117 - fixed bug where I used sizeof(string) instead of strlen(string)
118 - added missing commands/tags as empty templates to execute_script()
119 - fixed bug in RawDoFmt() with ints ;-)
120 - extended test.script_simple
123 - added dynamic size support to RawDoFmt()
124 ( needed quite some hacks :-( and works only up to 256k ;-)
127 - added gui.c with functions for the gui
128 - added error handling for parsing file
129 - undefined variables now return (NULL|0) as value
130 - added "database" command -- needs computation of return values
133 - added text-gui for user-level and abort requester
134 - added text-gui for "working" "complete" "abort"
135 - added function which collects all following arguments after executing
136 cmd and converts intval to strings if arg is NULL ( you can specify a
137 separating character )
138 "abort" "cat" "exit" "welcome" "working" make use of this function
139 - reinitialized (freed/set to Null) return values collectively
142 - added "substr" "user" "debug"
143 - started work on parameters
144 . get_parameters() supports boolean parameters
145 . "exit" understands (quiet)
146 . string-only parameters get their strings read in
147 . all other parameters get their values read in
150 - (global) parameter "options" is ready "delopts" started
151 - fixed bug in option's string-collection ( didn't save strings in array )
152 - added text-gui for "asknumber"
153 - added macro for ParameterList access
154 - moved array with command-strings to new file cmdlist.h
157 - use strdup() for string duplication now ;-)
158 - set_procedure() has been called allocating space for a string
160 - added text-gui for "askstring" "askbool"
161 - "ask*" is only performed if @user-level > NOVICE
162 - adjusted default definition of RANGE according to docs
165 - added support for "onerror" command
166 - execute onerror on user-abort
167 - call traperr() before exiting after error
168 - fixed behaviour of (welcome ...) and user-level requester
169 - added text-gui for "askchoice"
170 ( prepared for "askoptions" "askdir" "askfile" "askdisk" )
171 - fixed a bug in parse_file() which was introduced in 0027
172 ( didn't save procname )
173 - removed error.h again...
174 - added support for "trap" command
175 - main allocated one ScriptArg too much for the program list,
176 we now remove it after parsing the file
179 - added more comments
180 - added recognition of Installer-command names in set_procedure()
181 - "while" and "until" now require a command-block to execute
182 However, this is only checked at run-time
183 - changed %d to %ld and (int) to (long int) where appropriate
184 - removed BUG00002, BUG00003
185 - started intuition GUI: added functions to open and close window
188 - added and implemented "symbolset" "symbolval"
189 - added file "documentation" which contains user's guide = description of
191 - added "setposition" "resident" parameters and "iconinfo" function
192 - Don't use two lists for variables anymore
195 - added "setposition" to code of "range" (two ints) and simplified code
196 - made error trapping more consistent
197 - fixed bugs for empty strings
198 ( e.g. "(cat)" produces empty string "" now )
199 - started converting '\'-sequences in parse
200 - fixed some minor bugs
201 - "procedure" now supports arguments
202 - added outofmem(void*) function to check for failed malloc
205 - added preliminary Intuition GUI for "working"
206 - added function which breaks string at '\n' into array of strings
207 - added preliminary hybrid version of "message", "abort" and "exit"
208 - first working version of "run"
209 - changed test.script to work with "run"
210 ( pipes: '>' etc. don't work and AROS has no 'info' )
211 - "ask[bool|number|string|choice]" now print infos to log file
214 - added parameter support to "run"
215 - added gui-function request_confirm():
216 shows(==needs!) (prompt...) and (help...) and is only executed if
217 @user-level >= minuser
218 - changed behaviour of "askchoice"
219 ( tests with Installer 43.3 showed that no bitmask is used )
222 - added function "startup"
223 - "if" returns empty string for empty FALSE case, if TRUE case is a string
226 - stripped LINUX stuff
229 - working out IntuitionGUI: function for generating gadget borders
230 - first test in askbool
231 - code for cleaning up ParameterLists
232 - it is now legal to mask option-parameters with "if"
233 (e.g. help) with (if ... (help ...))
236 - procedures are now linked in at run-time, parsing is done before executing,
237 "(procedure ...)" key puts the function into the active list
238 replaces existing function
241 - converted libc filehandling to AmigaDOS filehandling
242 ( ie. fread() -> Read() )
243 - commented all functions
246 - procedures now can have multiple commands as body
247 (ie. not necessarily a block)
248 - support more ReadArgs() parameters
250 0040 INTERMEDIATE VERSION ONLY
251 - more intuition gui tries
254 - some first Workbench init code
255 - yet more intuition gui
256 - preparation for pretend-to-install
257 - added function for adding quotes to a string
258 - added misc.c for useful functions (like adding or stripping quotes)
259 - added MXGadget for askchoice
260 - added code for Asl FileRequester
261 - added Abort,Help,Skip gadgets in some places
264 - Abort,Help,Skip,Proceed Gadgets are always visible
265 - Added item "fromcli" to struct Preferences
266 - added function for freeing an array of strings
267 - added GUI for Main Window (Welcome and UserLevel select)
270 - added function setgadgetdisable() to enable/disable stdglist gadgets
271 - more GUI enhancements
272 - rewrite of misc/strtostrs(), needs less realloc()
273 - moved traperr() to execute.c
274 - added display_text() in gui.c to show up some text in a requester with
278 - added pretend-to-install request gui
279 - added gui for request_confirm(), lacks gui for help text
280 - implemented (database "graphics-mem") and (database "total-mem")
281 - added variable doing_abort to work around the "abort in abort" BUG00003
284 - changed PrintIText() to Move(),Text()
285 - activated global gadgets for show_message()
286 - imported code from AROS/workbench/utilities/More/more.c to display
287 scrollable texts in a new window (used for help windows).
290 - added misc.h with function prototypes of misc.c
291 - added function collatestrings() to misc.c which collates lines of strings
292 - added gui.h as API description for future GUIs
293 - scaled size of mxgadgets
296 - added gui for request_string(), lacks gui for help text
297 - moved help texts to texts.h
298 - added gui for request_number() (clone from request_string())
299 - added macros ExecuteCommand() and ExecuteNextCommand() in execute.c
300 - new mmakefile.src by Iain Templeton (iaint@aros.org) for the
304 - execute destructors of some gui-functions and call abort_install()
305 with pointer to this destructor (or NULL if not needed)
306 - small changes to request_number (integer gadget)
307 - implemented "rename"
308 - added a GUI function user_confirm(char *) to ask user to proceed or skip
309 - added some more preset variables/help texts
312 - use (preset) @askstring variable instead of fixed ASKSTRING_HELP,
313 same for asknumber and askchoice
314 - partially implemented (delete). Need to implement (optional) and (delopts)
315 - gui for (askchoice)
318 - fixed crash of askchoice gui
321 - implemented a basic (makedir), no (infos) support.
322 - moved version string from main.c to version.h
323 - implemented a basic (execute)
326 - implemented (fileonly) and (pathonly)
327 - suppressed warnings by adding casts to (IPTR) and setting initial values
329 - implemented (earlier)
330 - implemented (getdiskspace)
333 - use StrDup() instead of strdup()
334 malloc(), calloc(), free() -> AllocVec(), FreeVec()
335 implemented ReAllocVec() as a replacement for realloc() in
339 - implemented (getenv)
340 - Updated Copyright string to 2003
341 - IconBase is now opened automatically
344 - small fix to make it run from Workbench again
345 - added sources for test.script.info
346 - removed obsolete parts from gui
349 - added Locale support
352 - removed opening of Libraries as this is now done through libautoinit
353 - moved prototypes of .c files to .h files
356 - started a Zune/MUI GUI gui_zune.c
359 - implemented for Zune:
365 * Help Requester (makes more.[ch] obsolete for this GUI)
367 - switched to Zune as default
368 - removed user_confirm() as it is not used
371 - implemented (getsize) via POSIX stat()
372 - updated path of test.script
373 - implemented (makeassign)
374 - implemented (getassign)
375 - implemented (getdevice)
376 - implemented (tackon)
377 - implemented (expandpath)
380 - use malloc/calloc/free/realloc instead of system memory calls