xref: /onnv-gate/usr/src/cmd/vi/port/ex.news (revision 0:68f95e015346)
1*0Sstevel@tonic-gate#ident	"%Z%%M%	%I%	%E% SMI"	/* SVr4.0 1.12	*/
2*0Sstevel@tonic-gate#
3*0Sstevel@tonic-gate# CDDL HEADER START
4*0Sstevel@tonic-gate#
5*0Sstevel@tonic-gate# The contents of this file are subject to the terms of the
6*0Sstevel@tonic-gate# Common Development and Distribution License, Version 1.0 only
7*0Sstevel@tonic-gate# (the "License").  You may not use this file except in compliance
8*0Sstevel@tonic-gate# with the License.
9*0Sstevel@tonic-gate#
10*0Sstevel@tonic-gate# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11*0Sstevel@tonic-gate# or http://www.opensolaris.org/os/licensing.
12*0Sstevel@tonic-gate# See the License for the specific language governing permissions
13*0Sstevel@tonic-gate# and limitations under the License.
14*0Sstevel@tonic-gate#
15*0Sstevel@tonic-gate# When distributing Covered Code, include this CDDL HEADER in each
16*0Sstevel@tonic-gate# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17*0Sstevel@tonic-gate# If applicable, add the following below this CDDL HEADER, with the
18*0Sstevel@tonic-gate# fields enclosed by brackets "[]" replaced with your own identifying
19*0Sstevel@tonic-gate# information: Portions Copyright [yyyy] [name of copyright owner]
20*0Sstevel@tonic-gate#
21*0Sstevel@tonic-gate# CDDL HEADER END
22*0Sstevel@tonic-gate#
23*0Sstevel@tonic-gate
24*0Sstevel@tonic-gate**********************************************************************
25*0Sstevel@tonic-gate*** NOTE: All pre-1980 commentary has been removed from this file. ***
26*0Sstevel@tonic-gate**********************************************************************
27*0Sstevel@tonic-gate
28*0Sstevel@tonic-gateVersion SVR3.1  	1986
29*0Sstevel@tonic-gate
30*0Sstevel@tonic-gate   MAJOR STRUCTURAL CHANGES & ENHANCEMENTS:
31*0Sstevel@tonic-gate
32*0Sstevel@tonic-gate	1. ex/vi modified to use an interim version of getopt(3),
33*0Sstevel@tonic-gate	   so that ex/vi can migrate to standardized command syntax.
34*0Sstevel@tonic-gate	   Syntax changes:
35*0Sstevel@tonic-gate
36*0Sstevel@tonic-gate		ILLEGAL (old)		LEGAL
37*0Sstevel@tonic-gate
38*0Sstevel@tonic-gate		-r [optional arg]	-L  (for listing of recovered files)
39*0Sstevel@tonic-gate					-r arg   (to recover file "arg")
40*0Sstevel@tonic-gate		+cmd			-c cmd
41*0Sstevel@tonic-gate		-   (for silent)	-s
42*0Sstevel@tonic-gate
43*0Sstevel@tonic-gate	   Both legal and (old) illegal options will be accepted
44*0Sstevel@tonic-gate	   for a period of time; later, the old illegal options
45*0Sstevel@tonic-gate	   will be dropped from ex/vi.
46*0Sstevel@tonic-gate
47*0Sstevel@tonic-gate	2. It is now possible to recover encrypted files.  The file header has
48*0Sstevel@tonic-gate	   been changed to include an encrypted flag.  Therefore, if the user
49*0Sstevel@tonic-gate	   types "vi -r file" when "file" is encrypted, the program will
50*0Sstevel@tonic-gate	   automatically check the header flag and prompt the user for the
51*0Sstevel@tonic-gate	   encryption key.  The actions are as follows:
52*0Sstevel@tonic-gate
53*0Sstevel@tonic-gate	      command line	encrypted file	  actions
54*0Sstevel@tonic-gate	      ------------	--------------	  -------
55*0Sstevel@tonic-gate	       vi -r file	   YES		prompted for key associated
56*0Sstevel@tonic-gate						with recovered file
57*0Sstevel@tonic-gate						[editing session not encrypted]
58*0Sstevel@tonic-gate
59*0Sstevel@tonic-gate	       vi -r file	   NO		regular recovery
60*0Sstevel@tonic-gate						[editing session not encrypted]
61*0Sstevel@tonic-gate
62*0Sstevel@tonic-gate	      vi -r -x file	   YES		prompted for editing session key
63*0Sstevel@tonic-gate						[editing session encrypted,
64*0Sstevel@tonic-gate						editing session key is used
65*0Sstevel@tonic-gate						to recover file]
66*0Sstevel@tonic-gate
67*0Sstevel@tonic-gate	      vi -r -x file	   NO  		prompted for editing session key
68*0Sstevel@tonic-gate						[editing session encrypted]
69*0Sstevel@tonic-gate
70*0Sstevel@tonic-gate	3. The structure of /usr/preserve has been changed to improve security.
71*0Sstevel@tonic-gate	   The directory /usr/preserve will have read-write-execute permissions
72*0Sstevel@tonic-gate	   for everybody.  Recovered files will be saved in a subdirectory in
73*0Sstevel@tonic-gate	   /usr/preserve.  The subdirectory name is the same as the user's id,
74*0Sstevel@tonic-gate	   owned by the user, and has read-write-execute permissions for the
75*0Sstevel@tonic-gate	   user only.  The recovered file in the subdirectory has read-write
76*0Sstevel@tonic-gate	   permissions for the user only.  Expreserve, exrecover, and /usr/preserve
77*0Sstevel@tonic-gate	   all have owner and group of "bin"; setuid bits in expreserve and
78*0Sstevel@tonic-gate	   exrecover have been turned off.
79*0Sstevel@tonic-gate
80*0Sstevel@tonic-gate	4. the command "vi -r" or "vi -L" used to list recoverable files,
81*0Sstevel@tonic-gate	   now lists the user's files found in /tmp as well as /usr/preserve/user
82*0Sstevel@tonic-gate	   so the user has a complete list.  Files are listed under the
83*0Sstevel@tonic-gate	   appropriate directory names.
84*0Sstevel@tonic-gate
85*0Sstevel@tonic-gate	5. name of source directory "vax" changed to "port"
86*0Sstevel@tonic-gate
87*0Sstevel@tonic-gate	6. exit code of ex/vi reflects number of error/warning messages
88*0Sstevel@tonic-gate	   incurred
89*0Sstevel@tonic-gate
90*0Sstevel@tonic-gate	7. ctags (used in conjunction with -t option and ":ta") now
91*0Sstevel@tonic-gate	   installed in /usr/bin/ctags (manual page in Section 1).
92*0Sstevel@tonic-gate
93*0Sstevel@tonic-gate	8. added ed-like enhancement such that "s/text/%" will replace
94*0Sstevel@tonic-gate	   "text" with the righthand side of the previous substitute
95*0Sstevel@tonic-gate	   command.
96*0Sstevel@tonic-gate
97*0Sstevel@tonic-gate	9. added argument to case operator "~" so that multiple substitutions
98*0Sstevel@tonic-gate	   per line can occur (e.g. "10~").
99*0Sstevel@tonic-gate
100*0Sstevel@tonic-gate   BUG FIXES:
101*0Sstevel@tonic-gate
102*0Sstevel@tonic-gate	1.*if input being read by source'd file and an error is
103*0Sstevel@tonic-gate	   encountered, the user is bumped up to the previous source
104*0Sstevel@tonic-gate	   level, instead of being thrown back into command mode.
105*0Sstevel@tonic-gate	2.*ex/vi restores tty state if fork fails.
106*0Sstevel@tonic-gate	3.*ex/vi allows backspacing and retyping of conditional
107*0Sstevel@tonic-gate	   responses (in the case of ":s/old/new/c").
108*0Sstevel@tonic-gate	4.*"U" (undo line changes) no longer marks file as modified
109*0Sstevel@tonic-gate	   when no editing has been done.
110*0Sstevel@tonic-gate	5.*file not automatically considered modified when "vi +cmd file"
111*0Sstevel@tonic-gate	   syntax used.
112*0Sstevel@tonic-gate	6.*actions of "ZZ" altered as follows:
113*0Sstevel@tonic-gate
114*0Sstevel@tonic-gate		COMMAND		      OLD ACTIONS	NEW ACTIONS
115*0Sstevel@tonic-gate		-------		      -----------	-----------
116*0Sstevel@tonic-gate		vi newfn; ZZ	      no file created	same as old action
117*0Sstevel@tonic-gate		vi oldfn; ZZ	      oldfn unchanged	same as old action
118*0Sstevel@tonic-gate		vi newfn; 1,$d; ZZ    no file created	write empty file
119*0Sstevel@tonic-gate		vi newfn; a text		         (0 char; 0 bytes)
120*0Sstevel@tonic-gate		  1,$d; ZZ	      no file created	write empty file
121*0Sstevel@tonic-gate		vi oldfn; 1,$d; ZZ    oldfn unchanged	write empty file
122*0Sstevel@tonic-gate		vi oldfn; a text;
123*0Sstevel@tonic-gate		 1,$d; ZZ	      oldfn unchanged	write empty file
124*0Sstevel@tonic-gate		vi oldfn; dd all; ZZ  write empty file	same as old action@
125*0Sstevel@tonic-gate
126*0Sstevel@tonic-gate	7.*cursor now moves to column 1 when HOME arrow key pushed in
127*0Sstevel@tonic-gate	   INSERT mode.
128*0Sstevel@tonic-gate	8.*if showmode set, it will display APPEND/INSERT/REPLACE(etc.) mode
129*0Sstevel@tonic-gate	   as appropriate.
130*0Sstevel@tonic-gate	9.*"novice" option can now be set or unset properly.
131*0Sstevel@tonic-gate       10.*yank-put now works when wrapmargin set and user tries to
132*0Sstevel@tonic-gate	   do a put at the end of a line (i.e., overlapping the wrap
133*0Sstevel@tonic-gate	   margin).  Similar problem also fixed for ":R" for replacements
134*0Sstevel@tonic-gate	   beyond 80 columns or overlapping wrap margins (whichever comes
135*0Sstevel@tonic-gate	   first).
136*0Sstevel@tonic-gate       11.*stop "!" from being expanded  within the shell escaped command
137*0Sstevel@tonic-gate	   line.  Now ":!!" or any "!!" (after the initial shell escape)
138*0Sstevel@tonic-gate	   will cause substitution of the last command.
139*0Sstevel@tonic-gate       12.*code fixed to allow hardtabs set to 0.  Now, if hardtabs set
140*0Sstevel@tonic-gate	   to 0 (i.e., terminal does not support hardtabs), ex/vi will
141*0Sstevel@tonic-gate	   use spaces to emulate tabbing.
142*0Sstevel@tonic-gate       13.*marks no longer lost after undo
143*0Sstevel@tonic-gate       14.*Note that the REPORT variable is 5 by default. For informatory
144*0Sstevel@tonic-gate	   messages when changes have been make for fewer than 5 lines,
145*0Sstevel@tonic-gate	   the user should ":set report=x" where x is a number.
146*0Sstevel@tonic-gate       15.*"/" no longer considered a command (for undo purposes)
147*0Sstevel@tonic-gate       16.*read done by ":Nr file" command  (where N is a line number)
148*0Sstevel@tonic-gate	   now correctly undone (by "undo" command)
149*0Sstevel@tonic-gate       17.*added boundary checks so that exceeding maximum permitted map
150*0Sstevel@tonic-gate	   statements does not generate core dump/infinite loops
151*0Sstevel@tonic-gate       18.*terminal-dependent mapping removed when the user redefines the
152*0Sstevel@tonic-gate	   terminal by "set term=xxx" from ex editor (i.e., so only one
153*0Sstevel@tonic-gate	   terminal is mapped).
154*0Sstevel@tonic-gate       19.*'w' (advance a word) no longer fails on lines with trailing spaces.
155*0Sstevel@tonic-gate       20.*newline character not added to empty file.
156*0Sstevel@tonic-gate       21.*showmode indicator remains on when arrow keys used (e.g., while in
157*0Sstevel@tonic-gate	   input mode, INPUT MODE indicator is on until the ESC key is pressed).
158*0Sstevel@tonic-gate       22.*an interrupt during a write operation will no longer cause truncated
159*0Sstevel@tonic-gate	   file with no backup (happened only if file had NOT been modified
160*0Sstevel@tonic-gate	   during edit session; otherwise, backup was automatically initiated).
161*0Sstevel@tonic-gate       23.*new set option "modelines" (abbreviated "ml") created to prevent
162*0Sstevel@tonic-gate	   accidental interpretation of code by modelines (i.e., any characters
163*0Sstevel@tonic-gate	   following "ex:" or "vi:" and ending with a ":" would be interpreted
164*0Sstevel@tonic-gate	   as an ex command that would be executed before the file is loaded
165*0Sstevel@tonic-gate	   into the editor).  Default of modelines is OFF.
166*0Sstevel@tonic-gate       24.*"ei:" and "vx:" no longer considered valid triggers to modelines
167*0Sstevel@tonic-gate       25.*abbreviations fixed so they do not loop recursively
168*0Sstevel@tonic-gate	   (i.e., ab yes yes!, or ab O O'Connal).
169*0Sstevel@tonic-gate       26.*J, 1J and 2J perform same operation: joining the current line and
170*0Sstevel@tonic-gate	   the next line together. 0J is actually two commands: 0 (meaning
171*0Sstevel@tonic-gate	   go to the beginning of the line) and J (join).
172*0Sstevel@tonic-gate       27.*when tmp file becomes too big, line of garbage no longer added to
173*0Sstevel@tonic-gate 	   file.
174*0Sstevel@tonic-gate       28.*":n +command" no longer infinite loops on 3b2's.
175*0Sstevel@tonic-gate       29.*%-matching is now interruptible.
176*0Sstevel@tonic-gate       30.*version information put into /usr/lib/exstrings file.
177*0Sstevel@tonic-gate
178*0Sstevel@tonic-gateVersion 3.9  February 10, 1983
179*0Sstevel@tonic-gate
180*0Sstevel@tonic-gate	A new option "showmode" (smd) causes input mode to be indicated
181*0Sstevel@tonic-gate	toward the right end of the message line.  This is useful for
182*0Sstevel@tonic-gate	learning vi and for people who get confused about what mode they
183*0Sstevel@tonic-gate	are in.  Only the first letter of the message is shown if "terse"
184*0Sstevel@tonic-gate	is also set.
185*0Sstevel@tonic-gate
186*0Sstevel@tonic-gate	A new invocation "vedit" is for novices.  This is like edit but
187*0Sstevel@tonic-gate	puts you into visual mode right away.  It also sets showmode.
188*0Sstevel@tonic-gate
189*0Sstevel@tonic-gate	The default number of lines to scroll in visual mode on a
190*0Sstevel@tonic-gate	control D is now the variable scroll, not half the variable
191*0Sstevel@tonic-gate	window.
192*0Sstevel@tonic-gate
193*0Sstevel@tonic-gate	A bug causing extra CPU usage when vi is reentered after ^Z
194*0Sstevel@tonic-gate	has been fixed.  This also fixes a bug causing a hang until the
195*0Sstevel@tonic-gate	user types something if you are past column 80 before ^Z.
196*0Sstevel@tonic-gate
197*0Sstevel@tonic-gateVersion 3.8  April 22, 1982
198*0Sstevel@tonic-gate
199*0Sstevel@tonic-gate	The main change is conversion from termcap to terminfo.
200*0Sstevel@tonic-gate
201*0Sstevel@tonic-gate	More function keys are supported now.  Most function keys
202*0Sstevel@tonic-gate	with a meaning to vi work both in command mode and input mode.
203*0Sstevel@tonic-gate
204*0Sstevel@tonic-gate	A bug in the encryption command causing plain text in the
205*0Sstevel@tonic-gate	temp file and encrypted text on your screen has been fixed.
206*0Sstevel@tonic-gate
207*0Sstevel@tonic-gate	A new command "crypt" or "X" enters encryption mode once
208*0Sstevel@tonic-gate	you have started editing, like the ed "x" command.
209*0Sstevel@tonic-gate
210*0Sstevel@tonic-gate	A new command line option "-V" (verbose) is useful for
211*0Sstevel@tonic-gate	debugging ex scripts.
212*0Sstevel@tonic-gate
213*0Sstevel@tonic-gate	A new boolean set option "flash" allows you to control whether
214*0Sstevel@tonic-gate	vi uses the visible bell in your terminal (if it has one).
215*0Sstevel@tonic-gate	The default is "flash", do "set noflash" if the flashing
216*0Sstevel@tonic-gate	is annoying.
217*0Sstevel@tonic-gate
218*0Sstevel@tonic-gate	The "open" boolean option has been deleted.  Ex will no longer
219*0Sstevel@tonic-gate	prevent the user from entering open mode.  This clears up problems
220*0Sstevel@tonic-gate	with paths and invocations containing the letter "d".
221*0Sstevel@tonic-gate
222*0Sstevel@tonic-gate	If the local system has the Cornell "Fast Timer" driver, vi uses
223*0Sstevel@tonic-gate	it instead of alarm to detect function keys.  This means that the
224*0Sstevel@tonic-gate	delay after typing escape will usually only be 0.1 second instead
225*0Sstevel@tonic-gate	of a full second.  Of course, if the user continues typing, there
226*0Sstevel@tonic-gate	is no delay at all.
227*0Sstevel@tonic-gate
228*0Sstevel@tonic-gateVersion 3.7  October 16, 1981
229*0Sstevel@tonic-gate
230*0Sstevel@tonic-gate	It is now possible to split lines with substitute commands from vi,
231*0Sstevel@tonic-gate	by using ^V<return> in the rhs.  This takes care of the last
232*0Sstevel@tonic-gate	good reason for using ex command mode.
233*0Sstevel@tonic-gate
234*0Sstevel@tonic-gate	Mode lines are now supported.  Put a line containing
235*0Sstevel@tonic-gate		ex: xxx :
236*0Sstevel@tonic-gate	in the first or last 5 lines of the file, where xxx is any ex
237*0Sstevel@tonic-gate	command you want executed when that file is read in.  To make
238*0Sstevel@tonic-gate	other programs happy, it should probably be inside a comment.
239*0Sstevel@tonic-gate	You can use vi: as well as ex:.  (Note: no space allowed
240*0Sstevel@tonic-gate	between the "ex" and ":".  The spaces around xxx are considered
241*0Sstevel@tonic-gate	part of the command, and so are optional.)
242*0Sstevel@tonic-gate
243*0Sstevel@tonic-gate	If there is a file .exrc in the current directory, it will be
244*0Sstevel@tonic-gate	sourced when you enter vi, after your EXINIT or ~/.exrc.
245*0Sstevel@tonic-gate
246*0Sstevel@tonic-gate	The changeable scrolling region of the vt100 is now used in
247*0Sstevel@tonic-gate	place of insert line, resulting in much better performance.
248*0Sstevel@tonic-gate
249*0Sstevel@tonic-gate	Vi uses the new AL, DL, LE, RI, DO, and UP (all upper case)
250*0Sstevel@tonic-gate	termcap capabilities, which are parameterized versions of their
251*0Sstevel@tonic-gate	lower case equivalents.  This will results in better performance
252*0Sstevel@tonic-gate	on ANSI terminals, and especially on the Tektronix 4025 which
253*0Sstevel@tonic-gate	has parameterized local motions but cannot cursor address.
254*0Sstevel@tonic-gate
255*0Sstevel@tonic-gate	Vi uses backtabs again.  Now it knows how to handle backtabs on
256*0Sstevel@tonic-gate	terminals that have tabs set at intervals other than 8, and it
257*0Sstevel@tonic-gate	won't use backtabs if gtty indicates it can't use tabs.
258*0Sstevel@tonic-gate
259*0Sstevel@tonic-gate	A bug causing <escape> <del> to core dump vi has been fixed.
260*0Sstevel@tonic-gate
261*0Sstevel@tonic-gate	A bug causing writes to filters when editing encrypted files
262*0Sstevel@tonic-gate	to write encrypted text has been fixed.
263*0Sstevel@tonic-gate
264*0Sstevel@tonic-gate	A bug causing the message "substitution loop", when you enter a
265*0Sstevel@tonic-gate	1,$s/xxx/yyy/g with lots of changes, has been fixed.
266*0Sstevel@tonic-gate
267*0Sstevel@tonic-gate	A bug causing the current directory to be chmod'ed to 0 if you
268*0Sstevel@tonic-gate	set nomesg after starting up the editor has been fixed.  Note
269*0Sstevel@tonic-gate	that the nomesg option is intended for your EXINIT, since it only
270*0Sstevel@tonic-gate	takes effect on entry to the editor.
271*0Sstevel@tonic-gate
272*0Sstevel@tonic-gate	The eat newline glitch has been fixed so that vt100's and tab132's
273*0Sstevel@tonic-gate	handle long lines correctly.
274*0Sstevel@tonic-gate
275*0Sstevel@tonic-gate	Some internal changes have been made so that vi can run under UNIX
276*0Sstevel@tonic-gate	on the Bell Labs 3B machine, the BBN C/70, and the IBM 370.
277*0Sstevel@tonic-gate
278*0Sstevel@tonic-gateVersion 3.6  October 30, 1980
279*0Sstevel@tonic-gate
280*0Sstevel@tonic-gate	A kernel problem on the V7 pdp-11 overlay systems which causes
281*0Sstevel@tonic-gate	bad EMT traps to happen randomly, core dumping the editor,
282*0Sstevel@tonic-gate	has been programmed around by catching EMT traps.
283*0Sstevel@tonic-gate
284*0Sstevel@tonic-gate	A bug which prevented using a screen larger than 48 lines has
285*0Sstevel@tonic-gate	been fixed.
286*0Sstevel@tonic-gate
287*0Sstevel@tonic-gate	A bug which allowed you to set window to a value larger than
288*0Sstevel@tonic-gate	your screen size has been fixed.
289*0Sstevel@tonic-gate
290*0Sstevel@tonic-gate	The screen size limit on non-VM/Unix systems has been increased
291*0Sstevel@tonic-gate	to 66 lines or 5000 characters, to allow the Ann Arbor Ambassador
292*0Sstevel@tonic-gate	terminal to be used.
293*0Sstevel@tonic-gate
294*0Sstevel@tonic-gate	A bug which caused hangups to be ignored on USG systems has
295*0Sstevel@tonic-gate	been fixed.
296*0Sstevel@tonic-gate
297*0Sstevel@tonic-gate	A bug which caused maps with multiple changes on multiple lines
298*0Sstevel@tonic-gate	to mess up has been fixed.
299*0Sstevel@tonic-gate
300*0Sstevel@tonic-gate	If you get I/O errors, the file is considered "not edited" so
301*0Sstevel@tonic-gate	that you don't accidentally clobber the good file with a munged
302*0Sstevel@tonic-gate	up buffer.
303*0Sstevel@tonic-gate
304*0Sstevel@tonic-gate	An inefficiency in 3.5 which caused the editor to always call
305*0Sstevel@tonic-gate	ttyname has been fixed.
306*0Sstevel@tonic-gate
307*0Sstevel@tonic-gate	A bug which prevented the "source" command from working in an
308*0Sstevel@tonic-gate	EXINIT or from visual has been fixed.
309*0Sstevel@tonic-gate
310*0Sstevel@tonic-gate	A bug which caused readonly to be cleared when reading from
311*0Sstevel@tonic-gate	a writable file with "r" has been fixed.
312*0Sstevel@tonic-gate
313*0Sstevel@tonic-gate	The name "suspend" has been made an alias for "stop".
314*0Sstevel@tonic-gate
315*0Sstevel@tonic-gate	The stop command now once again works correctly from command mode.
316*0Sstevel@tonic-gate
317*0Sstevel@tonic-gate	On a dumb terminal at 1200 baud, "slowopen" is now the default.
318*0Sstevel@tonic-gate
319*0Sstevel@tonic-gate	A bug in the shell script "makeoptions" which searched for a
320*0Sstevel@tonic-gate	string that appeared earlier in a comment has been fixed.
321*0Sstevel@tonic-gate
322*0Sstevel@tonic-gate	A bug that caused an infinite loop when you did ":s/\</&/g"
323*0Sstevel@tonic-gate	has been fixed.
324*0Sstevel@tonic-gate
325*0Sstevel@tonic-gate	A bug that caused & with no previous substitution to give
326*0Sstevel@tonic-gate	"re internal error" has been fixed.
327*0Sstevel@tonic-gate
328*0Sstevel@tonic-gate	A bug in the binary search algorithm for tags which sometimes
329*0Sstevel@tonic-gate	prevented the last tag in the file from being found has been fixed.
330*0Sstevel@tonic-gate
331*0Sstevel@tonic-gate	Error messages from expreserve no longer output a linefeed,
332*0Sstevel@tonic-gate	messing up the screen.
333*0Sstevel@tonic-gate
334*0Sstevel@tonic-gate	The message from expreserve telling you a buffer was saved when
335*0Sstevel@tonic-gate	your phone was hung up has be amended to say the editor was
336*0Sstevel@tonic-gate	terminated, since a kill can also produce that message.
337*0Sstevel@tonic-gate
338*0Sstevel@tonic-gate	The "directory" option, which has been broken for over
339*0Sstevel@tonic-gate	a year, has been fixed.
340*0Sstevel@tonic-gate
341*0Sstevel@tonic-gate	The "r" command no longer invokes input mode macros.
342*0Sstevel@tonic-gate
343*0Sstevel@tonic-gate	A bug which caused strangeness if you set wrapmargin to 1
344*0Sstevel@tonic-gate	and typed a line containing a backslash in column 80 has
345*0Sstevel@tonic-gate	been fixed.
346*0Sstevel@tonic-gate
347*0Sstevel@tonic-gate	A bug which caused the "r<cr>" at the wrapmargin column
348*0Sstevel@tonic-gate	to mess up has been fixed.
349*0Sstevel@tonic-gate
350*0Sstevel@tonic-gate	On terminals with both scroll reverse and insert line,
351*0Sstevel@tonic-gate	the least expensive of the two will be used to scroll up.
352*0Sstevel@tonic-gate	This is usually scroll reverse, which is much less annoying
353*0Sstevel@tonic-gate	than insert line on terminals such as the mime I and mime 2a.
354*0Sstevel@tonic-gate
355*0Sstevel@tonic-gate	A bug which caused vi to estimate the cost of cursor motion
356*0Sstevel@tonic-gate	without taking into account padding has been fixed.
357*0Sstevel@tonic-gate
358*0Sstevel@tonic-gate	The failure of the editor to check counts on ^F and ^B commands
359*0Sstevel@tonic-gate	has been fixed.
360*0Sstevel@tonic-gate
361*0Sstevel@tonic-gate	The "remap" option failed completely if it was turned off.
362*0Sstevel@tonic-gate	This has been fixed.
363*0Sstevel@tonic-gate
364*0Sstevel@tonic-gate	A check of the wrong limit on a buffer for the right hand side
365*0Sstevel@tonic-gate	of substitutions has been fixed.  Overflowing this buffer could
366*0Sstevel@tonic-gate	produce a core dump.
367*0Sstevel@tonic-gate
368*0Sstevel@tonic-gate	A bug causing the editor to go into insert mode if you typed
369*0Sstevel@tonic-gate	return during an R command has been fixed.
370*0Sstevel@tonic-gate
371*0Sstevel@tonic-gate	A bug preventing the + command from working when you edit a
372*0Sstevel@tonic-gate	new file has been fixed by making it no longer an error to
373*0Sstevel@tonic-gate	edit a new file (when you first enter the editor.)  Instead
374*0Sstevel@tonic-gate	you are told it is a new file.
375*0Sstevel@tonic-gate
376*0Sstevel@tonic-gate	If an error happens when you are writing out a file, such as
377*0Sstevel@tonic-gate	an interrupt, you are warned that the file is incomplete.
378*0Sstevel@tonic-gate
379*0Sstevel@tonic-gateVersion 3.5 -- August 20, 1980
380*0Sstevel@tonic-gate
381*0Sstevel@tonic-gate	The provisions for changing the window size with a numeric
382*0Sstevel@tonic-gate	prefix argument to certain visual commands have been deleted.
383*0Sstevel@tonic-gate	The correct way to change the window size is to use the z
384*0Sstevel@tonic-gate	command, for example z5<cr> to change the window to 5 lines.
385*0Sstevel@tonic-gate
386*0Sstevel@tonic-gate	The code to handle the -x (encryption) option has been made
387*0Sstevel@tonic-gate	conditionally compiled, so that ex can run on an an 11/34 (!)
388*0Sstevel@tonic-gate	with overlays.  Since this code calls getpass, stdio was
389*0Sstevel@tonic-gate	being pulled in even without VMUNIX being defined.  The
390*0Sstevel@tonic-gate	savings from not defining CRYPT are about 4K of text and 4.5K
391*0Sstevel@tonic-gate	of bss.
392*0Sstevel@tonic-gate
393*0Sstevel@tonic-gate	Bill Joy put in a buffering scheme under the VMUNIX flag so
394*0Sstevel@tonic-gate	that up to 64K of file is edited in-core until you make enough
395*0Sstevel@tonic-gate	changes to force a temp file sync.  This makes entry into the
396*0Sstevel@tonic-gate	editor much faster, but also makes vi much bigger.
397*0Sstevel@tonic-gate
398*0Sstevel@tonic-gate	The source to ex is now sccs'ed.
399*0Sstevel@tonic-gate
400*0Sstevel@tonic-gate	An undocumented "feature" which caused the ^^ command to return
401*0Sstevel@tonic-gate	to the previous tag, if in the current file, instead of the
402*0Sstevel@tonic-gate	previous file, has been removed.
403*0Sstevel@tonic-gate
404*0Sstevel@tonic-gate	A bug which prevented ex from compiling on systems with the new
405*0Sstevel@tonic-gate	tty driver but no process control (such as Cory) was fixed.
406*0Sstevel@tonic-gate
407*0Sstevel@tonic-gateVersion 3.4 -- June 24, 1980
408*0Sstevel@tonic-gate
409*0Sstevel@tonic-gate	The visual page motion commands ^F and ^B now treat any preceding
410*0Sstevel@tonic-gate	counts as number of pages to move, instead of changes to the
411*0Sstevel@tonic-gate	window size.  That is, 2^F moves forward 2 pages.
412*0Sstevel@tonic-gate
413*0Sstevel@tonic-gate	A :vi <file> command from visual mode is now treated the same
414*0Sstevel@tonic-gate	as a :edit <file> or :ex <file> command.  The meaning of the
415*0Sstevel@tonic-gate	vi command from ex command mode is not affected.
416*0Sstevel@tonic-gate
417*0Sstevel@tonic-gate	Provisions to handle the new process stopping features of the
418*0Sstevel@tonic-gate	Berkeley TTY driver have been added.  A new command, "stop",
419*0Sstevel@tonic-gate	takes you out of the editor cleanly and efficiently, returning
420*0Sstevel@tonic-gate	you to the shell.  Resuming the editor puts you back in command
421*0Sstevel@tonic-gate	or visual mode, as appropriate.  If autowrite is set and there
422*0Sstevel@tonic-gate	are outstanding changes, a write is done first unless you say
423*0Sstevel@tonic-gate	"stop!".  From visual mode, the command ^Z is the same as :stop.
424*0Sstevel@tonic-gate	Note that if you have an arrow key that sends ^Z the stop function
425*0Sstevel@tonic-gate	will take priority over the arrow function.  If you have your
426*0Sstevel@tonic-gate	"susp" character set to something besides ^Z, that key will be
427*0Sstevel@tonic-gate	honored as well.
428*0Sstevel@tonic-gate
429*0Sstevel@tonic-gate	A read only mode now lets you guarantee you won't clobber your
430*0Sstevel@tonic-gate	file by accident.  You can set the on/off option "readonly" (ro)
431*0Sstevel@tonic-gate	and writes will fail unless you use an ! after the write.
432*0Sstevel@tonic-gate	Commands such as x, ZZ, and autowrite, and in general anything
433*0Sstevel@tonic-gate	that writes is affected.  This option is turned on if you invoke
434*0Sstevel@tonic-gate	ex with the -R flag.  A new link called "view" has been  created.
435*0Sstevel@tonic-gate	View is just like vi but it sets readonly.
436*0Sstevel@tonic-gate
437*0Sstevel@tonic-gate	The encryption code from the v7 editor is now part of ex.
438*0Sstevel@tonic-gate	You invoke ex with the -x option and it will ask for a key,
439*0Sstevel@tonic-gate	as ed.  The ed "x" command (to enter encryption mode from
440*0Sstevel@tonic-gate	within the editor) is not available.
441*0Sstevel@tonic-gate
442*0Sstevel@tonic-gate	The editor now adopts the convention that a null string in the
443*0Sstevel@tonic-gate	environment is the same as not being set.  This applies to
444*0Sstevel@tonic-gate	TERM, TERMCAP, and EXINIT.
445*0Sstevel@tonic-gate
446*0Sstevel@tonic-gate	A word abbreviation mode is now available.  You can define
447*0Sstevel@tonic-gate	abbreviations with the abbreviate command
448*0Sstevel@tonic-gate		:abbr foo find outer otter
449*0Sstevel@tonic-gate	which maps "foo" to "find outer otter".  Abbreviations can be
450*0Sstevel@tonic-gate	turned off with the "unabbreviate" command.  The syntax of these
451*0Sstevel@tonic-gate	commands is identical to the map and unmap commands, except
452*0Sstevel@tonic-gate	that the ! forms do not exist.  Abbreviations are considered
453*0Sstevel@tonic-gate	when in visual input mode only, and only affect whole words
454*0Sstevel@tonic-gate	typed in, using the conservative definition.  (Thus "foobar"
455*0Sstevel@tonic-gate	will not be mapped as it would using map!)
456*0Sstevel@tonic-gate	Abbreviate and unabbreviate can be abbreviated to "ab" and
457*0Sstevel@tonic-gate	"una", respectively.
458*0Sstevel@tonic-gate
459*0Sstevel@tonic-gate	The editor now supports certain terminals that use strings other
460*0Sstevel@tonic-gate	then \r and \n for return and linefeed by implementing the cr
461*0Sstevel@tonic-gate	and nl termcap options.  (Thanks to UCLA for these enhancements).
462*0Sstevel@tonic-gate
463*0Sstevel@tonic-gate	The termcap attribute ns is now checked for, and ex refuses to
464*0Sstevel@tonic-gate	go into visual mode on such a terminal unless it has sf.
465*0Sstevel@tonic-gate
466*0Sstevel@tonic-gate	Terminals that can cursor address but cannot go up a line
467*0Sstevel@tonic-gate	now work in visual.
468*0Sstevel@tonic-gate
469*0Sstevel@tonic-gate	If you change your start and stop characters to something other
470*0Sstevel@tonic-gate	than the default ^S and ^Q, vi now turns them off.  This causes
471*0Sstevel@tonic-gate	people who change them to escape not to lose so badly.
472*0Sstevel@tonic-gate	The quit character is once again turned off so that datamedias
473*0Sstevel@tonic-gate	which send ^\ for the right arrow key work.
474*0Sstevel@tonic-gate
475*0Sstevel@tonic-gate	The ~ command now repeats correctly with ".".
476*0Sstevel@tonic-gate
477*0Sstevel@tonic-gate	If you type in an unmatched ) or } in showmatch mode, the editor
478*0Sstevel@tonic-gate	will now beep to warn you about your mistake.  The ) or } is
479*0Sstevel@tonic-gate	still accepted.
480*0Sstevel@tonic-gate
481*0Sstevel@tonic-gate	The way macros are undone has been improved considerably.
482*0Sstevel@tonic-gate	The number of changes inside the macro is counted, and just
483*0Sstevel@tonic-gate	before the second change the state before the macro is recreated
484*0Sstevel@tonic-gate	internally and saved to allow the macro to be undoable as a unit.
485*0Sstevel@tonic-gate	Hence, if the macro makes only one change the particular change is
486*0Sstevel@tonic-gate	undone (which will probably not redraw the screen).  If no changes
487*0Sstevel@tonic-gate	are made (for example, the arrow keys) the previous thing that could
488*0Sstevel@tonic-gate	be undone is not clobbered.
489*0Sstevel@tonic-gate
490*0Sstevel@tonic-gate	The undomacro option has been deleted since it is no longer needed.
491*0Sstevel@tonic-gate
492*0Sstevel@tonic-gate	Editor scripts can now contain comments.  Begin the comments with "
493*0Sstevel@tonic-gate	(double quote).  Comments can be on their own line or come at the
494*0Sstevel@tonic-gate	end of command lines.  The comment continues to the end of the line.
495*0Sstevel@tonic-gate
496*0Sstevel@tonic-gate	The 3rd version of the USG tty driver is now supported, making it
497*0Sstevel@tonic-gate	possible on USG systems to interrupt redrawing the screen and to
498*0Sstevel@tonic-gate	not flush output when interruptible commands take place.
499*0Sstevel@tonic-gate
500*0Sstevel@tonic-gate	The rewind command has been added to the list of commands that
501*0Sstevel@tonic-gate	the autowrite option knows about.
502*0Sstevel@tonic-gate
503*0Sstevel@tonic-gate	The wrapmargin option is now usable.  The way it works has been
504*0Sstevel@tonic-gate	completely revamped.  Now if you go past the margin (even in the
505*0Sstevel@tonic-gate	middle of a word) the entire word is erased and rewritten on the
506*0Sstevel@tonic-gate	next line.  This changes the semantics of the number given to
507*0Sstevel@tonic-gate	wrapmargin.  0 still means off.  Any other number is still a
508*0Sstevel@tonic-gate	distance from the right edge of the screen, but this location
509*0Sstevel@tonic-gate	is now the right edge of the area where wraps can take place,
510*0Sstevel@tonic-gate	instead of the left edge.  Wrapmargin now behaves much like
511*0Sstevel@tonic-gate	fill/nojustify mode in nroff.
512*0Sstevel@tonic-gate
513*0Sstevel@tonic-gate	A bug on the USG system where hanging up the phone causes more
514*0Sstevel@tonic-gate	than one SIGHUP to be sent has been compensated for.
515*0Sstevel@tonic-gate
516*0Sstevel@tonic-gate	A bug which caused the :sh command not to send the vs and ti
517*0Sstevel@tonic-gate	sequences when you returned has been fixed.
518*0Sstevel@tonic-gate
519*0Sstevel@tonic-gate	A bug which caused a file that bombed out in the middle of
520*0Sstevel@tonic-gate	an edit command to be considered modified has been fixed.
521*0Sstevel@tonic-gate
522*0Sstevel@tonic-gate	A bug which caused the screen to be wrong after undoing a
523*0Sstevel@tonic-gate	:move command has been fixed.
524*0Sstevel@tonic-gate
525*0Sstevel@tonic-gate	A bug which messed up the buffer and the screen after
526*0Sstevel@tonic-gate	undoing a :join command has been fixed.
527*0Sstevel@tonic-gate
528*0Sstevel@tonic-gate	The source file ex_io.c has been split into ex_io.c and
529*0Sstevel@tonic-gate	ex_unix.c to avoid a problem where many C compilers overflowed
530*0Sstevel@tonic-gate	the symbol table.
531*0Sstevel@tonic-gate
532*0Sstevel@tonic-gate	A bug which prevented turning off your prompt in your .exrc
533*0Sstevel@tonic-gate	has been fixed.
534*0Sstevel@tonic-gate
535*0Sstevel@tonic-gate	Some of the code internal to the editor has been rearranged
536*0Sstevel@tonic-gate	and some comments added.
537*0Sstevel@tonic-gate
538*0Sstevel@tonic-gate	The bug fix to the USG tty driver to output a null character
539*0Sstevel@tonic-gate	as padding at 1200 baud has been improved to output a DEL
540*0Sstevel@tonic-gate	at 1200 baud or above.
541*0Sstevel@tonic-gate
542*0Sstevel@tonic-gate	Terminals with small screens (less than 20 columns or less
543*0Sstevel@tonic-gate	than 5 lines) should now work.
544*0Sstevel@tonic-gate
545*0Sstevel@tonic-gate	A bug which prevented you from entering the character DEL
546*0Sstevel@tonic-gate	into the buffer if you changed your interrupt character to
547*0Sstevel@tonic-gate	something else besides DEL has been fixed.
548*0Sstevel@tonic-gate
549*0Sstevel@tonic-gate	A bug which caused the current line to be clobbered when
550*0Sstevel@tonic-gate	you did a /, ?, or : command which mapped an input macro
551*0Sstevel@tonic-gate	successfully has been fixed.
552*0Sstevel@tonic-gate
553*0Sstevel@tonic-gate	If you map o to O and O to o and have remap set, the editor
554*0Sstevel@tonic-gate	now catches the infinite loop.
555*0Sstevel@tonic-gate
556*0Sstevel@tonic-gate	A put command after a macro now beeps instead of putting
557*0Sstevel@tonic-gate	a copy of the whole buffer.  (Note that the arrow keys
558*0Sstevel@tonic-gate	on terminals are considered macros.)
559*0Sstevel@tonic-gate
560*0Sstevel@tonic-gate	A bug which caused things like d) and d} to miss the last
561*0Sstevel@tonic-gate	character when they should have deleted to the end of the
562*0Sstevel@tonic-gate	buffer has been fixed.
563*0Sstevel@tonic-gate
564*0Sstevel@tonic-gate	A bug which caused the last character to be lost when you
565*0Sstevel@tonic-gate	read in a file with no newline at the end of the last line
566*0Sstevel@tonic-gate	has been fixed.
567*0Sstevel@tonic-gate
568*0Sstevel@tonic-gate	A bug that caused garbage to be in the buffer if the temp file
569*0Sstevel@tonic-gate	overflowed has been fixed.  (This only affected non-VMUNIX systems
570*0Sstevel@tonic-gate	since the temp file cannot overflow on VMUNIX.)
571*0Sstevel@tonic-gate
572*0Sstevel@tonic-gate	When a macro or global is undone, you no longer get picked up and
573*0Sstevel@tonic-gate	dropped on line 1.
574*0Sstevel@tonic-gate
575*0Sstevel@tonic-gate	The character | can now be escaped with \| in file names.
576*0Sstevel@tonic-gate
577*0Sstevel@tonic-gate	A bug which prevented the confirm option to a substitution that
578*0Sstevel@tonic-gate	was inside a source command has been fixed.
579*0Sstevel@tonic-gate
580*0Sstevel@tonic-gate	A bug which caused the editor to not work if the tab stop size
581*0Sstevel@tonic-gate	did not divide the screen width has been fixed.
582*0Sstevel@tonic-gate
583*0Sstevel@tonic-gate	A bug on HP terminals that caused the screen to be messed up if
584*0Sstevel@tonic-gate	you scrolled up something that began the same way as the echo line
585*0Sstevel@tonic-gate	has been fixed.
586*0Sstevel@tonic-gate
587*0Sstevel@tonic-gate	A macro bug which sometimes caused the next character after an
588*0Sstevel@tonic-gate	escape to be ignored on an HP terminal has been fixed.
589*0Sstevel@tonic-gate
590*0Sstevel@tonic-gate	A bug which caused unmap of strings with length 2 to fail has been
591*0Sstevel@tonic-gate	fixed.
592*0Sstevel@tonic-gate
593*0Sstevel@tonic-gate	A bug which left vi confused if you invoked a macro containing a
594*0Sstevel@tonic-gate	quit to command mode and then did an undo has been fixed.
595*0Sstevel@tonic-gate
596*0Sstevel@tonic-gate	An old ed bug which caused globals to fail when they did a substitute
597*0Sstevel@tonic-gate	on the next line has been fixed.
598*0Sstevel@tonic-gate
599*0Sstevel@tonic-gate	The % operator will now find matching square brackets the same way
600*0Sstevel@tonic-gate	it does parentheses and braces.  It will not display them in
601*0Sstevel@tonic-gate	showmatch mode, however, and will not use a ] to match all ('s.
602*0Sstevel@tonic-gate
603*0Sstevel@tonic-gate	Code has been added to handle the Beehive Superbee terminal,
604*0Sstevel@tonic-gate	using f1 for escape and f2 for control C.
605*0Sstevel@tonic-gate
606*0Sstevel@tonic-gate	The default value of the option shell is now taken from the
607*0Sstevel@tonic-gate	environment variable SHELL, if present.
608*0Sstevel@tonic-gate
609*0Sstevel@tonic-gateVersion 3.3 -- February 2, 1980
610*0Sstevel@tonic-gate
611*0Sstevel@tonic-gate	The default window sizes have been changed.  At 300 baud the
612*0Sstevel@tonic-gate	window is now 8 lines (was 1/2 the screen size).  At 1200 baud
613*0Sstevel@tonic-gate	the window is now 16 lines (was 2/3 the screen size, which was
614*0Sstevel@tonic-gate	usually also 16 for a typical 24 line CRT).  At 9600 baud the
615*0Sstevel@tonic-gate	window is still the full screen size.  Any baud rate less than
616*0Sstevel@tonic-gate	1200 behaves like 300, any over 1200 like 9600.
617*0Sstevel@tonic-gate
618*0Sstevel@tonic-gate	A new command mode command "x" (for "xit") has been added.  This
619*0Sstevel@tonic-gate	is the same as wq but will not bother to write if there have been
620*0Sstevel@tonic-gate	no changes to the file.  The command letter was chosen for
621*0Sstevel@tonic-gate	convenience and compatibility with hed.
622*0Sstevel@tonic-gate
623*0Sstevel@tonic-gate	The command "ZZ" from vi is the same as ":x<cr>".  This is
624*0Sstevel@tonic-gate	the recommended way to leave the editor.  Z must be typed twice
625*0Sstevel@tonic-gate	since this is two easy to type by accident and has such severe
626*0Sstevel@tonic-gate	effects if unintentional.
627*0Sstevel@tonic-gate
628*0Sstevel@tonic-gate	The options w300, w1200, and w9600 can be set.  They are synonyms
629*0Sstevel@tonic-gate	for "window", but only apply at 300, 1200, or 9600 baud, resp.
630*0Sstevel@tonic-gate	Thus you can specify you want a 12 line window at 300 baud and
631*0Sstevel@tonic-gate	a 23 line window at 1200 baud with
632*0Sstevel@tonic-gate		:set w300=12 w1200=23
633*0Sstevel@tonic-gate
634*0Sstevel@tonic-gate	It is now possible to say
635*0Sstevel@tonic-gate		:set window=5
636*0Sstevel@tonic-gate	and get the effect the next time the screen is redrawn from scratch.
637*0Sstevel@tonic-gate	(^L and Hit return to continue don't start from scratch.)
638*0Sstevel@tonic-gate	This is sort of pointless, since both
639*0Sstevel@tonic-gate		5:<cr>
640*0Sstevel@tonic-gate	and
641*0Sstevel@tonic-gate		z5<cr>
642*0Sstevel@tonic-gate	do the same thing with better results.
643*0Sstevel@tonic-gate
644*0Sstevel@tonic-gate	The editor no longer uses nondestructive space, except when in
645*0Sstevel@tonic-gate	insert mode.  It instead prints the character it would be
646*0Sstevel@tonic-gate	moving over.  This is a real win on terminals that use an
647*0Sstevel@tonic-gate	escape sequence to nd space.
648*0Sstevel@tonic-gate
649*0Sstevel@tonic-gate	It is now possible from visual to string several search expressions
650*0Sstevel@tonic-gate	together separated by semicolons the same as command mode.  For
651*0Sstevel@tonic-gate	example, you can say
652*0Sstevel@tonic-gate		/foo/;/bar
653*0Sstevel@tonic-gate	from visual and it will move to the first "bar" after the next "foo".
654*0Sstevel@tonic-gate	This also works within one line.
655*0Sstevel@tonic-gate
656*0Sstevel@tonic-gate	The option "mapinput" is dead.  It has been replaced by a much
657*0Sstevel@tonic-gate	more powerful mechanism: :map! (e.g. put an ! after the map).
658*0Sstevel@tonic-gate	Map and unmap commands with ! apply only to input, others apply
659*0Sstevel@tonic-gate	only to command mode.
660*0Sstevel@tonic-gate
661*0Sstevel@tonic-gate	The new option "timeout" (default on) causes macros to time out
662*0Sstevel@tonic-gate	after one second.  Turn it off and they will wait forever.
663*0Sstevel@tonic-gate
664*0Sstevel@tonic-gate	By using map! and setting notimeout, it is possible to get the
665*0Sstevel@tonic-gate	effect of emacs abbreviation mode.  Sanity checking is turned off
666*0Sstevel@tonic-gate	for map when ! is present.  This is a crude facility and does not
667*0Sstevel@tonic-gate	take into account things like the abbreviation being part of a longer
668*0Sstevel@tonic-gate	word.  It also does not echo until it is satisfied.
669*0Sstevel@tonic-gate
670*0Sstevel@tonic-gate	The new option "remap" (default on) causes the editor to attempt
671*0Sstevel@tonic-gate	to map the result of a macro mapping again until the mapping fails.
672*0Sstevel@tonic-gate	This makes it possible, say, to map q to # and #1 to something else
673*0Sstevel@tonic-gate	and get q1 mapped to something else.  Turning it off makes it possible
674*0Sstevel@tonic-gate	to map ^L to l and map ^R to ^L without having ^R map to l.
675*0Sstevel@tonic-gate
676*0Sstevel@tonic-gate	The new option "undomacro" (default on) makes it possible to undo
677*0Sstevel@tonic-gate	macros as a unit.  Leaving it off causes macros not to be treated
678*0Sstevel@tonic-gate	specially.  Macros with zero or one change work better with noum,
679*0Sstevel@tonic-gate	with two or more changes better with um.  This option may go away
680*0Sstevel@tonic-gate	if it becomes unnecessary.
681*0Sstevel@tonic-gate
682*0Sstevel@tonic-gate	The new (string) valued option "tags" allows you to specify a list
683*0Sstevel@tonic-gate	of tag files, similar to the "path" variable of csh.  The files
684*0Sstevel@tonic-gate	are separated by spaces (which are entered preceded by a backslash)
685*0Sstevel@tonic-gate	and are searched left to right.  The default value is
686*0Sstevel@tonic-gate	"tags /usr/lib/tags", which has the same effect as before.
687*0Sstevel@tonic-gate	It is recommended that "tags" always be the first entry.
688*0Sstevel@tonic-gate	On Ernie, /usr/lib/tags contains entries for the system defined
689*0Sstevel@tonic-gate	library procedures from section 3 of the manual.
690*0Sstevel@tonic-gate
691*0Sstevel@tonic-gate	^R is now the same as ^L on terminals where the right arrow key
692*0Sstevel@tonic-gate	sends ^L (The tvi and the adm 31).
693*0Sstevel@tonic-gate
694*0Sstevel@tonic-gate	Looking for a tag now uses binary search.
695*0Sstevel@tonic-gate
696*0Sstevel@tonic-gate	The "q" command from visual no longer works at all.  You must
697*0Sstevel@tonic-gate	use "Q" to get to ex command mode.
698*0Sstevel@tonic-gate
699*0Sstevel@tonic-gate	A minor incompatibility with the v7 ed has been fixed.  Previously,
700*0Sstevel@tonic-gate	to do a global substitute with an escaped newline in the rhs, you
701*0Sstevel@tonic-gate	had to put two \'s in ex and one in ed.  Ex now accepts the single
702*0Sstevel@tonic-gate	form as well as the double form.  For example, instead of
703*0Sstevel@tonic-gate		g/foo/s//foo\\
704*0Sstevel@tonic-gate		bar/g
705*0Sstevel@tonic-gate	(which still works), you can now type, as in ed,
706*0Sstevel@tonic-gate		g/foo/s//foo\
707*0Sstevel@tonic-gate		bar/g
708*0Sstevel@tonic-gate	This means that the following ex command, which used to "work":
709*0Sstevel@tonic-gate		g/foo/s//foo bar\
710*0Sstevel@tonic-gate		.+1,/mumble/d
711*0Sstevel@tonic-gate	won't work anymore unless you put the trailing / on the substitution.
712*0Sstevel@tonic-gate	This usage is pretty obscure anyway.
713*0Sstevel@tonic-gate
714*0Sstevel@tonic-gate	Several bugs relating to undoing macros have been fixed.
715*0Sstevel@tonic-gate
716*0Sstevel@tonic-gate	A bug which caused the command "g/pattern" to print an error
717*0Sstevel@tonic-gate	message if "pattern" occurred on the last line has been fixed.
718*0Sstevel@tonic-gate
719*0Sstevel@tonic-gate	If you reply ":" to "Hit return to continue", you will again be
720*0Sstevel@tonic-gate	asked "Hit return to continue" after the next command finishes.
721*0Sstevel@tonic-gate
722*0Sstevel@tonic-gate	The maximum length of a string valued option has been raised from
723*0Sstevel@tonic-gate	32 to 64, for the benefit of the "tags" option.
724*0Sstevel@tonic-gate
725*0Sstevel@tonic-gate	It is now possible to search for an escape or delete using f, F, t,
726*0Sstevel@tonic-gate	T, ;, and ,.  These characters must be quoted with ^V.
727*0Sstevel@tonic-gate
728*0Sstevel@tonic-gate	The option "ttytype" is now in correct alphabetical order.
729*0Sstevel@tonic-gate
730*0Sstevel@tonic-gate	A bug that caused HP terminals to mess up in insert mode when inserting
731*0Sstevel@tonic-gate	before a tab which follows 7 or fewer characters at the beginning of a
732*0Sstevel@tonic-gate	line (such as a tags file) has been fixed.
733*0Sstevel@tonic-gate
734*0Sstevel@tonic-gate	It is now possible to include control D in your EXINIT or .exrc.
735*0Sstevel@tonic-gate
736*0Sstevel@tonic-gate	A bug which caused the screen to mess up when a glob (such as xx*)
737*0Sstevel@tonic-gate	doesn't match anything has been fixed.
738*0Sstevel@tonic-gate
739*0Sstevel@tonic-gate	The editor now checks for extra junk after a /r.e./ from visual
740*0Sstevel@tonic-gate	(other than the allowed z command) and beeps if any is found.
741*0Sstevel@tonic-gate	Previously it was just ignored.
742*0Sstevel@tonic-gate
743*0Sstevel@tonic-gate	A bug that caused j and k (up and down) to behave strangely after
744*0Sstevel@tonic-gate	an insertion has been fixed.
745*0Sstevel@tonic-gate
746*0Sstevel@tonic-gate	A bug which causes term to be displayed incorrectly and which
747*0Sstevel@tonic-gate	caused a crash when changing terminal type when there happened
748*0Sstevel@tonic-gate	to be several |'s and a long string in genbuf has been fixed.
749*0Sstevel@tonic-gate	This bug was introduced in ex 2.9.
750*0Sstevel@tonic-gate
751*0Sstevel@tonic-gate	The patch for echo lines longer than 80 characters has been
752*0Sstevel@tonic-gate	repaired to do "Hit return to continue" after such lines and
753*0Sstevel@tonic-gate	print the entire output.
754*0Sstevel@tonic-gate
755*0Sstevel@tonic-gate	A bug that caused a messed up screen after a :sh command from
756*0Sstevel@tonic-gate	open mode has been fixed.
757*0Sstevel@tonic-gate
758*0Sstevel@tonic-gate	A bug which caused a tag request for a nonexistent tag to leave
759*0Sstevel@tonic-gate	the editor in nomagic mode has been fixed.
760*0Sstevel@tonic-gate
761*0Sstevel@tonic-gate	A bug which caused strange behavior if there is no default file
762*0Sstevel@tonic-gate	name when an autowrite save is attempted has been fixed.
763*0Sstevel@tonic-gate
764*0Sstevel@tonic-gate	A bug which caused the cursor to go to the wrong position when
765*0Sstevel@tonic-gate	^^D or 0^D is entered from column 2 in autoindent mode on terminals
766*0Sstevel@tonic-gate	that can backspace has been fixed.
767*0Sstevel@tonic-gate
768*0Sstevel@tonic-gateVersion 3.2 -- January 4, 1980
769*0Sstevel@tonic-gate
770*0Sstevel@tonic-gate	A bug that caused nomagic to be set if an error happened within
771*0Sstevel@tonic-gate	a tag command has been fixed.
772*0Sstevel@tonic-gate
773*0Sstevel@tonic-gate	A bug that caused put commands to beep after a macro containing
774*0Sstevel@tonic-gate	an error has been fixed.
775*0Sstevel@tonic-gate
776*0Sstevel@tonic-gate	The mapinput option has been placed in alphabetical order.
777*0Sstevel@tonic-gate
778*0Sstevel@tonic-gate	A bug that caused undo to undo more than one macro invocation
779*0Sstevel@tonic-gate	on the same line has been fixed.
780*0Sstevel@tonic-gate
781*0Sstevel@tonic-gate	On non VM/UNIX systems, the screen size has been increased to
782*0Sstevel@tonic-gate	allow a 40 X 80 Ann Arbor to be used.
783*0Sstevel@tonic-gate
784*0Sstevel@tonic-gateVersion 3.2 -- December 28, 1980
785*0Sstevel@tonic-gate
786*0Sstevel@tonic-gate	Several limits have been increased for VM/UNIX.  Longer lines,
787*0Sstevel@tonic-gate	more characters of file names, longer regular expressions, etc.
788*0Sstevel@tonic-gate	Huge files can now be edited directly.  Larger terminals (up to
789*0Sstevel@tonic-gate	66 lines) can be used.
790*0Sstevel@tonic-gate
791*0Sstevel@tonic-gate	An internal change has been made for VM/UNIX that causes error
792*0Sstevel@tonic-gate	messages to be stored directly instead of in a disk file.
793*0Sstevel@tonic-gate	This should cause faster response to errors.
794*0Sstevel@tonic-gate
795*0Sstevel@tonic-gateVersion 3.1.1 -- December 13, 1979
796*0Sstevel@tonic-gate
797*0Sstevel@tonic-gate	A bug that caused nested macros not to be undoable has been fixed.
798*0Sstevel@tonic-gate
799*0Sstevel@tonic-gate	A bug that caused pounding on the escape key on terminals with
800*0Sstevel@tonic-gate	arrow keys that send escape sequences to cause undo to mess up
801*0Sstevel@tonic-gate	has been fixed.
802*0Sstevel@tonic-gate
803*0Sstevel@tonic-gate	It is now acknowledged that macros cannot contain the put command.
804*0Sstevel@tonic-gate	This is due to the implementation of put - previously a put inside
805*0Sstevel@tonic-gate	a macro dumped a copy of the buffer instead of the desired text and
806*0Sstevel@tonic-gate	left the editor in a very strange state.  Now such a put just beeps.
807*0Sstevel@tonic-gate
808*0Sstevel@tonic-gateVersion 3.1 -- November 1, 1979
809*0Sstevel@tonic-gate
810*0Sstevel@tonic-gate	Versions from 3.1 up are too large to fit on pdp-11's.
811*0Sstevel@tonic-gate	(Special overlay software is expected to be available soon
812*0Sstevel@tonic-gate	for v7 pdp-11 Unix that will make it fit.) Version 2.9
813*0Sstevel@tonic-gate	is 3.1 with only the bug fixes and very few of the enhancements.
814*0Sstevel@tonic-gate	2.9 will fit on a pdp-11. Version 2.10 will come out and may
815*0Sstevel@tonic-gate	correspond to 3.2. (It turned out to correspond to 3.3)
816*0Sstevel@tonic-gate
817*0Sstevel@tonic-gate	For compatibility with ed:  's<newline>' may be used as a
818*0Sstevel@tonic-gate	command and means '&'.  If you set the option "edcompatible"
819*0Sstevel@tonic-gate	(abbr "ed") the presence or absence of g and c suffices is
820*0Sstevel@tonic-gate	remembered and can be toggled by repeating the suffices.  The
821*0Sstevel@tonic-gate	suffix "r" makes the substitution into "~" instead of "&".
822*0Sstevel@tonic-gate
823*0Sstevel@tonic-gate	A new command line option -w<n> sets the value of window before
824*0Sstevel@tonic-gate	starting ex. Hence: 'vi -w5 file' makes a quick change to a file
825*0Sstevel@tonic-gate	easier at 300 baud.
826*0Sstevel@tonic-gate
827*0Sstevel@tonic-gate	Arrow keys on terminals that send more than 1 character now
828*0Sstevel@tonic-gate	work.  Home up keys are supported as are the four directions.
829*0Sstevel@tonic-gate	Ex no longer looks at the ma= entry in termcap, but uses the
830*0Sstevel@tonic-gate	ku, kd, kl, kr, and kh entries.  (Note that the HP 2621 will
831*0Sstevel@tonic-gate	turn on function key labels, and even then you have to hold
832*0Sstevel@tonic-gate	shift down.  To avoid turning on the labels, and to give up the
833*0Sstevel@tonic-gate	function keys, use terminal type 2621nl instead of 2621.)
834*0Sstevel@tonic-gate
835*0Sstevel@tonic-gate	A parameterless macro facility is included from visual. Briefly,
836*0Sstevel@tonic-gate	there are two flavors of macros:
837*0Sstevel@tonic-gate		a) Put the macro body in a buffer register, say x. Then
838*0Sstevel@tonic-gate		   type @x to invoke it. @ may be followed by another @
839*0Sstevel@tonic-gate		   to repeat the last macro.
840*0Sstevel@tonic-gate		   This allows macros up to 512 chars.
841*0Sstevel@tonic-gate		b) Use the map command from command mode (typically in the
842*0Sstevel@tonic-gate		   .exrc file) as follows:
843*0Sstevel@tonic-gate			map lhs rhs
844*0Sstevel@tonic-gate		   where lhs will be mapped to rhs.
845*0Sstevel@tonic-gate		   There are restrictions: lhs's should be 1-keystroke
846*0Sstevel@tonic-gate		   (either 1 char or 1 function key) since they must be
847*0Sstevel@tonic-gate		   entered within 1 second. lhs no longer than 10 chars,
848*0Sstevel@tonic-gate		   rhs no longer than 100. To get " ", "\t", "|", or "\n"
849*0Sstevel@tonic-gate		   into lhs or rhs, escape them with ctrl V. (It may be
850*0Sstevel@tonic-gate		   necessary to escape the ctrl V with ctrl V if the map
851*0Sstevel@tonic-gate		   command is given from visual mode.)
852*0Sstevel@tonic-gate	For 1 shot macros it is best to put the macro in a buffer register
853*0Sstevel@tonic-gate	and map a key to '@r', since this will allow the macro to be edited.
854*0Sstevel@tonic-gate
855*0Sstevel@tonic-gate	Macros can be deleted with
856*0Sstevel@tonic-gate		unmap lhs
857*0Sstevel@tonic-gate
858*0Sstevel@tonic-gate	The boolean option "mapinput" (mi) will, if on, cause macros to
859*0Sstevel@tonic-gate	be mapped in input mode as well as command mode (in visual only).
860*0Sstevel@tonic-gate	For example, you can define ctrl T to be four spaces with
861*0Sstevel@tonic-gate		:map ^V^T_^V^V____
862*0Sstevel@tonic-gate		:set mi
863*0Sstevel@tonic-gate	where underlines represent spaces and the ctrl V's are necessary
864*0Sstevel@tonic-gate	to get ctrl chars and spaces past various levels, and make ^T be
865*0Sstevel@tonic-gate	a software tab that even works in the middle of a line.
866*0Sstevel@tonic-gate
867*0Sstevel@tonic-gate	If the lhs of a macro is "#0" through "#9", this maps the particular
868*0Sstevel@tonic-gate	function key instead of the 2 char # sequence, if the terminal has
869*0Sstevel@tonic-gate	function keys. This only works if termcap has function key entries
870*0Sstevel@tonic-gate	for the particular terminal. For terminals without function keys,
871*0Sstevel@tonic-gate	the sequence #x means function key x, as typed. As a special case,
872*0Sstevel@tonic-gate	on terminals without function keys, the #x sequence need not be
873*0Sstevel@tonic-gate	typed within one second. The character # can be changed by using
874*0Sstevel@tonic-gate	a macro in the usual way:
875*0Sstevel@tonic-gate		map ^V^I #
876*0Sstevel@tonic-gate	to use tab, for example. (This won't affect the map command, which
877*0Sstevel@tonic-gate	still uses #, but just the invocation from visual mode.)
878*0Sstevel@tonic-gate	The undo command will undo an entire macro call as a unit.
879*0Sstevel@tonic-gate
880*0Sstevel@tonic-gate	New commands in visual: ^Y and ^E. These glitch the screen up
881*0Sstevel@tonic-gate	and down 1 line, respectively. They can be given counts, controlling
882*0Sstevel@tonic-gate	the number of lines the screen is glitched. They differ from ^U
883*0Sstevel@tonic-gate	and ^D in that the cursor stays over the same line in the buffer
884*0Sstevel@tonic-gate	it was over before rather than staying in the same place on the
885*0Sstevel@tonic-gate	screen. (^Y on a dumb terminal with a full screen will redraw the
886*0Sstevel@tonic-gate	screen moving the cursor up a few lines.) If you're looking for
887*0Sstevel@tonic-gate	mnemonic value in the names, try this: Y is right next to U and
888*0Sstevel@tonic-gate	E is right next to D.
889*0Sstevel@tonic-gate
890*0Sstevel@tonic-gate	More new commands in visual: '&' is a synonym for ':&<cr>'.
891*0Sstevel@tonic-gate	'~' changes the case of the letter under the cursor and moves
892*0Sstevel@tonic-gate	to the next character.
893*0Sstevel@tonic-gate
894*0Sstevel@tonic-gate	Ex looks in your environment for EXINIT. If it finds it, that
895*0Sstevel@tonic-gate	is used instead of looking for your .exrc. This should make
896*0Sstevel@tonic-gate	entry into ex faster, along with the termlib feature of looking
897*0Sstevel@tonic-gate	for a termcap entry in TERMCAP.
898*0Sstevel@tonic-gate
899*0Sstevel@tonic-gateVersion 2.13 -- September 23, 1980
900*0Sstevel@tonic-gate
901*0Sstevel@tonic-gate	The provisions for changing the window size with a numeric
902*0Sstevel@tonic-gate	prefix argument to certain visual commands have been deleted.
903*0Sstevel@tonic-gate	The correct way to change the window size is to use the z
904*0Sstevel@tonic-gate	command, for example z5<cr> to change the window to 5 lines.
905*0Sstevel@tonic-gate
906*0Sstevel@tonic-gate	An undocumented "feature" which caused the ^^ command to return
907*0Sstevel@tonic-gate	to the previous tag, if in the current file, instead of the
908*0Sstevel@tonic-gate	previous file, has been removed.
909*0Sstevel@tonic-gate
910*0Sstevel@tonic-gateVersion 2.12 -- July 23, 1980
911*0Sstevel@tonic-gate
912*0Sstevel@tonic-gate	A change was made to the sys_errlist array in ex_subr.c so that
913*0Sstevel@tonic-gate	Berkeley V7 quotas will produce the right error message.
914*0Sstevel@tonic-gate
915*0Sstevel@tonic-gate	A couple of minor bug fixes were made to get the editor to
916*0Sstevel@tonic-gate	compile on version 6.  The option to use 1K BUFSIZ has been
917*0Sstevel@tonic-gate	deleted, since it is no longer used on our 1K system.
918*0Sstevel@tonic-gate
919*0Sstevel@tonic-gateVersion 2.11 -- June 24, 1980
920*0Sstevel@tonic-gate
921*0Sstevel@tonic-gate	The visual page motion commands ^F and ^B now treat any preceding
922*0Sstevel@tonic-gate	counts as number of pages to move, instead of changes to the
923*0Sstevel@tonic-gate	window size.  That is, 2^F moves forward 2 pages.
924*0Sstevel@tonic-gate
925*0Sstevel@tonic-gate	A :vi <file> command from visual mode is now treated the same
926*0Sstevel@tonic-gate	as a :edit <file> or :ex <file> command.  The meaning of the
927*0Sstevel@tonic-gate	vi command from ex command mode is not affected.
928*0Sstevel@tonic-gate
929*0Sstevel@tonic-gate	A read only mode now lets you guarantee you won't clobber your
930*0Sstevel@tonic-gate	file by accident.  You can set the on/off option "readonly" (ro)
931*0Sstevel@tonic-gate	and writes will fail unless you use an ! after the write.
932*0Sstevel@tonic-gate	Commands such as x, ZZ, and autowrite, and in general anything
933*0Sstevel@tonic-gate	that writes is affected.  This option is turned on if you invoke
934*0Sstevel@tonic-gate	ex with the -R flag.  A new link called "view" has been  created.
935*0Sstevel@tonic-gate	View is just like vi but it sets readonly.
936*0Sstevel@tonic-gate
937*0Sstevel@tonic-gate	The editor now supports certain terminals that use strings other
938*0Sstevel@tonic-gate	then \r and \n for return and linefeed by implementing the cr
939*0Sstevel@tonic-gate	and nl termcap options.  (Thanks to UCLA for these enhancements).
940*0Sstevel@tonic-gate
941*0Sstevel@tonic-gate	The termcap attribute ns is now checked for, and ex refuses to
942*0Sstevel@tonic-gate	go into visual mode on such a terminal unless it has sf.
943*0Sstevel@tonic-gate
944*0Sstevel@tonic-gate	If you change your start and stop characters to something other
945*0Sstevel@tonic-gate	than the default ^S and ^Q, vi now turns them off.  This causes
946*0Sstevel@tonic-gate	people who change them to escape not to lose so badly.
947*0Sstevel@tonic-gate	The quit character is once again turned off so that datamedias
948*0Sstevel@tonic-gate	which send ^\ for the right arrow key work.
949*0Sstevel@tonic-gate
950*0Sstevel@tonic-gate	If you type in an unmatched ) or } in showmatch mode, the editor
951*0Sstevel@tonic-gate	will now beep to warn you about your mistake.  The ) or } is
952*0Sstevel@tonic-gate	still accepted.
953*0Sstevel@tonic-gate
954*0Sstevel@tonic-gate	Editor scripts can now contain comments.  Begin the comments with "
955*0Sstevel@tonic-gate	(double quote).  Comments can be on their own line or come at the
956*0Sstevel@tonic-gate	end of command lines.  The comment continues to the end of the line.
957*0Sstevel@tonic-gate
958*0Sstevel@tonic-gate	The 3rd version of the USG tty driver is now supported, making it
959*0Sstevel@tonic-gate	possible on USG systems to interrupt redrawing the screen and to
960*0Sstevel@tonic-gate	not flush output when interruptable commands take place.
961*0Sstevel@tonic-gate
962*0Sstevel@tonic-gate	The rewind command has been added to the list of commands that
963*0Sstevel@tonic-gate	the autowrite option knows about.
964*0Sstevel@tonic-gate
965*0Sstevel@tonic-gate	A bug on the USG system where hanging up the phone causes more
966*0Sstevel@tonic-gate	than one SIGHUP to be sent has been compensated for.
967*0Sstevel@tonic-gate
968*0Sstevel@tonic-gate	A bug which caused a file that bombed out in the middle of
969*0Sstevel@tonic-gate	an edit command to be considered modified has been fixed.
970*0Sstevel@tonic-gate
971*0Sstevel@tonic-gate	The source file ex_io.c has been split into ex_io.c and
972*0Sstevel@tonic-gate	ex_unix.c to avoid a problem where many C compilers overflowed
973*0Sstevel@tonic-gate	the symbol table.
974*0Sstevel@tonic-gate
975*0Sstevel@tonic-gate	A bug which prevented turning off your prompt in your .exrc
976*0Sstevel@tonic-gate	has been fixed.
977*0Sstevel@tonic-gate
978*0Sstevel@tonic-gate	Some of the code internal to the editor has been rearranged
979*0Sstevel@tonic-gate	and some comments added.
980*0Sstevel@tonic-gate
981*0Sstevel@tonic-gate	The bug fix to the USG tty driver to output a null character
982*0Sstevel@tonic-gate	as padding at 1200 baud has been improved to output a DEL
983*0Sstevel@tonic-gate	at 1200 baud or above.
984*0Sstevel@tonic-gate
985*0Sstevel@tonic-gate	Terminals with small screens (less than 20 columns or less
986*0Sstevel@tonic-gate	than 5 lines) should now work.
987*0Sstevel@tonic-gate
988*0Sstevel@tonic-gate	A bug which prevented you from entering the character DEL
989*0Sstevel@tonic-gate	into the buffer if you changed your interrupt character to
990*0Sstevel@tonic-gate	something else besides DEL has been fixed.
991*0Sstevel@tonic-gate
992*0Sstevel@tonic-gate	A bug which caused things like d) and d} to miss the last
993*0Sstevel@tonic-gate	character when they should have deleted to the end of the
994*0Sstevel@tonic-gate	buffer has been fixed.
995*0Sstevel@tonic-gate
996*0Sstevel@tonic-gate	A bug which caused the last character to be lost when you
997*0Sstevel@tonic-gate	read in a file with no newline at the end of the last line
998*0Sstevel@tonic-gate	has been fixed.
999*0Sstevel@tonic-gate
1000*0Sstevel@tonic-gate	A bug that caused garbage to be in the buffer if the temp file
1001*0Sstevel@tonic-gate	overflowed has been fixed.
1002*0Sstevel@tonic-gate
1003*0Sstevel@tonic-gate	The character | can now be escaped with \| in file names.
1004*0Sstevel@tonic-gate
1005*0Sstevel@tonic-gate	A bug which caused the editor to not work if the tab stop size
1006*0Sstevel@tonic-gate	did not divide the screen width has been fixed.
1007*0Sstevel@tonic-gate
1008*0Sstevel@tonic-gate	A bug on HP terminals that caused the screen to be messed up if
1009*0Sstevel@tonic-gate	you scrolled up something that began the same way as the echo line
1010*0Sstevel@tonic-gate	has been fixed.
1011*0Sstevel@tonic-gate
1012*0Sstevel@tonic-gate	An old ed bug which caused globals to fail when they did a substitute
1013*0Sstevel@tonic-gate	on the next line has been fixed.
1014*0Sstevel@tonic-gate
1015*0Sstevel@tonic-gate	The % operator will now find matching square brackets the same way
1016*0Sstevel@tonic-gate	it does parentheses and braces.  It will not display them in
1017*0Sstevel@tonic-gate	showmatch mode, however, and will not use a ] to match all ('s.
1018*0Sstevel@tonic-gate
1019*0Sstevel@tonic-gate	Ex looks in your environment for EXINIT. If it finds it, that
1020*0Sstevel@tonic-gate	is used instead of looking for your .exrc. This should make
1021*0Sstevel@tonic-gate	entry into ex faster, along with the termlib feature of looking
1022*0Sstevel@tonic-gate	for a termcap entry in TERMCAP.
1023*0Sstevel@tonic-gate
1024*0Sstevel@tonic-gate	Internally, it is possible to turn off about a dozen different
1025*0Sstevel@tonic-gate	options when compiling the editor to make it fit in 64K.
1026*0Sstevel@tonic-gate	See the makefile for a list of options.
1027*0Sstevel@tonic-gate
1028*0Sstevel@tonic-gateVersion 2.10 -- February 2, 1980 (Corresponds to 3.3)
1029*0Sstevel@tonic-gate
1030*0Sstevel@tonic-gate	The default window sizes have been changed.  At 300 baud the
1031*0Sstevel@tonic-gate	window is now 8 lines (was 1/2 the screen size).  At 1200 baud
1032*0Sstevel@tonic-gate	the window is now 16 lines (was 2/3 the screen size, which was
1033*0Sstevel@tonic-gate	usually also 16 for a typical 24 line CRT).  At 9600 baud the
1034*0Sstevel@tonic-gate	window is still the full screen size.  Any baud rate less than
1035*0Sstevel@tonic-gate	1200 behaves like 300, any over 1200 like 9600.
1036*0Sstevel@tonic-gate
1037*0Sstevel@tonic-gate	A new command mode command "x" (for "xit") has been added.  This
1038*0Sstevel@tonic-gate	is the same as wq but will not bother to write if there have been
1039*0Sstevel@tonic-gate	no changes to the file.  The command letter was chosen for
1040*0Sstevel@tonic-gate	convenience and compatibility with hed.
1041*0Sstevel@tonic-gate
1042*0Sstevel@tonic-gate	The command "ZZ" from vi is the same as ":x<cr>".  This is
1043*0Sstevel@tonic-gate	the recommended way to leave the editor.  Z must be typed twice
1044*0Sstevel@tonic-gate	since this is two easy to type by accident and has such severe
1045*0Sstevel@tonic-gate	effects if unintentional.
1046*0Sstevel@tonic-gate
1047*0Sstevel@tonic-gate	The options w300, w1200, and w9600 can be set.  They are synonyms
1048*0Sstevel@tonic-gate	for "window", but only apply at 300, 1200, or 9600 baud, resp.
1049*0Sstevel@tonic-gate	Thus you can specify you want a 12 line window at 300 baud and
1050*0Sstevel@tonic-gate	a 23 line window at 1200 baud with
1051*0Sstevel@tonic-gate		:set w300=12 w1200=23
1052*0Sstevel@tonic-gate
1053*0Sstevel@tonic-gate	The "q" command from visual no longer works at all.  You must
1054*0Sstevel@tonic-gate	use "Q" to get to ex command mode.
1055*0Sstevel@tonic-gate
1056*0Sstevel@tonic-gate	The editor no longer uses nondestructive space, except when in
1057*0Sstevel@tonic-gate	insert mode.  It instead prints the character it would be
1058*0Sstevel@tonic-gate	moving over.  This is a real win on terminals that use an
1059*0Sstevel@tonic-gate	escape sequence to nd space.
1060*0Sstevel@tonic-gate
1061*0Sstevel@tonic-gate	A minor incompatibility with the v7 ed has been fixed.  Previously,
1062*0Sstevel@tonic-gate	to do a global substitute with an escaped newline in the rhs, you
1063*0Sstevel@tonic-gate	had to put two \'s in ex and one in ed.  Ex now accepts the single
1064*0Sstevel@tonic-gate	form as well as the double form.  For example, instead of
1065*0Sstevel@tonic-gate		g/foo/s//foo\\
1066*0Sstevel@tonic-gate		bar/g
1067*0Sstevel@tonic-gate	(which still works), you can now type, as in ed,
1068*0Sstevel@tonic-gate		g/foo/s//foo\
1069*0Sstevel@tonic-gate		bar/g
1070*0Sstevel@tonic-gate	This means that the following ex command, which used to "work":
1071*0Sstevel@tonic-gate		g/foo/s//foo bar\
1072*0Sstevel@tonic-gate		.+1,/mumble/d
1073*0Sstevel@tonic-gate	won't work anymore unless you put the trailing / on the substitution.
1074*0Sstevel@tonic-gate	This usage is pretty obscure anyway.
1075*0Sstevel@tonic-gate
1076*0Sstevel@tonic-gate	A bug which caused the command "g/pattern" to print an error
1077*0Sstevel@tonic-gate	message if "pattern" occurred on the last line has been fixed.
1078*0Sstevel@tonic-gate
1079*0Sstevel@tonic-gate	Limits have been raised so that an Ann Arbor terminal can be used,
1080*0Sstevel@tonic-gate	and long tags can now be accommodated.
1081*0Sstevel@tonic-gate
1082*0Sstevel@tonic-gate	A bug that caused HP terminals to mess up in insert mode when inserting
1083*0Sstevel@tonic-gate	before a tab which follows 7 or fewer characters at the beginning of a
1084*0Sstevel@tonic-gate	line (such as a tags file) has been fixed.
1085*0Sstevel@tonic-gate
1086*0Sstevel@tonic-gate	A bug which causes term to be displayed incorrectly and which
1087*0Sstevel@tonic-gate	caused a crash when changing terminal type when there happened
1088*0Sstevel@tonic-gate	to be several |'s and a long string in genbuf has been fixed.
1089*0Sstevel@tonic-gate	This bug was introduced in ex 2.9.
1090*0Sstevel@tonic-gate
1091*0Sstevel@tonic-gate	The patch for echo lines longer than 80 characters has been
1092*0Sstevel@tonic-gate	repaired to do "Hit return to continue" after such lines and
1093*0Sstevel@tonic-gate	print the entire output.
1094*0Sstevel@tonic-gate
1095*0Sstevel@tonic-gate	A bug that caused a messed up screen after a :sh command from
1096*0Sstevel@tonic-gate	open mode has been fixed.
1097*0Sstevel@tonic-gate
1098*0Sstevel@tonic-gate	A bug which caused a tag request for a nonexistent tag to leave
1099*0Sstevel@tonic-gate	the editor in nomagic mode has been fixed.
1100*0Sstevel@tonic-gate
1101*0Sstevel@tonic-gate	A bug which caused strange behavior if there is no default file
1102*0Sstevel@tonic-gate	name when an autowrite save is attempted has been fixed.
1103*0Sstevel@tonic-gate
1104*0Sstevel@tonic-gate	A bug which caused the cursor to go to the wrong position when
1105*0Sstevel@tonic-gate	^^D or 0^D is entered from column 2 in autoindent mode on terminals
1106*0Sstevel@tonic-gate	that can backspace has been fixed.
1107*0Sstevel@tonic-gate
1108*0Sstevel@tonic-gate	In order to get 2.10 to fit on a v7 pdp-11, the following features
1109*0Sstevel@tonic-gate	have been deleted:
1110*0Sstevel@tonic-gate		The MASTERTAGS feature (undocumented use of /usr/lib/tags
1111*0Sstevel@tonic-gate		as an alternate tag file)
1112*0Sstevel@tonic-gate		Checking that a file being read in is an ascii file.
1113*0Sstevel@tonic-gate		Turning off ^Q/^S on a v7 system.
1114*0Sstevel@tonic-gate
1115