REF VEDVARS Dan Perri & Aaron Sloman, 1989 Updated John Gibson, Feb 1995 COPYRIGHT University of Sussex 1995. All Rights Reserved. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> <<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>> <<<<<<<<<<<<<<<<<<<<< VED GLOBAL VARIABLES >>>>>>>>>>>>>>>>>>>>>> <<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< This REF file lists most of the global variables used by Ved. See REF * VEDPROCS for a description of Ved procedures. CONTENTS - (Use <ENTER> g to access required sections) 1 Introduction 2 Ved General Global Variables 3 Variables Associated With Each Ved File 4 Variables Associated With Ved Search and Substitution 5 Special Character Variables 5.1 General 5.2 Status Line 5.3 Cursors --------------- 1 Introduction --------------- This file deals with the global variables which are used by Ved. For information on other aspects of Ved see: REF * DOCUMENTATION (Online documentation) REF * VEDCOMMS (Ved <ENTER> commands) REF * VEDPROCS (Procedures used to implement Ved) REF * VEDTERMINALS (Screen control and key mappings) REF * VEDSEARCH (Search and replace in Ved) See also REF * WVED for variables and procedures controlling windowed versions of Ved, i.e. XVed. ------------------------------- 2 Ved General Global Variables ------------------------------- The following variables represent the state of the editor, or control its behaviour. Variables concerned with search and substitution, or graphic characters on the screen, are listed in a different section of this file. See also the next section on variables representing the state of each file. ved_char_in_stream -> list [variable] list -> ved_char_in_stream List of buffered characters, strings or action procedures used by * vedinascii and * vedgetinput. If this is non-empty, vedgetinput and vedinascii will take action procedures/characters from it first before calling vedscr_read_input. See Ved Input and Output in REF * VEDPROCS * vedinput provides a convenient way to add items to ved_char_in_stream. ved_last_char -> char [variable] char -> ved_last_char The last character read in by * vedprocesschar or * vedgetproctable (and, where appropriate, inserted by * vedinsertvedchar). ved_nextsame_dot -> bool [variable] bool -> ved_nextsame_dot The boolean value controls whether ved_nextsame considers lines that start with a dot as candidates for being the same. The default is false. See HELP * ved_nextsame ved_nextsame_limit -> int [variable] int -> ved_nextsame_limit The value of this variable controls searching by ved_nextsame. See HELP * ved_nextsame ved_pop_back_file -> bool_or_string [variable] bool_or_string -> ved_pop_back_file Controls the behaviour of Ved after successful completion of one of the compilation commands ved_c, ved_c1, ved_x or ved_x1 (described in REF * VEDCOMMS). If the value of ved_pop_back_file is a string, then after compilation Ved will return to that named file, creating a new buffer if necessary; if the value is <true> then Ved will return to the file from which the compilation command was invoked; if <false> (the default) then Ved will go wherever the output of the compilation went: normally, output bypasses Ved and goes direct to the terminal (the base window in XVed) in which case Ved will exit and return you to the top-level prompt, but you can change the output destination by assigning to the variable ved_chario_file. ved_runtime_actions [variable] List of actions (procedures) to be executed when Ved is first run. See the entries for vedsetup and ved_runtime_apply in REF * VEDPROCS for more details. vedalwaysask -> bool [variable] bool -> vedalwaysask Holds a boolean which is used to determine whether or not Ved files are to be automatically written on exit from Ved. If true then Ved files are not automatically written when you leave Poplog. Default is false, i.e. files are written if changed vedargument -> string [variable] string -> vedargument When an <ENTER> command is obeyed, anything after the command name is placed in vedargument as a string vedautosave_min_preserve -> int [variable] int -> vedautosave_min_preserve The * ved_autosave utility, described in HELP * VED_AUTOSAVE uses this variable to control whether a file is big enough for an extra initial backup copy to be created under the control of * vedautosave_preserve. vedautosave_min_write -> int [variable] int -> vedautosave_min_write The * ved_autosave utility will write files only if they have at least this number of changes. Default 0. See HELP * VED_AUTOSAVE vedautosave_minutes -> num [active variable] num -> vedautosave_minutes This active variable controls the frequency of saving of files that can be turned by * ved_autosave. num defaults to 5 minutes. Updating it changes the timer interval. See HELP * ved_autosave vedautosave_preserve -> item [variable] item -> vedautosave_preserve This variable, whose value should be a boolean, a string, an integer or a procedure, controls whether the automatic saving mechanism described in HELP * ved_autosave creates an initial EXTRA backup file for each file edited during the current session. It also controls how the saving is done. For full details see the HELP file. vedautowrite -> N_or_false [variable] N_or_false -> vedautowrite If given an integer N, will cause Ved to write changed files after every N characters read from keyboard. If false don't. vedbackers -> list [variable] list -> vedbackers Contains a list of pop11 reserved words which should be 'outdented' when justifying a program text. Used by ved_tidy. (See also vedopeners, vedclosures, vedforwarders). vedbufferlist -> list [variable] list -> vedbufferlist A list holding the ved file structure for each file being edited. (See also vedupperfile, vedlowerfile, ved_current_file.) vedcharinsert_attr [variable] This integer variable (default 0) is used by the Ved character inserting procedures vedcharinsert, vedinsertstring and vedinsertvedchar. Any character attributes (bits 16-23) set in this variable are or'ed into each character inserted. vedclosers -> list [variable] list -> vedclosers Holds a list of pop11 reserved words and symbols, which indicate the end of a region of indenting for automatic justification of program files by VED_TIDY. (See also vedbackers, vedforwarders, vedopeners.) vedcommand -> string [variable] string -> vedcommand A string containing the full command typed in on the <ENTER> command line. (See also * vedargument, HELP * VEDCOMMANDS.) vedcrinteractive -> bool [variable] bool -> vedcrinteractive This boolean determines whether typing <RETURN> in an "immediate mode" buffer will input the line on which it is typed. If <false>, only ved_lmr can be used to input text (i.e. input the marked range). More specifically, it controls the behaviour of veddocr when vedprocswaiting is true for the current buffer. veddocr is called by vedcharinsert when a newline is inserted; if vedprocswaiting is true (that is, there is a suspended Ved-device process waiting for input on the current buffer), and vedcrinteractive is true, then instead of inserting a newline, veddocr passes the current line as input for the waiting process. See HELP * IM and 'Ved-Buffer Devices and "Immediate Mode"' in REF * VEDPROCS for more details. ved_current_file -> vedfile_struct [active variable] vedfile_struct -> ved_current_file An active variable which holds the ved file structure for the file for which the Ved global variables are currently set. (See 'Variables Associated With Each Ved File' below.) Accessing the variable returns the current file structure. Updating it will cause all the Ved global variables corresponding to a file (such as vedname, vedbuffer, etc) to be set for the new file, after saving their values for the existing file. (See also vedbufferlist, vedupperfile, vedlowerfile.) vedcreatemode -> int_or_false [variable] int_or_false -> vedcreatemode (Unix only) An integer or (default) false. In Unix, this variable controls the protection for files created by Ved. If vedcreatemode is an integer, Ved will temporarily set pop_file_mode to that value whenever it creates a new version of a file. Note that this effective only when creating a new file, since new versions of old files use the existing mode. See * pop_file_mode for more details. vedcurrentfile -> vedfile_struct [variable] vedfile_struct -> vedcurrentfile An ordinary variable holding the Ved file structure for the current file. Don't use this variable; always use ved_current_file instead. (In fact, accessing its value is OK, but you should NOT assign to it -- this will mean the current file is changed without changing the Ved global variables associated with each file.) veddelspaces -> bool [variable] bool -> veddelspaces A boolean used to control the joining of lines. If true (the default) then Ved will delete leading spaces before joining the current line to the preceding one. Also on breaking a line Ved deletes spaces immediately to right of cursor. vedediting -> bool [variable] bool -> vedediting Indicates whether Ved is in charge of the terminal. vedescape -> char [variable] char -> vedescape A character indicating a function-key type sequence. Default 27, which is ASCII <ESC>. This variable will demise shortly. (See also vedquery vedescapetable, vednormaltable, REF * VEDVARS /Variables associated with screen control) vedescapetable -> vec [variable] vec -> vedescapetable When a key is pressed, the appropriate ASCII code is passed to vednormaltable (See vednormaltable) to select the appropriate action. If the code is the same as that held in vedescape (See vedescape) then another character is read in, and vedescapetable searched. This vector maps the second character to the appropriate procedure. Used by vedprocesschar. vedexpandchar -> char_or_false [variable] char_or_false -> vedexpandchar Holds either false (default) or a character which is used as a trigger for the abbreviations mechanism. Whenever this character is entered, the ASCII code of the next character entered is passed as a key to the property table vedexpandchars, which returns a procedure which, when invoked should return a string to be spliced into the command line. Eg if vedexpandchar is set to hold the character `^` and vedexpandchars contains an entry mapping `a` to a procedure which leaves a string on the stack which holds a ved command, eg '%ls' then <ENTER> ^a will cause the command <ENTER> %ls to be executed. For fuller details see HELP * VEDEXPAND vedfiletypes -> list [variable] list -> vedfiletypes List of the possible suffixes for a filename, eg '.p', and the associated effects on variables set at initialisation of Ved. E.g. set vedcompileable to true if filename has suffix '.p'. (See also HELP * VEDFILETYPES, HELP * VEDPROCS/vedsetfiletypes ) vedforwarders -> list [variable] list -> vedforwarders List of Pop-11 syntax words which should be indented when automatically justifying program files using ved_tidy etc. (See also vedbackers, vedclosers, vedopeners) vedhardtabs -> bool [variable] bool -> vedhardtabs This variable (default true) controls whether tab characters in a file buffer are treated as 'hard', i.e. whether Ved should refuse to allow insertion or deletion of characters inside a tab. If vedhardtabs is false, then attempting to insert or delete a character in the middle of tab will turn the whole tab into an equivalent number of spaces first. (Note that vedhardtabs applies only to tab characters already in the buffer. It does not affect whether a tab character (rather than spaces) is inserted when the tab key is pressed, or whether tabs from a file are set up as tab characters (rather than spaces) when a file is read in. Both these behaviours are controlled by * vednotabs.) vedinputfocus -> vedfile_struct [variable] vedfile_struct -> vedinputfocus This variable controls the file to which the top-level input-reading loop of vedprocess will return, i.e. if this is different from ved_current_file then vedinputfocus will be made the current file. (This variable may also be <false>, in which case the top-level loop will just set it to ved_current_file.) vedinteractive -> bool [variable] bool -> vedinteractive A boolean set to true while inside a running "immediate mode" process. (See also HELP * IM ) vedinvedprocess -> bool [protected variable] bool -> vedinvedprocess A boolean set true inside vedprocess, and always false outside it. It is therefore equivalent to iscaller(vedprocess). vedlastcommand -> comm_p [variable] comm_p -> vedlastcommand Variable used by system procedures -- contains the procedure for the last Ved command executed. vedlmr_errs_in_file -> bool_or_string [variable] bool_or_string -> vedlmr_errs_in_file Holds either a filename or a boolean and is used to control the destination of error mishap messages. If false (default) then the message goes to the base window only. If true, it is placed in the current file, and if a filename, the mishap should be directed to that file. (See also vedlmr_print_in_file for destination of program output.) vedlmr_print_in_file -> bool_or_string [variable] bool_or_string -> vedlmr_print_in_file Either a string (default is 'output.p') or a boolean, used to direct output from a users program. If a string then output from ved_lmr goes to file of that name. If true, then output goes to current file. If false output merely goes on the base window. (See also vedlmr_errs_in_file for destination of mishap messages.) vedlowerfile -> vedfile_struct_or_false [variable] vedfile_struct_or_false -> vedlowerfile Holds the Ved data structure for the file in the lower window, or false if the screen is not split. (See also vedupperfile, ved_current_file, vedbufferlist.) vedmaxscrollhor -> int_or_p_or_false [variable] int_or_p_or_false -> vedmaxscrollhor vedmaxscrollvert -> int_or_p_or_false [variable] int_or_p_or_false -> vedmaxscrollvert These two variables determine whether vedcheck (see HELP * VEDPROCS) scrolls or refreshes the screen to make the cursor location visible. Each may have value <false> (which causes a default to operate) or a procedure which returns an integer, or an integer, determining the maximum amount of horizontal (vedmaxscrollhor) or vertical (vedmaxscrollvert) scrolling, respectively. (See also vedlineoffset, vedcolumnoffset.) vedmarkclasses -> assoc_list [variable] assoc_list -> vedmarkclasses Association list of marked-range names (words) to marking procedures used by ved_mark_named_range. See REF * ved_mark_named_range vedmessage -> string [variable] string -> vedmessage The string holding the message to be displayed on the status line. Once displayed, this string is reset to ''. When empty, the name of the file is displayed instead. vednonbreakfiles -> list [variable] list -> vednonbreakfiles List of file extensions (each a string) for which vedbreak should be false. See HELP * VEDNONBREAKFILES vednormaltable -> vec [variable] vec -> vednormaltable A table mapping characters received to their functions (procedure, string, undef etc). If the entry for the character is itself a table, eg if the control or escape characters are received, then more keys are needed to determine the function required. (See also vedescapetable) vedopeners -> list [variable] list -> vedopeners A list of Pop-11 syntax words, which indicate the start of a region of program text that should be indented. Used in automatic justification by procedures such as ved_tidy etc. (See also vedclosers, vedbackers, vedforwarders.) vedprintingdone -> bool [variable] bool -> vedprintingdone A boolean that is set to true if printing occurs, indicating that the screen has been corrupted and needs to be refreshed. Used by vedrestorescreen. Never true in XVed. vedquery -> char [variable] char -> vedquery Holds the character that is expected after vedescape (See vedescape) to further specify the function required. (See also vedquerytable.) Eg all the keypad functions on the V200s are mapped onto the sequence <ESC> ? <CHARACTER>. By storing these values in variables, it is possible to map them to different characters for non ASCII terminals. vedquerytable -> vec [variable] vec -> vedquerytable A vector holding the mapping table for characters received after the key sequence vedescape and vedquery. Used to map the characters to their functions (procedure, string, undef etc.) (See also vednormaltable, vedescapetable, vedquery, vedescape ) vedreadintabs -> bool [variable] bool -> vedreadintabs If set true, causes tabs to be preserved in files read in to Ved even if vednotabs is true. If vedreadintabs is true and any tabs are found, then vednotabs is set false for that file, to preserve the tabs. The default for vedreadintabs is true. (See also * vednotabs, HELP * VEDREADINTABS.) vedreadintrailspaces -> bool [variable] bool -> vedreadintrailspaces If this variable is false (the default), trailing spaces on the ends of lines are stripped off when a file is read into Ved. Trailing blank lines in a file are also discarded. If vedreadintrailspaces is true, however, trailing spaces are preserved by turning the last one on each line into a 'trailing space' character. Trailing blank lines in a file are similarily preserved, by replacing the last line with one containing just a 'trailing newline' character. (See Ved Special Characters: Special Spaces Etc in REF * VEDPROCS.) vedreadinplain -> bool_or_char [variable] bool_or_char -> vedreadinplain This variable (default false) controls whether Ved will interpret certain sequences of control characters in files being read in as character attributes/Ved graphics characters. See REF * vedfile_line_repeater for more details. vedstatusheaderlen -> int [constant] This constant is the length of the header part of vedstatusline. vedwriteoutplain -> bool [variable] bool -> vedwriteoutplain This variable (default false) controls whether Ved will translate character attributes/Ved graphics characters to sequences of control characters when writing out a file. See REF * vedfile_line_consumer for more details. vedrefreshneeded -> int_or_false [variable] int_or_false -> vedrefreshneeded An integer or (default) false, indicating the window line number below which the screen should be refreshed when it is next updated (usually when Ved is waiting for input). This is used to prevent excessive refreshing of the screen on "dumb" terminals for which * vednolinedelete is true. vedscreencolumn -> int [variable] int -> vedscreencolumn Integer cursor position on the screen. (See also vedscreenline.) vedscreenline -> int [variable] int -> vedscreenline Integer position (number of lines from the top) of cursor on screen. (See also vedscreencolumn.) vedscrollscreen -> bool [variable] bool -> vedscrollscreen A boolean used to control the screen up/down action. If true (the default), then moving up or down the current file by a whole page causes the screen to scroll. If false, the screen does not scroll, but refreshes to the new page, which is faster but less aesthetically pleasing. vedsearchlist -> list [variable] list -> vedsearchlist Holds a list of directories (default is ). Should Ved be called on a file which does not exist in the current directory, then each of the directories named in vedsearchlist is examined to see if the file exists there. Entries in vedsearchlist need not be <directory> strings, they can be sublists, in which case the first element is taken to be the <directory>. (See also HELP * SYSSEARCHPATH.) vedsetupdone -> bool [variable] bool -> vedsetupdone A boolean that is set true when Ved has been correctly set up. (See also REF * VEDPROCS/vedsetup ) vedspacestring -> string [constant] string -> vedspacestring A string of one character - a space (i.e. ' ') vedstartwindow -> int [active variable] int -> vedstartwindow For non-windowed Ved, the length in lines of the lower of Ved's two windows. The default value is half the screen length, to make both windows of equal size. Assigning a different value will change the division between the two windows: most usefully, doing vedscreenlength -> vedstartwindow; reduces the upper window to nothing, forcing a full screen display for each file. If you try assigning a value greater than vedscreenlength, it will be quietly truncated. The ratio of vedstartwindow to the screen length is maintained automatically if ever the screen length should change: this is achieved by having vedstartwindow as an active variable. Not used in XVed. vedstatusbufferlimit -> int [variable] int -> vedstatusbufferlimit An integer which controls the number of lines saved in Ved status buffer Ved saves old <ENTER> commands in the status buffer. If the number of saved commands exceeds vedstatusbufferlimit (default 60 - user assignable) then the oldest command is deleted. vedstatusshowcols -> bool [variable] bool -> vedstatusshowcols When true, vedsetstatus displays the current value of vedcolumn in vedstatusline, instead of vedline. The command ved_cols toggles the value of this variable. vedupperfile -> vedfile_struct [variable] vedfile_struct -> vedupperfile In windowed Ved, holds the Ved file structure for the current file (if it has a window); in non-windowed Ved, holds the file structure for the file in the upper (or only) window. (See also vedlowerfile, ved_current_file, vedbufferlist.) vedv200escapetable -> vec [variable] vec -> vedv200escapetable vedv200normaltable -> vec [variable] vec -> vedv200normaltable vedv200querytable -> vec [variable] vec -> vedv200querytable The key binding tables for Visual 200s. vedvarskeywords -> list [variable] list -> vedvarskeywords List of the pop11 keywords used to declare variables and constants (eg vars, lconstant etc) which can be reassigned by the user, and is used by automatic justification procedures such as * ved_tidy. (See also HELP * JUSTIFY, * vedbackers vedvedname -> string [variable] string -> vedvedname A string holding the name of the last file accessed using ved_ved. vedversions -> int_or_false [variable] int_or_false -> vedversions An integer or (default) false. This variable controls the number of backup versions of a file to be kept on disk. If vedversions is an integer, Ved will temporarily set pop_file_versions to that value whenever it creates a new version of a file. See * pop_file_versions for more details on backup files. vedwiggletimes -> int [variable] int -> vedwiggletimes Controls how long the procedure vedwiggle wiggles the cursor. Default is 5, set to a larger integer for fast terminals, smaller for slow ones. See REF * vedwiggle vedwriteallfiles -> bool [variable] bool -> vedwriteallfiles For system use. vvedcut_dump -> list [variable] list -> vvedcut_dump The list of strings that formed the text deleted by ved_cut or ved_ds. This list of strings can be restored to the file immediately after the current cursor, by using ved_splice. (See also HELP * YANK.) vveddump -> list [variable] list -> vveddump List of all the lines of text deleted by (eg) ved_d, so that they may be recovered. (See also HELP * YANK.) vvedgotoplace -> int_or_string_or_false [variable] int_or_string_or_false -> vvedgotoplace Used to locate the cursor when a file is set on screen. It can be an integer, in which case that line number is selected, a string which is searched for, or the default false, to which it is reset after use. vvedlinedump -> string [variable] string -> vvedlinedump Contains the line most recently deleted by vedlinedelete as a string. It is used to restore the line using ved_yankl. (See also HELP * YANK.) vvedworddump -> string [variable] string -> vvedworddump Contains the portion of line most recently deleted by one of the delete procedures (vedclearhead, vedcleartail, vedwordrightdelete, vedwordleftdelete) so that it may be recovered using, for example, ved_yankw. (See also HELP * YANK.) ------------------------------------------ 3 Variables Associated With Each Ved File ------------------------------------------ In Ved, a file is stored in a Ved file structure, which has a large number of fields storing the values of Ved global variables associated with the file. Variables associated with a file, i.e, that change whenever the current file changes, are described below. Note that not all of these are actually stored in the file structure, since some can be derived from others. On the other hand, some variables that are stored in the file structure do not appear below: one such is the internal stack of marked ranges maintained by vedmarkpush and vedmarkpop. Another is the variable subsystem, which determines for each file what documentation lists will be searched by help commands, and what compiler will be called by when loading a marked range in the file, etc. subsystem is described in REF * SUBSYSTEM (Two variables also not described below which are dependent on the current file in windowed Ved (XVed) are vedscreenwidth and vedscreenlength. In windowed Ved, making a file the current file will set these appropriately for the window dimensions.) The file structure for the current file is held in the active variable ved_current_file; when you assign to this, it automatically saves the globals in the current file structure, and then assigns all the globals from the new file structure. To do the first part of this only (i.e to save the globals in the current file without assigning a new one), use ved_save_file_globals. The values of the file globals can be set when a Ved file is first initialised by the procedure vedveddefaults. They can also be controlled by the user-definable list of information vedfiletypes, which tells Ved what to assign to the variables when a file is created, read in from disc, or when its name is changed (see HELP * VEDFILETYPES HELP * INITIAL). The procedure that interprets this list is vedsetfiletypes described in REF * VEDPROCS (Note also that the procedure * is_vedfile_local allows you to specify that the value of any variable is to be localised to a given Ved file. The variable can thus maintain different values in different files.) A Ved file structure is actually a standard full vector; the file INCLUDE * VEDFILE_STRUCT defines macros for the subscripts of each field in the vector (and indicates which global variables correspond to each field). As Poplog develops, the actually number of variables/fields may increase, but using only the macros in vedfile_struct.ph will ensure upward compatibility. ved_on_status -> bool [active variable] bool -> ved_on_status The value of ved_on_status is true if the cursor is on the status line, false otherwise. Updating this variable will cause the cursor to move to/from the status line. When on the status line, the following variables are set for the status line `file'. ¤ vedbreak ¤ vedbuffer ¤ vedcolumn ¤ vedcolumnoffset ¤ vedleftmargin ¤ vedline ¤ vedlineoffset ¤ vedpositionstack ¤ vedwindowlength ¤ vvedbuffersize ¤ vvedlinesize ¤ vvedmarkhi ¤ vvedmarklo ¤ vvedmarkprops ¤ vedwlineoffset ¤ vedwcolumnoffset ¤ vedwlinewidth (The status line file also has its own stack of marked of ranges manipulated by vedmarkpush and vedmarkpop.) The size of the status line file is truncated whenever it exceeds vedstatusbufferlimit. Note that when switching files with ved_current_file, you save/restore the state of files with respect to the status line, i.e. a file saved `on status' will restore `on status'. However, when saving a file's variables, ved_current_file (and ved_save_file_globals) always save the file values of the above variables, not the status ones. When the cursor is on the status line, previous commands can be examined, edited, and if necessary redone, by using the vedcharup and vedchardown commands to move up and down. The "mark range" commands (described in HELP * MARK) are also available though only one line at a time is visible. ved_on_status is most often changed by calling vedstatusswitch, which also marks the left edge of the current Ved line, or vedenter which also goes to a blank line at the end of the status buffer. vedonstatus -> bool [variable] bool -> vedonstatus An ordinary variable holding the `on status line' boolean. Don't use this variable; always use ved_on_status instead. (In fact, accessing its value is OK, but you should NOT assign to it -- this will mean the state is changed without changing the associated Ved global variables correctly.) vedbreak -> bool [variable] bool -> vedbreak Contains a boolean which controls automatic line breaking. If true, then Ved will break lines (by moving whole words) to fit into the current line width (held in vedlinemax). Default controlled by value of * vednonbreakfiles. vedbuffer -> vec [variable] vec -> vedbuffer A vector of (d)strings, each representing a line in the current file. Note that the length of vedbuffer may be greater than the number of lines in the file as extra blank lines (null strings) are sometimes present at the end of the vector. vedchanged -> int_or_false [variable] int_or_false -> vedchanged Contains either an integer count of the number of changes made to the current file. If none have been made since the file was last written, then it contains false. If false, ved_w etc will not write the file. vedcolumn -> int [variable] int -> vedcolumn The position of cursor on the current line. vedcolumnoffset -> int [variable] int -> vedcolumnoffset An integer count of the number of columns a window has been scrolled to the right. This value is also the number of the column of the current file, displayed on the left hand side of the window. (See also vedlineoffset, vedmaxscrollhor.) vedcompileable -> bool [variable] bool -> vedcompileable Contains a boolean value which indicates whether or not a file is a program file. Set to true if the current file name satisfies * sysisprogfile, in which case the file may be compiled. Otherwise false. Controls ved_x, ved_c, ved_l, etc. vedcurrent -> string [variable] string -> vedcurrent A string giving the name under which the current buffer was created. As described in REF * VEDPROCS, Real-File and Pseudo-File Buffers, a buffer whose name contains a space character is interpreted as a 'pseudo file'. In this case, the actual name under which the buffer was created is assigned to vedpathname, and vedcurrent is set to be this string with the trailing component (that is, the part following the last space character in the name), replaced by sys_fname_namev applied to it. (In other words, vedcurrent consists of vedpathname with any directory pathname on the trailing component removed.) veddirectory -> string_or_false [variable] string_or_false -> veddirectory For a Ved buffer corresponding to a real disk file, this variable contains the directory path string that was prepended to vedcurrent to get the file's full pathname (vedpathname). That is, if vedcurrent is an absolute pathname then veddirectory is nullstring, otherwise veddirectory is the value of current_directory when the buffer was created. If veddirectory is false, the buffer is a 'pseudo file' (see Real-File and Pseudo-File Buffers in REF * VEDPROCS). vedfileprops -> word_or_false [variable] word_or_false -> vedfileprops A word describing the type of the current file (e.g. "lib", "include", "help", "ref", "teach", etc), and set by vedsysfile when accessing documentation and library files. For an ordinary user text or program file it is false. If vedfileprops is a word containing a `.` character then XVed will use the part preceding the `.` as the window class, and the part following the `.` as the window type (e.g. ved_ls uses "'Select.ls'"). If you wish to associate other information with a file you can use a property created by * newvedfileprop. vedindentstep -> int [variable] int -> vedindentstep An integer that controls the treatment of tab characters. Default is 4, indicating that tab characters should be represented by 4 spaces. It is used to control indentation and tabs in ved_tidy. (See also vednotabs, HELP * vedindentstep.) vedleftmargin -> int_or_p [variable] int_or_p -> vedleftmargin Contains either an integer or a procedure, which controls the left margin. The default is 0. It controls line-breaks, the action of the <RETURN> key, text justification etc. If it is a procedure, then it should return a valid value for the left margin when it is run, i.e. p() -> int_margin (See also HELP * VEDCOMMS /ved_margin.) vedline -> int [variable] int -> vedline Line number of cursor position in the current file. Don't alter it without calling vedtrimline to remove any extra spaces from the right hand end. After altering, call vedsetlinesize to update the variable vvedlinesize. (Calling vedjumpto does all this for you.) vedlinemax -> int [variable] int -> vedlinemax Integer holding the maximum line width. If vedbreak is true, the lines are not allowed to exceed this length. (See also vedbreak). vedlineoffset -> int [variable] int -> vedlineoffset An integer count of the number of lines in the file that are above the window. This value is also the line number of the top visible line. (See also vedcolumnoffset, vedmaxscrollvert.) vednamestring -> string [variable] string -> vednamestring This string is displayed as the default message on the status line (i.e. when there is no other message to display), and indicates the name of the current buffer in the form EDITING: namestring for a writeable buffer, or EXAMINING: namestring for one with vedwriteable false. In both cases, namestring consists of vedcurrent with vedfileprops preceding it if the latter is a word. (Note that if vedfileprops contains a `.` character, only the part following the `.` is used in this context.) (In XVed, the namestring information goes into the window manager title bar on each window. If you have title bars on your windows and don't want the information duplicated on the status line, you can turn it off by setting the application resource ShowFileName to false. See Application Settings in REF * XVED.) vedneedscompiling -> bool [variable] bool -> vedneedscompiling A boolean set true when a compileable file is altered. (See also * vedcompileable.) vednotabs -> bool [variable] bool -> vednotabs A boolean. If true, tabs are converted to spaces when the file is read in or written. Also pressing tab key causes spaces to be inserted. If false, tabs are preserved. (See also vedindentstep, vedhardtabs, vedreadintabs. HELP * vednotabs gives more detailed information.) vedpathname -> string [variable] string -> vedpathname A string holding the full pathname for the current file, set up initially from vedcurrent. If vedcurrent is an absolute pathname, then vedpathname is set to vedcurrent; otherwise, vedpathname is current_directory prepended to vedcurrent. However (as described in REF * VEDPROCS, Real-File and Pseudo-File Buffers), a buffer whose name contains a space character is interpreted as a 'pseudo file'. In this case, vedpathname is just set to the name under which the buffer was created (and vedcurrent is derived from this, see * vedcurrent). vedpositionstack -> list [variable] list -> vedpositionstack A list of saved cursor positions which represents the stack used by the procedures vedpushkey and vedpopkey. vedprocwait -> list [variable] list -> vedprocwait Contains a list of suspended processes waiting for Ved-buffer device input from the current buffer. (Each list entry is a vector containing the actual process record and some associated data.) vedprocswaiting returns true if this list contains at least one live process (you should always use this to test vedprocwait non-empty, because some of the entries may be for dead processes). See Ved-Buffer Devices and Immediate Mode in REF * VEDPROCS for more details. vedscreenoffset -> int [variable] int -> vedscreenoffset For non-windowed Ved, the integer line number on the screen of the top of the current window (e.g. 0 for the top window, 12 for the bottom window). For windowed Ved (XVed), this is always 0. vedstatic -> bool_or_int [variable] bool_or_int -> vedstatic Controls the mode of character insertion and deletion by vedcharinsert, vedchardelete, etc. If false (the default), characters are inserted into the current buffer line by shifting existing text to the right (or for deleting, shifting the text to the right leftwards to erase the character). If true, or an integer, new characters simply overwrite existing text (and deleting simply blanks out character positions). When vedstatic is an integer, its bits have the following additional meanings: Bit Meaning --- ------- 0 If set, prevents any character insertion or deletion (calls to vedcharinsert, vedchardelete, etc will produce the Ved error 'CHARACTER EDITING DISABLED'). 1 If set, use an invisible text cursor (cursor character `\s`) rather than vedscreenstaticcursor (which is the default when vedstatic has a true value). Only effective in XVed. vedstatusline -> string [variable] string -> vedstatusline String holding complete status line. vedwriteable -> bool [variable] bool -> vedwriteable A boolean which controls whether a file can be written to disc. If false, Ved will not write the file. (See also vedchanged.) vedwindowlength -> int [variable] int -> vedwindowlength The integer length of the current window in lines. This includes the status line, so the number of actual file lines in the window is vedwindowlength-1; when ved_on_status is true, vedwindowlength is set to 2 to maintain the same relationship. vedwlinewidth [variable] vedwlineoffset [variable] vedwcolumnoffset [variable] These variables give positions/dimensions within the window that differ when on the status line and off it. vedwlinewidth is the width available for file lines; this is always vedscreenwidth - vedwcolumnoffset vedwlineoffset is the offset to the first file line on the window; this is 0 when on the status line, and 1 when off it. vedwcolumnoffset is the offset to the first file character on the window; this is 10 when on the status line, and 1 when off it. vvedbuffersize -> int [variable] int -> vvedbuffersize The integer length in lines of the current buffer (i.e. the length of the current file). vvedlinesize -> int [variable] int -> vvedlinesize Used size of current line. Don't alter. Set by vedsetlinesize. vvedmarkhi -> int [variable] int -> vvedmarkhi The (integer) line number of the end of the marked range in the current file. vvedmarklo -> int [variable] int -> vvedmarklo The (integer) line number of the beginning of the marked range in the current file. vvedmarkprops -> bool [variable] bool -> vvedmarkprops Controls visibility of marked ranges. If false, then changes to marked ranges are not shown on the screen. Used with procedures vedmarkpush and vedmarkpop. vvedpromptchar -> char_or_false [variable] char_or_false -> vvedpromptchar In documentation and 'immediate mode' files, this variable is set to contain a 'prompt marker space' character (`\Sp` as a Pop-11 character constant). In immediate mode, it is output after the prompt, making it possible to distinguish actual prompts from normal text. When not false, various Ved procedures check for the presence of vvedpromptchar in a line, and prevent certain operations when it is found (e.g. stop insertion of text inside the prompt). (See also HELP * IM.) wvedwindow -> window [variable] In windowed Ved (i.e. XVed), the window structure of the current file, or false if it doesn't have one. In ordinary Ved, always false. -------------------------------------------------------- 4 Variables Associated With Ved Search and Substitution -------------------------------------------------------- See REF * VEDSEARCH for more details of the following variables used by the Ved Search mechanism: * vedwrapped * vedsafesubstitute * ved_search_state * vvedfoundstring ------------------------------ 5 Special Character Variables ------------------------------ The following variables contain special characters-with-attributes used by Ved to display the status line, marked range, etc; many of these have Ved graphics characters as their default values (see Ved Standard Graphics Characters in REF * VEDPROCS). You can use vedset chars ... endvedset to set any of these variables: in this case, you omit the vedscreen- prefix on the name. See HELP * VEDSET 5.1 General ------------ vedscreencontrolmark -> char [variable] char -> vedscreencontrolmark Character used to show that a control or other unprintable character is at this place in the text. Default value is `\Go`, i.e. a 'degree' sign. vedscreentrailspacemark -> char [variable] char -> vedscreentrailspacemark Character used to show that this place in the text contains a 'trailing space' character (see Ved Special Space Characters in REF * VEDPROCS). Default value is `\[b3]S`, i.e. a bold S in colour 3 (inverse video in monochrome). vedscreennobreakspacemark -> char [variable] char -> vedscreennobreakspacemark Character used to show that this place in the text contains a 'no-break space' character (see Ved Special Space Characters in REF * VEDPROCS). Default value is `\s`, i.e. a space. vedscreenpromptspacemark -> char [variable] char -> vedscreenpromptspacemark Character used to show that this place in the text contains a 'prompt-marker space' character (see Ved Special Space Characters in REF * VEDPROCS). Default value is `\s`, i.e. a space. vedscreenformatspacemark -> char [variable] char -> vedscreenformatspacemark Character used to show that this place in the text contains a 'format-control space' character (see Ved Special Space Characters in REF * VEDPROCS). Default value is `\s`, i.e. a space. vedscreenmoremark -> char [variable] char -> vedscreenmoremark Character used for to indicate that there is more text past the end of the line on the screen. Default value is `\G|`, i.e. a vertical line. vedscreenrangemark -> char [variable] char -> vedscreenrangemark Character used to "mark" range of lines by vedmarklo and vedmarkhi. Default value is `\[b2]\G|`, i.e. a bold vertical line in colour 2. vedscreencursorlinemark -> char [variable] char -> vedscreencursorlinemark Character put at left of current line when the cursor is on the status line. Default value is `\[b2]\G-`, i.e. a bold horizontal line in colour 2. vedscreencursorlinerangemark -> char [variable] char -> vedscreencursorlinerangemark Character put at left of current line if in marked range when cursor is on status line (should therefore be a combination of vedscreenrangemark and vedscreencursorlinemark). Default value is `\[b2]\G+`, i.e. bold crossed horizontal and vertical lines in colour 2. 5.2 Status Line ---------------- vedscreenstatus_-_mark -> char [variable] char -> vedscreenstatus_-_mark Character for horizontal line used to pad the status line (not used in XVed). Default value is `\G-`, i.e. a horizontal line. vedscreenstatus_-|_mark -> char [variable] char -> vedscreenstatus_-|_mark Character shown after executing a command on the status line, and (except in XVed) before the line/column number. Default value is `\Grt`, i.e. a right-facing T-junction. vedscreenstatus_|-_mark -> char [variable] char -> vedscreenstatus_|-_mark Character used after line/column number and before the command section of the status line. Default value is `\Glt`, i.e. a left-facing T junction. vedscreenstatusinputmark -> char [variable] char -> vedscreenstatusinputmark Character which replaces the second-from-left vedscreenstatus_-_mark on the status line when there are one or more immediate-mode processes waiting for input on a buffer (i.e. when vedprocswaiting() is true). Default value is `\[f]I`, i.e. a flashing I. vedscreenstatusnumattr -> char [variable] char -> vedscreenstatusnumattr The attributes part of this character is added to the line (or column) number digits displayed on the left of the status line (the actual character part is ignored). When the column number is being displayed (that is, when vedstatusshowcols is true), `\` is or'ed to the attributes to make the colour number odd. Default value is `\[b]`, i.e. bold in colour 0 (and thus colour 1 when vedstatusshowcols is true). 5.3 Cursors ------------ Ved assigns these variables to * vedscreencursoron to change the text cursor in different contexts. (Although whether or not it actually changes is implementation dependent. Currently, they are only effective in XVed. Note that the XVed window resource * cursorColor controls the cursor colour when its character attributes specify the normal colour, i.e. colour 0.) vedscreennormalcursor -> char [variable] char -> vedscreennormalcursor Cursor set by vedgetinput when vedstatic is false: therefore controls the normal cursor displayed by the Ved top-level loop when not in static mode. Default is `O`, i.e. a rectangular block. (Note that vedgetinput will not assign to the cursor if it is currently turned off, i.e. vedscreencursoron is false.) vedscreenstaticcursor -> char [variable] char -> vedscreenstaticcursor Cursor set by vedgetinput when vedstatic is true: therefore controls the normal cursor displayed by the Ved top-level loop in static mode. Default is `_`, i.e. an underscore-style cursor. (Note that vedgetinput will not assign to the cursor if it is currently turned off, i.e. vedscreencursoron is false.) vedscreeninasciicursor -> char [variable] char -> vedscreeninasciicursor Cursor set by vedinascii; therefore controls the cursor displayed by ved_get_reply, search and substitute, etc. Default is `\[f]I`, i.e. a flashing I-beam. +-+ C.all/ref/vedvars +-+ Copyright University of Sussex 1995. All rights reserved.