home *** CD-ROM | disk | FTP | other *** search
/ vsiftp.vmssoftware.com / VSIPUBLIC@vsiftp.vmssoftware.com.tar / FREEWARE / FREEWARE40.ZIP / flistfrontend / doc / d1.rno < prev    next >
Encoding:
Text File  |  1985-01-09  |  18.4 KB  |  570 lines

  1. .; $Id: d1.rno,v 1.2 1985/01/09 10:27:16 tom Exp $
  2. .req    "d0.req"
  3. .; Introductory stuff
  4. .;
  5. FLIST (directory-editor) provides you, the user with a powerful and versatile
  6. interface to VAX/VMS.
  7. Rather than the line-oriented, "glass teletype",
  8. FLIST is a full-screen editor which shows the effects of commands rapidly
  9. and naturally.
  10. It provides both interfaces to VAX/VMS file management commands (EDIT, COPY,
  11. RENAME) as well as extensions to the command interface to better
  12. integrate VMS commands, and to augment them
  13. .lm+8
  14. .b.i-4
  15. o    Directory sorting shows you the
  16. relationship between files based on their directory-attributes
  17. (e.g., size, date).
  18. .b.i-4
  19. o    Alternate display formats (from a palette of directory-attributes)
  20. can easily be constructed.
  21. .b.i-4
  22. .x Command history
  23. .x Command substitution
  24. o    A built-in command history and parameter substitution
  25. facility makes FLIST simple to learn and easy to use.
  26. .b.i-4
  27. o    Commands which alter or create files are reflected in
  28. the display, which is updated automatically for most operations.
  29. .b.lm-8
  30.  
  31. .hl    Configuration Requirements
  32. FLIST's screen management will run on any VT52, VT100 or other
  33. ANSI x3.64-compatible terminal.
  34. .b
  35. FLIST is written in VMS-C, and occupies approximately one hundred kilobytes
  36. of memory (three-fourths code).
  37. It has been tested under VMS versions 3.6, 3.7 and 4.0 (field test 2).
  38. .b
  39. FLIST is used to manage files on a Files-11 (disk) device.
  40.  
  41. .hl    Display Window
  42. FLIST uses the entire terminal screen to display the directory.
  43. The file name, type and version occupy the left side of the screen.
  44. For easy readability, all items are aligned into columns.
  45. .x Display list
  46. The width of the name-columns is extended to match the widest item
  47. in the current display-list.
  48. .b
  49. Additional information about each file is presented in columns to the
  50. right of the name columns.
  51. .x Column-list
  52. The normal display format (the column-list)
  53. shows the file size, its creation date and
  54. protection mask.
  55. The display format may be altered either by permuting the columns or
  56. by substituting columns with different attributes.
  57. A sample display layout is shown in Figure 1.
  58. .req "d1.pic"
  59. .;
  60. .hl+1    Status Line
  61. The last line in the screen is reserved for status and messages:
  62. .lm+8
  63. .b.i-4
  64. .x Defaults>Current directory
  65. o    Normally the status line shows the current default directory
  66. (set to the directory containing the current file entry), and the
  67. index number in the total number of files in the display-list.
  68. .b.i-4
  69. o    During execution of more lengthy commands, the index-number field
  70. will be replaced by "working...".
  71. .b.i-4
  72. .x Error messages
  73. o    Commands which generate an error message send the text to the
  74. status line.
  75. If an error message has already been sent to the status line by the current
  76. command, FLIST pauses before writing the new message, giving you
  77. time to see each message.
  78. .b.i-4
  79. o    Error- and informational-messages remain on the status line until
  80. they are replaced by another message, or until you enter a new command.
  81. Normally the first character of a new command causes FLIST to clear the
  82. message line (showing the current directory).
  83. Single-keystroke commands are treated specially, however.
  84. For example, if you type a CTRL/T (scroll-to-top) when the cursor is
  85. already at the top of the display list, FLIST will warn you.
  86. Repeating the CTRL/T does not cause the message to be cleared,
  87. because FLIST can immediately test for this repeated error.
  88. .b.lm-8
  89. .;
  90. .hl    Display-List
  91. .x Display list
  92. The list of files which are described in FLIST's tables is denoted the
  93. ^&display-list\&.
  94. FLIST maintains a table of information (indeed, a private copy of the
  95. directory) for each file, whether or not it is currently displayed.
  96. Commands which alter the display format present different slices of
  97. this directory.
  98. .b
  99. .x Read-list
  100. FLIST maintains an auxiliary table, the ^&read-list\&,
  101. which is a list of the expanded file specifications used to construct
  102. the display-list.
  103. .b
  104. FLIST is hierarchical;
  105. it may recur upon itself to construct new read- and display-lists.
  106.  
  107. .hl-1    Command Entry
  108. FLIST accepts three types of user input:
  109. .lm+8
  110. .b.i-4
  111. o    Control characters,
  112. .b.i-4
  113. o    Keypad, and
  114. .b.i-4
  115. o    Typed ("visible") commands.
  116. .b.lm-8
  117. All keypad commands correspond to either a control character or a visible
  118. command.
  119. The control character commands may also be entered by a short "visible" command.
  120. Thus, FLIST makes use of single-keystroke commands for efficiency, but
  121. will run properly on terminals which do not have a keypad, or
  122. through interfaces which cannot pass the complete set of control characters.
  123. .;
  124. .hl+1    Configuration Requirements
  125. The minimum keyset needed to run FLIST is:
  126. .lm+8
  127. .b.i-4
  128. o    The normal set of "printing" ASCII characters, and
  129. .b.i-4
  130. o    The cursor arrow keys (UP-ARROW, DOWN-ARROW, LEFT-ARROW, RIGHT-ARROW),
  131. and
  132. .b.i-4
  133. o    VMS-related control keys: CTRL/U (or CTRL/X), CTRL/K, CTRL/N, CTRL/W,
  134. DELETE and RETURN.
  135. .b.lm-8
  136. Other control keys such as LINE-FEED, BACKSPACE, CTRL/R and CTRL/N are
  137. useful but not essential.
  138. .;
  139. .hl    Scrolling
  140. .x Scrolling commands
  141. FLIST accepts command input in a natural fashion.
  142. To operate upon a file, you scroll the cursor to the line
  143. representing the file and enters a command.
  144. Scrolling is accomplished by entering
  145. .ls
  146. .x Scrolling commands>Number
  147. .le;the index number in the display to which the cursor should jump, or
  148. .le;a single-keystroke scrolling command, or
  149. .le;the command to which a single-key command corresponds.
  150. .els
  151. .b
  152. After scrolling, FLIST displays the index of the cursor in the display
  153. list in the status line.
  154. .x Display list>deleting files
  155. Files which have been deleted are excluded from this index.
  156. (FLIST automatically skips over deleted-file entries,
  157. which are blanked).
  158. .b
  159. FLIST's scrolling commands are summarized below.
  160. The "visible" commands begin with a slash "/".
  161. Their minimum abbreviation is shown in parentheses:
  162. .lm+8
  163. .tp5
  164. .x Key assignments>CTRL/T, scroll to top
  165. .x Scrolling commands>CTRL/T, scroll to top
  166. .x CTRL/T, scroll to top
  167. .b.i-4;CTRL/T
  168. .x Scrolling commands>/TOP, scroll to top
  169. .x /TOP, scroll to top
  170. .br.i-4;/TOP (/TOP)
  171. .br;Scroll to the first file entry in the display-list.
  172. .;
  173. .tp5
  174. .x Scrolling commands>CTRL/E, scroll to end
  175. .x Key assignments>CTRL/E>scroll to end
  176. .x CTRL/E>scroll to end
  177. .b.i-4;CTRL/E
  178. .br.i-4;/END (/END)
  179. .x Scrolling commands>/END, scroll to end
  180. .x /END, scroll to end
  181. .br;Scroll to the end of the display-list.
  182. .;
  183. .tp5
  184. .x Scrolling commands>CTRL/F, scroll forward
  185. .x Key assignments>CTRL/F>scroll forward
  186. .x CTRL/F>scroll forward
  187. .b.i-4;CTRL/F
  188. .x Scrolling commands>/FORWARD, scroll forward
  189. .x /FORWARD, scroll forward
  190. .br.i-4;/FORWARD (/F)
  191. .br;Scroll forward by one screen.
  192. If less than one screen remains in the display-list,
  193. scroll upward until the end-entry is visible, then place the cursor
  194. at the resulting top-of-screen (i.e., the HOME position).
  195. .;
  196. .tp5
  197. .x Scrolling commands>CTRL/B, scroll backward
  198. .x Key assignments>CTRL/B, scroll backward
  199. .x CTRL/B, scroll backward
  200. .b.i-4;CTRL/B
  201. .br.i-4;/BACKWARD (/B)
  202. .x Scrolling commands>/BACKWARD, scroll backward
  203. .x /BACKWARD, scroll backward
  204. .br;Scroll backward by one screen.
  205. If less than one screen precedes the display-list,
  206. scroll to the top of the display-list.
  207. .;
  208. .tp5
  209. .x Scrolling commands>/HOME
  210. .x /HOME
  211. .b.i-4;/HOME (/H)
  212. .br;Scroll to the HOME position (top of the current screen).
  213. .;
  214. .tp5
  215. .x Scrolling commands>/MIDDLE
  216. .x /MIDDLE
  217. .b.i-4;/MIDDLE (/M)
  218. .br;Scroll to the middle of the current screen.
  219. .;
  220. .tp5
  221. .x Scrolling commands>/LOW
  222. .x /LOW
  223. .b.i-4;/LOW (/L)
  224. .br;Scroll to the LOW position (bottom of the current screen).
  225. .;
  226. .tp5
  227. .x Scrolling commands>Backspace key, move up
  228. .x Key assignments>Backspace key>move up
  229. .x Backspace key>move up
  230. .b.i-4;BACKSPACE
  231. .x Scrolling commands>Up-arrow, move up
  232. .x Key assignments>Up-arrow>move up
  233. .x Up-arrow>move up
  234. .br.i-4;UP-ARROW
  235. .br;Move up by one line.
  236. If the cursor is at the top of the screen, index the display by one line,
  237. then place the cursor at the resulting top of screen.
  238. .;
  239. .tp5
  240. .x Scrolling commands>Return key, move down
  241. .x Key assignments>Return key>move down
  242. .x Return key>move down
  243. .b.i-4;RETURN
  244. .x Scrolling commands>ENTER key, move down
  245. .x Key assignments>ENTER key>move down
  246. .x ENTER key>move down
  247. .br.i-4;ENTER
  248. .x Scrolling commands>Down-arrow, move down
  249. .x Key assignments>Down-arrow>move down
  250. .x Down-arrow>move down
  251. .br.i-4;DOWN-ARROW
  252. .br;Move the cursor down by one line.
  253. If the cursor is at the bottom of the screen, index the display by one line,
  254. then place the cursor at the resulting bottom of screen.
  255. .;
  256. .tp5
  257. .x Scrolling commands>Number
  258. .x Number-scrolling
  259. .b.i-4;_{number_}
  260. .br;A number directs FLIST to place the cursor at the file entry with
  261. that index.
  262. If followed by a plus or minus sign, FLIST moves the cursor relative
  263. to the current index.
  264. .lm-8
  265. .;
  266. .;
  267. .hl    Visible Command Entry
  268. Whenever you type a printing character,
  269. FLIST enters visible-command mode, and echoes the command characters
  270. until you hit RETURN (or ENTER, which is always treated the same by FLIST).
  271. The echoed command is displayed immediately after the file name columns,
  272. and may overlay the directory attributes.
  273. .x Highlighting>command editing
  274. (To distinguish the command text from the display, the command is
  275. lowercased and highlighted).
  276. .b
  277. .hl    Command Editing
  278. .x Line editing
  279. The command may be edited or canceled:
  280. .lm+8
  281. .tp5
  282. .x Key assignments>Delete key, delete a character
  283. .x Delete key, delete a character
  284. .b.i-4;DELETE
  285. .br;Delete the character before the cursor.
  286. .;
  287. .tp5
  288. .x Key assignments>Line-feed key, delete a word
  289. .x Line-feed key, delete a word
  290. .b.i-4;LINE-FEED
  291. .br;Delete the "word" before the cursor.
  292. A word is delimited by spaces.
  293. .;
  294. .tp5
  295. .x Key assignments>Backspace key>move to beginning of line
  296. .x Backspace key>move to beginning of line
  297. .b.i-4;BACKSPACE
  298. .x Key assignments>Keypad#0>move to beginning of line
  299. .x Keypad#0>move to beginning of line
  300. .br.i-4;KEYPAD-"0"
  301. .br;Move the cursor to the beginning of the command.
  302. .;
  303. .tp5
  304. .x Key assignments>CTRL/D, move cursor left
  305. .x CTRL/D, move cursor left
  306. .b.i-4;CTRL/D
  307. .x Key assignments>Left-arrow, move cursor left
  308. .x Left-arrow, move cursor left
  309. .br.i-4;LEFT-ARROW
  310. .br;Move the cursor left one character.
  311. .;
  312. .tp5
  313. .x Key assignments>CTRL/F>move cursor right
  314. .x CTRL/F>move cursor right
  315. .b.i-4;CTRL/F
  316. .x Key assignments>Right-arrow, move cursor right
  317. .x Right-arrow, move cursor right
  318. .br.i-4;RIGHT-ARROW
  319. .br;Move the cursor right one character.
  320. .;
  321. .tp5
  322. .x Key assignments>CTRL/E>move to end of line
  323. .x CTRL/E>move to end of line
  324. .b.i-4;CTRL/E
  325. .x Key assignments>Keypad#2>move to end of line
  326. .x Keypad#2>move to end of line
  327. .br.i-4;KEYPAD-"2"
  328. .br;Move the cursor to the end of the command.
  329. .;
  330. .tp5
  331. .x Key assignments>CTRL/U, abort command
  332. .x CTRL/U, abort command
  333. .b.i-4;CTRL/U
  334. .x Key assignments>CTRL/X, abort command
  335. .x CTRL/X, abort command
  336. .br.i-4;CTRL/X
  337. .br;Erase the command, exiting from command-entry mode.
  338. .;
  339. .tp5
  340. .x Key assignments>Return key>enter command
  341. .x Return key>enter command
  342. .b.i-4;RETURN
  343. .x Key assignments>ENTER key>enter command
  344. .x ENTER key>enter command
  345. .br.i-4;ENTER
  346. .br;Completes the command, directing FLIST to execute it.
  347. .b.lm-8
  348. .;
  349. .hl    Command History
  350. .x Command history
  351. .y Recall>see Command history
  352. .;
  353. .;
  354. FLIST maintains a hierarchical command-history.
  355. Each visible command (except number-scrolling) is saved in a stack
  356. for later retrieval:
  357. .lm+8
  358. .b.i-4
  359. o    If the latest command text matches any of the most recent 3
  360. items (the top of stack)
  361. no push is done, but the top-of-stack is rotated.
  362. .b.i-4
  363. o    If no match is found in the top of stack, the entire stack
  364. is pushed.
  365. .b.lm-8
  366. The combined strategy results in a much longer effective buffer
  367. memory than would a simple stack, since frequently used commands
  368. tend to be repeated within one or two commands.
  369. .b
  370. The stack is hierarchical as well.
  371. If you enter a new display-list, FLIST
  372. allocates a new stack buffer and copies the state of the higher
  373. level to the new stack.
  374. On exit from the lower level, FLIST resumes with the original
  375. state of the higher level.
  376. Thus, excursions will not clutter the command history.
  377. .b
  378. Stacked commands may be recalled for reexecution
  379. with single-keystroke commands:
  380. .lm+8
  381. .tp5
  382. .x Key assignments>Keypad#"-", recall
  383. .x Keypad#"-", recall
  384. .b.i-4;KEYPAD-"-"
  385. .x Key assignments>"-", recall
  386. .x "-", recall
  387. .br.i-4;"-"
  388. .br;FLIST enters command-entry mode with the last command text shown,
  389. and the cursor positioned at the end of the command.
  390. .b
  391. The "-" is recognized only when FLIST is not in comment-entry mode,
  392. since this character is used in VMS commands.
  393. The keypad control may be used at any point.
  394. .;
  395. .tp5
  396. .x Key assignments>Up-arrow>recall (older)
  397. .x Up-arrow>recall (older)
  398. .b.i-4;UP-ARROW
  399. .x Key assignments>Keypad#"-", recall
  400. .x Keypad#"-", recall
  401. .br.i-4;KEYPAD-"-"
  402. .br;If FLIST is in command-entry mode (i.e., the text of a partly completed
  403. command is visible on the screen), these controls attempt to recall
  404. an earlier stacked command.
  405. .b
  406. The UP-ARROW key is used for command retrieval only when FLIST is
  407. in command-entry mode, since otherwise it is used for cursor movement.
  408. .;
  409. .tp5
  410. .x Key assignments>Down-arrow>recall (newer)
  411. .x Down-arrow>recall (newer)
  412. .b.i-4;DOWN-ARROW
  413. .br;If FLIST is in command-entry mode, it attempts to recall a
  414. later stacked command.
  415. .b
  416. The DOWN-ARROW key is used for command retrieval only when FLIST is
  417. in command-entry mode, since otherwise it is used for cursor movement.
  418. .lm-8
  419.  
  420. .hl-1    Command Substitution
  421. .x Command substitution
  422. Some of FLIST's commands require one or more arguments (usually a filename).
  423. In most cases, the argument can be made implicit (i.e., the current entry
  424. in the display-list).
  425. If FLIST were restricted to only implicit arguments, it would be quite
  426. inflexible.
  427. To avoid this, FLIST provides substitution operators to specify the
  428. actual arguments of a command, and their order.
  429. .;
  430. .hl+1    Token Substitution
  431. In most cases, the order of arguments appears unambiguous:
  432. .lm +8
  433. .b;DELETE##- no arguments, simply delete the current-file
  434. .b;RENAME##- one argument, the new-file name
  435. .b.lm -8
  436. Suppose, however, that you wish to rename a different version of
  437. the current file (one which does not even appear in the display list)
  438. to supersede the current entry.
  439. In this case, the current entry is not even an argument.
  440. Also, an implicit-argument approach to COPY would permit you to
  441. only create files, not to supersede existing ones.
  442. .b
  443. To uniquely specify arguments and ordering, FLIST
  444. uses two special tokens:
  445. .lm+8
  446. .tp5
  447. .x Command substitution>"/O", omit substitution
  448. .x "/O", omit substitution
  449. .b.i-4;/O
  450. .br;The ^&omit\&-operator directs FLIST to omit the use of the current
  451. filename as an implicit argument.
  452. For most commands, FLIST would otherwise append the filename from the
  453. current entry in the display-list.
  454. .tp5
  455. .x Command substitution>"/",##substitute after name
  456. .x "/",#substitute after name
  457. .b.i-4;/
  458. .br;The ^&after\&-operator directs FLIST to put the remaining text
  459. of the command after the current filename.
  460. Actually, the first time that the after-operator is encountered, FLIST
  461. inserts the current filename.
  462. Successive occurrences are ignored.
  463. If it is evoked at least once, FLIST will not put the current filename
  464. at the end of the resulting command.
  465. .b.lm-8
  466. The command substitution operators are detected whenever their
  467. text appears with no following VMS name-characters (i.e., alphanumerics,
  468. "_$", "__").
  469. For example, suppose that the current file is DBC4:[DICKEY]FLIST.EXE;1200.
  470. Then the commands
  471. .x Examples>Command substitution
  472. .b.lm+8
  473. .lt
  474. COPY / x
  475. COPY x
  476. COPY //           (see note below on syntax)
  477. COPY x y          (syntactically in error, see below)
  478. .el
  479. .b.lm-8
  480. would be translated to
  481. .b.lm+8
  482. .lt
  483. COPY DBC4:[DICKEY]FLIST.EXE;1200  x
  484. COPY x DBC4:[DICKEY]FLIST.EXE;
  485. COPY DBC4:[DICKEY]FLIST.EXE;1200
  486. COPY x y DBC4:[DICKEY]FLIST.EXE;
  487. .el
  488. .b.lm-8
  489. FLIST makes a special case for "COPY#x", stripping the version number
  490. from the output file when the command implies that it has the same name
  491. as the current entry.
  492. This causes VMS to create a new version.
  493. Thus the first two examples are proper COPY commands.
  494. .b
  495. The case "COPY#/#/" is syntactically proper, but produces only one
  496. substitution.
  497. This produces an error message (no output file given).
  498. The last example also is in error, since it results in three arguments,
  499. where COPY expects two.
  500. This command might be re-entered as
  501. .b;########COPY#x,y
  502. .b;or
  503. .b;########/O#COPY#x#y
  504. .b;depending on whether you wanted to use both 'x' and 'y' as
  505. inputs and the current entry as outputs,
  506. or if you wanted to copy 'x' to 'y'.
  507. .b
  508. You may copy components of the current filename 
  509. (via substitutions performed by FLIST when executing a command).
  510. For example, if the file  entry is that shown above
  511. .b.lm +8
  512. .x Command substitution>"/P", substitute PATH
  513. .x "/P", substitute PATH
  514. .br;/P##substitutes the path, "DBC4:[DICKEY]"
  515. .x Command substitution>"/N", substitute NAME
  516. .x "/N", substitute NAME
  517. .br;/N##substitutes the name, "FLIST"
  518. .x Command substitution>"/T", substitute TYPE
  519. .x "/T", substitute TYPE
  520. .br;/T##substitutes the type, "EXE"
  521. .x Command substitution>"/V", substitute VERSION
  522. .x "/V", substitute VERSION
  523. .br;/V##substitutes the version, "1200"
  524. .b.lm -8
  525. You must supply the "." and ";" punctuation to construct
  526. a filename by substitution, e.g., "/N./T".
  527. .b
  528. Thus, all, none, or part of the current filename may be included
  529. in command substitution.
  530. .;
  531. .hl    Symbol Translation
  532. .x Command substitution>User-defined symbols
  533. Before interpreting a command, FLIST tests the command keywords:
  534. .lm+8
  535. .b.i-4
  536. o    If the keyword is found in its symbol table, FLIST
  537. accepts it, and carries out the token-substitution and executes it.
  538. .b.i-4
  539. o    If the keyword is not found in its symbol table, FLIST
  540. determines if it is defined as a ^&symbol\&.
  541. If so, FLIST tests the keyword-part of the translation.
  542. If this is found in its symbol table, FLIST performs the substitution,
  543. and processes the resulting command.
  544. .b.i-4
  545. o    If the keyword is not found in any table, FLIST reports an error.
  546. Presently FLIST does not permit unknown commands to escape.
  547. .b.lm-8
  548. No other type of symbol substitution is presently performed
  549. by FLIST except indirectly, in the commands which are performed
  550. by spawned processes.
  551. .;
  552. .hl    Default-Propagation
  553. .x Defaults>Propagation of specifications
  554. In addition to the explicit token-substitution and implicit symbol-translation
  555. activity described above,
  556. FLIST also employs the usual VMS default-field propagation.
  557. For example, the RENAME command (which is performed within FLIST)
  558. could be used on the preceding example:
  559. .b;########REN#/#x
  560. .b;to produce
  561. .b;########DBC4:[DICKEY]X.EXE;1
  562. .b;or
  563. .b;########REN#/#x;_*
  564. .b;to produce
  565. .b;########DBC4:[DICKEY]X.EXE;1200.
  566. .b
  567. The VMS convention propagates specified fields to unspecified fields,
  568. treating "_*" as a special case to override the RENAME command's tendency
  569. to rename to version-one.
  570.