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