.! To create a help file for TECO, do the following .! .! $ runoff tecoc.rnh .! $ library/create/help tecoc tecoc .! $ delete tecoc.hlp;* .! .! A part of this file relating to macros can be conditionally runoff'd .! using the following command: .! .! $ runoff/variant=MACROS tecoc.rnh .! .NO PAGING .NO FLAGS ALL .LEFT MARGIN 1 .RIGHT MARGIN 70 .INDENT -1 1 Arithmetic .INDENT 5 TECOC supports integer arithmetic. Expressions can be constructed using numbers, operators, variables (q-registers) and values maintained by TECO. Expressions are used to supply numeric values to TECO commands. The = command simply displays the value of it's numeric argument. Using it gives the TECO user a simple integer calculator. Radix control is provided to allow the user to input and output constants in octal, decimal or hexadecimal. Expressions are evaluated left to right unless parentheses are used to alter the order of execution. Parentheses may be nested. If parentheses are used, the expression within innermost parentheses is evaluated first, left to right. There is no operator precedence. .INDENT -1 2 Examples .LITERAL 256*4=$$ will display 1024 on the screen 10*(4+3)ua$$ will put 70 into q-register a qa=$$ will display the value stored in q-register a qa*20=$$ will display the value of q-register a, times 20 z=$$ will display the number of characters in the edit buffer 0a==$$ will display the ASCII value of the character following the character pointer, in octal .END LITERAL .INDENT -1 2 Operators .INDENT 5 The following operators are recognized by TECO in expressions .SKIP .LITERAL OPERATOR EXAMPLE FUNCTION + +2=2 Unary plus, not meaningful, but legal + 2+2=4 Addition - -2=-2 Unary minus, negation - 8-6=2 Subtraction * 2*3=6 Multiplication / 8/3=2 Division with truncated result & 12&10=8 Logical AND # 12#10=14 Logical OR ^_ 5^_=-6 Logical complement .END LITERAL .INDENT -1 2 Q-registers .INDENT 5 Q-registers provide TECO with variables. Each q-register can contain text and a numeric value. See "Q-REGISTERS" for more help. .INDENT -1 2 Radix_control .INDENT 5 TECO allows the user to operate in octal, decimal or hexadecimal. A current radix is maintained by TECO. Decimal is the default radix. Numbers in command strings are interpreted according to the current radix. The following commands alter the current radix. .SKIP .LITERAL ^D change the current radix to decimal ^O change the current radix to octal ^R return the value of the current radix n^R set the radix. n must be 8, 10 or 16 .END LITERAL .INDENT -1 2 Special_values .INDENT 5 The following commands return some kind of value. Help is available on these commands individually. .SKIP .LITERAL nA next character ^F console switches B 0 n^F terminal number ED edit level flag ^H current time of day EH help level flag ^N end-of-file flag EO TECO version number ^R current radix ES search verify flag ^S neg. size of last insert ET type-out flag ^T next typed char EU case flag ^X search mode flag EV edit verify flag ^Y m,n of last insert Mq macro return value ^Z q-register memory used Qq value in q ^^x ASCII value of x Z number chars in buffer :Qq number chars in q ^B current date \ digit string in buffer ^E form feed flag . position in buffer .END LITERAL .INDENT -1 2 Type-out .INDENT 5 Type-out of the value of an expression is provided through the = command. See "COMMANDS =" for help about the = command. .INDENT -1 1 Branching .INDENT 5 TECO provides conditional and unconditional branching in command strings. This capability provides much of the real power of the TECO language. The following commands branch within a TECO command string: .SKIP .LITERAL n"x if-then < begin loop | else > end loop ' end if F< goto same-level < $$ exit macro F> goto same-level > n$$ exit macro F| goto same-level | m,n$$ exit macro F' goto same-level ' ; leave loop O goto tag n; leave loop nO computed goto :; leave loop ^C stop now, give prompt n:; leave loop .END LITERAL .INDENT -1 1 Commands .INDENT 5 Almost all TECO commands are terminated with two escape characters. .INDENT -1 2 ^A .INDENT 5 The ^A command displays a string on the terminal. Text between two ^A's is displayed. The ^A command can be @-sign modified. .SKIP Examples: .SKIP .LITERAL ^APrompt^A$$ would display Prompt on the terminal screen @^A:hello:$$ would display hello on the terminal screen .END LITERAL .INDENT -1 2 ^B .INDENT 5 The ^B command returns the current date via the following equations: .SKIP .LITERAL OS/8: ^B = (((month*32)+day)*8)+((year-1970)&7)+k where k = 4096 if year>1977 and k=0 otherwise RT-11: ^B = (((month*32)+day)*32)+year-1972 RSTS/E: ^B = ((year-1970)*1000)+day within year RSX-11: ^B = ((year-1900)*16+month)*32+day VAX/VMS: ^B = ((year-1900)*16+month)*32+day TOPS-10: ^B = (((year-1964)*12+month-1)*31+day-1) .END LITERAL .INDENT -1 2 ^C .INDENT 5 The ^C command stops execution of TECO. It interrupts TECO and returns control to the user. This command is usually used to stop TECO when it is erroneously placed into an infinite loop. If this command is entered while a search is in progress, the character pointer's position is not well defined. .INDENT -1 2 ^D .INDENT 5 The ^D command sets the radix to decimal. This command is equivalent to a 10^R command, when the current radix is 10. See the documentation of the ^R command for a description of the radix. .INDENT -1 2 ^E .INDENT 5 The ^E flag is the form feed flag. It is equivalent to -1 if the last page which was input was terminated by a form feed. If the last page read was not terminated by a form feed (if it was the last page in the file or if the edit buffer filled up before the entire page was read) then ^E is equivalent to 0. The ^E flag is tested by the P command to determine whether a form feed should be appended to the edit buffer when it is output. .SKIP ^E is also the prefix character for match control characters used within search strings. For help on match control characters, the help key is "SEARCHING MATCH_CONTROL_CHARACTERS". .INDENT -1 2 ^G^G .INDENT 5 The ^G^G immediate command is actually an aid to type-in of command strings. When you type ^G^G, the command string is cleared and you are given another prompt. When you type in a command string that has a mistake in it, and you notice the mistake before you strike the ESCAPE-ESCAPE sequence that starts execution of the command string, this aid can be used to clear the string so that you can re-type it. This aid works a little differently than the ^U and ^X aids. They clear only the current line of the command string, not the whole command string. .INDENT -1 2 ^G .INDENT 5 The ^G immediate command is actually an aid to type-in of command strings. When you type ^G and then a space, the current line of the command string is displayed. This is useful when you are on a terminal that doesn't erase characters when the DELETE key is used. On such a terminal, typing in a command string and using DELETE to fix it can leave the command string in an unreadable state on the terminal. In such a case, ^G will redisplay the current line of the command string. .INDENT -1 2 ^G* .INDENT 5 The ^G* immediate command is actually an aid to type-in of command strings. When you type ^G and then an asterisk, the entire current command string is displayed. This is useful when you are on a terminal that doesn't erase characters when the DELETE key is used. On such a terminal, typing in a command string and using DELETE to fix it can leave the command string in an unreadable state on the terminal. In such a case, ^G* will redisplay the current command string. .INDENT -1 2 ^H .INDENT 5 The ^H (or BACKSPACE) command has two different functions. .SKIP .INDENT 5 When used as a normal command in a command string, the ^H command returns the time of day via the following equations: .SKIP .LITERAL OS/8: ^H = 0 RT-11: ^H = (seconds since midnight)/2 RSTS/E: ^H = minutes until midnight RSX-11: ^H = (seconds since midnight)/2 VAX/VMS: ^H = (seconds since midnight)/2 TOPS-10: ^H = 60ths of a second since midnight or 50ths of a second where 50 Hz power is used .END LITERAL .SKIP .INDENT 5 When used as an immediate-mode command (the first character typed after a TECO prompt) a BACKSPACE will cause TECO to immediately move to the front of the previous line and type the line (like a -1L1T). The BACKSPACE immediate mode command together with the LINE-FEED immediate mode command (which is like a 1L1T) provides a convenient way to step from line to line within the edit buffer. .INDENT -1 2 ^I .INDENT 5 The ^I (or TAB) command is the same as the I command, except that the tab character is inserted along with the tab character. This command is a useful alternative to the I command when a FORTRAN or assembly language program is being edited. .INDENT -1 2 ^J .INDENT 5 The ^J (or LINE-FEED) command has two different functions. .SKIP .INDENT 5 When used as a normal command in a command string, the LINE-FEED character has no effect. It is meant to be used together with the RETURN and SPACE commands to provide the TECO programmer with a way to indent and format TECO programs and macros. .SKIP .INDENT 5 When used as an immediate-mode command (the first character typed after a TECO prompt) a LINE-FEED will cause TECO to immediately move to the front of the next line and type the line (like a 1L1T). The LINE-FEED immediate mode command together with the BACKSPACE immediate mode command (which is like a -1L1T) provides a convenient way to step from line to line within the edit buffer. .INDENT -1 2 ^L .INDENT 5 The ^L (or FORM-FEED) command performs no function in TECO. It echoes as a form feed and can be used to format command strings used in macros. .PARAGRAPH Form feed are what split pages in files. When TECO reads in a page from an input file, a form feed defines the end of the page. Form feeds can be inserted into files like other characters. When inserted, they reside in the edit buffer. When the file is output and TECO is used to edit the file later, the inserted form feeds terminate pages. .INDENT -1 2 ^M .INDENT 5 The ^M (or RETURN) command performs no function in TECO. It can be used to format command strings in macros. .INDENT -1 2 ^O .INDENT 5 The ^O command sets the radix to octal. This command is equivalent to a 8^R command, when the current radix is 10. See the documentation of the ^R command for a description of the radix. When a control-O or caret-O is encountered in a command string, it has the above meaning. When a control-O is typed by the user, control-O turns output to the terminal on or off. TECO still generates characters, it simply throws them away instead actually displaying them. When a command is executed which results in a lot of useless output to a slow terminal, control-O can be used to speed things up where control-C would stop execution. .INDENT -1 2 ^Q .INDENT 5 The ^Q command converts line positions in the edit buffer into the corresponding character positions. The n^Q command returns the number of characters between the buffer position and the nth line terminator. The numeric argument can be positive or negative. For example, n^QC is equivalent to nL. .PARAGRAPH Within string arguments, ^Q indicates that the next character is to be used literally. For instance, Sttt^Q^Es$$ will search for ttt^Es rather than ttt followed by a sequence of spaces and/or tabs. .PARAGRAPH The ^Q and ^S characters also control terminal i/o. The ^S character will "freeze" output to the terminal and ^Q will allow output to resume. This feature allows the user to temporarily stop output to the screen so that text can be read before it scrolls off the top of the screen. .INDENT -1 2 ^R .INDENT 5 The ^R command sets or returns the value of TECO's radix. To set the radix, use n^R, where n is a number between 2 and 36, inclusive. If ^R is used without a numeric argument, the current radix is returned. The value of the radix affects the execution of the =, :=, ==, :==, ===, :=== and \ commands. It also affects the meaning of digit strings within command strings. If the radix is set to a value above 10, parsing of command strings is affected. Upper and lowercase letters become valid as "digits" in constants. The meaning of commands strings can become very confusing, as letters intended to be commands are absorbed as part of constants. It is recommended that bases higher than 10 be used only temporarily. If an attempt is made to set the radix to a number that is out of range, the IRA error message is produced. When TECO is started, the radix has a value if 10. .INDENT -1 2 ^S .INDENT 5 The ^S command returns the length of the last string found or inserted, multiplied by -1. It is intended to be used in conjunction with other commands to manipulate the last string inserted or found. For instance, .SKIP .LITERAL Sabc$^SD$$ find and delete abc Sabc$^SC$$ find abc and move to the front of it GM$^SD$$ insert q-register M, then change your mind .END LITERAL .SKIP .PARAGRAPH The ^Q and ^S characters also control terminal i/o. The ^S character will "freeze" output to the terminal and ^Q will allow output to resume. This feature allows the user to temporarily stop output to the screen so that text can be read before it scrolls off the top of the screen. .INDENT -1 2 ^T .INDENT 5 The ^T command... .INDENT -1 2 ^U .INDENT 5 The ^U command... .INDENT -1 2 ^V .INDENT 5 The ^V command... .INDENT -1 2 ^W .INDENT 5 The ^W command... .INDENT -1 2 ^X .INDENT 5 The ^X command... .INDENT 5 The search flag. Additional help about how to manipulate flags can be found under the FLAGS keyword. This flag controls the significance of case in searches. If this flag is 0, then case is insignificant in search commands, and the command stext$$ would find "Text", "text" or "TEXT" in the edit buffer. If this flag is -1, then search commands are sensitive to case, and the command stext$$ would only find "text" in the edit buffer. .INDENT -1 2 ^Y .INDENT 5 The ^Y command... .INDENT -1 2 ^Z .INDENT 5 The ^Z command... .INDENT -1 2 ^^X .INDENT 5 The ^^X command... .INDENT -1 2 ! .INDENT 5 In TECO, a tag is a string of characters enclosed in ! characters. A tag can be used as the destination of a branch (via the O command). When TECO is executing sequentially and encounters a tag, the tag is simply ignored. Tags also provide TECO's comment capability. .INDENT -1 2 " .INDENT 5 The " command provides TECO's conditional branching capability, or "if-then-else" construct. The two general forms of the " command are .SKIP .LITERAL n"x' like "if x(n) then " n"x|' like "if x(n) then else " .END LITERAL .SKIP Where n is an expression and x is a conditional character. The conditional characters determine how the value of the expression is tested. Conditionals may be nested. .INDENT -1 3 "< .INDENT 5 Execute the following command string if the preceding expression is less than zero. Equivalent to "L, "S or "T. .INDENT -1 3 "= .INDENT 5 Execute the following command string if the preceding expression is equal to zero. Equivalent to "E, "F or "U. .INDENT -1 3 "> .INDENT 5 Execute the following command string if the preceding expression is greater than zero. Equivalent to "G. .INDENT -1 3 "A .INDENT 5 Execute the following command string if the preceding expression evaluates to a value that is the ASCII code for an alphabetic character. Alphabetic characters are all upper case and lower case letters from A to Z. .INDENT -1 3 "C .INDENT 5 Execute the following command string if the preceding expression evaluates to the ASCII code for a symbol constituent. Symbol constituents are upper and lower case letters from A to Z, digits, or periods and dollar signs. .INDENT -1 3 "D .INDENT 5 Execute the following command string if the preceding expression evaluates to the ASCII code for a digit. Digits are 0 through 9. .INDENT -1 3 "E .INDENT 5 Execute the following command string if the preceding expression is equal to zero. Equivalent to "=, "F or "U. .INDENT -1 3 "F .INDENT 5 Execute the following command string if the preceding expression is FALSE. FALSE in TECO is 0. Equivalent to "=, "E or "U. .INDENT -1 3 "G .INDENT 5 Execute the following command string if the preceding expression is greater than zero. Equivalent to ">. .INDENT -1 3 "L .INDENT 5 Execute the following command string if the preceding expression is less than zero. Equivalent to "<, "S or "T. .INDENT -1 3 "N .INDENT 5 Execute the following command string if the preceding expression is not equal to zero. .INDENT -1 3 "R .INDENT 5 Execute the following command string if the preceding expression evaluates to the ASCII code for an alphanumeric character. Alphanumeric characters are digits and the upper and lower case characters from A to Z. .INDENT -1 3 "S .INDENT 5 Execute the following command string if the preceding expression is SUCCESSFUL. SUCCESSFUL in TECO is a value less than 0. Equivalent to "<, "L or "T. .INDENT -1 3 "T .INDENT 5 Execute the following command string if the preceding expression is TRUE. TRUE in TECO is a value less than 0. Equivalent to "<, "L or "S. .INDENT -1 3 "U .INDENT 5 Execute the following command string if the preceding expression was UNSUCCESSFUL. UNSUCCESSFUL in TECO is 0. Equivalent to "=, "E or "F. .INDENT -1 3 "V .INDENT 5 Execute the following command string if the preceding expression evaluates to the ASCII code for a lower case letter from a to z. .INDENT -1 3 "W .INDENT 5 Execute the following command string if the preceding expression evaluates to the ASCII code for a upper case letter from A to Z. .INDENT -1 2 %q .INDENT 5 The %q command... .INDENT -1 2 ' .INDENT 5 The ' command... .INDENT -1 2 *q .INDENT 5 The *q immediate command... .INDENT -1 2 . .INDENT 5 The . command... .INDENT -1 2 ; .INDENT 5 The ; command... .INDENT -1 2 < .INDENT 5 the < command... .INDENT -1 2 > .INDENT 5 The > command... .INDENT -1 2 = .INDENT 5 The = command... .INDENT -1 2 := .INDENT 5 The := command... .INDENT -1 2 ? .INDENT 5 The ? command... .INDENT -1 2 @ .INDENT 5 The @ command... .INDENT -1 2 A .INDENT 5 The A command is used to append the next page of text from the input file to the end of the current editing buffer. The command is of the form: .SKIP .LITERAL A Read the next page of text from the input file and append it to the end of the current text buffer .END LITERAL .INDENT -1 2 B .INDENT 5 The B command... .INDENT -1 2 BACKSPACE .INDENT 5 The ^H (or BACKSPACE) command has two different functions. When used as an immediate mode command (the first character typed after a TECO prompt) it causes a -1L1T command string to be executed. Together with the LINE-FEED immediate mode command, this provides a convenient way to move through a file. When used as a normal command in a command string, the ^H command returns the time of day via the following equations: .SKIP .LITERAL OS/8: ^H = 0 RT-11: ^H = (seconds since midnight)/2 RSTS/E: ^H = minutes until midnight RSX-11: ^H = (seconds since midnight)/2 VAX/VMS: ^H = (seconds since midnight)/2 TOPS-10: ^H = 60ths of a second since midnight or 50ths of a second where 50 Hz power is used .END LITERAL .INDENT -1 2 C .INDENT 5 The C command is used to move the pointer past a specified number of characters. Common forms of the "C" command are: .SKIP .LITERAL C Advance the pointer to the next character 3C Move forward by three characters -1C Move back to the previous character .END LITERAL .INDENT -1 2 D .INDENT 5 The D command is used to delete characters from the editing buffer. Common forms of the command are: .SKIP .LITERAL D Delete the character which follows the pointer 5D Delete the next five characters, starting with the character following the pointer -1D Delete the character which immediately precedes the pointer .END LITERAL .INDENT -1 2 E% .INDENT 5 The E% command... .INDENT -1 2 E_ .INDENT 5 The E_ command... .INDENT -1 2 EA .INDENT 5 The EA command... .INDENT -1 2 EB .INDENT 5 The EB command... .INDENT -1 2 EC .INDENT 5 The EC command... .INDENT -1 2 ED .INDENT 5 The edit level flag. Additional help about how to manipulate flags can be found under the FLAGS keyword. Bits within this flag have the following meanings: .SKIP .LITERAL 1 Allow caret (^) in search strings 2 Allow Y and _ commands to destroy edit buffer 4 Don't arbitrarily expand memory 16 preserve dot on failing searches 64 only move dot by one on multiple occurrence searches .END LITERAL .INDENT -1 3 1 .INDENT 5 Allow caret (^) characters in search strings. If this bit is 1, then the caret character is a normal character in search strings. If this bit is 0, then the caret character causes the immediately following character in the search string to become a control character. It is useful to turn this bit off when you are editing a file with many control characters. .INDENT -1 3 2 .INDENT 5 Allow Y and _ commands, even if there is text in the edit buffer. If this bit is 1, the Y and _ commands will work, even if the edit buffer contains text. If this bit is 0, then the Y and _ commands will cause an error when the edit buffer contains text. Note that this flag operates sensibly: it only aborts Y commands if an output file is defined. This flag is useful because it is very easy to execute a Y command by mistake and irrevocably lose the contents of the edit buffer. .INDENT -1 3 4 .INDENT 5 Do not arbitrarily expand memory. If this bit is set, TECO will expand memory in order to execute the A command. It will not expand memory in order to execute the Y, P or N commands. If this bit is clear, TECO will expand the edit buffer in order to fit entire pages into the edit buffer when the user execute an A, N, P or Y command. .INDENT -1 3 16 .INDENT 5 Preserve dot on failing searches. If this bit is 1, then when a search fails, the character pointer is left pointing to the same place it was pointing before the search was attempted. If this bit is 0, then when a search fails, the character pointer is left pointing to the beginning of the edit buffer. .INDENT -1 3 64 .INDENT 5 Move the character pointer by one on multiple occurrence searches. This bit affects the way TECO handles the character pointer while executing a command like 5Stext$$. If this bit is 1, then the character pointer is incremented each time the text string is found. If this bit is 0, then the character pointer is moved to the end of the found text string each time the text string is found. For example, suppose the text buffer contains 20 A's, the character pointer is currently pointing to the beginning of the edit buffer, and the bit is 1. The command 5SAA$$ will complete leaving the character pointer between the 6th and 7th characters (.=$$ gives 6). Under the same conditions, with the bit set to 0, the same command will complete leaving the character pointer between the 10th and 11th characters (.=$$ gives 10). .INDENT -1 2 EF .INDENT -1 2 EG .INDENT -1 2 EH .INDENT 5 The help flag. Additional help about how to manipulate flags can be found under the FLAGS keyword. Bits within this flag have the following meanings: .SKIP .LITERAL 3 how much error message to display 4 display failing command string after errors .END LITERAL .INDENT -1 3 3 .INDENT 5 The two low bits of the EH flag control how much information is displayed when an error occurs. The bits can have the following values: .SKIP .LITERAL 00 same as 10 01 display only the 3-letter error code 10 display 3-letter error code and one-line error message 11 display 3-letter error code, one-line error message and a paragraph describing the error in detail. .END LITERAL .INDENT -1 3 4 .INDENT 5 Output failing command string when an error occurs. If this bit is 1, then the commands string that caused the error is displayed up to and including the command that caused the error. This is just like typing the immediate mode question-mark command after every error. If this bit is 0, then the failing command string is not typed. .INDENT -1 2 EI .INDENT 5 The EI command... .INDENT -1 2 EJ .INDENT 5 The EJ command... .INDENT -1 2 EK .INDENT 5 The EK command... .INDENT -1 2 EL .INDENT 5 The EL command... .INDENT -1 2 EM .INDENT 5 The EM command... .INDENT -1 2 EN .INDENT 5 The EN command... .INDENT -1 2 EP .INDENT 5 The EP command... .INDENT -1 2 EQ .INDENT 5 The EQ command... .INDENT -1 2 ER .INDENT 5 The ER command... .INDENT -1 2 ES .INDENT 5 The ES flag controls what is displayed on the terminal after every successful search command completes. By default, nothing is displayed (ES is 0). ES has the following meanings: .SKIP .LITERAL 0 don't display anything -1 display the line containing the found string 1-31 display the line containing the found string, with a line feed at the character position 32-126 display the line containing the found string, with the character whose ASCII code is represented by ES at the character position m*265+n n has the meanings defined above. m is the number of lines above and below the found string to be displayed. .END LITERAL .INDENT -1 2 ESCAPE .INDENT 5 The ESCAPE command... .INDENT -1 2 ET .INDENT 5 The type-out flag. Additional help about how to manipulate flags can be found under the FLAGS keyword. Bits within this flag have the following meanings: .SKIP .LITERAL 1 inhibit conversions during type-out 2 process DELETE and ^U in scope mode 4 don't convert user's input to upper case 8 read without echo on ^T commands 16 cancel ^O on type-out 32 read with no wait on ^T commands 128 mung mode 256 truncate to terminal width 512 terminal is a CRT 1024 terminal is a refresh scope 32768 trap ^C .END LITERAL .INDENT -1 3 1 .INDENT 5 Type out in image mode. If this bit is 1, no conversions are performed when text is typed out. If this bit is 0, TECO automatically converts non-displayable character into a displayable form before displaying them on the terminal. For instance, the control-A character is converted to ^A and the ESCAPE character is converted to a dollar sign. .INDENT -1 3 2 .INDENT 5 Process DELETE and ^U in scope mode. If this bit is set, the DELETE and ^U commands will cause characters being deleted to disappear from the terminal screen. If this bit is 0, then deleted characters are simply echoed to the terminal screen and ^U simply advances to the next line. .INDENT -1 3 4 .INDENT 5 Read lower case. If this bit is 1, TECO will not convert lowercase characters to uppercase on input. If this bit is 0, TECO will convert lowercase characters typed by the user into uppercase. .INDENT -1 3 8 .INDENT 5 Read without echo for ^T. If this bit is 1, ^T commands will not echo. If this bit is 0, ^T commands will echo. This bit allows the user to explicitly echo input characters as he/she sees fit. .INDENT -1 3 16 .INDENT 5 Cancel ^O on type-out. If this bit is 1, TECO will cancel any outstanding control-O command before doing its output, then automatically clear the bit. If this bit is 0, TECO will output normally, subject to ^O control. .INDENT -1 3 32 .INDENT 5 Read with no wait. If this bit is 1, ^T commands will return immediately, regardless of whether there is a character in the type-ahead buffer or not. If this bit is 1 and a ^T command is executed and the type-ahead buffer is empty, the ^T will return a -1. If this bit is 0 and a ^T command is executed and the type-ahead buffer is empty, TECO will wait for the user to type a character. .INDENT -1 3 128 .INDENT 5 Mung mode bit. If this bit is 1, TECO executes as if it is executing a TECO program instead of interactively. If this bit is 1, then .SKIP .LITERAL 1. all informational message are suppressed 2. ^C causes the immediate termination of TECO 3. errors cause TECO to terminate .END LITERAL If this bit is 0, then .LITERAL 1. informational messages are displayed 2. ^C returns the user to a TECO prompt 3. errors return the user to a TECO prompt .END LITERAL .INDENT -1 3 256 .INDENT 5 Truncate lines to terminal width. If this bit is 1, TECO will truncate output lines to fit on lines of the terminal. If this bit is 0, what happens to lines that are too long is determined by the terminal and/or terminal driver. .INDENT -1 3 512 .INDENT 5 The terminal is a scope. If this bit is 1, the W command is defined for CRT's (VT52, VT100, etc.). If this bit is 0, the W command is not defined for CRT's. .INDENT -1 3 1024 .INDENT 5 The terminal is a refresh scope. If this bit is 1, then the W command is defined for refresh terminals. If this bit is a 0, then the terminal is not a refresh scope, and the W command is not defined for refresh scopes. .INDENT -1 3 32768 .INDENT 5 Trap ^C. If this bit is 1 and a ^C is typed, the bit is set to 0 and execution of the current command string continues. This allows TECO macros to detect ^C's. If this bit is 0 and a ^C is typed, the user is returned to the TECO prompt. .INDENT -1 2 EU .INDENT 5 The case flag. Additional help about how to manipulate flags can be found under the FLAGS keyword. This flag allows TECO to be used to input and output upper and lower case characters even if the terminal being used is capable of displaying only uppercase characters. If the EU flag is 1, no case flagging is performed on type-out. If the EU flag is 0, lowercase characters are converted to uppercase on type-out, and are preceded by a ' character. If the EU flag is 1, then lowercase character are converted to uppercase on type-out, but uppercase characters are preceded by a ' character. .INDENT 5 The default value for this flag is -1. If TECO can tell (by asking the operating system) that your terminal cannot support lowercase output, then it will set this flag to 0. .INDENT -1 2 EV .INDENT 5 The EV flag controls what is displayed on the terminal after every successful command string completes. By default, nothing is displayed (EV is 0). EV has the following meanings: .SKIP .LITERAL 0 don't display anything -1 display the line containing the character position 1-31 display the line containing the character position, with a line feed at the character position 32-126 display the line containing the character position, with the character whose ASCII code is represented by ES at the character position m*265+n n has the meanings defined above. m is the number of lines above and below the character position to be displayed. .END LITERAL .INDENT -1 2 EW .INDENT -1 2 EX .INDENT 5 The "EX" command is used to write the current buffer to the output file, copy the remainder of the input file to the output file, and exit from TECO. For example, .SKIP .LITERAL EX$$ .END LITERAL .SKIP (Note that the key echoes as "$" at your terminal, and that you must type the key twice to cause the command to be executed.) .INDENT -1 2 EY .INDENT 5 The EY command... .INDENT -1 2 EZ .INDENT 5 The EZ command... .INDENT -1 2 F_ .INDENT 5 The F_ command... .INDENT -1 2 F' .INDENT 5 The F' command... .INDENT -1 2 F< .INDENT 5 The F< command... .INDENT -1 2 F> .INDENT 5 The F> command... .INDENT -1 2 F| .INDENT 5 The F| command... .INDENT -1 2 FB .INDENT 5 The FB command... .INDENT -1 2 FC .INDENT 5 The FC command... .INDENT -1 2 FD .INDENT 5 The FD command... .INDENT -1 2 FK .INDENT 5 The FK command... .INDENT -1 2 FN .INDENT 5 The FN command... .INDENT -1 2 FORM-FEED .INDENT 5 The ^L (or FORM-FEED) command performs no function in TECO. It echoes as a form feed and can be used to format command strings used in macros. .PARAGRAPH Form feed are what split pages in files. When TECO reads in a page from an input file, a form feed defines the end of the page. Form feeds can be inserted into files like other characters. When inserted, they reside in the edit buffer. When the file is output and TECO is used to edit the file later, the inserted form feeds terminate pages. .INDENT -1 2 FR .INDENT 5 The FR command... .INDENT -1 2 FS .INDENT 5 The FS command is used to replace one string with another string. If the specified text is found, it is deleted and replaced with the new text, and the pointer is positioned at the end of the specified text. If the specified text is not found, the pointer is positioned at the beginning of the buffer. .SKIP The "FS" command is of the form: .SKIP .LITERAL FSold-textnew-text .END LITERAL For example, to replace the next occurrence of "exumple" with "example", use the command .SKIP .LITERAL FSexumple$example$ .END LITERAL (Note that the key echoes as "$" at your terminal.) .INDENT -1 2 Gq .INDENT 5 The Gq command... .INDENT -1 2 G* .INDENT 5 The G* command... .INDENT -1 2 G_ .INDENT 5 The G_ command... .INDENT -1 2 H .INDENT 5 The H command... .INDENT -1 2 I .INDENT 5 The I command is used to insert text, starting at the current pointer. The command is of the form: .SKIP .LITERAL Itext-to-insert .END LITERAL For example, to insert the text "This is a test", type .SKIP .LITERAL IThis is a test$ .END LITERAL (Note that the key is echoed as a "$" sign at your terminal.) .INDENT -1 2 J .INDENT 5 The J command is used to move the text pointer within the editing buffer. Common forms of the command are: .SKIP .LITERAL BJ Point to the beginning of the buffer ZJ Point to the end of the buffer .END LITERAL .INDENT -1 2 K .INDENT 5 The K command is used to delete lines of text from the editing buffer. Common forms of the command are: .SKIP .LITERAL K Delete the text from the pointer through the end of the current line 0K Delete the text from the beginning of the current line to the pointer 5K Delete the next five lines of text, starting from the pointer HK delete all of the text in the editing buffer .END LITERAL .INDENT -1 2 L .INDENT 5 The L command is used to move the text pointer from one line to another. Common forms of the command are: .SKIP .LITERAL L Move to the beginning of the next line 0L Move to the beginning of the current line 5l Move to the fifth line past the current line -1L Move back to the previous line .END LITERAL .INDENT -1 2 LINE-FEED .INDENT 5 The ^J (or LINE-FEED) command has two different functions. .SKIP .INDENT 5 When used as a normal command in a command string, the LINE-FEED character has no effect. It is meant to be used together with the RETURN and SPACE commands to provide the TECO programmer with a way to indent and format TECO programs and macros. .SKIP .INDENT 5 When used as an immediate-mode command (the first character typed after a TECO prompt) a LINE-FEED will cause TECO to immediately move to the front of the next line and type the line (like a 1L1T). The LINE-FEED immediate mode command together with the BACKSPACE immediate mode command (which is like a -1L1T) provides a convenient way to step from line to line within the edit buffer. .INDENT -1 2 M .INDENT 5 The M command... .INDENT -1 2 N .INDENT 5 The N command is the same as the "S" command, except that the search continues across page boundaries, if necessary, until the specified text, or the end of the file, is encountered. The "N" command is of the form: .SKIP .LITERAL Ntext-to-locate .END LITERAL For example, to find the text "find me", which may appear on a later page in the file, use the command .SKIP .LITERAL Nfind me$ .END LITERAL (Note the the key echoes as "$" at your terminal.) .INDENT -1 2 O .INDENT 5 The O command... .INDENT -1 2 P .INDENT 5 The P command is used to write the text in the editing buffer to the output file and read the next page of text from the input file to the editing buffer. Common forms of the command are: .SKIP .LITERAL P Write the current buffer to the output file and get the next page 5P Write the current buffer, plus the next four pages from the input file, to the output file, then read the next page from the input file into the editing buffer .END LITERAL .INDENT -1 2 Q .INDENT 5 The Q command... .INDENT -1 2 R .INDENT 5 The R command... .INDENT -1 2 RETURN .INDENT 5 The ^M (or RETURN) command... .INDENT -1 2 S .INDENT 5 The S command is used to locate a specified string of text in the current buffer. If the text is found, the pointer is positioned after the specified text. If the text is not found, an error message is printed and the pointer is set to the beginning of the buffer. The "S" command is of the form: .SKIP .LITERAL Stext-to-locate .END LITERAL For example, to find the text "find me", use the command .SKIP .LITERAL Sfind me$ .END LITERAL (Note that the key echoes as "$" at your terminal.) .INDENT -1 2 SPACE .INDENT 5 The SPACE command... .INDENT -1 2 T .INDENT 5 The T command is used to type text from the editing buffer. Common forms of the "T" command are: .SKIP .LITERAL T Type text from the pointer to the end of the line 0T Type text from the beginning of the current line to the pointer 5T Print the next five lines of text, starting from the pointer HT Print the entire contents of the editing buffer .END LITERAL .INDENT -1 2 TAB .INDENT 5 The ^I (or TAB) command... .INDENT -1 2 U .INDENT 5 The U command... .INDENT -1 2 V .INDENT 5 The V command... .INDENT -1 2 W .INDENT 5 The W command... .INDENT -1 2 Xq .INDENT 5 The Xq command... .INDENT -1 2 Y .INDENT 5 The Y command... .INDENT -1 2 Z .INDENT 5 The Z command... .INDENT -1 2 [ .INDENT 5 The [ command... .INDENT -1 2 \ .INDENT 5 The \ command... .INDENT -1 2 ] .INDENT 5 The ] command... .INDENT -1 2 | .INDENT 5 The | command... .INDENT -1 1 Conditionals .INDENT 5 The " command provides TECO's conditional branching capability, or "if-then-else" construct. The two general forms of the " command are .SKIP .LITERAL n"x' like "if x(n) then " n"x|' like "if x(n) then else " .END LITERAL .SKIP Where n is an expression and x is a conditional character. The conditional characters determine how the value of the expression is tested. Conditionals may be nested. .PARAGRAPH Additional help is available with TECO COMMANDS ". .INDENT -1 1 Deletion .INDENT 5 The following list summarizes TECO's deletion commands. Additional help is available individually on these commands using the help keyword COMMANDS. .SKIP .LITERAL D delete the character following the character pointer nD delete n characters following the character pointer -nD delete n characters preceding the character pointer m,nD delete characters between positions m and n FDtext$ search for and delete a text string FRtext$ equivalent to ^SDItext$ K delete the line following the character pointer nK delete n lines following the character pointer -nK delete n lines preceding the character pointer m,nK delete characters between positions m and n HK delete the entire edit buffer FKtext$ delete all characters between here and text .END LITERAL .INDENT -1 1 Errors .INDENT 5 All TECO error messages are of the form .SKIP ?XXX Short text message .SKIP and abort TECO's command execution. .SKIP Typing a question mark (?) immediately after TECO's input prompt will print the erring command string up to and including the error point. .SKIP Typing a slash (/) immediately after TECO's input prompt will print a longer explanation of the error. .INDENT -1 2 BNI ?BNI > not in iteration .SKIP There is a close angle bracket not matched by an open angle bracket somewhere to its left. (Note: an iteration in a macro stored in a Q-register must be complete within the Q-register.) .INDENT -1 2 CPQ ?CPQ Can't pop Q-reg .SKIP A ] command has been executed and there is nothing saved on the Q-register push down list. .INDENT -1 2 DTB ?DTB Delete too big .SKIP An nD command has been attempted which is not contained within the current page. .INDENT -1 2 ERR ?ERR ID, text .SKIP Some VAX/VMS system service call failed. The error message ID and text explain the error. .INDENT -1 2 FNF ?FNF File not found "filespec" .SKIP The requested input file could not be located. If this occurred within a macro the colon modified ER or EB command may be necessary. .INDENT -1 2 IAA ?IAA Illegal A arg .SKIP The argument preceding a :A command is negative or 0. .INDENT -1 2 IEC ?IEC Illegal E character .SKIP An invalid E command has been executed. The E character must be followed by an alphabetic to form a legal E command (e.g., ER or EX). .INDENT -1 2 IFC ?IFC Illegal F character .SKIP An invalid F command has been executed. .INDENT -1 2 IIA ?IIA Illegal insert arg .SKIP A command of the form "nItext$" was attempted. This combination of character and text insertion is illegal. .INDENT -1 2 ILL ?ILL Illegal command .SKIP An attempt has been made to execute an invalid TECO command. .INDENT -1 2 ILN ?ILN Illegal number .SKIP An 8 or 9 has been entered when the radix of TECO is set to octal. .INDENT -1 2 IPA ?IPA Illegal P arg .SKIP The argument preceding a P or PW command is negative or 0. .INDENT -1 2 IQC ?IQC Illegal " character .SKIP One of the valid " commands did not follow the ". .INDENT -1 2 IQN ?IQN Illegal Q-reg name .SKIP An illegal Q-register name was specified in one of the Q-register commands. .INDENT -1 2 IRA ?IRA Illegal radix arg .SKIP The argument to a ^R radix command must be 8, 10, or 16. .INDENT -1 2 ISA ?ISA Illegal search arg .SKIP The argument preceding a search command is 0. This argument must not be 0. .INDENT -1 2 ISS ?ISS Illegal search string .SKIP One of the search string special characters (^Q, ^R, etc.) would have modified the search string delimiter (usually ESCAPE). .INDENT -1 2 IUC ?IUC Illegal ^ character .SKIP The character following an ^ must have ASCII value between 100 and 137 inclusive or between 141 and 172 inclusive. .INDENT -1 ?MAP Missing ' .SKIP Every conditional (opened with the " command) must be closed with the ' command. .INDENT -1 2 MEM ?MEM Memory overflow .SKIP Insufficient memory available to complete the current command. Make sure the Q-register area does not contain much unnecessary text. Breaking up the text area into multiple pages might be useful. .INDENT -1 2 NAB ?NAB No arg before ^_ .SKIP The ^_ command must be preceded by either a specific numeric argument or a command that returns a numeric value. .INDENT -1 2 NAC ?NAC No arg before , .SKIP A command has been executed in which a , is not preceded by a numeric argument. .INDENT -1 2 NAE ?NAE No arg before = .SKIP The =, ==, or === command must be preceded by either a specific numeric argument or a command that returns a numeric value. .INDENT -1 2 NAP ?NAP No arg before ) .SKIP A ) parenthesis has been encountered and is not properly preceded by a specific numeric argument or a command that returns a numeric value. .INDENT -1 2 NAQ ?NAQ No arg before " .SKIP The " commands must be preceded by a single numeric argument on which the decision to execute the following commands or skip to the matching ' is based. .INDENT -1 2 NAS ?NAS No arg before ; .SKIP The ; command must be preceded by a single numeric argument on which the decision to execute the following commands or skip to the matching > is based. .INDENT -1 2 NAU ?NAU No arg before U .SKIP The U command must be preceded by either a specific numeric argument or a command that returns a numeric value. .INDENT -1 2 NFI ?NFI No file for input .SKIP Before issuing an input command, such as Y, it is necessary to open an input file by use of a command such as ER or EB. .INDENT -1 2 NFO ?NFO No file for output .SKIP Before issuing an output command such as N search or P it is necessary to open an output file by use of a command such as EW or EB. .INDENT -1 2 NYA ?NYA Numeric arg with Y .SKIP The Y command must not be preceded by either a numeric argument or a command that returns a numeric value. .INDENT -1 2 OFO ?OFO Output file already open "filespec" .SKIP A command has been executed which tried to create an output file, but an output file currently is open. It is typically appropriate to use the EC or EK command as the situation calls for to close the output file. .INDENT -1 2 PDO ?PDO Push-down list overflow .SKIP The command string has become too complex. Simplify it. .INDENT -1 2 POP ?POP Pointer off page .SKIP A J, C or R command has been executed which attempted to move the pointer off the page. The result of executing one of these commands must leave the pointer between 0 and Z, inclusive. The characters referenced by a D or m,nX command must also be within the buffer boundary. .INDENT -1 2 SNI ?SNI ; not in iteration .SKIP A ; command has been executed outside of an open iteration bracket. This command may only be executed within iteration brackets. .INDENT -1 2 SRH ?SRH Search failure "text" .SKIP A search command not preceded by a colon modifier and not within an iteration has failed to find the specified "text". After an S search fails the pointer is left at the beginning of the buffer. After an N or _ search fails the last page of the input file has been input and, in the case of N, output, and the buffer is cleared. In the case of an N search it is usually necessary to close the output file and reopen it for continued editing. .INDENT -1 2 STL ?STL String too long .SKIP A search or file name string is too long. This is most likely the result of a missing ESCAPE after the string. .INDENT -1 2 UTC ?UTC Unterminated command .SKIP This is a general error which is usually caused by an unterminated insert, search, or filespec argument, an unterminated ^A message, an unterminated tag or comment (i.e., unterminated ! construct), or a missing ' character which closes a conditional execution command. .INDENT -1 2 UTM ?UTM Unterminated macro .SKIP This error is the same as the ?UTC error except that the unterminated command was executing from a Q-register (i.e., it was a macro). (Note: An entire command sequence stored in a Q-register must be complete within the Q-register.) .INDENT -1 2 XAB ?XAB Execution aborted .SKIP Execution of TECO was aborted. This is usually due to the typing of CTRL/C. .INDENT -1 2 YCA ?YCA Y command aborted .SKIP An attempt has been made to execute an Y or _ search command with an output file open, that would cause text in the text buffer to be erased without outputting it to the output file. The ED command controls this check. xxx .INDENT -1 2 IFE ?IFE ill-formed numeric expression .SKIP The numeric expression preceding a command doesn't make sense. For example, 5+ isn't a complete expression. .INDENT -1 2 SYS ?SYS %s .SKIP No detailed help available. .INDENT -1 2 UCD ?UCD unable to close and delete output file .SKIP No detailed help available. .INDENT -1 2 UCI ?UCI unable to close input file .SKIP No detailed help available. .INDENT -1 2 UCO ?UCO unable to close output file .SKIP No detailed help available. .INDENT -1 2 UFI ?UFI unable to open file "x" for input .SKIP No detailed help available. .INDENT -1 2 UFO ?UFO unable to open file "x" for output .SKIP No detailed help available. .INDENT -1 2 URC ?URC unable to read character from terminal .SKIP No detailed help available. .INDENT -1 2 URE ?URE unable to read TECO command file .SKIP No detailed help available. .INDENT -1 2 URL ?URL unable to read line from input file .SKIP No detailed help available. .INDENT -1 2 UWL ?UWL unable to write line to output file .SKIP No detailed help available. .INDENT -1 1 Files .INDENT 5 TECO can maintain two input and two output files at the same time. The following commands control files. .SKIP .LITERAL EA secondary output stream EL open log file EB open input and output EN wildcard lookup EC copy and close EP secondary input stream EF close output file ER open input file EG EC with command string EW open output file EI indirect command file EX EC and exit EK close, delete output file .END LITERAL .SKIP The following commands input and output to/from files. .SKIP .LITERAL A append page from input file to edit buffer EQq read file into Q-register EY yank without protection P output edit buffer, input next page Y yank page from input file into edit buffer .END LITERAL .SKIP Individual help is available for each of these commands. .INDENT -1 1 Flags .INDENT 5 Flags control the behavior of TECO. Changing these flags changes the way TECO executes. Flags are manipulated as follows: .SKIP .LITERAL returns the value of the flag n set the value of the flag to n m,n turns off m bits, turns on n bits 0,n turns on n bits m,0 turns off m bits .END LITERAL .SKIP The flags are: .SKIP .LITERAL ED edit level flag ET type-out flag EH help level flag EU case flag EO TECO version number EV edit verify flag ES search verify flag ^x search verify flag .END LITERAL .SKIP Additional help is available for each individual flag using the COMMANDS help keyword. .INDENT -1 1 Help .INDENT 5 TECOC's HELP command allows you to get HELP from the TECOC help library or the default system library. To get help about TECOC from the TECOC library, just say "HELP". To get help from the default system library, say "HELP/S" .INDENT -1 1 Initialization .INDENT 5 TECO initialization... .INDENT -1 1 Insertion .INDENT 5 TECO insertion... .INDENT -1 1 Loops .INDENT 5 Loops... .if MACROS .!++ .! The help section on TECO macros has been commented out since: .! 1) It isn't complete yet. .! 2) The macros don't ship anymore. .INDENT -1 1 Macros .INDENT -1 2 LOCAL .INDENT -1 2 TYPE .INDENT -1 2 SQU .INDENT -1 2 SEARCH .INDENT 5 SEARCH.TEC is a TECO macro used to search files for one or more character strings, and optionally replace them. It is invoked by: .SKIP .LITERAL MUNG SYS$LIBRARY:SEARCH .END LITERAL When run, it asks the following questions: .SKIP .LITERAL Output : Output log file Input <*.MAR>: Input file spec(s) Lines <3>: Number of lines to verify (Absolute) Search: String(s) to search for Replace: Replace for found string (if /CHA specified) Detach : Run detached? .END LITERAL Defaults are shown in angle brackets ("<>"). The "Input" and "Search" questions are repeated until they are answered with a blank line. .INDENT -1 3 Input qualifiers .INDENT -1 /ALL List all file names in main part of log whether they were match or no-match. .INDENT -1 3 Output qualifiers .INDENT -1 /ABS Exact case matches are required and TECO special search match characters must be entered as control characters (i.e., not with an uparrow). .INDENT -1 /CHA Change found string. This causes "Replace:" to be requested after every search string. The changed version is logged in the log file, and the input file is updated. .INDENT -1 /DIR Compile a directory of the files now and use it to search. .INDENT -1 /ESC ESCape is the only delimiter for Search and Replace strings. Normally a carriage return is used as the delimiter. Thus multi-line search or replacement strings must be entered using the /ESC option. .INDENT -1 /MAT Report only files with matches (No end list of no-match files). .INDENT -1 3 Log file .INDENT 5 For each file which contains at least one match, a banner is printed out, and each instance, along with the 3 (or the number requested by the user) lines before and after it. A header line identifying the page number is printed with each instance. Once all of the files containing matches are logged, a list of files which do not contain matches is printed (unless the user specifies "/MAT" or "/ALL"). .INDENT -1 3 File specs .INDENT 5 SEARCH allows a list of file specifications terminated by a blank line to be requested. Any or all of these may include wildcards. .INDENT -1 3 Search strings .INDENT 5 The search strings are entered as a list ending with a blank line and are terminated with a carriage return unless "/ESC" is specified. Any of the TECO string matching constructs may be used. Unless "/ABS" is used, this includes "^" constructs for control characters, thus "^G" would search for a CTRL/G (bell) character. .endif MACROS .INDENT -1 1 Memory .INDENT 5 TECO automatically remembers the file being edited. The file's name is stored in a process logical called TEC$MEMORY. If you invoke TECO without specifying a file-spec, TECO will read its memory logical and re-edit the last edited file. TECO's memory feature is completely inhibited by the /NOMEMORY qualifier. .INDENT -1 .INDENT -1 1 Qualifiers .INDENT 5 Qualifiers... .INDENT -1 2 -c .INDENT -1 2 -d .INDENT -1 2 -m .INDENT -1 2 -p .INDENT -1 2 -r .INDENT -1 1 Q-registers .INDENT 5 Q-register... .INDENT -1 1 Release_notes .INDENT 5 Release_notes... .INDENT -1 1 Searching .INDENT 5 TECO provides several ways to search for text strings. The edit buffer can be searched in a forward or backward direction. Files can be searched in a forward direction. Within the edit buffer, the area to be searched can be bounded. Search commands can return values so that the success or failure of a search can control execution of macros. Special match control characters can be used in search arguments to allow pattern matching. Search commands can be modified by the @ character. .SKIP .INDENT 5 All search commands leave the character pointer positioned after the last character in the search string. Help is available individually for the following commands: .SKIP .LITERAL S edit buffer search FS search and replace N file search FN file search and replace _ destructive file search FD search and delete .END LITERAL .INDENT -1 2 Match_control_characters .INDENT 5 TECO supports special match control constructs in search strings. These constructs allow for special pattern matching. The constructs are .SKIP .LITERAL ^EA alphabetics ^EV lowercase ^EB non-alphanumerics ^EW uppercase ^EC alphanumerics, . or $ ^EX anything ^ED digits ^E octal nnn ^EGq anything in q-register q ^E[a,b..] a,b... ^EL LF, VT, FF ^Nx anything but x ^EMx * of x ^S non-alphanumerics ^ER alphanumerics ^X anything ^ES * of spaces, tabs .END LITERAL .INDENT -1 3 ^EA .INDENT 5 The ^EA match control construct indicates that any alphabetic character is acceptable in this position. Alphabetic characters are upper and lower case characters from a to z. .INDENT -1 3 ^EB .INDENT 5 The ^EB match control construct indicates that any separator character is acceptable in this position. Characters other than letters (a-z upper and lowercase) and digits are separators. The ^EB match control construct is the same as the ^S match control construct. .INDENT -1 3 ^EC .INDENT 5 The ^EC match control construct indicates that any character that is valid in a symbol name is acceptable in this position. The characters that are valid in symbol names are alphanumerics (letters and digits), period and dollar sign. .INDENT -1 3 ^ED .INDENT 5 The ^ED match control construct indicates that any digit character is acceptable in this position. Digits are 0 through 9. .INDENT -1 3 ^EGq .INDENT 5 The ^EGq match control construct indicates that any character in q-register q is acceptable in this position. For instance, if q-register q contains A, B and C, then A, B or C is acceptable in this position. .INDENT -1 3 ^EL .INDENT 5 The ^EL match control construct indicates that any line terminator character is acceptable in this position. Line terminator characters are LINE-FEED, VERTICAL-TAB and FORM-FEED. .INDENT -1 3 ^EMx .INDENT 5 The ^EMx match control construct indicates that any non-zero number of occurrences of x is acceptable in this position. x can be another match control construct. For instance, ^EMZ will match Z, ZZ, ZZZ, ZZZZ, etc. .INDENT -1 3 ^ER .INDENT 5 The ^ER match control construct indicates that any alphanumeric character is acceptable in this position. Alphanumeric characters are letter (a-z upper or lower case) and digits (0-9). .INDENT -1 3 ^ES .INDENT 5 The ^ES match control construct indicates that a non-null string of spaces and/or tabs is acceptable in this position. For instance, the following command string .SKIP .LITERAL j$$ .END LITERAL .SKIP will trim all spaces and tabs off the end of lines of text in the edit buffer. .INDENT -1 3 ^EV .INDENT 5 The ^EV match control construct indicates that any lower case alphabetic character (a-z) is acceptable in this position. .INDENT -1 3 ^EW .INDENT 5 The ^EV match control construct indicates that any upper case alphabetic character (A-Z) is acceptable in this position. .INDENT -1 3 ^EX .INDENT 5 The ^EX match control construct indicates that any character is acceptable in this position. The ^X match control construct is the same as the ^EX match control construct. .INDENT -1 3 ^E .INDENT 5 The ^E match control construct indicates that the character that has octal code nnn is acceptable in this position. This construct is useful for specifying characters in search strings that would cause unpleasant effects if they were entered directly. Characters like NULL, DELETE and ESCAPE fall into this category. .INDENT -1 3 ^E[a,b,c...] .INDENT 5 The ^E[a,b,c...] match control construct indicates that any of the characters a, b, c... are acceptable in this position. For instance, the command string .SKIP .LITERAL sth^E[i,a]^E[s,t]$$ .END LITERAL .SKIP would match "this" or "that" or "thit" or "thas". .INDENT -1 3 ^Nx .INDENT 5 The ^Nx match control construct indicates that any character except x is acceptable in this position. x can be a match control construct. For instance, the command string .SKIP .LITERAL s^N^E[a,b]$$ .END LITERAL .SKIP would match any character except lowercase a and lowercase b. .INDENT -1 3 ^S .INDENT 5 The ^S match control construct indicates that any separator character is acceptable in this position. Characters other than letters (a-z upper and lowercase) and digits are separators. The ^S match control construct is the same as the ^EB match control construct. .INDENT -1 3 ^X .INDENT 5 The ^X match control construct indicates that any character is acceptable in this position. The ^X match control construct is the same as the ^EX match control construct. .INDENT -1 2 String_building_characters .INDENT 5 It is sometimes helpful to be able to include characters within search arguments that cannot be entered directly. The ESCAPE character is a good example, as are ^C, ^Y and DELETE. TECO supports special string building constructs that allow special characters to be entered in search commands. .INDENT -1 3 ^Q .INDENT 5 The ^Q string build construct indicates that the character following the ^Q is to be used literally rather than as a match control character. The ^Q string build construct is the same as the ^R string build construct. .INDENT -1 3 ^R .INDENT 5 The ^R string build construct indicates that the character following the ^Q is to be used literally rather than as a match control character. The ^R string build construct is the same as the ^Q string build construct. .INDENT -1 3 ^V .INDENT 5 The ^V string build construct indicates that the character following the ^V is to be used as the equivalent character in lower case. For instance, ^VR would equal r in a search argument. .INDENT -1 3 ^V^V .INDENT 5 The ^V^V string build construct indicates that all characters following the ^V^V in the string are to be converted to lower case. All characters in the string are converted up to the end of the string or a ^W^W string build construct. The ^W string build construct can be used to override the ^V^V on a single-character basis. .INDENT -1 3 ^W .INDENT 5 The ^W string build construct indicates that the character following the ^W is to be used as the equivalent character in upper case. For instance, ^Wr would equal R in a search argument. .INDENT -1 3 ^W^W .INDENT 5 The ^W^W string build construct indicates that all characters following the ^W^W in the string are to be converted to upper case. All characters in the string are converted up to the end of the string or a ^V^V string build construct. The ^V string build construct can be used to override the ^W^W on a single-character basis. .INDENT -1 3 ^EQq .INDENT 5 The ^EQq string build construct that the string contained in q-register q is to be used in this position in the search string. .INDENT -1 3 ^EUq .INDENT 5 The ^EUq string build construct indicates that that character whose ASCII code is contained in q-register q is to be used in this position in the search string. .INDENT -1 1 TECO .INDENT 5 TECO is a text editing program and a programming language. It allows the user to edit text interactively using simple, short (one or two letter) commands. The commands can be combined to form TECO programs, or macros. These macros can be stored in files and executed by the user while in TECO or in a stand-alone fashion. .SKIP Format: teco -c -d data -m -p -r filespec .SKIP The teco command needs to be defined as a foreign command in your LOGIN.COM file. The following lines illustrate how this can be done: .SKIP .LITERAL te*co :== $SYS$SYSTEM:TECOC ma*ke :== $SYS$SYSTEM:TECOC -c mu*ng :== $SYS$SYSTEM:TECOC -p .END LITERAL