HELP NEWS.5

July 29th 1982
    VEDLMR_PRINT_IN_FILE
    If this has as its value a file name, then that file will be used for all
    output, including errors. I.e. giving it a file name makes LMR behave
    like CMR.

    VEDAUTOWRITE
    Instead of counting characters typed in, this will count changes made to
    a file. The variable VEDCHANGED, associated with each file, instead of
    being just TRUE or FALSE will be a counter. When it exceeds VEDAUTOWRITE,
    the file in question will be written.

    MOVE_SUBVECTOR(n1,vector1,n2,vector2,number)
    See HELP MOVE_SUBVECTOR for details.
    (Various VED procedures are being re-written to use this, for greater
    clarity and compactness. There may be some hiccups...)

July 28
    VED_LJMR - left justify marked range, altered so that if VEDLEFTMARGIN is
    0, then ALL lines are pulled right up to left margin. otherwise at most
    VEDLEFTMARGIN leading spaces are deleted.

    VERSION 5.0
    CONS_WITH <constructor> { ...... } causes the brackets {...} to build
    something other than a vector. See HELP CONS_WITH.

    The internal representation of FALSE and various other constants has been
    changed, leading to some compression and speeding up of the system.

    MATCHES changed so that restrictions on pattern variables can be
    procedures. I.e. they don't have to be names of procedures.

    VED SEARCH changed so that '@a' matches beginning of line, '@z' matches end
    of line in search  patterns. '@n' is accepted instead of '@a'. To match a
    line break use '@z@a'. Use '@n' in replacement strings to insert a new
    line. In search pattern '@n' is equivalent ONLY to '@a'.

July 26
    Experimental debugging aid. See SHOWLIB DEBUG.

    ISIN generalised to <pattern> ISIN <list>. See HELP ISIN.
    AREIN provided <list of patterns> AREIN <list>. See HELP AREIN.

July 23 some time after about 18.45
    PROLOG improved. There is now no difference between RECONSULT and
    COMPILE. See HELP PROLOG, HELP PROLOGPOP, HELP PROLOGDETAILS


    VED ENTER YANK
    Generalised. This can now take a numerical argument, representing a line,
    after which text is to be yanked in. The line may be 0, for top of file.

    SHOWLIB now uses POPUSESLIST to find the file.

    VEDVEDEFAULTS. Changing this was a mistake. It must be called before the
    file is read in, so instead VEDFILEPROPS will be introduced.
    The default value will be false. This is not going to be used by VED. So
    when vedinitfile is called it can use this to discover whether it was the
    first time, and if so change it. It can be used to store other
    information about the file to, if you wish.

    You can tell when the change has been made by identprops("vedfileprops")
    /= undef.

sorry!
Aaron
22 July
    CHARIN changed to do SETPOP if CTRL-G is read in.

21 July
    POPREADY no longer prints a 'Leaving message'.

    NEW ENTER VED commands (mainly for old POP2/PED users). N defaults to 1
    DC N    delete N characters - to left if negative
    DE      delete to end of line
    DL N    delete N lines, above if negative. Always includes current line.
    DW N    delete N words, left if negative.
    MC N    Move N characters to right, -N to left if negative
    MI N    Move N items to right, -N to left if negative.
    MW N    like MW but uses vedwordright if N positive
    LJMR    left justify marked range. Shifts lines with leading spaces left
            by up to VEDLEFTMARGIN. Can then be followed by ENTER J to re-
            justify with indentation. (generalised - see above)

    DATAFILE - new version. Copes with arrays and records.

    SYSREPEAT(num,proc) runs proc num times.

    ENTER DEL
        altered. Now objects if the file name isn't of form VEDDIR.???

    NEXTCHAR(item repeater)
    Returns or updates the characters to be used by item repeater. See HELP
    NEXTCHAR

    HELP files for GO_ON and CONTROL added.

    New DCL command MULTI. It asks you for a directory name and gives a
    report on 'multiple' copies of files in that directory. See HELP MULTI

    CHAINTO(target,procedure), CHAINFROM(target, procedure)
    These will unwind to the target procedure, then run the procedure.
    In the case of CHAINFROM it will first exit from the target procedure.

    VEDWIGGLE(line,col)
    Generalised so that if line = 0 then use the status line.

    CALLSTACKLENGTH(n)
    Returns the calling stack length of the n'th caller (like CALLER(n)).
    The number is essentially meaningless, but can be used on the assumption
    that CALLSTACKLENGTH behaves consistently.

    JUMPOUT (as in POP2) CATCH and THROW will soon be in library

20 July
    HELP VEDWORDS
    Broken down into HELP VEDPROCS and HELP VEDVARS

    VED ENTER MM
    'Move to Matching end'. E.g. if cursor is to left of "if" move to
    after "endif". If to left of "(" move to after ")" etc.

17 July
    VED ENTER W <file>
    Changed so that even if current file isn't writeable it lets your write
    to the specified name.
16 July
    The PUSH key is changed to use a new procedure VEDPUSHKEY which
    ensures that if vedpositionstack has more than 5 saved positions, it
    will be truncated. Thus the 5 most recently pushed and non-popped
    positions will be available. vedpositionpush() remains as before, and
    can be used in procedures which don't want the stack truncated.

    If a VED ENTER command produces a result, this is now printed out
    as a message between curly brckets. (Will help to detect VED bugs too.)

    VEDREPEATER()
    This is a character producer for the current file. It returns the
    character under the cursor and moves it on. At the end of the file it
    returns TERMIN.

    VEDNEXTITEM()
    This returns the next item after the cursor (ignoring end of line
    comments, etc. It leaves the cursor unchanged.

    ENTER SMR
    Sort marked range. Deletes marked range. Sorts the strings. Re-inserts
    them.

15 July
    VEDKEYPROC(string) -> procedure
    If string contains the sequence of characters which would be generated by
    a key, this returns the procedure which VED would then execute. Does not
    work for all VDUs. Gives an error if the string as too few or too many
    characters to define a key.

    VED ENTER HKEY
    Press a key then ESC three times and this tells you the name of the
    corresponding procedure. Uses VEDKEYPROC. Same limitations.

    VED ENTER DK
    VED ENTER DM
    If you say you want the definition to be permanent, these now use the
    file 'poplib:vedinit.p', rather than 'vedinit.p' in the current
    directory.

    POP_CHAROUT_COL
    This will indicate the current print column for CHAROUT.
    POP_CHARERR_COL, similarly for CHARERR

    VED is to be changed so that if there is an error while it is writing a
    file, it will close the file. This will prevent certain occurrences of
    'Locked file' when users try to purge files.

    BUG in VEDINKEYS fixed. It could not handle the character '

    The DELV command is now available as a macro inside POP11 and as a DCL
    command.
    DELV FOO.BAZ 32 66 85
        Deletes versions 32, 66 and 85 of file foo.baz

    VED ENTER DCL
    This has been confused with VED ENTER :DLC (which gets DCL to read
    commands from the terminal), and is therefore replaced with
        VED ENTER DODCL
    which will treat all lines in the current file as input to DCL.
    VED ENTER DCL prints a message.


1982
13 July
    ISSUBITEM(word or string, start location, string) -> false or location
    This is like ISSUBSTRING, except that it checks that the first argument's
    beginning and end are at item boundaries in the string.

    At last ENTER MCP and derivatives makes use of a proper character
    repeater so will find opening and closing brackets where it should.
    Please report any problems with JCP LCP CCP

    VEDRANGEREPEATER(line1,line2) -> rep
    returns a character repeater for the portion of the current file between
    lines line1 and line2. rep is a closure whose frozval is a record whose
    cont is a pair whose front is a column number and whose back is a list
    of the remaining strings from which characters are to come.

    POPINICOM has a translation of SYS$LOGIN, instead of
    assuming that the user's login directory has the same name as the user.

13 JULY
    TEACHDIR() and HELPDIR() withdrawn.
    Do TEACH INDEX, or HELP INDEX, instead.

    RECORDCLASS and VECTORCLASS may now be followed by the word "constant",
    in which case the identifiers they declare will be made constants.

    FILE is no longer autoloadable. Do USES FILE;, or LIB FILE; to make the
    FILE macro available. See HELP FILE;

    DISASTER INTERRUPTS
    If you are forced to interrupt a program with CTRL-Y. You can re-enter
    POP11 and force a SETPOP by typing to DCL:
            $ SETPOP
    (VMS ain't quite so bad after all....)

    POPREADY
    Altered so that typing CTRL-G will force an immediate SETPOP (as in other
    POP2 systems).

    ENTER VED H <string>
    Will find a help file on topics related to <string> and may offer you
    some options. (Thanks to Jon Cunningham)

    ENTER VED VH <string>
    Will try to find you information about a VED command related to <string>

    SYSTRANSLATE(string)
    Translates a logical name recursively. Returns a string or false if no
    translation
12 July
    ENTER VED MP generalised so that if it starts on ')' it searches left for
    '('. If between '(' and ')' it will find the '('.

    Entry for sysSYNTAX put into REF SYSPROCS

    RECORDCLASS and VECTORCLASS modified so that they don't declare new
    identifiers as constants.

    RECORDCLASS altered to allow commas between field specifiers.

9 JULY
    POP11 Startup speeded up by dispensing with [POP.POP]INIT.P

    ENTER SWL (swap word left) and ENTER SWR (swap word right)
    See HELP SWL and HELP SWR

    ENTER MCP and derivatives (LCP, JCP) are cleverer now.
    They will accept 'function' and 'end' as well as 'define' and 'enddefine',
    (for compatibility with POP2) and will no longer require the closing
    'end' or 'enddefine' to be at the beginning of a line.

    ENTER MP
    'match parenthesis'. Moves cursor to the next '(', then immediately
    finds its matching ')'. Can be defeated by quotation in lists.
    (Will be generalised to find matching left parenthesis if it starts on
        ')' )

    FOREACH and FOREVERY extended to allow IN clause (see help files)
8 July
    VEDINASCII altered so as not to return null characters (=0).
    RAWCHARIN can still be used for totally realistic input

    SYSOBEYLIST has been generalised and cleaned up. E.g. commands like
        $ show quota
    will now work. A corrollary is that each DCL command which had to
    take input from the terminal now has to be prefaced by a suitable
    assignment. For this purpose use SYSOBEYCOMMANDS, which takes a list of
    strings.

7 July
    POPREADY ALTERED
    Interrupts now cause another level of popready, except when interrupting
    just after an interrupt, in which case you return to previous level.

    VEDAUTOWRITE and VEDVERSIONS made to behave more consistently.

6 July
    New version of PROLOG.

    The file HELP HELPFILES replaces HELP SYSWORDS as the 'top-level'
    system help file. There has been some additional re-structuring of
    help files.

    VEDOUT has been generalised at the request of its (only?) user to
    take two extra arguments. See HELP VEDOUT.
5 July
    The list VEDNONBREAKFILES specifies file extensions for which
    VEDBREAK should be set FALSE. Default is ['.p' '.com']

    If VEDVERSIONS is an integer, then PURGE/KEEP=VEDVERSIONS is called
    after each file is written.

    If POP_OPTIMISE is true then the compiler does an extra optimisation
    pass.

    Experimental version of POP11 installed with the following features:
    SYSPRWARNING
    now defined to print message and then add the new variable onto the list
    POPWARNINGS, unless it is FALSE. POPWARNINGS will be a list of words. To
    suppress this do:    FALSE -> POPWARNINGS

    SYSPRMISHAP
    Prints the message then adds an abbreviated version of the mishap message
    onto the list POPMISHAPS. POPMISHAPS will be a list of lists of strings.
    To suppress this do: FALSE -> POPMISHAPS

    ENTER LMR and derivatives will no longer put warnings or error messages
    into the file, unless you make vedlmr_errs_in_file TRUE. The default
    will be FALSE.

    ENTER LMR and derivatives will not put printout into the file if the value
    of vedlmr_print_in_file is FALSE. The default is TRUE.

    HELP LMR updated

2 July
    Some new HELP files
    INITIAL, SYSSAVEINCR, SYSRESTOREINCR added to SYSRESTORE

    Also some new DOC files. [POP.SRC]AAREAD.ME has been shortened, and the
    removed portions split among DOC and HELP files.


    If VEDAUTOWRITE is an integer, then whenever that number of changes has
    has been made to a file it will be written.

29 June 1982
    PROLOG_UNIFY speeded up

    VED_YANK (and derivatives, e.g. VED_TR, and move marked range)
    Altered so that if the range is bigger than a window-full, then
    VED no longer shows each line being inserted.

28 June
    POPLASTITEM
    The value of this is the last item read by the compiler

25 June

    N.B. The use of files INIT.P and VEDINIT.P will change to be
        as described in HELP POPLIB. VED will no longer use POPLIBLIST
        to look for VEDINIT.P

    EXPLODE, APPDATA, and DATALIST will work on arrays

    EXITTO and EXITFROM speeded up

    VEDINDENTSTEP, like VEDNOTABS and VEDLEFTMARGIN, will have different
    values for each file. The default for VEDINDENTSTEP will be set at 4 but
    can be over-ridden for individual files by VEDVEDDEFAULTS or VEDINITFILE.
    Altering the value in VEDINIT.P will alter the DEFAULT globally.
    (At present it needs to be done by hand every time you go back to a file.)

    ARCTAN is now built in. Also LOG, EXP.
    The operation ** is extended to allow decimal powers. If the both
    arguments are integers, an integer will be returned.

    VEDSETONSCREEN(file record, string)
    altered so that if string = '' then the status line of current file and
    new file are not redisplayed.

    VEDINITFILE is called every time a file is set on the screen

25 June
    QUITIF generalised so that
        QUITIF(<condition>)(3) jumps out of 3rd enclosing loop
        You can't have a variable in place of the number.
22 June
    VEDDO(string)
    Obeys string as if it had been typed on the command line.

19 June
    VEDVEDEFAULTS is now user definable. Default is IDENTFN.
    It is called for every new file just before the file is read
    in (or a new one started). It can be used to over-write default
    values e.g. for VEDBREAK, VEDSTATIC, etc.
16 June
    TRACE is modified so that commas are ignored instead of producing an
    error. e.g. TRACE FOO, BAZ;

    ENTER VED LMR
    Now doesn't give full error messages for the most common syntax errors.
    Instead it puts the message on the status line, and indicates which
    HELP file gives more information.
    (The same applies to LCP, and CTRL-D).

15 June
    A lot of internal procedures are being re-written using an inherently
    safer new 'purely local' variable type (not available to users).

    The vedprocedures VED_MBP and VED_MEP, which mark beginning and end of
    current procedure have been changed so that they assume that if the
    'define' or 'enddefine' is not at the beginning of a line, then it is not
    a procedure boundary. This affects all commands which use them, including
    LCP, MCP, JCP, CCP. The advantage is that nested procedures can now be
    used. The disadvantage is that occasionally the beginning or end of a
    procedure will not be found because it is indented.

    Library procedure WORDSWITH(word or string) returns an alphabetically
    ordered list of the words in current dictionary which have the the word or
    string as a substring. See HELP WORDSWITH.

    LIB PROFILE has been extended to allow the list PROFILE_EXCLUDE.
    See help PROFILE.

    VED ENTER GS (or GSR or GSP)
    If given no argument now causes argument from last time to be displayed.

    VEDPROCESS()
    This procedure can now be called by user procedures. It will not itself
    refresh the screen (VEDREFRESH()) but will process input as if in VED.
    See news about VEDEDITOR below.

    POP_EXIT_OK is initially true. If it is made false, then when pop11 exits
    an error condition exists. This can be used by DCL files to decide
    whether a call of POP11 was successful or not

    SYSDELETE(file)
    If file exists it is deleted and TRUE returned, otherwise FALSE.
    N.B. Does not accept wild cards.

    The VED ENTER SEND and VED ENTER FDIR commands will be modified so that
    they delete the files they create.
12 June
    POPVERSION  has a string which gives version and creation time of
    the POP11 system.

    POPHEADER is either false, if the POP11 header string has been
    printed out, or else it is the string.

    SYS_PURGE_TERMINAL can be applied to a terminal device, e.g.
    POPDEVRAW, POPDEVIN POPDEVOUT to purge its input buffer.
    This is done every time setpop is called.

    New command HELPFOR a POP11 macro. See HELP HELPFOR

11 June
    VED ENTER WTYPE
    Causes information about the current word to be displayed, e.g. its
    identprops and type of its VALOF if its an ordinary variable.

    HELP SYSWORDS has been shortened. New files:  HELP LIBRARIES and
    HELP POPVARS. The latter will be further broken down.

10 June
    System directories in [pop.src] re-arranged: system building .P files
    are put into a sub-directory, to avoid confusion with source files.

    VED ENTER GSP/string1/string2
        Does global substitution in the current procedure.

    Interrupting whilst a file is read in no longer leaves the system in an
    inconsistent state.

    The operations DIV and REM have been made to check their arguments.

    Re-arranging the way registers are used in the system has slightly
    speeded things up.
7 June
    POP11 has been changed so that if it has the character """ on the command
    line when it is run, the rest of the line is compiled. Thus it is now
    possible to type things like
        $pop11 "99 * 5 =>
    To do a calculation.
    After the string following " is compiled, POP11 exits. To prevent this,
    the procedures called can assign SETPOP to INTERRUPT.

    When POP11 is run in this mode, it does not compile either the users
    INIT.P, or the SYSTEM version in [POP.POP]. This can be forced by calling
    SYSINITCOMP. Thus, the DCL VED command has been redefined as
      ved :== $use$pop:[pop.pop]pop11 """sysinitcomp(); ved

    (The three quotes are necessary because of the way DCL works.)

    A DCL command, $DO has been added so that POP11 can be run as a desk
    calculator, e.g.
        $DO 99 * 5 =>

    Changes to VED
    VEDEDITOR(defaultprocedure,filename)
        Can now be called either inside or outside ved
        The library procedure EDIT can be simplified
        Its behaviour depends on whether VEDEDITING is true.
        It is set true inside VEDEDITOR.

    ved_xup()
        Has been put into the system. It scrolls the other window up.
        Can be invoked by ESC BS. (Compare ved_xdn, and ESC LF)

    vedtabright()
        Moves cursor one tab stop right, without overwriting anything.
        Controlled by vedindentstep.
        Can be invoked by ESC TAB.
        In STATIC mode, pressing TAB invokes vedtabright.

    The next two additions are experimental.
    ESC CTRL-A  Now does UP-SCREEN
    ESC CTRL-Z  Now does DOWN-SCREEN

    When you type VED commands, the command, but not the argument, will be
    translated to lower case. Thus, all commands are available in upper case.

    VEDCHARUPLOTS and VEDCHARDOWNLOTS now use VEDWINDOWLENGTH DIV 3 to
    decide how far to move.
    VEDCHARLEFTLOTS and VEDCHARRIGHTLOTS use VEDSCREENWIDTH DIV 4.

    VED ENTER MARGIN
    Changed so that if there is no argument, the left margin is set to be
    where the cursor is.

5 June
    To make the system easier to export to different systems, and more
    flexible, some directories now have logical names,as follows:
        use$pop:[pop.lib.auto] -->   popautolib:
        use$pop:[pop.lib.lib]  -->   popliblib:
        use$pop:[pop.lib.ved]  -->   popvedlib:
        use$pop:[pop.pop]      -->   popsys:
4 June
    POP11 version 4.2 has various extensions and alterations
    RAWCHAROUT and RAWCHARIN are available whether or not you've used VED.
    (Previously VEDINASCII and VEDOUTASCII could only be used after VED had
    been used).

    RAWCHAROUT is buffered, like CHAROUT. In both cases the BUFFER is
    flushed by applying the procedure to 0, e.g. RAWCHAROUT(0);
    For the present, for generality, RAWCHARIN flushes only RAWCHAROUT, and
    CHARIN flushes only CHAROUT. So users have to be clear about what gets
    flushed when.

    The gobal variable POP_BUFFER_CHAROUT can be made false to prevent
    CHAROUT being buffered.

    The place of the old VEDDEVICE is now taken by POPDEVRAW if you are in
    the habit of defining procedures which use it.

    POPNEWLINE now behaves slightly differently. The itemiser remembers the
    last character if it was a newline character. (Previously it used to
    throw it away). So if POPNEWLINE is true, then the word newline will be
    returned by the itemiser in such cases, whereas previously it would not.
    This should simplify some library macros like LIB and DIR, etc.

3 June
    REF SYSPROCS describes a new facility for saving and restoring part of an
    image, using SYSSAVEINCR and SYSRESTOREINCR.

2 June 1982
    RAWCHAROUT and RAWCHARIN added. VEDINASCII and VEDOUTASCII will be
    defined in terms of them.

    POPDEVRAW is now the device for raw input and output.

    Fixed scrolling bug in LIB V200GRAPH; LIB ACTIVE works better now.

        For older news, see HELP NEWS.4
