* Bugs

Far better to have cons.saver itself calling ttyname(), just by not
connecting its stderr to /dev/null (it doesn't use it, does it?).
If you really want to, you can do it after exec().

  - Document C-x C-r, C-x C-l, C-x C-s

  - Sort is wrong: ftp://tsx-11.mit.edu/pub/# files.

  - Check that all the help contexts exist on the help file.

  - Make the buttonbar for the tree box work.

  - Fix the tree: it displays similar entries wrong.

  - In the incremental search mode, when backspacing, select the
    correct file, do not stop in current file.

  - Make C-y yank back all the killed text at once if you've just done
    several kill operations in a row (C-k, M-d, etc).  [For MC 3.x]

  - In learn keys, warn the user if he is trying to
    i) define a same sequence as an already defined (if the keycode differs)
    ii) define a sequence, which is a prefix of other longer and already
        defined sequence

  - Fix freeing of memory when tar loading crashes. [3.x]

* Tk/mc

  - name_trunc the pathname on top of the panels.
 
  - Click on the pathname should take you to that directory.

  - Viewer breask with object libraries prev_color is miss computed.

   - Tk/Winfo: The program should not recompute the file system information
    for each file, it should keep a cache

  - The control of the buttonbar is broken in Tk, try quick view and
    then press F3 when focusing the Quick view.  It does not change
    the labels on the buttonbar.

  - UNLINK the file as soon as the ftpfs gets an error during write.
	
  - Port the WTree and WHelp widgets.

  - The current size detection for the widgets will only work if there
    was a panel before (they assume winfo width/height container does
    have useful information), I should encapsulate and fix this.

  - Change of the listing mode is broken.
  
  - The mini status has not been coded.

* XView/mc

  - Dropping files on root window should create action icon.

  - Fix the viewer.

  - Fix help.

  - Icons for buttonbar.

  - Info panel.

  - Tree panel.

* Configuration 

  - HPUX needs -Aa and _HPUX_SOURCE defined, is there any way to
    detect this?

* Documentation

  - Convert the source mc.1 to mc.sgml and create automagically from it
    mc.1, mc.html, mc.hlp, mc.info, mc.tex, mc.txt etc. [3.x]

* Extensions

   - Write a general grow_string routine.  This code is used in the internal
     viewer and would also be used in the profile.c code.

   - Allow colors to be defined in the mc.lib file.

   -  A command to set the line length to a fixed value for viewing
      fixed length binary files. LIST does this with Ctrl-B and then
      prompts for a "record" length.

   - A ruler that shows the column positions when viewing a file. Again,
     from LIST, the keystroke command is Alt-R to invoke the ruler.

   - The 8 bit clean option in the option/config menu is not needed anymore
     we have display bits and slang does not have the ncurses bug, so
     we could move one of the other variables that are not needed to the
     config box.  Suggestions?

   - Viewer: have a case match toggle.

   - Viewer: Mark all found matches, and when 'n' is pressed go to the
     next page, not the next match on the same screen (when there is
     more than one).

  - In ftpfs_open, extfs_open, if we set local_filename to tmpnam, use
    a mechanism to set local_filename to another place on the local
    diskspace (this would be useful for copying, so that we would save
    some tmp space). This would require special care in file.c afterwards.

  - In Listing mode... give at least three user-definable formats
    (using Janne's Listing mode editor) and assign hot-keys to both
    standard and user defined (what about c-x f [fbl123] ?).

  - Multiple panels - really necessary! [3.x]

  - Shift-Home, Shift-End for the input line: home and end.

  - Control-Left Control-Right move by words.g

  - Make a mechanism to lock all the mouse events and send them to
    the locking widget until unlocking is done.

  - Sort with numerical extensions.

  - Allow the program to execute a command even when we are on a vfs, maybe
    a special box, or make subshell code ignore the change directory
    request. Perhaps each vfs should store a local path attached to it,
    like in tarfs, extfs it would be the directory which contains the
    topmost tararchive, in ftpfs it would be the directory which we entered
    to ftp from.

  - auto_hint_lines: a variable that would choose to use hint mode when
    at least auto_hint_lines are visible.

  - After SIGWINCH, set top to the best value.

  - Listbox: Mouse handler for the scrollbar: this will be hard with
    the current approach (since the listbox scrollbar is drawn *outside*
    the listbox control area).

  - In file.c, we shouldn't need to get a full path name in order to
    work, we should instead canon the file name inside the tar.c (the
    only fs that relies on this), tar.c should know about the cwd (i
    think).

  - Panelize the selected files.

  - Write a generic file system that would invoke a program with
    special arguments to provide any kind of file systems (the program
    could be a shell file, and we could provide .zip and .deb support).
    It is already in an ALPHA stage and won't be released with MC 3.0.
    Wait for MC 3.1. Currently works for zip, zoo, ls-lR and your favourite 
    ftplist.  [For MC 3.1]

  - Make all our vfs's work under userfs (Unix filesystem which runs
    user-space programs to do it's work). Then e.g. an ftp server would
    allow you to browse tar files in place using ftp... [3.x]

  - Recursive delete should (perhaps as an option) delete files just after
    they have been copied and not to delay deleting until everything was
    moved. [3.x]

  - When copying a tree (or moving or deleting), as an option act primarily
    on the regular files and at the end on directories recursively, so that
    we get complete high parts of the tree if something fails (useful for
    ftpfs). [3.x]

  - Put into a new and bigger Options/Configuration dialog all the options
    we have now to set using .mc.ini manually. [3.x]

  - When after deleting there are no files in a panelized panel, restore
    it automagically to the real directory content. [3.x]

  - Files/Symlink and Link should be able to do multiple links (if the
    target is a directory). [3.x]

  - Directory sizes should work in background using try_channels. [3.x]

  - Support of non-UNIX ls in ftpfs. Perhaps using an ascii configuration
    file similar to moxftp. [3.x]

  - Archie support using extfs. [3.x]

  - Have an option to let the user choose the preferred keybindings.
    Currently, only the emacs keybindings are supported, add support
    for Norton Commander and vi keybindings.

  - Find command should have a way to specify directories to skip.

  - Add an option that will let listboxes do incremental searches.

* Optimizations and cleanup

  - Use RPCbind on SVR4, this currently will be left for 3.5

  - Optimize the mcfs read and write code: make the code ouput 8k
    blocks all the time (if we have called mc_hint_readall) and probe
    the input for a possible cancel.

  - When verbose is off, remove all the clutter on the screen about
    the files being copied.

  - The viewer is calling view_update in many places, I call
    view_update after handling a key, should all the other
    view_updates be removed?

  - If the viewer is too slow, some catching could be done.
    width and cols are currently computed each time they are needed.

  - Add context sensitive help to the f9 menus.

  - Add an overlap when going up or down in the file list.

  - In the user menu, don't use the entries array, we can now grow
    dynamically.  I should take a look at this one day, it's easy to
    fix.

* Binaries distribution
  - Including all the necessary terminfo databases compiled for
    different machines, as well as xterm_color for different machines.
  

