Annotation of researchv10dc/cmd/ex/ex.news, revision 1.1.1.1

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

unix.superglobalmegacorp.com

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