
NOTE:	As of gentoo 0.11.1, this file is kind of obsolete.
	Take a look at FIXES-0.11 instead.

List of changes, additions and fixes in the various development
versions of everybody's favourite Unix file manager, gentoo.
Notes closer to the top of the file are more recent (as you also
might figure out from the version numbers).
	Although it may sound unlikely, I sometimes do changes so
minor that they don't show up here.

0.9.24
* Wrote a silly one-line script (in "scripts/chkdef") to help me
  hunt down missing includes. Fixed a couple of <stdlib.h>'s.
* Cleaned up the text viewing code slightly, creating a new source
  file.
* Implemented a ViewTextOrHex command, which looks at the contents
  of a file and then decides if it should be viewed with ViewText
  or ViewHex. Very handy as View action for the Root style.
* Fixed uses of mmap(), they didn't check for erroneous return
  values correctly (MAP_FAILED is -1, of course, not NULL).
* Uses of mmap() now fall back on plain read() I/O if mmap() fails,
  as it can on some filesystems.
* The example config now knows how to view Internet RFC documents
  (the plain text ones, compressed using either 'compress' or
  'gzip'). Requires a smart 'less' command. :)
* Previosly, if you ran the Rename command but cancelled it, it
  would complain about a overwrite nesting problem the next time
  envoked. Fixed.
* The first entry input field (created by {Is:...}) in a command
  input window will now be focused. A gross hack, but it works.
  Also, the text will be selected in the widget, just as it is in
  e.g. the Rename command's dialog. This can speed up text entry.
* You can now press Escape to close the text viewing window. Works
  both when used through ViewText and when capturing command output.
  Occasionally, this seems to fail... I don't know why.
* The text widget in the text viewer is given the focus as the
  window opens, which should allow scrolling using the keyboard
  directly.
* Command input menu widgets (created with {Im:...} now support
  specifying two texts for each item: the label and the actual
  text that results from choosing it. To use this feature, put
  a colon (":") between the label and the text. For example, you
  could enter {Im:"Number"="One:1","Two:2","Three:3","Four:4"}.
  This would produce a menu with textually labeled items, that
  produce numerical results. Note that there is currently no way
  to actually put a literal colon in the label part...
* The command argument parser has been overhauled, and is now
  WAY better. It's now a lot more shell-like, and separates arg-
  uments with spaces. This might mean that you have to add quotes
  (double or single) in some cases. The new improved parser makes
  a lot of tricks (such as using a {Im:...}-code to choose between
  two commands *with arguments*) possible that weren't before.
    Note that file names ({f}- and {F}-codes) are always quoted,
  so don't write "{f}".
* In command input windows, you can now have multiple descriptive
  texts. They are created by the {It...} code, which was formerly
  used to support a single window title. Use several {It...} codes
  after each other to create multi-line messages. Use {It:"-"} to
  create a horizontal dividing line (not very textual, but anyway
  related IMO).
* Added a {Iw:"title"} code which lets you set the actual window
  window title for an input window. Hm, perhaps this should be
  called {It}, and the existing {It} be renamed to {Il}... Yeah,
  maybe, but it hasn't been. :)
* Changed the (perhaps little-known) keyboard quit shortcut from
  Escape to 'q', to reduce risk of premature quitting.
* If, during a copy, an error occurs, but the destination file has
  the same size as the source, the error will be ignored.
* Rewrote interface between command output grabber and the text
  viewer. Asynchronous termination now cleaner & more stable.
* The width of dirpane columns is now adjusted using a so called
  "spin button", rather than a slider. Precision improvement.
* Fixed a couple of incorrect {}-sequence "helpers" in the
  command config page.


0.9.23
* Fixed a couple of source-code compatibility issues reported
  by users.
* Added a (very simple) workaround for the (IMO) broken semantics
  used by rmdir() on non-empty directories under SGI's IRIX (it
  returns EEXIST, rather than ENOTEMPTY). The fix should not affect
  the behaviour of gentoo on other platforms (I hope).
* The Delete command also no longer reports ENOTEMPTY as the reason
  why you can't delete dirs in which you can't write, but EPERM.
* The shortcut buttons now support showing their respective paths
  as a tooltip popup. It is individually controllable for each
  shortcut, and the default is to not show anything, so you're
  going to need to turn'em all on if you want this.
* Fixed numerous calls to gtk_entry_new_with_max_length() that
  had the max length 1 char too long. Pretty harmless, but...
* Added support for tooltips on command buttons, too. These are
  somewhat more flexible than the shortcut ones; the string that
  is displayed is configurable, too! :^) As with the shortcuts,
  there's a flag that controls if the tip is shown, per button.
  Note that the tooltips won't show up during configuration.
* You can now double-click on a dirpane column content type row
  (in the right list on the config tab) to Edit it. :)
* Removed all blank lines from the man-page, since everybody
  but me seems to have a 'man' command that cares about them.
* Replaced all literal integer arguments to the exit() function
  with one of EXIT_FAILURE or EXIT_SUCCESS, as is proper.
* Implemented automounting, which is pretty cool! You just access
  the mountpoint, and gentoo mounts the required device for you.
  On exit, it will (optionally) unmount any mounts it did. You
  can read more about in "docs/scratch/mount.txt".
* Fixed a bug in the Rename command's behaviour for the case when
  no rows were selected.
* The Move command no longer rescans both panes when it doesn't
  have to (i.e. if you run it without a current selection).
* Rearranged command row editing buttons slightly. Also stopped
  following the current item around when moving it, since GTK+
  really has problems with that.
* Added ActivatePush and ActivatePop commands, which implement a
  stack. Useful if you wish to use other activation commands in a
  command sequence, but not affect which pane is current after the
  sequence finishes. Just do "ActivatePush", ..., "ActivatePop".
* The progress window now cancels the operation if you hit Esc.


0.9.22
* Added display of current line and percentage to text viewer.
* Added a GTK+ widget name ("cstPreview") to the CList used to
  preview panes in the File Styles config page.
* The textviewer now doesn't get all confused (and crash) if you
  are mean enough to close it while its Goto dialog is open.
* Added Search capabilities to the textviewer. Might not be the
  most intuitive search function you have ever used, but seems to
  work. For more information about how to use it, check out
  "docs/scratch/search_howto.txt".
* The dirpane position history now works even better, especially
  for cases where files have disappeared (right after Delete).
* Clicking the little "H"-button (to toggle "Hide Allowed?") now
  also activates the pane. Makes it less confusing.
* The "IQSize" dirpane column type now also has an option not
  to show the filesystem size for directories, just like the
  regular "Size" has. The "Blocks" content doesn't, though.
* Modified the File Types config so that now when you click Add,
  the new type appears just below the currently selected one. If
  there's no selection, it appears next-to-last. The list redrawing
  is (still) pretty much broken; I blame GTK+ for that...
* Changed order of things done at startup, so now it is possible
  to specify a GTK+ RC path of "~". This used to fail.
* Added a "run_file" user command example, since many (2) people
  have asked how to define one of those... Was it so hard? :^)
* Added the command-line option "--no-rc" which causes gentoo to
  skip loading its config file (.gentoorc). For reasons of
  symmetry, I also added the "--no-gtkrc" flag, which does the
  obvious thing.
* Inspired by the man-page written by Josip Rodin (maintainer of
  the Debian Linux package of gentoo), I finally do 'man 7 man'
  and write up one of my own. You can find it in "docs/gentoo.1x".
* Replaced the ".." label on the DirParent-button (left of path
  entry widget in panes) with a specially crafted icon. Might
  be clearer in meaning and easier to spot.
* Added a File Type (and Style) for Perl source code...
* Moved the XPM files that are compiled into the program into
  their own directory (graphics/) so they're less in my way. :)


0.9.21
* Fixed a huge bug in the creation of the default button rows. The
  same row was added twice to a list, causing great confusion in
  the memory management routines when attempting to free it...
* The Type configuration page now shows the icon as well as the
  name of the corresponding Style. Looks kind'a neat. :^)
* Added an option to blank out the "Size" column for directories,
  until you run GetSize on them. The option is in the column-
  specific dialog (click "Edit" with the Size-column selected on
  the Dir Pane config tab).
* If a config change caused the dirpanes to rebuild, they would
  lose the indication of which was current. Fixed.
* The Mode-column now also shows type and the setuid, setgid and
  sticky bits, using (I think) the same format as GNU ls. This
  format is highly magic. Because of the way in which gentoo currently
  treats links, they will never be shown as links by Mode. Sorry.
* Oh, darn. It seems that I accidentally disabled all {}-codes in
  0.9.20. Major oops. Fixed.
* The vertical position memory for dirpanes had somehow stopped
  working (I didn't touch it, I promise!) too. Fixed that as well.
  That is really a fragile kludge, but I like it so much that I'll
  try and keep it...
* Added some glitz to the text viewing window used by the ViewText
  and ViewHex commands. A few of the buttons are ghosted out; these
  have not been implemented yet (left in to show what's coming).
* The overwrite-confirmation requester (and all other dialogs using
  the same underlying code) is now automatically raised, which should
  reduce confusion between it and e.g. the progress reporting window.
* Replaced the HTML documentation with a version that is sanctioned
  by one of Obsession's web-professionals (<ulf@obsession.se>). It
  sure has the looks, but the content is still outdated. :( Sorry.


0.9.20
* Removed -Wsign-compare from the CFLAGS, since it's not supported
  on older (2.7.x, I believe) versions of gcc. It seems I'm not the
  last person to upgrade (I'm now running 2.8.1)... ;^)
* The cfg_buttons.c module didn't compile on Red Hat systems. Of
  course, 0.9.19 was released without testing on RH first. :(
* Made sure "gentoo.h" is included first in all modules, which is
  really a must.
* Added inclusion of <stdlib.h> to some places, where it was
  obviously needed. As usual, I don't have any problems at all with
  this, but users running RH indeed have... Hm.
* Updated the icons/ directory with Johan's latest creations. You
  can find more at <http:/http://www.dsv.su.se/~j-hanson/>.
* Um... Thought I found a race-condition bug in the command-running
  code, but couldn't find it before it magically disappeared. :(
* Possibly fixed a bug that has been here since the first release,
  making gentoo have problems with empty directories. It turns out
  that the implementation of realloc() I have on my system doesn't
  work as the man-page says it should. :(
* The Copy command (and therefore, indirectly, parts of the CopyAs,
  Clone, Move and MoveAs commands) now always checks the size of a
  file before starting to copy it. It used to rely on the value in
  the pane, which is not always up to date. The new size, if any,
  will *not* appear in the pane. It will just be silently used. If
  you don't like this, create user command wrappers for each of these
  commands that first does a DirRescan, then runs the command in
  question (e.g. Copy).
* Wrote up a short tutorial/howto on how to define user commands.
  You can find it in docs/scratch/command_howto.txt. Cleaned up
  the docs/scratch directory while I was at it.
* The user command parser now has rudimentary support for quoting
  portions of the definition. Use double quotes. Quotes override
  everything, so you can't use {}-codes inside quoted portions. :(


0.9.19
* Added gtk_text_freeze()/thaw() calls when generating hex dumps
  (the ViewHex command). Speeded it up a *lot* (perhaps 10-100X).
* Implemented a DpHide command which toggles the hiding (the "Hide
  Allowed?" flag) directly. Connected it to the little H-button next
  to the pane's path, which was useless in 0.9.18. This is not a
  final design; I'm just trying it out. I like it, though...
* Implemented a rudimentary but nice Information command, which
  opens up a dialog showing summary info about each selected row.
  It became pretty Windowsy, but not too much.
* While writing the Information command, I felt the need for a
  recursive directory traverser, so I wrote one in the fileutil.c
  module.
* Replaced guts of the old GetSize command with a call to the new
  directory traverser. Smooth.
* The MoveAs command would fail if a move across devices was
  attempted. Now it won't. It also had completely broken progress
  reporting, fixed that too.
* The progress reporting module now uses the new fileutil-function
  for its recursive scanning/counting, rather than its own. Good.
* The ViewText command now uses mmap() on files having a positive
  size, while reading 0-length files with read() (for /proc).
* Added a "Scrollbar Always?" flag to the dirpane config tab, which
  makes the pane's vertical scrollbars disregard the number of
  lines, and appear always. The horizontal one is still "smart".
* The overwrite dialog now shows sizes and last-changed dates of
  conflicting files.
* Changed button caption in About & child dialogs to "Close", which
  I think sounds less modal than "Continue" and "OK"... ;)
* The CopyAs and MoveAs commands now allow you to enter an absolute
  path to the wanted destination, rather than rely on the implicit
  path of the destination pane. Also, they and the Clone command
  now always select the suggested name in their dialogs (like the
  Rename command always did).
* Fixed a bug in the fut_size() function (probably harmless).
* The command selection dialog (opened by the Run command among
  other things), no longer creates a silly empty tree if there are
  no user-defined commands. :)
* Almost completely rewrote the guts of the userinfo.c module. It
  now uses BSD-ish system APIs for reading password and group data,
  and thus no longer requires (or allows) the user to specify from
  which files to read. It also no longer re-reads the system data
  files on every unknown ID; this takes too long on fat systems.
* Fixed a few signed-vs-unsigned comparisons.
* In celebration of the rewritten userinfo module, I added support
  for ~-expansion to gentoo's path parser. This is used when parsing
  the paths you enter in the config, as well as shortcuts and stuff
  typed into a pane's path entry box. Note that ~-expansion, unlike
  $-expansion for env-vars, works only if path *begins* with ~.
* If you include the same directory multiple times in e.g. the icon
  path, you no longer get multiple copies of each icon. Unless you
  try harder.
* Added "{ic...}" and "{Im..."} codes to auto-insert-window in the
  commands config. Thosw had been forgotten.
* User-defined commands now do ~-expansion, too, using the {~NAME}
  code. Leave NAME empty ("{~}") to lookup current user's home dir.
  Unlike paths, you can embed {~NAME} codes anywhere in the command.
* Removed silly "Name" list column title in file type config. :^)
* The dirhistory was broken; it used inode numbers as unique IDs for
  remembered rows. That won't work, since inodes are only unique with-
  in their particular device. Now uses both device AND inode numbers.
* Improved the buttons.c module a great deal, adding more utility-
  calls in order to increase opacity of related data structures. The
  net result should be increased stability.
* Encapsulated shortcuts in their own module, which cleaned up the
  corresponding configuration module considerably.
* Improved the pseudo-XML module used for config files greatly. It
  now looks and works a whole lot cleaner, while requiring less code
  in the "client" modules, thus hopefully increasing stability.
* Changed the config file format used for paths, at the expense of
  breaking backwards-compatibility. Sorry about that, but I really
  feel it's worth it.
* The supplied config now knows about PostScripts files, and can
  view them if you have ghostview (gv) installed. ;^)
* The Copy command no longer unselects files it fails to copy. This
  is more in line with the Move, CopyAs and MoveAs commands.


0.9.18
* Capitalized A Couple Of Words in the selection dialog...
* Example config now understands PDF files (and you can view them,
  if you have AcroRead installed).
* Fixed a bug in the directory history, where it could sometimes
  set the pane vertical position from random data on newly entered
  directories! Yuck. Reported by Johan Hanson, the icon wiz.
* Added recognition of JPEG images to the config...
* Now uses the latest version of Johan's icon package, in icons/.
  Check out those new image-icons! Also uses the "Bad.xpm" icon
  as the built-in icon for load-failure (in "icon_failed.xpm").
* Removed the explicit priority field from file types. The
  priority is now simply taken from the type's list position. Added
  up and down arrows in config page for easy adjustment. Makes the
  handling of types more consistent with other things, but loses the
  automatic sorting...
* Implemented a per-pane adjustable configuration flag, that controls
  whether the pane cares about file hiding or not. Connected this to
  another "secret" keyboard shortcut: try pressing 'h'...
* Tidied up the command interface to the configuration window, and
  added a "ConfigureSave" command in the process. Don't hold your
  breath for a loader, though...
* Added true GTK+ widget names to the pane column lists. Now the
  supplied GTK+ RC file only sets the fonts there, rather than in
  ALL CLists. Neat. Updated README.gtkrc accordingly.
* Changed the order of the config pages somewhat, making them some-
  what more logical (or something).
* Fixed a potential memory-leak when deleting types, and also made
  it select a new current type after deleting, which is nice.
* The children.c module now uses the POSIXly correct API for dealing
  with signals. Since POSIX signals are supposedly reliable, this
  might work better. Some testing on Solaris actually seems to
  support this theory, too. Good.
* The output capture window no longer opens before there's some-
  thing to show. This has the interesting (?) side effect that if
  there is no output, it never shows up at all, which is nice.
* The GTK+ Text widget used by gentoo now has a name, which allows
  you to control its look through the GTK+ RC file. See example.
* Removed the progress reporting for the Delete command, since I
  really didn't like the way it behaved (I'm surprised nobody has
  complained).
* The command selection dialog (used by the Run command and when
  setting up actions) now remembers collapsed/expanded states for
  its two subtrees. No saving, though.
* Added a Zip-disk size template to the Split command.
* Fixed the UnselectFirst command, which didn't refresh correctly.
* Improved the behaviour of the vertical position history when the
  number of rows in pane changes drastically. Not good, but better.
* Polished up my str_snprintf() implementation... Safe (& shiny) now.
* When capturing output, the viewing position of the widget is now
  forced to the top when output ends, rather than being random.
* Changed the wording in the quit-confirm dialog slightly. :)
* Changed the implementation of the ViewText command; it can now
  be used to look at files in the /proc filesystem (at least on
  Linux). Avoid kcore, though...
* Added a ViewHex command, which (slowly) renders hex dumps.
* Added a default value for the GTK+ RC path compile-time symbol.
* Fixed a bug: fileutil.c thought that root could execute any file,
  regardless of x-flag.


0.9.17
* Damn! I hadn't tried to compile 0.9.16 on SunOS *before*
  releasing it, so of course it didn't compile. A quick fix, but
  incredibly stupid.
* Damn again! I must have overwritten my "glib.h" at home with
  a 1.1.x version, or some such, because a couple of functions
  in the "dirhistory.c" module were defined with types from 1.1.x.


0.9.16
* Idling around in the source, I spotted the fut_locate() function
  which was looking extraordinarily kludgy. Improved it slightly.
* Added an inclusion of <stdio.h> to the dialog module. It really
  should be there, since the module in fact calls fprintf(), refers
  to the symbol stderr, and so on. On the other hand, I get no
  compiler objections when compiling, which makes me curious. On
  inspection, it turns out that dialog.c includes <gtk.h>, which in
  turn includes <gtkcolorsel.h>, which in turn includes <stdio.h>,
  so there. The question now is why this fails, as it apparently
  does on some users' systems. I don't get it. Without having direct
  access to those systems, it's hard to fix these kinds of errors...
* Added -Wmissing-prototypes to the compile flags; this exposed a
  number of cases of, er, missing prototypes. Fixed them, so now
  the global name space is less polluted. :)
* The selection history has been changed; it now hashes the lines'
  inode numbers rather than (dynamically duplicated) name strings.
  This greatly improves speed, while conserving loads of memory.
* The path entry widgets now loose focus if you click in the pane
  listing. It was previously rather difficult to "unfocus" it.
* The supplied example configuration no longer uses any rules
  with 'file'. Makes it less intimidating on systems with "bad"
  'file' implementations, hopefully.


0.9.15
* Optimized the directory history handling. Very trivial, but didn't
  occur to me before the release of 0.9.14... Shouldn't be a big deal
  either, but it helps me sleep at night.
* Fixed a trivial but evil bug, which effectively prevented you from
  being able to type in the path entry widgets. Oops.
* The history system has been extended to also include the set of
  lines that was selected, so when you return to a directory, the same
  lines will be reselected. Also, the vertical position in the pane
  is retained.
* Added support for building combo widgets for use in command input
  dialogs. Use the {Ic...} code (same other syntax as menus) for this.
* Fixed the definition of the sample 'create_tar' command. It didn't,
  but now it does, and uses a combo too.
* Added support for cancelling certain dialogs by pressing ESC on the
  keyboard (the command input dialogs, for example).
* Added support for reading in a GTK+ RC file, thus allowing the looks
  of all widgets to be customized by the user. This is very cool. The
  implementation is functional, but also minimal. Read more about it
  in the README.gtkrc file!
* Fixed a bug in the Makefile, and made sure that my local GTK+ RC
  config is included in the distributions.
* Compiled gentoo with optimization for the first time, which revealed
  some potential bugs (data flow analysis rules!). Fixed'em all. The
  Makefile's default is still to compile for debugging, though.


0.9.14
* Added display of GTK+'s version in the About dialog box. :^)
* Fixed a tiny bug where error messages "stuck" when they shouldn't.
* Added (GCompareFunc) casts where necessary. I'm dumbstruck as to
  why the warnings I suddenly see have never shown up before...
* Added a Play action, and a corresponding FilePlay command of course.
  This should come handy to people using gentoo to manage collections
  of MP3 music, for example...
* Removed use of alloca() in the dialog.c module, having re-read the
  C FAQ (fear of portability problems).
* Handling of dirpane default paths improved (used to refer to my
  home dir on my personal system, which clearly sucked).
* Added some lines to the Makefile's "dist" target to copy my current
  personal config into the "gentoorc-example" file; this should ensure
  that distributions always include a current config.
* Running 'make install' no longer installs the configuration file.
  It will let you know where to put it though, so you can choose between
  a site-wide and a personal installation of the config.
* Added another submenu to the right-button pane menu, with shortcuts
  to the various FileXXX action commands. Pretty neat.
* Added a cute little code module (options.c) to deal with command-
  line parameters. Also added the option --root-ok, which will make
  it possible to run gentoo as root, something that is normally not
  allowed because of the security risk (this is development software,
  and all that).
* Implemented a neat little path history. Click the down-arrow to the
  right of the path entry widget, and a pop-down list showing the 16
  most recent directories appears. Select one, and off you go! The
  number of paths stored should be configurable, but isn't yet.


0.9.13
* Removed the last (?) couple of non-ANSI-isms from the code, as well
  as a couple of other silly warnings reportedly detected by Sun's cc
  compiler (but not, irritatingly, by gcc on my system).
* Cleaned up the quit-handling, by discovering GTK+'s nice support
  for quit handlers. Now all child processes started by gentoo are
  killed as gentoo exits. This might be suboptimal if you want to
  use gentoo as some kind of application launcher, so I added a
  "survive" option to the command config, for that purpose.
* Enabled GTK+'s timeout support for the dirpane popup menu, since
  I've received a couple of reports stating that there is some kind
  of problem with the menu disappearing too quickly, or something.
  I've not been able to reproduce this error myself, but this might
  fix it...
* Added checks of gtk_clist_get_selection_info()'s return value, which
  should fix the sometimes odd drag behaviour. These checks were really
  necessary, but I hadn't noticed until I ran gentoo on Solaris.
* Improved handling of hard-coded paths; all paths (?) that need to be
  compiled into gentoo are now defined in the Makefile and handed to
  the compiler using the -D option. Fixed paths for config file, icons,
  and password & group files this way.
* The chmod command now works a little better (it respects its own
  default values).
* Moved the two quit commands into their own code module, and also
  moved the initialization of the built-in commands to the cmdseq
  module.
* Fixed yet another pointer initialization bug in the dirpanes, which
  caused bus errors on Solaris. Compiling code on different systems
  really is good for you!
* It is now possible to access selected files in the destination pane
  in command definitions. To do this, include the 'd' flag in the
  control code (e.g., {fdu} or {Fd}). The source pane is the default
  (for convenience and compatibility).
* The position of the path entry widget is now configurable; it can be
  either above or below the actual pane contents.
* Added support for hiding files from the directory panes. Three modes
  available: no hiding (like before), hide entries beginning with a
  dot (fast & common), or hide entries whose name match an RE. Cool?
* The initial position and size of the gentoo window are now config-
  urable. You can get gentoo to track the position & size as well,
  and save them when you quit. Note, however, that you cannot manually
  make the window smaller than the size specified. This sucks, but I
  haven't been able to figure out how to fix it. Tips welcome.
* Fixed a bug with the progress reporting in the CopyAs and Clone
  commands (wasn't properly initialized => loads of GTK+ warnings).


0.9.12
* Did even more ANSI code cleaning.
* This version builds right out of the box on SunOS 5.5.1 (aka
  Solaris 2.5, I think). At least it does for me, using gcc and gmake
  on the Solaris box. The version of gcc used was 2.7.2. Read more
  about this in the INSTALL file.
* Fixed a tiny bug in the generation of the filename for configuration
  saving (had no practical effect).
* Updated the gentoorc-example file, which had grown horribly old (it
  was from 0.9.7, i.e. not even format compatible). Oops.
* Reimplemented the strcasecmp() function, since it's giving me a
  portability headache.
* Got a new logo for the About-box, from Ulf (ulf@obsession.se).


0.9.11
* Empty command names are now ignored, reducing the number of silly
  dialogs when double-clicking on styles with empty actions. This is
  better, since an empty action really shouldn't cause any execution.
* After some hints from Drazen Kacar (dave@fly.cc.fer.hr), who ported
  gentoo to Solaris 2.6, I went through the code, fixing non-ANSI-isms
  and making it generally a bit more well behaved (I hope). It now
  compiles using "-Wall -Wno-unused -ansi -pedantic" with no warnings.
  Some of the items fixed include the removal of non-constant variable
  initializers, empty "default:"-clauses in switches, lots of signed vs.
  unsigned comparisons, some stupidly illegal pointer arithmetic (like
  "(gpointer) 1 + i"), use of umode_t when I meant mode_t, and so on
  and so forth. Also found and removed one of those silly trigraph
  sequences that had sneaked into a comment.
* Finally got around to re-implementing support for the input menu
  code in user commands ({Im...}). Cut away all the old code kept in
  there a fall-back, which cut the cmdparse module's size in half.


0.9.10
* Hacked away the focus-ability from the scrollbars of the panes
  as well as the shortcuts. This leaves only the pane path entry
  widgets as being "focusable". Unfortunately, it seems as if these
  have to remain that way in order to work at all. :(
* Added a call to err_clear() in the command sequence executor.
* Wrote a first version of a progress-reporting system; opens up
  a dialog with bars and stuff. Currently only being used by the
  Copy command; there's a whole lot of integration left to do. It
  also didn't become quite as powerful as I wanted it to -- writing
  a good progress reporter is simple, but difficult.
* Continued polishing the progress reporting, and implemented use of
  it from the Delete and Move commands, too. Still haven't gotten
  around to putting it into the CopyAs, Clone, and MoveAs commands,
  however. Also, it will need some configuration, and the error
  message shown when you hit the Cancel button in the progress window
  is somewhat confusing (Linux seems to lack the ECANCEL error).
* Added a cute little "Grab Current"-button to the default path frame
  in the dirpane config.
* Worked around the GTK+ problem with title-less CLists in the child
  dialog, too. Might possibly be the last one...
* Removed all occurances of // comments, thus making the code a lot
  more kosher (this is C after all).


0.9.9
* Changed the selection mode in the cmdseq_dialog. Looks nicer now.
* I (think) I fixed a memory-overrun problem leading to SEGV faults
  in the cmdseq_dialog/cmd_run modules.
* Added some semi-cool auto-completetion features to the command sel-
  ection dialog. Just type, and it might figure out what you want...
* The Copy command would not stop on first error. Now it will.
* Implemented the narrowness-support for buttons. I'm not sure I like
  it, but I'll leave it in there for a while.
* Rearranged the text in the About box somewhat. Huge deal, huh? :)
* Fixed a bug in the overwrite-module that prevented it from inter-
  pretating its flags correctly - it would always hide itself.


0.9.8
* The "multi dialog" routines (in the dialog module) are no longer
  busy-looping when waiting for user response; gtk_main() is reentrant!!
  So, there's no longer a moral penalty for using these routines.
* Tore out, publicly humiliated, and finally shot (!) the old command
  code, and rewrote it all. That's a 3,000+ line rewrite, but it was
  sure worth it... The new command architecture is way cleaner, cooler,
  and more flexible. It's not config-compatible, though. Sorry.
* Rewrote the configuration of the buttons; it is now done without
  opening an extra dialog. Still haven't actually implemented that
  little "narrow" flag, though. :)


0.9.7
* Switched to GTK+ 1.0.6, which just appeared. Don't know if this will
  require any changes in gentoo, but I'll investigate. From reading the
  ChangeLog it looks as if most changes are internal.
* After the switch, the style config page (of all pages...) started to
  produce warnings from GTK+. Some extensive tracking showed that its
  the visual property preview CList that's responsible. That's about
  all I know right now, though... (Later) Fixed it. The problem was that
  the clist had no titles, and that made GTK+ attempt to render a NULL
  widget. Fixed by adding empty titles and hiding them. This should be
  reported (I've posted about this to the gtk-devel mailing list).
* Fixed some very minor mishap in the style-config GUI construction.
* DirEnter now resets the internal double-click row.
* Fixed a tiny bug in the DirToOther command which prevented it from
  operating properly (but enabled it to mess up the pane totally).
* Fixed a very small, but serious, problem in the delete_dir() function
  (in cmd_delete): it didn't work for non-empty directories. :(
* Extended the old "Append slash" option to append type-specific info
  just like 'ls -F' does (dir, executable, link, FIFO, socket).
* The expand/collapse state for style tree nodes is now saved in the
  config file, too. :)
* Noticed that the file typing didn't work as expected when the only
  type information was the mode bits; these bits aren't used as "pure"
  flags in the file system. I knew this, but not well enough... Fixed.
* The path parser now supports use of environment variables anywhere
  in the string; you can use "/home/$USER", for example. Any number of
  variables can be used, and you can also use ${braced} names.
* Removed a slightly redundant function in the fileutil module, and
  replaced with a (thin) interface wrapper for an existing function.
* Did _considerable_ work with gentoo's handling of (soft) links. I
  must say that, at least symbolically speaking, I hate links. They
  really mess my life up. Currently, gentoo's handling of links i far
  from satisfactory I guess. It works fine for me, though. :) Just
  don't expect it to always do the right thing - it won't (then again,
  in my opinion, neither will 'cp').
* Implemented an About command, showing the gentoo logo, the version
  number, copyrught, and a standard disclaimer.
* The standard dialogs are no longer modal unless there is a callback
  specified. Made the About box (and various other dumb confirms/
  notifications) behave nicer.


0.9.6
* Found weird bug in the copy command; it fails when copying from a
  CD-ROM filesystems. I *think* I know why, but my neat fix wasn't...
* Fixed a bug with the overwrite-handling in the interactive commands
  (rename, copy as, clone, move as) that caused it to end up in an
  illegal state. Found that one myself. :)
* Fixed bug where write-protected files couldn't be copied, because the
  destination was made write-protected too. This caused some confusion
  when working on CD-ROMS...
* Added overwrite confirmation to the Split command, where it had been
  forgotten. :(
* Found and fixed a highly magical problem; gtk_clist_thaw() clears
  the value of the global 'errno' variable, which made the rest of
  gentoo loose track of errors. Weird. The same behaviour was then
  traced to gtk_clist_set_foreground/background() (in dpformat).
* Priorities are now shown in the file type listing in the config.
* Clicking in the column area of the other pane now only activates
  it; no change of sorting order is done. Convenient++.
* Fixed a minor bug in the buttons config; it would only care about
  button label changes if the command sequence as set, too.
* Implemented the row moving buttons in the button config.
* Added some code to reorder the list of styles, so that parents are
  closer to the front of the list, and leaf nodes in the rear. This
  ensures that the serializing of the list is always done so that
  when a child appears, its parent has already appeared. This also
  fixed a bug in the reparenting in the config. :)
* Fixed (I think) the style-sorting, by tweaking the code a little.
  No change in resource-consumption, though.
* Wrote a fun little SelectExt command, which extends the current
  selection based on the style tree relationships. Makes it dead
  simple to select e.g. all archives, once you've found _one_.
* Tracked down and nailed an ugly bug in the style_dialog module.
* Altered the move_to() call in dirpane column editing, since it just
  fscked up everything. Still don't trust it.
* The Quit command wouldn't always (problem in the confirmation dialog).
* Nailed down a fairly big race-condition related bug in the command
  execution system. Clearly, parallel programming is not what I do
  best. :(
* Renamed the DirOther command to DirFromOther, and also added a
  complementary command (called DirToOther, of course).
* Fixed a bug in the Makefile where it thought that the final target
  ("gentoo") was my project directory. :)
* Added two cute little Up and Down arrows to the shortcuts config,
  and implemented the required operations (really!).
* The collapsed/expanded state for the style tree items is now re-
  membered while gentoo is running (not saved in the config file,
  though). Perhaps I'll add it to the file if someone feels it should
  be there...
* Did great changes to the handling of sigchild; now the signal handler
  only notes that something needs to be done, but doesn't actually do
  anything directly. The real action is done in the (new) queue module.
  This prevents nesting calls to GTK+, something I have a hunch won't
  work as expected.
* The command input dialogs (for {I...} sequences) now support Escape
  and Return to cancel or accept, respectively. Great happiness.
* I suspect that strerror() also resets errno (or something), so I added
  yet another save/restore pair (in the errors module).
* Improved the behaviour of dp_enter_dir() when the directory it wants
  to enter doesn't exist/is unreadable.


0.9.5
* Changed constant MAXINT to INT_MAX to comply better with Debian's
  include files.
* Fixed incorrect length limit in configuration of dirpane's default path
  (was 32 letters, should be PATH_MAX), and also on the definition of a
  user command (was 32, should be unlimited).
* The ViewFile command was totally broken; it didn't check for selected
  files when no file was doubleclicked, but viewed'em all! Not so good.
* Implemented a overwrite "protection" module, which eases the addition
  of such warnings to different parts of the program.
* Rewrote the Copy, Move and Delete commands to use the new overwrite
  stuff.
* Added overwrite handling to the Rename command, and also the CopyAs
  and Clone commands.
* Discovered that the standard C library actually _has_ support for
  regular expressions! It's even a couple of bits better than the old
  code by Mr Spencer I had used earlier. Quickly ripped out all uses
  of Mr Spencer's code, replacing it with POSIX-compliant calls only.
* The quit-confirmation dialog now supports saving the config right
  then and there, and then quitting. Pretty smooth.
* When closing the main window, the confirmation dialog would always
  open, even if it already was. This caused massive confusion and lock-
  ups. Fixed.
* Fixed overwrite protection for the MoveAs command. I *think* that's
  the last of the commands that really needs it...
* The built-in button sheet is now less confusing, I hope.
* Poked around a little in the style system, looking for some kind of
  Heisenbug that seems to be living in there. Didn't find anything.
* Fixed a bug in the style config, where seq_get_sequence() was called
  twice, with the first result just dropped. Very unoptimal. Also fixed
  the general behaviour of the get-routine; now it returns NULL if
  the sequence is empty (was "", which is silly).
* After some more styled poking (see above), I *think* I nailed it.
  I definitely fixed some serious wrong-doings in the styles module;
  styles were copied straight, without reallocating properties. Weird.
  Also, we were a "modified"-setting short, which is always sh*t.
* Error reporting when MkDir fails improved. There was none. ;)
* Fixed kill of useless child when running nonexistant external cmds.
  This needs more fixing.
* ovw_overwrite_file() affected the value of errno. It shouldn't.
* Hacked the operation of the Rename command; it now totally ignores
  renames that aren't.
* The DirEnter command was broken. It would always return failure. :(


0.9.4
* Fixed major bug in style handling; inherited properties were always
  copied straight over, rather than being reallocated when necessary.
  This created huge problems with command sequences (aliasing and crap).
* Implemented a new command, ViewText, which simply calls up the internal
  text viewer. This is far better than having text reading an implicit
  default action. There are now NO default actions, anytime.
* Style system (and command sequence comparisons etc) were basically
  broken. Fixed (I think).
* Implemented priorities for file types, complete with a slider in the
  configuration page. 255 different priorities are available.
* Added ellipses ("...") to the menu items that bring up dialogs. :)
* Made the button editor window resize nicer. :)


0.9.3
* Renamed the "doubleclick" action; it's now called "default". Better.
* Added a fun little button with an arrow on it, next to the path entry
  box in each pane. Does an Activate and a DirParent; this behaviour is
  currently hardcoded. :) Consider it a demo.
* Doubleclicking in panes now works a lot better. Try clicking first
  on one row, then rapidly (doubleclick speed) clicking on another row.
* The entire bottom part of the GUI can now be empty (no shortcuts, no
  buttons). Perhaps not very useful, but looks clean and nice.
* Rewrote the button handling and configuration from scratch; ~1050
  lines thrown away and rewritten. It's already better, but not very much.
  There's more potential now, however.
* Now pops up a confirmation dialog if you're trying to quit after having
  clicked "OK" in the config dialog. To get rid of this, open the config
  and hit "Save".
* Added a new command, "QuitNow", which always just quits; no questions.
* Added the {#} user command special sequence to the help-dialog in config.
* Regular expression matching in type system can now be case-insensitive.
* When you exit the config, any currently selected button is unselected.


0.9.2
* The suffix file type check rules now correctly handle suffixes that
  are "complex"; the first letter in the suffix doesn't have to be the last
  letter of its type in the string (think ".tar.gz") any longer. Snail.
* Implemented support for sorting on the icon column. Uses the row's style
  to sort, and keeps styles together based on their parents. Complex, and
  slow.
* Oops. Since no commands are actually waited for any longer, all commands
  in a sequence were started in parallel (regardless of the background flag,
  which basically only affected the GUI). This of course ruined the entire
  concept of a command *sequence*. Fixed.
* The list of user commands in the config window is now sorted.
* Fixed a couple of minor details that prevented button banks of a size
  different from 8x3 to load properly. Seems to work now, but is fairly
  untested.


0.9.1
* No more warnings about pixmap loading on startup (window now realized).
* Fixed the style selection dialog, which was a) horribly implemented,
  with code duplication and b) completely and utterly broken.
* Modified the Makefile to put object code in a separate directory.
  Makes it easier to overlook, and a lot easier to create distributions.
* Happy with the new and improved directory layout, I fixed the "make dist"
  target; it can be used to create an aptly named distribution archive.
* Implemented CopyAs, MoveAs, and Clone commands. Real neat.
* Implemented a rudimentary GetSize command. May need some polishing, but
  does good work already.
* Implemented a paned separator between button bank and shortcuts. Reminded
  me of the old problem with the initial positioning of a paned widget. :(
* Added a couple of commands for interactively selecting a command to run
  (RunBuiltin and RunUser). Not immediately useful, but sometimes nice.
* Made the "label" entry widget in button command config auto-focus. :)
* Um, fixed a HUGE evil bug in the copy code: it didn't close the files!!
* Got suspicious, and sure enough; the split command didn't close output
  files either. I sure am sloppy sometimes.
* Copy, move and delete commands now all use the standard directory filter
  to remove unwanted files. Currently, this is only "." and "..".
* Copy and split now always open their destination files with O_TRUNC set.
  This is really a must, otherwise you can't replace a large file with a
  smaller one.
