1 u`u~oq"
  2 
  3 !change!:ic!:x1:x2sq1-q1diq2!:x1:x2sq1-q1diq2o?end_of_lib?
  4 
  5 !comma!!,!<:l 0t:vw2q2-1"ng2-dq2-2"e0a-056."e-d0;'''c>0u2o?end_of_lib?
  6 
  7 !create_library!i/skeleton_library/152<040.i>.-168,.x1 -168d es1/teco$teco_search/u2q2"e:t/No teco library found./=o?end_of_lib?'
  8 i/ec|copy /g1q2-167di/registers.teco|/.-24-q2,.x1-q1dm10u1o?end_of_lib?
  9 
 10 !delete!:id?u5w.u3:x1:x2sq1.-q1u4sq2q5-.+q4"gq4,.k:'q3j:t/Too much to delete.
 11 /'?:x1:x2q`mdq1q2o?end_of_lib?
 12 
 13 !equals!!line_no!!=!:i=/(.u10u2j<l%2w.-q1;>q1j0a-12."e%2w'q2)/
 14 u1q1,q~"eq1,q`"e:i1/:x1m=/o/finish_lib_file/'
 15 :i1/:x1q`m=/o/finish_lib_file/'
 16 :i1/:x1q~,q`m=/o/finish_lib_file/o?end_of_lib?
 17 
 18 !help!:ih|:x1g1168-q1<040.i>.-168,.x4-168des4/teco$teco_search/"e0u1:t/No such macro./=o/end/'
 19 .u2012.i012.ig1q2,.x1q2,.keiq40u4.u3q2+2j<:sq1;.-q3;1a,041."l0l.u4:n/^$/;q4,.t0;'>
 20 q4"e:t/No macro description found./='0u1q2,q3k!end!|:x1mhq1o?end_of_lib?
 21 
 22 !library!:x1:x4.u2z-.u3ei/registers.teco/q2j2li/!/g1i/!/g4i/o?end_of_lib?/012.i012.i
 23 .u4i/:x"q2,z-q3eo!registers.teco!q2,z-q3kec!an registers.teco /g1i/.teco!0u1/q4,.x1q4,.ko?finish_lib_file?o?end_of_lib?
 24 
 25 !library_registers!:t|
 26 Use of registers:
 27 macro          Registers
 28 Name       Numeric    Char              Description of Use
 29 
 30 ,                             See the description of the comma teco macro.
 31 
 32 =                             See the description of the equals teco macro.
 33 
 34 change              c 1 2     This macro takes two string arguments. It searches
 35                               for the first, deletes it, and inserts the second.
 36                               The macro is stored in Q-register c, and the
 37                               strings in Q-registers 1 and 2.
 38 
 39 comma     2                   This macro is similar to the edm comment mode
 40                               request. Starting on the current line, each line
 41                               is typed without its newline and anything then
 42                               typed by the user is appended to the line. If the
 43                               user types only a period ("."), this macro is
 44                               terminated without affecting the last line. Note -
 45                               for blank lines nothing is typed although user
 46                               input is expected.
 47 
 48 create_library
 49           1 2                 This macro creates a teco marco library,
 50                               registers.teco, in the working directory to which
 51                               macros may be added with the library macro, macros
 52                               deleted with the unlib macro, macro descriptions
 53                               added with the write_help macro, and macro
 54                               descriptions read with the help macro.
 55 
 56 delete    3 4 5     d 1 2     This macro takes two string arguments and an
 57                               optional numeric one. It searches for the first
 58                               string, then searches for the second; the two
 59                               search strings and any intervening characters
 60                               define the delete string. If the length of the
 61                               delete string is less than the numeric argument,
 62                               or no numeric argument is given, the defined
 63                               string is then deleted. The macro is stored in
 64                               Q-register d and the strings in Q-registers 1 and
 65                               2.
 66 
 67 equals      1 2         =     This macro returns an expression whose value is
 68                               the current line number. This is computed every
 69                               time the macro is called by counting the number of
 70                               newlines between the beginning of the buffer and
 71                               the current pointer. The macro is stored in
 72                               Q-register =. This macro may be used in an
 73                               expression as a numeric quantity.
 74 
 75 help      1 2 3 4   h         This macro takes one string argument. The string
 76                               contains the name of a macro, and teco search
 77                               rules are used to locate the macro. If a
 78                               description of the macro exists, it is typed.
 79                               This macro is stored in Q-register h.
 80 
 81 library   1 2 3 4             This macro takes two string arguments and adds a
 82                               macro to registers.teco in the working directory.
 83                               The first string is the name of the macro, and the
 84                               second is the actual macro text. This macro stores
 85                               the macro text in the library in the proper
 86                               format, and adds the name macro.teco to the
 87                               library.
 88 
 89 library_registers             This macro takes no arguments and types out all
 90                               macro descriptions for teco macros in the
 91                               directory containing teco. These are the teco
 92                               macros provided by the installation.
 93 
 94 line_no                       See description of the equals teco macro.
 95 
 96 list      1 2                 This macro takes no arguments and lists **.teco in
 97                               the directory containing teco. These are the teco
 98                               macros provided by the installation.
 99 
100 list_all_macros 1 2           This macro lists **.teco in the working directory,
101                               login directory, and the directory containing
102                               teco.
103 
104 list_text_registers
105           1 2 3               This macro takes no arguments. It types out the
106                               contents of all Q-registers that contain text
107                               except Q-registers ",',1,2,3 . For each text
108                               register, a line containing a q and the register
109                               name is typed; then the contents of the register
110                               are typed; finally, a newline is typed.
111 
112 registers                     This macro takes no arguments. It types out all
113                               the macro descriptions for a user teco macro
114                               library. This macro is always part of a user teco
115                               macro library.
116 
117 restart             * r       This macro takes one string argument. This string
118                               is the relative pathname of the text to be edited.
119                               The buffer is emptied, the new text read, and the
120                               buffer pointer set to the beginning of the text.
121                               The macro is stored in Q-register r and the
122                               relative pathname in Q-register *. See
123                               description of the start_up teco macro.
124 
125 start_up  1         * f w     This macro takes no arguments; however, it
126                               attempts to pop Q-registers off the pushdown
127                               stack. This macro is called automatically when
128                               teco is entered from command level. It allows the
129                               user to specify none, one, or two arguments to
130                               teco. First, Q-registers f and w are loaded with
131                               the string eoq*. If one or more arguments are
132                               given, the first is taken as the relative pathname
133                               of the text to be edited and stored in Q-register
134                               *. The text is read and the buffer pointer set to
135                               the beginning of the text. If there is more than
136                               one argument, the second is stored in Q-register
137                               * and becomes the relative pathname of the output
138                               file.
139 
140 type        1 2 3       t     This macro types out the current line and possibly
141                               other lines with a <^H> to indicate the current
142                               pointer position. It can take two numeric
143                               arguments; both are optional. If no arguments are
144                               given, the current line is typed. If only one
145                               argument is given, the macro types what the t
146                               command would type with that argument, but
147                               includes the entire current line. If both
148                               arguments are given, the first must be negative
149                               and the second positive. Each will be used as an
150                               argument to the t command. The macro is stored in
151                               Q-register t.
152 
153 unlib     1 2 3 4             This macro takes one string argument, the name of
154                               a macro in a user teco macro library, and removes
155                               it from the library.  The library from which the
156                               macro is removed must be in the working directory
157                               and have as one of its names registers.teco. The
158                               text for the macro is removed from the library,
159                               and the name macro.teco is deleted.
160 
161 upper_case                    This macro takes no arguments. It goes through the
162                               current text and converts all lowercase letters to
163                               uppercase. Only letters are affected. The pointer
164                               is not moved.
165 
166 write_help 1 5 6 7 8          This macro allows a user to write a macro
167                               description easily. No arguments are given; when
168                               input is asked for, the user may type in his
169                               descriptive text. If a line of input ends in a
170                               dollar sign ("$"), then the line is executed;
171                               otherwise, the line is inserted as text. A single
172                               blank line ends the macro.
173 
174 |o?end_of_lib?
175 
176 !list_all_macros!ec?ioa_ "^/^-^-working directory";list -nm -nhe **.teco?
177 ec?ioa_ "^-^-home directory";ln -sm -lk -pn [home_dir]  **.teco?
178 !list!
179 i/skeleton_library/152<040.i>.-168,.x1 -168d es1/teco$teco_search/u2q2"e:t/No teco library found./=o?end_of_lib?'
180 i?ec|ioa_ "^-^-teco library";ln -sm -lk -pn [directory ?g1q2-168di?] **.teco|?.-q2-66,.x1-q1dm10u1o?end_of_lib?
181 
182 !list_text_registers!i'!#$%&()*+,-./0456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ '90r0u1.u2
183 90<i/g/c0airi/.-q2u1q/ci/,q1"eq1-1|(0a-061.)"n:t|q/-23aii/|w=/.-37,.x3-37dm3i/
184 /q2,.t''q2,.k>0u3o?end_of_lib?
185 
186 !restart!:ir|:x*hkeiq*j|:x*hkeiq*jo?end_of_lib?
187 
188 !start_up!]1
189 :iw{eoq*{ :ifqw
190 q1"n]*eiq*jq1-1"g]*''
191 o?end_of_lib?
192 
193 !type!:it|u2u1u3 q1,q3"e0u1 q2"l q2u1 1u2 ''q2,q3"e1u2'$["i/<^H>/]"q1t-3dq2t|q~,q`mto?end_of_lib?
194 
195 !unlib!:x1.u2z-.u3ei/registers.teco/q2ji/!/g1i/!/q2,.x4q2,.k:sq4"n.-q4u4s/o?end_of_lib?
196 
197 /q4,.ki/ec%dn /g1i/.teco%:x"q2,z-q3eo%registers.teco%q2,z-q3k0u1/q4,.x1q4,.ko/finish_lib_file/'q2,z-q3k0u1o?end_of_lib?
198 
199 !upper_case!.u2jz<1au1cq1,140."gq1,173."l-dq1-40.i''>q2jo?end_of_lib?
200 
201 !write_help!.u6z-.u7:i1|ei/registers.teco/q6ji/!/i/registers/i/!/.-11,.x8-11dsq8l4t4lz-.u8
202 <:vw5 1-q5;g5-1a-044."e-q5dm5'>z-q8ji/
203 /:x8q6,z-q7eo/registers.teco/q6,z-q7k0u10u5|o/finish_lib_file/o?end_of_lib?
204 
205 !finish_lib_file!m1!end_of_lib!