xref: /csrg-svn/usr.bin/ex/READ_ME (revision 63050)
142873SbosticThis is version 3 of the editor. It is too large to fit on a pdp-11
242873Sbosticunless you have overlay code. (Such code is available for v7 unix on 2bsd.)
342873Sbostic
442873SbosticVersion 2.13 corresponds to version 3 without the enhancements in 3.
542873SbosticThere is no reason to use 2.13 unless you have a pdp-11 that does not have
642873Sbosticoverlay software, since 3 contains all the bug fixes and some new features.
742873Sbostic
842873SbosticSpecial installation notes for this version.
942873Sbostic2) The include file varargs.h should be installed, as the printf here needs it.
1042873Sbostic3) The include file local/uparm.h should be installed, as ex_tune.h needs it.
1142873Sbostic   The contents of this include file can be modified if you wish to place
1242873Sbostic   the editor in a nonstandard location.
1342873Sbostic
1442873SbosticConditional compilation flags:
1542873Sbostic	-DTRACE		for debugging (wont then fit on an 11)
1642873Sbostic	-DVFORK		for UCB Vax/Unix with the vfork system call.
1742873Sbostic	-DCHDIR		compile in undocumented old chdir (cd) command
1842873Sbostic	-DLISP		compile in lisp hacks
1942873Sbostic	-DUCVISUAL	compile in code to handle \ escapes for visual on
2042873Sbostic			upper case only terminals.  gross.
2142873Sbostic	-DCRYPT		-x option to edit encrypted files
2242873Sbostic	-DFLOCKFILE	compile in advisory file locking ala 4.[23X]
23*42874Sbostic
24*42874Sbostic=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
25*42874Sbostic
26*42874SbosticVersion 3.7  October 16, 1981
27*42874Sbostic
28*42874Sbostic	It is now possible to split lines with substitute commands from vi,
29*42874Sbostic	by using ^V<return> in the rhs.  This takes care of the last
30*42874Sbostic	good reason for using ex command mode.
31*42874Sbostic
32*42874Sbostic	Mode lines are now supported.  Put a line containing
33*42874Sbostic		ex: xxx :
34*42874Sbostic	in the first or last 5 lines of the file, where xxx is any ex
35*42874Sbostic	command you want executed when that file is read in.  To make
36*42874Sbostic	other programs happy, it should probably be inside a comment.
37*42874Sbostic	You can use vi: as well as ex:.  (Note: no space allowed
38*42874Sbostic	between the "ex" and ":".  The spaces around xxx are considered
39*42874Sbostic	part of the command, and so are optional.)
40*42874Sbostic
41*42874Sbostic	If there is a file .exrc in the current directory, it will be
42*42874Sbostic	sourced when you enter vi, after your EXINIT or ~/.exrc.
43*42874Sbostic
44*42874Sbostic	The changeable scrolling region of the vt100 is now used in
45*42874Sbostic	place of insert line, resulting in much better performance.
46*42874Sbostic
47*42874Sbostic	Vi uses the new AL, DL, LE, RI, DO, and UP (all upper case)
48*42874Sbostic	termcap capabilities, which are parameterized versions of their
49*42874Sbostic	lower case equivalents.  This will results in better performance
50*42874Sbostic	on ANSI terminals, and especially on the Tektronix 4025 which
51*42874Sbostic	has parameterized local motions but cannot cursor address.
52*42874Sbostic
53*42874Sbostic	Vi uses backtabs again.  Now it knows how to handle backtabs on
54*42874Sbostic	terminals that have tabs set at intervals other than 8, and it
55*42874Sbostic	won't use backtabs if gtty indicates it can't use tabs.
56*42874Sbostic
57*42874Sbostic	A bug causing <escape> <del> to core dump vi has been fixed.
58*42874Sbostic
59*42874Sbostic	A bug causing writes to filters when editing encrypted files
60*42874Sbostic	to write encrypted text has been fixed.
61*42874Sbostic
62*42874Sbostic	A bug causing the message "substitution loop", when you enter a
63*42874Sbostic	1,$s/xxx/yyy/g with lots of changes, has been fixed.
64*42874Sbostic
65*42874Sbostic	A bug causing the current directory to be chmodded to 0 if you
66*42874Sbostic	set nomesg after starting up the editor has been fixed.  Note
67*42874Sbostic	that the nomesg option is intended for your EXINIT, since it only
68*42874Sbostic	takes effect on entry to the editor.
69*42874Sbostic
70*42874Sbostic	The eat newline glitch has been fixed so that vt100's and tab132's
71*42874Sbostic	handle long lines correctly.
72*42874Sbostic
73*42874Sbostic	Some internal changes have been made so that vi can run under UNIX
74*42874Sbostic	on the Bell Labs 3B machine, the BBN C/70, and the IBM 370.
75*42874Sbostic
76*42874SbosticVersion 3.6  October 30, 1980
77*42874Sbostic
78*42874Sbostic	A kernel problem on the V7 pdp-11 overlay systems which causes
79*42874Sbostic	bad EMT traps to happen randomly, core dumping the editor,
80*42874Sbostic	has been programmed around by catching EMT traps.
81*42874Sbostic
82*42874Sbostic	A bug which prevented using a screen larger than 48 lines has
83*42874Sbostic	been fixed.
84*42874Sbostic
85*42874Sbostic	A bug which allowed you to set window to a value larger than
86*42874Sbostic	your screen size has been fixed.
87*42874Sbostic
88*42874Sbostic	The screen size limit on non-VM/Unix systems has been increased
89*42874Sbostic	to 66 lines or 5000 characters, to allow the Ann Arbor Ambassador
90*42874Sbostic	terminal to be used.
91*42874Sbostic
92*42874Sbostic	A bug which caused hangups to be ignored on USG systems has
93*42874Sbostic	been fixed.
94*42874Sbostic
95*42874Sbostic	A bug which caused maps with multiple changes on multiple lines
96*42874Sbostic	to mess up has been fixed.
97*42874Sbostic
98*42874Sbostic	If you get I/O errors, the file is considered "not edited" so
99*42874Sbostic	that you don't accidently clobber the good file with a munged
100*42874Sbostic	up buffer.
101*42874Sbostic
102*42874Sbostic	An inefficiency in 3.5 which caused the editor to always call
103*42874Sbostic	ttyname has been fixed.
104*42874Sbostic
105*42874Sbostic	A bug which prevented the "source" command from working in an
106*42874Sbostic	EXINIT or from visual has been fixed.
107*42874Sbostic
108*42874Sbostic	A bug which caused readonly to be cleared when reading from
109*42874Sbostic	a writable file with "r" has been fixed.
110*42874Sbostic
111*42874Sbostic	The name "suspend" has been made an alias for "stop".
112*42874Sbostic
113*42874Sbostic	The stop command now once again works correctly from command mode.
114*42874Sbostic
115*42874Sbostic	On a dumb terminal at 1200 baud, "slowopen" is now the default.
116*42874Sbostic
117*42874Sbostic	A bug in the shell script "makeoptions" which searched for a
118*42874Sbostic	string that appeared earlier in a comment has been fixed.
119*42874Sbostic
120*42874Sbostic	A bug that caused an infinite loop when you did ":s/\</&/g"
121*42874Sbostic	has been fixed.
122*42874Sbostic
123*42874Sbostic	A bug that caused & with no previous substitution to give
124*42874Sbostic	"re internal error" has been fixed.
125*42874Sbostic
126*42874Sbostic	A bug in the binary search algorithm for tags which sometimes
127*42874Sbostic	prevented the last tag in the file from being found has been fixed.
128*42874Sbostic
129*42874Sbostic	Error messages from expreserve no longer output a linefeed,
130*42874Sbostic	messing up the screen.
131*42874Sbostic
132*42874Sbostic	The message from expreserve telling you a buffer was saved when
133*42874Sbostic	your phone was hung up has be amended to say the editor was
134*42874Sbostic	terminated, since a kill can also produce that message.
135*42874Sbostic
136*42874Sbostic	The "directory" option, which has been broken for over
137*42874Sbostic	a year, has been fixed.
138*42874Sbostic
139*42874Sbostic	The "r" command no longer invokes input mode macros.
140*42874Sbostic
141*42874Sbostic	A bug which caused strangeness if you set wrapmargin to 1
142*42874Sbostic	and typed a line containing a backslash in column 80 has
143*42874Sbostic	been fixed.
144*42874Sbostic
145*42874Sbostic	A bug which caused the "r<cr>" at the wrapmargin column
146*42874Sbostic	to mess up has been fixed.
147*42874Sbostic
148*42874Sbostic	On terminals with both scroll reverse and insert line,
149*42874Sbostic	the least expensive of the two will be used to scroll up.
150*42874Sbostic	This is usually scroll reverse, which is much less annoying
151*42874Sbostic	than insert line on terminals such as the mime I and mime 2a.
152*42874Sbostic
153*42874Sbostic	A bug which caused vi to estimate the cost of cursor motion
154*42874Sbostic	without taking into account padding has been fixed.
155*42874Sbostic
156*42874Sbostic	The failure of the editor to check counts on ^F and ^B commands
157*42874Sbostic	has been fixed.
158*42874Sbostic
159*42874Sbostic	The "remap" option failed completely if it was turned off.
160*42874Sbostic	This has been fixed.
161*42874Sbostic
162*42874Sbostic	A check of the wrong limit on a buffer for the right hand side
163*42874Sbostic	of substitutions has been fixed.  Overflowing this buffer could
164*42874Sbostic	produce a core dump.
165*42874Sbostic
166*42874Sbostic	A bug causing the editor to go into insert mode if you typed
167*42874Sbostic	return during an R command has been fixed.
168*42874Sbostic
169*42874Sbostic	A bug preventing the + command from working when you edit a
170*42874Sbostic	new file has been fixed by making it no longer an error to
171*42874Sbostic	edit a new file (when you first enter the editor.)  Instead
172*42874Sbostic	you are told it is a new file.
173*42874Sbostic
174*42874Sbostic	If an error happens when you are writing out a file, such as
175*42874Sbostic	an interrupt, you are warned that the file is incomplete.
176*42874Sbostic
177*42874SbosticVersion 3.5 -- August 20, 1980
178*42874Sbostic
179*42874Sbostic	The provisions for changing the window size with a numeric
180*42874Sbostic	prefix argument to certain visual commands have been deleted.
181*42874Sbostic	The correct way to change the window size is to use the z
182*42874Sbostic	command, for example z5<cr> to change the window to 5 lines.
183*42874Sbostic
184*42874Sbostic	The code to handle the -x (encryption) option has been made
185*42874Sbostic	conditionally compiled, so that ex can run on an an 11/34 (!)
186*42874Sbostic	with overlays.  Since this code calls getpass, stdio was
187*42874Sbostic	being pulled in even without VMUNIX being defined.  The
188*42874Sbostic	savings from not defining CRYPT are about 4K of text and 4.5K
189*42874Sbostic	of bss.
190*42874Sbostic
191*42874Sbostic	Bill Joy put in a buffering scheme under the VMUNIX flag so
192*42874Sbostic	that up to 64K of file is edited in-core until you make enough
193*42874Sbostic	changes to force a temp file sync.  This makes entry into the
194*42874Sbostic	editor much faster, but also makes vi much bigger.
195*42874Sbostic
196*42874Sbostic	The source to ex is now sccs'ed.
197*42874Sbostic
198*42874Sbostic	An undocumented "feature" which caused the ^^ command to return
199*42874Sbostic	to the previous tag, if in the current file, instead of the
200*42874Sbostic	previous file, has been removed.
201*42874Sbostic
202*42874Sbostic	A bug which prevented ex from compiling on systems with the new
203*42874Sbostic	tty driver but no process control (such as Cory) was fixed.
204*42874Sbostic
205*42874SbosticVersion 3.4 -- June 24, 1980
206*42874Sbostic
207*42874Sbostic	The visual page motion commands ^F and ^B now treat any preceding
208*42874Sbostic	counts as number of pages to move, instead of changes to the
209*42874Sbostic	window size.  That is, 2^F moves forward 2 pages.
210*42874Sbostic
211*42874Sbostic	A :vi <file> command from visual mode is now treated the same
212*42874Sbostic	as a :edit <file> or :ex <file> command.  The meaning of the
213*42874Sbostic	vi command from ex command mode is not affected.
214*42874Sbostic
215*42874Sbostic	Provisions to handle the new process stopping features of the
216*42874Sbostic	Berkeley TTY driver have been added.  A new command, "stop",
217*42874Sbostic	takes you out of the editor cleanly and efficiently, returning
218*42874Sbostic	you to the shell.  Resuming the editor puts you back in command
219*42874Sbostic	or visual mode, as appropriate.  If autowrite is set and there
220*42874Sbostic	are outstanding changes, a write is done first unless you say
221*42874Sbostic	"stop!".  From visual mode, the command ^Z is the same as :stop.
222*42874Sbostic	Note that if you have an arrow key that sends ^Z the stop function
223*42874Sbostic	will take priority over the arrow function.  If you have your
224*42874Sbostic	"susp" character set to something besides ^Z, that key will be
225*42874Sbostic	honored as well.
226*42874Sbostic
227*42874Sbostic	A read only mode now lets you guarantee you won't clobber your
228*42874Sbostic	file by accident.  You can set the on/off option "readonly" (ro)
229*42874Sbostic	and writes will fail unless you use an ! after the write.
230*42874Sbostic	Commands such as x, ZZ, and autowrite, and in general anything
231*42874Sbostic	that writes is affected.  This option is turned on if you invoke
232*42874Sbostic	ex with the -R flag.  A new link called "view" has been  created.
233*42874Sbostic	View is just like vi but it sets readonly.
234*42874Sbostic
235*42874Sbostic	The encryption code from the v7 editor is now part of ex.
236*42874Sbostic	You invoke ex with the -x option and it will ask for a key,
237*42874Sbostic	as ed.  The ed "x" command (to enter encryption mode from
238*42874Sbostic	within the editor) is not available.
239*42874Sbostic
240*42874Sbostic	The editor now adopts the convention that a null string in the
241*42874Sbostic	environment is the same as not being set.  This applies to
242*42874Sbostic	TERM, TERMCAP, and EXINIT.
243*42874Sbostic
244*42874Sbostic	A word abbreviation mode is now available.  You can define
245*42874Sbostic	abbreviations with the abbreviate command
246*42874Sbostic		:abbr foo find outer otter
247*42874Sbostic	which maps "foo" to "find outer otter".  Abbreviations can be
248*42874Sbostic	turned off with the "unabbreviate" command.  The syntax of these
249*42874Sbostic	commands is identical to the map and unmap commands, except
250*42874Sbostic	that the ! forms do not exist.  Abbreviations are considered
251*42874Sbostic	when in visual input mode only, and only affect whole words
252*42874Sbostic	typed in, using the conservative definition.  (Thus "foobar"
253*42874Sbostic	will not be mapped as it would using map!)
254*42874Sbostic	Abbreviate and unabbreviate can be abbreviated to "ab" and
255*42874Sbostic	"una", respectively.
256*42874Sbostic
257*42874Sbostic	The editor now supports certain terminals that use strings other
258*42874Sbostic	then \r and \n for return and linefeed by implementing the cr
259*42874Sbostic	and nl termcap options.  (Thanks to UCLA for these enhancements).
260*42874Sbostic
261*42874Sbostic	The termcap attribute ns is now checked for, and ex refuses to
262*42874Sbostic	go into visual mode on such a terminal unless it has sf.
263*42874Sbostic
264*42874Sbostic	Terminals that can cursor address but cannot go up a line
265*42874Sbostic	now work in visual.
266*42874Sbostic
267*42874Sbostic	If you change your start and stop characters to something other
268*42874Sbostic	than the default ^S and ^Q, vi now turns them off.  This causes
269*42874Sbostic	people who change them to escape not to lose so badly.
270*42874Sbostic	The quit character is once again turned off so that datamedias
271*42874Sbostic	which send ^\ for the right arrow key work.
272*42874Sbostic
273*42874Sbostic	The ~ command now repeats correctly with ".".
274*42874Sbostic
275*42874Sbostic	If you type in an unmatched ) or } in showmatch mode, the editor
276*42874Sbostic	will now beep to warn you about your mistake.  The ) or } is
277*42874Sbostic	still accepted.
278*42874Sbostic
279*42874Sbostic	The way macros are undone has been improved considerably.
280*42874Sbostic	The number of changes inside the macro is counted, and just
281*42874Sbostic	before the second change the state before the macro is recreated
282*42874Sbostic	internally and saved to allow the macro to be undoable as a unit.
283*42874Sbostic	Hence, if the macro makes only one change the particular change is
284*42874Sbostic	undone (which will probably not redraw the screen).  If no changes
285*42874Sbostic	are made (for example, the arrow keys) the previous thing that could
286*42874Sbostic	be undone is not clobbered.
287*42874Sbostic
288*42874Sbostic	The undomacro option has been deleted since it is no longer needed.
289*42874Sbostic
290*42874Sbostic	Editor scripts can now contain comments.  Begin the comments with "
291*42874Sbostic	(double quote).  Comments can be on their own line or come at the
292*42874Sbostic	end of command lines.  The comment continues to the end of the line.
293*42874Sbostic
294*42874Sbostic	The 3rd version of the USG tty driver is now supported, making it
295*42874Sbostic	possible on USG systems to interrupt redrawing the screen and to
296*42874Sbostic	not flush output when interruptable commands take place.
297*42874Sbostic
298*42874Sbostic	The rewind command has been added to the list of commands that
299*42874Sbostic	the autowrite option knows about.
300*42874Sbostic
301*42874Sbostic	The wrapmargin option is now usable.  The way it works has been
302*42874Sbostic	completely revamped.  Now if you go past the margin (even in the
303*42874Sbostic	middle of a word) the entire word is erased and rewritten on the
304*42874Sbostic	next line.  This changes the semantics of the number given to
305*42874Sbostic	wrapmargin.  0 still means off.  Any other number is still a
306*42874Sbostic	distance from the right edge of the screen, but this location
307*42874Sbostic	is now the right edge of the area where wraps can take place,
308*42874Sbostic	instead of the left edge.  Wrapmargin now behaves much like
309*42874Sbostic	fill/nojustify mode in nroff.
310*42874Sbostic
311*42874Sbostic	A bug on the USG system where hanging up the phone causes more
312*42874Sbostic	than one SIGHUP to be sent has been compensated for.
313*42874Sbostic
314*42874Sbostic	A bug which caused the :sh command not to send the vs and ti
315*42874Sbostic	sequences when you returned has been fixed.
316*42874Sbostic
317*42874Sbostic	A bug which caused a file that bombed out in the middle of
318*42874Sbostic	an edit command to be considered modified has been fixed.
319*42874Sbostic
320*42874Sbostic	A bug which caused the screen to be wrong after undoing a
321*42874Sbostic	:move command has been fixed.
322*42874Sbostic
323*42874Sbostic	A bug which messed up the buffer and the screen after
324*42874Sbostic	undoing a :join command has been fixed.
325*42874Sbostic
326*42874Sbostic	The source file ex_io.c has been split into ex_io.c and
327*42874Sbostic	ex_unix.c to avoid a problem where many C compilers overflowed
328*42874Sbostic	the symbol table.
329*42874Sbostic
330*42874Sbostic	A bug which prevented turning off your prompt in your .exrc
331*42874Sbostic	has been fixed.
332*42874Sbostic
333*42874Sbostic	Some of the code internal to the editor has been rearranged
334*42874Sbostic	and some comments added.
335*42874Sbostic
336*42874Sbostic	The bug fix to the USG tty driver to output a null character
337*42874Sbostic	as padding at 1200 baud has been improved to output a DEL
338*42874Sbostic	at 1200 baud or above.
339*42874Sbostic
340*42874Sbostic	Terminals with small screens (less than 20 columns or less
341*42874Sbostic	than 5 lines) should now work.
342*42874Sbostic
343*42874Sbostic	A bug which prevented you from entering the character DEL
344*42874Sbostic	into the buffer if you changed your interrupt character to
345*42874Sbostic	something else besides DEL has been fixed.
346*42874Sbostic
347*42874Sbostic	A bug which caused the current line to be clobbered when
348*42874Sbostic	you did a /, ?, or : command which mapped an input macro
349*42874Sbostic	successfully has been fixed.
350*42874Sbostic
351*42874Sbostic	If you map o to O and O to o and have remap set, the editor
352*42874Sbostic	now catches the infinite loop.
353*42874Sbostic
354*42874Sbostic	A put command after a macro now beeps instead of putting
355*42874Sbostic	a copy of the whole buffer.  (Note that the arrow keys
356*42874Sbostic	on terminals are considered macros.)
357*42874Sbostic
358*42874Sbostic	A bug which caused things like d) and d} to miss the last
359*42874Sbostic	character when they should have deleted to the end of the
360*42874Sbostic	buffer has been fixed.
361*42874Sbostic
362*42874Sbostic	A bug which caused the last character to be lost when you
363*42874Sbostic	read in a file with no newline at the end of the last line
364*42874Sbostic	has been fixed.
365*42874Sbostic
366*42874Sbostic	A bug that caused garbage to be in the buffer if the temp file
367*42874Sbostic	overflowed has been fixed.  (This only affected non-VMUNIX systems
368*42874Sbostic	since the temp file cannot overflow on VMUNIX.)
369*42874Sbostic
370*42874Sbostic	When a macro or global is undone, you no longer get picked up and
371*42874Sbostic	dropped on line 1.
372*42874Sbostic
373*42874Sbostic	The character | can now be escaped with \| in file names.
374*42874Sbostic
375*42874Sbostic	A bug which prevented the confirm option to a substitution that
376*42874Sbostic	was inside a source command has been fixed.
377*42874Sbostic
378*42874Sbostic	A bug which caused the editor to not work if the tab stop size
379*42874Sbostic	did not divide the screen width has been fixed.
380*42874Sbostic
381*42874Sbostic	A bug on HP terminals that caused the screen to be messed up if
382*42874Sbostic	you scrolled up something that began the same way as the echo line
383*42874Sbostic	has been fixed.
384*42874Sbostic
385*42874Sbostic	A macro bug which sometimes caused the next character after an
386*42874Sbostic	escape to be ignored on an HP terminal has been fixed.
387*42874Sbostic
388*42874Sbostic	A bug which caused unmap of strings with length 2 to fail has been
389*42874Sbostic	fixed.
390*42874Sbostic
391*42874Sbostic	A bug which left vi confused if you invoked a macro containing a
392*42874Sbostic	quit to command mode and then did an undo has been fixed.
393*42874Sbostic
394*42874Sbostic	An old ed bug which caused globals to fail when they did a substitute
395*42874Sbostic	on the next line has been fixed.
396*42874Sbostic
397*42874Sbostic	The % operator will now find matching square brackets the same way
398*42874Sbostic	it does parentheses and braces.  It will not display them in
399*42874Sbostic	showmatch mode, however, and will not use a ] to match all ('s.
400*42874Sbostic
401*42874Sbostic	Code has been added to handle the Beehive Superbee terminal,
402*42874Sbostic	using f1 for escape and f2 for control C.
403*42874Sbostic
404*42874Sbostic	The default value of the option shell is now taken from the
405*42874Sbostic	environment variable SHELL, if present.
406*42874Sbostic
407*42874SbosticVersion 3.3 -- February 2, 1980
408*42874Sbostic
409*42874Sbostic	The default window sizes have been changed.  At 300 baud the
410*42874Sbostic	window is now 8 lines (was 1/2 the screen size).  At 1200 baud
411*42874Sbostic	the window is now 16 lines (was 2/3 the screen size, which was
412*42874Sbostic	usually also 16 for a typical 24 line CRT).  At 9600 baud the
413*42874Sbostic	window is still the full screen size.  Any baud rate less than
414*42874Sbostic	1200 behaves like 300, any over 1200 like 9600.
415*42874Sbostic
416*42874Sbostic	A new command mode command "x" (for "xit") has been added.  This
417*42874Sbostic	is the same as wq but will not bother to write if there have been
418*42874Sbostic	no changes to the file.  The command letter was chosen for
419*42874Sbostic	convenience and compatibilty with hed.
420*42874Sbostic
421*42874Sbostic	The command "ZZ" from vi is the same as ":x<cr>".  This is
422*42874Sbostic	the recommended way to leave the editor.  Z must be typed twice
423*42874Sbostic	since this is two easy to type by accident and has such severe
424*42874Sbostic	effects if unintentional.
425*42874Sbostic
426*42874Sbostic	The options w300, w1200, and w9600 can be set.  They are synonyms
427*42874Sbostic	for "window", but only apply at 300, 1200, or 9600 baud, resp.
428*42874Sbostic	Thus you can specify you want a 12 line window at 300 baud and
429*42874Sbostic	a 23 line window at 1200 baud with
430*42874Sbostic		:set w300=12 w1200=23
431*42874Sbostic
432*42874Sbostic	It is now possible to say
433*42874Sbostic		:set window=5
434*42874Sbostic	and get the effect the next time the screen is redrawn from scratch.
435*42874Sbostic	(^L and Hit return to continue don't start from scratch.)
436*42874Sbostic	This is sort of pointless, since both
437*42874Sbostic		5:<cr>
438*42874Sbostic	and
439*42874Sbostic		z5<cr>
440*42874Sbostic	do the same thing with better results.
441*42874Sbostic
442*42874Sbostic	The editor no longer uses nondestructive space, except when in
443*42874Sbostic	insert mode.  It instead prints the character it would be
444*42874Sbostic	moving over.  This is a real win on terminals that use an
445*42874Sbostic	escape sequence to nd space.
446*42874Sbostic
447*42874Sbostic	It is now possible from visual to string several search expressions
448*42874Sbostic	together separated by semicolons the same as command mode.  For
449*42874Sbostic	example, you can say
450*42874Sbostic		/foo/;/bar
451*42874Sbostic	from visual and it will move to the first "bar" after the next "foo".
452*42874Sbostic	This also works within one line.
453*42874Sbostic
454*42874Sbostic	The option "mapinput" is dead.  It has been replaced by a much
455*42874Sbostic	more powerful mechanism: :map! (e.g. put an ! after the map).
456*42874Sbostic	Map and unmap commands with ! apply only to input, others apply
457*42874Sbostic	only to command mode.
458*42874Sbostic
459*42874Sbostic	The new option "timeout" (default on) causes macros to time out
460*42874Sbostic	after one second.  Turn it off and they will wait forever.
461*42874Sbostic
462*42874Sbostic	By using map! and setting notimeout, it is possible to get the
463*42874Sbostic	effect of emacs abbreviation mode.  Sanity checking is turned off
464*42874Sbostic	for map when ! is present.  This is a crude facility and does not
465*42874Sbostic	take into account things like the abbreviation being part of a longer
466*42874Sbostic	word.  It also does not echo until it is satisfied.
467*42874Sbostic
468*42874Sbostic	The new option "remap" (default on) causes the editor to attempt
469*42874Sbostic	to map the result of a macro mapping again until the mapping fails.
470*42874Sbostic	This makes it possible, say, to map q to # and #1 to something else
471*42874Sbostic	and get q1 mapped to something else.  Turning it off makes it possible
472*42874Sbostic	to map ^L to l and map ^R to ^L without having ^R map to l.
473*42874Sbostic
474*42874Sbostic	The new option "undomacro" (default on) makes it possible to undo
475*42874Sbostic	macros as a unit.  Leaving it off causes macros not to be treated
476*42874Sbostic	specially.  Macros with zero or one change work better with noum,
477*42874Sbostic	with two or more changes better with um.  This option may go away
478*42874Sbostic	if it becomes unnecessary.
479*42874Sbostic
480*42874Sbostic	The new (string) valued option "tags" allows you to specify a list
481*42874Sbostic	of tag files, similar to the "path" variable of csh.  The files
482*42874Sbostic	are separated by spaces (which are entered preceded by a backslash)
483*42874Sbostic	and are searched left to right.  The default value is
484*42874Sbostic	"tags /usr/lib/tags", which has the same effect as before.
485*42874Sbostic	It is recommended that "tags" always be the first entry.
486*42874Sbostic	On Ernie, /usr/lib/tags contains entries for the system defined
487*42874Sbostic	library procedures from section 3 of the manual.
488*42874Sbostic
489*42874Sbostic	^R is now the same as ^L on terminals where the right arrow key
490*42874Sbostic	sends ^L (The tvi and the adm 31).
491*42874Sbostic
492*42874Sbostic	Looking for a tag now uses binary search.
493*42874Sbostic
494*42874Sbostic	The "q" command from visual no longer works at all.  You must
495*42874Sbostic	use "Q" to get to ex command mode.
496*42874Sbostic
497*42874Sbostic	A minor incompatibility with the v7 ed has been fixed.  Previously,
498*42874Sbostic	to do a global substitute with an escaped newline in the rhs, you
499*42874Sbostic	had to put two \'s in ex and one in ed.  Ex now accepts the single
500*42874Sbostic	form as well as the double form.  For example, instead of
501*42874Sbostic		g/foo/s//foo\\
502*42874Sbostic		bar/g
503*42874Sbostic	(which still works), you can now type, as in ed,
504*42874Sbostic		g/foo/s//foo\
505*42874Sbostic		bar/g
506*42874Sbostic	This means that the following ex command, which used to "work":
507*42874Sbostic		g/foo/s//foo bar\
508*42874Sbostic		.+1,/mumble/d
509*42874Sbostic	won't work anymore unless you put the trailing / on the substitution.
510*42874Sbostic	This usage is pretty obscure anyway.
511*42874Sbostic
512*42874Sbostic	Several bugs relating to undoing macros have been fixed.
513*42874Sbostic
514*42874Sbostic	A bug which caused the command "g/pattern" to print an error
515*42874Sbostic	message if "pattern" occurred on the last line has been fixed.
516*42874Sbostic
517*42874Sbostic	If you reply ":" to "Hit return to continue", you will again be
518*42874Sbostic	asked "Hit return to continue" after the next command finishes.
519*42874Sbostic
520*42874Sbostic	Limits have been raised so that an Ann Arbor terminal can be used,
521*42874Sbostic	and long tags can now be accomodated.
522*42874Sbostic
523*42874Sbostic	The maximum length of a string valued option has been raised from
524*42874Sbostic	32 to 64, for the benefit of the "tags" option.
525*42874Sbostic
526*42874Sbostic	It is now possible to search for an escape or delete using f, F, t,
527*42874Sbostic	T, ;, and ,.  These characters must be quoted with ^V.
528*42874Sbostic
529*42874Sbostic	The option "ttytype" is now in correct alphabetical order.
530*42874Sbostic
531*42874Sbostic	A bug that caused HP terminals to mess up in insert mode when inserting
532*42874Sbostic	before a tab which follows 7 or fewer characters at the beginning of a
533*42874Sbostic	line (such as a tags file) has been fixed.
534*42874Sbostic
535*42874Sbostic	It is now possible to include control D in your EXINIT or .exrc.
536*42874Sbostic
537*42874Sbostic	A bug which caused the screen to mess up when a glob (such as xx*)
538*42874Sbostic	doesn't match anything has been fixed.
539*42874Sbostic
540*42874Sbostic	The editor now checks for extra junk after a /r.e./ from visual
541*42874Sbostic	(other than the allowed z command) and beeps if any is found.
542*42874Sbostic	Previously it was just ignored.
543*42874Sbostic
544*42874Sbostic	A bug that caused j and k (up and down) to behave strangely after
545*42874Sbostic	an insertion has been fixed.
546*42874Sbostic
547*42874Sbostic	A bug which causes term to be displayed incorrectly and which
548*42874Sbostic	caused a crash when changing terminal type when there happened
549*42874Sbostic	to be several |'s and a long string in genbuf has been fixed.
550*42874Sbostic	This bug was introduced in ex 2.9.
551*42874Sbostic
552*42874Sbostic	The patch for echo lines longer than 80 characters has been
553*42874Sbostic	repaired to do "Hit return to continue" after such lines and
554*42874Sbostic	print the entire output.
555*42874Sbostic
556*42874Sbostic	A bug that caused a messed up screen after a :sh command from
557*42874Sbostic	open mode has been fixed.
558*42874Sbostic
559*42874Sbostic	A bug which caused a tag request for a nonexistant tag to leave
560*42874Sbostic	the editor in nomagic mode has been fixed.
561*42874Sbostic
562*42874Sbostic	A bug which caused strange behavior if there is no default file
563*42874Sbostic	name when an autowrite save is attempted has been fixed.
564*42874Sbostic
565*42874Sbostic	A bug which caused the cursor to go to the wrong position when
566*42874Sbostic	^^D or 0^D is entered from column 2 in autoindent mode on terminals
567*42874Sbostic	that can backspace has been fixed.
568*42874Sbostic
569*42874SbosticVersion 3.2 -- January 4, 1980
570*42874Sbostic
571*42874Sbostic	A bug that caused nomagic to be set if an error happened within
572*42874Sbostic	a tag command has been fixed.
573*42874Sbostic
574*42874Sbostic	A bug that caused put commands to beep after a macro containing
575*42874Sbostic	an error has been fixed.
576*42874Sbostic
577*42874Sbostic	The mapinput option has been placed in alphabetical order.
578*42874Sbostic
579*42874Sbostic	A bug that caused undo to undo more than one macro invocation
580*42874Sbostic	on the same line has been fixed.
581*42874Sbostic
582*42874Sbostic	On non VM/UNIX systems, the screen size has been increased to
583*42874Sbostic	allow a 40 X 80 Ann Arbor to be used.
584*42874Sbostic
585*42874SbosticVersion 3.2 -- December 28, 1980
586*42874Sbostic
587*42874Sbostic	Several limits have been increased for VM/UNIX.  Longer lines,
588*42874Sbostic	more characters of file names, longer regular expressions, etc.
589*42874Sbostic	Huge files can now be edited directly.  Larger terminals (up to
590*42874Sbostic	66 lines) can be used.
591*42874Sbostic
592*42874Sbostic	An internal change has been made for VM/UNIX that causes error
593*42874Sbostic	messages to be stored directly instead of in a disk file.
594*42874Sbostic	This should cause faster response to errors.
595*42874Sbostic
596*42874SbosticVersion 3.1.1 -- December 13, 1979
597*42874Sbostic
598*42874Sbostic	A bug that caused nested macros not to be undoable has been fixed.
599*42874Sbostic
600*42874Sbostic	A bug that caused pounding on the escape key on terminals with
601*42874Sbostic	arrow keys that send escape sequences to cause undo to screw up
602*42874Sbostic	has been fixed.
603*42874Sbostic
604*42874Sbostic	It is now acknowledged that macros cannot contain the put command.
605*42874Sbostic	This is due to the implementation of put - previously a put inside
606*42874Sbostic	a macro dumped a copy of the buffer instead of the desired text and
607*42874Sbostic	left the editor in a very strange state.  Now such a put just beeps.
608*42874Sbostic
609*42874SbosticVersion 3.1 -- November 1, 1979
610*42874Sbostic
611*42874Sbostic	Versions from 3.1 up are too large to fit on pdp-11's.
612*42874Sbostic	(Special overlay software is expected to be available soon
613*42874Sbostic	for v7 pdp-11 Unix that will make it fit.) Version 2.9
614*42874Sbostic	is 3.1 with only the bug fixes and very few of the enhancements.
615*42874Sbostic	2.9 will fit on a pdp-11. Version 2.10 will come out and may
616*42874Sbostic	correspond to 3.2. (It turned out to correspond to 3.3)
617*42874Sbostic
618*42874Sbostic	For compatibility with ed:  's<newline>' may be used as a
619*42874Sbostic	command and means '&'.  If you set the option "edcompatible"
620*42874Sbostic	(abbr "ed") the presense or abscence of g and c suffices is
621*42874Sbostic	remembered and can be toggled by repeating the suffices.  The
622*42874Sbostic	suffix "r" makes the substitution into "~" instead of "&".
623*42874Sbostic
624*42874Sbostic	A new command line option -w<n> sets the value of window before
625*42874Sbostic	starting ex. Hence: 'vi -w5 file' makes a quick change to a file
626*42874Sbostic	easier at 300 baud.
627*42874Sbostic
628*42874Sbostic	Arrow keys on terminals that send more than 1 character now
629*42874Sbostic	work.  Home up keys are supported as are the four directions.
630*42874Sbostic	Ex no longer looks at the ma= entry in termcap, but uses the
631*42874Sbostic	ku, kd, kl, kr, and kh entries.  (Note that the HP 2621 will
632*42874Sbostic	turn on function key labels, and even then you have to hold
633*42874Sbostic	shift down.  To avoid turning on the labels, and to give up the
634*42874Sbostic	function keys, use terminal type 2621nl instead of 2621.)
635*42874Sbostic
636*42874Sbostic	A parameterless macro facility is included from visual. Briefly,
637*42874Sbostic	there are two flavors of macros:
638*42874Sbostic		a) Put the macro body in a buffer register, say x. Then
639*42874Sbostic		   type @x to invoke it. @ may be followed by another @
640*42874Sbostic		   to repeat the last macro.
641*42874Sbostic		   This allows macros up to 512 chars.
642*42874Sbostic		b) Use the map command from command mode (typically in the
643*42874Sbostic		   .exrc file) as follows:
644*42874Sbostic			map lhs rhs
645*42874Sbostic		   where lhs will be mapped to rhs.
646*42874Sbostic		   There are restrictions: lhs's should be 1-keystroke
647*42874Sbostic		   (either 1 char or 1 function key) since they must be
648*42874Sbostic		   entered within 1 second. lhs no longer than 10 chars,
649*42874Sbostic		   rhs no longer than 100. To get " ", "\t", "|", or "\n"
650*42874Sbostic		   into lhs or rhs, escape them with ctrl V. (It may be
651*42874Sbostic		   necessary to escape the ctrl V with ctrl V if the map
652*42874Sbostic		   command is given from visual mode.)
653*42874Sbostic	For 1 shot macros it is best to put the macro in a buffer register
654*42874Sbostic	and map a key to '@r', since this will allow the macro to be edited.
655*42874Sbostic
656*42874Sbostic	Macros can be deleted with
657*42874Sbostic		unmap lhs
658*42874Sbostic
659*42874Sbostic	The boolean option "mapinput" (mi) will, if on, cause macros to
660*42874Sbostic	be mapped in input mode as well as command mode (in visual only).
661*42874Sbostic	For example, you can define ctrl T to be four spaces with
662*42874Sbostic		:map ^V^T_^V^V____
663*42874Sbostic		:set mi
664*42874Sbostic	where underlines represent spaces and the ctrl V's are necessary
665*42874Sbostic	to get ctrl chars and spaces past various levels, and make ^T be
666*42874Sbostic	a software tab that even works in the middle of a line.
667*42874Sbostic
668*42874Sbostic	If the lhs of a macro is "#0" through "#9", this maps the particular
669*42874Sbostic	function key instead of the 2 char # sequence, if the terminal has
670*42874Sbostic	function keys. This only works if termcap has function key entries
671*42874Sbostic	for the particular terminal. For terminals without function keys,
672*42874Sbostic	the sequence #x means function key x, as typed. As a special case,
673*42874Sbostic	on terminals without function keys, the #x sequence need not be
674*42874Sbostic	typed within one second. The character # can be changed by using
675*42874Sbostic	a macro in the usual way:
676*42874Sbostic		map ^V^I #
677*42874Sbostic	to use tab, for example. (This won't affect the map command, which
678*42874Sbostic	still uses #, but just the invocation from visual mode.)
679*42874Sbostic	The undo command will undo an entire macro call as a unit.
680*42874Sbostic
681*42874Sbostic	New commands in visual: ^Y and ^E. These glitch the screen up
682*42874Sbostic	and down 1 line, respectively. They can be given counts, controlling
683*42874Sbostic	the number of lines the screen is glitched. They differ from ^U
684*42874Sbostic	and ^D in that the cursor stays over the same line in the buffer
685*42874Sbostic	it was over before rather than staying in the same place on the
686*42874Sbostic	screen. (^Y on a dumb terminal with a full screen will redraw the
687*42874Sbostic	screen moving the cursor up a few lines.) If you're looking for
688*42874Sbostic	mnemonic value in the names, try this: Y is right next to U and
689*42874Sbostic	E is right next to D.
690*42874Sbostic
691*42874Sbostic	More new commands in visual: '&' is a synonym for ':&<cr>'.
692*42874Sbostic	'~' changes the case of the letter under the cursor and moves
693*42874Sbostic	to the next character.
694*42874Sbostic
695*42874Sbostic	Ex looks in your environment for EXINIT. If it finds it, that
696*42874Sbostic	is used instead of looking for your .exrc. This should make
697*42874Sbostic	entry into ex faster, along with the termlib feature of looking
698*42874Sbostic	for a termcap entry in TERMCAP.
699*42874Sbostic
700*42874SbosticVersion 2.13 -- September 23, 1980
701*42874Sbostic
702*42874Sbostic	The provisions for changing the window size with a numeric
703*42874Sbostic	prefix argument to certain visual commands have been deleted.
704*42874Sbostic	The correct way to change the window size is to use the z
705*42874Sbostic	command, for example z5<cr> to change the window to 5 lines.
706*42874Sbostic
707*42874Sbostic	An undocumented "feature" which caused the ^^ command to return
708*42874Sbostic	to the previous tag, if in the current file, instead of the
709*42874Sbostic	previous file, has been removed.
710*42874Sbostic
711*42874SbosticVersion 2.12 -- July 23, 1980
712*42874Sbostic
713*42874Sbostic	A change was made to the sys_errlist array in ex_subr.c so that
714*42874Sbostic	Berkeley V7 quotas will produce the right error message.
715*42874Sbostic
716*42874Sbostic	A couple of minor bug fixes were made to get the editor to
717*42874Sbostic	compile on version 6.  The option to use 1K BUFSIZ has been
718*42874Sbostic	deleted, since it is no longer used on our 1K system.
719*42874Sbostic
720*42874SbosticVersion 2.11 -- June 24, 1980
721*42874Sbostic
722*42874Sbostic	The visual page motion commands ^F and ^B now treat any preceding
723*42874Sbostic	counts as number of pages to move, instead of changes to the
724*42874Sbostic	window size.  That is, 2^F moves forward 2 pages.
725*42874Sbostic
726*42874Sbostic	A :vi <file> command from visual mode is now treated the same
727*42874Sbostic	as a :edit <file> or :ex <file> command.  The meaning of the
728*42874Sbostic	vi command from ex command mode is not affected.
729*42874Sbostic
730*42874Sbostic	A read only mode now lets you guarantee you won't clobber your
731*42874Sbostic	file by accident.  You can set the on/off option "readonly" (ro)
732*42874Sbostic	and writes will fail unless you use an ! after the write.
733*42874Sbostic	Commands such as x, ZZ, and autowrite, and in general anything
734*42874Sbostic	that writes is affected.  This option is turned on if you invoke
735*42874Sbostic	ex with the -R flag.  A new link called "view" has been  created.
736*42874Sbostic	View is just like vi but it sets readonly.
737*42874Sbostic
738*42874Sbostic	The editor now supports certain terminals that use strings other
739*42874Sbostic	then \r and \n for return and linefeed by implementing the cr
740*42874Sbostic	and nl termcap options.  (Thanks to UCLA for these enhancements).
741*42874Sbostic
742*42874Sbostic	The termcap attribute ns is now checked for, and ex refuses to
743*42874Sbostic	go into visual mode on such a terminal unless it has sf.
744*42874Sbostic
745*42874Sbostic	If you change your start and stop characters to something other
746*42874Sbostic	than the default ^S and ^Q, vi now turns them off.  This causes
747*42874Sbostic	people who change them to escape not to lose so badly.
748*42874Sbostic	The quit character is once again turned off so that datamedias
749*42874Sbostic	which send ^\ for the right arrow key work.
750*42874Sbostic
751*42874Sbostic	If you type in an unmatched ) or } in showmatch mode, the editor
752*42874Sbostic	will now beep to warn you about your mistake.  The ) or } is
753*42874Sbostic	still accepted.
754*42874Sbostic
755*42874Sbostic	Editor scripts can now contain comments.  Begin the comments with "
756*42874Sbostic	(double quote).  Comments can be on their own line or come at the
757*42874Sbostic	end of command lines.  The comment continues to the end of the line.
758*42874Sbostic
759*42874Sbostic	The 3rd version of the USG tty driver is now supported, making it
760*42874Sbostic	possible on USG systems to interrupt redrawing the screen and to
761*42874Sbostic	not flush output when interruptable commands take place.
762*42874Sbostic
763*42874Sbostic	The rewind command has been added to the list of commands that
764*42874Sbostic	the autowrite option knows about.
765*42874Sbostic
766*42874Sbostic	A bug on the USG system where hanging up the phone causes more
767*42874Sbostic	than one SIGHUP to be sent has been compensated for.
768*42874Sbostic
769*42874Sbostic	A bug which caused a file that bombed out in the middle of
770*42874Sbostic	an edit command to be considered modified has been fixed.
771*42874Sbostic
772*42874Sbostic	The source file ex_io.c has been split into ex_io.c and
773*42874Sbostic	ex_unix.c to avoid a problem where many C compilers overflowed
774*42874Sbostic	the symbol table.
775*42874Sbostic
776*42874Sbostic	A bug which prevented turning off your prompt in your .exrc
777*42874Sbostic	has been fixed.
778*42874Sbostic
779*42874Sbostic	Some of the code internal to the editor has been rearranged
780*42874Sbostic	and some comments added.
781*42874Sbostic
782*42874Sbostic	The bug fix to the USG tty driver to output a null character
783*42874Sbostic	as padding at 1200 baud has been improved to output a DEL
784*42874Sbostic	at 1200 baud or above.
785*42874Sbostic
786*42874Sbostic	Terminals with small screens (less than 20 columns or less
787*42874Sbostic	than 5 lines) should now work.
788*42874Sbostic
789*42874Sbostic	A bug which prevented you from entering the character DEL
790*42874Sbostic	into the buffer if you changed your interrupt character to
791*42874Sbostic	something else besides DEL has been fixed.
792*42874Sbostic
793*42874Sbostic	A bug which caused things like d) and d} to miss the last
794*42874Sbostic	character when they should have deleted to the end of the
795*42874Sbostic	buffer has been fixed.
796*42874Sbostic
797*42874Sbostic	A bug which caused the last character to be lost when you
798*42874Sbostic	read in a file with no newline at the end of the last line
799*42874Sbostic	has been fixed.
800*42874Sbostic
801*42874Sbostic	A bug that caused garbage to be in the buffer if the temp file
802*42874Sbostic	overflowed has been fixed.
803*42874Sbostic
804*42874Sbostic	The character | can now be escaped with \| in file names.
805*42874Sbostic
806*42874Sbostic	A bug which caused the editor to not work if the tab stop size
807*42874Sbostic	did not divide the screen width has been fixed.
808*42874Sbostic
809*42874Sbostic	A bug on HP terminals that caused the screen to be messed up if
810*42874Sbostic	you scrolled up something that began the same way as the echo line
811*42874Sbostic	has been fixed.
812*42874Sbostic
813*42874Sbostic	An old ed bug which caused globals to fail when they did a substitute
814*42874Sbostic	on the next line has been fixed.
815*42874Sbostic
816*42874Sbostic	The % operator will now find matching square brackets the same way
817*42874Sbostic	it does parentheses and braces.  It will not display them in
818*42874Sbostic	showmatch mode, however, and will not use a ] to match all ('s.
819*42874Sbostic
820*42874Sbostic	Ex looks in your environment for EXINIT. If it finds it, that
821*42874Sbostic	is used instead of looking for your .exrc. This should make
822*42874Sbostic	entry into ex faster, along with the termlib feature of looking
823*42874Sbostic	for a termcap entry in TERMCAP.
824*42874Sbostic
825*42874Sbostic	Internally, it is possible to turn off about a dozen different
826*42874Sbostic	options when compiling the editor to make it fit in 64K.
827*42874Sbostic	See the makefile for a list of options.
828*42874Sbostic
829*42874SbosticVersion 2.10 -- February 2, 1980 (Corresponds to 3.3)
830*42874Sbostic
831*42874Sbostic	The default window sizes have been changed.  At 300 baud the
832*42874Sbostic	window is now 8 lines (was 1/2 the screen size).  At 1200 baud
833*42874Sbostic	the window is now 16 lines (was 2/3 the screen size, which was
834*42874Sbostic	usually also 16 for a typical 24 line CRT).  At 9600 baud the
835*42874Sbostic	window is still the full screen size.  Any baud rate less than
836*42874Sbostic	1200 behaves like 300, any over 1200 like 9600.
837*42874Sbostic
838*42874Sbostic	A new command mode command "x" (for "xit") has been added.  This
839*42874Sbostic	is the same as wq but will not bother to write if there have been
840*42874Sbostic	no changes to the file.  The command letter was chosen for
841*42874Sbostic	convenience and compatibilty with hed.
842*42874Sbostic
843*42874Sbostic	The command "ZZ" from vi is the same as ":x<cr>".  This is
844*42874Sbostic	the recommended way to leave the editor.  Z must be typed twice
845*42874Sbostic	since this is two easy to type by accident and has such severe
846*42874Sbostic	effects if unintentional.
847*42874Sbostic
848*42874Sbostic	The options w300, w1200, and w9600 can be set.  They are synonyms
849*42874Sbostic	for "window", but only apply at 300, 1200, or 9600 baud, resp.
850*42874Sbostic	Thus you can specify you want a 12 line window at 300 baud and
851*42874Sbostic	a 23 line window at 1200 baud with
852*42874Sbostic		:set w300=12 w1200=23
853*42874Sbostic
854*42874Sbostic	The "q" command from visual no longer works at all.  You must
855*42874Sbostic	use "Q" to get to ex command mode.
856*42874Sbostic
857*42874Sbostic	The editor no longer uses nondestructive space, except when in
858*42874Sbostic	insert mode.  It instead prints the character it would be
859*42874Sbostic	moving over.  This is a real win on terminals that use an
860*42874Sbostic	escape sequence to nd space.
861*42874Sbostic
862*42874Sbostic	A minor incompatibility with the v7 ed has been fixed.  Previously,
863*42874Sbostic	to do a global substitute with an escaped newline in the rhs, you
864*42874Sbostic	had to put two \'s in ex and one in ed.  Ex now accepts the single
865*42874Sbostic	form as well as the double form.  For example, instead of
866*42874Sbostic		g/foo/s//foo\\
867*42874Sbostic		bar/g
868*42874Sbostic	(which still works), you can now type, as in ed,
869*42874Sbostic		g/foo/s//foo\
870*42874Sbostic		bar/g
871*42874Sbostic	This means that the following ex command, which used to "work":
872*42874Sbostic		g/foo/s//foo bar\
873*42874Sbostic		.+1,/mumble/d
874*42874Sbostic	won't work anymore unless you put the trailing / on the substitution.
875*42874Sbostic	This usage is pretty obscure anyway.
876*42874Sbostic
877*42874Sbostic	A bug which caused the command "g/pattern" to print an error
878*42874Sbostic	message if "pattern" occurred on the last line has been fixed.
879*42874Sbostic
880*42874Sbostic	Limits have been raised so that an Ann Arbor terminal can be used,
881*42874Sbostic	and long tags can now be accomodated.
882*42874Sbostic
883*42874Sbostic	A bug that caused HP terminals to mess up in insert mode when inserting
884*42874Sbostic	before a tab which follows 7 or fewer characters at the beginning of a
885*42874Sbostic	line (such as a tags file) has been fixed.
886*42874Sbostic
887*42874Sbostic	A bug which causes term to be displayed incorrectly and which
888*42874Sbostic	caused a crash when changing terminal type when there happened
889*42874Sbostic	to be several |'s and a long string in genbuf has been fixed.
890*42874Sbostic	This bug was introduced in ex 2.9.
891*42874Sbostic
892*42874Sbostic	The patch for echo lines longer than 80 characters has been
893*42874Sbostic	repaired to do "Hit return to continue" after such lines and
894*42874Sbostic	print the entire output.
895*42874Sbostic
896*42874Sbostic	A bug that caused a messed up screen after a :sh command from
897*42874Sbostic	open mode has been fixed.
898*42874Sbostic
899*42874Sbostic	A bug which caused a tag request for a nonexistant tag to leave
900*42874Sbostic	the editor in nomagic mode has been fixed.
901*42874Sbostic
902*42874Sbostic	A bug which caused strange behavior if there is no default file
903*42874Sbostic	name when an autowrite save is attempted has been fixed.
904*42874Sbostic
905*42874Sbostic	A bug which caused the cursor to go to the wrong position when
906*42874Sbostic	^^D or 0^D is entered from column 2 in autoindent mode on terminals
907*42874Sbostic	that can backspace has been fixed.
908*42874Sbostic
909*42874Sbostic	In order to get 2.10 to fit on a v7 pdp-11, the following features
910*42874Sbostic	have been deleted:
911*42874Sbostic		The MASTERTAGS feature (undocumented use of /usr/lib/tags
912*42874Sbostic		as an alternate tag file)
913*42874Sbostic		Checking that a file being read in is an ascii file.
914*42874Sbostic		Turning off ^Q/^S on a v7 system.
915*42874Sbostic
916*42874SbosticVersion 2.9 -- November 1, 1979
917*42874Sbostic
918*42874Sbostic	The meanings of semicolon and newline, broken in 2.8, have been fixed.
919*42874Sbostic	Newline with two arguments still prints the range, unless a semicolon
920*42874Sbostic	was present, in which case only the last line is printed. Semicolon
921*42874Sbostic	otherwise behaves as in ed (and ex 2.7).
922*42874Sbostic
923*42874Sbostic	For compatibility with ed: '%' is an abbreviation for '1,$'.
924*42874Sbostic	The default starting line for 'z' is '.+1' instead of '.'.
925*42874Sbostic	If 'z' is followed by a number, this number is remembered
926*42874Sbostic	(by setting the scroll option).
927*42874Sbostic
928*42874Sbostic	The + options to the command line invocation and to the edit
929*42874Sbostic	command now also work for the next command. In addition, the
930*42874Sbostic	text after the + is no longer limited to a line number or
931*42874Sbostic	/ or ? search string, but can be any single command. (It cannot
932*42874Sbostic	contain spaces except on command line invocation, and then must
933*42874Sbostic	be quoted to make the shell happy.)  The only special case is
934*42874Sbostic	where + is used by itself - this is the same as +$.
935*42874Sbostic
936*42874Sbostic	The way window sizes and scrolling commands are based on the options
937*42874Sbostic	window and scroll has been rearranged. All command mode scrolling
938*42874Sbostic	commands (z and ctrl D) are based on scroll: ^D moves scroll lines,
939*42874Sbostic	z moves scroll*2 lines. Everything in visual (^D, ^U, ^F, ^B, z,
940*42874Sbostic	window sizes in general) are based on the window option. The
941*42874Sbostic	defaults are arranged so that everything seems as before, but
942*42874Sbostic	on hardcopy terminals at 300 baud the default for scroll is
943*42874Sbostic	11 instead of 6.
944*42874Sbostic
945*42874Sbostic	Whether ex prompts for commands now depends on the setting of the
946*42874Sbostic	prompt variable, so inside script you can say 'set prompt' and
947*42874Sbostic	get ex to prompt.
948*42874Sbostic
949*42874Sbostic	Tags are now searched for in nomagic mode instead of the funny
950*42874Sbostic	mode where magic characters were impossible to get.
951*42874Sbostic
952*42874Sbostic	Paragraphs and sections with one letter names (such as those
953*42874Sbostic	used by PWB/MM) now work - use a space (escaped by a backslash)
954*42874Sbostic	for the second letter. Default paragraphs and sections are included
955*42874Sbostic	for both MM and MS. (Thanks to adb for this)
956*42874Sbostic
957*42874Sbostic	A bug involving 16 bit arithmetic on a vax for the yank command
958*42874Sbostic	has been fixed.
959*42874Sbostic
960*42874Sbostic	The text of the mailed message from expreserve has been improved
961*42874Sbostic	slightly.
962*42874Sbostic
963*42874Sbostic	The editor now always turns off the XTABS stty bit when in visual
964*42874Sbostic	mode, making terminals that do special things with ^I work.
965*42874Sbostic
966*42874Sbostic	The editor now knows about terminals with destructive tabs, like
967*42874Sbostic	the teleray 1061, having the xt option.
968*42874Sbostic
969*42874Sbostic	A bug that caused going past column 80 on terminals with insert line
970*42874Sbostic	but not insert char (like the mime, h1500, or i100) to mess up the
971*42874Sbostic	screen has been fixed.
972*42874Sbostic
973*42874Sbostic	A bug on 2621's that causes lines longer than 80 chars long with
974*42874Sbostic	embedded tabs to mess up when a tab was inserted has been fixed.
975*42874Sbostic
976*42874Sbostic	A bug that caused the wrong line to suddenly appear under very
977*42874Sbostic	rare circumstances involving small window sizes and long lines
978*42874Sbostic	where a search left the cursor on the top line of the screen
979*42874Sbostic	has been fixed.
980*42874Sbostic
981*42874Sbostic	The bug that caused inverse video to sometimes be scrolled up
982*42874Sbostic	into the file from an error message has been fixed.
983*42874Sbostic
984*42874Sbostic	The join command has been fixed, so that '3,3j' no longer joins
985*42874Sbostic	lines 3 and 4. ('3j' still does.) Thus, '/a/;/b/-j' works right
986*42874Sbostic	even if b is found on the line after a.
987*42874Sbostic
988*42874Sbostic	ex -v now finds your .exrc. In related changes, the default in
989*42874Sbostic	vi is now magic and nobeautify.
990*42874Sbostic
991*42874Sbostic	If your buffer is empty, ex won't refuse to do an edit, quit,
992*42874Sbostic	or tag command because you haven't done a write.
993*42874Sbostic
994*42874Sbostic	A bug causing visual undo not to work after '1,$!cat' has been
995*42874Sbostic	fixed.
996*42874Sbostic
997*42874Sbostic	Ex now decides for itself whether to use CBREAK or TIOCSETN
998*42874Sbostic	by whether they are defined in <sgtty.h>. This eliminates much
999*42874Sbostic	of the #ifdef USG or V6 lines. One USG line remains due to a bug
1000*42874Sbostic	in the USG tty driver at 1200 baud.
1001*42874Sbostic	Note that this will mess up if you use libretro because <sgtty.h>
1002*42874Sbostic	has CBREAK and TIOCSETN defined. Take these out of sgtty.h to fix this.
1003*42874Sbostic
1004*42874Sbostic	Termcap options TI and TE have been added.  These strings are
1005*42874Sbostic	respectively output at the beginning and end of the editing session.
1006*42874Sbostic
1007*42874Sbostic	Values for the set command may now include `\ ' for space and
1008*42874Sbostic	control characters.
1009*42874Sbostic
1010*42874Sbostic	Changes have been made to /etc/termcap (several new fields have
1011*42874Sbostic	been added) and to termlib (it now looks for TERMCAP in the environment
1012*42874Sbostic	and treats it as a termcap entry if the name of the terminal mentioned
1013*42874Sbostic	is the same as TERM and the entry doesn't start with a slash.
1014*42874Sbostic	If it starts with a slash it is treated as a filename, as before.
1015*42874Sbostic	Termcap also checks the 512 byte entry limit and skips lines beginning
1016*42874Sbostic	with # as comments. It is possible to define one terminal as being
1017*42874Sbostic	similar to another one with a few differences without making two
1018*42874Sbostic	copies of the description.) New termcap fields:
1019*42874Sbostic		ti	terminal initialization string. This should be sent
1020*42874Sbostic			out at the beginning of any program that addresses
1021*42874Sbostic			the cursor.
1022*42874Sbostic		te	Like te but at end of the program.
1023*42874Sbostic			(Thanks to adb for these two fields)
1024*42874Sbostic		us	Start underlining.
1025*42874Sbostic		ue	End underlining.
1026*42874Sbostic		uc	Underline one character & move over it.
1027*42874Sbostic		hc	(bool) terminal is hardcopy
1028*42874Sbostic		ns	(bool) terminal doesn't scroll (tektronix)
1029*42874Sbostic		ff	(bool) hardcopy knows ^L means formfeed.
1030*42874Sbostic		pt	(bool) hardware tabs, maybe set by is
1031*42874Sbostic		xt	(bool) destructive tabs (teleray 1061)
1032*42874Sbostic		ku	sequence sent by keypad "up" arrow
1033*42874Sbostic		kd	"down" arrow
1034*42874Sbostic		kl	"left" arrow
1035*42874Sbostic		kr	"right" arrow
1036*42874Sbostic		kh	"home" arrow
1037*42874Sbostic		ks	sequence to make keypad send these codes
1038*42874Sbostic		ke	sequence to make keypad not send these codes.
1039*42874Sbostic		k0-k9	sequences sent by up to 10 "other" keys
1040*42874Sbostic		l0-l9	labels on k0-k9. If omitted, default = "f0" - "f9".
1041*42874Sbostic		ko	additional keys on keypad, in terms of their
1042*42874Sbostic			termcap entry. For example, if "home down" and "clear"
1043*42874Sbostic			are present and send the same codes as ll and cl, use
1044*42874Sbostic				:ko=cl,ll:
1045*42874Sbostic		tc	This entry is a list of differences from the named
1046*42874Sbostic			entry. THIS MUST BE THE LAST FIELD. Example: hp2621
1047*42874Sbostic			with no ks or ke (e.g. null string):
1048*42874Sbostic				hn|hp2621nl:ks@:ke@:tc=hp2621:
1049*42874Sbostic			The @ cancels the string even if it is defined later.
1050*42874Sbostic
1051*42874SbosticVersion 2.8 -- July 18, 1979
1052*42874Sbostic
1053*42874Sbostic	It is now possible to backspace over the first character (:, /, or ?)
1054*42874Sbostic	on the echo line from visual. The effect is as though delete were hit
1055*42874Sbostic	except the bell isn't rung.
1056*42874Sbostic
1057*42874Sbostic	The trailing slash in global commands is now optional.
1058*42874Sbostic	g/pat	means	g/pat/p
1059*42874Sbostic	(This change, as well as the corresponding changes to the substitute
1060*42874Sbostic	command and r.e. address are also in the latest version of ed.)
1061*42874Sbostic
1062*42874Sbostic	The j, k, and l keys now move the cursor down, up, and right,
1063*42874Sbostic	respectively, in visual mode, as they used to do (and still do on
1064*42874Sbostic	3a's). This is to avoid the creeping of these keys into the map
1065*42874Sbostic	descriptions of terminals and to compensate for the lack of arrow
1066*42874Sbostic	keys on terminals like HP's.
1067*42874Sbostic
1068*42874Sbostic	Two arguments given to a newline command now print the range of
1069*42874Sbostic	lines instead of just the last line (as though 'p' were appended).
1070*42874Sbostic	To make forms like /foo/;/bar/	still work, the ; operator sets
1071*42874Sbostic	the dot as before but then forgets everything to the left of the ;.
1072*42874Sbostic
1073*42874Sbostic	The + option invoked from the shell or the edit command has
1074*42874Sbostic	two new forms:	+/pat	and 	+?pat
1075*42874Sbostic	These cause the initial line to be chosen by a search for the
1076*42874Sbostic	pattern pat. Note that if any special characters are in the
1077*42874Sbostic	argument (such as ^, $, and even ?) it must be quoted.
1078*42874Sbostic
1079*42874Sbostic	Two new options are added: autowrite (aw) and hardtabs (ht).
1080*42874Sbostic	Autowrite is a toggle, off by default. When on, if you have
1081*42874Sbostic	unsaved changes before a context switching command, a write
1082*42874Sbostic	is done automatically. The commands that may write are !,
1083*42874Sbostic	next, and tag. Note that there is an equivalent way to do the
1084*42874Sbostic	command with autowrite set without the write in each case:
1085*42874Sbostic	shell, tag!, and edit do not write.
1086*42874Sbostic
1087*42874Sbostic	Hardtabs is a numeric option,, set to 8 by default.
1088*42874Sbostic	Changing this to, say, 4, tells ex that either your system
1089*42874Sbostic	expands tabs to every 4 spaces, or your terminal has hardware
1090*42874Sbostic	tabs set every 4 spaces.
1091*42874Sbostic
1092*42874Sbostic	A bug that caused strange behaviour when an echo line contained
1093*42874Sbostic	more than 79 characters (from a long : command or one or more long
1094*42874Sbostic	filenames) has been patched by not printing any such characters
1095*42874Sbostic	past column 79.
1096*42874Sbostic
1097*42874Sbostic	Handling of systems with nonstandard locations of files (where
1098*42874Sbostic	the maintainer of ex is not a superuser and cannot create files
1099*42874Sbostic	with names like /usr/lib/ex2.0strings or /etc/termcap) has been
1100*42874Sbostic	improved. If the file can't be found as is, it is tried in the
1101*42874Sbostic	current directory. If that fails, ex tries to run without it.
1102*42874Sbostic	(Previously it bombed immediately if the error message file wasn't
1103*42874Sbostic	in /usr/lib.)
1104*42874Sbostic
1105*42874Sbostic	Shell commands containing ! or % characters are no longer echoed
1106*42874Sbostic	when in hush mode (as in 'ex -' from a shell file.)
1107*42874Sbostic
1108*42874SbosticVersion 2.7 -- June 10, 1979
1109*42874Sbostic
1110*42874Sbostic	An inefficiency introduced in version 2.3, which increased the
1111*42874Sbostic	amount of time spent preparing output by approximately 30 percent
1112*42874Sbostic	has been corrected.
1113*42874Sbostic
1114*42874Sbostic	A bug which caused ``wrapmargin'' to work as though all hardcopy
1115*42874Sbostic	terminals were 160 columns wide has been corrected.
1116*42874Sbostic
1117*42874Sbostic	A bug which caused the display to become confused after the display
1118*42874Sbostic	of a long line at the bottom of the screen was suppressed (being
1119*42874Sbostic	replaced temporarily by an @) has been fixed.  Previously, under
1120*42874Sbostic	some circumstances (e.g. after a put created the situation), scrolling
1121*42874Sbostic	up of the following text would cause the display of this long
1122*42874Sbostic	line to be skipped, so that the @ line would remain and the line
1123*42874Sbostic	itself would not be displayed.
1124*42874Sbostic
1125*42874SbosticVersion 2.6 -- June 2, 1979
1126*42874Sbostic
1127*42874Sbostic	A bug which prevented the first field separator in a tags file
1128*42874Sbostic	from beginning with a blank has been fixed; if the separator
1129*42874Sbostic	was a blank previously, the tag would not be found in the tags file.
1130*42874Sbostic
1131*42874Sbostic	A bug which caused the display to be messed up after a ``:''
1132*42874Sbostic	escape which created long lines has been fixed.  Previously
1133*42874Sbostic	a substitute command which changed the last few lines on the screen
1134*42874Sbostic	to be very long would leave the screen messed up.
1135*42874Sbostic
1136*42874Sbostic	A bug in display after 2 successive ``undo'' commands has been fixed.
1137*42874Sbostic	Previously if you opened new lines on the display, and then did
1138*42874Sbostic	2 successive undo commands, the display would be messed up after the
1139*42874Sbostic	second undo if your terminal had insert/delete line.
1140*42874Sbostic
1141*42874Sbostic	A bug on intelligent terminals which caused unnecessary delete
1142*42874Sbostic	character commands to be sent has been fixed.  This occurred when
1143*42874Sbostic	you did not have ``autoindent'' set, and opened a new line
1144*42874Sbostic	below an existing line with tabs.
1145*42874Sbostic
1146*42874Sbostic	The change operations in open mode on hardcopy terminals has been
1147*42874Sbostic	fixed.  Previously there were several bugs in cursor placement
1148*42874Sbostic	when the change extended to just before a tab character.
1149*42874Sbostic
1150*42874Sbostic	Several bugs in the handling of tabs in insert mode on intelligent
1151*42874Sbostic	terminals have been fixed.  Previously, tabs would often expand
1152*42874Sbostic	incorrectly, leaving the wrong amount of white space, when an
1153*42874Sbostic	insert occurred just before a tab.
1154*42874Sbostic
1155*42874Sbostic	A bug has been fixed which caused the editor to skip processing
1156*42874Sbostic	of the ``.exrc'' file when the terminal type set in the
1157*42874Sbostic	environment was unknown.  The editor now processes ``.exrc'' in
1158*42874Sbostic	this case.
1159*42874Sbostic
1160*42874Sbostic	[[A number of formatting changes have been made to the editor code
1161*42874Sbostic	to eliminate unreasonably long lines.  In addition, the code
1162*42874Sbostic	from the Murray Hill and USG sites has been merged in conditionally,
1163*42874Sbostic	so that all sites can compile from the same source.]]
1164*42874Sbostic
1165*42874SbosticVersion 2.5 -- May 28, 1979
1166*42874Sbostic
1167*42874Sbostic	A bug which caused the VE sequence not to be sent when exiting
1168*42874Sbostic	the editor via :q or :wq from visual has been fixed.
1169*42874Sbostic
1170*42874Sbostic	A bug which caused the command r^Q<ESC> to be weird when it
1171*42874Sbostic	was repeated has been fixed.
1172*42874Sbostic
1173*42874Sbostic	The $ command now sets the column for future cursor motions to
1174*42874Sbostic	effective infinity.  Thus a `$' followed by up/down cursor motions
1175*42874Sbostic	moves at the right margin of each line.
1176*42874Sbostic
1177*42874Sbostic	[[Internal: a bug in conditional compilation without the LISP
1178*42874Sbostic	features has been fixed.]]
1179*42874Sbostic
1180*42874Sbostic	Several bugs relating to insert mode and intelligent terminals
1181*42874Sbostic	have been fixed:
1182*42874Sbostic
1183*42874Sbostic	A bug which caused inserts on HP/DATAMEDIA like terminals to act
1184*42874Sbostic	strangely when the material was inserted immediately before a tab
1185*42874Sbostic	has been fixed.
1186*42874Sbostic
1187*42874Sbostic	A bug which caused the insertion of full tabs to not appear to
1188*42874Sbostic	insert as many spaces as required (under strange circumstances)
1189*42874Sbostic	has been fixed.
1190*42874Sbostic
1191*42874Sbostic	A bug which caused inserts on terminals with insert/delete line
1192*42874Sbostic	but no insert/delete character to act strangely if the insert
1193*42874Sbostic	caused a line to overflow has been fixed.
1194*42874Sbostic
1195*42874Sbostic	The ``expreserve'' program has been improved; you now will get
1196*42874Sbostic	mail if a file is saved for you as a result of your phone being
1197*42874Sbostic	hung up accidentally.
1198*42874Sbostic
1199*42874SbosticVersion 2.4 -- May 19, 1979
1200*42874Sbostic
1201*42874Sbostic	A bug during inserts on intelligent terminals which occasionally
1202*42874Sbostic	caused double ``~~'' characters on the last few lines of the display
1203*42874Sbostic	rather than just single `~' characters has been fixed.
1204*42874Sbostic
1205*42874Sbostic	The w W b B e and E operations in visual now wrap around line
1206*42874Sbostic	boundaries.  Thus a sequence of enough w commands will get to any
1207*42874Sbostic	word below the current position in the file, and b's will back
1208*42874Sbostic	up to any place before.  Thus these are more like the sentence
1209*42874Sbostic	operations ( and ).  You still can't back around line boundaries
1210*42874Sbostic	duing inserts however.
1211*42874Sbostic
1212*42874SbosticVersion 2.3 -- May 13, 1979
1213*42874Sbostic
1214*42874Sbostic	The P command to ex is now a synonym for p, so that 1,$P works,
1215*42874Sbostic	if you don't let up on the shift key soon enough.
1216*42874Sbostic
1217*42874Sbostic	The / and ? operations within visual and open now hit later
1218*42874Sbostic	(or earlier resp) occurrences of the same string on the same
1219*42874Sbostic	line.  This makes scans using / and ? much more useful.  You
1220*42874Sbostic	can move to the right on the current line by typing /pref<ESC>
1221*42874Sbostic	where `pref' is a prefix of the word you wish to move to, and
1222*42874Sbostic	delete to a following string `str' by doing d/str<ESC> if it is
1223*42874Sbostic	on the same or succeeding line.  Previously the command
1224*42874Sbostic		d/pat/
1225*42874Sbostic	deleted lines through the next line containing `pat'; it now
1226*42874Sbostic	deletes text up to the next instance of `pat'.  To delete to
1227*42874Sbostic	the next line containing `pat', do
1228*42874Sbostic		d/pat/0
1229*42874Sbostic	which is short for
1230*42874Sbostic		d/pat/+0
1231*42874Sbostic	In general if you use an offset after the scanning pattern,
1232*42874Sbostic	whole lines will always be affected.
1233*42874Sbostic
1234*42874Sbostic	Several bugs relating to the setting of the previous context mark
1235*42874Sbostic	`` have been fixed, including one which caused operations such as
1236*42874Sbostic	d`` or c`` to occasionally dump core.  In particular, the operations
1237*42874Sbostic		( ) { } [[ ]] and %
1238*42874Sbostic	now set the previous context mark correctly, and the mark is set
1239*42874Sbostic	even if the motion by these operations lands in the same line.
1240*42874Sbostic
1241*42874Sbostic	More optimization is now done on output cursor motions.  This
1242*42874Sbostic	is particularly much better on HP terminals which have
1243*42874Sbostic	ridiculously long cursor addressing sequences.  A new
1244*42874Sbostic	capability has been added to the termcap file to aid this:
1245*42874Sbostic	``bt'' (backtab).  Thanks to Chuck Haley for the new code to
1246*42874Sbostic	implement this.
1247*42874Sbostic
1248*42874Sbostic	A bug has been fixed on intelligent terminals which caused part
1249*42874Sbostic	of the screen to be accidentally erased during insertions.
1250*42874Sbostic	This occurred only on the first line on the screen, when it
1251*42874Sbostic	became longer than one displayed line and only if a part of
1252*42874Sbostic	the screen (at the top) was currently not in use.
1253*42874Sbostic
1254*42874Sbostic	A bug has been fixed which caused the command ``dp'' to be interpreted
1255*42874Sbostic	as ``delete to register p''.  This normally went unnoticed since
1256*42874Sbostic	the ``autoprint'' option would cause the effect which the ``p'' was
1257*42874Sbostic	forcing.
1258*42874Sbostic
1259*42874SbosticVersion 2.2 -- May 6, 1979
1260*42874Sbostic
1261*42874Sbostic	"d)" now deletes a line if the current line is a sentence rather
1262*42874Sbostic	than leaving an empty line.
1263*42874Sbostic
1264*42874Sbostic	The command
1265*42874Sbostic		:s/str
1266*42874Sbostic	now deletes str if it can find it; previously it was an error.
1267*42874Sbostic
1268*42874Sbostic	The editor now handles multiple ":" escapes correctly; previously
1269*42874Sbostic	the screen would not be redrawn necessitating a ^L to fix it if you
1270*42874Sbostic	gave a `:!command' to ``[Hit return to continue]''.
1271*42874Sbostic
1272*42874Sbostic	Recursive calls to visual from within open or visual are no longer
1273*42874Sbostic	permitted.  Previously ``:vi'' from within open mode would eventually
1274*42874Sbostic	leave the editor in a strange state.
1275*42874Sbostic
1276*42874Sbostic	The %age in the status line is now correctly printed on 11's;
1277*42874Sbostic	Previously internal 16-bit overflows often caused it to be incorrect.
1278*42874Sbostic
1279*42874Sbostic	The editor now ignores a ":" in front of commands.
1280*42874Sbostic	Thus you can say ``:read foo'' within ex.
1281*42874Sbostic
1282*42874Sbostic	A bug which caused commands involving ]] to not be repeatable has
1283*42874Sbostic	been fixed.  Previously ``d]]'' followed by ``.'' caused an error.
1284*42874Sbostic
1285*42874Sbostic	"ayw now works correctly.  Previously this silently did nothing.
1286*42874Sbostic
1287*42874Sbostic	Several bugs in "recover" and "ex -r" have been fixed.  Thanks
1288*42874Sbostic	to Andy Koenig for the fixes.
1289*42874Sbostic
1290*42874Sbostic	In input mode in open and visual ^V (like tenex) is now equivalent
1291*42874Sbostic	to ^Q (which is reminiscent of ITS) superquoting the next character.
1292*42874Sbostic	A later version of the UNIX tty driver will implement the standard for
1293*42874Sbostic	^S ^Q handshaking and make ^Q unusable.
1294*42874Sbostic
1295*42874Sbostic	There are several typos on page 3 of the ``edit'' manual section:
1296*42874Sbostic		s/move "a/delete a/
1297*42874Sbostic		s/"a move ./put a/
1298*42874Sbostic		/move to copy/s//delete to yank/
1299*42874Sbostic
1300*42874SbosticVersion 2.1 -- April 5, 1979
1301*42874Sbostic
1302*42874Sbostic	Invoking ex via
1303*42874Sbostic		ex -l
1304*42874Sbostic	now sets "lisp" and "showmatch".  This is suitable for invocations
1305*42874Sbostic	from within Franz Lisp.  If you don't like "showmatch", you can
1306*42874Sbostic	still use "ex -l", just put the command
1307*42874Sbostic		set noshowmatch
1308*42874Sbostic	in your .exrc file.
1309*42874Sbostic
1310