Changes between Initial Version and Version 1 of TODO


Ignore:
Timestamp:
07/31/09 10:02:18 (15 years ago)
Author:
iNode
Comment:

initial commit

Legend:

Unmodified
Added
Removed
Modified
  • TODO

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