Subversion Repositories planix.SVN

Rev

Details | Last modification | View Log | RSS feed

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