Updated ruby and perl sintax files.
[midnight-commander.git] / src / TODO
blob406a77a3c4f1fef370ddb4eceacdd7de3342dd18
1 Before 4.6.1
2 ============
4 Add an argument to regexp_match() to force POSIX regex instead of
5 changing easy_patterns in ext.c.
7 Cannot spell check unsaved files in the editor.
9 Dynamic loading for libgpm, libext2fs.
11 Check if the archive was changed for extfs, tar and cpio.  Free the data
12 associated with the old archive.
14 Use Del to remove items from history.
16 Ctrl-q Ctrl-m in input dialog should enter \r, not a newline.
18 Interpret C literals in regular expressions entered by the user, e.g. \r
19 and \0x0D.
21 Changing directory while in the editor shouldn't affect the path where
22 the editor saves its files.
24 Allow entering archives in VFS by Ctrl-PgDown with non-empty command
25 line.  Right now, there is no convenient way to enter an archive when
26 the command line is not empty.
28 Allow switching between histories of two panels.  It's convenient to
29 change to a directory from the history of the other panel.
31 Allow calling the directory hotlist from Copy, Move and Find File
32 dialogs.  Recent directories are the obvious candidates for copying and
33 looking for files.
35 Allow modifiers for keys in mc.lib, like "shift-up".  Right now,
36 modifiers can be read from the terminal (if supported), but not from the
37 config file.  This change would make it possible to use modifiers even
38 if they can only be identified by the escape sequences.
40 When saving config files, write to a copy, then replace the file.  This
41 would avoid the problem of partly written config files.  Consider using
42 locking of the config files.
44 Totals are not calculated when copying or moving a single directory. 
45 Totals should only be omitted for single files.
47 Add support for mouse wheel with gpm.  Latest versions of gpm (1.20)
48 have mose wheel support.
50 Recheck all mouse handlers, make sure that they check button number.  We
51 don't wan't mouse scrolling to be interpreted as mouse click.
53 Smooth mouse scrolling on panels.  Scrolling one page per step is too
54 fast.
56 Don't read prompt from the subshell, because it's unreliable.  Interpret
57 environment variable MC_PS1 (or PS1) in the same way as bash.
59 Support an environment variable (also like PS1 in bash) for setting the
60 window title.
62 real_input_dialog_help() shouldn't use translated strings in the section
63 names in .mc/history.  Right now, mc writes separate history sections
64 for different locales.  Only input history is affected.
66 Hard links in cpio archives have 0 length.
68 Add "Ignore" and "Ignore all" buttons when reporting permission
69 problems.
71 Better date parser - don't allow seconds and year in ftp listings on the
72 same line.
74 Report errors in fish operations and recover from them.
76 Allow colors to be defined in the mc.lib file.  Make it possible to
77 avoid using a superlong line to redefine all colors.
79 Use separate colors for hotkeys in error dialogs.
81 Allow verbatim search in "Find File".  Right now, the context is always
82 interpreted as regular expression.
84 Filters in the editor should operate on the open file - don't close and
85 reopen the file.  They don't work on VFS now.  For example, a gzipped
86 files on FTP cannot be edited.
88 ftp and fish with home != '/' - readjust directory to the home.
90 Search in the viewer should have an option for case sensitive search.
92 Make "Find File" dialog more responsive.  Keep state in a structure and
93 preserve it when the search is suspended.
95 Lock files in the editor to prevent opening them more than once.  Warn
96 user when opening locked file.
98 Use KDGKBENT ioctl on Linux console to find the mapping for shifted
99 functional keys.  Two mappings are widely used (Shift-F1 = F11 and
100 Shift-F1 = F13).  mc should adjust the keys to the mapping.
104 After 4.6.1 on 4.6.x branch
105 ===========================
107 Consistent support for mc.lib.
109 Consistent support for terminal-specific settings.
111 New syntax for mc.ext - path check, desktop environment check.  Detach X
112 programs into a separate process group.  Allow forcing the full path on
113 local files.
115 Click on a png image doesn't always work on remote vfs - local copy may
116 be deleted before the application has time to load it.
118 Allow running executables from remote VFS.  Possibly warn the user.
120 Add print dialog in the internal editor.
122 Implement logging, not just for VFS.
124 "Find file" should remember full stating path, not "." in the history.
126 chdir to '~' doesn't work.
129 In the 4.7 branch
130 =================
132 Eliminate all pipes in subshell.c, run pwd after kill.  Add support for
133 more shells (e.g. ksh).
135 Internal terminal - no more console saving.
137 Implement a really Advanced Chown/Chmod.
139 Support for multi-byte charsets (e.g. UTF-8).
141 sftp and fxp support in VFS.
143 New listing mode keyword "time": mtime or the time (atime, ctime) used
144 to sort files.
146 Support for X clipboard.
149 ========================================================================
150 Everything below this point is the old TODO list.  It doesn't reflect
151 the current priorities of the developers, but may contain interesting
152 ideas still waiting for their implementation.
153 ========================================================================
156 * Bugs
158   - "Files" message flickers a lot when copying files.
160   - Make the extfs handle re-reads.
162   - Document (or remove) C-x C-r, C-x C-s.
164   - Check that all the help contexts exist on the help file.
166   - Make the buttonbar for the tree box work.
168   - In the incremental search mode, when backspacing, select the
169     correct file, do not stop in current file.
171   - Make C-y yank back all the killed text at once if you've just done
172     several kill operations in a row (C-k, M-d, etc).
174   - In learn keys, warn the user if he is trying to
175     i) define a same sequence as an already defined (if the keycode differs)
176     ii) define a sequence, which is a prefix of other longer and already
177         defined sequence
179 * Configuration 
181 * Documentation
183   - Convert the source mc.1 to mc.sgml and create automagically from it
184     mc.1, mc.html, mc.hlp, mc.info, mc.tex, mc.txt etc.
186 * Extensions
188    - Hotlist should allow people to edit the entry (like we do in the external
189      panelize thing).
191    - Change ext.c to allow the %{..} to recursively expand any other %thingies.
193    - Write a general grow_string routine.  This code is used in the internal
194      viewer and would also be used in the profile.c code.
196    -  A command to set the line length to a fixed value for viewing
197       fixed length binary files. LIST does this with Ctrl-B and then
198       prompts for a "record" length.
200    - Viewer: Mark all found matches, and when 'n' is pressed go to the
201      next page, not the next match on the same screen (when there is
202      more than one).
204   - In ftpfs_open, extfs_open, if we set local_filename to tmpnam, use
205     a mechanism to set local_filename to another place on the local
206     diskspace (this would be useful for copying, so that we would save
207     some tmp space). This would require special care in file.c afterwards.
209   - In Listing mode... give at least three user-definable formats
210     (using Janne's Listing mode editor) and assign hot-keys to both
211     standard and user defined (what about c-x f [fbl123] ?).
213   - Shift-Home, Shift-End for the input line: home and end.
215   - Make a mechanism to lock all the mouse events and send them to
216     the locking widget until unlocking is done.
218   - Sort with numerical extensions.
220   - Allow the program to execute a command even when we are on a vfs, maybe
221     a special box, or make subshell code ignore the change directory
222     request. Perhaps each vfs should store a local path attached to it,
223     like in tarfs, extfs it would be the directory which contains the
224     topmost tararchive, in ftpfs it would be the directory which we entered
225     to ftp from.
227   - auto_hint_lines: a variable that would choose to use hint mode when
228     at least auto_hint_lines are visible.
230   - Listbox: Mouse handler for the scrollbar: this will be hard with
231     the current approach (since the listbox scrollbar is drawn *outside*
232     the listbox control area).
234   - In file.c, we shouldn't need to get a full path name in order to
235     work, we should instead canon the file name inside the tar.c (the
236     only fs that relies on this), tar.c should know about the cwd (i
237     think).
239   - Panelize the selected files.
241   - Recursive delete should (perhaps as an option) delete files just after
242     they have been copied and not to delay deleting until everything was
243     moved.
245   - When copying a tree (or moving or deleting), as an option act primarily
246     on the regular files and at the end on directories recursively, so that
247     we get complete high parts of the tree if something fails (useful for
248     ftpfs).
250   - Put into a new and bigger Options/Configuration dialog all the options
251     we have now to set using .mc/ini manually.
253   - When after deleting there are no files in a panelized panel, restore
254     it automagically to the real directory content.
256   - Files/Symlink and Link should be able to do multiple links (if the
257     target is a directory).
259   - Directory sizes should work in background using try_channels.
261   - Support of non-UNIX ls in ftpfs. Perhaps using an ascii configuration
262     file similar to moxftp.
264   - Have an option to let the user choose the preferred keybindings.
265     Currently, only the emacs keybindings are supported, add support
266     for Norton Commander and vi keybindings.
268   - Find command should have a way to specify directories to skip.
270   - Add an option that will let listboxes do incremental searches.
272 * Optimizations and cleanup
274   - Optimize the mcfs read and write code: make the code output 8k
275     blocks all the time (if we have called mc_hint_readall) and probe
276     the input for a possible cancel.
278   - When verbose is off, remove all the clutter on the screen about
279     the files being copied.
281   - The viewer is calling view_update in many places, I call
282     view_update after handling a key, should all the other
283     view_updates be removed?
285   - If the viewer is too slow, some caching could be done.
286     width and cols are currently computed each time they are needed.
288  ++ In the user menu, don't use the entries array, we can now grow
289     dynamically.  I should take a look at this one day, it's easy to
290     fix.