1# Id: TODO,v 8.2 1997/04/12 15:53:31 bostic Exp (Berkeley) Date: 1997/04/12 15:53:31 2 3======================================================================== 4GENERAL 5======================================================================== 62.0: Open mode is not yet implemented. 7 8 9======================================================================== 10DB 11======================================================================== 121.N When nvi edits files that don't have trailing newlines, it appends 13 one, regardless. This is required, by default, from POSIX.2. 14 151.N: If you run out of space in the recovery directory, the recovery 16 file is left in place. 17 182.0: It's known that it's possible to sync the backing files in the 19 wrong manner, leaving backup files that aren't recoverable. This 20 is going to be left alone until we have a logging version of DB, 21 which will hopefully fix this (or at least make it possible to 22 easily do so). 23 24======================================================================== 25VI 26======================================================================== 271.N: Make the search pattern and command history (what the '.' command 28 executes) remembered between windows, or configurable so that it 29 is. 30 311.N: Change the screen scrolling to not eat user characters... i.e. 32 g/pattern/foo should not eat already entered chars. 33 341.N: The vi main command loop should use the general-purpose overflow 35 and underflow routines. In addition, the vi command loop uses 36 unsigned longs -- should probably be fixed as a 32-bit unsigned 37 type, and then check to make sure it's never used as as variable 38 type again. 39 401.N: Should "view" set a lock on the file? 41 421.N: Should "view" copy the file (or even open a recovery file)? 43 441.N: The strings found by searches should be highlighted until the next 45 character is entered. 46 471.N: Display a split vi screen for the :help command. 48 491.N: When getting a key for a continue screen, we should always read from 50 the terminal, not from a mapped key. 51 521.N: The sentence, paragraph and section movement commands don't match 53 historic practice in some boundary cases. This should be left 54 alone until POSIX 1003.2 makes up its mind. 55 561.N: The vs_sm_fill routine should scroll if possible, not always redraw. 57 581.N: Think about setting a dirty/inuse bits on the lines of the SMAP 59 structure. That way the message routines could steal lines and 60 refresh would continue to work, because it would know not to touch 61 the lines that were in use. 62 63======================================================================== 64EX 65======================================================================== 662.0: ^C isn't passed to the shell in the script windows as an interrupt 67 character. 68 692.0: It would be nice to inverse video the replaced text during 70 interactive substitute. 71 722.0: The :args command should put the current file name out in reverse 73 video. This isn't going to be easy, currently only full lines can 74 be in reverse video, not just parts. 75 76======================================================================== 77CURSES 78======================================================================== 791.N In single-line screens, have to press 'q' twice when quitting out 80 of a ":set all" display. 81 82======================================================================== 83MOTIF/IPC 84======================================================================== 851.N: We currently permit the user to change the lines, columns and term 86 edit options. Shouldn't that be illegal in a window interface? 87 88======================================================================== 89REDESIGN 90======================================================================== 912.0: There's a serious problem with error returns -- we need to separate 92 command failure from fatal error, consistently, over the entire source 93 tree. We need to rework all of vi to have three return values: 94 0: success 95 1: vi error, continue 96 2: fatal error, die 97 Right now we don't recognize fatal errors for what they are. 98 992.0: The complete list of POSIX.1 calls that can return EINTR are: 100 wait, waitpid, sleep, dup2, close, read, write, 101 fcntl(SETLCKW) tcsetattr, tcdrain 102 The problem is that technically, any system/library call can 103 return EINTR, so, while nvi blocks (most of?) the obvious ones, 104 someone may have to do a complete pass and block signals 105 everywhere. 106 1072.0: The options hardtabs, lisp, optimize, redraw, and slowopen 108 are recognized, but not implemented. 109 110 1112.0: Field editing shouldn't be hard to add to nvi: 112 113 Field editing file template: 114 version # 115 field # row/column start row/column stop 116 label field # Label string 117 re field # Matching re string. 118 field # row/column start row/column stop 119 label field # Label string 120 re field # Matching re string. 121 122 <tab> moves to the next field 123 <bs> in column 0 moves to the previous field 124