"Fossies" - the Fresh Open Source Software Archive

Member "twander-3.231/CHANGELOG.txt" (1 Jul 2009, 77510 Bytes) of package /linux/privat/old/twander-3.231.tar.gz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

    1 
    2 RCS file: RCS/twander.py,v
    3 Working file: twander.py
    4 head: 3.231
    5 branch:
    6 locks: strict
    7 	tundra: 3.231
    8 access list:
    9 symbolic names:
   10 keyword substitution: kv
   11 total revisions: 295;	selected revisions: 295
   12 description:
   13 Part Of The 'twander' Project
   14 ----------------------------
   15 revision 3.231	locked by: tundra;
   16 date: 2009/07/01 07:29:20;  author: tundra;  state: Exp;  lines: +13 -4
   17 Fixed problem with relative symlink references pointing to directories
   18 not being properly sorted if directories and files were being
   19 separated (SYMDIR = True).
   20 ----------------------------
   21 revision 3.230
   22 date: 2009/07/01 00:44:39;  author: tundra;  state: Exp;  lines: +43 -9
   23 Modified RefreshDirList() to keep track of the selections and the
   24 active marker *by name* rather than by position.  This ensures correct
   25 reselection after the contents of a directory have changed.
   26 ----------------------------
   27 revision 3.229
   28 date: 2009/06/29 21:41:23;  author: tundra;  state: Exp;  lines: +35 -17
   29 Added ASSOCNOCASE symbol ("/") to force case-insensitive associations and exclusions.
   30 ----------------------------
   31 revision 3.228
   32 date: 2009/06/28 07:21:32;  author: tundra;  state: Exp;  lines: +15 -24
   33 Removed column width options from last version. Updated copyright notice.
   34 ----------------------------
   35 revision 3.227
   36 date: 2009/06/28 07:13:58;  author: tundra;  state: Exp;  lines: +24 -15
   37 Added ability for user to adjust column widths by making the
   38 ST_SZUNAME, ST_SZGNAME, ST_SZLEN, variable user options.  Cleaned up
   39 related column logic and added boundary checking to PadString() to
   40 indicate when impossible padding is being requested.
   41 ----------------------------
   42 revision 3.226
   43 date: 2009/06/28 05:35:56;  author: tundra;  state: Exp;  lines: +11 -4
   44 Added variable precision capability to the length scaling algorithm
   45 and the associated SCALPRECISION (Default: 1) variable.
   46 ----------------------------
   47 revision 3.225
   48 date: 2009/06/27 22:17:56;  author: tundra;  state: Exp;  lines: +9 -14
   49 Changed size scaling algorithm to display one digit of precision for files greater than 999 bytes.
   50 ----------------------------
   51 revision 3.224
   52 date: 2007/01/11 07:08:31;  author: tundra;  state: Exp;  lines: +10 -8
   53 Minor corrections to title bar logic for ~/ substitution.
   54 ----------------------------
   55 revision 3.223
   56 date: 2007/01/11 06:43:10;  author: tundra;  state: Exp;  lines: +22 -3
   57 Modified display of directory on title bar to use ~ as a shortcut for home directories to save space.
   58 ----------------------------
   59 revision 3.222
   60 date: 2007/01/11 00:15:18;  author: tundra;  state: Exp;  lines: +10 -8
   61 KeyToggle() now calls LoadHelpMenu() so update options values are reflected in Help.
   62 Went back to displaying all of SYMDIR, SYMEXPAND, and SYMRESOLV status in title bar.
   63 ----------------------------
   64 revision 3.221
   65 date: 2007/01/10 23:07:42;  author: tundra;  state: Exp;  lines: +14 -4
   66 Changed title bar symlink status display to show either Expanded or Resolved, but not both.
   67 Changed SYMRESOLV toggle logic to force target display if its state is changed.
   68 ----------------------------
   69 revision 3.220
   70 date: 2007/01/10 10:05:41;  author: tundra;  state: Exp;  lines: +4 -4
   71 Remapped SYMDIR, SYMEXPAND, & SYMRESOLV to Control-~, Control-!, and Control-@ respectively.
   72 ----------------------------
   73 revision 3.219
   74 date: 2007/01/10 09:34:11;  author: tundra;  state: Exp;  lines: +2 -2
   75 Minor change to iNOSTAT prompt to avoid conflict with the SYMPTR string that triggers symbolic link options logic.
   76 ----------------------------
   77 revision 3.218
   78 date: 2007/01/10 09:16:31;  author: tundra;  state: Exp;  lines: +60 -19
   79 Added key binding to toggle SYMDIR, TOGSYMDIR (default: Control-5).
   80 NOTE: Control-5 seems to be trapped by the system and not recognized.  To be fixed later.
   81 Added titlebar status display for symlink options.
   82 Corrected problem: When SYMEXPAND=False and symlink->dir it did not end with a path separator.
   83 BUGFIX: When SYMDIR=False, symlinks->dir did not end in a path separator.
   84 BUGFIX: When HIDEDOT=True, symlinks beginning with '.' were not being hidden.
   85 ----------------------------
   86 revision 3.217
   87 date: 2007/01/09 23:27:51;  author: tundra;  state: Exp;  lines: +49 -55
   88 Renamed EXPANDSYMLINKS, RESOLVSYMLINKS to SYMEXPAND, SYMRESOLV.
   89 Added associated toggling key bindings TOGSYMEXPAND (default:Control-7) and TOGSYMRESOLV (default: Control-6).
   90 Created generic option toggling function, KeyToggle(), for the new symbolic link toggles.
   91 Changed TOGLENGTH and TOGHIDEDOT to use the new KeyToggle() function as well.
   92 ----------------------------
   93 revision 3.216
   94 date: 2007/01/08 20:40:11;  author: tundra;  state: Exp;  lines: +13 -1
   95 Added EXPANDSYMLINKS option (default: True) that can be used to inhibit the display of a symlink target.
   96 ----------------------------
   97 revision 3.215
   98 date: 2007/01/08 18:04:33;  author: tundra;  state: Exp;  lines: +41 -32
   99 Added RESOLVSYMLINKS program option (default: False).
  100 ----------------------------
  101 revision 3.214
  102 date: 2007/01/08 17:36:14;  author: tundra;  state: Exp;  lines: +7 -9
  103 Changed symbolic link handling to read the link as defined instead of resolving the true path.
  104 ----------------------------
  105 revision 3.213
  106 date: 2007/01/08 07:39:04;  author: tundra;  state: Exp;  lines: +2 -2
  107 Changed code to permit Directory Shortcuts to reference user-defined variables.
  108 ----------------------------
  109 revision 3.212
  110 date: 2007/01/02 20:07:03;  author: tundra;  state: Exp;  lines: +3 -3
  111 Updated copyright date.
  112 ----------------------------
  113 revision 3.211
  114 date: 2007/01/02 19:53:29;  author: tundra;  state: Exp;  lines: +30 -5
  115 Implemented ISODATE option to display time/date in ISO 8601 format.
  116 ----------------------------
  117 revision 3.210
  118 date: 2006/12/19 09:12:05;  author: tundra;  state: Exp;  lines: +21 -8
  119 Implemented glob style wildcarding for associations.
  120 Changed the exclude association character from "-" to "!".
  121 Fixed bug that showed up when you tried to remove an association that did not exist.
  122 Added code to properly handle a blank RHS for an exclusion entry - it now resets the list to empty
  123 instead of deleting it.
  124 ----------------------------
  125 revision 3.209
  126 date: 2006/12/19 00:13:16;  author: tundra;  state: Exp;  lines: +20 -2
  127 Implemented association removal with blank RHS of an association statement.
  128 ----------------------------
  129 revision 3.208
  130 date: 2006/12/18 23:50:43;  author: tundra;  state: Exp;  lines: +3 -3
  131 Removed debugging statement left in the association exclusion processing logic during last file edit.
  132 Added logic to prevent duplicate entries in association exclusion list.
  133 ----------------------------
  134 revision 3.207
  135 date: 2006/12/18 23:27:51;  author: tundra;  state: Exp;  lines: +32 -18
  136 Implemented association exclusion feature.
  137 ----------------------------
  138 revision 3.206
  139 date: 2006/12/18 22:02:25;  author: tundra;  state: Exp;  lines: +29 -14
  140 Added logic to throw an error if user attempts to run a non-executable that has no association.
  141 ----------------------------
  142 revision 3.205
  143 date: 2006/12/18 17:35:09;  author: tundra;  state: Exp;  lines: +3 -2
  144 Made association matching case-insensitive on Windows.
  145 ----------------------------
  146 revision 3.204
  147 date: 2006/12/15 23:10:22;  author: tundra;  state: Exp;  lines: +20 -53
  148 Reimplemented Directory Shortcut override as an interactive dialog instead of explicit keys for each shortcut.
  149 Further shortened titlebar prompt strings.
  150 ----------------------------
  151 revision 3.203
  152 date: 2006/12/15 08:11:24;  author: tundra;  state: Exp;  lines: +3 -3
  153 Changed MOUSEC assignment to Alt-Control-ButtonRelease-1.
  154 ----------------------------
  155 revision 3.202
  156 date: 2006/12/15 04:24:02;  author: tundra;  state: Exp;  lines: +9 -8
  157 Cleaned up associations and program execution for Win32.
  158 ----------------------------
  159 revision 3.201
  160 date: 2006/12/14 23:05:15;  author: tundra;  state: Exp;  lines: +10 -6
  161 Modified association logic so that a full path is only computed for executables.i.e., For those cases where there is no association and the file is executable.
  162 ----------------------------
  163 revision 3.200
  164 date: 2006/12/14 22:48:05;  author: tundra;  state: Exp;  lines: +7 -2
  165 Added logic to inhibit default associations on executable files.
  166 ----------------------------
  167 revision 3.199
  168 date: 2006/12/14 19:10:57;  author: tundra;  state: Exp;  lines: +79 -17
  169 Implemented associations.
  170 ----------------------------
  171 revision 3.198
  172 date: 2006/12/14 07:23:06;  author: tundra;  state: Exp;  lines: +8 -1
  173 Added CMDMENUSORT option to allow user to enable sorting of the command menu.
  174 ----------------------------
  175 revision 3.197
  176 date: 2006/12/14 06:26:01;  author: tundra;  state: Exp;  lines: +68 -2
  177 Added keyboard bindings and logic to support assignment of current directory to any of the directory shortcut keys.
  178 ----------------------------
  179 revision 3.196
  180 date: 2006/12/11 09:21:19;  author: tundra;  state: Exp;  lines: +72 -59
  181 Changed title bar boolean state display to just Y/N instead of Yes/No to save space.
  182 Created general purpose multi-column formatting routine.
  183 Changed options and key bindings help screens to be multicolumn.
  184 Removed shortcut key display from help menus - redundant with main menu bar.
  185 ----------------------------
  186 revision 3.195
  187 date: 2005/02/14 09:49:44;  author: tundra;  state: Exp;  lines: +7 -4
  188 Fixed bug that counted the ".." file in the total on the title bar.
  189 ----------------------------
  190 revision 3.194
  191 date: 2005/02/11 00:45:54;  author: tundra;  state: Exp;  lines: +42 -10
  192 Implemented 'dotfile' hiding logic.
  193 Added TOHIDEDOT key binding (Control-9).
  194 Added DOTFILE (".") option.
  195 Added HIDEDOTFILES (False) option.
  196 ----------------------------
  197 revision 3.193
  198 date: 2005/02/03 11:24:55;  author: tundra;  state: Exp;  lines: +13 -13
  199 Reorganized menu order so they grouped together more sensibly.
  200 ----------------------------
  201 revision 3.192
  202 date: 2005/02/02 10:12:43;  author: tundra;  state: Exp;  lines: +14 -9
  203 Changed KeyFiltWild() to KeyFilterWild().
  204 Implemented WILDFILTER= and WILDSELECT= to replace WILDCARD= in configuration files.
  205 ----------------------------
  206 revision 3.191
  207 date: 2005/02/02 09:39:08;  author: tundra;  state: Exp;  lines: +9 -9
  208 Changed MOUSEFILTER to MOUSEWILDFILTER
  209 Confirmed that MOUSESEL changed to MOUSEWILDSEL.
  210 ----------------------------
  211 revision 3.190
  212 date: 2005/02/02 09:13:09;  author: tundra;  state: Exp;  lines: +168 -80
  213 Split old wildcard menu into separate Filter and Select menus.
  214 Debug option 0x100 now dumps both Filter and Select wildcard lists.
  215 ----------------------------
  216 revision 3.189
  217 date: 2005/02/01 23:09:01;  author: tundra;  state: Exp;  lines: +16 -12
  218 Corrected wildcard logic so that escaped filter/selection ignore WILDNOCASE.
  219 ----------------------------
  220 revision 3.188
  221 date: 2005/02/01 22:36:33;  author: tundra;  state: Exp;  lines: +15 -6
  222 Added MOUSEFILTER key binding.
  223 ----------------------------
  224 revision 3.187
  225 date: 2005/02/01 22:11:09;  author: tundra;  state: Exp;  lines: +13 -2
  226 Added wildcard filtering to Win32 Drive List View.
  227 ----------------------------
  228 revision 3.186
  229 date: 2005/01/29 04:54:06;  author: tundra;  state: Exp;  lines: +19 -8
  230 Made wildcard-based selection also honor the WILDNOCASE option setting.
  231 ----------------------------
  232 revision 3.185
  233 date: 2005/01/29 04:31:54;  author: tundra;  state: Exp;  lines: +56 -29
  234 Implemented default case-insensitive wildcard filtering for Win32 and case-sensitive for everything else.
  235 Option WILDCASE sets this feature.
  236 Changed all references to OSNAME looking for 'nt' to OSPLATFORM looking for 'win32'.
  237 ----------------------------
  238 revision 3.184
  239 date: 2005/01/29 00:37:38;  author: tundra;  state: Exp;  lines: +83 -21
  240 Factored wildcard filtering match code into a separate function, FilterWildcardMatch().
  241 Implemented ability to invert currently active filtering wildcard.
  242 Key: TOGFILT (Control-minus), Option: INVERTFILTER (Default: False)
  243 ----------------------------
  244 revision 3.183
  245 date: 2005/01/28 23:18:35;  author: tundra;  state: Exp;  lines: +20 -13
  246 Cleaned up formatting and max lengths of file/drive size fields throughout.
  247 Max max length and trailing padding for this symbolic (MAX_SZ_CHARS and SZ_TRAILING_SPACE) for ease of future maintenance.
  248 ----------------------------
  249 revision 3.182
  250 date: 2005/01/28 22:26:21;  author: tundra;  state: Exp;  lines: +55 -13
  251 Actual file lengths are now returned with commas every 3 digits.
  252 File lengths are now displayed right-aligned in the detail view.
  253 ----------------------------
  254 revision 3.181
  255 date: 2005/01/28 11:09:27;  author: tundra;  state: Exp;  lines: +29 -5
  256 Implemented ability to toggle actual and normalized file length display.
  257 Added ACTUALLENGTH option, TOGLENGTH key binding (Control-0), and KeyToggleLength().
  258 ----------------------------
  259 revision 3.180
  260 date: 2005/01/28 10:19:42;  author: tundra;  state: Exp;  lines: +43 -37
  261 Corrected TotalSize to work when wildcard active.
  262 Implemented TotalSize for Drive List View.
  263 Added factoring for > GB sized files in FileLength().
  264 ----------------------------
  265 revision 3.179
  266 date: 2005/01/27 11:15:01;  author: tundra;  state: Exp;  lines: +10 -4
  267 Created distinct entry dialogs for selection and filtering wildcards.
  268 ----------------------------
  269 revision 3.178
  270 date: 2005/01/27 11:06:26;  author: tundra;  state: Exp;  lines: +12 -12
  271 Added wildcard filtration status to titlebar.
  272 ----------------------------
  273 revision 3.177
  274 date: 2005/01/27 10:53:44;  author: tundra;  state: Exp;  lines: +47 -27
  275 Provided complete support for selection and filtering wildcards via a common routine.
  276 Filtering wildcard now also reset by the REFRESH (Control-l) command.
  277 ----------------------------
  278 revision 3.176
  279 date: 2005/01/27 10:21:39;  author: tundra;  state: Exp;  lines: +43 -15
  280 Implemented rudiments of filtering displayed items based on wildcard.
  281 ----------------------------
  282 revision 3.175
  283 date: 2005/01/25 22:28:49;  author: tundra;  state: Exp;  lines: +2 -2
  284 Set default for QUOTECHAR to None if -t startup option selected.
  285 ----------------------------
  286 revision 3.174
  287 date: 2005/01/25 20:36:33;  author: tundra;  state: Exp;  lines: +6 -6
  288 Minor cosmetic cleanups leftover from changing TRUE/FALSE to True/False in last revision.
  289 ----------------------------
  290 revision 3.173
  291 date: 2005/01/25 20:16:03;  author: tundra;  state: Exp;  lines: +90 -90
  292 Minor corrections/edits.
  293 Changed all references of TRUE/FALSE to True/False.
  294 ----------------------------
  295 revision 3.172
  296 date: 2005/01/25 20:01:32;  author: tundra;  state: Exp;  lines: +73 -76
  297 Changed delimiters for PROMPT and YESNO from [] to {} to facilitate embedding variable references within them.
  298 Restructured the code so that variable dereferencing does not take place until command executes.
  299 ----------------------------
  300 revision 3.171
  301 date: 2005/01/25 08:08:24;  author: tundra;  state: Exp;  lines: +12 -24
  302 Restructured the YESNO/PROMPT string preservation logic so it works correctly in all cases.
  303 ----------------------------
  304 revision 3.170
  305 date: 2005/01/25 07:22:18;  author: tundra;  state: Exp;  lines: +14 -11
  306 Restructured prompt default handling to gracefully  handle case when there is no default.
  307 ----------------------------
  308 revision 3.169
  309 date: 2005/01/25 03:37:22;  author: tundra;  state: Exp;  lines: +7 -6
  310 Fixed problem with circular .include suppression logic interfering with a configuration reload.
  311 ----------------------------
  312 revision 3.168
  313 date: 2005/01/25 00:57:17;  author: tundra;  state: Exp;  lines: +25 -7
  314 Added logic to suppress circular includes.
  315 ----------------------------
  316 revision 3.167
  317 date: 2005/01/24 23:53:24;  author: tundra;  state: Exp;  lines: +34 -6
  318 Implemented GetStatusOutput() so that Execution Variables work portably across Unix and Win32.
  319 ----------------------------
  320 revision 3.166
  321 date: 2005/01/24 20:33:19;  author: tundra;  state: Exp;  lines: +41 -1
  322 Addeded support for Execution Variables.
  323 ----------------------------
  324 revision 3.165
  325 date: 2005/01/24 11:55:28;  author: tundra;  state: Exp;  lines: +10 -4
  326 Added code to catch nested variable references within PROMPT and YESNO builtin definitions.
  327 ----------------------------
  328 revision 3.164
  329 date: 2005/01/24 11:00:19;  author: tundra;  state: Exp;  lines: +8 -1
  330 Accomodated default handler for situations where command begins with REFRESHAFTER.
  331 ----------------------------
  332 revision 3.163
  333 date: 2005/01/24 10:43:31;  author: tundra;  state: Exp;  lines: +61 -7
  334 Added code to preserve content of PROMPT and YESNO builtins so user-formatting is maintained.
  335 ----------------------------
  336 revision 3.162
  337 date: 2005/01/23 11:26:04;  author: tundra;  state: Exp;  lines: +113 -88
  338 Added default support for the PROMPT and YESNO macro language features.
  339 Added the DEFAULTSEP option to support defaults.
  340 ----------------------------
  341 revision 3.161
  342 date: 2005/01/21 21:04:42;  author: tundra;  state: Exp;  lines: +2 -3
  343 Changed AFTERWAIT behavior so that it only clears current selections
  344 but no longer moves cursor to top of screen.
  345 ----------------------------
  346 revision 3.160
  347 date: 2005/01/12 08:20:05;  author: tundra;  state: Exp;  lines: +19 -10
  348 Added ability to popup the sorting menu.
  349 ----------------------------
  350 revision 3.159
  351 date: 2005/01/09 01:28:03;  author: tundra;  state: Exp;  lines: +45 -16
  352 Implemented adaptive refresh intervals and the ADAPTREFRESH option.
  353 ----------------------------
  354 revision 3.158
  355 date: 2005/01/08 19:48:45;  author: tundra;  state: Exp;  lines: +8 -1
  356 Minor cleanup of Refresh recovery logic when going back to the starting directory.
  357 ----------------------------
  358 revision 3.157
  359 date: 2005/01/08 08:36:12;  author: tundra;  state: Exp;  lines: +17 -7
  360 Added logic to handle removed media during a refresh cycle.
  361 ----------------------------
  362 revision 3.156
  363 date: 2005/01/08 07:53:35;  author: tundra;  state: Exp;  lines: +2 -2
  364 Minor change to end a refresh after command execution so that nothing
  365 is selected and the cursor is placed under the first item in the list.
  366 ----------------------------
  367 revision 3.155
  368 date: 2005/01/08 07:13:42;  author: tundra;  state: Exp;  lines: +8 -2
  369 Added logic to reset all selections to first item only after a command
  370 that requested Refresh after execution.
  371 Added AFTERCLEAR option to toggle this behavior.
  372 ----------------------------
  373 revision 3.154
  374 date: 2005/01/08 02:08:02;  author: tundra;  state: Exp;  lines: +7 -3
  375 Added logic to sort symlinks pointing to directories into the directory
  376 list when doing separated sorts.  Added new SYMDIR option to toggle
  377 this behavior.  Default is on.
  378 ----------------------------
  379 revision 3.153
  380 date: 2005/01/07 23:51:50;  author: tundra;  state: Exp;  lines: +3 -3
  381 Made FORCEUNIXPATH relevant only on Windows systems.
  382 ----------------------------
  383 revision 3.152
  384 date: 2005/01/07 23:11:29;  author: tundra;  state: Exp;  lines: +2 -2
  385 Fixed copyright symbol.
  386 ----------------------------
  387 revision 3.151
  388 date: 2005/01/07 23:07:28;  author: tundra;  state: Exp;  lines: +7 -7
  389 Changed binding for popup Shortcut menu to Ctrl-Button3 so program
  390 would work correctly on Windows.
  391 ----------------------------
  392 revision 3.150
  393 date: 2005/01/07 11:09:54;  author: tundra;  state: Exp;  lines: +33 -4
  394 Added code to provide a Shortcut popup menu.
  395 Added previously missing MOUSEHIST and MOUSEWILD key binding definitions.
  396 ----------------------------
  397 revision 3.149
  398 date: 2005/01/07 10:30:20;  author: tundra;  state: Exp;  lines: +48 -10
  399 Removed DirSCs from Directory Menu at startup.
  400 Added separate Shortcut menu to the menubar.
  401 ----------------------------
  402 revision 3.148
  403 date: 2005/01/07 07:54:44;  author: tundra;  state: Exp;  lines: +3 -3
  404 Updated copyright.
  405 ----------------------------
  406 revision 3.147
  407 date: 2005/01/07 07:29:46;  author: tundra;  state: Exp;  lines: +28 -11
  408 Added support for FORCEUNIXPATH option.
  409 ----------------------------
  410 revision 3.146
  411 date: 2004/03/11 09:46:08;  author: tundra;  state: Exp;  lines: +2 -2
  412 Program was throwing an error if the user aborted a PROMPT.
  413 Fixed in the tests for REFRESHAFER in the command execution logic.
  414 ----------------------------
  415 revision 3.145
  416 date: 2004/03/11 09:34:44;  author: tundra;  state: Exp;  lines: +8 -2
  417 Modified command history slightly to store the REFRESHAFTER indicator
  418 for all commands, regardless how they were invoked - manually or
  419 via the configuration definition.
  420 ----------------------------
  421 revision 3.144
  422 date: 2004/03/11 08:17:28;  author: tundra;  state: Exp;  lines: +28 -2
  423 Added shortcuts for many built-ins for use in the RUNCMD feature.
  424 ----------------------------
  425 revision 3.143
  426 date: 2004/03/11 07:24:28;  author: tundra;  state: Exp;  lines: +2 -2
  427 Reduced max path length on titlebar to 60.
  428 ----------------------------
  429 revision 3.142
  430 date: 2004/03/11 07:21:18;  author: tundra;  state: Exp;  lines: +17 -7
  431 Added feature to limit the path length displayed on titlebar to
  432 80 characters.  This ensures that the other status information does
  433 not disappear if the user gets very deeply nested into a filesystem.
  434 ----------------------------
  435 revision 3.141
  436 date: 2004/03/11 06:51:58;  author: tundra;  state: Exp;  lines: +19 -5
  437 Added visual indication ('*') appended to Auto state on title bar to
  438 indicate that a refresh is currently underway.
  439 ----------------------------
  440 revision 3.140
  441 date: 2004/03/11 03:31:33;  author: tundra;  state: Exp;  lines: +41 -7
  442 Added ability to force a display refresh after a command is launched via
  443 the REFRESHAFTER ('+') symbol prepended to a command definition.
  444 (This also works for directly invoked commands via RUNCMD.)
  445 Added REFRESHAFTER variable to set timing for this refresh.
  446 ----------------------------
  447 revision 3.139
  448 date: 2004/03/10 23:58:17;  author: tundra;  state: Exp;  lines: +44 -8
  449 Added Control-o key to toggle Autorefreshing.
  450 Added indication of current Autorefresh state to title bar.
  451 Removed separate title bar indication of reverse sort.  This is now
  452 indicated by a '-' symbol appended to the sort field name.
  453 ----------------------------
  454 revision 3.138
  455 date: 2004/03/10 10:56:08;  author: tundra;  state: Exp;  lines: +37 -20
  456 BUGFIX: Redefined commands appeared multiple times in the Command Menu.
  457 BUGFIX: Commands did not reliably appear in the Command Menu in the order
  458 in which they were defined.
  459 ----------------------------
  460 revision 3.137
  461 date: 2004/03/10 09:37:52;  author: tundra;  state: Exp;  lines: +6 -4
  462 Updated Copyright date.
  463 Sorted debug/help information.
  464 ----------------------------
  465 revision 3.136
  466 date: 2003/03/15 15:59:46;  author: tundra;  state: Exp;  lines: +2 -2
  467 Changed "True/False" to "TRUE/FALSE" because a user reported
  468 that the first form was not defined on his system.
  469 ----------------------------
  470 revision 3.135
  471 date: 2003/03/12 00:03:07;  author: tundra;  state: Exp;  lines: +14 -6
  472 Fixed bug which caused builtins to be returned incorrectly or inconsistently.
  473 ----------------------------
  474 revision 3.134
  475 date: 2003/03/11 17:46:04;  author: tundra;  state: Exp;  lines: +2 -2
  476 Corrected spelling error in About information.
  477 ----------------------------
  478 revision 3.133
  479 date: 2003/03/11 17:24:22;  author: tundra;  state: Exp;  lines: +5 -4
  480 Added information on website to About box.
  481 Set USETHREADS to False by default.
  482 Set default REFRESHINT to 5000.
  483 ----------------------------
  484 revision 3.132
  485 date: 2003/03/10 21:55:02;  author: tundra;  state: Exp;  lines: +18 -3
  486 Added logic to display Boolean options as "True" or "False".
  487 ----------------------------
  488 revision 3.131
  489 date: 2003/03/10 20:51:34;  author: tundra;  state: Exp;  lines: +2 -2
  490 Fixed minor bug which caused incorrect file name to be reported
  491 when conf file could not be opened.
  492 ----------------------------
  493 revision 3.130
  494 date: 2003/03/10 19:56:00;  author: tundra;  state: Exp;  lines: +11 -2
  495 Implemented the .include directive.
  496 ----------------------------
  497 revision 3.129
  498 date: 2003/03/10 19:36:02;  author: tundra;  state: Exp;  lines: +67 -64
  499 Changed code to permit DIRSCs to be redefined in a single conf file.
  500 Changed code to permit command definitions to be redefined in a single conf file.
  501 Changed WrnMsg() routine to allow caller to display a file name in the title bar.
  502 ----------------------------
  503 revision 3.128
  504 date: 2003/03/05 23:38:14;  author: tundra;  state: Exp;  lines: +5 -4
  505 Fixed bug which allowed the condition variable to be prepended or followed by
  506 any string.  Instead of testing for a match anywhere in the field, the program
  507 now makes sure the field begins and ends with a variable dereferencing.
  508 Changed semantics of environment variable processing in existential conditionals
  509 to match that of user-defined variables: the condition test is true if the
  510 variable is simply defined, regardless of the value of the RHS.
  511 ----------------------------
  512 revision 3.127
  513 date: 2003/03/05 23:02:04;  author: tundra;  state: Exp;  lines: +73 -58
  514 Restructured and cleaned-up the conditional beginning-of-block parsing logic.
  515 Fixed bug in wildcard processing that returned the previously selected set
  516 if there were no wildcard matches.  Now no matches returns no selections.
  517 ----------------------------
  518 revision 3.126
  519 date: 2003/03/04 21:51:44;  author: tundra;  state: Exp;  lines: +2 -2
  520 Minor cosmetic comment change.
  521 ----------------------------
  522 revision 3.125
  523 date: 2003/03/04 00:31:54;  author: tundra;  state: Exp;  lines: +27 -27
  524 Changed sort key binding names to be more meaningful.
  525 ----------------------------
  526 revision 3.124
  527 date: 2003/03/04 00:13:31;  author: tundra;  state: Exp;  lines: +13 -10
  528 Fixed problem which kept indented conditional lines from being properly handled.
  529 ----------------------------
  530 revision 3.123
  531 date: 2003/03/03 23:39:34;  author: tundra;  state: Exp;  lines: +25 -24
  532 Fixed problem which prevented navigating to selected drive in Drive List View.
  533 Fixed problem in which the sort type was incorrectly displayed on first entry
  534 into Drive List View.
  535 Changed Drive List View sorting logic slightly to make it cleaner.
  536 ----------------------------
  537 revision 3.122
  538 date: 2003/03/03 22:49:08;  author: tundra;  state: Exp;  lines: +140 -79
  539 Drive List View sorting and Sort Menu finished.
  540 ----------------------------
  541 revision 3.121
  542 date: 2003/03/02 00:52:06;  author: tundra;  state: Exp;  lines: +61 -10
  543 First implementation of Sort Menu.
  544 ----------------------------
  545 revision 3.120
  546 date: 2003/03/01 22:03:59;  author: tundra;  state: Exp;  lines: +45 -15
  547 Titlebar now show correct info in Drive List View - proper
  548 sort field name is shown and the 'Sep' information is
  549 dropped because it is not meaningful in this view.
  550 ----------------------------
  551 revision 3.119
  552 date: 2003/03/01 11:05:35;  author: tundra;  state: Exp;  lines: +119 -61
  553 Implemented sorting for Drive List View
  554 Changed format of Drive List View display
  555 ----------------------------
  556 revision 3.118
  557 date: 2003/03/01 08:21:28;  author: tundra;  state: Exp;  lines: +45 -13
  558 Added ability for all conditionals to reference environment variables.
  559 ----------------------------
  560 revision 3.117
  561 date: 2003/03/01 07:32:43;  author: tundra;  state: Exp;  lines: +52 -19
  562 Finished first complete implementation of conditional
  563 processing in the Configuration File using ==, !=, and variable existence.
  564 ----------------------------
  565 revision 3.116
  566 date: 2003/03/01 00:04:05;  author: tundra;  state: Exp;  lines: +5 -10
  567 Removed debugging print statement in the conditional logic.
  568 Program now allows User-Defined Variables to be re-defined.
  569 Conditional keywords changed to: .if and .endif.
  570 ----------------------------
  571 revision 3.115
  572 date: 2003/02/28 23:45:55;  author: tundra;  state: Exp;  lines: +17 -9
  573 Now catches .ENDIF statements which are not on a line by themselves.
  574 Added missing error message and made error messages concerning
  575 conditionals a bit clearer and more consistent with other error message formats.
  576 ----------------------------
  577 revision 3.114
  578 date: 2003/02/28 23:18:55;  author: tundra;  state: Exp;  lines: +125 -19
  579 Implemented variable existence conditional in Config File parser.
  580 ----------------------------
  581 revision 3.113
  582 date: 2003/02/28 20:05:18;  author: tundra;  state: Exp;  lines: +5 -4
  583 Changed escape char for CMDSHELL and wildcard processing to use " instead of #
  584 ----------------------------
  585 revision 3.112
  586 date: 2003/02/28 19:46:26;  author: tundra;  state: Exp;  lines: +22 -11
  587 Finished sorting logic.  Fixed bug with Win32 case collapse.
  588 Changed arithmetic in poll() which sets reduced period for
  589 next refresh if a locked mutex is encountered.
  590 ----------------------------
  591 revision 3.111
  592 date: 2003/02/28 01:10:24;  author: tundra;  state: Exp;  lines: +99 -63
  593 Implemented support for fNONE - no sorting.
  594 ----------------------------
  595 revision 3.110
  596 date: 2003/02/28 00:19:27;  author: tundra;  state: Exp;  lines: +63 -37
  597 Changed SORTBYFIELD to be the *name* not the number of the field desired.
  598 Check SORTBYFIELD to see if it makes sense.  If not, it is hardwired to fNAME.
  599 ----------------------------
  600 revision 3.109
  601 date: 2003/02/27 00:49:39;  author: tundra;  state: Exp;  lines: +96 -83
  602 Inlined the sort routine into BuildDirList().
  603 Added title bar information about current sort.
  604 ----------------------------
  605 revision 3.108
  606 date: 2003/02/26 23:24:16;  author: tundra;  state: Exp;  lines: +192 -33
  607 First implementation of sorting algorithm.
  608 Keyboard support and title bar display for sorting implemented.
  609 ----------------------------
  610 revision 3.107
  611 date: 2003/02/26 04:39:33;  author: tundra;  state: Exp;  lines: +28 -10
  612 More work on sorting.
  613 ----------------------------
  614 revision 3.106
  615 date: 2003/02/25 23:09:02;  author: tundra;  state: Exp;  lines: +200 -202
  616 Restructured code to prepare for enabling sorting by various fields.
  617 Added SORTBYFIELD and SORTREVERSE options.
  618 This restructuring speeded up display calculation considerably.
  619 ----------------------------
  620 revision 3.105
  621 date: 2003/02/25 08:28:27;  author: tundra;  state: Exp;  lines: +102 -68
  622 All User-Settable options can now have a blank RHS; means option set to default value.
  623 MAXDIR, MAXDIRBUF, MAXHIST, MAXHISTBUF have been retired in favor of MAXMENU and
  624 MAXMENUBUF which are common parameters for all dynamic menus.
  625 Added Wildcard History menu to track all wildcard-based selections. Menu has
  626 both accelerator key and mouse/key combo to popup that menu.
  627 Added WILDCARD= feature to Configuration File.
  628 ----------------------------
  629 revision 3.104
  630 date: 2003/02/25 00:08:23;  author: tundra;  state: Exp;  lines: +135 -15
  631 Ran program through 'flip' to ensure Unix line termination.
  632 Program Function Key handlers now return 'break' consistently
  633 to make sure a user key rebinding does not conflict with some Tk default.
  634 Back to displaying full version number or Titlebar.
  635 # character now used both to escape CMDSHELL and wildcard processing.
  636 RHS of string options can now be blank -> leaves option as default value.
  637 This eliminates the need for the "" construct for CMDSHELL processing.
  638 Implemented Select Via Wildcard feature.
  639 ----------------------------
  640 revision 3.103
  641 date: 2003/02/23 22:50:10;  author: tundra;  state: Exp;  lines: +2 -2
  642 Only show major/minor version number (x.x) on Title Bar.
  643 ----------------------------
  644 revision 3.102
  645 date: 2003/02/23 22:43:38;  author: tundra;  state: Exp;  lines: +3 -4
  646 Switched string->num conversions from atoi to int(string,base).
  647 This avoids an unnecessary import.
  648 ----------------------------
  649 revision 3.101
  650 date: 2003/02/23 22:33:50;  author: tundra;  state: Exp;  lines: +8 -5
  651 Added code to precent FONTDECR from decrementing font sizes to less than 1.
  652 ----------------------------
  653 revision 3.1
  654 date: 2003/02/23 22:17:00;  author: tundra;  state: Exp;  lines: +14 -17
  655 Changed logic so CMDSHELL processing, if enabled, is *only*
  656 done when KeyRunCommand is invoked via the RUNCMD key - i.e,
  657 Not when commands are played back via the Command History
  658 Mechanism.  This is a cleaner way to prevent CMDSHELL cascading
  659 on history invocations and also fixes a bug wherein a Command
  660 Definition would get processes with CMDSHELL if that command
  661 was replayed from the history.
  662 ----------------------------
  663 revision 3.0
  664 date: 2003/02/17 20:38:07;  author: tundra;  state: Exp;  lines: +7 -6
  665 ExecuteCommand now properly rejects blank command requests and checks
  666 for same as it does the various variable substitutions.
  667 ----------------------------
  668 revision 2.94
  669 date: 2003/02/10 23:02:51;  author: tundra;  state: Exp;  lines: +4 -4
  670 Changed DIRSC regex for stricter enforcement of naming.
  671 ----------------------------
  672 revision 2.93
  673 date: 2003/02/10 17:39:47;  author: tundra;  state: Exp;  lines: +8 -2
  674 Changed code to first check the environment for HOSTNAME
  675 and only use socket.getfqdn() if nothing is found.  Keeps
  676 program from taking forever to start-up on a misconfigured
  677 or failing network.
  678 ----------------------------
  679 revision 2.92
  680 date: 2003/02/07 00:21:42;  author: tundra;  state: Exp;  lines: +6 -6
  681 Minor editing of comments for clarity.
  682 ----------------------------
  683 revision 2.91
  684 date: 2003/02/04 18:53:18;  author: tundra;  state: Exp;  lines: +59 -30
  685 Changed code to permit user-rebinding of Directory Shortcut key assignment.
  686 ----------------------------
  687 revision 2.90
  688 date: 2003/02/03 22:46:07;  author: tundra;  state: Exp;  lines: +230 -24
  689 Cleanup Debug bit definitions so they group together more sensibly.
  690 Implemented the Program Memory feature.
  691 ----------------------------
  692 revision 2.89
  693 date: 2003/01/31 23:08:14;  author: tundra;  state: Exp;  lines: +13 -3
  694 Stopped DIRSC logic from acting if FN key modified with Alt, Ctrl, Shift, etc.
  695 ----------------------------
  696 revision 2.88
  697 date: 2003/01/31 19:01:05;  author: tundra;  state: Exp;  lines: +50 -13
  698 Added check to insure that numeric options are >= 0.
  699 Implemented CMDSHELL option and the ability to escape it.  Default is off.
  700 Changed the "Invert Selection" and "Select All" features for the
  701 Drive List View so that they *do* pick the first item in the list.
  702 This entry is a legitimate drive - in the normal view this entry
  703 is ".." and we do not want it selected with these features.
  704 ----------------------------
  705 revision 2.87
  706 date: 2003/01/31 00:50:13;  author: tundra;  state: Exp;  lines: +68 -15
  707 Added code to allow either integer or hex values to be entered for -d or
  708 as the RHS of any Numeric Option.
  709 Fixed bug which cause the UI.NameFirst value to be incorrectly set for
  710 any file with a failing lstat call.
  711 ----------------------------
  712 revision 2.86
  713 date: 2003/01/30 23:02:58;  author: tundra;  state: Exp;  lines: +26 -12
  714 HEIGHT and WIDTH options now correctly set the initial interface
  715 size in *pixels*.  Added STARTX and STARTY options to set initial
  716 window position (in pixels).  -x and -y options removed from
  717 command line interface since these are now set in the conf file.
  718 Added CMDSHELL options with a default value of [VSHELL].
  719 ----------------------------
  720 revision 2.85
  721 date: 2003/01/30 01:10:03;  author: tundra;  state: Exp;  lines: +80 -45
  722 Changed first field of Drive List View to be either the drive label
  723 for local drives, or the share string for remote drives.  Also
  724 added indication of local drives without labels.
  725 Modfied built-in processing to return just drive names in every
  726 case when in Drive List View.  [DIR] returns nothing in that case.
  727 Generified padding of strings throughout entire program with
  728 a new PadString() routine.
  729 ----------------------------
  730 revision 2.84
  731 date: 2003/01/29 17:45:38;  author: tundra;  state: Exp;  lines: +28 -16
  732 Corrected hostname lookup for remote drives.
  733 Inhibit toggline WIN32ALL off (^w) when in Drive List View.
  734 ----------------------------
  735 revision 2.83
  736 date: 2003/01/29 01:13:30;  author: tundra;  state: Exp;  lines: +107 -40
  737 First cut of details display with Win32 Drive List View.
  738 ----------------------------
  739 revision 2.82
  740 date: 2003/01/28 17:37:46;  author: tundra;  state: Exp;  lines: +131 -75
  741 Added FONTDECR and FONTINCR features.
  742 ----------------------------
  743 revision 2.81
  744 date: 2003/01/28 01:22:14;  author: tundra;  state: Exp;  lines: +3 -38
  745 Removed all manual unicode <-> byte string conversions for Win32.
  746 This issue is resolved in the Win32 Python site.py setup.
  747 ----------------------------
  748 revision 2.80
  749 date: 2003/01/25 00:22:45;  author: tundra;  state: Exp;  lines: +27 -5
  750 Had to modify the promotion of filenames to unicode so that
  751 the un-promoted names are used for detail processing and the
  752 promoted names are used for those cases when we are running w/o
  753 details.
  754 ----------------------------
  755 revision 2.79
  756 date: 2003/01/23 19:44:23;  author: tundra;  state: Exp;  lines: +35 -29
  757 Fixed problem with file/directory name sorting on Win32.
  758 Changed where file names get promoted to unicode so that
  759 navigation into directories containing non-ASCII characters
  760 will work with details on or off.
  761 ----------------------------
  762 revision 2.78
  763 date: 2003/01/22 21:32:08;  author: tundra;  state: Exp;  lines: +28 -17
  764 Added bit assignment details to debug information on help screen.
  765 Adjusted Title Bar field spacing.
  766 Modified stat field display to conform more closely to Unix 'ls -l' output.
  767 ----------------------------
  768 revision 2.77
  769 date: 2003/01/22 02:27:59;  author: tundra;  state: Exp;  lines: +103 -82
  770 Resturctured constand and literal definitions so they are
  771 grouped together in a more rational fashion.
  772 De-strung some literals that crept into the code in various
  773 places.
  774 Changed the strategy for handling win32all details where
  775 the file/directory name contains non-ASCII characters.
  776 Instead of coercing the owner/group names to ASCII,
  777 the file name it promoted to unicode.
  778 ----------------------------
  779 revision 2.76
  780 date: 2003/01/20 07:58:10;  author: tundra;  state: Exp;  lines: +2 -2
  781 Whoops - Had to features both mapped to Control-y (Clear History
  782 and Toggle win32all).  Moved Clear History to Control-y.
  783 ----------------------------
  784 revision 2.75
  785 date: 2003/01/20 07:44:28;  author: tundra;  state: Exp;  lines: +4 -6
  786 Fixed problem with program blowing-up if it encountered
  787 a file with an extended character in its name when win32all
  788 options were in force.  Cause by the way the Win32 api
  789 returns string names for user and group.  Fixed by coercing
  790 them with an str(...) call.
  791 Fixed problem with each new directory causing *2* calls
  792 to BuildDirList - leftover debugging print statement was
  793 the problem.  Should speed up larger directories considerably.
  794 ----------------------------
  795 revision 2.74
  796 date: 2003/01/19 17:40:27;  author: tundra;  state: Exp;  lines: +35 -23
  797 Changed default width to 110.
  798 When win32all features are toggled from keyboard, the display
  799 is refreshed so update is seen immediately.
  800 KeyToggleWin32All() now only works if USEWIN32ALL is True.
  801 However, a separate internal program flag (WIN32ALLON) is
  802 used to keep track of whether or not these features are
  803 currently requested by the user.  This way setting USEWIN32ALL
  804 to false both inhibits these features and prevents the
  805 toggle feature from reenabling them.  Previously, even if
  806 USEWIN32ALL was False, the user could toggle the features
  807 back on with the TOGWIN32 program feature.
  808 ProcessOptions() now ends with a call to RefreshDirList()
  809 to make sure any interface features are properly updated.
  810 Previously, the user either had to wait for the next
  811 scheduled autorefresh or initiate one manually.
  812 ----------------------------
  813 revision 2.73
  814 date: 2003/01/19 08:03:49;  author: tundra;  state: Exp;  lines: +77 -42
  815 Added ability to display true Win32 user/group info if win32all installed.
  816 Added USEWIN32ALL option to enable/disable this feature.
  817 Added function TOGWIN32ALL (^w) to toggle this feature on and off.
  818 ----------------------------
  819 revision 2.72
  820 date: 2003/01/19 06:12:56;  author: tundra;  state: Exp;  lines: +96 -45
  821 Where debug and help menus display common information, made titles the same.
  822 Added code to pickup the user name from win32all if it is present.
  823 Implemented code to display native Win32 file mode information if win32all present.
  824 ----------------------------
  825 revision 2.71
  826 date: 2003/01/19 04:55:29;  author: tundra;  state: Exp;  lines: +54 -19
  827 Broke Internal Program Variables and User-Settable Options
  828 into two separate Help menus to keep them reasonable length.
  829 Internal Program Variables are now sorted in both debug
  830 output and in the Help menu.
  831 Added username to titlebar if we can get it.
  832 Restructured win32all imports slightly to make the mechanism
  833 more general.
  834 ----------------------------
  835 revision 2.70
  836 date: 2003/01/19 02:41:22;  author: tundra;  state: Exp;  lines: +20 -29
  837 Dropped "break" from the return at the end of the accelerator handler
  838 logic.  This was inhibiting other Alt- keys from being used as locally defined.
  839 Removed -b, -f, -n, -w, and -s command line flags since color/font parameters
  840 can now be set via configuration file options.
  841 Added options MAXDIRBUF and MAXHISTBUF to bound the data storage used
  842 by UI.AllDirs and UI.CmdHist respectively.
  843 ----------------------------
  844 revision 2.69
  845 date: 2003/01/18 19:13:35;  author: tundra;  state: Exp;  lines: +61 -18
  846 Ended RIGHTS in a period.
  847 Added option variables for setting Menubar color, and Menu/Help
  848 item colors/font:  MBARCOL, MBCOLOR, MFCOLOR, MFNAME, MFSZ, MFWT,
  849 HBCOLOR, HFCOLOR, HFNAME, HFSZ, HFWT.
  850 ----------------------------
  851 revision 2.68
  852 date: 2003/01/18 02:38:22;  author: tundra;  state: Exp;  lines: +237 -85
  853 Added " &' to the end of the non-threaded execution command so it
  854 does not lock up the main interface in a modal wait.
  855 Implemented the Help Menu w/accelerator key.
  856 ----------------------------
  857 revision 2.67
  858 date: 2003/01/17 21:37:22;  author: tundra;  state: Exp;  lines: +10 -3
  859 Added USETHREADS option - allows user to select traditional
  860 process mechanics for command execution on Unix systems.
  861 Ignored on Win32.
  862 ----------------------------
  863 revision 2.66
  864 date: 2003/01/17 20:58:49;  author: tundra;  state: Exp;  lines: +39 -20
  865 Added logic to reset options to their defaults before processing
  866 the configuration file, either initially or on a reload.
  867 This allows the user to comment out an options statment in
  868 the configuration file and have the program go back to
  869 default behavior.   Also cleaned up debug output to separate
  870 internal and user-settable options when asked to dump variable
  871 information.
  872 ----------------------------
  873 revision 2.65
  874 date: 2003/01/17 06:55:46;  author: tundra;  state: Exp;  lines: +18 -7
  875 Added NODETAILS option which prevents details from ever being
  876 displayed.
  877 Added NONAVIGATE option which prevents any navigation away from
  878 starting directory
  879 ----------------------------
  880 revision 2.64
  881 date: 2003/01/17 06:23:01;  author: tundra;  state: Exp;  lines: +19 -11
  882 Reassigned Command History popup to Ctrl-Shift-Button3.
  883 Mask unneeded Mod2-Mod5 bits.  Linux reports NumLock in Mod2
  884 which can cause the program to not respond properly if on.
  885 Changed semantics of Command History slightly:  Commands
  886 entered manually will be saved in the history without the
  887 variables expanded.  All other command invocations
  888 save the command with all variables dereferenced.
  889 ----------------------------
  890 revision 2.63
  891 date: 2003/01/16 23:08:02;  author: tundra;  state: Exp;  lines: +35 -28
  892 Program now catches/warns/ignores DIRSC numbers outside
  893 the range of 1-12.
  894 Cleaned up and generalized the "ignore" masks needed for
  895 the various Unix/Win32 event state variations.
  896 Implemented Alt-Button3 as the mouse shortcut to the History Menu.
  897 ----------------------------
  898 revision 2.62
  899 date: 2003/01/16 18:32:33;  author: tundra;  state: Exp;  lines: +114 -85
  900 Added ability for manually entered commands to reference environment
  901 variables [$NAME] and User-Defined variables [NAME].  This necessitated
  902 factoring out the variable parsing logic into a separate function
  903 callable both by the configuration file parsing logic (for user-defined
  904 commands) as well as the command execution logic (for manually entered
  905 commands).
  906 ----------------------------
  907 revision 2.61
  908 date: 2003/01/16 17:26:03;  author: tundra;  state: Exp;  lines: +81 -66
  909 Fixed problem which cause History Menu to be sorted.
  910 Added ability for manually entered commands to reference
  911 built-in variables.  To support this, the built-in
  912 variable parser was factored out into a separate function
  913 since it is now needed both by the keystroke command processor
  914 and the manual command processor.
  915 ----------------------------
  916 revision 2.60
  917 date: 2003/01/16 01:15:08;  author: tundra;  state: Exp;  lines: +59 -50
  918 Added [YESNO: ...] built-in variable.
  919 Made program more forgiving by converting as many existing
  920 errors to warnings with recovery and continued operation.
  921 Some reformatting of warning messages for consistency.
  922 ----------------------------
  923 revision 2.59
  924 date: 2003/01/15 23:33:58;  author: tundra;  state: Exp;  lines: +137 -115
  925 Fixed problem on Unix when user rapidly selected a
  926 symlink which pointed back at itself - Tk seems to get
  927 confused about what message box it has up, and throws
  928 a benign error.  The Tk call is now protected by
  929 try/except so the error is not seen on stdout.
  930 Retructured options processing into a common routine
  931 so that options get properly set to their defaults
  932 even if the specified configuration file cannot
  933 be found.
  934 ----------------------------
  935 revision 2.58
  936 date: 2003/01/15 21:41:48;  author: tundra;  state: Exp;  lines: +80 -52
  937 Bit 0 of DEBUGLEVEL is now observed on reload of the config file.
  938 Added logic to enforce rule that RHS of a String option cannot
  939 be blank.
  940 Undid forced case collapse of Win32 file names.  Instead, now
  941 under Win32, both directory and file names are sorted using
  942 a case-insensitive algorithm.
  943 Factored menu update logic into a single, common handler
  944 which can talk to either standard functions or event
  945 handlers (via the 'fakeevent' option).
  946 Both MAXDIR and MAXHIST are now observed on a config file reload.
  947 However, they do not actually remove content from their respective
  948 data structures.  They merely limit what is visible.  This allows
  949 a subsequent change to restore the view of previous entries.
  950 ----------------------------
  951 revision 2.57
  952 date: 2003/01/14 22:05:09;  author: tundra;  state: Exp;  lines: +77 -38
  953 Finished support for the remainining options which can
  954 be set in the configuration file: Boolean (AUTOREFRESH, WARN) and
  955 String (BCOLOR, FCOLOR, FNAME, FWT, QUOTECHAR, STARTDIR).
  956 Restructured the command line processing to make sure the
  957 environment variable and then the command line override
  958 any options set in the configuration file and to skip
  959 any options processing if the user just want help or
  960 version information.  Also resturctured the debug logic
  961 to properly display requested information if the user
  962 reloads a configuration file from a running instance of
  963 the program.
  964 ----------------------------
  965 revision 2.56
  966 date: 2003/01/13 22:06:09;  author: tundra;  state: Exp;  lines: +3 -2
  967 Change Directory was preserving last manual entry even
  968 when MAXDIR=0.  Fixed.
  969 ----------------------------
  970 revision 2.55
  971 date: 2003/01/13 21:33:27;  author: tundra;  state: Exp;  lines: +78 -16
  972 Collapsed all Win32 file names to lower-case so that sorted display
  973 makes more sense.  Also fixed bug in which the same Win32 directory
  974 entered in different case would appear twice in the Directory Menu.
  975 Added 'last entry' as default offering in the Change Directory
  976 dialog much like the Run Command dialog already has.
  977 The Clear History feature now additionally clears the
  978 directory stack, the Change Directory 'last entry' buffer, as
  979 well as the Directory Menu itself.
  980 The directory menu logic now honors the MAXDIR option variable.
  981 Fixed bug which left Command Menu enabled after reloading a
  982 configuration file which had no commands defined.
  983 All of the numeric options are now settable from within the
  984 configuration file: DEBUGLEVEL, FSZ, HEIGHT, MAXDIR, MAXNESTING,
  985 MAXHIST, REFRESHINT, and WIDTH.
  986 ----------------------------
  987 revision 2.54
  988 date: 2003/01/13 18:45:28;  author: tundra;  state: Exp;  lines: +137 -99
  989 Added try/except protection around command execution attempts.
  990 Set GUI options like size and fonts *after* the configuration
  991 file is read to allow the file to override the defaults.
  992 Changed 'Last Command' semantics to include items selected
  993 from Command History, but only if they were manually modified.
  994 Changed logic of MAXNESTING to operate correctly when this
  995 variable is set to 0 - this inhibits all user-define variable substitution.
  996 Added MAXHIST variable and supporting logic to bound the size of
  997 the Command History.
  998 Began adding the infrastructure to support setting options in the
  999 configuration file.  MAXHIST, MAXNESTING, HEIGHT, WIDTH now
 1000 can be set this way.
 1001 Began implementing MAXDIR to bound size of Directory Menu
 1002 contents.
 1003 Changed semantics of how options are read at startup.
 1004 The Configuration File (if any) is read before any other
 1005 environment or command line options are processed.  This
 1006 allows the configuration file to override program defaults
 1007 via options specified by the user in that file.
 1008 ----------------------------
 1009 revision 2.53
 1010 date: 2003/01/11 23:24:15;  author: tundra;  state: Exp;  lines: +46 -22
 1011 Commands selected from History Menu no longer as saved
 1012 as the 'last command'.  Only commands actually entered
 1013 manually from the RUNCMD dialog are saved as 'last'.
 1014 Added command to clear all history - CLRHIST.
 1015 ----------------------------
 1016 revision 2.52
 1017 date: 2003/01/11 22:52:02;  author: tundra;  state: Exp;  lines: +83 -68
 1018 Refactored accelerator logic and menu popup logic into common
 1019 routines.
 1020 Added full Command History features and menu.
 1021 ----------------------------
 1022 revision 2.51
 1023 date: 2003/01/11 07:41:07;  author: tundra;  state: Exp;  lines: +23 -4
 1024 Fixed a problem with mouse/keyboard input because different
 1025 configurations of Win32 (even of same OS) cause different
 1026 control bits to be set when the Alt key is pressed.
 1027 Changed logic in DirListHandler() slightly to only add
 1028 a trailing PSEP to a directory if it does not already have
 1029 one.  Necessitated because of the Win32 Drive List View
 1030 which already has trailing '\' for each entry.
 1031 ----------------------------
 1032 revision 2.50
 1033 date: 2003/01/11 00:23:48;  author: tundra;  state: Exp;  lines: +50 -10
 1034 Consolidated all the program execution points into a single,
 1035 common routine, ExecuteCommand(), with a Command History stack added.
 1036 Changed Run Command dialog to default with last command executed,
 1037 if any, in the entry field.
 1038 ----------------------------
 1039 revision 2.49
 1040 date: 2003/01/10 19:26:08;  author: tundra;  state: Exp;  lines: +128 -32
 1041 Fine-tuned the accelerator key logic.
 1042 Added the Directory Shortcut feature.
 1043 ----------------------------
 1044 revision 2.48
 1045 date: 2003/01/09 18:03:07;  author: tundra;  state: Exp;  lines: +127 -57
 1046 Moved SetSelection() into GUI object where it belongs.
 1047 Fixed bug which caused program to exit on Unix if a
 1048 UID/GID was encountered which had no corresponding name.
 1049 Added logic to implemente menu accelerator keys.
 1050 ----------------------------
 1051 revision 2.47
 1052 date: 2003/01/07 21:29:14;  author: tundra;  state: Exp;  lines: +78 -19
 1053 Restrutured all mouse events to go through one of two
 1054 mouse event dispatcher to make it easier to distinquish
 1055 between mouse events modified by Ctrl, Shift, etc. keys.
 1056 Implemented a single list which contains the names of
 1057 all Key/Mouse assignments which may not be rebound in
 1058 the configuration file.
 1059 Implemented a feature to popup the visited directories list
 1060 using the mouse (MOUSEDIR).
 1061 ----------------------------
 1062 revision 2.46
 1063 date: 2003/01/05 23:27:25;  author: tundra;  state: Exp;  lines: +10 -1
 1064 Fixed nasty (and dangerous) bug which prevented the program from
 1065 differentiating between 'char', 'Alt-char', 'Ctrl-char' and so on.
 1066 This meant that a user entering 'Alt-d', for example, would see
 1067 the program try to exectute the command with 'd' as its command
 1068 string.
 1069 ----------------------------
 1070 revision 2.45
 1071 date: 2003/01/05 16:56:23;  author: tundra;  state: Exp;  lines: +31 -21
 1072 Fixed long-standing bug in which Titlebar was not being correctly updated.
 1073 ----------------------------
 1074 revision 2.44
 1075 date: 2003/01/04 22:52:13;  author: tundra;  state: Exp;  lines: +120 -32
 1076 Added capability of displaying a Drive List View while running on Win32.
 1077 This functionality is only available if the user has installed Win32all.
 1078 ----------------------------
 1079 revision 2.43
 1080 date: 2003/01/04 19:00:50;  author: tundra;  state: Exp;  lines: +20 -16
 1081 Added ability to set default options via the 'TWANDER' environment variable.
 1082 Minor cosmetic cleanups.
 1083 ----------------------------
 1084 revision 2.42
 1085 date: 2003/01/03 20:45:53;  author: tundra;  state: Exp;  lines: +76 -44
 1086 Slight reorganization of debug code so it picks up variables
 1087 just before GUI starts running - necessary to get correct
 1088 variable values in all cases.
 1089 Started implementing the "Drives View" for Win32 systems.
 1090 ----------------------------
 1091 revision 2.41
 1092 date: 2003/01/02 22:58:36;  author: tundra;  state: Exp;  lines: +18 -20
 1093 Fixed long-standing (minor) bug.  Under certain circumstances,
 1094 (selecting ".." from root or manually changing to the same
 1095 directory as current) the top of the directory stack could
 1096 end up with the name of the currently-viewed directory.  This
 1097 meant you had to go "back" *twice* to actually get to the
 1098 previous directory.  Now fixed.
 1099 ----------------------------
 1100 revision 2.40
 1101 date: 2003/01/02 21:20:40;  author: tundra;  state: Exp;  lines: +41 -26
 1102 Changed all debug points to use a common output routine, PrintDebug(),
 1103 for consistent output formatting.
 1104 ----------------------------
 1105 revision 2.39
 1106 date: 2003/01/02 17:51:29;  author: tundra;  state: Exp;  lines: +4 -3
 1107 Minor cosmetic cleanup on debug output.
 1108 ----------------------------
 1109 revision 2.38
 1110 date: 2003/01/02 17:19:46;  author: tundra;  state: Exp;  lines: +39 -13
 1111 Implemented multi-level debug capability.
 1112 ----------------------------
 1113 revision 2.37
 1114 date: 2002/12/31 01:17:56;  author: tundra;  state: Exp;  lines: +6 -3
 1115 Inhibited display of Context Menu if no commands defined.
 1116 ----------------------------
 1117 revision 2.36
 1118 date: 2002/12/31 01:09:12;  author: tundra;  state: Exp;  lines: +60 -16
 1119 Implemented context menu feature.
 1120 Added logic to inhibit rebinding of mouse button assignments.
 1121 Fixed bug which caused error when StripPSEP() was called with
 1122 an empty string.
 1123 ----------------------------
 1124 revision 2.35
 1125 date: 2002/12/24 22:16:59;  author: tundra;  state: Exp;  lines: +3 -3
 1126 Minor/cosmetic corrections.
 1127 ----------------------------
 1128 revision 2.34
 1129 date: 2002/12/23 22:34:54;  author: tundra;  state: Exp;  lines: +9 -9
 1130 Cosmetic edits. No functional change.
 1131 ----------------------------
 1132 revision 2.33
 1133 date: 2002/12/23 21:41:37;  author: tundra;  state: Exp;  lines: +22 -4
 1134 Fixed BUG in which [SELECTIONS] was never getting populated.
 1135 Trailing path separator characters on directory names are no
 1136 STRIPPED when returned as a part of any builtin to make command
 1137 authoring more flexible.
 1138 ----------------------------
 1139 revision 2.32
 1140 date: 2002/12/23 15:19:11;  author: tundra;  state: Exp;  lines: +2 -2
 1141 Changed default SELKEY to <Return> (Enter) key.
 1142 ----------------------------
 1143 revision 2.31
 1144 date: 2002/12/21 22:24:12;  author: tundra;  state: Exp;  lines: +54 -5
 1145 Select All no longer include ".."
 1146 Added new feature to Invert Current Selection.
 1147 Added new feature to Goto Root Directory.
 1148 ----------------------------
 1149 revision 2.30
 1150 date: 2002/12/20 06:26:39;  author: tundra;  state: Exp;  lines: +65 -58
 1151 Slight reorganization of code.
 1152 ----------------------------
 1153 revision 2.29
 1154 date: 2002/12/19 16:44:47;  author: tundra;  state: Exp;  lines: +2 -1
 1155 Fixed bug which left Commands Menu enabled after a reload of
 1156 a configuration file which has all command definitions removed.
 1157 ----------------------------
 1158 revision 2.28
 1159 date: 2002/12/19 01:07:54;  author: tundra;  state: Exp;  lines: +18 -6
 1160 Cleaned up debug listings a bit.  Keyboard bindings listing
 1161 now sorted and dumped before internal tables.  Symbol table
 1162 now sorted in the output.
 1163 ----------------------------
 1164 revision 2.27
 1165 date: 2002/12/18 23:58:19;  author: tundra;  state: Exp;  lines: +10 -28
 1166 Went back to original simpler comment semantics, but introduced
 1167 [HASH] builtin to allow this character to be a part of a
 1168 Command String.
 1169 ----------------------------
 1170 revision 2.26
 1171 date: 2002/12/18 22:38:20;  author: tundra;  state: Exp;  lines: +29 -9
 1172 Went back to using "#" as the comment introducer because
 1173 "//" did not solve the problem of emedding comment characters
 1174 in legitimate Command Definitions.  Parser modified so that
 1175 comment characters found anywhere in the Command Definition
 1176 line, except for the Command Key, are ignored.  This means
 1177 comments cannot be appended at the end of a Command Definition
 1178 line.
 1179 ----------------------------
 1180 revision 2.25
 1181 date: 2002/12/18 21:44:36;  author: tundra;  state: Exp;  lines: +2 -2
 1182 Changed comment introducer from "#" to "//".
 1183 ----------------------------
 1184 revision 2.24
 1185 date: 2002/12/18 21:38:55;  author: tundra;  state: Exp;  lines: +9 -4
 1186 Program now properly detects configuration files with no command
 1187 definitions as well as no commands because configuration file
 1188 not readable.  In either case, if no commands are defined,
 1189 the Commands menu is disabled (grayed out).
 1190 ----------------------------
 1191 revision 2.23
 1192 date: 2002/12/18 21:01:45;  author: tundra;  state: Exp;  lines: +3 -1
 1193 Fixed vertical scrolling commands so they move the activation
 1194 into the (top) of the newly visible items.
 1195 ----------------------------
 1196 revision 2.22
 1197 date: 2002/12/18 20:06:49;  author: tundra;  state: Exp;  lines: +33 -3
 1198 Added horizontal scrolling commands.
 1199 ----------------------------
 1200 revision 2.21
 1201 date: 2002/12/18 19:39:41;  author: tundra;  state: Exp;  lines: +16 -5
 1202 Fixed bugs (MAO) that caused incorrect selection with
 1203 first- and last- item selection.
 1204 ----------------------------
 1205 revision 2.20
 1206 date: 2002/12/17 17:19:52;  author: tundra;  state: Exp;  lines: +7 -6
 1207 Added command key display to command menu labels.
 1208 Setup menu text to track size specified on command line.
 1209 ----------------------------
 1210 revision 2.19
 1211 date: 2002/12/17 00:58:23;  author: tundra;  state: Exp;  lines: +20 -3
 1212 Made sure user cannot use redefine one of the built-in variables
 1213 as a user-defined variable.
 1214 ----------------------------
 1215 revision 2.18
 1216 date: 2002/12/15 23:19:23;  author: tundra;  state: Exp;  lines: +3 -3
 1217 Added several more internal variables to the debug dump.
 1218 ----------------------------
 1219 revision 2.17
 1220 date: 2002/12/15 23:11:16;  author: tundra;  state: Exp;  lines: +3 -2
 1221 Fixed bug which prevent "=" from being used as a command key.
 1222 ----------------------------
 1223 revision 2.16
 1224 date: 2002/12/15 22:37:49;  author: tundra;  state: Exp;  lines: +7 -7
 1225 Minor code reorganization to group selection keys more logically.
 1226 ----------------------------
 1227 revision 2.15
 1228 date: 2002/12/15 22:29:56;  author: tundra;  state: Exp;  lines: +7 -7
 1229 Renamed some of the mouse binding variables for greater consistency.
 1230 ----------------------------
 1231 revision 2.14
 1232 date: 2002/12/15 21:47:43;  author: tundra;  state: Exp;  lines: +3 -2
 1233 Destring debug null value indicator.
 1234 ----------------------------
 1235 revision 2.13
 1236 date: 2002/12/15 21:44:57;  author: tundra;  state: Exp;  lines: +3 -3
 1237 Added QUOTECHAR to dump of internal variables.
 1238 Changed dump of internal variables to indicate null values with "None".
 1239 ----------------------------
 1240 revision 2.12
 1241 date: 2002/12/15 21:38:14;  author: tundra;  state: Exp;  lines: +145 -57
 1242 Made all references to configuration file locations (HOME,
 1243 STARTDIR, or -c argument) absolute paths so the file
 1244 can always be found on a reload regardless of current
 1245 directory location.
 1246 Added ability to override default key bindings in configuration
 1247 file.
 1248 Added more debug information. Destrung debug messages.
 1249 ----------------------------
 1250 revision 2.11
 1251 date: 2002/12/14 21:18:15;  author: tundra;  state: Exp;  lines: +2 -4
 1252 Fixed problem properly setting internal HOME variable if $HOME
 1253 was not actually set.
 1254 ----------------------------
 1255 revision 2.10
 1256 date: 2002/12/14 20:42:48;  author: tundra;  state: Exp;  lines: +3 -5
 1257 Went back to using threading for all command invocations.
 1258 ----------------------------
 1259 revision 1.100
 1260 date: 2002/12/12 17:52:55;  author: tundra;  state: Exp;  lines: +28 -2
 1261 Fixed problem with distinguishing user-defined variables from
 1262 command definitions which include the '=' symbol.
 1263 ----------------------------
 1264 revision 1.99
 1265 date: 2002/12/12 16:49:44;  author: tundra;  state: Exp;  lines: +59 -3
 1266 Added Command and Directory menus with necessary supporting logic.
 1267 ----------------------------
 1268 revision 1.98
 1269 date: 2002/12/11 22:50:51;  author: tundra;  state: Exp;  lines: +2 -2
 1270 Added quotation around strings generated by PROMPT:
 1271 ----------------------------
 1272 revision 1.97
 1273 date: 2002/12/11 22:48:57;  author: tundra;  state: Exp;  lines: +5 -5
 1274 Fixed bug in user-defined variable parsing.
 1275 ----------------------------
 1276 revision 1.96
 1277 date: 2002/12/11 21:54:54;  author: tundra;  state: Exp;  lines: +45 -16
 1278 Implemented the PROMPT: builtin.
 1279 Program context now follows directory context selected by user.
 1280 ----------------------------
 1281 revision 1.95
 1282 date: 2002/12/10 02:47:31;  author: tundra;  state: Exp;  lines: +15 -12
 1283 Corrected bug in substitution of builtins.  Added quotation support
 1284 for builtin substitutions.
 1285 ----------------------------
 1286 revision 1.94
 1287 date: 2002/12/09 20:16:53;  author: tundra;  state: Exp;  lines: +2 -2
 1288 Fixed bug in command invocation.
 1289 ----------------------------
 1290 revision 1.93
 1291 date: 2002/12/09 20:08:16;  author: tundra;  state: Exp;  lines: +6 -3
 1292 Changed command execution to use threads only on win32 and
 1293 a simple os.system call elsewhere.
 1294 ----------------------------
 1295 revision 1.92
 1296 date: 2002/12/09 18:37:39;  author: tundra;  state: Exp;  lines: +24 -8
 1297 First implementation of DSELECTION and DSELECTIONS builtins.
 1298 ----------------------------
 1299 revision 1.91
 1300 date: 2002/12/09 17:35:41;  author: tundra;  state: Exp;  lines: +38 -18
 1301 Implemented debugging command line option.
 1302 ----------------------------
 1303 revision 1.90
 1304 date: 2002/12/06 21:23:18;  author: tundra;  state: Exp;  lines: +161 -47
 1305 Integrated new command language parser into the program.  Still have
 1306 to rewrite the runtime interpreter for builtins.
 1307 ----------------------------
 1308 revision 1.89
 1309 date: 2002/12/04 22:48:03;  author: tundra;  state: Exp;  lines: +5 -4
 1310 Changed all instances of os.system() used to run commands to
 1311 use a new thread so that the running command does not block
 1312 'twander' itself.
 1313 ----------------------------
 1314 revision 1.88
 1315 date: 2002/12/01 22:16:10;  author: tundra;  state: Exp;  lines: +30 -12
 1316 Made command keys case-sensitive.
 1317 Implemented 'Run Command' option from keyboard.
 1318 Changed program exit to Ctrl-q.
 1319 ----------------------------
 1320 revision 1.87
 1321 date: 2002/12/01 16:45:57;  author: tundra;  state: Exp;  lines: +25 -6
 1322 Changed time to display mtime instead of ctime.
 1323 Fixed time formatting do drop seconds and pad single-digit dates.
 1324 Changed user/group prefix on Win32 systems from 'nt' to 'win32'.
 1325 ----------------------------
 1326 revision 1.86
 1327 date: 2002/11/27 03:13:09;  author: tundra;  state: Exp;  lines: +10 -3
 1328 Added ability to execute double-clicked file under Unix.
 1329 ----------------------------
 1330 revision 1.85
 1331 date: 2002/11/26 21:01:04;  author: tundra;  state: Exp;  lines: +78 -3
 1332 Added keyboard support for, Select All, Select None, Page Down, and Page Up.
 1333 Added mouse support for Directory Back and Directory Up.
 1334 ----------------------------
 1335 revision 1.84
 1336 date: 2002/11/26 19:28:15;  author: tundra;  state: Exp;  lines: +12 -8
 1337 Added command line option to suppress automatic display refreshing.
 1338 ----------------------------
 1339 revision 1.83
 1340 date: 2002/11/26 18:58:30;  author: tundra;  state: Exp;  lines: +70 -36
 1341 Workaround problem of Tk setting activation after a
 1342 new directory selected via mouse click.
 1343 ----------------------------
 1344 revision 1.82
 1345 date: 2002/11/25 23:06:48;  author: tundra;  state: Exp;  lines: +98 -84
 1346 Fixed problem which happened only when the lstat call filed
 1347 during detail collection.
 1348 ----------------------------
 1349 revision 1.81
 1350 date: 2002/11/25 22:35:06;  author: tundra;  state: Exp;  lines: +82 -56
 1351 Changed detail processing code to use symbolic references to the
 1352 list returned from stat/lstat.  Also provided symbolic definitions
 1353 for each displayed field length.  Restructured the code sets
 1354 the current view and starting offset for the file name and placed
 1355 it as a method in the UI definition.
 1356 ----------------------------
 1357 revision 1.80
 1358 date: 2002/11/24 22:46:18;  author: tundra;  state: Exp;  lines: +31 -9
 1359 Fixed problem in which symbolic links were not properly being noted.
 1360 Added code show expansion of each symbolic link.
 1361 Selection code modified to reflect the fact that the last item
 1362 on a detail display might not necessarily be a filename - it might
 1363 have a symlink expansion tacked on to the end.
 1364 ----------------------------
 1365 revision 1.79
 1366 date: 2002/11/24 19:23:46;  author: tundra;  state: Exp;  lines: +35 -11
 1367 Allow up to 11 char user/group names for both Unix and non-unix systems.
 1368 Changed fromat string in mode processing so that it generates a 6-digit
 1369 octal result instead of doing it manually in a loop as before.
 1370 Added code to detect/process setuid, setgid, and sticky bits.
 1371 ----------------------------
 1372 revision 1.78
 1373 date: 2002/11/24 18:44:51;  author: tundra;  state: Exp;  lines: +33 -30
 1374 Added total size of current directory to titlebar.
 1375 ----------------------------
 1376 revision 1.77
 1377 date: 2002/11/23 10:35:44;  author: tundra;  state: Exp;  lines: +18 -10
 1378 Added logic to pickup the special file types from the mode value.
 1379 ----------------------------
 1380 revision 1.76
 1381 date: 2002/11/23 10:07:27;  author: tundra;  state: Exp;  lines: +45 -5
 1382 Added logic to display file lengths in bytes, KB, or MB
 1383 depending on size.  Began implenting logic to display
 1384 Unix-style permissions.
 1385 ----------------------------
 1386 revision 1.75
 1387 date: 2002/11/23 03:51:47;  author: tundra;  state: Exp;  lines: +30 -23
 1388 More work on the detailed view display.
 1389 Added total file count to titlebar.
 1390 ----------------------------
 1391 revision 1.74
 1392 date: 2002/11/23 03:15:43;  author: tundra;  state: Exp;  lines: +94 -24
 1393 Partial implementation of detail view including toggle key and
 1394 basic logic to populate the detail information.
 1395 ----------------------------
 1396 revision 1.73
 1397 date: 2002/11/22 22:29:00;  author: tundra;  state: Exp;  lines: +27 -19
 1398 Further cleanup of configuration file location semantics.
 1399 ----------------------------
 1400 revision 1.72
 1401 date: 2002/11/22 20:53:40;  author: tundra;  state: Exp;  lines: +6 -10
 1402 Changed program to run even if it cannot find a configuration
 1403 file.  This condition warns the user that they are running
 1404 with no commands defined, but the program will run this way now.
 1405 ----------------------------
 1406 revision 1.71
 1407 date: 2002/11/21 22:59:16;  author: tundra;  state: Exp;  lines: +51 -33
 1408 Implemented ability to select multiple items, both adjacent and
 1409 non-adjacent.
 1410 ----------------------------
 1411 revision 1.70
 1412 date: 2002/11/21 21:06:58;  author: tundra;  state: Exp;  lines: +74 -42
 1413 Further fix to correctly init select/active after a directory change.
 1414 Changed select key to ^space.
 1415 ----------------------------
 1416 revision 1.69
 1417 date: 2002/11/21 19:57:06;  author: tundra;  state: Exp;  lines: +24 -24
 1418 Switched from [] directory delimiters to traling PSEP instead.
 1419 Fixed problem where selection was not 0 after a double-click
 1420 into a directory.
 1421 ----------------------------
 1422 revision 1.68
 1423 date: 2002/11/21 01:05:08;  author: tundra;  state: Exp;  lines: +12 -1
 1424 Program x,y scroll state is now preserved across RefreshDirList invocations.
 1425 ----------------------------
 1426 revision 1.67
 1427 date: 2002/11/20 23:55:16;  author: tundra;  state: Exp;  lines: +11 -20
 1428 Win32 Only: Added ability to execute double clicked file
 1429 selections with Win32 associations.
 1430 ----------------------------
 1431 revision 1.66
 1432 date: 2002/11/19 23:04:15;  author: tundra;  state: Exp;  lines: +21 -17
 1433 Removed display of current selection in title bar.
 1434 Changed binding to go back one directory to ^B.
 1435 Suppressed navigation of symlinks which point back to their own
 1436 directory (Unix only).
 1437 ----------------------------
 1438 revision 1.65
 1439 date: 2002/11/19 10:21:23;  author: tundra;  state: Exp;  lines: +8 -2
 1440 Cleaned up selections involving form: /foo/bar/[....]
 1441 ----------------------------
 1442 revision 1.64
 1443 date: 2002/11/19 10:06:07;  author: tundra;  state: Exp;  lines: +39 -49
 1444 Fixed bug which gave Tk fits if LoadDirList was called
 1445 with either a bogus directory name or a directory for
 1446 which the user does not have read permission.  This affected
 1447 both navigation into a read-protected directory or specifying
 1448 a bogus/unreadable directory in the directory change
 1449 dialog or on the command line.
 1450 ----------------------------
 1451 revision 1.63
 1452 date: 2002/11/19 09:31:43;  author: tundra;  state: Exp;  lines: +26 -58
 1453 Removed all the mutex stuff introduced in previous version.
 1454 Solved long-standing bug of single-click selection of
 1455 file actually selecting '..' by using a Double-Click
 1456 as the selection event.  This works OK, because my code
 1457 forces the active and selected entries to be the same,
 1458 so a single-click will select a file and a double-click
 1459 will select a directory change.
 1460 Changed refresh rate to once every 2 seconds.
 1461 ----------------------------
 1462 revision 1.62
 1463 date: 2002/11/19 01:23:15;  author: tundra;  state: Exp;  lines: +80 -70
 1464 Went back to stdout instead of GUI for -h and -v options.
 1465 Added mutex to serialize access to DirList selection value.
 1466 ----------------------------
 1467 revision 1.61
 1468 date: 2002/11/18 08:00:00;  author: tundra;  state: Exp;  lines: +61 -28
 1469 Added a key assignment to manually invoke RefreshDirList.
 1470 Broke out the selection logic from RefreshDirList into a
 1471 separate SetSelection call which can then be called independently.
 1472 Added logic to finish implementing selection navigation.
 1473 ----------------------------
 1474 revision 1.60
 1475 date: 2002/11/17 19:46:08;  author: tundra;  state: Exp;  lines: +6 -28
 1476 Fixed problem with RefreshDirList not picking up newly added
 1477 files in the current directory.  Instead of trying to manage
 1478 this itself, the routine now calls BuildDirList to get a
 1479 correct current snapshot of the directory.
 1480 ----------------------------
 1481 revision 1.59
 1482 date: 2002/11/17 09:06:50;  author: tundra;  state: Exp;  lines: +33 -27
 1483 Fixed problem with PgUp/PgDn creating multiple selections.
 1484 Changed event bindings from root -> DirList.
 1485 ----------------------------
 1486 revision 1.58
 1487 date: 2002/11/17 07:57:26;  author: tundra;  state: Exp;  lines: +247 -129
 1488 Corrected handling of attempt to enter dir which cannot be opened.
 1489 Corrected finding configuration file in $HOME.
 1490 Added skeleton code for handling addtional selections: Next, Previous,
 1491 First, and Last.
 1492 ----------------------------
 1493 revision 1.57
 1494 date: 2002/11/16 22:31:51;  author: tundra;  state: Exp;  lines: +8 -1
 1495 Fixed problem under Win32 where input focus was lost if a warning message
 1496 box was displayed at startup.
 1497 ----------------------------
 1498 revision 1.56
 1499 date: 2002/11/16 22:12:10;  author: tundra;  state: Exp;  lines: +87 -42
 1500 Fixed several bugs in the traversal stack logic.
 1501 Rewrote RefreshDirList so it manages the widget contents directly
 1502 rather than calling LoadDirList.  This is both cleaner and avoids
 1503 reentrant calls into LoadDirList which appear to give Tk fits.
 1504 ----------------------------
 1505 revision 1.55
 1506 date: 2002/11/15 09:47:43;  author: tundra;  state: Exp;  lines: +43 -22
 1507 Further work on error/warning message display.
 1508 ----------------------------
 1509 revision 1.54
 1510 date: 2002/11/14 23:26:39;  author: tundra;  state: Exp;  lines: +23 -8
 1511 Implemented message boxes for warnings and errors.
 1512 Put skeleton in place for entering new path.
 1513 ----------------------------
 1514 revision 1.53
 1515 date: 2002/11/14 21:48:24;  author: tundra;  state: Exp;  lines: +4 -3
 1516 Active and Selected now track together.
 1517 ----------------------------
 1518 revision 1.52
 1519 date: 2002/11/14 21:29:53;  author: tundra;  state: Exp;  lines: +22 -12
 1520 Added feature to reload configuration file.
 1521 ----------------------------
 1522 revision 1.51
 1523 date: 2002/11/14 04:04:46;  author: tundra;  state: Exp;  lines: +75 -65
 1524 Stored all globals in UI object.
 1525 Added feature to move to $HOME.
 1526 ----------------------------
 1527 revision 1.50
 1528 date: 2002/11/14 03:40:27;  author: tundra;  state: Exp;  lines: +34 -18
 1529 Pulled out key bindings as symbolic assignments for ease of maintenance.
 1530 Made location of config file sensitive to presence of $HOME.
 1531 ----------------------------
 1532 revision 1.49
 1533 date: 2002/11/14 03:06:47;  author: tundra;  state: Exp;  lines: +178 -195
 1534 Reorganized and restructured code for readability.
 1535 Collapsed functions for simplicity.
 1536 ----------------------------
 1537 revision 1.48
 1538 date: 2002/11/13 23:17:16;  author: tundra;  state: Exp;  lines: +59 -39
 1539 Finished RefreshDirList() to keep dislay in-sync with directory contents.
 1540 Eliminated global FILESELECTED by adding twanderUI.CurrentSelection() method.
 1541 New method twanderUI.UpdateTitle() now includes any selected file name.
 1542 ----------------------------
 1543 revision 1.47
 1544 date: 2002/11/13 09:46:26;  author: tundra;  state: Exp;  lines: +11 -2
 1545 Added code to preserve selection and active item in refresh routine.
 1546 Changed #! invocation to use /usr/bin/env.
 1547 ----------------------------
 1548 revision 1.46
 1549 date: 2002/11/13 00:41:51;  author: tundra;  state: Exp;  lines: +101 -48
 1550 Removed global tracking of INDEX value.
 1551 Collapsed DirListHandler() and ProcessSelection() back into one function.
 1552 Broke out IsDirSelected().
 1553 Put in rudiments for RefreshDirList and support for both periodic
 1554 object polling and ^L refresh requests.
 1555 ----------------------------
 1556 revision 1.45
 1557 date: 2002/11/12 10:02:13;  author: tundra;  state: Exp;  lines: +24 -9
 1558 Fixed navigation with arrow keys and spacebar.
 1559 ----------------------------
 1560 revision 1.44
 1561 date: 2002/11/12 01:59:02;  author: tundra;  state: Exp;  lines: +6 -33
 1562 Slight restructuring of code to allow widget handling of up/down arrows
 1563 and spacebar for item selection.
 1564 Still needs work.
 1565 ----------------------------
 1566 revision 1.43
 1567 date: 2002/11/12 01:07:03;  author: tundra;  state: Exp;  lines: +20 -20
 1568 Minor changes.  Fixed subtle problem with visual navigation via ".." which
 1569 happened only when in root directory.  This is now prevented by never showing
 1570 the ".." in the root directory display.
 1571 ----------------------------
 1572 revision 1.42
 1573 date: 2002/11/12 00:01:18;  author: tundra;  state: Exp;  lines: +152 -44
 1574 Added support for Backspace (move up one directory) and Left Arrow
 1575 (go to last visited directory) keys.
 1576 ----------------------------
 1577 revision 1.41
 1578 date: 2002/11/11 21:00:09;  author: tundra;  state: Exp;  lines: +36 -3
 1579 Added support for Esc and Home keys.
 1580 ----------------------------
 1581 revision 1.40
 1582 date: 2002/11/10 21:47:59;  author: tundra;  state: Exp;  lines: +59 -12
 1583 First cut with actual command processing and executrion.
 1584 ----------------------------
 1585 revision 1.39
 1586 date: 2002/11/10 19:21:46;  author: tundra;  state: Exp;  lines: +4 -4
 1587 Back to single-click selections.  Now using the 'listbox.nearest(event.y)'
 1588 method for determining current selection correctly.
 1589 ----------------------------
 1590 revision 1.38
 1591 date: 2002/11/10 00:21:25;  author: tundra;  state: Exp;  lines: +9 -29
 1592 Went back to using an event handler to deal with double-click selections
 1593 within DirList widget.
 1594 ----------------------------
 1595 revision 1.37
 1596 date: 2002/11/09 20:30:49;  author: tundra;  state: Exp;  lines: +17 -9
 1597 Made sure ".." is always first directory listed regardless of sort order.
 1598 ----------------------------
 1599 revision 1.36
 1600 date: 2002/11/09 19:54:29;  author: tundra;  state: Exp;  lines: +46 -14
 1601 Single-Click navigation enabled via polling of listbox because
 1602 Tkinter cannot reliably catch selection changes.
 1603 ----------------------------
 1604 revision 1.35
 1605 date: 2002/11/09 06:20:15;  author: tundra;  state: Exp;  lines: +16 -7
 1606 Added -q option to suppress warnings.
 1607 ----------------------------
 1608 revision 1.34
 1609 date: 2002/11/09 06:07:28;  author: tundra;  state: Exp;  lines: +19 -12
 1610 Added options to set initial window size.
 1611 ----------------------------
 1612 revision 1.33
 1613 date: 2002/11/09 05:47:45;  author: tundra;  state: Exp;  lines: +161 -131
 1614 Reorganized the UI into a single class/object instance.
 1615 Pulled the defaults to top of program so user can edit if they like.
 1616 Added horizontal scroll bar.
 1617 Set initial window size to something more reasonable.
 1618 ----------------------------
 1619 revision 1.32
 1620 date: 2002/11/09 00:31:08;  author: tundra;  state: Exp;  lines: +44 -5
 1621 Implemented scrolling listbox.
 1622 Added options for setting colors and font parameters.
 1623 ----------------------------
 1624 revision 1.31
 1625 date: 2002/11/08 23:39:12;  author: tundra;  state: Exp;  lines: +26 -17
 1626 Installed basic Tkinter UI framwork and directory listbox
 1627 ----------------------------
 1628 revision 1.30
 1629 date: 2002/11/08 21:07:32;  author: tundra;  state: Exp;  lines: +10 -43
 1630 Initial code using Tkinter for GUI
 1631 ----------------------------
 1632 revision 1.24
 1633 date: 2002/11/08 20:55:14;  author: tundra;  state: Exp;  lines: +53 -32
 1634 Last attempt using 'anygui'
 1635 ----------------------------
 1636 revision 1.23
 1637 date: 2002/10/30 23:28:35;  author: tundra;  state: Exp;  lines: +80 -13
 1638 Completed directory navigation logic.
 1639 ----------------------------
 1640 revision 1.22
 1641 date: 2002/10/30 00:00:23;  author: tundra;  state: Exp;  lines: +10 -5
 1642 Cleanup some leftover debug print statements.  Mofified the configuration
 1643 file handling to store both the command and full name using the command
 1644 key as the index.
 1645 ----------------------------
 1646 revision 1.21
 1647 date: 2002/10/29 23:12:31;  author: tundra;  state: Exp;  lines: +114 -19
 1648 Implemented support for finding, reading, and parsing a
 1649 configuration file which contains the user's desired
 1650 command definitions.
 1651 ----------------------------
 1652 revision 1.2
 1653 date: 2002/10/29 00:09:22;  author: tundra;  state: Exp;  lines: +147 -49
 1654 Basic skeleton of code with argument checking and option handling.
 1655 ----------------------------
 1656 revision 1.1
 1657 date: 2002/10/28 23:03:23;  author: tundra;  state: Exp;
 1658 Initial revision
 1659 ----------------------------
 1660 =============================================================================