TODO 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326
  1. Before 4.6.2
  2. ============
  3. mc manual: describe new Find File feature options (find Recursively,
  4. case Sensitive and Regular expression)
  5. mc manual: Add Environment Variables section
  6. Check all instances of const_cast and str_unconst, remove the
  7. unnecessary and comment the rest.
  8. Clean up #include's in all files.
  9. Make mc work with 64 bit data types. This includes support for 64 bit
  10. processors, 64 bit operating systems and 64 bit file sizes. Generalizing
  11. this, mc should use datatypes as they are appropriate.
  12. Remove all instances of type casts on function pointers. Run the
  13. following command to get a list of function pointer types.
  14. grep -r 'typedef.*(\*' . \
  15. | sed -n 's/.*(\*\([[:alnum:]_]*\)).*/(\1)/p' \
  16. | sort -u \
  17. > fn-types.txt
  18. Then use fgrep to find illegal uses of these types.
  19. fgrep -r "`cat fn-types.txt`" .
  20. Fix these uses by writing small wrapper functions.
  21. When saving a file is not possible, mcedit should ask the user what to
  22. do:
  23. - su(1) to another user and try again
  24. - sudo
  25. - change permissions of the file or the containg directory
  26. - other smart things
  27. Due to problems in the VFS, files are not written back after being edited
  28. over VFS with an external editor.
  29. Allow pathnames starting with spaces in vfs/extfs.
  30. Hide the passwords when displaying mcvfs path names.
  31. Broken pipe warning when viewing large *.tar.gz files. Warnings should
  32. be shown before the viewer is started if possible.
  33. Cannot spell check unsaved files in the editor.
  34. Dynamic loading for libgpm, libext2fs.
  35. Check if the archive was changed for extfs, tar and cpio. Free the data
  36. associated with the old archive.
  37. Ctrl-q Ctrl-m in input dialog should enter \r, not a newline.
  38. Interpret C literals in regular expressions entered by the user, e.g. \r
  39. and \0x0D.
  40. Allow entering archives in VFS by Ctrl-PgDown with non-empty command
  41. line. Right now, there is no convenient way to enter an archive when
  42. the command line is not empty.
  43. Allow switching between histories of two panels. It's convenient to
  44. change to a directory from the history of the other panel.
  45. Allow calling the directory hotlist from Copy, Move and Find File
  46. dialogs. Recent directories are the obvious candidates for copying and
  47. looking for files.
  48. Allow modifiers for keys in mc.lib, like "shift-up". Right now,
  49. modifiers can be read from the terminal (if supported), but not from the
  50. config file. This change would make it possible to use modifiers even
  51. if they can only be identified by the escape sequences.
  52. When saving config files, write to a copy, then replace the file. This
  53. would avoid the problem of partly written config files. Consider using
  54. locking of the config files.
  55. Totals are not calculated when copying or moving a single directory.
  56. Totals should only be omitted for single files.
  57. Recheck all mouse handlers, make sure that they check button number. We
  58. don't want mouse scrolling to be interpreted as mouse click.
  59. Smooth mouse scrolling on panels. Scrolling one page per step is too
  60. fast.
  61. Don't read prompt from the subshell, because it's unreliable. Interpret
  62. environment variable MC_PS1 (or PS1) in the same way as bash.
  63. Support an environment variable (also like PS1 in bash) for setting the
  64. window title.
  65. real_input_dialog_help() shouldn't use translated strings in the section
  66. names in .mc/history. Right now, mc writes separate history sections
  67. for different locales. Only input history is affected.
  68. Add "Ignore" and "Ignore all" buttons when reporting permission
  69. problems.
  70. Better date parser - don't allow seconds and year in ftp listings on the
  71. same line.
  72. Report errors in fish operations and recover from them.
  73. Allow colors to be defined in the mc.lib file. Make it possible to
  74. avoid using a super-long line to redefine all colors.
  75. Allow verbatim search in "Find File". Right now, the context is always
  76. interpreted as regular expression.
  77. Filters in the editor should operate on the open file - don't close and
  78. reopen the file. They don't work on VFS now. For example, a gzipped
  79. files on FTP cannot be edited.
  80. ftp and fish with home != '/' - readjust directory to the home.
  81. Search in the viewer should have an option for case sensitive search.
  82. Make "Find File" dialog more responsive. Keep state in a structure and
  83. preserve it when the search is suspended.
  84. Use KDGKBENT ioctl on Linux console to find the mapping for shifted
  85. functional keys. Two mappings are widely used (Shift-F1 = F11 and
  86. Shift-F1 = F13). mc should adjust the keys to the mapping.
  87. Alt-O should optionally show the current directory and move cursor down
  88. (as in older versions). Old functionality on files (go to "..") is not
  89. needed.
  90. After 4.6.2 on 4.6.x branch
  91. ===========================
  92. Make the internal editor reentrant. Add "edit menu file" to the editor
  93. menu.
  94. Safe and restore file position in the viewer.
  95. Consistent support for mc.lib.
  96. Consistent support for terminal-specific settings.
  97. New syntax for mc.ext - path check, desktop environment check. Detach X
  98. programs into a separate process group. Allow forcing the full path on
  99. local files.
  100. Click on an image doesn't always work on remote vfs - local copy may
  101. be deleted before the application has time to load it.
  102. Allow running executables from remote VFS. Possibly warn the user.
  103. Add print dialog in the internal editor.
  104. Implement logging, not just for VFS.
  105. "Find file" should remember full starting path, not "." in the history.
  106. In the 4.7 branch
  107. =================
  108. Eliminate all pipes in subshell.c, run pwd after kill. Add support for
  109. more shells (e.g. ksh).
  110. Internal terminal - no more console saving.
  111. Implement a really Advanced Chown/Chmod.
  112. Support for multi-byte charsets (e.g. UTF-8).
  113. sftp and fxp support in VFS.
  114. New listing mode keyword "time": mtime or the time (atime, ctime) used
  115. to sort files.
  116. Support for X clipboard.
  117. Provide "patch" and "diff" editors. The patch editor will automatically
  118. adjust the line numbers of the following chunks when lines are deleted
  119. or inserted at the beginning of the file.
  120. Provide context menus for files. Possible actions include: [compile],
  121. [CVS commit], [CVS diff -up], [pack], [unpack], [grep].
  122. Make mc a CVS frontend comparable to Eclipse-3.0.
  123. More standard Widgets: WTreeView, WDirectoryList, WGroupBox, WTextArea,
  124. WOpenDialog, WSaveDialog, WPrintDialog, WKeyBar.
  125. ========================================================================
  126. Everything below this point is the old TODO list. It doesn't reflect
  127. the current priorities of the developers, but may contain interesting
  128. ideas still waiting for their implementation.
  129. ========================================================================
  130. * Bugs
  131. - "Files" message flickers a lot when copying files.
  132. - Make the extfs handle re-reads.
  133. - Document (or remove) C-x C-r, C-x C-s.
  134. - Check that all the help contexts exist on the help file.
  135. - Make the buttonbar for the tree box work.
  136. - In the incremental search mode, when backspacing, select the
  137. correct file, do not stop in current file.
  138. - Make C-y yank back all the killed text at once if you've just done
  139. several kill operations in a row (C-k, M-d, etc).
  140. - In learn keys, warn the user if he is trying to
  141. i) define a same sequence as an already defined (if the keycode differs)
  142. ii) define a sequence, which is a prefix of other longer and already
  143. defined sequence
  144. * Configuration
  145. * Documentation
  146. - Convert the source mc.1 to mc.sgml and create automagically from it
  147. mc.1, mc.html, mc.hlp, mc.info, mc.tex, mc.txt etc.
  148. * Extensions
  149. - Hotlist should allow people to edit the entry (like we do in the external
  150. panelize thing).
  151. - Change ext.c to allow the %{..} to recursively expand any other %thingies.
  152. - Write a general grow_string routine. This code is used in the internal
  153. viewer and would also be used in the profile.c code.
  154. - A command to set the line length to a fixed value for viewing
  155. fixed length binary files. LIST does this with Ctrl-B and then
  156. prompts for a "record" length.
  157. - Viewer: Mark all found matches, and when 'n' is pressed go to the
  158. next page, not the next match on the same screen (when there is
  159. more than one).
  160. - In ftpfs_open, extfs_open, if we set local_filename to tmpnam, use
  161. a mechanism to set local_filename to another place on the local
  162. diskspace (this would be useful for copying, so that we would save
  163. some tmp space). This would require special care in file.c afterwards.
  164. - In Listing mode... give at least three user-definable formats
  165. (using Janne's Listing mode editor) and assign hot-keys to both
  166. standard and user defined (what about c-x f [fbl123] ?).
  167. - Shift-Home, Shift-End for the input line: home and end.
  168. - Make a mechanism to lock all the mouse events and send them to
  169. the locking widget until unlocking is done.
  170. - Sort with numerical extensions.
  171. - Allow the program to execute a command even when we are on a vfs, maybe
  172. a special box, or make subshell code ignore the change directory
  173. request. Perhaps each vfs should store a local path attached to it,
  174. like in tarfs, extfs it would be the directory which contains the
  175. topmost tararchive, in ftpfs it would be the directory which we entered
  176. to ftp from.
  177. - auto_hint_lines: a variable that would choose to use hint mode when
  178. at least auto_hint_lines are visible.
  179. - Listbox: Mouse handler for the scrollbar: this will be hard with
  180. the current approach (since the listbox scrollbar is drawn *outside*
  181. the listbox control area).
  182. - In file.c, we shouldn't need to get a full path name in order to
  183. work, we should instead canon the file name inside the tar.c (the
  184. only fs that relies on this), tar.c should know about the cwd (i
  185. think).
  186. - Panelize the selected files.
  187. - Recursive delete should (perhaps as an option) delete files just after
  188. they have been copied and not to delay deleting until everything was
  189. moved.
  190. - When copying a tree (or moving or deleting), as an option act primarily
  191. on the regular files and at the end on directories recursively, so that
  192. we get complete high parts of the tree if something fails (useful for
  193. ftpfs).
  194. - Put into a new and bigger Options/Configuration dialog all the options
  195. we have now to set using .mc/ini manually.
  196. - When after deleting there are no files in a panelized panel, restore
  197. it automagically to the real directory content.
  198. - Files/Symlink and Link should be able to do multiple links (if the
  199. target is a directory).
  200. - Directory sizes should work in background using try_channels.
  201. - Support of non-UNIX ls in ftpfs. Perhaps using an ascii configuration
  202. file similar to moxftp.
  203. - Have an option to let the user choose the preferred keybindings.
  204. Currently, only the emacs keybindings are supported, add support
  205. for Norton Commander and vi keybindings.
  206. - Find command should have a way to specify directories to skip.
  207. - Add an option that will let listboxes do incremental searches.
  208. * Optimizations and cleanup
  209. - When verbose is off, remove all the clutter on the screen about
  210. the files being copied.
  211. - The viewer is calling view_update in many places, I call
  212. view_update after handling a key, should all the other
  213. view_updates be removed?
  214. - If the viewer is too slow, some caching could be done.
  215. width and cols are currently computed each time they are needed.
  216. ++ In the user menu, don't use the entries array, we can now grow
  217. dynamically. I should take a look at this one day, it's easy to
  218. fix.