Newer
Older
twander / WHATSNEW.txt
WHAT'S NEW

twander 3.128  (3-xx-2003):
===========================

BUG FIXES

- Fixed a problem which caused User-Defined Commands to be processed
  with the CMDSHELL option when such commands were re-invoked via the
  Command History.  The program now properly applies CMDSHELL
  processing (if enabled) *only* to manually entered commands.

- Previous version allowed FONTDECR to set font sizes to 0 or even
  negative values.  Feature is now checked to make sure a font size is
  never decremented below 1.


CHANGES

- Nothing pre-selected now when entering a new directory. Previously,
  the first item ("..") was always selected.  This prevents accidental
  navigation on slow/unresponsive systems or X-Windows connections
  where you can type faster than the screen can update.

- The MAXDIR, MAXDIRBUF, MAXHIST, and MAXHISTBUF options have been
  removed.  These are replaced by the new MAXMENU and MAXMENUBUF
  options which control the depth and display of *all* menus
  with dynamic content.

- User-Defined Variables, Directory Shortcuts, and Command Definitions
  can now be redefined within the same Configuration File.  This was
  done to better exploit the new conditional operators and the new
  ".include" directive in the configuration language.  Now you
  can maintain a "standard" configuration which everyone on the system 
  can ".include", but anything in that configuration can be redefined
  locally with your own configuration statements.

- A blank Right Hand Side is now permitted for all Option Statements.
  It means that the statement in question is simply ignored.  This was
  done to make Option Statements consistent with Directory Shortcut
  and User-Defined Variable Statements, both of which allow a blank
  RHS.

- Because the RHS of a String Option can now be blank, the ""
  construct is no longer necessary to disable CMDSHELL.  An entry in
  the form 'CMDSHELL = ' will do.  

  VERY IMPORTANT: if for some reason you have a line like 'CMDSHELL =
  ""' in your Configuration File, remove it!  Otherwise a pair of
  double-quotes will be prepended to every RUNCMD you issue - almost
  certainly not what you want.

- The "escape" character to escape (defeat) CMDSHELL processing has
  been changed from \ to ".  This was done for two reasons.
  First, the backslash character may occasionally be necessary to
  escape the first letter of a command string.  More importantly, the
  " is used to escape for the new Wildcard feature.  CMDSHELL was
  thus changed so both features which permit "escapes" would use the
  same character for consistency.

- The Free Space and Total Space of each drive in Drive List View
  are now shown in separate columns to make sorting order clearer.

- The FreeBSD port Makefile has been cleaned up and updated.


NEW FEATURES

- Wildcard-Based Selection

  It is now possible to select items using a user-specified wildcard
  with the SELWILD feature. (default: Control-\) This feature makes
  the full power of Python regular expressions available for selecting
  the items desired.  You may enter any literal text *or any
  legitimate Python regular expression* in the SELWILD dialog and all
  lines with matching expressions will be selected.  (Note that the
  "wildcards" used here are *not* the same thing as the standard Unix
  shell wildcard "globbing" used for naming files.)  For example, if
  you enter: \.exe  all files or directories which have the string
  ".exe" somewhere on their display line will be selected.  SELWILD
  will never include ".." in any wildcard-based selection even if
  that entry matches the regular expression.

  By default, SELWILD will select an entry when your regular
  expression matches *anything on the displayed line*.  This allows
  you to make selections based on any visible column of information.
  Of course, if you have details turned off, the check for matching
  will be done only against the file or directory name (since that's
  all that is visible).  

  This "match anywhere on the line" semantic is possible because
  SELWILD automatically massages the regular expression you provide to
  make any match on the line true.  There may be times when you want
  to provide very specific regular expression definitions which seek a
  match at specific locations.  In that case, you can prevent SELWILD
  from fiddling with your regular expression, by beginning it with the
  " character.  SELWILD understands this to mean that your regular
  expression is to be treated literally without modification. (It only
  throws away this leading " escape character.)

  Because regular expressions can get complicated and tedious to type
  in, any such expression you use is saved in a history available via
  the Wildcard Menu.  The menu can be invoked by clicking on its
  button, pressing Alt-w, or Alt-Control-Right-Mouse-Button.  (Note
  that on Win32 you *must* press Alt then Control then Right-Mouse-Button
  for this to work.  Win32 appears to care deeply about keystroke order.)

  You can also preload that menu with commonly used wildcards by
  placing multiple statements like this in your Configuration File:

          WILDCARD = some-regular-expression

  These will appear in the Wildcard Menu in the order they were
  defined.  Bear in mind that only the first MAXMENU number of items
  will actually appear in the Wildcard Menu.  Again, SELWILD will
  check the first character of your regular expression and "escape" it
  if that character is ".

  There is a new debug bit which will display the Wildcard stack as it
  changes.

- Advanced Sorting Options

  You can now sort by any of the detail columns *whether or not details
  are currently displayed*. Shift-F1 sorts by the leftmost column,
  Shift-F2 sorts by the second from left column, and so forth.
  Shift-F10 selects no sorting which means items will be displayed
  in the order they are reported by the operating system.  Shift-F11
  reverses the sort order, and Shift-F12 toggles whether or not
  directories and files should be separated when sorting and displaying.
  These sort options are also available via a new Sort Menu which
  can be opened by clicking on its menu button or pressing Alt-s.
  There is no mouse shortcut for sorting options.

  The current sort parameters are displayed on the Titlebar and
  the name of the sort key field is automatically adjusted 
  depending on whether you are in Normal or Drive List View.

  You can set your desired default sorting order via three new
  options in the Configuration File.

    Option          Default       Possible Values

    ---------------------------------------------

    SORTBYFIELD     Name          None, Permissions, Links,
                                  Owner, Group, Length,
                                  Time, Name

    SORTREVERSE     False         True, False

    SORTSEPARATE    True          True, False


- Conditional Processing Of Configuration File Statements

  It is now possible to include or exclude statements in the
  Configuration File based on certain conditions.  This makes it easy
  to maintain a single such file that works across all the different
  operating systems and with many different users.

  A Condition Block begins with a Condition Test Statement and ends
  with '.endif'. If the Condition Test evaluates to be True, all the
  lines up to the matching '.endif' are included in the configuration.
  If False, all these lines are ignored.  Conditionals may be nested
  without limit.  'twander' keeps track of which '.endif' matches which
  Condition Test Statement.  Like all Configuration File entries,
  whitespace is ignored when processing Conditional Statements and you
  are free to indent (or not) as you see fit.

  Condition Test Statements are one of three types:

  #####
  # Existential: True if FOO or $FOO are defined
  #####

  .if [FOO]
     ...
  .endif

  .if [$FOO]
     ...
  .endif

  #####
  # Equality: True if FOO or $FOO are literally
  # the same as the test-string
  #####

  .if [FOO] == test-string
        ...
  .endif

  .if [$FOO] == test-string
        ...
  .endif

  #####
  # Inequality: True if FOO or $FOO are literally
  # not the same as the test-string
  #####

  .if [FOO] != test-string
        ...
  .endif

  .if [$FOO] != test-string
        ...
  .endif

  
  Note that the test always depends first on a *variable reference*
  ([FOO], never just foo), but that the Right Hand Side of
  an in/equality test is just a string comparsion - no variable
  expansion is done.  This will not work as you might expect:

  .if [FOO] == string[BAR]

  To make it easy to create conditional blocks based on the type of
  system you're running, 'twander' now automatically pre-defines two
  variables which provide information about your system:

  Variable Name     Typical Values
  --------------------------------

   .OS              nt, posix
   .PLATFORM        freebsd4, linux-i386, win32

 Note that these predefined variables also begin with a period to
 remind you of their intended role.  They will thus also sort first in
 the User-Defined Variables section of the Help Menu.

 See the example .twander file provided in the distribution for
 some extended examples of using conditinals in your Configuration
 File.

- The New ".include" Directive
 
  The configuration language now supports a means of including
  other files in your configuration.  This makes it easy to, say,
  have a "standard" configuration that everyone can use as a starting
  point like this:


  .include /usr/local/etc/.twander.global

   # Your configuration lines go here


   You may have as many ".include" directives in your Configuration File
   as you like.  The only requirement is that there be whitespace between
   the directive and the filename.


 


twander 3.0  (2-17-2003):
========================

- The licensing terms have been clarified.  Non-Commercial use of the
   program is free with a $20 US per user donation recommended.
   This fee is mandatory for commercial users.

- A Quick Start introduction to 'twander' is now included in the
  distribution.  See 'READ-1ST.txt'.

- *MANY* bug fixes and code cleanup including a nasty one with
   RH linux that prevented 'twander' from opening the user's
   home directory.

- Most program features and options are now settable in the
  configuration file AND you can set your default twander command line
  arguments in an environment variable called TWANDER.

  The priority of options processing, from lowest to highest is:

             1) Defaults coded into program
             2) Options set in configuration file
             3) Options set in environment variable
             4) Options set on command line.

- The -b, -f, -n, -w, -s, -x, -y command line options have
  been removed because these options are not settable as
  options in the configuration file.

- Width/Height now default to 800 and 600 pixels respectively.
  Previous versions did not really count pixels correctly.
  You can also specify the starting position on screen in pixels.

- You can now include references to any of the variable types
  in a manually entered command line.  Syntax is the same as for
  command definitions in the configuration file.

- Various help menus have been added. 

- Command History has been implemented and is available via a new
  menu.

- There are now accelerator key and mouse shortcuts for each of the
  menus.

- A new "Directory Shortcuts" feature has been added. You can
  specify up to 12 directories which will be preloaded into
  the Directory Menu (as if you'd already visited them) AND
  you can move to each of them via one of the Function keys.

- twander debug facilities have been vastly improved. The -d
  command line argument now takes a mandatory "debug level"
  as an argument.  This is a bitfield (which can be expressed
  in either decimal or hex) in which each bit indicates a
  kind of degbug output you'd like.

- There is a new Built-In variable called [YESNO:some text].  It
  allows you to put a Yes/No popup during command execution.
  If the user presses "No", the command is aborted.

- Since Win32 file/directory names are case-insensitive,
  twander now sorts them as such.  Previously, 'ZEBRA' would
  appear before 'echo' in a twander display.

- Most previous error conditions have been changed to warnings so
  that the program is more forgiving and will keep running after
  such a condition.

- The various interactive popup dialogs allow intra-line editing
  with both the local conventions as well as emacs-style key
  editing.  This was true previously, but was not documented.

- If you are running on Win32 and have Mark Hammond's 'win32all'
  extensions installed, a number of Win32-specific features are
  enabled:

     a) You can now navigate ".." from root or use the Ctrl-k key to
        get a Drive List View of all available Win32 drives.

     b) The file/directory mode will be displayed showing Win32
        attributes.

     c) The Win32 user/group names will appear for each displayed
        item, instead of "win32user" and "win32group".

- You can now resize fonts while running 'twander' without having to
  change the respective configuration file parameters.  Two new key
  assignments have been defined to increment or decrement font size.

- You can use the CMDSHELL option to define a string that will be
  prepended to each manually entered command.  The feature is off
  by default.  If enabled, it can be suppressed by entering "\"
  as the first character in the manually entered command.  This makes
  it easy to create a default visual/GUI context for each command you
  enter manually.

- A new "Program Memory" feature is implemented which allows 'twander'
  to maintain up to 12 separate, simultaneous clipboard- like
  memories.  These memories are used to compile names of files and
  directories which you would like to subsequently processs.  There
  are 12 new corresponding Built-In Variables ([MEM1]-[MEM12]) which
  allow command definitions to access the contents of the memories

- TundraWare Inc. is now running  a 'twander-users' mailing list.

------------------------------------------------------------------------
twander 2.34  (12-23-2002):    
===========================

Initial public release of program