Brief changes that i noted in netscript:

1.6.9
* Added -W, to automatically start the (non-generic) gui pulled down. 
* Added -#, to set the gui foreground (text) color to a defined hex triplet.
* Added -+, to change the length of the (non-generic) pulled down gui.
* Added reading of the $EDITOR environmental variable, which is applied to the
  -f option.
* Added -f, to use a third party editor.  to make, and use temporary/regular
  rulesets. (temporary files will be deleted after used)
* Changed the manual page.  fixed some text/etc errors, and additions.
* Fixed some minor text/physical bugs.

1.6.8
* Added reading of ~/.nsrc, to precurse any other interactive commands. (only
  applied if in interactive mode)
* Added --interactive, interactive mode.  also, is used when no arguments are
  supplied.
* Added --list, to list (ruleset) files in a defined/default direcory.
* Added $NS_PATH, which does the same as the --list command line option, in
  environment form.
* Added -K, to define alternate button labels for the gui.
* Added -Q, to use user supplied socket options.
* Added $", to send only if a specified time has passed. (in seconds)
* Added $\, to send supplied/modified data to the route host. (variable)
* Added -R, to connect to a route host.  this will passover information that
  occurs on the main socket to the defined route socket.  virtual host support
  (-q option) is included for this option.
* Added -k, to set a (non-default) port to connect to on the route host.
* Added -j, to disable routed sending of outgoing data. 
* Added -J, to disable routed sending of incoming data. 
* Added a manual page, for quick accessible information.
* Added MD5SUM file, as a checklist for validity.
* Changed a couple rulesets to comply with the version changes. (additions)
* Changed some display methods.
* Fixed minor bugs, some of which could crash netscript locally under certain
  nullified situations. (if could not access stdin, still attempted to close
  the stream, crashing the program)

1.6.7
* Added -O, to use an alternate shell to execute third party programs.
* Added -o, to omit socket reading of supplied character(s).
* Added -m, to change the current working directory of netscript.
* Added -M, to change the root directory of netscript. (superuser only, for use
  only under special circumstances)
* Added $', to change the current working directory via the ruleset.
* Changed standard reading of input to check for the tty name, instead of the
  generic /dev/tty.  it will resort to it if it fails, still.
* Changed some example rulesets to comply with the new version changes.
* Changed all related third party executions to use $SHELL.  if it exists, and
  is executable.
* Changed some display/text visualizations.
* Fixed segmentation fault introduced in the previous version, when using -u
  with a user name that doesn't exist. (null int placement, security 
  un-affected)
* Fixed some referenced subjects in netscript that do not exist anymore.

1.6.6
* Changed -u, will now apply the supplementary groups to the id change.  also,
  if no group id is specified, will apply the group id of the user id.
* Changed the ns_exit() module function to pass the type of exit, which would
  either be 0(main) or 1(branch).
* Changed the make/compile procedure, slighty.
* Added -Z.  system logging support, for when netscript is running at a syslog
  accessible level.  this will log initialization, execution of third party
  programs, reading of files, writing to files, ip/port, id changes, and exit
  notification. (only if accessible.  to disable totally, compile with the
  option -DDISABLE_SYSLOG)
* Changed the $` execution comparision variable, to be more like $=. (execution
  dump, handling wise)
* Changed minor handling of command line arguments.
* Fixed some minor bugs, mostly visualization.
* Added some error notifications, where there were just passings before.

1.6.5
* Fixed (the first real) security issue with -H, and -D.  a potential security
  issue has been dormant since the addition of these options.  under the right
  circumstances, with the use of -H/-D, it could be possible to run arbitrary
  code.  but, this is slightly probable(in remote use), due to the fact it
  would relies on a specific ruleset.  the security risk occurs when the -H/-D
  is used, and the remote host sends high value characters(ie. 0xff), or has
  the ability to make high value characters occur, and the handling of the -H
  option would, in essence, loop over.  expanding a single byte into more than
  one. (in other words, i forgot to put an 'unsigned' -- shows what a quick
  audit can find)
* Changed --hist.  now only adds to the history file, if it does not already
  exist. (exact match, saves history space)
* Added $`. (dumps executed data to the input line, to be compared in other
  rules to come)

1.6.4
* Added $;. (reverse/negative match rule, for use with input rules)
* Fixed a long existing bug that could make netscript hang under special
  circumstances. (it was never noticed until recently, because of its hard to
  (re)produce nature)
* Changed the ns_init() module function to pass the number of arguments, and
  arguments.
* Changed the ns_connect() module function to pass the ip value, and the port
  as well.
* Added -a, to allow interactive use of third party programs.
* Changed program dumping to just pass ctrl-c requests to the third party
  program, locally. (will not exit netscript if in a third party program)
* Changed -x to comply with the changed program dumping.
* Changed -e program dumping. (now using duplication method instead of popen())
* Added an example module directory. (nsansi, and nssound)
* Added -B, to send netscript to the background.
* Added -G, to change the title of the gui.
* Added -g.  GTK+ frontend to netscript, initializes when launched
  successfully. (use twice for the more generic gui)

1.6.3
* Changed support of parsing remote data, to not parse dynamic variables.
  this will remove some funcationality.  but, it is much more of a security
  risk to disclose, or use dynamic variables via remote input.
* Fixed support on some platforms. (better supported)
* Fixed some memory leak possibilities.
* Fixed minor text related bugs.
* Added the $REPEAT variable, for use with repeated rules. (both input, and
  output)

1.6.2
* Added some minor security measures, for the minimal security needed.
  (this will take effect when the uid/gid is not equal to effective uid/gid.
  limiting the functionality of netscript.  added mainly do to the new
  addition of the -u option)  also, added security measures in off-by-one
  buffer allocation possibilities.
* Fixed compatibility issue with some os/dists, OpenBSD to name one.  related
  to module support.
* Fixed a bundle of minor, and more important bugs.  mostly minor.
* Changed some designed aspects of netscript.
* Changed some compiler definitions, confliction problems.
* Added --hist.  lists, and uses data stored to the netscript history file.
  (command line usage only.  use $20/$032's to avoid issues with multi-space
  arguments, when using netscript in general)
* Added -q, virtual hosting support. ($NS_HOST environmental variable too)
* Added -I support to -b.  which means binding can be used forever instead of
  just once.  (do not know why i just had it allowing one time connections)
* Added -L for displaying the value of each line. (forces the -w option)
* Added a couple more examples. (examples/ subdir of the packaged netscript)
* Added support of /etc/services for -p. (lookup method)
* Added the -u option for setting the permission id values of netscript.
  (takes effect right after connecting in/out.  but, before taking any incoming
  data, or sending any outgoing data)

1.6.1
* Added -S, and -U for process delaying. (-S for seconds, -U for useconds.  can
  be used in conjunction with eachother)
* Changed command line option handling.  also, all argument supplied options
  now support netscript dynamic variables, and character replacement. (helps
  for internal argument supplied rulesets by using $20/$032 for multiple
  parameters, and unprintable characters)
* Added the -E option for optional pre-header to dump with. (used with -e)
* Added command line variable support. (-# options, #=0-9)
* Added dynamic variable support for input, and output. (${#}, #=0-9)
* Changed handling to support $# better. (#=0-9)
* Added $.. (for disabling other rules in the ruleset)
* Added $|. (for formatting server data)
* Added $/, $,, $[, and $]  variables. (related to server data truncation)
* Added dash support for input->output variables. (example: $1- will dump
  everything after the first argument)

1.6.0b
* Fixed a very very minor cast.

1.6.0
* Extended cleaning of warnings, more operating systems.  some still left for
  compatibility.
* Fixed general buffer compatibility.
* Changed some buffer storage methods. (non-security related)
* Changed logging format.  to support the newly added -y, and -Y.
* Added -y, and -Y to fix the output of the broken segment problem with telnet.
  (this will only change the appearance of the output, and not the handling of
  the data)
* Fixed possible bug with the $@ variable, and the reconnection option
  combined.
* Added ns_incoming_char(), and ns_incoming_raw() for module support.
* Added $^, and $: variables. (mainly, for sequence uses)

1.5.9
* Changed code to be cleaner, generally cleaned up my lazy coding. (should
  eliminate warnings)

1.5.8
* Added module support.
* Changed log time method, also avoids a bug.
* Fixed text/display errors.

1.5.7
* Fixed some bugs. (not too descriptive)

1.5.6
* Added "?" for initial send.

1.5.5
* Added $_ raw variable.
* Added -C, and -A for disabled displays.

1.5.4
* Removed -f command line argument.  no ethical purpose of it.

1.5.3
* Fixed file dump variable for zero byte(s).  (write() was hanging)
* Changed some variable names.

1.5.2
* Changed handling, and assigns.

1.5.1
* Added $= exec variable.

1.5.0
* Added $<, $>, and $+ variables.
* Fixed minor functional bug in the matching routine.

1.4.9
* Added IRIX support.

1.4.8
* Added $% display variable.

1.4.7
* Added $##### sleep/delay variable option.
* Added extended support for $!, and $@ as well.

1.4.6
* Added extended support for $~. (the alternate reason option)

1.4.5
* Added small function binding to shrink the source size.

1.4.4
* Cleaned.
* Added make, automake scripts, and examples directory.

1.4.3
* Changed standard input handling, systems disagreed with the former way.

1.4.2
* Changed $- variable, for null send situations.
* Changed +x file handling.  now uses "#?".

1.4.1
* Added $- variable.
* Fixed hex bug replacement conflicting length variable.
* Added support for SunOS.

1.4.0
* Began documenting changes.

1.3.9, and below
* Unreleased, publically.  so, changes were not documented.
