Source

lfm / TODO

Full commit
============================================================================
Last update:	Time-stamp: <2010-05-22 11:26:41 inigo>
============================================================================

General:
========

Bugs:

Medium Priority:
  + improvements
1   - don't like much recursive chmod/chown/chgrp as currently works
      . split in 2 different features chmod and chown/chgrp ?
  + ui
1   - support for languages with wide chars
      . check the real length on screen of the utf8-encoded strings
1   - rewrite messages.error
      . make size fixed, bigger
      . add file to body, not in header
      . support msgs like 'line1\nline2\lines3...'
2   - rewrite EntryLine
    - tab views:
      . 2 columns mode
      . customized: permissions instead of date
      . quick view
      . info view
    - speed up cursor movement => curses.panel
  + new features:
2   - command line
      . loop over selected files
      . tab: complete
      . pattern substitution: $x$ or %x
          %f: file including extension
          %X: file without extension
          %e: extension
          %X: path/file.ext
          %d: directory
          %od: other panel directory
          %bmk#: path in bookmark #
          %l: all selected files, space-separated
          %idx: index
          %datetime
        and key shortcuts to insert some of the variables
      . flag: show output & errors or only errors
      . options: flag save historic between sessions, number of items to save
    - crypt files
3   - sync dirs, use filecmp.dircmp
3   - diff between xxx.orig and xxx => Plugins in F11?
    - pyinotify

Low Priority (maybe some day):
  + advanced file rename tool
  + remote vfs: ssh, ftp, smb, webdav
  + new vfs: .rpm, .cpio, .deb, .jar, .xpi, .egg
  + filter files (f.e. "*py" to only view python files)
  + i18n
  + pyview: tab 4/8 chars
  + global copy/cut/paste between tabs or panes
  + show directory under cursor in the other panel: mc: Alt+O
  + exclude files (f.e. *.o) in grep 
    - ".#filename" are temporary emacs files/links
    - grep --exclude=XXX
  + sessions
  + keybindings customization
  + background processes: copy/move
  + use mimetypes module
  + plugin system
  + support setuptools

Very Low Priority (never):
  + mouse support
  + an UI to configure preferences
  + "save delete" option => move to ~/.Trash


Upgrading python version, interesting features in new versions
  + python 2.4
    - sorted
    - sort, sorted: cmp -> key
    - subprocess
    - property
    - unicodetata.east_asian_width
  + python 2.5
    - ternary operator
    - ctypes
  + python 2.6
    - collections.namedtuple
    - with
    - multiprocessing
  + python 3
    - has_key => in
    - no module cPickle
    - print()


Known Bugs:
===========
+ general:
  - "lfm path" fails if path contains spaces, caused by shell 'lfm' function
  - after renaming a file, cursor should be placed over the new file name,
    but this is not always posible because we don't know new file name
  - if an error happens while copying/moving/uncompressing/... =>
    => some rubbish remain in destination
  - symlinks navigation. symlink has to return to a parent dir.

+ compress.py:
  - rar with password halts lfm, because process is waiting for a password =>
    => timeout if not output and kill the spawned process
  - recursively chmod +w temp files before deleting

+ vfs.py:
  - .tar.gz inside a .tar.gz file (vfs in vfs)
  - tmpdir are showed in the copy/move/... dialogs or when view/edit/...
    a file, instead of vfs dir (this is just a minor estetic issue)
  - in case of 'panelize' vfs type (after find/grep), deleted / moved
    files are not deleted / moved in real path


============================================================================