0001
- parse fixed file and sort strings into tree structure
- printf() the structure as "simulation" of execution

0002
- free malloc'ed memory after successfully executing string

0003
- split one sourcefile into multiple included into main file
- removed debug information on parsing

0004
- always check for (malloc()!=NULL) else exit(-1)
- use "#warning FIXME: blah" to mark bugs/missing sections/hacks
- introduced files BUGS and ChangeLog

0005
- now the sources compile into modules
- start interpreting commands

0006
- fixed problem that startup.o has to be the first objectfile
- added int *intval; to struct ScriptArg
- support for integers in script (bin,dec,hex)

0007
- added commands.h which contains the strings of known commands
- added texts.h which contains the default values of some variables

0008
- moved content of commands.h into execute.h and deleted commands.h :-(

0009
- added support for LINUX only compilation
  (for testing issues only - will go away soon)
- added preliminary code for some functions (abort,exit,transcript)

0010
- changed installation dir to SYS:Utilities and metatarget to utilities
- added support for variable storage and restorage (untested!!!)
- added first test code for variable lists

0011
- added support for set command
- fixed bug that ->parent has not been set
- fixed bug in dynamic variable list creation

0012
- prepared main() for ReadArgs()
- realloc() can be used as malloc() -- shortens code ;-)
- added collection of arguments for _STRING ( "..." ... ) to pass
  to RawDoFmt()
- fixed a bug which caused parse_script() to have an empty ScriptArg at
  end of lists, now if RBRACK is detected the last element is deleted
  and pointers made valid (except if it would be the one and only!!!
  In this case ->parent->cmd has to be set to NULL as well etc.
  (Maybe we should terminate if braces are empty?) )
- added missing "@" for preset variables

0014
- left out previous version due to superstition ;-)
- fixed bug which allocated one byte too less 8-|
  (hope this fixes previous problems...), marked those bugs as fixed
- symbols now may be finished with a semicolon
- added some cleanup routines
- split variable specific stuff into own object file variables.c
- added function prototypes to *.c
- added stripping of quotes in _STRING (plus freeing temporary spaces
  for stripped strings)

0015
- commands are now case insensitive
- supplied debugging code for "working" "welcome" and "complete"
- reduced code in variables.c
- supplied final code for "transcript [string|var|cmd]..."
- now we execute commands, too, where values should be (we always get
  return values)
- removed obsolete testing code

0016
- added demo/test script for written functions test.script_simple
- added "+" and "and" handling
- added function for stripping quotes off a string
  ( to be more precise: strip off first and last character )
- installer didn't recognize negative numbers :-( Fixed.

0017
- First try with RawDoFmt() -- not very successful :-(

0018
- Added code for "bitand" "bitor" "bitxor" "/" "-" "or" "xor" "=" "<" "<="
  ">" ">=" "<>" (integrated into "and" )
- Implemented "*" "not" "bitnot" "strlen" "select" "if"
- minor optimizations

0019
- added cleanup() before each exit(-1);
- added support for number-strings in arithmetic functions where missing
- implemented "cat"
- fixed bug in "select" and return (NULL|0) if n<=0 or n>number of items
- fixed bug in variable storage (if text == NULL )
- added return value for blocks
- implemented "while" "until"

0020
- RawDoFmt() works now!
- added "shiftleft" and "shiftrght" to "and"
- Implemented "in"
- Optimized item to integer conversion

0021
- added error.h with structs/defines on error Handling
- added procedure.c with functions on user-defined procedures
- added blank template for "_PROCEDURE" keyword:
  procedures are parsed before script execution,
  redefinition of procedures is not allowed
- fixed bug where I used sizeof(string) instead of strlen(string)
- added missing commands/tags as empty templates to execute_script()
- fixed bug in RawDoFmt() with ints ;-)
- extended test.script_simple

0022
- added dynamic size support to RawDoFmt()
  ( needed quite some hacks :-( and works only up to 256k ;-)

0023
- added gui.c with functions for the gui
- added error handling for parsing file
- undefined variables now return (NULL|0) as value
- added "database" command -- needs computation of return values

0024
- added text-gui for user-level and abort requester
- added text-gui for "working" "complete" "abort"
- added function which collects all following arguments after executing
  cmd and converts intval to strings if arg is NULL ( you can specify a
  separating character )
  "abort" "cat" "exit" "welcome" "working" make use of this function
- reinitialized (freed/set to Null) return values collectively

0025
- added "substr" "user" "debug"
- started work on parameters
  . get_parameters() supports boolean parameters
  . "exit" understands (quiet)
  . string-only parameters get their strings read in
  . all other parameters get their values read in

0026
- (global) parameter "options" is ready "delopts" started
- fixed bug in option's string-collection ( didn't save strings in array )
- added text-gui for "asknumber"
- added macro for ParameterList access
- moved array with command-strings to new file cmdlist.h

0027
- use strdup() for string duplication now ;-)
- set_procedure() has been called allocating space for a string
  which is unnecessary
- added text-gui for "askstring" "askbool"
- "ask*" is only performed if @user-level > NOVICE
- adjusted default definition of RANGE according to docs

0028
- added support for "onerror" command
- execute onerror on user-abort
- call traperr() before exiting after error
- fixed behaviour of (welcome ...) and user-level requester
- added text-gui for "askchoice"
  ( prepared for "askoptions" "askdir" "askfile" "askdisk" )
- fixed a bug in parse_file() which was introduced in 0027
  ( didn't save procname )
- removed error.h again...
- added support for "trap" command
- main allocated one ScriptArg too much for the program list,
  we now remove it after parsing the file

0029
- added more comments
- added recognition of Installer-command names in set_procedure()
- "while" and "until" now require a command-block to execute
  However, this is only checked at run-time
- changed %d to %ld and (int) to (long int) where appropriate
- removed BUG00002, BUG00003
- started intuition GUI: added functions to open and close window

0030
- added and implemented "symbolset" "symbolval"
- added file "documentation" which contains user's guide = description of
  functions.
- added "setposition" "resident" parameters and "iconinfo" function
- Don't use two lists for variables anymore

0031
- added "setposition" to code of "range" (two ints) and simplified code
- made error trapping more consistent
- fixed bugs for empty strings
  ( e.g. "(cat)" produces empty string "" now )
- started converting '\'-sequences in parse
- fixed some minor bugs
- "procedure" now supports arguments
- added outofmem(void*) function to check for failed malloc

0032
- added preliminary Intuition GUI for "working"
- added function which breaks string at '\n' into array of strings
- added preliminary hybrid version of "message", "abort" and "exit"
- first working version of "run"
- changed test.script to work with "run"
  ( pipes: '>' etc. don't work and AROS has no 'info' )
- "ask[bool|number|string|choice]" now print infos to log file

0033
- added parameter support to "run"
- added gui-function request_confirm():
  shows(==needs!) (prompt...) and (help...) and is only executed if
  @user-level >= minuser
- changed behaviour of "askchoice"
  ( tests with Installer 43.3 showed that no bitmask is used )

0034
- added function "startup"
- "if" returns empty string for empty FALSE case, if TRUE case is a string

0035
- stripped LINUX stuff

0036
- working out IntuitionGUI: function for generating gadget borders
- first test in askbool
- code for cleaning up ParameterLists
- it is now legal to mask option-parameters with "if"
  (e.g. help) with (if ... (help ...))

0037
- procedures are now linked in at run-time, parsing is done before executing,
  "(procedure ...)" key puts the function into the active list
  replaces existing function

0038
- converted libc filehandling to AmigaDOS filehandling
  ( ie. fread() -> Read() )
- commented all functions

0039
- procedures now can have multiple commands as body
  (ie. not necessarily a block)
- support more ReadArgs() parameters

0040 INTERMEDIATE VERSION ONLY
- more intuition gui tries

0041
- some first Workbench init code
- yet more intuition gui
- preparation for pretend-to-install
- added function for adding quotes to a string
- added misc.c for useful functions (like adding or stripping quotes)
- added MXGadget for askchoice
- added code for Asl FileRequester
- added Abort,Help,Skip gadgets in some places

0042
- Abort,Help,Skip,Proceed Gadgets are always visible
- Added item "fromcli" to struct Preferences
- added function for freeing an array of strings
- added GUI for Main Window (Welcome and UserLevel select)

0043
- added function setgadgetdisable() to enable/disable stdglist gadgets
- more GUI enhancements
- rewrite of misc/strtostrs(), needs less realloc()
- moved traperr() to execute.c
- added display_text() in gui.c to show up some text in a requester with
  "Okay" only button.

0044
- added pretend-to-install request gui
- added gui for request_confirm(), lacks gui for help text
- implemented (database "graphics-mem") and (database "total-mem")
- added variable doing_abort to work around the "abort in abort" BUG00003

0045
- changed PrintIText() to Move(),Text()
- activated global gadgets for show_message()
- imported code from AROS/workbench/utilities/More/more.c to display
  scrollable texts in a new window (used for help windows).

0046
- added misc.h with function prototypes of misc.c
- added function collatestrings() to misc.c which collates lines of strings
- added gui.h as API description for future GUIs
- scaled size of mxgadgets

0047
- added gui for request_string(), lacks gui for help text
- moved help texts to texts.h
- added gui for request_number() (clone from request_string())
- added macros ExecuteCommand() and ExecuteNextCommand() in execute.c
- new mmakefile.src by Iain Templeton (iaint@aros.org) for the
  New Build Process

0048
- execute destructors of some gui-functions and call abort_install()
  with pointer to this destructor (or NULL if not needed)
- small changes to request_number (integer gadget)
- implemented "rename"
- added a GUI function user_confirm(char *) to ask user to proceed or skip
- added some more preset variables/help texts

0049
- use (preset) @askstring variable instead of fixed ASKSTRING_HELP,
  same for asknumber and askchoice
- partially implemented (delete). Need to implement (optional) and (delopts)
- gui for (askchoice)

0050
- fixed crash of askchoice gui

0051
- implemented a basic (makedir), no (infos) support.
- moved version string from main.c to version.h
- implemented a basic (execute)

0052
- implemented (fileonly) and (pathonly)
- suppressed warnings by adding casts to (IPTR) and setting initial values
  for variables
- implemented (earlier)
- implemented (getdiskspace)

0053
- use StrDup() instead of strdup()
  malloc(), calloc(), free() -> AllocVec(), FreeVec()
  implemented ReAllocVec() as a replacement for realloc() in
  AROS/compiler/alib

0054
- implemented (getenv)
- Updated Copyright string to 2003
- IconBase is now opened automatically

0055
- small fix to make it run from Workbench again
- added sources for test.script.info
- removed obsolete parts from gui

0056
- added Locale support

0057
- removed opening of Libraries as this is now done through libautoinit
- moved prototypes of .c files to .h files

0058
- started a Zune/MUI GUI gui_zune.c

0059
- implemented for Zune:
  * request_userlevel
  * request_confirm
  * show_message
  * request_bool
  * request_choice
  * Help Requester (makes more.[ch] obsolete for this GUI)
  * request_options
- switched to Zune as default
- removed user_confirm() as it is not used

0060
- implemented (getsize) via POSIX stat()
- updated path of test.script
- implemented (makeassign)
- implemented (getassign)
- implemented (getdevice)
- implemented (tackon)
- implemented (expandpath)

0061
- use malloc/calloc/free/realloc instead of system memory calls
