Newer
Older
twander / WHATSNEW.txt
  1. $Id: WHATSNEW.txt,v 1.139 2004/03/11 07:50:12 tundra Exp $
  2.  
  3. WHAT'S NEW
  4.  
  5. twander 3.XXX (3-XX-2004):
  6. ===========================
  7.  
  8. BUG FIXES
  9.  
  10. - In previous versions, a redefinition of a particular command key
  11. would cause old and new versions of the definition to appear in the
  12. Command Menu. This has been fixed. Now only the command defintion
  13. that is actually active (the last one that appears in the
  14. configuration file) appears in the Command Menu.
  15.  
  16. - Entries in the Command Menu now appear strictly in the order of
  17. their definition in the configuration file. This was not always the
  18. case in previous releases.
  19.  
  20. - Help and Debug output is now consistently sorted.
  21.  
  22.  
  23. NEW FEATURES
  24.  
  25. - The TOGAUTO Key (Default: Control-o) has been added to allow you to
  26. toggle Autorefreshing on- and off. When working with very
  27. large/slow directory reads, it is handly to temporarily turn off
  28. refreshing (and do it manually as needed with the Refresh - Default:
  29. Control-l) key. This is simpler than changing and reloading the
  30. configuration file each time you want Autorefreshing disabled.
  31.  
  32. - The current state of Autofreshing is now displayed on the main
  33. window title bar.
  34.  
  35. - You can now force a display refresh after a command is executed
  36. by placing the REFRESHAFTER symbol (default: '+') at the beginning
  37. of your command string in the configuration file. This also
  38. works when entered manually via RUNCMD (default: Control-z).
  39. This will take place regardless the current AUTOREFRESH setting.
  40.  
  41. - A new user-settable option variable, AFTERWAIT (default: 1) has
  42. been added. This tells 'twander' how long to wait before
  43. initiating a display refresh requested by the REFRESHAFTER
  44. construct. This gives the system AFTERWAIT seconds to complete
  45. the command before a display update is done. See documentation
  46. for subtleties of using this feature.
  47.  
  48. - During actual refreshing - whether automatic, manual, because
  49. of a directory change, or because of a REFRESHAFTER demand -
  50. the Autorefresh state on the title bar has "*" appended to it.
  51. Ordinarily, this happens so fast you do not see it. But on
  52. really long refreshes, the asterisk is a visual confirmation
  53. that the program is busy and not hung.
  54.  
  55.  
  56.  
  57. CHANGES
  58.  
  59. - The title bar no longer has a separate entry to indicate reverse
  60. sorts. Instead, when sorting is reversed, the field name being used
  61. as the sort key has a '-' appended to it. This was done to make
  62. the title bar less cluttered and of reasonable length.
  63.  
  64. - The directory path displayed on the title bar is now limited to
  65. 60 characters. Paths longer than this are truncated to the last
  66. 60 characters and "..." is prepended to the result to indicate
  67. that a partial path is being displayed. This was done because
  68. some systems, notably Win32, have very long path names. Moving
  69. to these directories caused the other status information to the
  70. right on the title bar to be lost.
  71.  
  72.  
  73.  
  74. twander 3.135 (3-11-2003):
  75. ===========================
  76.  
  77. BUG FIXES
  78.  
  79. - Found (and fixed) last-minute bug which caused [DESELECTION]
  80. and [SELECTION] to be returned incorrectly when nothing was
  81. selected in the UI.
  82.  
  83.  
  84. twander 3.134 (3-11-2003):
  85. ===========================
  86.  
  87. BUG FIXES
  88.  
  89. - Fixed a problem which caused User-Defined Commands to be processed
  90. with the CMDSHELL option when such commands were re-invoked via the
  91. Command History. The program now properly applies CMDSHELL
  92. processing (if enabled) *only* to manually entered commands.
  93.  
  94. - Previous version allowed FONTDECR to set font sizes to 0 or even
  95. negative values. Feature is now checked to make sure a font size is
  96. never decremented below 1.
  97.  
  98.  
  99. CHANGES
  100.  
  101. - USETHREADS is now False by default. Thread implementations
  102. vary so much from system to system it seemed smarter to
  103. make their use a conscious decision.
  104.  
  105. - The default for REFRESHINT is now 5000 (up from 3000) which
  106. should make the program work a bit more smoothly "out of the
  107. box" on slower systems and X connections.
  108.  
  109. - The About box on the Help Menu now displays the 'twander'
  110. web site information.
  111.  
  112. - Quite a bit of new material added to the GOTCHAS section of
  113. the documentation.
  114.  
  115. - Boolean Options are now shown as "True" or "False" rather than
  116. 1 or 0 in the relevant Help Menu and Debug output.
  117.  
  118. - Nothing pre-selected now when entering a new directory. Previously,
  119. the first item ("..") was always selected. This prevents accidental
  120. navigation on slow/unresponsive systems or X-Windows connections
  121. where you can type faster than the screen can update.
  122.  
  123. - The MAXDIR, MAXDIRBUF, MAXHIST, and MAXHISTBUF options have been
  124. removed. These are replaced by the new MAXMENU and MAXMENUBUF
  125. options which control the depth and display of *all* menus
  126. with dynamic content.
  127.  
  128. - User-Defined Variables, Directory Shortcuts, and Command Definitions
  129. can now be redefined within the same Configuration File. This was
  130. done to better exploit the new conditional operators and the new
  131. ".include" directive in the configuration language. Now you
  132. can maintain a "standard" configuration which everyone on the system
  133. can ".include", but anything in that configuration can be redefined
  134. locally with your own configuration statements.
  135.  
  136. - A blank Right Hand Side is now permitted for all Option Statements.
  137. It means that the statement in question is simply ignored. This was
  138. done to make Option Statements consistent with Directory Shortcut
  139. and User-Defined Variable Statements, both of which allow a blank
  140. RHS.
  141.  
  142. - Because the RHS of a String Option can now be blank, the ""
  143. construct is no longer necessary to disable CMDSHELL. An entry in
  144. the form 'CMDSHELL = ' will do.
  145.  
  146. VERY IMPORTANT: if for some reason you have a line like 'CMDSHELL =
  147. ""' in your Configuration File, remove it! Otherwise a pair of
  148. double-quotes will be prepended to every RUNCMD you issue - almost
  149. certainly not what you want.
  150.  
  151. - The "escape" character to escape (defeat) CMDSHELL processing has
  152. been changed from \ to ". This was done for two reasons.
  153. First, the backslash character may occasionally be necessary to
  154. escape the first letter of a command string. More importantly, the
  155. " is used to escape for the new Wildcard feature. CMDSHELL was
  156. thus changed so both features which permit "escapes" would use the
  157. same character for consistency.
  158.  
  159. - The Free Space and Total Space of each drive in Drive List View
  160. are now shown in separate columns to make sorting order clearer.
  161.  
  162. - The FreeBSD port Makefile has been cleaned up and updated.
  163.  
  164.  
  165. NEW FEATURES
  166.  
  167. - Wildcard-Based Selection
  168.  
  169. It is now possible to select items using a user-specified wildcard
  170. with the SELWILD feature. (default: Control-\) This feature makes
  171. the full power of Python regular expressions available for selecting
  172. the items desired. You may enter any literal text *or any
  173. legitimate Python regular expression* in the SELWILD dialog and all
  174. lines with matching expressions will be selected. (Note that the
  175. "wildcards" used here are *not* the same thing as the standard Unix
  176. shell wildcard "globbing" used for naming files.) For example, if
  177. you enter: \.exe all files or directories which have the string
  178. ".exe" somewhere on their display line will be selected. SELWILD
  179. will never include ".." in any wildcard-based selection even if
  180. that entry matches the regular expression.
  181.  
  182. By default, SELWILD will select an entry when your regular
  183. expression matches *anything on the displayed line*. This allows
  184. you to make selections based on any visible column of information.
  185. Of course, if you have details turned off, the check for matching
  186. will be done only against the file or directory name (since that's
  187. all that is visible).
  188.  
  189. This "match anywhere on the line" semantic is possible because
  190. SELWILD automatically massages the regular expression you provide to
  191. make any match on the line true. There may be times when you want
  192. to provide very specific regular expression definitions which seek a
  193. match at specific locations. In that case, you can prevent SELWILD
  194. from fiddling with your regular expression, by beginning it with the
  195. " character. SELWILD understands this to mean that your regular
  196. expression is to be treated literally without modification. (It only
  197. throws away this leading " escape character.)
  198.  
  199. Because regular expressions can get complicated and tedious to type
  200. in, any such expression you use is saved in a history available via
  201. the Wildcard Menu. The menu can be invoked by clicking on its
  202. button, pressing Alt-w, or Alt-Control-Right-Mouse-Button. (Note
  203. that on Win32 you *must* press Alt then Control then
  204. Right-Mouse-Button for this to work. Win32 appears to care deeply
  205. about keystroke order.)
  206.  
  207. You can also preload that menu with commonly used wildcards by
  208. placing multiple statements like this in your Configuration File:
  209.  
  210. WILDCARD = some-regular-expression
  211.  
  212. These will appear in the Wildcard Menu in the order they were
  213. defined. Bear in mind that only the first MAXMENU number of items
  214. will actually appear in the Wildcard Menu. Again, SELWILD will
  215. check the first character of your regular expression and "escape" it
  216. if that character is ".
  217.  
  218. There is a new debug bit which will display the Wildcard stack as it
  219. changes.
  220.  
  221. - Advanced Sorting Options
  222.  
  223. You can now sort by any of the detail columns *whether or not
  224. details are currently displayed*. Shift-F1 sorts by the leftmost
  225. column, Shift-F2 sorts by the second from left column, and so forth.
  226. Shift-F10 selects no sorting which means items will be displayed in
  227. the order they are reported by the operating system. Shift-F11
  228. reverses the sort order, and Shift-F12 toggles whether or not
  229. directories and files should be separated when sorting and
  230. displaying. These sort options are also available via a new Sort
  231. Menu which can be opened by clicking on its menu button or pressing
  232. Alt-s. There is no mouse shortcut for sorting options.
  233.  
  234. The current sort parameters are displayed on the Titlebar and
  235. the name of the sort key field is automatically adjusted
  236. depending on whether you are in Normal or Drive List View.
  237.  
  238. You can set your desired default sorting order via three new
  239. options in the Configuration File.
  240.  
  241. Option Default Possible Values
  242.  
  243. ---------------------------------------------
  244.  
  245. SORTBYFIELD Name No Sort, Permissions, Links,
  246. Owner, Group, Length,
  247. Time, Name
  248.  
  249. SORTREVERSE False True, False
  250.  
  251. SORTSEPARATE True True, False
  252.  
  253.  
  254. - Conditional Processing Of Configuration File Statements
  255.  
  256. It is now possible to include or exclude statements in the
  257. Configuration File based on certain conditions. This makes it easy
  258. to maintain a single such file that works across all the different
  259. operating systems and with many different users.
  260.  
  261. A Condition Block begins with a Condition Test Statement and ends
  262. with '.endif'. If the Condition Test evaluates to be True, all the
  263. lines up to the matching '.endif' are included in the configuration.
  264. If False, all these lines are ignored. Conditionals may be nested
  265. without limit. 'twander' keeps track of which '.endif' matches which
  266. Condition Test Statement. Like all Configuration File entries,
  267. whitespace is ignored when processing Conditional Statements and you
  268. are free to indent (or not) as you see fit.
  269.  
  270. Condition Test Statements are one of three types:
  271.  
  272. #####
  273. # Existential: True if FOO or $FOO are defined
  274. #####
  275.  
  276. .if [FOO]
  277. ...
  278. .endif
  279.  
  280. .if [$FOO]
  281. ...
  282. .endif
  283.  
  284. #####
  285. # Equality: True if FOO or $FOO are literally
  286. # the same as the test-string
  287. #####
  288.  
  289. .if [FOO] == test-string
  290. ...
  291. .endif
  292.  
  293. .if [$FOO] == test-string
  294. ...
  295. .endif
  296.  
  297. #####
  298. # Inequality: True if FOO or $FOO are literally
  299. # not the same as the test-string
  300. #####
  301.  
  302. .if [FOO] != test-string
  303. ...
  304. .endif
  305.  
  306. .if [$FOO] != test-string
  307. ...
  308. .endif
  309.  
  310. Note that the test always depends first on a *variable reference*
  311. ([FOO], never just FOO), but that the Right Hand Side of
  312. an in/equality test is just a string comparsion - no variable
  313. expansion is done. This will not work as you might expect:
  314.  
  315. .if [FOO] == string[BAR]
  316.  
  317. To make it easy to create conditional blocks based on the type of
  318. system you're running, 'twander' now automatically pre-defines two
  319. variables which provide information about your system:
  320.  
  321. Variable Name Typical Values
  322. --------------------------------
  323.  
  324. .OS nt, posix
  325. .PLATFORM freebsd4, linux-i386, win32
  326.  
  327. Note that these predefined variables also begin with a period to
  328. remind you of their intended role. They will thus also sort first in
  329. the User-Defined Variables section of the Help Menu.
  330.  
  331. See the example .twander file provided in the distribution for
  332. some extended examples of using conditinals in your Configuration
  333. File.
  334.  
  335. - The New ".include" Directive
  336. The configuration language now supports a means of including
  337. other files in your configuration. This makes it easy to, say,
  338. have a "standard" configuration that everyone can use as a starting
  339. point like this:
  340.  
  341.  
  342. .include /usr/local/etc/.twander.global
  343.  
  344. # Your configuration lines go here
  345.  
  346.  
  347. You may have as many ".include" directives in your Configuration File
  348. as you like. The only requirement is that there be whitespace between
  349. the directive and the filename.
  350.  
  351.  
  352.  
  353.  
  354. twander 3.0 (2-17-2003):
  355. ========================
  356.  
  357. - The licensing terms have been clarified. Non-Commercial use of the
  358. program is free with a $20 US per user donation recommended.
  359. This fee is mandatory for commercial users.
  360.  
  361. - A Quick Start introduction to 'twander' is now included in the
  362. distribution. See 'READ-1ST.txt'.
  363.  
  364. - *MANY* bug fixes and code cleanup including a nasty one with
  365. RH linux that prevented 'twander' from opening the user's
  366. home directory.
  367.  
  368. - Most program features and options are now settable in the
  369. configuration file AND you can set your default twander command line
  370. arguments in an environment variable called TWANDER.
  371.  
  372. The priority of options processing, from lowest to highest is:
  373.  
  374. 1) Defaults coded into program
  375. 2) Options set in configuration file
  376. 3) Options set in environment variable
  377. 4) Options set on command line.
  378.  
  379. - The -b, -f, -n, -w, -s, -x, -y command line options have
  380. been removed because these options are not settable as
  381. options in the configuration file.
  382.  
  383. - Width/Height now default to 800 and 600 pixels respectively.
  384. Previous versions did not really count pixels correctly.
  385. You can also specify the starting position on screen in pixels.
  386.  
  387. - You can now include references to any of the variable types
  388. in a manually entered command line. Syntax is the same as for
  389. command definitions in the configuration file.
  390.  
  391. - Various help menus have been added.
  392.  
  393. - Command History has been implemented and is available via a new
  394. menu.
  395.  
  396. - There are now accelerator key and mouse shortcuts for each of the
  397. menus.
  398.  
  399. - A new "Directory Shortcuts" feature has been added. You can
  400. specify up to 12 directories which will be preloaded into
  401. the Directory Menu (as if you'd already visited them) AND
  402. you can move to each of them via one of the Function keys.
  403.  
  404. - twander debug facilities have been vastly improved. The -d
  405. command line argument now takes a mandatory "debug level"
  406. as an argument. This is a bitfield (which can be expressed
  407. in either decimal or hex) in which each bit indicates a
  408. kind of degbug output you'd like.
  409.  
  410. - There is a new Built-In variable called [YESNO:some text]. It
  411. allows you to put a Yes/No popup during command execution.
  412. If the user presses "No", the command is aborted.
  413.  
  414. - Since Win32 file/directory names are case-insensitive,
  415. twander now sorts them as such. Previously, 'ZEBRA' would
  416. appear before 'echo' in a twander display.
  417.  
  418. - Most previous error conditions have been changed to warnings so
  419. that the program is more forgiving and will keep running after
  420. such a condition.
  421.  
  422. - The various interactive popup dialogs allow intra-line editing
  423. with both the local conventions as well as emacs-style key
  424. editing. This was true previously, but was not documented.
  425.  
  426. - If you are running on Win32 and have Mark Hammond's 'win32all'
  427. extensions installed, a number of Win32-specific features are
  428. enabled:
  429.  
  430. a) You can now navigate ".." from root or use the Ctrl-k key to
  431. get a Drive List View of all available Win32 drives.
  432.  
  433. b) The file/directory mode will be displayed showing Win32
  434. attributes.
  435.  
  436. c) The Win32 user/group names will appear for each displayed
  437. item, instead of "win32user" and "win32group".
  438.  
  439. - You can now resize fonts while running 'twander' without having to
  440. change the respective configuration file parameters. Two new key
  441. assignments have been defined to increment or decrement font size.
  442.  
  443. - You can use the CMDSHELL option to define a string that will be
  444. prepended to each manually entered command. The feature is off
  445. by default. If enabled, it can be suppressed by entering "\"
  446. as the first character in the manually entered command. This makes
  447. it easy to create a default visual/GUI context for each command you
  448. enter manually.
  449.  
  450. - A new "Program Memory" feature is implemented which allows 'twander'
  451. to maintain up to 12 separate, simultaneous clipboard- like
  452. memories. These memories are used to compile names of files and
  453. directories which you would like to subsequently processs. There
  454. are 12 new corresponding Built-In Variables ([MEM1]-[MEM12]) which
  455. allow command definitions to access the contents of the memories
  456.  
  457. - TundraWare Inc. is now running a 'twander-users' mailing list.
  458.  
  459. ------------------------------------------------------------------------
  460. twander 2.34 (12-23-2002):
  461. ===========================
  462.  
  463. Initial public release of program