// utf-8

vipsi completion file

2003-06-20	Stream:		rework, store/restore tty settings after ^D
						encoding conversion for tty
						BS over Umlaut
2003-08-03	<all>		use of UCS4String lib (work in progress!)
			VScript:	Variable names with non-ascii characters did freeze
						info "sort" et.al. did freeze
2003-08-04	Value:		operator # nur für: Text # Text
						operator ## für: Liste ## Liste
						type conversion with Var::ToNumber() now converts void to 0.0
						new type converters Var::ToList() and Var::ToString()
2003-08-07	VScript:	automatic printing of result: quote strings, disass procs
			Value:		string(proc) => disass; string(text) => leave as is
2003-08-08	test.vs:	list concatenation tests adapted from old '#' to new '##'
			Var:		list#text and text#list now expand the operation on the list
			os_util.cp	SysLoad() for Linux
2003-08-09	execute.cp	ReadDirectory(): mounted devices for all (?) Unixes (some bits still missing)
2003-08-13	VScript		shell commands: now executed shell command is stored in VScript.proc->Var(isProc)
						now using UCS4String for strings in token stream.
						Value() creates 'shared' substrings from proc string for string literals
2003-08-14	execute.cp	changed ExecuteScript() to Execute(Var*proc,Var*&result,uchar*ip=NULL)
						now VScript.proc is always set during execution; initially to tokenized shell line or script
						tIDF now using UCS4String
						now rejecting idf replacement operator @ in argument list of procedures
			MOD: String tokenname[]
			MOD: count(proc_var)  =>  proc size in bytes
			IMP: convert text_var from utf-8
2003-08-15	MOD: use UCS4String in TokenizeScript()
			MOD: use UCS4String library: COMPLETE!
			DOC: updated documentation for 0.8.0
			BUG: "Ein-/Ausgabe ist möglich" -> abort  ((exception wg. non-blocking))
			BUG: io started hogging the cpu after vipsi ran for a while  ((wg. non-blocking))
			BUG: freopen() in main() doesn't work! (erm.. did work. but creating new files was buggy...)
			BUG: Value(): tEVAL: führt proc aus ohne VScript.proc zu setzen!
2003-08-16	MOD: new procs := substring of enclosing proc
			NEW: ln -s vipsi calc; calc "23*44-3"			direkt-ausführung
			MOD: shell: suppress printing of results after assignments
			NEW: value   = exec( "script", arg1, ... )
			NEW: str_val = sys ( "cmd", str_arg1, ... )
2003-08-17	NEW: tokenize bis def. target code size => error position indication
2003-08-18	NEW: proper error position indication in shell
			NEW: history function in shell
			IMP: Terminal-Emulation: improved VT100 usage in editor
2003-08-19	DOC: sys(), exec(), calc mode, bugs
2003-08-21	MOD: eliminated void data type. uninitialized variables default to 0.0
2003-08-23	MOD: operator "<<" and ">>" now take any float number for left-side argument
			MOD: shell: don't store empty input lines in history
			BUG: value(): trap calling of non-procs
			BUG: value(): fixed procs returning no value
2003-08-24	MOD: nach fehler in shell cursor auf fehler positionieren
			NEW: error position indication in script, eval, calc, include, exec
			NEW: list[..to..] sublist
2003-08-25	NEW: operators: >>= <<= &&= ||= ##= &= |= ^=
			MOD: utf8 erzwingen mit ctrl seq. (XTerm)
<-- release 0.8.0 -->
2003-08-31	MOD: minor tweaks to make it compile on MacOS X
<-- release 0.8.1 -->
2003-09-01	MOD: error message in cgi scripts
2003-09-02	MOD: print nl and "byebye" after ^d
			BUG: «info "…"» -> quick syntax -> multi-char operators were split with spaces
2003-09-03	BUG: open/openout and new file|dir failed because FullPath() returned ENOENT
			NEW: ./vipsi self-installer version 0.1 ;-)
			BUG: fixed failed detection for cgi mode when no arguments were passed to script
<-- release 0.8.2 -->
2003-09-05	MOD: optional 3rd parameter to find() and rfind()
			DEL: removed functions tfile() and dfile(); functionality now covered by split()
			NEW: text=split(text[,text]); split textvar[,text]
			NEW: file "name" = binarystring; file "name" #= binarystring
			MOD: convert to/from UCS1/2/4: now packing/unpacking 1/2/4 bytes to/from 1 char
2003-09-07	NEW: preferences for put, get and error text attributes
			IMP: implemented (again) convert text_var|list_var to|from 8bitcharset_idf
			NEW: function convert:  text|list = convert(text|list to|from idf)
2003-09-08	MOD: conversion of lists to text: include names => { a=22, b=33, c=proc(){return a+b} }
			MOD: colorize all output to tty stdin/out/err (attributes customizable via prefs)
2003-09-09	BUG: swap: swap a,a  =>  is a nop, fixed error "must not contain each other"
			MOD: swap: swap values only, don't swap names
			BUG: include: filename and result cell shared same Var => core dump when result cell was written to
			MOD: include: now also as function: included file may return a result
			MOD: exec: now also as instruction:  exec filename, arg1, ...
2003-09-10	MOD: !!!!! renamed "exec" to "call"  ((exec will be used for pipe-connected asynchr. execs))
			MOD: sys: also instruction
			MOD: eval: also instruction
2003-09-13	MOD: added "cursor keys in application mode" to line editor
2003-09-15	MOD: dup2(stdout,stderr) if current script is run as cgi => see error messages in cgi output
			MOD: reading prefs in all run modes
			MOD: errors in procs: error message includes stack trace
			NEW: instruction wait(delay)
2003-09-20	BUG: String::_move(String&) broke linkage if string had no text sharing neighbours => crash later
2003-09-21	BUG: min(), max() with 3 or more arguments
			MOD: listing of variables with names: words starting with '_' need no @"_..." circumscription
			MOD: swap: back to old behaviour ((swap data AND names))
			MOD: midstr(string,start): only 2 args => up to string end
			BUG: dir "..." aborts with error if it encounters a broken link in the directory
			BUG: FullPath() does not distinguish between "any path component" and "last path component" not found
2003-09-27	BUG: in GetEncodingFromName() and String::ConvertedFrom()  => affected: convert to|from
			IMP: FreezeString(), MeltString(): change to UCS4String
			MOD: String::ConvertedTo(): replace not representable characters with '?'
			BUG: Stream::PutString(): bogus handling of conversion to ucs2 and ucs4
			BUG: Var::MinVar() and Var::MaxVar(): handling of NULL in list().array
			MOD: min, max, >, <, >=, <=: now set error if different data types are compared
2003-09-28	MOD: List: assign named list items: var a = { a=1, b=2, @wood.pecker[to 3]="foo", @"%%%"=66 }
			MOD: got rid of special handling of assignments in Execute()  (again)
			MOD: print automagic result after modify-and-assign operators  (again)
			IMP: operator || and &&  --> pruning
			IMP: operator ?:  --> pruning
<-- release 0.8.3 -->








			
