Annotation of 43BSDReno/usr.bin/ex/READ_ME, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.