Home | History | Annotate | Line # | Download | only in dist
TODO revision 1.1.1.1.4.2
      1 # Id: TODO,v 8.2 1997/04/12 15:53:31 bostic Exp  (Berkeley) Date: 1997/04/12 15:53:31 
      2 
      3 ========================================================================
      4 GENERAL
      5 ========================================================================
      6 2.0:	Open mode is not yet implemented.
      7 
      8 
      9 ========================================================================
     10 DB
     11 ========================================================================
     12 1.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 
     15 1.N:	If you run out of space in the recovery directory, the recovery
     16 	file is left in place.
     17 
     18 2.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 ========================================================================
     25 VI
     26 ========================================================================
     27 1.N:	Make the search pattern and command history (what the '.' command
     28 	executes) remembered between windows, or configurable so that it
     29 	is.
     30 
     31 1.N:	Change the screen scrolling to not eat user characters...  i.e.
     32 	g/pattern/foo should not eat already entered chars.
     33 
     34 1.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 
     40 1.N:	Should "view" set a lock on the file?
     41 
     42 1.N:	Should "view" copy the file (or even open a recovery file)?
     43 
     44 1.N:	The strings found by searches should be highlighted until the next
     45 	character is entered.
     46 
     47 1.N:	Display a split vi screen for the :help command.
     48 
     49 1.N:	When getting a key for a continue screen, we should always read from
     50 	the terminal, not from a mapped key.
     51 
     52 1.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 
     56 1.N:	The vs_sm_fill routine should scroll if possible, not always redraw.
     57 
     58 1.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 ========================================================================
     64 EX
     65 ========================================================================
     66 2.0:	^C isn't passed to the shell in the script windows as an interrupt
     67 	character.
     68 
     69 2.0:	It would be nice to inverse video the replaced text during
     70 	interactive substitute.
     71 
     72 2.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 ========================================================================
     77 CURSES
     78 ========================================================================
     79 1.N	In single-line screens, have to press 'q' twice when quitting out
     80 	of  a ":set all" display.
     81 
     82 ========================================================================
     83 MOTIF/IPC
     84 ========================================================================
     85 1.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 ========================================================================
     89 REDESIGN
     90 ========================================================================
     91 2.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 
     99 2.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 
    107 2.0:	The options hardtabs, lisp, optimize, redraw, and slowopen
    108 	are recognized, but not implemented.
    109 
    110 
    111 2.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