Version history for FileRunner.

If you are using the MS windows ".msi" version, please make sure you associate .tcl with "wish" and not "tclsh". This will eliminate the empty window MS windows puts up for "tclsh" (however, everything else works fine).

ATTENTION ********** Turn on 'Balloon Help' and hover over directory & file lists to see a list of all the useful Key and Mouse options. **********

Windows users: Filerunner has a MUCH faster (~10 times faster) bit of directory read/display code now.

-------------------------------------------------------------------------------
23.03.07.16 Release

###########################################################################
                 New features with this release:
Rewrite of the balloon (Tips) code to use Elastic Tab Stops. Added bindings to pop up the dir or file info for the directory window or a file in the listing.

For those of you who would like to get "bleeding" edge versions of fr look here: 
https://GandK.site/Tom's/fr

###########################################################################
23.03.07 Well that only half worked. A better fix found.
Changed 'set Window Pos/Size' to do a Save Configure.

23.03.06 Fixed a problem in building the config file when it occurs prior to the window size fully done. This happens at turn on and the result is an infinite loop writing to the config file. Note that different platforms affect this, some fail while others don't.

23.03.04 Fixed a problem in frECF in handling the 'default' argument. Caused the copy to a VFSfile to fail.
-------------------------------------------------------------------------------
23.03.01 Fixed a formating problem in the 'scp' and issues in 'frECF' that caused to mostly fail to copy files from system to system.
-------------------------------------------------------------------------------
23.02.26 Added middle buttons 'Exit' & 'Iconify'

23.02.24 BalloonHelp code locks up sometimes if help for the balloonhelp window is called. Fix balloonHelp to never do this.

23.02.22 Small change to 'VFSssh' which now properly formates 'scp' calls.
Moved 'elastictabs' and 'balloonhelp' to their own packages. This makes exporting commands easier. (To the powers that be: It would be nice if 'auto_mkindex' picked up 'namespace export' and did the right thing (i.e. added the exported commands to the 'tclIndex'))

23.02.20 Resorted the sections of the configuration browser and added new header entries.

23.02.20 Changed 'realWaitForIdle' to use 'update' instead of 'update idletasks'.

23.02.08 Added 'filerunner/*' to the 'sync' exclusion list. This prevents trying to sync a test filerunner which has path '.../filerunner/filerunner'.

23.02.07 Finished rework of 'balloon' code. Messages are shared when ever possible, deleted if the window goes away (e.g. font select window). Also we can now set up children of a window to use the same message (e.g. listbox labels and listbox columns). Balloon bindings are removed if ballonhelp is off.
Added config(dateformatTop) to configure the time at the top of the main window.

23.02.06 Fixed a bug in 'frECF' that was interfering with the 'scp' part of 'VFSssh' ability to formate the call correctly.

23.02.02 Fixed MSW 'enumerate shares' to correctly remove a share/password from the password locker.

23.02.01 Finished reworking the balloon help (aka tips) code. It now even decreases the font size if the window wont fit.

23.01.23 Changed title used on view windows to put the file name first and the path to the file name last. This keeps the file name visable for long path names.

23.01.21 Added code to put focus on the command line when and only when the mouse is in either the text or command windows at the bottom.

23.01.22 We now use a 'twapi' centric routine to gather and process the MSW directories. This  is on the order of 10 times faster than using tcl glob and file commands.

22.12.18 Removed the code to reset mounted VFS dirs at start time from 'async' since we wait anyway.

22.12.09 Fixed 'tclmultilistbox.tcl': config(columnscroll) = 0 causes fr to fail. Thanks Siard for the bug report on this.

22.12.05 Rewrote 'realWaitForIdle' to not use vwait.

22.12.05 Fixed exec->twapi conversion problem if frECF.tcl that caused calls with more than one parameter to fail.

22.12.01 Changed the configure file info on bind to match new code.

22.11.30 Changed the balloon (or Tips) code for the directory entry window and the file list windows to find the current key bindings and report them rather than a canned set that may be configured to something else.

22.11.27 Changed 'fr' key support code to always define <Alt-Key> to do the center on Key. Key center code is disabled in "keyb support" mode, so this provides an alternative when "keyb support" is enabled.

22.11.25 Changed increased the delay between window size request and action in 'tclmultilistbox' code to cut down on repeated updates which add useless overhead to start up code.

22.11.24 Changed collection of "startTimes" to call a function instead of doing a direct lappend.

22.11.23 Change 'fr' and 'cmd' calls to 'smart_dialog' to "focus" the entry button (thanks Peter).

22.11.22 Changes to 'textMenu' to do the right thing when using keyboard control (Up, Down, Return)(thanks Peter).

22.08.04 Added a line to the 'Convert UTF-16' in the text view sub menu to also act on 'backslash' characters. Thus 'foo\nbar' becomes 'foo
bar'.
--------------------------------------------------------------------------------
22.07.29 Rewrite of the 'bind' code. Moved the functions to show full dir/file names to the bind area.  Now 'as shipped' defines Alt-1 and Alt-3 to do these things, but, of course, the user can change this. 
Changed the bind code to attempt to prevent false event triggers. This happens, e.g. <Alt-1> is used. Without the prevention code, this would also genterate <1> and <ButtonRelease-1> especially if the Alt key is released prior to the mouse button.

22.07.19 Enhanced 'elastic-tabs' to also, given a line length, word wrap the line and to accept a line prefix for wrapped lines.

22.07.15 Fixed misspelling of 'canp' in VFSssh chmod code.

22.07.09 Worked over the 'position to char' code to work more correctly and to work right if dirs are mixed in the window.

22.07.08 Added <Cntl button-2> to show full dir name in the directory box and file name in the list panes. <Double Cntl button-2> in list panes shows full info or as set in configuration. Both of these use the balloon-help window and such.

22.07.06 Modified the Configuration window to not exceed th main fr window.

22.07.04 Changed 'as shipped' config(cmd,ucmd) to use '$env(USER)' instead of 'root'.

22.07.02 Worked over the 'tips' or 'balloon-help' code to also provide an expand feature for the dir line and for files in the list box. 
Implemente 'elastic-tabs' for use in balloon-help windows.

22.06.14 Added code to cause a <DoubleClick-Button-1> in the directory entry box to move to the directory under the mouse.

22.06.11 Fixed call to 'doDeferedMessages' with wrong # args. 
Fixed wrong initial mouse buttons for config(bind,<Button-3>,<Control-3>,<Control-2>,<Shift-3> and <ButtonRelease-2>). Confusion was caused by trying to adapt to MAC systems switching buttons from linux and MSW standard.
--------------------------------------------------------------------------------
22.05.31 Added a few words about MSW's WSL to the README file.

22.05.29 Added capability to 'IsKnownError' to return in 3 ways. 
Changed the remount code (which mounts remote systems on fr start) to refine what was started below.
 
22,05.27 Found a solution to long waits for nonresponding remote hosts. Used this to fix long load times caused by trying to mount a file system on a down remote host.

22.05.26 Fixed problem in VFS mount restore code.

22.05.25 Added 'packagesStd' to the 'INSTALL' script.

22.05.24 Change 'frECF' to make wildcard and command expansion optional, 'fr' and 'cmd' to use this option when appropriate.

22.05.23 Found and fixed bug in 'copy' when used to copy files from one remote system to another.

22.04.22 Found a way to defeate 'eval' command's space expansion. User regsub -all { } $string {\x20}. This remove the spaces for eval, but puts them back on the string being expanded later.

22.05.14 Made several changes to fix minor problems on MAC systems, one of which is, for MAC, switching mouse buttons 2 and 3.

22.05.11 Made changes to 'VHSssh' to addapt it to the changes made to 'frECF'. Likewise to 'fr' command window commands.
Some small changes to better work with Mac systems.

22.05.07 Removed 'extrafont' enable from 'fr'. 
Removed '-debug' option from 'freewrap' build.

22.05.06 Small improvements to 'Makefiles/syncWithSim' and now including the sync exclude list 'Makefiles/syncExcludelist'.

22.04.25 Improved filerunner command line processing, especially pipes.

22.04.23 Added code to the 'buildindex' routine to set the execute bits which get lost in MSW.
Set up to use the new icons in the wrap code.

22.04.12 Split the packages into those that are copied standard release packages and the ones we either coded or modified.
Added "listMissingPackages.tcl" to Makefiles directory. Added the following standard packages to (at least) the MSW msi version: "uri" "tls" and "cmdline".

22.04.12 Changed 'fr' to use the new version of 'frECF' for command line execution.

22.04.04 Finally got the 'filerunner.ico' file built to what is needed by 'freewrap'.

22.04.03 Changed 'frECF' to better handle 'twapi' shell calls. 'frECF' now calls 'auto_execok' to get program path names and allow the caller to not have to do this. 'frECF' works with the resolved executable name so even if it is submitted as a '%s' with the command in the 'file' list it will correctly resolve it. If the 'which' command from the command line finds the program so will 'frECF'.

22.04.01 Change 'auto_execok' to correctly handle 'sh' scripts. Added .sh, .tcl and .pl to the file tail list (this is for fr only, windows does not know how to use this).

22.03.19 Changed the filerunner.ico file to what 'freewrap' wants.
Add code to the 'buildindex' to rebuild all package indexes that are not hand crafted.

22.03.11 Moved to latest 'freewrap' for the windows wrapped version. This has twapi builtin so removed it from the freewrap build. Fixed several small errors freewrap brought up in package files.

22.03.08 Finished "Enumerate Shares" for MSW (see Utilities menu).
Fine tuned the progress bar.

22.03.03 Made changes to make the status line also a progress bar.

22.02.21 Abit of cleanup of the "tool tips/aka Balloon help" code.

22.02.09 A bit of cleanup of the 'registery' VFS code. Code is still read only.

22.02.07 Added "extrafont" to provide more font options.

22.02.01 Fix for move/rename where on MSW the new name differs only in case.

22.01.25 Finally a decent print command for MSW.

22.01.06 Enhanced the 'returnall' option of 'pwLocker::getPw' to return all the bits of a found password entry.

21.12.31 Changes to frECF and FixFileName to implement percent/URL encoding as an option. This should be used (%p instead of %s) when passing a file name to a browser.
Yet again, it looks like I have a working ssh vfs. It seems to be able to work with MSW or xnix from linux.

21.12.26 Changed the 'view' command when viewing a directory to use the sym link instead of the name of the sym link. This mainly for MSW which has no simple way to canonize a linked directory name (pwd does it in xnix), but is should also be a tad faster. This action is dependent on 'config(cd_pwd)' being true (i.e. 1).

21.12.14 Small fix to PopError to prevent bogus entries in the error window.

21.12.10 Added code to only ask to save a modified window if the contents were not modified prio to posting to the window (e.g. it is a .gz file or we did backspace processing).

21.11.16 Changed unix version of LnkFile to better handle errors. Used by Paste to a dir entry line which also neede a little work.

21.11.14 Small change to chmod to better manage initial focus.

21.09.05 Added a withdraw to FontControl to get deiconify to work reliably.
Added the 'focus' option to smart_dialog'. This sends focus to a particular button when ever the window is <Enter>'ed.
21.08.11 Remove the Entry->focus connection in the command windows.

21.08.07 Fixed a bug in the built in 'find' code that caused skipping of directories that were also skipped because of links to them. 

21.06.24 Added a "catch" to intelWinSize to catch possibility that the window disappears before we can resize it.

21.06.16 Made changes to VFSrsync to eliminate a password loop. Cancel will now exit the loop with "User Abort" message.

21.05.28 Changed the VFS 'newpwd' code to work more like the local (non-VFS) 'newpwd'. 
Small change to frECF to accept external conversion routines with parameters embeded (as apposed to trailing) in the call.

21.05.08 Found and fixed a bug in MSW environment variable removal code that caused mismatched quotes. Also found and fixed a bug in the "open" code that failed to protect a file name with blanks in it.

21.04.01 Finally, added a 'Utility' to edit filerunner passwords.

21.03.24 Put code in 'CmdMountOnStart' to vastly speed up the checking of mounts that still exist. This speeds up the start up code.
Added a 'utility' to edit the passwords (and, of course, to view them).
Changed the exit code the get off the screen quickly.

21.03.20 Put together the code to manage the self-configuring 'pkgIndex.tcl' file. This is controled buy the 'buildindex' code and sets up the real pkgIndex.tcl files for release while useing the self-configure version for development.

21.03.19 Yet again, I think I have finished the VFSssh code.

21.03.15 Small fix to pipeo.tcl to not error on reporting eof to the caller.

21.03.14 Finished (I think) work on the new VFSssh code.

21.02.28 Changes to the 'Stop' button code to make it work better (at all?). 
Change to the 'cursor' management to not change the cursor for parts of the window that are still available while changing it for all other sub windows.

21.02.27 Changes to pipeo to harden it against missing call back routines.

21.02.26 Changes to VFS code to allow '@' characters in the user name. The last '@' is just before the site address. Earlier '@'s are part of the user name.

21.01.30 Rewrite of "our" URL syntax. We now treat the '/' between the path and the address as a separator and NOT part of the path. This allows relative paths (one '/') and absolute paths ('//'). Rewrite of the URL normalize code to do this and NOT try to run down links over VFS,

21.01.27 Changes to fr and frNavigate to better work with 'ssh' VFS. There is a mode of 'ls' that gives info on if links are to directories or not which means we do not have to try to cd to the link to find out. Much faster.
SshVFS is nearly complete. 
For those who are making changes to the fr, if it fails during initial start up, it starts a tkcon window and passes the error info to it.

21.01.18 Minor change to frNavagate.tcl to accommodate VFSssh list format.

21.01.07 Minor changes to the coloreditor's distribution code to accommodate the new TextMenu which is a hybrid of Menu and Text widgets.

20.11.29 Removed bogus boot up error message (Error 1) in the MSW version.

20.08.03 Additional fix to make rsync copy work with nsf mounted files.

20.07.29 Fix in rsync copy codes handeling of nsf links. (No way to test)
Changed some comments in the configure text.

20.07.21 Fixed a bug in 'findUNC' where the code did not match the configure instructions.
Changed the 'open' configure instructions to use twapi::shell_execute instead of twapi::shell_start.

20.06.09 Found a fixed a bug in 'ViewAny' and how it handles the originalfile name.

20.06.02 Added code to ViewOne to delete other selections when selecting the new file (see 20.03.16 below).

20.05.04 Enhanced the start up to set up display names for cifs shares in *nix systems like is done in MSW systems. Also remounts cifs shares that are in the "currentMounts.tcl" log that may have been dismounted by reboot.

20.04.30 Removed 'config(tail)' as this is no longer used with the new 'follow' code.

20.04.28 Minor fix to MSW code that sets up "shares" to do the right thing on windows start.
Changed the text window 'follow' code to not use 'tail' in any OS. Also changed the 'follow' code to not trip the undo/redo flag and thus the warnning about needing to save the file before exit.

20.04.09 Changed the <Key> to position a directory pane to work without having focus.

20.03.23 Added code to MSW 'auto_execok' to better handle linux #! files. We now check for 'exec' being the first executable and set up what the 'exec' points at. This also detects if '$0' follows the 'exec' and fills this in as needed.

20.03.21 Enhanced the code to handle symbolic links when looking at wsl file systems from MSW. These links can point back to MSW files as well as Linux files.
Changed the 'as shipped' 'open' command for MSW.

20.03.20 Changed dir classifaction code to not treat *.lnk files as links if there is no target file.  This makes it easier to use 'open' to actually wo what is needed. Rewrote and replaced 'LnkFile' which in MSW tracks down *.lnk files.

20.03.16 Found/fixed a problem with 'ViewOne' code where selection needs to be a side effect of the routine.

20.03.14 Fixed a problem in formating the run string from the command line to match sh's expectations.

20.03.13 A lot of work to make a much more reasonable package for WSL. Set up the 'tcl fileutil::fileType" to replace file. This makes 'What is?" work on MSW.

20.02.25 Rewrote the MSW 'LnkFile' code to be much shorted on MSW.
Removed and retired the alternate directory list code for MSW.

20.02.24 Added code to do a reasonable 'What is' on MSW.

20.02.22 Fixed Makefiles/toUnix to not mess with non-text files as it removes \r's.

20.02.21 Changed frECF to convert file names for WSL calls. 

20.02.20 Made changes to 'Makefiles/wrapwindows' to work in an MSW environment.

20.02.19 Changed font for the bottom command line window to the GuiFont which automaticly puts in the update list for font changes.
Added code to the MSW side of the house to recognize the presents of 'WSL' and set up 'Display Names' for each WSL found.
Moved the processing of Display Names to after the set up of 'share' and 'WSL' names so that enties in the users configuration may override those entries.
Added a few lines to the fr "auto_execok" code to track down links (a.k.a. short cuts). It only traces .lnk files if the file name without the .lnk is to be considered (i.e. on the path with an extension from { "" .exe .cmd ...}.

20.02.18 Added code to the *nix version to recognize WSL environment and define globals WSL (bool) and WSLname (the linux version, e.g. debian, fedora). Added a routine to convert WSL file names for MSW files to MSW names. This allows us to from WSL call editors in MSW with MSW or WSL files.
At this point only the edit command uses this code.

20.02.17 Small change to accomodate WSL (Windows Subsystem Linux) whos files can be accessed from the '//wsl$/<foo>' where <foo> is the subsystem name (debian fedoraremix etc.). For reasons unknown, Tcl says the directory is unreadable but when asked returns its contents. 
Also found and fixed a problem of not properly processing the request to supply a new directory when the requested one can not be found.
Made changes to the fr build release process to better run in the WSL environment.

20.02.14 Fr now logs the loading of the "cmds" file from the configuration directory (.../.fr/).
Changed the 'Makefiles/alien.tcl' to give better diagnostics with respect to missing tools.
Change 'Makefiles/makerelease' to continue even if there are errors in the RPM, DEB or msi files.

20.02.13 Changed how 'Makefiles/buildtclfilelist' set up debug to use the fr libraries. Changed the build code 'toUnix.tcl' to preserve permissions (or set them) in *nix version.

20.02.12 Fixed a bug in 'filltextwindow.tcl' where we need to create the namespace, if needed. 
Fixed several bugs in the 'displays::init' code that are triggered by not having the 'xwinifo' program on the system.

20.02.10 We now try several (up to 5) times to delete files (it seems that MSW does not want to delete directories all at once). We sleep fr between tries to let MSW catch up. I wonder if some of the long delays we see in MSW during fr actions are tcl/tk and MSW falling out of sync in some way. 
We now catch 'pipe broken' errors from gunzip which are, it would appear, meaningless.
20.02.09 More tweeks to fixMSWcommand. Made changes to 'Makefiles/makerelease' to do the right thing on MSW platform. Changed the build file 'Makefiles/wraplistControl' to exclude the '.notunix' flag files. Also changed 'Makefiles/buildtclfilelist' to make this possible.

20.02.07 Well the 20.01 changes were not enough. Rewrote fixMSWcommand and auto_execok. We now do much better.

20.01.31 Made changes to the 'fixMSWcommand' code (and friends). We should do a better job with pipes in MSW now. Among other changes we changed the code to isolate commands in a pipe to do a better job.
Made several changes in the build code to allow it to work in MSW. No RPM or DEB, but the rest...

20.01.27 More changes to fix space issues.
Fixed the 'VFSmount' unmount section to do a better job by: a.) insuring neither pane is currently in the files to be deleted directories, b.) putting a hint in the error message that another program may have its working directory in the files to be deleted space and is thus preventing the unmount, c.) restoring both panes on failure to delete, d.) not removing the mounted information unless the unmount succeeds.
Changed the 'PopError' code to put out 'same as above' on the same error being repeated, unless the error message window has been cleared.
Rewrote the 'kill' (kill not found...) code and moved it to the 'unix' only area (twapi can always 'kill' in the MSW version). Put the twapi version of 'kill' in the MSW only code.
Made changes to 'makerelease' to allow it to work in MSW environment.

20.01.25 Several small fixes to fixMSWcommand and auto_execok (both only in the MSW version) to better deal with spaces in path names.

20.01.24 Added code to put a unique idientifier in the title bar (format (fr #...)). For the MSW version it is the pid coded as a base 62 number. For X-window systems it is (fr #dd) or (fr) for the first instance. 

20.01.23 Changed the pane position on <Key> to be case sensitive to control keys as well as normal. Made the "Position to directories" option invert both the directory and normal file positioning (i.e. when set not only does the <Key> position to directories, but the <Control-Key> positions to normal files.

20.01.22 Fixed 'windowsAuto_execOk' (fr version) to always return a list. Failure to do this was messing up the ability to fined commands with spaces in the path to the command.

20.01.19 Added code to .tkconrc to put the current main window's (.)'s title in the tkcon windows title.

19.12.30 Made changes in the "follow" code (used in view windows (button-3)) to properly position the end of the existing and start of the follow text. Also changed how it handles "undo" so, for an unmodified window, the follow does not indicate is is modified. If undo has happened already, the follow changes will be part of the undo stack as I can find no way to exclude them.
Found and fixed a problem in the list box scroll wheel commands that cause scroll to go more lines down (moving to an earlier point in the list) than up for the same scroll wheel movement.

19.12.20 Oops in passwordlocker fixed.

19.12.19 Small change to catch files that disappear while trying to open them. 
Also changed the 5-tkconsearch.tcl to check if the command "_" is defined and if not to define it. (The "_" command is used to internationalize strings. This change allows tkconsearch.tcl to be used in contexts where we are not trying to internationalize.)

19.11.26 Changed "as shipped" configuration to set config(useDIR) to 0. Also removed the display name for REGISTRY.

19.11.11 Yet again found a race condition in pipeoExec. Fixed it.

19.10.13 Changed the encoding routines (in about.tcl) to do the ESC console encoding instead of the overstrike.
This makes it cleaner and more readable if one takes the result to an editor. Fixed a double encoding in the config file generation.

19.09.28 Added the 'Console Esc' commands to the overstrike option. This is what 'man' uses these days. This also open the possibility of the combination of Bold and Italic for the same string/chars.

19.09.08 Changes to 'windowsAutoExecOk.tcl'. This is the code that allows you to run linux programs as servers for linux scripts. Changes made to fix bugs inthe 'MSW open' code.

19.09.05 Made changes to LnkFile which decodes shortcuts to try and get around shortcuts without path names.  These seem to rely on idl or pidl (id list?).  It is possible to schedule these but they are hard to decode in tcl. Using the icon path if possible (i.e. not nil).

19.09.02 Changed 'windowsAutoExecOk to track down '.lnk's first. This is a big help in figuring what it is about.

19.09.01 Extended "overstrike" capability to the configuration browser. Added option to turn it off if a 'clean' config file is wanted.

19.08.29 Code to extend the "overstrike" capability so we can use in the 'About' routine and also in the configuration browser.

19.08.28 Made changes to better handle recursion in the format routine for the configure file.
Made changes to the configure file header info to print the current and possible locations of the configure file.

19.08.27 Added code to set up "overstrike" formating (this is used by the "man" program to do bold and italics or underscore). Since we can do more we will add a configure option to set this up.

19.08.19 Add the new file/routine to the 'Makefiles' directory 'syncWithSim.tcl'.  This is management helper file and is not part of either of the run time (Xnix or MSW) environments.  And further, it will only run on Linux. Please read the file for more info.

19.08.18 Fixed a problem in dispatching 'user buttons'.
Arranged to change the working dir to the directory with the last selection (if not a VFS dir).

19.08.16 Made a small change to the Open code to better handle files with spaces.
Fixed widowsAutoExecOk (an fr command) to always return a list (failure to do so caused file names with blanks to be broken).

19.08.10 Finally figured out how to  make an expandable button with a bitmap in it. (These are the up directory buttons and the center button list left and right buttons.)

19.08.09 Found and fixed a problem in the RunCmd. (Thanks GL.) 
Fixed a problem in the MSW open command that caused failure on file names with blanks in them.

19.08.06 In an attempt to make the OBE (Out of Box Experience) more friendly for new (and old) users, enhanced the production of start up messages to a.) wait for each to be acknowledged before moving on, and b.) putting the "About" message first and the "History" display last.

19.08.04 Changed the window size update when using the "find" command to adjust just the width and height to keep the window on the monitor. This stops the window marching across the screen issue.

19.08.01 Changed the windows code to find the window border and title bar sizes to use the registry.

19.07.29 Change "as shipped" config(geometry,mainops) to "center" to, by default raise the main window in the center of the monitor with the mouse.

19.07.28 Small change to the middle_button_list init code (for systems where this is the first time fr is run) to make sure all the middle-buttons are in the list, thus avoiding the "we added new buttons" message.

19.07.25 Yet another bug fixed in passwordlocker, as well as the delete code in cmd.tcl.

19.07.24 It appears that the Tcl file delete fails on sub directories of CIFS file systems.  We changed to recommend "rm -fdr" for config(cmd,rm).

19.07.23 Added an option to VFSftp to use "active" mode (see config(vfs,helptable) ro configure). Put the config(vfs,helptable) fetch code in frVFS so all VFS code can share it.
Fixed an issue in VFSftp where an error while not timing a transfer caused a further error.
Added trap code to the UserButton code to do Warnnings (not Errors) on conversion syntax things.
Added code to the middle_button to deal with duplicate displaynames (append a number). 
Added code to the botton color code to use the most contrasting color (white or black) for the text.

19.07.21 Changed the format of the "middle_button_list". It now contains a "display name" as well as button colors. Changed to "catch" illegal button colors and report the error.
Fixed an issue with "Tips" aka "Balloon Help" where the mouse was not in a window at then end of the delay.
Removed "HardLink" from the key short cut list. Also removed "Properties" (MSW) from the short cut list.

19.07.17 Fixed the case of move with "No" to each file producing an error (thanks HJ).
We seem to get broken pipe errors in spell-check on stdout. Ignore these.
Minor changes to textsearch to disable the <3> search forward and backward commands if the search sub window is not up.
In the attempt to always use unique window names, we lost the command completion flashing window. Fixed this so it is now properly removed when no longer needed.

19.07.16 Changes to fix the issues with file names that start with "~" somehow got lost. They are now back.
Added code to print a warning if a type II VFS could not be set up at start up. This occures if two VFS type IIs are expanded with the same display name. This fix allows filerunner to start and the print the warning rather than fail to start. The fix is to delete one of the offending Type II expansions.
-------------------------------------------------------------------------------------------------
19.07.08 The change to VFSmount command caused it to not find mounts for other than dirs. Fixed this.
Made a tweak to the monitor prob code so in now works well with the raspi remote login.

19.07.07 Added missing "$" that was causing 'chmod' command to fail.
Added code to make passwordlocker use the first element of VFSpath as part of the 'id' for 'cifs' VFS ids.
Changed MSW to use '-nocase' on searches for cifs shares.

19.07.02 HJ pointed out a case where the deletion of multiple VFS files was deleting the wrong files. Fixed this and in testing found a bug in the 'passwordLocker' while trying to display the password. That also has been fixed.

19.06.28 Fixed Move command to do the right thing with VFS files (thanks HJ).

19.06.27 HJ pointed out that file names starting with "~" are misshandled. This is deeply embeded in tcl but we believe we have it working properly now. (Thanks HJ.)

19.06.25 Fixed the text search sub window so changing the search string does not reset the casefold and regexp options unless a search string is selected from the dropdown.
Did some cleanup on passwordlocker code. It now deals with two types of id's. URLs and "simple" (defined as not a VFS reference). For URLs lack of "@" in the address field defaults to address and nil user. In non-URLs, the lack of "@" defaults to "user" and nil address. In the latter case the nil address is defaulted to "localhost".

19.06.14 Found and fixed calls to try using """'s instead of "{}"'s. This causes file names with blanks to be miss handled. (Thanks HJ)

19.06.10 Added "try open" as an option in the "view" rule (see edit config view extensions).

19.06.04 Found and fixed a problem with 'UNC' handeling in the 'URL' command. Result is smaller faster code that does the right thing.
Fixed a logic problem in the 'findUNC' code for windows.

19.06.02 Made changes in buildindex to report what it is doing.

19.06.01 Overhauled the find server code to correctly set up cifs shares in MSW systems.

19.05.28 Found and fixed a problem in the MSW notify (of file change) interface.
Modified the "HTTP Download" (Etc menu) to do a POST request if the query string is seperated from the URL by "??". The "??" is replaced by "?" and a POST is done instead of a GET.
Fixed the "Move" button code to properly update the directories.

19.05.22 Fixed the "Find" code to properly handle directories with spaces in the name.

19.05.19 Fixed the "windowsAutoExecOk" to handle registry execute flags with "%L"s in them.

19.05.18 Fixed some problems in Try wrt attempts to call with {*} and such in the script. New rules spell out what is needed (for me). (See comments in Try in fr)
Changed the file delete code to collect the files (if multiple selected) and delete them with one call (async or not). Thus only one directory update is needed.
Changed most all Try calls to use the new format, much cleaner.
Fixed a bug in the move code where the "size" was not being properly transfered to the action code (thanks HJ).
Fixed wrong command name when trying to invalidate cache.

19.05.14 Changed window build routines to use unique window names to avoid collision with async usage. At this point the async code gets stuck when it needs to wait for a user interaction (button push, etc.). This is caused by the vwait command and at the moment we are not ready to embrace the co-routine fix.

09.05.13 Finished code to enumerate possible CFS file systems on MSW systems. Used non-blocking program calls as much as possible to allow async searchs for the other systems. 
Found and fixed a bug in windowsAutoExecOk that passed back the program with a nul parameter affixed.
Made changes to passWordLocker to work better with the CFS enumeration code.

19.05.12 Change pipeo code to be easier to read/understand and to fix async and overrun conditions.

19.05.11 Finished work on Try. There is now an "Async" count just after the "Stop" button at the top of the main window. It turns to the "color_highlight_fg" when ever the count is > 0.

19.05.09 Update of the password locker code to allow easy change of the user name.

19.04.30 Changed "Try" to do a better job with "async" requests. Will soon have an "async" job count in the top line. To make room moved the "clone" button to the "Utilities" menu.

19.04.19 Changed the exclude list in "Makefiles/makerelease" to use patterns.

19.04.19 Fixed a bug in the rename code for VFS files (thanks HJ).

19.04.18 Added a new "getDF" routine to the MSW side to use twapi to fetch the remaing free bytes for a given drive.

19.04.16 Enhanced the MSW middle_button_list to initialize to include all new buttons. This to suppress "button added" message on first run on a system that never has filerunner on it.

19.04.15 Added a few lines to the descrptive text in the configure browser.

19.04.14 Added code to config.tcl to clear all "userButtons" as part of reading a config file. This is needed to allow the user to remove and/or rename userButtons.
Forgot to add the task-bar icon set code to the MSW side of things.
Added a note to the "userButton" config code on how to use (or not use) the "prior" flag.
Found and fixed a issue with display names in the <volume> dir.

19.04.13 Fixed bug where user real names were mistaken for display names. Also fixed a bug that prevented display names for root directories from being displayed in the root directory listing.

19.04.12 Fixed bug in user button. Eliminate un-needed "package" request in unix icon code.

19.04.11 Built a new windows directory fetcher. This one will work with any time format and should be a bit faster.
Added code to set up the task bar and top border icons. (This may not work with Active State as they seem to want to force their icon.)
Added a couple of options to the "User Button"

19.04.09 Modified font chooser to not allow Emoji fonts as they cause the present Tk to crash.

19.04.06 Fixed the ".lnk" resolver to catch errors instead of popping up a window.

19.04.05 Added the VFS mount command option "-okerror". This allows us to mount NFS volumes and ignore the "read only" warning.

19.04.04 Wrote code to allow tcl "file copy" to recursively copy into an existing directory. This was a problem particularly on MSW as one would like to use the tcl code there.

19.04.02 Added code to at least ask before attempting to display large files (greater than a megabyte). 
Fixed problem "opening" links in windows.

19.03.30 Added option to make the monitor prob manual to prevent flashing in systems that don't support transparent windows.
More changes to the displays::init code for *nix systems.

19.03.25 Fixed a few small bugs and a timing issue in intelWinsize.

19.03.24 Small fix to get_displays to ALWAYS return something reasonable.

19.03.10 New ::displays::init (Take III). This one does not depend on xrandr which is not in some default systems.

19.03.06 Changed "Clone" so that "file norm" uses the right working dir. This was causing a problem when fr was started from a path with "." or ".." in it.
Fixed a bug in "makerelease" that was using the last time stamp in a file rather than the first.

19.03.04 Changed Listupdate to not use doproc. This was not needed and shifted focus to the main window during updates.

19.03.02 Caught the MSW version up to the *nix version wrt monitors.
Changed the "centerWin" code to use winfo x/y instead of winfo geo for position information (the MSW version of winfo differs here).
Added code to make new windows transparent until it is moved. Did this for popup dialog as well as "view" windows. (Note to ??, MSW appears to put a transparent border on the sides and bottom of its windows. This can be detected by noticing where the mouse switches from a pointer to "move" handle.)

19.03.01 Made changes to "Mount/UMount" to allow a rule to mount a local disk. See config Vfsii for how to define the rule.

19.02.27 Better (much faster) version of ::displays::init for *nix systems.
Made changes to mount to allow it to manage regular mounts.

19.02.17 Found and fixed bug in Arc command.

19.02.16 Fixed ::displays::get to return correct thing when only one monitor. Change ShowRev to defer popup of History until after ::displays::init (Thanks Helmut).

19.02.11 Nearly finished with intelWinSize. We now have size and location options (see config Appearance). Also changes so filerunner comes up on monitor with the mouse in multi-monitor systems. We also bring up "view" windows on the same monitor the generating request came from. (This is configurable, of course.)

19.02.10 Show Console (utilities menu) will now bring the console window to the top, even if it is already open.

19.02.09 New centerWin that knows about borders and such.

19.01.07 Fixed a couple of problems in frUnixBits.tcl. Should now work.

19.01.06 Finished (I hope) work on finding the monitor "workarea" on systems using X11 windowing. This was complicated by various limitations (see the code in frUnixBits.tcl in the packages/unix area, if interested).

18.12.02 More work on VFSsftp and the configure table. Also fixed problem where directory names with a single ' was being taken as an open quote by sftp.

18.11.14 Generalized the configure table for sftp to be usable for all VFS and to provide keyed hints (i.e. key=foo). Changed VFSsftp to look for the following keys: run (to add or change the run parameters, rcopyok to indicate ability to do recursive copies and rmdirempty to indicate ability to remove non-empty directories. Details in the configure browser.

18.11.13 Finished several changes to the "Configuration Browser". The browser has a left and right pane. The order of the right pane is now locked to and configured by the left pane. This is done as part of the build process so as not to diminish the load time. Since, for most start ups, the configuration file is not saved or regenerated, we now save the time of even loading the creation code which is about 79K bytes.

18.11.11 In the quest to work with older ssh code, changed VFSsftp to determine if the ls -f flag is available and, if not, to not use it.
Changed VFS copy to directory to not attempt a mkdir if the directory exists. This stops errors when copying into an existing directory.

18.11.10 Added new configure option to set up options for VFSsftp. This should make it easy to add options as needed or to drop options that are not needed (or supported by the version of sftp being used).

18.11.09 Changed sftp to use -oPort= to be backward compatible. Also dropped the -p for the same reason. Changed VFSftp to report the version of the ftp package it is using.
Added code to the windows version to set up the usable window space on each monitor for windows.

18.11.06 Fixed VFSftp to not choke on "unset pw" with anonymous login. (Thanks to Kevin K for pointing this out.)

Make changes to not populate the "Help" menu if the help file is not readable.

18.11.04 Changed main window build to defer menu building to when the menu is invoked. This eliminates the need to fix the "ucmd" entry in the Utilities menu as it will be built as part of the invoke. Made several changes to speed up the initial load (time to first usable window) of fr.

Added code to find the usable window space on each monitor. Usable space excludes docked windows, panels, and taskbars. The code to use this in positioning windows is not yet written.

18.10.30 Changed the rsync command to properly handle local to local moves.

18.10.11 Added code to make "cursor" and "autoscroll" optional and to "wimper" (not complain loudly) if the "Tklib" package is not present to provide them.

18.10.11 Added comments to "README" to indicate that "Tklib", "tcllib" should be provided.

18.10.09 Found and fixed a bug in the "twapi" install code (only in the *.exc versions) that prevented starting fr.

18.08.26 Added "cursor" package to local packages (thanks WH). This is from tklib which may not be installed. (Same is true of 'autoscroll' package but we added it some time ago.)
Picked up the new bitmap-editor from the tklib release and beat it into something that actually works. (Did the builders ever even try it?)

18.07.29 Rewrote the *.lnk decoder for unix systems and changed to using twapi for this on MSW. Separated the binary routines into a new library routine (fileRipper.tcl).
-------------------------------------------------------------------------------

18.07.19.16 Release

18.07.19 Changed the "dumpStartTimes" routine to enable "frputs" so the output appears on stdout even if "Expanded Error Messages" is off. Added code to modify the "tkcon" "History" command to allow access to all of history and to select multiple commands at once. For details navigate to the "packages/tkconrc" directory and look at the file "8-historyMenu.tcl".

18.07.17 Wrote "replaceMsEnv" to resolve MSW environment variables in strings (things like %USER%). This is now used in LnkFile to properly find the file being refered to. (Past code just returned "confused" in this case.)

18.07.15 Added code to make cut & paste work more reasonably on MS windows systems. See configure for details. The Alt_tkGetSel code is now toast.
Moved more of fr away from "pack" in favor of "grid" to assemble windows. Moved the Tree menu to Unix code as MSW version of tk does not support the cascading needed.

18.07.03 Wrote "realWaitForIdle" (which is used in "smart_dialog") which defines idle as being able to wait for idle without taking more than a calibrated amount of time.

18.07.02 Created a short routine to fix MS Windows tk code with respect to seletions. A new selection now removes the old (at least within the same program). Also added config options to MSW version to a) define two seperate paste actions (paste from selection and paste from clipboard). Also added option to send all selections to the clipboard (as X11 does). 

18.06.25 Changed fr.tcl to always run "wish" after clearing up mistaken assumption about "wish" not doing pipes correctly.

18.06.22 Fixed problem in the "Arc" button command where it was just plane wrong. Thanks Werner.

18.06.16 Modified frECF to translate to "twapi::shell_execute" if MSW & format is "exec %b &". Prior code failed on this but handled "exec foo %b &". This caused the "Clone" button to fail in the MSW version.

18.06.14 Found problem in INSTALL where it fails to install the "inotify" libraries and the .tkconrc files. This affects all linux filerunner packages except the tar.gz (i.e. RPM, DEB and filerunner installed from the tar.gz using INSTALL).

Pasting into the directory line is supposed to go to that dir/file. This was failing in some cases, such as a space in the file name or at the end. Also it could not handle VFS files. If the object being pasted is not a file, a normal paste is done.
Made minor changes in the VFS interface, mainly that the list call gets a URL now instead of VFStok. The intent is to eliminate the need for the pwd call, i.e. get the list for the given URL without referring to the pwd.

Change URL norm to eliminate links the same as "file norm".
Made changes to frputs to only print if one of the possible references is to a monitored source or command if at least one source or command is given. It use to print if more than one source was being reported even if none of them were being monitored.

18.05.19 Change the Ect menu generation code to generate the menu on activation. The result is sensitive to the current working dir, being different for VFS and local. 
Added support for optional VFSmenu code to allow a VFS package to appear in the Ect menu.
-------------------------------------------------------------------------------

18.05.19.18 Release

############################################################################
                 New features with this release:
############################################################################
Re-write and renaming of VFS code (was ftp sftp adb, etc.)
VFS rsync connection added.
typeII VFS defined as way to process various compression formats (see TYPE II VFS in Configuration Browser)
Enhanced Copy command copies from/to anywhere even VFS to different VFS.
Diff now works with either or both files being VFS files.
Open & View (with write back) work with local or VFS files.
Enhanced search command for view, command and Configuration Browser windows.
Http download now handles https as well.
Added command to launch an Elevated fr in MS windows.
Enhanced MS windows command dispatch to process unix like scripts with #! first lines.
Used the TWAPI (MS windows system access code) to provide several enhancements to the MS windows version, including:
  option to replace file delete with recycle
  update on file change 
  Properties window for files
  Short Cut buttons to create windows short cuts.
  better dispatch on commands with no pipe requirements
Enhance MS windows version to handle unicode file names
Enhance the tkcon package to include a default "rc" file as well as an addon to interface with 'frputs' debug options.

For more details on these enhancements see the topic "Latest release expanded notes:" in the "Help->Tips" file.
###########################################################################
              End of new feature list
###########################################################################

18.05.18 Fixed problem with "What is?" not printing its result, also changed to put all files in one window if more than one selected.

18.05.18 Updated the README (aka Install) file.

18.05.17 Modified the "Makefiles/buildindex" routine to build the package files for the "unix" and "windows" packages. Made what was a package file now the target for the "unix" and "windows" packages. We now allow packages that are unique to the platform to appear in the plaform area of the code.

18.05.15 Fix minor problem is VFSadb and frUnixBits.

18.05.07 Minor tweaks to cmd.tcl to fully implement async for "Diff" "Copy*", "Rename/Move*"
Added command to propagate cursor to all sub windows. This means the red circle will appear everywhere in the main window.

18.05.10 A few small changes to better manage messages defered during start up.
Updated the "Help->Tips" to expand on the latest changes.

18.05.06 Changed to more tightly manage filerunners tmp directory. It now has the pid as part of its name so we know which fr it belongs to. Started update of the tips file to expound on the new features.
Fixed a bug in enumCIFS for MS windows that causes abort on start if there is no networking.

18.05.01 Changed config browser to position ---------- line to the top of the window and to have info on what it is about (just look). Added options to the "passwordLocker" entries to all the user to control if a mount point is entered into the "HotList", the "<volume>" list or given a "DisplayName".

18.04.30 Changed to using the volume without the / in the dir list (the slash is added for display). Also eliminate said slash in Display Name code. This makes Display Names easier to manage.
Added Display Names to the HotList entries (not just the first ones).
Changed frNavagate to handle VFS volumes in the volume display (i.e. dir "").
Found and fixed a bug in the ftp VFS error handling code.

18.04.29 Removed extra message at end of sftp link request. Thanks to Helmut for pointing this out.
Added code to Diff command to allow either or both files to be VFS.
Added a "tar" mount/unmount rule to the VFS type II rules.
Fixed a problem in deleting a DisplayName.
Fixed a problem displaying mount points for the volume (i.e. dir {})

18.04.26 Fixed "Select On Contents" to extend the result to all columns of the pane.
Fixed problem in frECF changing exec call to twapi::shell call.
Edited the Tips, and Users Guide to more correctly reflect the updated fr.
Removed the ftp(anonymous) configure. Anonymous is now a user name...

18.04.24 Cleaned up the display of volume to allow "c:/" in the list (was only "c:" which really is different). Tcl file link command seems to put extra characters in the link on windows so changed to use mklink. Expect seems to no longer be available on MSW. Made minor changes in fr expect code and eliminated the request for the "real" expect on MSW. Changed sftp to put the password in the run string (using "psfpt") on windows since it is possible and with out the "real" expect the responce to the password prompt gets lost. Found and fixed a bug in frECF when processing MSW file names that really need to be in "native" mode.
Found and fixed a problem creating links in VFS (sending VFSadd instead of VFSpath). Sftp seems to think links to dirs are really just files. Changed to accommodate.

18.04.20 Thanks to Helmut, changed VFSsftp to work around a bug in sftp. It now seems to correctly do recursive directory writes.

18.04.16 Changed smart_dialog to not bind the text window <Motion> which allows selection (for paste elsewhere). Fix the Display Name code to properly delete entries when so called. Fixed ReadConfig to not move the window.
Changed the copy, move and rename routines to never delete directories.

18.04.16 Expanded VFS recursive dir copy flag to indicated direction. Changed sftp to not be able to do recursive puts (thus causing the copy routines to do the recursion. Change all the VFS code to the new standard.

18.04.09 Changed "passwordLocker" to optionally ignore port info. Also, if more than one entry in the locker matches the ID, it is OK as long as each has the same password.
Fixed rsyncCmd to copy from/to VFSrsync panes. Also fixed it so it updates the target pane if the given dir is still displayed. (Since rsyncCmd is asynchronous it may not be in a pane on completion.)
Defined new global store for VFS packages. Changed VFSsftp over to it.

18.04.08 Clean up of NewPwd to properly handle the nil ({}) directory which we will call the Volume directory. This directory contains volumes (imagine that) as well as all display names and (optionally) external file systems (cifs, nfs, etc). Going up from here gets a popup system directory selection widget.
Changed 'addDN' to allow changing a display name for a given dir and added case sensitivity (for dirs, not Display Names). Trying to use the same DN for different dirs will throw an error.

18.04.07 Added code to 'GetDirList' to put 'config(passwordLocker)' entries for nfs and cifs entries that have valid mount-points in the Volume directory.

18.04.01 Fix a bug in the rename/move code (thanks Helmut). Add a knowErrors function to quietly dismiss them.

18.03.08 Cleaned up the DisplayName code, added a couple of new routines and error checking.

18.03.07 Added a cache for VFSisDir to go with the dir list cache. This speeds up VFS rsync since each call is new connection. Found a problem using the file command to get the directory (file directory). So I wrote "URL directory", combined it with "URL join" and "URL norm" under the one command. Changed all users of URLjoin and URLnorm to use the new code. Fixed problem in MkDir when nothing is selected and neither directory entry window has been changed.

18.03.06 Fixed a bug in the "userButton" set up code. Also a small change in the copy code to not treat files as directories (duh!).

18.03.04 Added the "userButton" option (look it up in the config file). Added "MoveAs" command and made fixes, changes, etc. to properly move or copy to/from VFS or local to local or VFS, including from one VFS to another on a different machine. Made changes to the recursive copy and delete routines used mostly by VFSftp to stop flashing the visited dirs in the panels.

18.02.12 Fixed bug in frECF that was messing up parameters for VFSrsync. Fixed bare word error in VFS open code.

18.02.11 Fixed problem in Display Name code of erroneous matching of directories.

18.02.18 Added "grip"s (little handles in the bottom corners to rezize the window) to the view windows. In the process did a redo of how bitmaps are handled. Part of this was to change the =/# bitmaps of the directory column code to lock/unlock symbols. Also disable is now indictaed by changing the color of the symbols (disable was destroying the symbols).

Thanks to Helmut found missing code in the rsync handling of one of its queries. Also added code to prevent attempting to log in using the Anonymous name/password unless it is an ftp login.

18.02.16 Changed behavior of the "MkDir" button as follows: if either of the dir windows is modified, the MkDir will attempt to create the directory in the latest modified dir window. If neither is modified, MkDir will ask for a new dir to be entered with a seed from the dir entry for the pane that has a current selection. If there is no current selection, it will prompt with the left panes current directory as the seed.

Fixed a bug in MkDir where the new VFS call to make a new dir was incorrect. Thanks to Helmut for pointing this out.

18.02.10 Fixed quoting problem in sftp code. Added code to the windows version to manage DisplayName for shares. Now the user can define how the DisplayName is built for a share.

18.02.08 Found & fixed misspelling in the new copy code. Fixed define of block size in VFSftp module.

18.02.07 Fixed problem in inotify configure code. Fixed the size limit on the bottom text window(s) to not auto adjust by expanding (the reason for the code was to make the window smaller when obscured, not larger). Changed the griding for the "File ...Help" window to leave extra space (if any) just in front of the user name.

18.01.29 Added sample "mount" rule to the  "as shipped" config file.

18.01.23 Fixed error recovery in the mount command and in the Properties command.

18.01.21 Updated the 'build_inotify' script to use the new preferred location for the config directory.

18.01.20 Change and simplified the build process.

18.01.16 Changed INSTALL to not install old files (with ~ etc. suffixes) and to honor .notunix empty file as meaning this is not part of unix release. Like wise .notwindows will be in directories that do not belong in windows release.

18.01.15 Changed the windows cmd /c dir to cmd /u /c dir to get unicode dir listings.

18.01.10 Moved most platform dependent code to packages (mswindows and unix) to reduce the size of unused code on each platform. Wrote new pkgIndex scripts to make this most useful.

18.01.07 Creation of frputs-helper (in package tkconrc) to make using frputs features easier.

17.12.30 Changed the Copy command to always dereference links on the source files or dirs. This is unlike the unix command cp or the tcl file copy commands,
but gives good results, where those commands often reult in links to nowhere.

17.12.29 Fixed problem of handling broken lines in spell check. They are now correctly recognized and put back together.

17.12.27 Enhanced frECF to better work with default conversion specifiers. Added code in frECF to automatically change "exec" command to "twapi::shell_execute" given the right circumstances.

17.12.23 Changed the msi result from "filerunner" to "Filerunner"

17.12.22 Using 'twapi::begin_filesystem_monitor' we now have an inotify equivalent in MS windows. Added reference to recycle bin instead of delete for deleting files. This is a configure option now.

17.12.13 Added ability to easily display a different name in the center buttons. While doing so, fixed the button color code to work better in the MS windows version. Modified "ucmd" (line 3 of Utilites menu) for MS windows to (as shipped) run filerunner "elevated". 

Fixed various bugs and short-commings in frECF and its MS windows front end (fixMSWcommand) to do the right thing.

Added "recycle bin" option to filerunner and modified "rename", "delete", "copy" and move to honor that option when a file or dir is being deleted either directly or as a side effect.

17.11.07 Enhance frputs to trace writes to specified vars. 
Ehnanced 'windowsAutoExecOk' to treat a program/script derived from a script (e.g. foo.sh -> 'bash foo.sh') as a single thing named for the script (foo.sh in this case). The complete thing will be saved in auto_execs.

17.11.11 Fixed problem with "find" not properly handeling directories with spaces in the path.

17.11.06 Pushed tkcon rev from 2.7 to 2.7.1 to avoid conflict with older version in Active State (a problem in MS windows). 
Fixed a bug in the new search code with search patters that start with "-".

17.11.05 Changes to the build package to include "hidden" files (.tkconrc).

Changes to fr to define a display version (same as version but has a trailing "w" if this is a wrapped version), used in all places the version is displayed (top frame, bug reports, about).

17.11.03 Put togethere the "tkconrc" package. This auto installs a tkcon rc file as well as functionality that allows loading extra code to help tkcon.

17.10.26 Rework the code to parse the "dir" command result.

17.10.24 Minor change to the search sub window code to use a proper list for the saved strings.
More enhancements to frputs to add more "ops" to NOT print if call is from a given proc or source. This allows the tkcon rc file to exclude tkcon from seeing calls from itself in the window, even if it uses code that calls frputs.
Yet another rewrite of the 'FixFileName' routine to properly (I hope) pass MS windows file names to various windows commands. Also rewrote the 'frECF' function to build command lines using 'FixFileName'.

17.10.20 Changed getGeo to get really close to the desired size even if the window is not gridded and the desired size is a gridded size. Use this code to resize the result window after a 'find' and after an 'rsync' copy.
Modified 'FixFileName' to do what MSWs wants for parameters and to do special escape secquence for lines that pass through 'cmd'.

17.10.15 Fixed windows directory capture to detect older "dir" command syntax.
Added code to windows version to move TWAPI package to the .fr dir in the freewrap case as freewrap does not allow exectuion of *.dll code from the internal freewrap store.

17.10.12 Changes to fr and config.tcl to isolate appearance configuration (color and font) in prep for elevated mode in windows version. We now have gui,* AND guiE,* configuration entries. Added the TWAPI package to allow more flexibility in MS windows.

17.10.02 Enhanced the http download to also handle https downloads.

17.09.30 Spell check on windows tweaked to work with hunspell (from GNU). Fixed problems with file names containing spaces wrt the view windows.

17.09.29 Refined the command window sizing to (hopefully) not allow you to bury the command entry line. 
Wrote windows code to enumerate the UNC possibilities. (UNC Uniform Naming Convention). This will now provide UNC (i.e. network) addresses in the volume presentation (i.e. where going up from c: lands you).

17.09.29 Refined the command window sizing to (hopefully) not allow you to bury the command entry line. 
Wrote windows code to enumerate the UNC possibilities. (UNC Uniform Naming Convention). This will now provide UNC (i.e. network) addresses in the volume presentation (i.e. where going up from c: lands you).

17.09.24 Changed the "view" window size to have a minimum and a max. The max size is taken from config(geometry,textviewer) or config(geometry,qedit). The min size is 75x5 (most of the time). The 75 is needed to accommodate the search window.
Added code to 'frputs' to print the calling proc name/line # if desired.

17.09.20 Changed code in 'tclmultilistbox.tcl' to use knowledge acquired since first writing it. Result is easier to follow, functionally should be the same.
Fixed 'boiler plate' code to not fail if tcl_pkgPath is undefined. 
Fixed 'updateFrom17.04.19.tcl' to not fail if there are no ftp references in the 'Hotlist'.

17.09.18 Found and fixed a bug in chmod/chown commands when trying recursive option. 
Added code to translate DisplayNames back to directory addresses and put it in place to allow DisplayNames in the directory panes.

17.09.16 After trying and failing to get the grid command to respect the command line when expanding the command windows, wrote a bit of code to do the right thing.

17.09.11 We now defer messages that come up during start up. This allows us to use better windows to display them.

17.09.10 Changed action on finding that the currently displayed directory is no longer available. Prior action was to go to "/". Now filerunner goes up the directory tree a level at a time until a readable directory is found.

17.09.09 Made changes to msi-tool.tcl and wrapwindows to allow sym links in the package directory.

17.09.08 Added the mount and un-mount commands to support type II VFS mount/un-mount. This also includes a "display name" option the displays and arbitrary name for a given path. "Display names" may be defined in the config file and as part of the rule based mount/un-mount commands. Type II VFS mounts have a control file that allows them to be shared with multiple copies of filerunner as well restoring them on restart.

Found and fixed bug that always un-packed or un-arced to the current dir instead of the opposite one.

Found and fixed a bug in the history generation that prevented history collection after the max (32) were collected. Now new history entries are first in the list.

Also change Hotlist to add new entries to the front of the list.

17.08.18 Modified the search option (in view text) to capture search strings on forward (>) and reverse (<) buttons. These strings will appear in the dropdown search entry box as soon as either of these buttons is pressed.

Added an option to check about saving a modified view window if it has no file associated with it (such as diff output).

17.08.15 Change the Font chooser package to eliminate all "pack" commands in favor of "grid" commands. Vertical expansion of the window now increases the size of the font selection windows. Also it now puts up a window indicating it is getting the font info while it is, in fact, getting the font info. Some times this takes a while and it is good to let folks know whats going on. It now also checks to see if the ColorEditor is available and if not does not produce buttons to change the color.

Created the "isCommand" command that takes a pattern and returns a list of all available commands that match. Unlike "info command" it also returns commands that are available for auto loading (but does not load them).

17.07.31 Changed smart_dialog so that the "debug" option returns the variable name that needs to be waited on. This allows combining waiting for the user with another event, such as time.

17.06.17 Enhanced the boiler plate code to include, optionally, backing out of TCLLIBPATH environment code. This insures the filerunner is both correctly shipped and not polluted by user code.

17.06.12 Added a splash screen. Made a few changes to speed up the initial load (mostly removing 'update's). Changed 'centerWin' to use 'req' width and heigth so it does not have to wait for the window manager. Started code to update the config(vfs,logins) from config(ftp,logins). This will be a dialog with the user to get it right.

17.06.07 Enhanced search to have a drop-down window of past search strings. Wrote code to save search strings in the config file. 'View' and 'Q-Edit' share the same search strings list as do the 'Command' and 'Configuration Browser'. Set up a configure option to limit the size of the search strings list.

17.05.24 Merged the window building code for View and Q-Edit to one thing. Fixed spell check code to work with the revised 'smart_dialog' (just changed the window name to force it to be a toplevel window).

17.05.23 Eliminated the Esc key from those used to position the file list (it caused and error).

17.05.22 Enhanced smart_dialog to optionally produce a sub window that can be put in another window. Change the Search code to use the new feature to put the pattern and option window in the top of the text window.

17.05.10 Finished implementing VFSrsync. See users guide for details.

17.05.04 More search enhancement. Added an 'all' option which will highlight all occurrences of a given pattern. Next and previous move the cursor to the next or previous occurrence. Also put the 'textSearch' code in its own namespace.

17.05.03 Enhanced the string search code used with 'View', 'Q-Edit' windows and the two command windows. It now uses a separate data space for these three usages.  This means that a given search will carry over to other windows only within the given type (i.e. 'View', 'Q-Edit' or command). Also enhanced it to start the search as soon as possible so the window will show the results before you hit OK. Also 'Cancel' or delete of the search box will eliminate any search results being shown.

17.05.01 Finished work on a rewrite of the copy code. The same basic code now handles HardLnk, Copy and CopyAs. Filerunner can now copy from any where to anywhere, even from one VFS to another VFS (with a brief stop on the host, of course).

17.04.24 Change the status line display to be anchored east and to show U . for updates. If last display was U ., then skip this one. Also now used the full window width for the display. Tuned this to always use at least on char. less that available to prevent jitter.
Added code to VFS to take advantage of VFS code that can handle recursive copy and delete. Changed VFSadb to use rm -r for all removes as this is recursive and is supported by "toolbox" and "busybox" the common suppliers of "rm" on android.
Found and fixed a bug that was causing excessive updates.

17.04.21 Added code to directory listing decoding to pick up issue from "adb" which mixes 'lstat' errors in the 'ls' output. These file will be listed with a "??" after them. The "link to" field will contain the error (usually 'Permission denied'). 
Continued work on converting to a more general Virtual File System (VFS). VFS code for "ftp", "sftp" and "adb" nearly done.
 
17.04.14 Changed "Paste" into the directory window to use the CLIPBOARD rather than the PRYMARY selection.

17.04.12 Found same problem as fixed in the middle buttons (17.02.21) in the 4 arrow buttons and fixed it. Note to self, DO NOT bind to <1> as a global grab will be in force.

17.04.10 Fixed "accelerator" for command windows. These are delivered to the entry window, so the 'bind' must be on the entry, not the text. (accelerators are the control keys that appear after the menu text, such as "Save As..   C-S")

17.04.08 Work on a complete rethinking of the VFS approach proceeds. Changes made to generalize the dispatch code. The dispatch code supplies the is alive and recovery code and the cache code. The Cache is now an array with the URL as its subscript. Made changes to the "IsDir" code the supply the actual dir name (this code is called when a link is found in the directory to see if it is a file or directory reference). As of this date we have FTP and SFTP up and running.

--------------------------------------------------------------------------------
17.03.28.15

--17.03.31 Enhanced the debug routine 'frputs' to automaticly put its called from location at the start of its output. Made changes to 'windowsAutoExecOk' and friends to be compatable with the changes to frECF. Re-learned the rule to NEVER build a string with list commands (the hard way, of course).
Added code to fr.tcl and fr to remove all traces of routines from env(TCLLIBPATH).

--17.03.28 Changed Run command to pass the command thru subst to evaluate tcl functions and expand "$" references.
Added "raise" to the "Utilities->Show Console" command to move the console window to the top of the stack.

--17.03.27 Continuing changes to frECF, added the %r (raw) specifier. 
Made changes to the Run command to set up the file names without double '/'s, modified the command line to add the required conversions and work better with the new frECF. Also added code to pass a trailing & to the post code to work with the new postOptions code.

--17.03.24 Changed the config file comments for config(cmd,diff) to talk about how to handle gui diff programs.
Changed CmdDiff to pass a trailing & to the postOptions code. Changed postOptions to detect the & and if the string returned is only pids, to ignore it.

--17.03.23 Added to the Tips file info on the new options to frECF.

--17.03.22 Made changes to frECF to add '%q', '%"' and '% 'conversions (see Tips for details). See configure file config(cmd,diff) to see what this allows.

-17.03.21 Changed binding for center buttons to trigger on button release to prevent fr from doing a global grab while executing button code. If the button code waited for another program which required dialog or gui interaction this would lock up all of X11. Thanks to Helmut j. for pointing this out.

--17.03.17 Found and fixed issue with inotify updates not working.
Thanks to Helmut J. for reporting an extra parameter appearing in the "run" command result which is now fixed.
 
--17.03.15 Fixed a problem in the "run" command that was leaving a %s in the run string. Thanks to Helmut J. for not only finding, but fixing this.

--17.03.15 Fixed a bug in the start code that caused the wrong directories on start up. The right order is: if command line dir or file, use that. If not and config startpwd, use that. If neither, use the starting working directory. In the first two cases if a file is given start in the files directory with the file selected. If the users home is desired, use "~/" in the config startpwd configuration. Thanks to Helmut J. for finding this problem.

--17.03.15 Changed the comand line to accept either "-db" or "db" to mean debug.

--------------------------------------------------------------------------------
17.02.27.17

--17.02.27 Added comments to the configuration code to indicate how to turn on the filerunner command line code in MS windows. Fixed misspelled 'async' in ARC and PRINT commands.

--17.02.23 Added the "&" to the "open" command when the file is executable. For other types of files it was already there.

--17.02.22 Finished the "auto_execok" and companion "fixMSWcommand" routines and integated them into the MS windows veresion command line processing.  These will only be used when config(cmd,sh) is null ({}).  When used here the routines will do wild card expansion (all tcl "glob" wildcards are supported) as well as processing of files using the *nix "#! <cmd>" in the first line convention to run <cmd> with the file as its first parameter. To make it easy to port *nix programs we do NOT require the path found here to be correct but do require that the program <cmd> be found on the PATH (env(PATH)) and that it have an extension found in PATHEXT (env(PATHEXT)).

--17.02.12 Made changes to frECF to allow conversions to be embeded in strings.  This is needed to allow one to build URLs (e.g. file://%s) and other such contructs.

--17.02.01 Change the shell command history to eliminate duplicate commands.

--17.02.02 Started integrating a re-written version of auto_execok in the windows version.  This will allow the command window to be much better at executing ms windows commands and recovering the results.
Also changed this history command to print each command on its own line.

--------------------------------------------------------------------------------
17.01.23.17

--17.01.23 Tracked down and fixed a problem with positioning of spell-check window.

--17.01.22 Wrote the "File links 101" section of the Tips file.  Added a function that I hope makes cut and paste more reliable.

--17.01.19 Clean up of the copy, copyas and hardlink code. Fixed a problem in ftp code with "funny" file names. Since the tcl file link will not hard link directories, wrote a version to do what copy -lr does (i.e. recursive hard link). Directories can not be hard linked so normal directories have to be created.

Since [file native ..] is no longer needed in the config file (we always pass native named files to external programs), wrote code to strip it from the config file.

Found (and fixed) that the follow option on view windows was starting one line too soon.

Added a nice long discussion on formating the entries in the configuration file that have file names inserted in them. (Hint, you ought to read it.)

Added code to the inotify updater to enamble turning on and off debug code independently of the master debug switch.

Fixed the new MS windows directory code to recognize <symlink> and <symlinkd> entries.

Fixed a mixup on getting the MS windows icon file included in the wrap version.

Added code to normalize file names passed in the initial run command.

Added the error window to the list of things on the "File" menu.

Coded a new EnHanced Exec call helper (eHe) to allow calls with out worring about special characters in the file name.

Added an icon file to the *.msi version. Enhanced msi-tool to properly handle files that don't have a predefined directory (i.e. the dir is in the name).

Added code to properly handle starting in "wish". Change the .msi comment to account for this.

Changed the .msi build to set the "minimized" option on the shortcuts. Also fixed it to use the right revcode.

Fixed a race problem in find and recurse command.

Changed most commands to use native file names on MS windows. Found reason for loss of pipes (most notable from the command line windows).  In the ".msi" version you must associate "tclsh" with '*.tcl" files to get this to work properly.

Updated the copyright to 2017.

Fixed run command handling of space and the native MS windows file names to do the right thing.

Changed the Log window to just add to a continous line that rolls off to the left.

Add a delete option to the run list editor.  Made a small tweak to super_dialog to better handle buttons without options.

Updated tkcon to version 2.7. (Required for Tk version 8.6.6)

Run command is now usually a two stage process. First the run menu is displayed and then the command to run is selected and run.  It is now possible to just edit the run commands and to replicate them.

Figured out how to prevent unposting of tearoff menus on loss of focus.  Rewrote replacetearoff.tcl to codify the new knowledge. Also changed its name to "FixTearoff" and put the code in it to fix the windows tearoff issue. Much much shorter and full function tearoff menus now.  

Reworked the run command to allow tearoff menus and to put the "duo" (files from both panes) in the saved command. NOTE *** NOTE this change changes the call sequence for CmdRunCmd which is exposed in the configuration menu options. This command now has only one parameter, the "nice" name.

Added code to add "accelerator" indicators to Undo, Redo, and Save menu entries in the View windows.

Change the Log window (just under the File ... Help menu bar) to display the last two entries instead of just the last one. File save (from View and Q-Edit) info is posted here and we would like to have it stay around long enough to see it.

Made minor changes in 'smart_dialog' in an effort to more reliably correctly size the window.

Added "Save" to the "View" menu, changed "Re read" to "Revert" in same menu.  Added a "modified" test to the "Revert" code (as it will undo edits) to allow not reverting. Added code to the "Q-Edit" command to allow exit with out question if there were no changes.

Added to the configure text about "cmd,touch" that it is available as part of the package "fileutil". This package is available in both the wrapped and the Active State tcls on MS Windows.

Changed the "run" command menu for selecting a program from the runlist. Put code in place to allow and process cascade runlists. These need to be set up in the configuration file. There may be as many levels of cascade as desired.

Fixed the ReadConfig code to not extend the configuration file name if it is already extended. The configuration file name is extended when fr is run with a name other than fr (e.g. with a symbolic link).

Fixed the start up code to correctly find the fr code when a symbolic link is used.

The new cascade structure for Hotlists is different from prior releases. This change converts the old format to the new when the configuration file is read.

--------------------------------------------------------------------------------
16.12.15.19

Formalized the "Hotlist" cascade and extended it to as many levels as desired. Added info in the config file on how to do this. Set up the "Hotlist" button to cascade the way it ought.

Changed the "Configuration" button menu to use more cascade entries. Figured out how to make cascade work better in this case.

Updated the config file create routine to allow creating comments specific to the OS. Changed comments to be only for *nix or MS windows depending on the system.

Major speed up of windows version. Re-coded the directory listing code for MS  to not use tcl file routines. This give more information and is fast. We now provide the file owner in windows.

Added code to verify that each config will at least execute.  Added options in the button <3> menu for the Configuration Editor to test individual statements as well as the whole config. Test is also done on OK and must pass before the config file is updated.

Combination fast-check-boxes don't have more than one config option to control. Added code to properly initialize such buttons.

Added config(cmd,rm) to allow users to configure an alternative to file deletion, in particular, to move a file to "Trash" or a "Recycle Bin".

Made changes to the Run command. It will now execute even if there is no selection. Also added an "Edit Entry" toggle to the selection box. If checked, the selected entry is put back in the original entry dialog box.  Changed defaults to a) add the entry to the run list, b) default to async and full file names. If there is no selection any %s just disappears. If there is no %s, no files will be passed even if there is a selection.

Added the "User Command". This is the third entry in the Utilities menu. The user can configure both the label and the command. For windows system we default to "Run fr as admin" and command: "exec runas /user:administrator $argv". For other systems "Run fr as root" and the command "exec sudo -H fr".

Changed to use a compressed version string in the *.exe file names. This should make it easier to process these names as exceptions to the different config files for different program names.

Don G. inspired me to add a feature. If fr is invoked with a different name (i.e. a sym link to fr is used) a different configuration file is used. That file will have the name config-alias-revdate where alias is the name used to invoke fr and revdate is the revision date of fr. If this file does not exist a search is made for one with an earlier revdate. If that fails a search is made for a configuration file for fr by the normal name that is the current revdate or earlier. The net result is that an fr can be configure to run under an alias that starts with completely different configuration. This code will not activate if run as tclsh* wish* fr.tcl or fr-revdate-.exe.

Removed "links" and "owner" from the MS Windows default ListBoxConumns as these are meaningless on MS Windows.

Changed to produce the flags strings for MS windows. Not sure if it is useful but the system does supply the right bits.

Another version tracking problem fixed.

Changed default directory (if none given) for each panel to $HOME.

Made extensive edits to the README (Help->Installation) file.

Found and fixed a bug related to keeping track of the correct version.

Changed filerunner.spec file (used to build rpm and deb packages) to fix the deb doc file compression problem.

Made changes in find.fr.tcl (function that finds the .fr directory) to restrict the selection (and the search) to accepted locations.

Added .txt to the name of the bug report file.  Also allowed more than one to exist at a time.

Remove left over debug message from the kill code which put out "building with /bin/kill" or such.

After discussion with Don G. updated config.tcl to, by default have a "fast-check-box" labeled "Tool tips" to turn on/off balloon help.  Set the default to have balloon help off. Also changed the default button binding to make <3> view the selected file (and other changes).

Updated the Tips file to use sudo in the root-fr example and to remove the list of tcl library routines. The user is now referred to ...filerunner/frlib/ for library routines.

Made updates to the User Guide to reflect the new location of the .fr directory and the tkcon package is shipped with filerunner.

Found and fixed a problem handling blanks in the UnArc and UnPack commands.

Added note in configure "key board support" to indicate that turning on key board support turn off the quick jump to files that start with this key when focus is in a directory window.

Changed the xterm launch code to simplify and eliminate the double 'Try' call. The old code was failing in some cases. Removed some commented out code.

Found bug in code to "View" a document over an ftp connection.

Fixed a few small bugs in rsync copy (and config.tcl) to better handle error conditions.  Added code to create the .fr/tmp dir at start time.

Found (and fixed) a bug in the pipeo code (used in command line at bottom of the window as well as in various commands). Bug caused commands that return strings (e.g. "ERROR: Unknown option:...) with spaces to throw an error.

Werner H. reported a bug in that the keyboard shortcut for "c" (Copy) was failing.  Fixed this.

Fixed a bug in "find" command code that confused the directory such that clicking on a found file failed.

Fixed a bug in CopyAs that cased it to ask about file/directory deletion even though the destination does not exist.

Fixed two bugs in "follow.tcl", first a missing close bracket, and then the call to auto_execok passed the whole of the config(cmd,tail) rather than just the program name.

--------------------------------------------------------------------------------
16.06.30.12

Added note to README on *.deb doc file issues (installs compressed and fails to uninstall).

Move note on removal of checkboxes (a backward compatability problem) to after finishing the configure setup.  This puts the notice on top of a finished main window.

Turns out 8.6.2 is not common.  Changed code to not require it.

Founded we require tcl 8.6.2 or better.  Added this to the rpm spec file.

Updated the INSTALL script to install the new frlib and to handle copying of links (they need to be resolved to do a proper install).

Fixed the doc/Eula.rtf code to true *.rtf for the "msi" build.

Fixed "open" code to better handle file names with blanks and special characters. To avoid having to pass specials and spaces through "exec" changed default for copy on windows to use the pure tcl code.


Wrote code to compute the version by scanning all the release files and building frVersion to hold the result.

Changed the release code to execute the frVersion building code.  Added the msi
building code to the release process.

Fixed the code which computes the number and size of selected files to properly update when the selection is extended. (Thanks to D. H. for pointing this out.)

We no longer require the ".fr" directory to be in env(HOME).  In fact we now prefer it to be in env(HOME)/.config (env(APPDATA) for windows) and that is the default if it is not found.  The search for ".fr" starts at env(HOME) (env(USERPROFILE) for windows) and will go 4 levels deep so it may be most anywhere close to the users directory.  Also we no longer ask for permission to create it.

Coded and got working the msi-tool to build MicroSoft Install files.  This toot builds a Wix Xml file that, if run against the expanded filerunner tar file will build a windows install file for filerunner. Created a new module (fr.tcl) for windows.  All it does is source fr, but the .tcl allows it to be associated with tclsh or wish (either will do because fr now 'package requires Tk').

Created a new sub directory (frlib) where several general purpose (i.e. not really tied to filerunner and its environment) are now stored.  Enjoy. Updated the release code to pick up this library and, hopefully, to better explain the build process.

Change button bind code to revert to default binding when set to "{}".  This makes it possible to get back to <control-1> toggling the selection under the mouse.

Added a routine to format the config file. Changed config file comments to work better with the new routine.  It is now much easier to maintain.

Changed 'spell check' to use the 'pipeo' code.  This allows us to dismiss extra returns from the spell check program.

Did finishing touches to the internal find routine. A the directory currently being searched is displayed under the stop button.  Error lines are put in the results window with a leading blank so the sort to the top when find ends.

Changed the config code comments to mention [file native %s] for windows, and the code that puts the configure # lines to trim blanks from the start of each line.  This allow the # lines to be indented in the source and still be in column 1 in the configure file.

Added code to replace the Tclx kill function if Tclx is not available (the case in freewrapped windows).

Fixed the case of filerunner being located on a path with a blank in it. This caused a no such file error on start up.

Added code to make the buttons with bitmaps display properly under the openbox windowing system.

Change the center button scrolling to not include the three rows of bitmap buttons at the top. I.e. only scroll the command buttons, not the pane management buttons.

Changed the label on the command line in the bottom panes to be just the tail of pwd instead of the whole thing.

Added code to make it possible to do chmod, chown and touch with tcl routines, eliminating the need for those programs. !!! Removed this.  The internal code does not handle the recursive option AND I can not think of any systems that would not have the actual programs. !!!

Added an internal find command so we no longer depend on the find program.

Broke down and added code to the "find" command to allow the user to easily use regexp and casefold expressions.  Also allow a lot of other adhoc options. Stopped using the shell prefix when calling find as it made it necessary to quote shell expansion characters.  Now use "auto_execok to find "find".

Fixed bug in shorting the execute command in window history list.

Changed Find code to use async find with a live window with a Stop button.

Wrote code for a Stop button for async operations.

On second thought, tkcon is so useful it is now part of fr, i.e. the tkcon package is now in the fr group of packages (see ./packages where "." is where fr is located).

Added "Show Console" command to the "Utilities" menu.  This is mainly for debugging. It requires the "tkcon" package which in Fedora is rpm tkcon.noarch. If the package is not found, the command quietly fails.

Added the rsync command.  This is an interface using, expect, to rsync (or alternately to some other command that takes parameters as rsync does, e.g. scp).  The command uses a table that is configured to provide the directory mapping for connections (such as cifs, nfs, ftp, sftp) so rsync can connect via its own link to the remote system.

Extracted several functions that handle strings (especially around taking care of spaces and special characters in file names) to the new tcl module slLib.tcl. Fixed the "Find File" command to not complain if asked to find an open bracket.

Fixed the first line of build_inotify to use a better start sequence.

Added inotify for arch armv6l for all the raspberry pi folks.

Major rewrite of the release tools.  All tcl now.

Move to GPL version 3.

Added the rsync button to use rsync to copy files to/from local/ftp/sftp/file "shares" and nfs directories.

Added code to honer the "ask permission prior to delete" if the file or directory is being overwritten by 'Move' 'Copy' or 'CopyAs'.  Also handle yes/no to all for multiple file operations.

Fixed a bug in Q-Edit, <3> not working at all.

Added re-read file to the <3> mouse button in view window with files.

Change to add more "fast checkboxes". See the configuration file under "fast checkboxes" for details.

Worked over the middle button code to allow possible two line button labels.

Removed comments in configuration file that say you must restart filerunner where that is no longer true.

Change to smart_dialog -textvariable option (which builds an entry window) to insure that the cursor (at the end of the prompt or hint) is visible in the window which (for long lines) may mean that the start of the prompt is not visible.

Changes to the spell correct code to fix a bug where we incorrectly compared two text window positions which cause the text to get "all messed up".

Changed the spell correct code to handle restart while it is waiting for user response to a word correction.

Changed 'smart_dialog' to hang the <destroy> event on the text widget rather than the top window so as to only generate one such event per window destruction.

Also change 'smart_dialog' to more reliably return -1 on window destruction.

Fixed a bug in the rpm scrip where it attempted to delete a non-existent directory. Now it checks first for existence.

Added "Follow end" to the view window mouse <3> menu.  This option connects the linux "tail -f" command to the window such that any lines written to the file being "Viewed" will appear at the end of the window.  This also introduces a new configure option where the exact "tail" command can be specified.  Please note that this option does not play well with "undo" and "redo". In particular, new lines that "tail" produces will be inserted into the undo stack. As part of this change the window that displays "Diff" results no longer has a default filename.  Also the "Save&Quit" option is removed when Viewing items that have no filename (Run, ForEach, Find, CheckSizeOf). These windows may still be saved with the "SaveAs" option.

Fixed a bug in FTP_IsDir which indicated that most anything was a directory. This meant, in particular, that links in FTP directories would be taken as links to directories even if they were to files.

Put a fix in the command window code to properly handle 'cmd&'. Prior to this the 'cmd' needed to be separated from the '&' by at least one space.

Added protection to chmod so as not to try to use it with MS Windows files.

Removed the EntryDialog and EntryDoubleDialog routines, replacing them with smart_dialog.  There is a bit of difference in appearance, info is now highlighted and above the entry widget.

Added the centerMouse2 function and call it when using smart_dialog to move the mouse to the entry window.  This usually makes manual entry possible with out moving the mouse.

Fixed bug in "Find File" that caused an error if the file had blanks in the name.

Fixed bug in View when viewing an FTP file that misshandled blanks in the file name.

Added two sort options to "Find File" to sort on the file name tail or the full file name.

Changed the display of the "Find File" command to:
a) Sort the result
b) Allow searching (same as View..)
c) Saving the result

--------------------------------------------------------------------------------
14.06.18.10
Found and fixed a bug in CopyAs when source is a directory.
Found and fixed a bug in HardLnk which caused failure if the source was a directory and a simple copy if the source was a file.

Expanded the chmod command to include chown as well.  Changed the window to show and allow the user to modify the mode by number, xrw... or the checkbox and to see what it is in those two modes.  Extended the chown command to aftp sftp and ftp.

--------------------------------------------------------------------------------
14.02.22.11

Added tips to the Tips file on thousands grouping of file size and on a button to run a root version of fr.

Small rewrite of the color management code to prevent dark color schemes from washing out the checkboxes and radiobuttons.  Well, not really so small.  Attempt to use the options data base for most all colors.  Removed most color overrides. Added a new 'update' option to the color editor to update on mouse release of a slider.  Made this the default. This should work best for slower machines.

Rewrote the sftp login code to make it easier to read, smaller and more robust. Also, thanks to Denver, found and fixed a problem reading empty directories. Also fixed the chmod over sftp to not print an error message on sucess. Fixed the "show all" option change to re-read the dir in the xFTP case (and in all cases where the cache should not be used).

Well, darn!  The changes to viewAny to handle the windows .lnk file cause it to go astray on file names containing blanks.  Fixed this.

Fixed the prior select code so that the primary selection can be extended without loosing the prior selection.

The "update in place" directory panel update was failing with index out of bound which seems to have been related to using "lset".  Changed code to "lreplace" to fix it.

Found and fixed an issue with not handling ".lnk" files correctly if the name contained spaces.

The INSTALL wants to use -r with the ln command to link /bin/fr to the fr file, however, some ln commands do not recognize this.  Change to only use the -r when doing a build for an RPM.

The version check code did not know how to handle leading zeros on the sub parts. Fixed this.

Changed code in the color editor to delay the update of the nearest colors window until there is no slider movement for .5 seconds.  For slow machines the immediate update caused very poor response to slider movement.

Found and fixed bug that prevented view windows from following the foreground color selection (stuck at black).

Changed the code that updates when an inotify comes in.  Turns out selectively using the "listvariable" allows us to avoid the jitter seen when the last file was displayed in an over full window and we eliminated a lot of code that was trying to keep track of the selection.  Much nicer now.

Lnk decoding failure causes loss of dir listing.  First catch the call and second fix the decoding problem.

--------------------------------------------------------------------------------
14.01.16.16

Added code to make the top directory in windows <volume>.  In it you will find all the volumes on the system.

Changed version to use two digits for each field, even when the leading digit is 0.

Change the "open" routine to use the *.lnk file if we are in windows.  The *.lnk file has a lot of nice things to make the open more useful.

Found and fixed a problem with the Cntl-P in the command line.  Old code was mostly useless.

Added a function to control scrolling of the buttons to prevent moving them down below the top (which left an empty space above).

It seems that windows, at least in some cases, does not provide bindings for the mouse wheel as buttons 4 & 5, but rather as MouseWheel. Added code to pick this up for windows.

Changed smart_dialog to not use 'grab' in an attempt to make it easy to move windows, particularly in MS-windows.

Wrote the generation code for 'packageLinks.tcl' and made the changes to incorporate it in the release.  This code is needed only be the 'wrap' version of fr (*.exe) to overcome shortcomings of the wrap system.

In the testing of the *.lnk stuff found and fixed errors caused by $ and [ characters in file names.

Added code to attempt to decode the windows *.lnk files.

sftp sometimes capitalizes "Password". Fix it so we still recognize it.

Changed the ftp login error to more reliably ask for name and password. Moved that dialog window over to the smartDialog code.  

Minor fix to smartDialog to expand the entry subwindows to expand to the window width.

Changed spellcheck on "fix all" to fix entries prior to the current one that match rather than just the following ones (only happens if the user cancels and then comes back to continue spellcheck).

For reasons unknown the UpdateStat_ code was coming up with "" instead of a number when trying to sum the sizes of selected files.  Changed the code to verify that it has a numeric size before using the number.

Moved most all of the inotify code to a seperate file, mostly so it is not
part of the MS Windows wrap package.

Added an update in place routine to update the dir listings without loosing selections.  It is used only on updates by inode or time.

Added code to inotify update to reposition the dir list after an update.  If the old position was with the last entry at the bottom of the window the update was pushing it off the bottom.

Created "trim-inotify.tcl" to clean up the install by removing unneeded inotify files and putting the required one (if available) in the proper location. Changed INSTALL to move this file and execute it at the right time.

Fixed a race condition when reading a new configuration from the browser.  While the listboxes were down, an inotify happeded.

Made the button column scrollable.

Changed the key position code so you just need focus in the dir window, i.e. you no longer have to select something to position the directory window by pressing a key.

Removed most of the widgets from the accept focus list.  Now limited mostly to the directory windows and the buttons.

Changes the inotify code search to only look for a package if it it not found in the shipped area or the ~/.fr/.  This should make start up faster.

Added code to activate the last selected item in a directory when returning to a directory.  If the opposite window does not have a selection, the last item is also selected.

The default code for button-2 motion was not propogating the selection, fixed this.

Added the "Toggle" function to the list of bind objects.  Its job is to toggle binary config settings.

Added an optional parameter to "ViewDirOpposite" to allow it to work with the current selection rather than what the mouse is pointing at.

Changed Tab in a list box to only move to the file name column, i.e. always takes you to the other file list.

Changed the DoProtCmd family to use a stack to keep track of the update status and cursor.  This should make them re-entrant/ recursive.

Fixed inotify code to keep the select or highlighting colors on update.

Added a binary for i386 to the list of libraries for inotify.

Added 'Back' and 'UpDirTree' to the bind list to allow binding then to arrow keys.

Found and fixed a keyboard support problem where a Right arrow command lost the position in the directory listing causing the next Up/Down arrow to jump to line 1.

Moved the inotify set up to after "first light" (i.e. deiconification of the main window).  This way it will not delay start up.  Also push the reading and set up of the first dir lists into the background.

Found and fixed a bug in the inotify code that prevented notify from running if the file name is 'formatted' by the listboxscrip.

Modified time stamp code to print the execution times for each segment.

Added time stamp code to track start-up times.  Turn on by starting with -db or, to dump later, turn on "Expand Error Messages" and enter, in a command window:
%dumpStartTimes
This dumps the start times on std out.

Added spell checking to the view and quick edit windows. Also allow spell check filters that should make it rather easy to spell check program files.

H.S. also found a bug in the balloon help code when on the extreme edge of the parent window.  In this case the code to offset the message put the resulting pointer outside of the window causing the attempt to find the windows boarder fails.  Changed the code to use the position before the offset.

H.S. found a bug in the Fonts change code's balloon help for the "Here too?" button.  The font reference needs to be coded as global so it works in the balloon context.

More fixes for the config.tcl file.  In the move to using config-rev config files I forgot to include the old 'config' (no rev) in the list of possible choices.  The net result is NO config file is found.  Fixed this.

Added "Autoreq: 0" to the rpm spec file to prevent dependencies being generated by the inotify binary files.  This caused dependencies for both 32 and 64 bit libc, neither of which is needed.

Fixed the RPM script to put the required "#" in front of the config file it builds.

How embarrassing, if env(EDITOR) is not defined we fail to load.  Changed to default to "vi".

A user wanted to eliminate one of the "ship" bindings, but it came back on restart. Changed to destroy any we have in memory when we read the config file.  This is now done by a function call in the config file itself (so we don't have premature destruction).  The function name is "ClearTheDecksHereComeANewConfig".

Added a 'weight' calculation to the color distance list generation in the color chooser.  This corrects for the perceptual differences of colors.  The 'distance' list is the list of near colors in the color choosers window.

The async middle button code had an error in it causing a button 3 press to fail.

Found (and fixed) another ftp problem. Misshandeling directories with spaces in the name.  Looks like in two places, the fr parse code and in ftp_control.

--------------------------------------------------------------------------------
13.7.25.13
Problems reported that 'wish' is not in /bin on all systems. Changed invocation to one that (we hope) is more solid.

Found problem in ftp open code where the port was not being separated from the target host name/URL causing the open to fail.  Also rewrote the 'progress' code to do a much better job.  Also fixed the 'Stop' button implementation in ftp transfers to stop the transfer and, while not deleting the file fragment, at least recovering the connection and some sanity.

--------------------------------------------------------------------------------
13.7.19.16
Added more information to the 'status line' (the line just under the File Configuration ... etc. menu items) balloon help message.

Added code to the 'makerelease' awk script to do all the new things needed to build a release (build the TofC for tips, build the RPM & DEB files, move it all to the new release directory).

Wrote a little script (makeiconfile.tcl) to merge icon files into one file.  This for windows where we now also have the new filerunner icons.

Changes the tar.gz contents to include the master 'png' file as well as the working master (the working master '*.xcf' makes it easy to work on with Gimp.

Worked over the Tips file.  Added a machine generated table of contents. Wrote the code to generate the table of contents (tip_index.tcl).

Moved the icons into their own directry (icons of course)

Completed the scripts to build the RPM and DEB package files.  makerelease now builds everything and puts it in the directory 'Release-<version>'.  It is now a simple move to put a new release on souceforge.

Peter found a bug in the selection update code when using up and down arrows to change the selection.  Fixed!

Added code to display the selected entry (first if more than one) in the Status line. Various info on the file is displayed in the same order as used in the panel. Thank you Peter.

After a lot of PAIN I finally have a set of code to convert the filerunner RPM to a DEB package file.  At least at Fedora 18, this is a real pain as some bits that should be in the DEB support rpms are not there (man pages but no code, for example).  We use alien to do the conversion and stop half way through to fix a few things.  The scrip to do this is fr/Makefiles/alien.tcl. Oh, I almost forgot, I had to change one of the Perl scripts that was trying to find out if it was on a 'native' platform.  It got lost, forever, so I just changed it to not test but return the NO result.  I will not be shipping this script in hopes that Fedora will do better in 19, which I ought to update to...

Made small changes to the configure code to start new users (those with out ~/.fr/config files) with better colors and to avoid terminal errors around not finding said file.

Finished building the filerunner.spec file.  This now allows us to build RPM files.  

Made changes to the INSTALL file to do the right thing when used by the RPM build code.  Mostly this means we build a relative link for the /usr/bin/fr link and that we do not build an uninstall file (RPM package code does that).  We still build the uninstall file if not building for RPM.

Made a change to 'smart_dialog' to now accept an override to the max window width.  Prior to this the max width was the width of the 'master' window.  This resulted in some very narrow windows when 'smart_dialog' was used prior to building other windows (like for errors).

Made the code that finds a 'backup' config file smarter.  It now globs all config-yymmdd files and chooses the one that is oldest as long as it is younger than what it is looking for.

Change main file to directly run /bin/wish.  

Added a configure entry for "paste" to allow definition of additional paste sequences for use with the paste into the directory line (see below).  Without this the mouse <2> was not being recognized.

Added a new option to choose how to spell 'gray' or 'grey'.  This is used in the color editor to offer up color names.

Modified the color editor to use the grid system instead of pack, to get the colornames from a generated file based on the manpage for Tk (colors.n), display an additional window with "near" colors with samples (near to the currently selected color), to use color names when ever possible, and several small cosmetic changes.

Changed paste to the directory window in the case where a file name is pasted.  In this case, if the name is a link, the link is tracked down and the directory is changed to that files directory with the named file highlighted.  If you paste a normal file from the same pane (left or right) nothing happens.  If what is pasted is not an accessable file (or not a file) a normal paste is done.

Added the 'Clean' command to the Utilities menu.  It destroys all open view windows.  Especially nice if some command runs away and creates a bunch of them.

Moved all the 'doc' (those files that are in the help menu) to their own directory.

Wrote an INSTALL script.  Installs filerunner with full desktop and icon files.

Changed the Expect load to a pure tcl package load.  Added a warning that the tcl version will not work with SFTP.  An expect rpm is available from Fedora and I suspect most other system repos.

Put an update command in smart_dialog to make sure that the master geometry is ready before we get it.

I give up.  It is just not possible in Tk to get the display size & such in a multi-display system.  The old code to find this fails and can not be fixed short of guessing.  Filerunner used this in the to keep tool tips on the same display.  So now it just makes an attempt to put the center of the tip as close as possible to the center of the parent window while still keeping one corner of the tip near the mouse & keeping the tip on the screen (the screen is the total of all the displays).  This works fairly well until you put a spread the window over more than one display.  

Built a new icon.  Mercury carring a file folder with a Hubble pic inside.

Changed how we access the inotify package.  It is now just put in the 'packages' directory with special pkgIndex.tcl files that only pass if the 'arch' matches.

Changed to use config-yymmdd as the config file.  The date being the same as the revison code of the source being run.  This allows several different versions to run at the same time.

Changed to withdraw the window while coming up and, when completely up present the window.  Expecially on a slow system, this will look 'nicer'.
--------------------------------------------------------------------------------
13.4.18.11

Updated the Users_Guide.  Recommended reading for this release:
Utilities run command in section 3.1
Mouse Buttons In the File list section 3.3.5.1
Open command in section 3.4
The Internal Text Viewer Menu section 5.1
File name completion section 9.3
Oh, and Regenerate the configuration and read through the changes there.

Fixed bug in ftp mkdir code, looped instead of doing the deed.

On testing, Windows tcl does a POOR job of determining if a file is executable, especially if CYGWIN is installed.  This messes up the command completion code which tries to only return executable files for the command.  Changed the code to return all candidates for Windows.  It still only returns executables for Linux/unix.

Removed the code to change windows file names to use '\' as windows works just fine with the '/' AND it is ever so much easier to work with.

Changed new 'Open' command to directly execute the file if it is executable.  Otherwise call the 'open cmd' program.

Added 'ViewAsTx' (View as text) to the middle button list.  Same as 'Utilities' menu View as text.

Re-wrote the command buffer string handler to better handle '\' and '\ ' to better deal with Windows file names.

Changed the configure write code to do a better job of listing the more complex lists used in the config file.  Also set up the default start up helper command names to contain the .exe post fix if running in CYGWIN.

Added code to add new buttons to the config(middle_button_list) and to remove unrecognized buttons in that list.

Added a new center button 'Run'.  Does the same thing as the 'Utilities' menu Run command.

Enhanced command completion and the command execute code to deal more reasonably
with file & directory names with spaces embedded in them.

Added the 'Open' command/button.  This is the same as 'View' except it uses a different configured list to pick the program to run.  And if the file extension is not in the config(open,extensions) list, this command calls the program config(cmd,open) which should figure out what to run and run it. On windows, this command should be 'cmd /c start'.  On Mac systems it is 'open'.  On Linux systems there are at least these three possibilities: 'gnome-open', 'kde-open' and 'xdg-open'. 

'View' then is for taking a quick peek at a file, while 'Open' does the full thing.

Changed the color reconfigure code to also set up 'options' for each of the colors.  This means we no longer have to configure a window when we build it.  Instead the window code will just get what it needs from the option list.

Change the menu and bind configuration code to allow parameters to be passed to the called function.  This makes it possible to bind a command to a mouse button that will call a mail composer with a list of files to 'attach'.  To finish this, changed the run command to accept an optional parameter which it uses to find the program to run in the 'runlist'.

Enhanced the command completion code to put up a browse window in response to Button 3 in the entry line.

Added new code around the Run command.  You can now set up a list of programs to choose to run along with syntax and 'nice' names.

Added code to catch menu recursion, i.e. a->b->c->a in user menus.

Made smart_dialog even smarter yet.  You can now set it up to execute a script to populate the 'text' window (or, for that matter do most anything).  Also made its global names include the window name so multiple smart_dialog windows can be up at the same time.

Used the new smart_dialog and command completion code to redo the run command which now will do command completion on the item to run as well as let you choose if you want full file names or working directory related file names.

Made smart_dialog even smarter.  It now can handle any number of 'entry' widgets, checkbuttons and normal buttons as well as all the other wonders.

Did a rather complete rewrite of the command completion code.  It now hangs on Tab and DoubleTab.  Can now select completions with mouse <1> clicks from a list of completions. Also moved it into a separate file (aka library).

Found and fixed problem with mouse wheel delta not being what is configured (the scroll was always larger than requested).

Fixed a bug in the copy code that caused directory copies to a directory that already contains a directory by the same name to create a new directory by that name in the existing directory rather than just continue and update files below that directory.

Added a configuration button to turn on/off expanded error messages, mostly for me :).

Added and implemented configurable button bindings for the list boxes.  You can now build menus and attach them to button clicks.  See the configuration file.

Fixed the bug of trying to 'Alt-Esc' from a view window by trapping the sequence and doing exactly nothing.

Wrote a new Entry_Dialog routine and changed code to use it.

Enhanced replacetearoff.tcl to pick up button colors, deal with separators and cascade menus.

Wrote a replacement for tk_dialog (named smart_dialog) which handles all 'fixed' answer questions (like Yes No OK etc.).  It is now used for all of these, including the About window.  It also has a 'monologue' option that is used for the View messages 'not found', 'nothing to undo' and 'nothing to redo'.  This window is usually removed by the next action and may also be removed with mouse button-1.

Turned on 'undo' in the View, Q-Edit, and configure edit windows.  Put 'undo" and
'redo' commands in the button-3 menu.  (Also Cntl-z does undo and Cntl-Z redo.)

Separated the view search code (used in view and the command windows).  Allow search to go either forward or back at each point.  Allow rollover but we stop at the end and tell you about it.  Changed the not found pop up to be frame-less and flashing. 

Moved FontControl and balloon_help to stand alone routines with standard calling sequences.

Moved ReplaceTearoff to a stand alone routine.  Made it better at what it does.  (It replaces a tearoff menu with one that stays around when the parent looses focus.)

It seems a '&' got lost in the Editor script which causes filerunner to wait for the editor to complete.  Fixed this.

Change to the 'Recurse Command' (under Etc) to properly delimit the command for 'sh -c'.  With out the change you needed to put '"' around the command.

Darn, a bug.  Seems like we miss handle zero length pass words.  Fixed.  Thanks to Peter for the bug report.
--------------------------------------------------------------------------------
12.12.25.15

Added a new 'ftp' mode, aftp.  aftp uses adb to talk to Android devices so you can now look at and modify Android device files.  Due to the way adb works, i.e. the file transfer command is done in user mode, even though you enter in 'root' mode you can not read or write protected files/dirs.  This can be worked around by moving the file in question to a temp dir and then the reading or copying that file where you want it. (This is clumsy and I would like to make it easier.)  As for ftp and sftp, aftp allows commands from the command window when connected.  See the 'users guide' on how to set up the access to adb.

Added "Permission denied" to the list of possible results of a list of a directory in sFTP.  This gives a much cleaner error result.

Changed the Read Config code to (hopefully) reconfigure everything the config file controls each time the config file is read.

Added 'Run Command On Selected & prior' to the Utilities menu.  This command builds a line just like 'Run Command On Selected' and adds any entries in the prior selection. This is the same as the second argument to the Diff command.  Thanks to Gösta for this suggestion.

Fixed bug in DIFF button code when the prior selection is more than one element.

Fixed softlink and softlinkas wrt FTP connections.  Softlink was not allowing the command due to improper switch statment labels and both were not setting the force update flag so, even though the command worked the dir listing was not up dated.  In connection with this, the ftp control code was also changed to invalidate the ftp dir cache on "ln" calls so that a new dir list was obtained rather than just using the cache version.

Fixed Bug when exiting the configuration edit and a file is highlighted.  Thanks to Norman for the bug report.

Made several fixes to error reporting from ftp code.  Found some cases where it hangs and made (hopefully) fixes to get around those.

Added code to allow commands in the command subwindow while in ftp or sftp directories.

Added code to the font selection area to bring up the selection box with the actual fg and bg colors preset.

Kevin Knerr pointed out that the Balloon Help font was not changing when configured.  He even provided a patch to fix the problem.  Thanks Kevin.
--------------------------------------------------------------------------------
12.5.23.16

If you are using the *.exe version of filerunner I need help.  Please see the "To Do" list (under the Help menu). 

Added code to respond to the 'Stop' button on long file transfers or directory reads when using SFTP.

Added popup window to ask permission to add SFTP host to the known hosts list.  No aborts the login, Yes continues the login.

Changed the debug LOG file for Expect to put it in the .fr/tmp/ directory.

Added documentation on the '-db' run time option (turns on debugging).

Cleaned up the (s)ftp login code to recover by asking for password again.  Also fixed it so you can save the multi-part sftp password on successful login.

Added code to keep track of open Log windows and append new Log messages to them in real time.

Changed the code to make sure env(USER) is defined and not %something%.  This is so we can use it as the USER name later.  If not properly defined, define it to be either env(USERNAME) or env(LOGNAME).  If non of these are defined pop up a  message and QUIT!

In an attempt to get the windows wrap version to work with sftp, wrote an Expect replacement.  It does everything we need for sftp except the password and pass-phrase thing.  This means that, if the keys are set up on the server and the local machine, all works.  We don't want to use the real windows Expect code as it is not available in 'wrap'.

Change the find displays code (used by tool-tips to place the tip) to be more robust, I hope.

Expanded the password to 'password info' containing the password, 'ssh private key location' and 'pass-phrase'.  These last two parts are meaningful for sftp.  Expanded section 8.8 of the Users Guide to explain all this.

Added code to the sftp handler to use the two extra parts of the 'password info'.

We now encript the ftp passwords that appear in the config file.  

Made changes to sftp coded to say 'yes" to unknow cpu (not sure if this is the right thing, but... need to allow this at least one time to set up sftp connections.
Changed line wrapping on most 'view' windows to wrap at word boundaries.

Completely rewrote the Tips file.  Want right justified file size, space before the file name... check out the Tips.

Changed the install guide to mention the need to install the 'expect' package and to indicate that we just don't have a good answer for the windows package.  The 'expect' package is not pure tk/tcl and so must be compiled to match your machine.

Changed the ftp login sequence.  We now ask if you want to save the user name and password.  

Made changes to how configure 'format' strings are handled.  These are the strings in the configure file with '%s' in them.  The problem is that format output does not (and can not be made to) distinguish spaces that need to be kept from those that separate parameters.  This lead to problems with command (and file) names that have spaces in them.  This, in turn lead to needing to know how many evaluation steps were to be done so as to 'quote' the spaces properly to keep them.  The solution was to define a new sequence of characters (called config(space)) to replace spaces in the strings going into the format command and then to replace this string with spaces in the format command output.  The result is that you (dear user) need not have any knowledge, beyond how to quote spaces, to set up almost all of the config strings.  For details see the comments in the configuration file related to 'space' (near the top of the file, search for 'config(space)'.

Change to allow packages to be included in the distribution (so you don't need to expand your tcl library just for filerunner).  Now include the packages 'ftp' and 'log' (required by ftp).  Packages are in the sub-directory 'packages'.  

Minor changes to the command line script to put 'most' errors in the  command window (as opposed to a popup) and to put failing lines in the history buffer (so you can fix them with out a total retype).  Mostly this helps the '%' commands.

Added comments in the Users Guide on how to set environment variables.
--------------------------------------------------------------------------------
12.3.30.12

This is a future feature flash:
As part of the sftp changes, started implementing a general Xftp handling feature.
The idea is that the user supplies a tcl script named Xftp which handles 
(even if it is only to message that the feature is unsupported) each of the
required ftp calls.  One then opens the Xftp connection by entering Xftp in the
dir line (just like ftp).  A work in progress is to do this with adb (the android
debug bridge).

And now back to the present:

Added a line in the Quick Start guide to get you started browsing a secure
FTP site.

Defined a new debug routine (frputs) this is present if '-db' is in the command
line.  For details see the very end of the 'fr' file.
  
Added an extended message that is printed when the inotify library is not found.
The message details how to build the library required to turn on the inotify
feature.

Removed "Hay Dimwitt" from a few error messages.  

Changed the FTP directory caching to selectively delete entries.  Prior code
deleted all entries on any dir change.  This can be a savings for large dirs
on FTP connections.

Added code to support Chmod in ftp/sftp directories.  Depending on the server
some of the chmod options (such as recursive, add and delete) may not work.

Fixed a couple of bugs in the directory tree command where we want to use a font
but forgot to declare the global container for it.  Also made the directory 
menu that comes up be to the right of the tree button so that even very long
directories will not cover the button and thus confuse the menu button
release with a selection in that menu.

The main point of this release is to add sftp capability.  We can do as much
and sometimes more (links are supported, for example) as we could with ftp.
This support requires the Expect package and uses the external sftp program.
This all started with changing to use the tcl library ftp package.  This made
it very clear what was needed to expand to sftp.

Add a separate inotify flag set for non-local file systems.  Need this to limit
the network (and remote system) traffic.

Add rate limit code to the inotify option.  The maximum update rate (min time
between updates) is now configurable in seconds.  This limits the system 
overload that could otherwise be generated.

Made minor changes in the multicolumn code.  We seem to miss the button-up
event on re-sizing if an update is in progress or occurs during button down.  
While I don't know how to restore this event, I changed the button-up on 
column reorder to also run the button-up on column re-size so we can get 
back in sync.

Made changes to the ftp code to just stay in the current directory if we can not
cd to a new one and the user says cancel.

Change the command line "%" (i.e. do a tcl command) to work even in ftp dirs and
to always have the global 'glob' defined (if you work on filerunner this helps).

Fixed the ShowListOnKey routine (which positions a directory listing when you
type a character in a directory listing window) to not croak on special
characters either as file names or search characters.

Expanded the 'inotify' capability adding configurability and, when possible, 
just updating the affected files line in the directory listing rather than 
redoing the whole listing.

Fixed the Show commands routine (it is supposed to allow you to move the command
buttons up and down) to work correctly again.  It was doubly broken, 1st by the
commands list not actually being the actual button list and then by the small 
size of the new <-=-> command buttons.

Added an 'update idletasks' to the panel update code.  This fixes the problem of
not returning to the same place when poping a directory from the stack.
--------------------------------------------------------------------------------
11.12.25.15

Made changes to the Arc (archive button) code to accept three %s things.  This
allows creation of the archive in some other directory (see configure Arc info).

Changed font update to always update the listbox fonts as the Gui font changes
were also being picked up by the Gui font change.  This keep the fonts separate.

Changed all the menus to have the Gui Font.  This was not specified before.

Fixed the 'reverse' search to start before the last found string so 'Search
Again' works correctly.

Changed the popup that asks if you want to create a directory to take carriage
return as a create request.

Added options 'from here' 'reverse' 'casefold' & 'regexp' (as check boxes) to 
the search query.

Changed the tearoff menu code to actualy build a text box to do the same thing.
This to get around the tcl/tk wanting to iconify the tearoff menu on loss of focus in the master window.

Added "Save&Quit" to the "View" pop up window.

The big reason for this release is the multi column directory list boxes.  Each
column has a header and an optional scroll bar.  Column widths and order as
well as existence at all are configurable.  The left and right directory list
boxes may be locked such that each has the same column order and width or they
may be independent.  Simple buttons control this linkage between the two list
boxes. For those that care, the heart of the multi-listbox code is in a
separate file...

Fixed a problem in GetDisplays (a routine to find and size all display heads)
we we needed to wait a bit longer for the window manager.  Failure mode was
'id not defined on first balloon pop up.

Implemented new sort options 'ascii, nocase & dictionary'.  Changed the code
that positions a directory on a charter typed in the list box to use the 
same sort option.  We added popup in to change the 'sort on' option to 'name
only' when doing this position as it depends on sorting by name. Added a check
box to change it to position directory entries and made this a possible fast
check box.

Implemented 'highlight' background and foreground colors for the second file
to be passed to the DIFF command.  These are, of course, configurable.  Thanks
to Gösta for the suggestion.  He also suggested some help on long file names so
we now position lines in the directory window and all the request windows such
that the end of the line is visible.

Changed the sort routines to make the dirs first/last independent of the 
rest of the sort.  So now dirs first/ mixed/ last is independent of other
sort items.  Also did a 'real' fix on the issue of sorting files with 
blanks in their name.  Also changed to do a better sort on extensions.

Changed the "toggle selection" button (that 'S' in the lower right of the 
file list panel) to actually toggle the selections.

Fixed color editor to (hopefully) find the rgb.txt file and then to properly
build a selection box of named colors.

Changed how we load the inotify package to just directly load it.  This allows
us to check the machine word size and load either a 32 or a 64 bit version.  
Now include both versions (32 & 64) for x86 and x86_64 machines.

Bug fix, was checking the configured 'ask to delete directory' instead of the 
'ask to delete file' flag on file delete.
 
Since Windows platforms can not do relative links, changed code to not
allow setting this flag.
--------------------------------------------------------------------------------
11.2.20.13

Added an option to the right mouse popup on 'view' windows to convert UTF-16.
This simply removes null (X00) characters in the displayed text.  It does not
change the file itself (unless you then select 'save as').

Change the getDisplays (the code that figures out the screen size(s)) to be
call only if needed (its needed by the balloon help code) and then only
once.  There is some minor flashing on the call, in case you are wondering.
This is because we need to actually put up windows on the display and then
measure what appears.

Change the 'term' configuration to accept a position for the working dir.
Term is started in the current working dir (for the selected panel) and 
now the invocation will also accept a working dir value.  See 'term' 
in the configuration section.

Added more mescat calls to prep for localization.  Set it up so that only
the main window translation code needs to be loaded initially.  Other
translations will be loaded as needed.

Added code to figure out the dimensions of the Display(s).  Tk thinks of 
the Screen as the composite of all the displays.  The code figures out the 
dimensions and locations of the Displays (up to 6) and builds a list
of the info for each display (glob(displays)). Each element is:
{xmin xmax ymin ymax} where xmin,ymin define the top left corner in
screen pixels.

Modified the Balloon code to use the above info to position the balloon
help box so that it is on the same display as the mouse and is completely
on that display.

Fixed commands run from middle buttons which ask for more info to put
the inquiry window on top of the main window.  Most annoying when using a two
head display to have the inquiry window show up on the other display.

Fixed 'For each' command (under 'Etc' menu) to display the pattern rather
than just '*'es.

Fixed error in 'bgerror', missing ']' introduced with message catalog changes.

Changed the get dir list code to:
 a.) get hidden (i.e. '.x') links.  Turns out the 'glob -type hidden' will 
     not return links.  
 b.) To correctly process files beginning with '~'.  We were quietly
     deleting them from the list.
--------------------------------------------------------------------------------
10.12.28.23

Cleanup for release.  Notify is now working correctly..  Since I modified
the inotify tcl interface code I am including it in the release.

Changed the PopError code to use the same window for all errors, just
appending the new error text at the end.  This should prevent the flood
of windows when, for example, a copy of a directory fails.  Also added
an option to clear the error window.

Added code to use the Linux kernel inotify command to trigger dir updating.
The timed update is still there, but can be shut off (always could be) with
the 'Autoupdate' entry under 'Miscellaneous'.

Added a new configure option to configure check boxes into the main (top) menu.
By changing the configure option 'fast_checkboxes' you can now specify up to
7 different check boxes.  Chose Edit Configuration in the Configuration menu,
then Fast Checkboxes (under Miscellaneous) to read all about it.  Thanks to
Peter Vollmar for this idea.

Added the middle_button_list to the configure options.  You can now configure
the middle button list, i.e. disable (i.e. disappear) a button, or change
the button order.  You can even put the same button in more than once.

Fixed the code that reads in user command buttons to work correctly.  It 
was reading the code and then just throwing it away.  Also changed the example
in the user guide to do the correct call to EntryDialog.  This code was
changed to require the window as the first parameter (see below change to
EntryDialog).

Fixed the dir list heading to scroll (left & right) with the dir list.

Fixed the view window tearoff menu to be a slave to its master window.

Focus follows mouse introduced a problem with the MkDir and Select buttons in
that they could not find the changes in the dir list dir line.  Fixed this.

Changed EntryDialog code to pop up the window in the proper place and to make
the dialog window part of the window requesting dialog.  For example when 
saving a file just 'viewed'.

Initialized the hotlist for windows with the volume list, i.e. /a /c etc.

Added code to make the popup that asks about creating <home>/.fr appear
near the middle of the screen, least it get lost on an edge.

Minor change to give a higher probability of getting all the config info
in view when clicking on the item in the left hand edit configuration window.
--------------------------------------------------------------------------------
10.9.21.13

Fixed a bug that prevented FTP setup.  Also a problem with USER vs USERNAME
env variables (first is for non-windows, second is windows).
--------------------------------------------------------------------------------
10.9.20.14   <- That too is a date, but a nicer looking one :)

Changed to use env(USERNAME) instead of env(USER) for windows. Fixes the
first line in the window.

Added the Makefiles dir to the release..

Fixed the 'Clone' code to work correctly for windows as well as linux and
(hopefully all platforms).  This also involved fixing the handling of file
names (and paths) with blanks in them.  Also changed the 'wish' call from 
'exec wish "$0" "$*"' to exec wish "$0" "$@" so the parameters are separate.

Added code to pop up the 'Hotlist' if the up button '^' is pushed and the
result is the same dir (trying to go back from '/' or, more to the point
'c:/').  The notion is that one could put a volume list in the Hotlist.

Noticed that Henrik put a few bells and such in the Hotlist code so we 
expanded the info in the Configuration file to explain how to use them.

Added code to properly sort the file list if it includes file names with blanks
in them.

Added a configuration option for hard links (HardLnk button) so it is not
dependent on an option to the cp command.

Separated the configuration for copy (cp) for files and dirs.  Added an option
to use the internal Tcl file copy instead of a helper.  This will not allow
back-grounding the copy, but eliminates the need for a helper cp program.

Changed to a more 'regular' version code.  It is still a date...

Added Focus Follows Mouse option.

Changed the "About" popup to die when the window manager is told to kill it
(i.e. the "X" is clicked).

Change to root dir display in Windows from e.g. C:/ to C: to match other dirs
and thus eliminate the "//" in the window label when viewing files in the 
root dir.

Fixed bug in finding free space while in 'RECYCLER' dir where 'cmd /C dir'
errors out.  Now use '??' as free space when this happens.
--------------------------------------------------------------------------------
<20100903....>
Changes to the Installation file (aka README) to reflect the current name
and remove references to the "old" C files.

Changes to text files referencing how to get filerunner and how to 
join the new mailing list and how to contact me.

Added tip (Help: Tips) on blanks in path/file names in configuration file.
--------------------------------------------------------------------------------
<20100817....> (that's a date, by the way)

Changes to produce "\" file names for the windows version.  Required
changes to copy and editor commands to properly escape the "\".

Set to default to xcopy and cmd /C for windows cp and sh commands,
wordpad for the default editor (if env(EDITOR) is not defined).
--------------------------------------------------------------------------------
<20100812....>

Fixed FTP rename request and then implemented FTP move using the
FTP rename code.

Extensive changes to the font and color selection code.  These now
bring up windows which, in the case of color, change the windows as
you do the modify.  You can have active color changes windows for each
configurable item at the same time.

Adopted the balloon help code from the imported font code.  Still need
to set it up for the main windows. 

Added a "header" line for the dir list box windows.  Still needs work to
properly track horizontal scroll...
--------------------------------------------------------------------------------
<20100228....> 

Added the ability to abort a shell command run from the drop down window.
Just do a Control-C in the command line.  If the command line is empty,
the oldest active command will be aborted.  If the line is not empty, it 
will be cleared.

The multi-command ability was enhanced to truly allow multiple commands
to be active at the same time.

(May want to add a selection window to the abort to choose which to abort.)

Added position to the directory history.  If you revisit a directory
and it is the top of the list, the window will be position to where it 
was when you left that directory.  Works (always) for the <- button and 
for any other way you can get back (cd .., ^, cd full path).

Fixed the ftp commands to properly handle "." and ".." on copies and 
directory deletes.

--------------------------------------------------------------------------------
2.5.1 - 1999-12-30

  Fixes

  - Y2K bug fixed! :-) Year 2000 would show up as 100 instead of 00...

  - When you click in a text window and then pressed pageup/pagedown
    you would scroll two pages. Fixed.

  - Dialogs are now placed in the middle of the FileRunner window
    instead of in the middle of the screen (which was very annoying
    when running a Xinerama setup and the dialogs would pop up smack
    in the middle between the two displays...)

  - Executes 'wish' instead of 'wish8.0'

  - Sorry, did not have the opportunity to create Solaris binaries in
    this release. Will fix that in a week or so.

  I hope to make a more full featured release soon with some other
  stuff I want to get fixed/added but at least this release will get
  rid of that stupid Y2K bug (hopefully)...

--------------------------------------------------------------------------------
2.5 - 1998-06-02

  News

  - Created new configuration browser, to ease browsing and editing
    the rather long list of options. Invoked with Configuration->Edit
    Configuration.

  - Automatically saves configuration (incl. hotlist) on
    exit. Configurable through config(save_conf_at_exit) in the
    configuration browser.

  - Mouse buttons used for wheel on wheelie-mice are now configurable
    through config(mwheel,neg) and config(mwheel,pos) in the
    configuration browser. These default to 4 and 5, respectively and
    corresponds nicely with the following kind of "Pointer" section in
    an Xfree 3.3.2 (or later) XF86Config file:

      Section "Pointer"
        Protocol        "Auto"
        Device          "/dev/mouse"
        # Choose button events for wheel up/down actions
        ZAxisMapping 4 5
        BaudRate        1200
        Resolution      100
      EndSection

  - FileRunner will now create relative links (as default) instead of
    absolute links when using the S-Link and S-LnAs
    buttons. Configurable via the config(create_relative_links)
    option. (A relative link is one that points to something of the
    form "../../foo". An absolute link looks like "/a/b/c/foo").
    Thanks to Norbert Erkeland for this code.

  - FileRunner now has the option of whether or not to run "pwd" after
    cd'ing to a new directory to check where it ended up. This is
    controlled by the variable config(cd_pwd) which is per default on
    (which mimics the behavior of older FileRunner releases). If you
    set it to off, FileRunner will infer the new path from the old
    path. This makes a difference if you cd to a link that points to a
    directory. There is a similar config option config(ftp,cd_pwd) for
    the FTP case.

  - You can now colorize the middle command buttons in a supported
    way. Look at the config(middle_button_colors) in the configuration
    browser.

  - Added FTP resume background (async) download. See Utilities menu.

  - Added ForEach button that runs a command for each selected file.
    This command is very close to "Utilities->Run Command On Selected..."
    but instead of running one command on many files it runs one command
    per file.

  - Added "Etc->Recurse Command...". This runs a command recursively
    in the current directory and downwards using the Unix find utility.


  Fixes

  - ~/.fr/tmp is now used for temporary FTP files (primarily used when
    you "view" a file in an FTP directory). Using /tmp/USER_fr_tmp was
    a security risk, since anyone could create /tmp/USER_fr_tmp and
    put soft links in here that would get wiped when the user viewed a
    file by that name.

  - FileRunner no longer does a CD to the root directory when logging
    in to a remote FTP site.

  - Last downloaded filename through HTTP is saved for next download.


  Changes

  - FileRunner is now explicitly a part of the Open Source movement,
    as shown when choosing "File->About...".

  - "Settings" is now called "Configuration" consistently within 
    FileRunner. I've done a search/replace in the User Guide but
    I'm sure it's not perfect...

--------------------------------------------------------------------------------
2.4.2 - 1998-02-15

  Fixes
  - Bug: "Error in start up script: can't read "glob(gui,color_cursor)": no such
    element in array"
  - Wrong date displayed in FTP listings sometimes.

--------------------------------------------------------------------------------
2.4.1 - 1998-01-04

  News
  - FileRunner is now distributed under the GNU General Public License.
    Let's hope it turns up in even more places. Redhat, are you listening? :-)
    (Btw: No one ever bothered to pay $20 for a commercial license, but I have 
    received a bunch of cool postcards. Keep 'em coming :-)
  - Support for "wheel"-mice. Scroll lists and text using the mouse wheel. 
    Thanks to Colas Nahaboo for this. Config parameter: config(mwheel,delta)
    determines how many lines to scroll for each wheel click. Shift-wheel
    scrolls one line.
  - You can now change the color of the cursor.

  Fixes
  - Fixed "checkowner" function when copying/deleting files.
  - Can now parse FTP site reactor.actlab.com (yucky WinNT host :-).
    Doesn't read dates from this site correctly, but who cares...
  - Various minor stuff.

--------------------------------------------------------------------------------
2.4 - 1997-09-07

  News
  - Supports Tcl/Tk 8.0 only. Get it! :-)
  - Added Batch FTP download. This is useful when you want to select a
    number of files for downloading when the files are not in the same
    directory or even on the same site. You can now browse any FTP site,
    add the selected files to the batch list, then later start the batch
    download and go do something else while the files download. See the 
    Etc menu.
  - HTTP downloading. This was just too easy to implement for me to be 
    able to resist :-) Just choose "Etc->HTTP Download" and enter an 
    URL to download. You don't have to bother with adding "http://"
    if you don't want to. Then choose a filename to save the download to. 
    You can also enter an HTTP proxy in the config(http,proxy) parameter.
    (Do a "Settings->Save Settings..." followed by a "Settings->Edit 
    Settings..." to see this parameter)
  - Added Help->Tips menu. This contains a few tips on usage, like how to 
    color your command buttons if you want to.
  - Foreground color for selection is now configurable.
  - User-configurable button commands now get an extra argument: The mouse
    button that was used to press the button. This means you can let your
    buttons do different things if pressed with different mouse buttons.
    Unfortunately this also means you need to add a new argument to the
    command. (Values: 1:Left 2:Right 3:Middle) See chapter 7 in the User's 
    Guide.
  - Added the following entry to the config(view,extensions) parameter:
      { {rpm -qilp {%s}}
        {*.rpm}
        -viewtext }
    This lets you view .rpm files. You'll have to put this in yourself 
    if you already have a config file.

  Fixes
  - FileRunner now handles file names with any characters allowed by the 
    file system. EXCEPTION: When copying directories the directory names 
    (source and destination) must not contain tick-marks "'" since this 
    is used as an escape character. I doubt this will be a problem in 
    the real world, though.
    FileRunner used to have a real problem with file names containing ", }, 
    ], $ etc. You don't want to know what a headache Tcl gave me with its 
    evaluation rules... AARGH!
  - "Show All Files" now also correctly shows file beginning with a dot . in the
    hyper-menu.
  - Miscellaneous fixes.

  Changes
  - Because of the new improved file name handling I've had to change the
    config(cmd,arc) command. This is now gone and replaced with
    config(cmd,archive). (The change was made only so I could enforce 
    a new default value for this variable, which I cannot if people already 
    have this variable in their .fr/config file.) The format for this command
    is now simply "archive-command {%s}" where {%s} will be substituted with
    the directory name at runtime. Do a Save Settings followed by Edit Settings
    and see the config file for more info on this.
  - The system wide config file is now called "config" and should be placed
    directly under the FileRunner installation directory.

  Stupid stunts
  - There are bits and pieces here and there in the code referring to WIN32...
    Well, I started to port FileRunner to Windows but I just got rather fed up 
    with it after having received a prolonged exposure to Windows programming...
    It shouldn't be too hard to finish, though.

--------------------------------------------------------------------------------
2.3 - 1997-03-30

  New stuff
  - FileRunner will now cache reads from FTP directories. (If you go to a 
    previously visited FTP directory, it will fetch it from the cache.) The 
    cache (all of it) will be invalidated when you press the refresh button (the 
    one with two arrows chasing each other). The number of directories 
    cached is configurable via the config(ftp,cache,maxentries) parameter. 
    I have a feeling this feature will come back and bite me... Tell me if 
    you see something fishy. :-)
  - Shows estimated time of arrival in both relative and absolute time.
    (I discovered relative time estimate wasn't very useful when it showed
    something like 1200 minutes...:-). Estimate is now calculated over the
    average transfer speed during the last two minutes.
  - New command line argument "-iconified" will start FileRunner in iconified
    mode.
  - Config files are now saved under ~/.fr/ (which is now a directory). The 
    .fr file is called .fr/config, the .fr_cmds file is called .fr/cmds and
    so on.

  Fixes
  - Couldn't handle files with the characters " { } in the file name. This
    fix unfortunately will have the effect of incorrectly sorting files with
    spaces in them last in the list.
  - If you run FR as root, having done "su" in a user shell, FilerRunner now 
    shows the correct "user@machine" in the top status line.
  - Doesn't barf anymore if it detects a socket or a pipe in an FTP listing.
  - I got a question on how to use the "-remote openFile()" argument to netscape
    if you wanted to have a default rule for viewing .html files. The answer was
    trickier than I though because of tclsh's hairy quotation and evaluation 
    rules. Anyway, here is how you do it: First, add the following to your
    config(view,extensions) variable:

      { {viewhtml {%s}}
        {*.html} }

    Then create a script called viewhtml that looks like this:

    #!/bin/csh -f
    netscape -remote openFile\("$argv"\)

    That should do it. The problem was that tclsh won't do the normal evaluation
    on lists inside ( ). That's why you have to do this work-around with the 
    external script.
  - Should now correctly work with Windows based ftp deamons. Thanks to 
    Colas Nahaboo for this fix.
  - Misc bugs fixed.


--------------------------------------------------------------------------------
2.2.1 - 1997-01-18

  Fixes
  - The "Find file" function now behaves better. It was stupid sometimes.
  - Now handles trouble converting FTP dates gracefully. If you have the
    timezone set to GMT+xx on your computer, there seems to be a bug in
    "clock scan" that prevents it from converting date strings with GMT+xx 
    in them. The result is that dates might be wrong. Work-around: Use
    another way of denoting the time zone, like MET or PST or whatever.
  - Select-all button didn't update the status line with selected/total...
  - A couple of other small bugs fixed.


--------------------------------------------------------------------------------
2.2 - 1997-01-14

  Features
  - "Find file" function added both for unix files and ftp sites. (Uses the
    "site exec locate" command to search FTP sites).
  - Added chmod button and GUI requester. Should be fairly intuitive.
  - Copy with resume for FTP added. Let's you continue an FTP transfer that
    was aborted. Great when Netscape drops an FTP download for no reason...
  - History is now saved to disk between invocations of FileRunner.
  - Shell commands are now always executed in the background. A small
    "R" to the right of the command line will turn red when one or more
    commands are executing. More than one command can be executed 
    simultaneously, output will be intermixed in the output window.

  Changes
  - FTP transfer speed measurement is now more correct.
  - New chapter on which files FileRunner uses added to the online guide. (10.2)
  - Minor smaller things mainly affecting the GUI.

  Bug fixes
  - Fixed: Mixes dates for ftp files (thinks some files are created 1997, when
    they were created late 1996).
  - Fixed: "Copy As" for directories: "can't read "destfile": no such variable"
  - Fixed: Error when copying FTP files that are links.
  - Fixed: Searching in the viewer or internal editor affected the selection.

  Notes
  - Don't run FileRunner 2.1.3 on Tcl/Tk 8.0a1. It's too buggy. Tcl/Tk that is.

--------------------------------------------------------------------------------
2.1.2 - 1996-12-08

  Features
  - Fully user-defined bindings for to the View, UnPack and UnArchive 
    operations. Re-generate the .fr settings file and see how they work.
    Warning: your old changes to the config(cmd,unarc,xx), config(cmd,unpack,xx)
    and config(cmd,arclist,xx) variables will not be used any more. See also 
    below on "New config default values".
  - You can now FTP to non-default ports. The format is 
      ftp://ftp.foo.com:8080/pub/bar
    Just leave the port stuff (:8080) out if you connect to port 21 
    (normal FTP).

  Bug fixes
  - Stupid "Can't find $USER variable" bug should be gone. FR will now look
    for the $LOGNAME variable if $USER cannot be found.
  - FR now correctly resets iconname after an aborted FTP transfer.
  - Matching on file name extensions are now case insensitive.
  - FTP file listings now a little more robust. (Couldn't handle wuarchive
    listings before).
  - Sometimes FR came up with incorrect left/right start directories.
  - Won't run the file panel updater if you're entering text in a text
    entry. (Since this will take the focus away from the entry widget
    and you don't notice you'll start typing keyboard shortcuts for 
    FR commands... Bad :-)

  New config default values:
  - You HAVE to fix your config(view,extensions) variable to reflect the new
    settings in this variable. For example, the rule for viewing .tar.gz 
    files is now in this variable. If you just want to get the default
    value for this variable into your .fr file, 1: edit the FR settings,
    2: delete the parameter and 3: save, then 4: exit. 5: restart FR, 6:
    save settings. Now the default value for this parameter will be in your 
    .fr file. If you're running FR for the first time you don't have to 
    bother with this.

      set config(view,extensions) {
        { {xmikmod {%s}}
          {*.mod.gz *.s3m *.mtm *.stm *.xm *.uni *.mod} }
        { {timidity {%s}}
          {*.midi.gz *.midi *.mid.gz *.mid} }
        { {xv -gamma 2.0 {%s}}
          { *.bmp *.iff *.jpg *.pbm *.pgm *.png *.ppm *.tga 
            *.tif *.tiff *.xbm *.xpm *.gif} }
        { {gzip -dc {%s} | ghostview -}
          { *.ps.gz } }
        { {ghostview {%s}}
          { *.ps } }
        { {xanim {%s}}
          {*.avi *.fli *.flc *.mpg} }
        { {gzip -cd {%s} | tar tvf -} 
          { *.tgz *.taz *.tar.z *.tar.gz }
          -viewtext }
        { {tar tvf {%s}}
          {*.tar}
          -viewtext }
        { {unzip -lv {%s}}
          {*.zip}
          -viewtext }
        { {lha -v {%s}}
          {*.lha}
          -viewtext }
        { {gzip -cd {%s}}
          {*.gz}
          -viewtext }
      }

  - The new parameter for unarchiving stuff.

      set config(cmd,unarc,extensions) {
        { {gzip -cd {%s} | tar xfBp -}
          {*.tgz *.taz *.tar.z *.tar.gz} }
        { {tar xfBp {%s}}
          {*.tar} }
        { {unzip -oqq {%s}}
          {*.zip} }
        { {lha -x {%s}}
          {*.lha} }
      }

  - The new parameter for unpacking stuff.
      
      set config(cmd,unpack,extensions) {
        { {gzip -d {%s}}
          {*.gz} }
      }



--------------------------------------------------------------------------------
2.1.1 - 1996-11-03

  Small features/other
  - Changed to use Tcl/Tk 7.6/4.2. You can still run on 7.5/4.1 but 
    you'll have to edit the scripts.
  - Sort on reverse time added.
  - New platform support: AIX.
  - Support for system wide .fr file. (Sourced before the user's .fr file).
  - FTP sorting on time now implemented.
  - FTP: Selecting "show all files" now works.

  Bug fixes
  - Editing shell command color works.
  - Usage of "tar" internally now doesn't use the -B flag (for HPUX).
  - Using Tcl/Tk 7.6/4.2 seems to have fixed the infamous "grab failed" problem.
  - Misc fixes.

  Documentation
  - Added a FAQ file with know bugs and common Q's and A's.



--------------------------------------------------------------------------------
2.1 - 1996-10-27

  Features
  - You can now copy both to and from an FTP site.
  - Recursive copying of directories both to and from an FTP site.
  - Makedir, Delete and Rename works in FTP. Recursive delete of FTP
    directories implemented too.
  - Rule based configuration of FTP site logins. For example always
    login with username X and password Y to sites matching *.Z.com using
    proxy P etc. See more in the online guide, chapter 8.8.
  - Icon name now shows estimated time of arrival (ETA) for FTP transfers.
  - Select All/Select None toggle button added to the lower right
    of the file list panes. This is the button with letter S on it.
  - If you enter a directory that doesn't exist you get the choice 
    of editing the faulty directory or create it. This is a convenient 
    way of creating new directories.
  - The middle mouse button in the file list now work the same way
    as mouse button 1 + ctrl. It doesn't deselect anything but just
    toggles the previous selection. Try it. See chapter 3.3.4.1
    for a list of available mouse operations.

  Smaller features/changes
  - When a new directory is created, all it's parent directories are created
    also if they don't already exist.
  - The escape button now works to exit the text viewer and editor.
  - The Page up/down, Home/End keys work in the text viewer and editor without
    first clicking in it.
  - Default colors are changed to a cool metallic green. Just change it if you
    don't like it...
  - The Abort button is called Stop now.

  Documentation
  - Reworked chapter 8 about FTP.
  - Reworked chapter 3.3.4.1 about mouse buttons in the file list. Here you
    can now find a list of mouse operations available.
  - Misc. changes.

  Bug fixes
  - User defined bindings from file extensions to action (e.g. .jpg -> 
    launch image viewer) are now searched before the built-in bindings.
  - FTP now correctly handles file names with spaces in them,
  - Hopefully the infamous "grab failed: application already has grab" 
    will be a little less frequent. There is still a bug inside the Tk 
    menu code that can trigger this bug.
  - Move on FTP file crashed FR. (It can't move FTP files yet, but it 
    shouldn't crash...)
  - The recursive directory menu now correctly handles file names with   
    spaces in them.
  - More misc. bug fixes.

  There are new default values for the some parameters. If you already 
  have a .fr file, you can see below what the new defaults are:
    set config(gui,color_select) "#f1a9ec43aa9d"
    set config(gui,color_scheme) "#d1f0dfbebd10"
    set config(view,extensions) {
        { {xmikmod {%s}}    { *.mod.gz *.s3m *.mtm *.stm *.xm *.uni *.mod } }
        { {timidity {%s}}   { *.midi.gz *.midi *.mid.gz *.mid } }
        { {xv -8 {%s}}      { *.bmp *.iff *.jpg *.pbm *.pgm *.png *.ppm 
          *.tga *.tif *.tiff *.xbm *.xpm *.gif } }
        { {gzip -dc {%s} | ghostview - } { *.ps.gz } }
        { {ghostview {%s}} { *.ps } }
      }
    set config(cmd,touch) "touch"
    set config(cmd,du) "du -s"

  Known bugs
  - There is still a problem with the grab failed thing that can pop up here 
    and there. It seems to be a problem in the Tk menu implementation.
    Anyone have any ideas how to get around this?



--------------------------------------------------------------------------------
2.0 - 1996-09-24

  Features:
  - Added shell windows. Activated by the button to the right of the up-dir
    button at the top of the file list panes. This pops up a small built-in 
    shell that lets you run commands inside FileRunner. Like a simple xterm/
    shell session. The "current directory" of the left and right shell is 
    always synchronized with the "current directory" of the respective file 
    list panels. See the online guide for more on this.
  - Asynchronous file operations added. Instead of pressing the left mouse 
    button over the command buttons (like copy, delete etc...) you press the 
    right mouse button over the buttons and the command is executed 
    asynchronously (in the background).
    For some buttons, this is not implemented (where the operation is very fast 
    anyway, like doing soft links). This IS implemented for FTP,
    which means you can mark 25 files and press the right mouse button
    over the Copy button and have 25 parallel copyings going to the same
    server... Be careful with this!
    The drawback with asynchronous operations is that it won't tell you 
    if things go wrong during a copy, etc (for some operations, though
    it will print this to the standard error output for FileRunner). 
    It will also increase the risk that the file panels aren't showing 
    correct information (you'll have to use the Update button). For
    ftp transfers, it will usually take longer since it has to start
    another ftp session for every file it copies (in parallel).
  - New config option [config(view,extensions)] that holds general rules for
    which viewer to invoke on which file. For example *.jpg launches the 
    image viewer and *.avi launches the movie viewer. This is now fully
    user-configurable.
  - Abort button added. This tries to abort the current command. For normal
    file access commands (copy, move etc) it can only abort between two 
    files, not in the middle of operating on a file (in the middle of copying 
    a file). For FTP, you can abort in the middle of a transfer. The FTP 
    link will be closed when you do this, but reopened the next time you 
    access an FTP file.
  - In conjunction with the abort button, added the clone button. Only these
    two buttons may be pressed during execution of a command, like a long
    FTP transfer, for example. The clone operation is gone from the File menu.
  - Added back button (arrow left). Works just as the back button in 
    Netscape.
  - Added "Settings->Edit xxx color". Changes GUI colors on the fly.
  - Added "Settings->Edit xxx font". Changes GUI fonts on the fly.
  - New interface for User-defined buttons. See online guide.

  Small features:
  - Selection in file list panes now produce list of files when exported
    to other apps (or inside FileRunner).
  - Close button added to text viewer and text editor. (The little cross)
  - "normal" Save option added to text editor menu. Don't use "save", 
    then "quit" when editing config settings, use "save&quit" 
    instead... (Or the config won't be read back in)
  - File list panes now show selected / total entries.
  - Added geometry config options that let's you set the size and position 
    (in normal X11 syntax) for the main window, the text viewer window and 
    the Quick-editor window, respectively.
    [config(geometry,main), config(geometry,textviewer), 
    config(geometry,qedit)] 
  - Added "Settings->Set left start dir", "Setttings->Set right start dir"
    that saves your position in the file list panels for next time 
    you start. Quicker than editing the settings file by hand. You have 
    to save your settings to store it to the .fr file.
  - Added "Settings->Set window pos/size". Sets the config variable for
    the main window geometry [config(geometry,main)]. You have to save 
    your settings to store it to the .fr file.
  - Added command "Utilities->Check Size of selected..." that counts the
    size of selected files and directories and shows the result
    in kilobytes. Note that this uses the du -s command and you might
    have to add the -k flag here to get the answer in kilobytes on some
    platforms (like Solaris 2.x). Do that in the Settings->Edit Settings
    command [config(cmd,du)].
  - Added "Utilities->Swap Windows" that swaps the left and right directories
    shown.
  - Added a "little" keyboard support. If you set the config variable
    config(keyb_support) to 1, FileRunner activates keyboard support.
    Currently this is not very extensive. See online guide for more
    info on this.
    Config variable config(keyb_listb_support) has changed name to 
    config(keyb_support) and changed semantics to mean general 
    keyboard support on/off.
  - If you press the right mouse button in the directory entry, a requester
    pops up asking you to type a new path. This is sometimes faster than
    going to the directory entry and then clearing it, and then entering
    the new directory.
  - Changed the Update button to an iconized button. Due to lack of
    space. Sorry for this, it makes it harder to understand...

  Bugfixes:
  - Commands will now tell you if there are stuff they cannot do, like 
    doing a soft link from an FTP file. (Instead of just doing nothing)
  - Window is repainted correctly during long FTP transfers. This also makes
    the window react to the quit-window (delete) command sent to it from the
    window manager during transfers.
  - Bugfix: When history got longer than xx entries, it got truncated 
    to 0... Now only the oldest entries are deleted (as it should be)
  - Exiting FTP connections is now faster/more reliable.
  - FTP client now changes server socket for data connections on every command.
    Sometimes FTP servers had problems with using the same server socket
    every time, giving error codes 425 and 500 (?).
  - Bugfix: When deleting a directory displayed by FileRunner, it would
    crash. (Stupid bug, since it was designed to handle this...)
  - Bugfix: Sometimes FR would fail with "grab failed: another application 
    has grab" It looks like the grab fails for a reason I cannot determine. 
    It shouldn't fail. A workaround for this is that you now get a warning if 
    a grab fails. If you don't do anything stupid (like trying to start another
    command before the first one is finished) you should be OK. Anyone got an
    idea why this happens and how to handle it better?



--------------------------------------------------------------------------------
1.2 - 1996-08-24
  - Default "unzip {%s}" command changed to "unzip -oqq {%s}"
    You have to change this in your .fr file if you already have a .fr file.
  - No more crashes when FileRunner tries to stat a file that disappeared 
    between getting the directory list and the actual stat'ing.
  - Viewing .gz files now works. (Just right-click on any gzipped text file)
  - RunCmd and C-Select button moved to Utilities menu. 
  - S-LnAs (Soft-Link As..) command button added.
  - Copying links: Copying a link to a file will copy the file, not the 
    link. Copying a link to a directory will copy the directory, not the 
    link. This is new behavior.
  - Fixed Makefile.cc and ext.c so it will compile on Unixware and IRIX
  - Color for selection in listbox now configurable.  
    [config(gui,color_select)]
  - Fixed: Choosing a list of files, then pressing Edit or View(Image).
    (This is supposed to pass the whole list of files to the editor/image 
    viewer)
  - Added mod and midi extensions and mod and midi player commands.
    [config(cmd,play,sound,mod) and config(cmd,play,sound,midi)]
  - Added config option to allow listboxes to take focus when clicked. Gives
    some more control over keyboard access to the file list. Default off.
    [config(keyb_listb_support)]
  - Added config options to decide whether you want FileRunner to ask "Are
    you sure?" when deleting directories or files, respectively.
    [config(ask,dir_delete) and config(ask,file_delete)]
  - FTP transfers now show total average speed at the end of the transfer.



--------------------------------------------------------------------------------
1.1 - First public release 1996-08-11


--------------------------------------------------------------------------------
1.0 - Internal release

