xref: /minix/external/bsd/nvi/dist/TODO (revision 84d9c625)
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