home *** CD-ROM | disk | FTP | other *** search
/ Programmer's ROM - The Computer Language Library / programmersrom.iso / ada / pdl / docmgr.doc < prev    next >
Encoding:
Text File  |  1988-05-03  |  208.1 KB  |  5,161 lines

  1. ::::::::::::::
  2. catmgr.rno
  3. ::::::::::::::
  4. .PG
  5. .HL ^&CATALOG MANAGER\&
  6. .SK
  7. .HL +1 ^&Description\&
  8. .SK
  9. .P
  10. A catalog is a database of configuration items (CI), and the catalog manager
  11. encompasses the procedures that allow users to manage catalogs,
  12. access CIs and add
  13. new CIs.  A catalog contains CIs, a keyword list and a property index.
  14. CIs will have properties to describe them, and when a CI is added to the
  15. catalog its properties are stored in the index so it can be referenced
  16. by property.  A property is a keyword, value pair, and all the allowable
  17. keywords for the catalog are stored in its keyword list.  There are
  18. three states that a keyword can have: optional, required and invalid.
  19. Invalid keywords are ones that once were valid.  
  20. .P
  21. Libraries can only be STORED into the catalog as a CI version if all
  22. the properties are valid.  In this way a user can use an invalid keyword
  23. when selecting CIVs from the index since there may be versions that 
  24. were added to the catalog before the keyword was invalid.  Although
  25. it is possible to define a keyword as invalid from the start it serves
  26. no useful purpose.
  27. .P
  28. There are four procedures that act on catalogs.  CREATE_CATALOG creates
  29. new catalogs, and any number of catalogs can be created as long as they
  30. have unique names.  A catalog name must be an Ada identifier.  
  31. LIST_CATALOGS will list all the catalogs in the system.  It can be
  32. given a pattern in which case it will only print out those catalogs whose
  33. name matches the pattern.  OPEN_CATALOG will open a specific catalog
  34. and put the user in an interactive tool where he can select CIVs, fetch
  35. and store them.  In the interactive tool the user can also print out
  36. various information stored in the catalog about the CIVs.  
  37. CHECK_CONSISTENCY will read the structure of a catalog
  38. and the information in it and check that it is not corrupt.  It will 
  39. report any inconsistencies it finds.  It does not do any actual
  40. fixing, but there are ways for privileged users to fix the
  41. inconsistencies.
  42. .HL ^&Configuration Item Versions\&
  43. .SK
  44. .P
  45. A CI version will have file components and properties.  The file components
  46. are the source files that go into making up the version.  A file component can
  47. be any type of text; code or documentation.  Properties are keyword, value
  48. pairs associated with a version that describe it in some way.  For example, a
  49. keyword might be subject, and a value for that keyword might be ADA_pdl.
  50. Both keywords and values must be ada identifiers.  When an item
  51. library is added to a catalog to become a CIV
  52. its properties must have keywords that are valid for that catalog,
  53. and they must include all required keywords.  If there are any errors
  54. when a library is being added to the catalog, the error is reported and the
  55. library is left where it is.  Item libraries are managed by the Item
  56. Library Manager procedures.
  57. .HL ^&Configuration Identification\&
  58. .SK
  59. .P
  60. A CI id consists of two parts, a name which is an ada identifier and the
  61. version which is assigned by the catalog manager.  The version is a number
  62. beginning at 1 with the version being assigned sequentially.  If a CIV is
  63. only fetched for update then its versions will be a single number.
  64. The updates of a CI are called trunk versions.
  65. When a CIV is fetched as a branch the version gets two more numbers when it
  66. is stored.  The first number indicates what branch this is and then the
  67. second indicates that this CIV is the first version along the branch.  For
  68. example, a branch from the CIV 'example 2' would be given the CI id
  69. 'example 2.1.1' when it was stored.  This new CIV can also be checked out 
  70. for updating, and when the store is done the CI id would be 'example 2.1.2'.
  71. These CIVs begin a trunk along the branch.  It is also possible to have 
  72. branches from branches.  For example, the STORE of a branch from 
  73. 'example 2.1.2' would be given a CI id of 'example 2.1.2.1.1'.
  74. It should be noted that in addition to making the version numbers
  75. longer, branches add some computational overhead, so operations with
  76. branches will take a little longer depending on how many levels of
  77. branching there is.
  78. .HL ^&Using the Catalog Manager\&
  79. .SK
  80. .P
  81. A project should set up a catalog in which to put its CIs.  When 
  82. CREATE_CATALOG is invoked the user must supply a directory where the
  83. catalog will keep its data files.  The catalog directory is like
  84. an Ada program library: you may go into it and list the files, but
  85. if you change anything you may corrupt the catalog beyond repair. 
  86. .P
  87. It is suggested that the project
  88. create one directory for catalog related file and create the catalog
  89. as a subdirectory of the designated directory.  The user directories
  90. and item libraries 
  91. can also be subdirectories of this directory enabling a backup of
  92. all documentation system data to be collected easily.
  93. .P
  94. When the catalog is created a password is prompted for.  This password
  95. should then only be given out to those that NEED to know like a CM
  96. coordinator.  The only command that changes the catalog which is not
  97. privileged is MODIFY_PROPERTY, but it only affects the index.  Once
  98. the catalog is created the creator should lose no time in opening it
  99. and defining the keywords allowed and add any item libraries pending.
  100. .HL ^&Example Session\&
  101. .SK
  102. .P
  103. A user beginning to use the system for the first time would probably
  104. execute a sequence of commands like the following:
  105. .LT
  106.  
  107. LIST_CATALOGS; -- to find out what catalogs are available.
  108. -- Suppose there was a catalog called "PROJECT" that is the user's 
  109. -- project catalog.
  110. OPEN_CATALOG ("PROJECT"); -- opens the catalog.
  111. -- Note that the names are Ada identifiers so case is unimportant.
  112. LIST_KEYWORDS; -- lists the possible keywords to select by.
  113. -- Suppose that there are keywords language, type, subject, 
  114. -- implementor, group, and that the user is interested in finding 
  115. -- the list package mentioned earlier with the requirement that 
  116. -- it be written in Ada.  
  117. SELECT_CIS ("language=ada & type=abstraction");
  118. -- This will return a set of CI ids that have both these properties.
  119. -- Suppose that the set returned contained: list 1, list 2, list 3, 
  120. -- set 1, set 1.1.1, set 1.1.2, and stack 1.
  121. -- (The user could also have done a LIST_CIS; to see the names of 
  122. --  the CIs in the catalog if there weren't too many.)
  123. LIST_VERSIONS ("list");
  124. -- lists all possible versions of the CI 'list'.  There may be a 
  125. -- list 1.1.1 that is a list of one particular item which did 
  126. -- not fit the 'type=abstraction' criteria.
  127. HISTORY ("list 3"); -- shows the comments recorded with each version.
  128. DESCRIBE ("list 3"); -- will show all the properties on list 3.
  129. LIST_COMPONENTS ("list 3); -- will list all the items in the version.
  130. -- Suppose that after seeing all this information the user determines 
  131. -- that list 3 is the version closest to what is needed, but some 
  132. -- changes need to be made.
  133. FETCH ("list 3", "list_library", "[.list_library]", update);
  134. -- This puts list 3 in the library list_library.  All properties 
  135. -- associated with list 3 are also copied to the library so some may 
  136. -- need to be changed.   
  137. -- At this point the user cannot do any more.  The library can only be
  138. -- returned to the catalog by a privileged user.
  139. .EL
  140. .P
  141. This example did not show all the uses of the commands  and they are
  142. described in more detail in the sections pertaining to each command.
  143. CHECK_CONSISTENCY is a command that will also be used by privileged users.
  144. Anyone is enabled to run it, but if there turn out to be any inconsistencies
  145. only a privileged user can fix them.  The checks and how to fix any
  146. inconsistencies are described in the section on CHECK_CONSISTENCY.
  147. .PG
  148. .HL ^&CATALOG MANAGER COMMANDS\&
  149. .SK
  150. .HL +1 ^&CREATE_CATALOG\&
  151. .SK
  152. .P
  153. CREATE_CATALOG creates the named catalog on the system.  The user must
  154. give the name as an ada identifier, and a directory name where the
  155. catalog will be placed.  The directory cannot already exist, and the name
  156. of the catalog must be unique.  During the creation process the user will
  157. be prompted for a password.  This becomes the privileged user password,
  158. and will be prompted for before allowing anyone to perform any restricted
  159. operation.  The user must also already be a documentation system user
  160. in order to run any of the catalog manager procedures.  A user is added
  161. to the documentation system with ADD_USER.  
  162. .LT
  163.  
  164.  
  165. -- CREATE_CATALOG : Create a new configuration item catalog
  166. -- 3.02-1.0
  167.  
  168.  
  169.  
  170. procedure CREATE_CATALOG(
  171.    CATALOG_NAME   : in STRING;
  172.    DIRECTORY_SPEC : in STRING
  173.    );
  174.  
  175. -- CATALOG_NAME   : Name of the catalog to be created
  176. -- DIRECTORY_SPEC : Name of the directory to create the catalog in
  177.  
  178. -- Creates a new configuration item catalog.  The name of the catalog
  179. -- must be an ada identifier and the directory should not already
  180. -- exist.  The user will be prompted for a privileged user password
  181. -- when the catalog is created.  The user must be a document manager
  182. -- system user to be able to run this tool (see Add_User).
  183.  
  184. .EL
  185. .PG
  186. .HL ^&OPEN_CATALOG\&
  187. .SK
  188. .P
  189. OPEN_CATALOG opens the specified catalog and puts the user in the 
  190. interactive tool.  From within the interactive tool the user can query
  191. the catalog about various CIs and fetch CIs into item libraries for
  192. modification.  When the catalog is opened the user gets a read lock on
  193. the catalog.  This lock prevents other users from performing operations
  194. that would change the catalog like creating a CI, but other users
  195. may also open the catalog to read it.  If someone is creating a CIV
  196. in the catalog when a user tries to open it they will get a message 
  197. saying that the other person has a write lock and they will be asked
  198. if they wish to override the lock.  This prompt is to allow a privileged
  199. user to remove a write lock that was left on the catalog by mistake.
  200. Most users would respond no to the prompt since you must know the 
  201. privileged user password to continue.  If the catalog is write locked
  202. in this way when you try to open it, simply wait a few minutes and
  203. try again.  If it continues to be locked by the same user for more
  204. that 30 minutes, you probably should notify a privileged user that
  205. there is a lock that may need to be removed.
  206. If the user trys to open a catalog that does not exist an error
  207. message is returned.  If the user exits the interactive tool by any
  208. means other than the EXIT command their read lock will be left on the
  209. catalog.  You may not re-enter the catalog is a read lock already
  210. exists for which you are the owner.  This to prevent users from 
  211. entering the catalog under two different login sessions because
  212. the two sessions locks would interact.
  213. For descriptions of all the interactive commands see the
  214. section on the interactive catalog manager.
  215. .LT
  216.  
  217. -- OPEN_CATALOG : Open a configuration item catalog
  218. -- 3.02-1.0
  219.  
  220.  
  221.  
  222. procedure OPEN_CATALOG(
  223.    CATALOG_NAME : in STRING
  224.    );
  225.  
  226. -- CATALOG_NAME : Name of the catalog to be opened
  227.  
  228. -- Opens the specified catalog and places the user in interactive
  229. -- mode.  The name given must belong to an existent catalog.
  230. -- Create_Catalog should be run first if the catalog does not exist
  231. -- The user must be a document system manager user to run this tool
  232. -- (see Add_User).
  233.  
  234. .EL
  235. .PG
  236. .HL ^&LIST_CATALOGS\&
  237. .SK
  238. .P
  239. LIST_CATALOGS lists all catalogs in the document manager system.  If it
  240. is given a pattern to match only the catalogs with names that match the
  241. pattern will be returned.
  242. .LT
  243.  
  244. -- LIST_CATALOGS : List the names of all the catalogs in the 
  245. --                 document system
  246. -- 3.02-1.0
  247.  
  248.  
  249.  
  250. procedure LIST_CATALOGS(
  251.    CATALOGS : in STRING := "*"
  252.    );
  253.  
  254. -- CATALOGS : Search string for the name to match
  255.  
  256. -- A list of all the catalogs in the current document manager system
  257. -- is produced.  The default is to list all catalogs, but a subset may
  258. -- be selected by giving a pattern to match for catalogs.  The user
  259. -- must be a document manager system user to run this tool (see Add_User)
  260.  
  261. .EL
  262. .PG
  263. .HL ^&CHECK_CONSISTENCY\& 
  264. .SK
  265. .P
  266. CHECK_CONSISTENCY checks that the internal structure of the catalog is
  267. not corrupted and that the index of properties is correct.  
  268. Any inconsistencies are reported in the
  269. file returned.  The checks that it performs are as follows.  
  270. .P
  271. For the catalog it checks that there is only one password, and it
  272. reports any users that have read or write locks on the catalog.
  273. If this procedure is run late at night any locks found may need to
  274. be removed with REMOVE_LOCK.  If there is more than one password
  275. just redo the CHANGE_PASSWORD, but you do have to remember what the
  276. old password was.
  277. .P
  278. The index is also checked to make sure that the data node for each 
  279. keyword still exists.  If the node has somehow been deleted you
  280. cannot automatically recreate the data, but redefining the keyword
  281. will put the data node back.  Once that is done you can run
  282. CHECK_CONSISTENCY again and do a MODIFY_PROPERTY for all the CIVs
  283. that report that the property is missing from the index.
  284. .P
  285. It checks that for each CI version
  286. in the catalog the node that contains the file components exists if the
  287. CIV has not been deleted.  If the CIV has been deleted it checks that the
  288. node containing the components does not exist.  
  289. In the first case where the file components do not exist an incomplete
  290. store would be the most likely cause.  The solution is to delete the
  291. version with the mode being FIX_UP, and then to  re-STORE or re-CREATE_CI
  292. the version.  In the case of a re-STORE determining the library to
  293. store can be done by doing a LIST_LIBRARY of the libraries owned by the
  294. person that has the version fetched (which is also reported for each version).
  295. The library will still exist since it it only deleted after the CI
  296. version is completely created.
  297. If the node still exists after the
  298. CIV was supposed to be deleted , simply re-try the DELETE.
  299. .P
  300. There is a check to make sure that every CI has at least one version.  If
  301. this is not so redo the CREATE_CI to fix the problem.
  302. .P 
  303. In addition, this procedure will check that all the properties 
  304. for each CI version
  305. are recorded in the index.
  306. If a property is missing from the
  307. index it could indicate an incomplete store in which case the person
  308. is still recorded as having the version fetched, and the library still
  309. exists.  In the case of an incomplete CREATE_CI there is no record of
  310. it being fetched, but the library still exists.
  311. Depending on how many properties did not get added and whether it is
  312. a STORE or CREATE_CI there are two
  313. ways to solve this problem.  The first is to delete the CI version in
  314. FIX_UP mode and then to retry the STORE or CREATE_CI.  The other way only
  315. works if the operation that didn't complete was a STORE.  You could
  316. add each of the properties with MODIFY_PROPERTY, take the user's name off
  317. the fetched list with CANCEL and the library name, and then delete the library.
  318. index.  
  319. .P
  320. This procedure checks that the actual number of branches from
  321. this version match the number stored in the attribute recording how many
  322. branches there should be.
  323. If the number of branches is more that the recorded attribute 
  324. there is nothing to do since
  325. STORE takes care of fixing the attribute the next time a branch is added.
  326. The case where there are fewer branches should never happen unless
  327. someone modifies the catalog structure directly, in which case there is
  328. no way to fix it.
  329. .P
  330. All the names of people with the CI version
  331. fetched will be included in the report although these are
  332. not necessarily inconsistencies.  If you determine that a name on the
  333. fetched list is incorrect then CANCEL the library in which the person
  334. had fetched that CIV.  To determine the library do a LIST_LIBRARY
  335. of  that person's libraries and see which one contains that CIV.
  336. .P
  337. It also checks that  for each branch there is at least on trunk on the
  338. branch.  If there are no trunks on a branch then you must redo the
  339. STORE.
  340. .P
  341. Since this procedure runs over the whole catalog it will take a long time
  342. to run.  It probably should not be run interactively.
  343. .LT
  344.  
  345. -- CHECK_CONSISTENCY : Check the consistency of the information in 
  346. --                     a catalog
  347. -- 3.02-1.0
  348.  
  349.  
  350.  
  351. procedure CHECK_CONSISTENCY(
  352.    CATALOG_NAME : in STRING;
  353.    OUTPUT_FILE  : in STRING
  354.    );
  355.  
  356. -- CATALOG_NAME : Name of the catalog to be checked
  357. -- OUTPUT_FILE  : Name of the output file for the consistency report
  358.  
  359. -- Produces a report of the consistency of a given catalog
  360. -- The checks include: 
  361. -- Checking that the information on a CI matches the information in
  362. --         the index.
  363. -- Checking that CIs are complete.
  364. -- Checking that all the locks are current.
  365. -- Checking that there is only one password
  366. -- The user must be a document manager system user to use this tool
  367. -- (see Add_User). 
  368.  
  369. .EL
  370. .PG
  371. .HL -1 ^&Guide to the Interactive Catalog Manager\&
  372. .SK
  373. .P
  374. The interactive catalog manager is a system to allow users to find
  375. configuration items (CI) in a catalog, and subsequently fetch them
  376. from the catalog to modify.  It has functions that give information
  377. to a user to allow identification of a particular CIV.  In addition
  378. there are procedures to control the way in which CIs are taken out
  379. of the catalog and put back.  There are also a few procedures that 
  380. can be performed only by a privileged user who knows the catalog
  381. password.  The procedures will be discussed in four section classified
  382. by the type of procedure.
  383. .HL ^&Using the Interactive Catalog Manager\&
  384. .SK
  385. .P
  386. When you enter the interactive tool using OPEN_CATALOG you are first 
  387. prompted for a password.  This is the password to enable you to do
  388. privileged commands.  If you are not a privileged user, or just
  389. don't want to use the privileged commands even if you are, simply
  390. hit the carriage return key.  As a privileged user you may run all
  391. the privileged commands in addition to the regular ones.  The tool
  392. will tell you as it sets up the catalog whether you are entering
  393. as a privileged or privileged user.
  394.  
  395. .HL +1 ^&Catalog Functions&
  396. .P
  397. These two functions are operations that act within the interactive tool.
  398. The first gives help about the interactive commands, and the second 
  399. terminates the interactive session.
  400. .LS 0, "o"
  401. .LE
  402. HELP
  403. .LE
  404. EXIT
  405. .ELS 0
  406. .HL ^&Query Functions&
  407. .S
  408. .P 5
  409. There are two types of query functions.  One type operates on the catalog
  410. as a whole and generally returns with a result of several CIs.  The
  411. other type provides information about a particular CIV.  More details about 
  412. each of the commands can be found in the sections pertaining to each of
  413. them.
  414. .SK
  415. .LM +5
  416. .HL +1 Catalog Queries
  417. .LS 0, "o"
  418. .LE
  419. SELECT_CIS
  420. .LE
  421. CLEAR_SELECTED_SET
  422. .LE
  423. PRINT_SET
  424. .LE
  425. LIST_CIS
  426. .LE
  427. LIST_KEYWORDS
  428. .LE
  429. LIST_VERSIONS
  430. .ELS 0
  431. .HL Configuration Item Queries
  432. .LS 0, "o"
  433. .LE
  434. DESCRIBE
  435. .LE
  436. HISTORY
  437. .LE
  438. LIST_COMPONENTS
  439. .ELS 0
  440. .LM -5
  441. .HL -1 ^&Configuration Item Commands&
  442. .P
  443. These are commands that may be done by anyone.
  444. FETCH and CANCEL both involve item libraries, and MODIFY_PROPERTY changes
  445. information in the index.
  446. .LS 0, "o"
  447. .LE
  448. FETCH
  449. .LE
  450. CANCEL
  451. .LE
  452. MODIFY_PROPERTY
  453. .ELS 0
  454. .HL ^&Priviledged Operations&
  455. .P
  456. These are privileged commands, and one must have entered the interactive
  457. tool as a privileged
  458. user in order to user them.  DELETE and REMOVE_LOCK are fix up commands,
  459. and CREATE_CI and STORE are both CIV creation commands.
  460. .LS 0, "o"
  461. .LE
  462. CHANGE_PASSWORD
  463. .LE
  464. DEFINE_KEYWORD
  465. .LE
  466. DELETE
  467. .LE
  468. REMOVE_LOCK
  469. .LE
  470. CREATE_CI
  471. .LE
  472. STORE
  473. .ELS 0
  474. .HL ^&Item Library Operations&
  475. .P
  476. The following command deals with item libraries.
  477. .LS 0, "o"
  478. .LE
  479. LIBRARY_MANAGER
  480. .ELS 0
  481. .PG
  482. .HL -1 ^&INTERACTIVE COMMANDS\&
  483. .SK
  484. .HL +1 ^&HELP&
  485. .SK
  486. .P
  487. HELP prints out a general help message listing each of 
  488. the catalog commands.  Short descriptions are given of the commands, 
  489. but for the
  490. most part additional help is given when the command in question is entered
  491. with no parameters.
  492.  
  493. .LT
  494.  
  495.  
  496. -- SELECT_CIS : Selects a set of CIs according to the selection criteria given
  497. -- CLEAR_SELECTED_SET : Make the current selected set be the empty set.
  498. -- PRINT_SET : Print the contents of the currently selected set.
  499. -- LIST_CIS : Lists the contents of the catalog by name.
  500. -- CHANGE_PASSWORD : Changes the privileged user password.
  501. --                   This is a privileged operation
  502. -- DEFINE_KEYWORD : Define a new keyword, or change the status of an
  503. --                  existing one.
  504. --                  This is a privileged operation
  505. -- LIST_KEYWORDS : List all the keywords and their status.
  506. -- CREATE_CI : create a new configuration item (CI) in the catalog
  507. -- STORE : Store a new version of an already existing CI
  508. -- FETCH : Fetch a specified CI and put it in an item library.
  509. -- CANCEL : Cancel a fetch that was made with the mode update
  510. -- DELETE : Delete a configuration item that is in the catalog.
  511. --          This is a privileged operation.
  512. -- MODIFY_PROPERTY : Modify the value associated with the given keyword
  513. --                   on the specified CI
  514. -- DESCRIBE : Show the values of the given keywords
  515. -- HISTORY : Give the history of the named CI
  516. -- LIST_VERSIONS : List the versions of a named CI
  517. -- LIST_COMPONENTS : List the components of the given CI
  518. -- REMOVE_LOCK : Remove a lock that was left by a user aborting a session
  519. --               This is a privileged operation
  520. -- LIBRARY_MANAGER : Invoke the Interactive Library Manager
  521.  
  522. procedure HELP;
  523.  
  524.  
  525. .EL
  526. .PG
  527. .HL ^&SELECT_CIS&
  528. .SK
  529. .P 
  530. This procedure returns a set of CIs that match the 
  531. selection criteria.  To specify what to select by the 
  532. user enters a selection string.  Sets are determined by indicating 
  533. what property the CIVs should match, and there are the operators
  534. '%&' and '%|' to provide intersection and union of the sets.
  535.  
  536. .LT
  537.  
  538.  
  539. -- SELECT_CIS : Selects a set of CIs according to the selection 
  540. --              criteria given
  541. -- 3.02-1.0
  542.  
  543.  
  544.  
  545. procedure SELECT_CIS(
  546.    CRITERIA : in STRING
  547.    );
  548.  
  549. -- CRITERIA : A string in selection syntax giving the criteria to
  550. --            select by.  The operators recognized are & and |.  
  551. --            Parentheses can be used to indicate precedence.  & does 
  552. --            intersections, and | does unions. The expressions are 
  553. --            evaluated from left to right
  554.  
  555.  
  556. .EL
  557. .HL +1 Selection Syntax:
  558. .SK
  559. The terminals in the language are: CURRENT_SET, KEYWORD, VALUE,
  560. =, %&, %|, (, and ).
  561. CURRENT_SET is a reserved word.  Parentheses can be used to indicate
  562. precedence since the operators have equal precedence.
  563. CURRENT_SET is the current selected set in the catalog.  KEYWORD is a
  564. catalog keyword.  It should be a known keyword and must be an Ada
  565. identifier.  VALUE is the corresponding value for the keyword.  It
  566. must also be an Ada identifier.
  567. .LT
  568.  
  569. expr ::= expr op expr |  term  |  (expr)
  570. term ::= KEYWORD '=' VALUE  |  CURRENT_SET
  571. op   ::= '&'  |  '|'
  572.  
  573. .EL
  574. .P
  575. For example, the user might specify "language = nroff %& person = john"
  576. to get all nroff documents written by john or alternatively,
  577. "language = nroff %& (person = john %| person = jane)".
  578. This would result in nroff documents by jane as well as john.
  579. .PG
  580. .HL -1 ^&CLEAR_SELECTED_SET&
  581. .SK
  582. .P
  583. After any selection the user has a current selected set
  584. which is saved in the catalog.   This is the set indicated by the reserved
  585. word CURRENT_SET in the selection criteria.  This procedure will make that
  586. set be the empty set.
  587. .LT
  588.  
  589.  
  590. -- CLEAR_SELECTED_SET : Make the current selected set be the empty set.
  591. -- 3.02-1.0
  592.  
  593.  
  594. procedure CLEAR_SELECTED_SET;
  595.  
  596. .EL
  597. .PG
  598. .HL ^&PRINT_SET&
  599. .SK
  600. .P
  601. This prints out the CI ids of each CIV in the current selected set
  602. upon request.  In this way a user can, at any time, see what has
  603. been selected even if the select was performed many commands before.
  604. .LT
  605.  
  606.  
  607. -- PRINT_SET : Print the contents of the currently selected set.
  608. -- 3.02-1.0
  609.  
  610.  
  611. procedure PRINT_SET;
  612.  
  613. .EL
  614. .PG
  615. .HL ^&LIST_CIS&
  616. .SK
  617. .P
  618. At any point the user can use this procedure to 
  619. get a listing of the names of the CIs in the catalog.  It will not
  620. include information about different versions of a CI, for that the
  621. user must use LIST_VERSIONS.  To limit the list the user can specify 
  622. a string to match and only CIs with names that match will be printed.
  623. .LT
  624.  
  625.  
  626. -- LIST_CIS : Lists the contents of the catalog by name.
  627. -- 3.02-1.0
  628.  
  629.  
  630.  
  631. procedure LIST_CIS(
  632.    CIS : in STRING := "*"
  633.    );
  634.  
  635. -- CIS : Name string to match, * matches all strings
  636.  
  637. -- This will only list the name part of a configuration item id. To
  638. -- see the different versions of a CI use LIST_VERSIONS.
  639.  
  640. .EL
  641. .PG
  642. .HL ^&LIST_KEYWORDS&
  643. .SK
  644. .P
  645. Lists all the possible keywords and their status.
  646. Keywords with status INVALID may only be used for look up.  Any
  647. CIV being added to the catalog may not include a property with an invalid
  648. keyword.  On the other hand, keywords with status REQUIRED must always 
  649. be included on CIs being added to the catalog.  Keywords may be 
  650. defined or redefined by a privileged user using DEFINE_KEYWORD
  651. .LT
  652.  
  653.  
  654. -- LIST_KEYWORDS : List all the keywords and their status.
  655. -- 3.02-1.0
  656.  
  657.  
  658. procedure LIST_KEYWORDS;
  659.  
  660. -- The possible values for the status of a keyword are REQUIRED,
  661. -- OPTIONAL and INVALID.  REQUIRED keywords mean that a property
  662. -- with that keyword must be on all libraries being stored in the
  663. -- catalog as CIs.  OPTIONAL keywords mean a library with that
  664. -- property may be stored in the catalog.  A library can not be
  665. -- stored with an INVALID property keyword.  CIs may be selected
  666. -- by any keyword (see SELECT_CIS).
  667.  
  668. .EL
  669. .PG
  670. .HL ^&LIST_VERSIONS&
  671. .SK
  672. .P
  673. LIST_VERSIONS lists all the different versions of a CI in the catalog.  It will
  674. show the complete tree of trunks and branches.
  675. .LT
  676.  
  677.  
  678. -- LIST_VERSIONS : List the versions of a named CI
  679. -- 3.02-1.0
  680.  
  681.  
  682.  
  683. procedure LIST_VERSIONS(
  684.    NAME : in STRING
  685.    );
  686.  
  687. -- NAME : Name of the CI to list
  688.  
  689. -- LIST_VERSIONS lists the versions of a CI with the same name.  The
  690. -- name given should be an ada identifier.  The list will be from
  691. -- oldest to newest.
  692.  
  693. .EL
  694.  
  695. .PG
  696. .HL ^&DESCRIBE&
  697. .SK
  698. .P
  699. DESCRIBE lists the properties on a CIV.  With the 
  700. default setting all properties of the named CIV will be listed. If a
  701. list is given only properties with a keyword that matches one of
  702. the patterns given will be listed.  DESCRIBE does not check
  703. for undefined keywords in the keyword list since patterns can
  704. be specified.  If a user does give only undefined keywords the list returned
  705. will be empty.
  706.  
  707. .LT
  708.  
  709.  
  710. -- DESCRIBE : Show the values of the given keywords
  711. -- 3.02-1.0
  712.  
  713.  
  714. subtype CI_ID       is STRING;
  715. type    STRING_LIST is array (POSITIVE range <>) of STRING;
  716.  
  717. procedure DESCRIBE(
  718.    NAME     : in CI_ID;
  719.    KEYWORDS : in STRING_LIST := ("*")
  720.    );
  721.  
  722. -- NAME     : Name of the CI to describe
  723. -- KEYWORDS : List of keywords to lookup the values of
  724. --            The default (*) matches all properties on a CI
  725.  
  726. -- DESCRIBE does not list the creator or creation date see HISTORY
  727. -- for that information.
  728.  
  729.  
  730.  
  731. .EL
  732. .PG
  733. .HL ^&HISTORY&
  734. .SK
  735. .P
  736. HISTORY prints out information about the creation of the
  737. CIV and its predecessors.  For each predecessor its version, creator, 
  738. creation date, and history comment are listed.  This information is
  739. listed in order from the latest version of the
  740. CI to the first version with this name.  The person that created or 
  741. stored the CIV is also listed under the heading Submitter.  The 
  742. creator is the person that created the contents of the CIV in a 
  743. library.
  744.  
  745. .LT
  746.  
  747.  
  748. -- HISTORY : Give the history of the named CI
  749. -- 3.02-1.0
  750.  
  751.  
  752. subtype CI_ID is STRING;
  753.  
  754. procedure HISTORY(
  755.    NAME : in CI_ID
  756.    );
  757.  
  758. -- NAME : Name of the CI of which to give the history
  759.  
  760. -- The history of a CI is the history comments stored when each of its
  761. -- predecessors was stored.  The comments will be printed out in 
  762. -- reverse order, that is, from the most recent version to the first
  763. -- version of the CI with that name.
  764.  
  765. .EL
  766. .PG
  767. .HL ^&LIST_COMPONENTS&
  768. .SK
  769. .P
  770. This procedure will list the file components of the 
  771. given CIV.  These files, however, cannot be manipulated through the
  772. catalog manager.  To do that use FETCH and then the Item Library Manager.
  773. .LT
  774.  
  775.  
  776. -- LIST_COMPONENTS : List the components of the given CI
  777. -- 3.02-1.0
  778.  
  779.  
  780. subtype CI_ID is STRING;
  781.  
  782. procedure LIST_COMPONENTS(
  783.    NAME : in CI_ID
  784.    );
  785.  
  786. -- NAME : Name of the CI to list
  787.  
  788. -- The listing will consist of the file items that make up the
  789. -- CI.  It will be in the same format as a component list from
  790. -- the Item Library Manager
  791.  
  792. .EL
  793. .PG
  794. .HL ^&FETCH&
  795. .SK
  796. .P
  797. This procedure fetches a CIV into an item library for
  798. the user.  If it is fetched for update there is a check to make sure
  799. that the update may be done.  Once in the library the user may modify
  800. the contents using item library manager which is detailed in another
  801. section.  To fetch a CIV the name parameter must be a valid CI id and must 
  802. belong to an existent CIV in this catalog.  The default mode for
  803. FETCH is no_update.  When a fetch is done any properties on the CIV
  804. are also transferred to the item library.  These may need to be changed,
  805. especially if any keywords have been made invalid since it was last
  806. stored.
  807. In no_update mode no changes made to a library
  808. can be put back in the catalog as a new version of this CI.  It
  809. can be entered into the catalog as a new CIV (see CREATE_CI).  If a 
  810. CIV is fetched with a mode of update or branch, then it must be returned
  811. to the catalog with the STORE command or the FETCH can be erased with the
  812. CANCEL command.
  813. DELETE_LIBRARY will not allow a library to be deleted while it is still
  814. pending from a catalog.
  815. .LT
  816.  
  817.  
  818. -- FETCH : Fetch a specified CI and put it in an item library.
  819. -- 3.02-1.0
  820.  
  821.  
  822. subtype CI_ID      is STRING;
  823. type    FETCH_TYPE is (NO_UPDATE, UPDATE, BRANCH);
  824.  
  825. procedure FETCH(
  826.    NAME      : in CI_ID;
  827.    LIBRARY   : in STRING;
  828.    DIRECTORY : in STRING;
  829.    MODE      : in FETCH_TYPE := NO_UPDATE
  830.    );
  831.  
  832. -- NAME      : Name of the ci to fetch
  833. -- LIBRARY   : Name of the item library to put the CI in
  834. -- DIRECTORY : Name of the directory to create the itemlibrary in
  835. -- MODE      : Indicates what type of update the fetch is allowing
  836.  
  837. -- FETCH will put a specified CI in an item library for the user.
  838. -- If the mode is UPDATE or BRANCH the user can modify the CI and
  839. -- STORE it as a new version.  If the mode is NO_UPDATE (default)
  840. -- the user is still free to modify the library, but it may NOT be
  841. -- returned to the catalog as a new version.  When a CI is fetched
  842. -- for UPDATE checks are made to make sure that no one else is
  843. -- updating the same CI
  844.  
  845.  
  846. .EL
  847. .PG
  848. .HL ^&CANCEL&
  849. .SK
  850. .P
  851. CANCEL changes the mode on the library to be no_update
  852. and deletes the user's name from the list of users updating the CIV.  
  853. The default for user is the current user.  Only a privileged user may
  854. cancel a FETCH done by someone else, but you may cancel any of your
  855. own fetches.  If this procedure is run on a library that was not
  856. fetched for update or branch it has no effect.
  857.  
  858. .LT
  859.  
  860.  
  861.  
  862. -- CANCEL : Cancel a FETCH that was made with the mode update
  863. -- 3.02-1.0
  864.  
  865.  
  866.  
  867. procedure CANCEL(
  868.    LIBRARY : in STRING;
  869.    USER    : in STRING := "CHRIS"
  870.    );
  871.  
  872. -- LIBRARY : Name of the item library the fetched CI is in
  873. -- USER    : Name of the person who did the fetch
  874. --           Default is the current user
  875.  
  876. -- Any user can cancel a FETCH that he or she made, but only a
  877. -- privileged user may cancel someone else's.  So if the name given
  878. -- does not match the current user the catalog password will be 
  879. -- asked for.
  880.  
  881. .EL
  882. .PG
  883. .HL ^&MODIFY_PROPERTY&
  884. .SK
  885. .P
  886. This allows a user to update the properties on a 
  887. CIV.  If the properties on a CIV are wrong in some way or inconsistent
  888. a user may change them, but a user cannot delete a property that is
  889. required.
  890.  
  891. .LT
  892.  
  893.  
  894. -- MODIFY_PROPERTY : Modify the value associated with the given keyword
  895. --                   on the specified CI
  896. -- 3.02-1.0
  897.  
  898.  
  899. subtype CI_ID is STRING;
  900.  
  901. procedure MODIFY_PROPERTY(
  902.    NAME    : in CI_ID;
  903.    KEYWORD : in STRING;
  904.    VALUE   : in STRING
  905.    );
  906.  
  907. -- NAME    : Name of the CI with the property to be changed
  908. -- KEYWORD : name of the keyword to change the value of
  909. -- VALUE   : New value for the keyword
  910.  
  911. -- Modify_property will change the value associated with a keyword
  912. -- on a CI.  The property can not be added if the keyword is
  913. -- invalid and a property can not be removed if it is required.
  914. -- To remove a property simply give it a null string for a new
  915. -- value.  This change has no effect on other CIs with the same
  916. -- name.
  917.  
  918. .EL
  919. .PG
  920. .HL ^&CHANGE_PASSWORD\&
  921. .SK
  922. .P
  923. CHANGE_PASSWORD will allow a privileged user to change the catalog password.
  924. The user is prompted for first the old password and then the new one.
  925. The new password is then asked for again so that it can be verified.
  926. This procedure will fail if either the old password is incorrect or the
  927. two new passwords do not match.
  928. .LT
  929.  
  930. -- CHANGE_PASSWORD : Changes the privileged user password.
  931. --                   This is a privileged operation
  932. -- 3.02-1.0
  933.  
  934.  
  935. procedure CHANGE_PASSWORD;
  936.  
  937. -- To change the password the user must know the old password.
  938. -- The user will prompted for the old password and then the new
  939. -- password twice to verify that it was typed correctly.
  940.  
  941. .EL
  942. .PG
  943. .HL ^&DEFINE_KEYWORD\&
  944. .SK
  945. .P
  946. DEFINE_KEYWORD is used to define or change the definition of
  947. keywords for the catalog.  Each catalog
  948. must have its own set of keywords.  A keyword can be defined with one
  949. of three different status, OPTIONAL, REQUIRED, and INVALID.  If a 
  950. keyword is defined as invalid it prevents libraries with that property
  951. from being added to the catalog
  952. Required keywords are keywords that must be present for a library to be added
  953. to the catalog.  If any of the set of required keywords is missing
  954. the STORE or CREATE_CI
  955. will fail.  Invalid keywords are still useful for looking up
  956. a CIV as a select can be done using invalid keywords.
  957. .LT
  958.  
  959.  
  960. -- DEFINE_KEYWORD : Define a new keyword, or change the status of an
  961. --                  existing one.
  962. --                  This is a privileged operation
  963. -- 3.02-1.0
  964.  
  965.  
  966. type PROPER_STATUS is (OPTIONAL, REQUIRED, INVALID);
  967.  
  968. procedure DEFINE_KEYWORD(
  969.    KEYWORD : in STRING;
  970.    STATUS  : in PROPER_STATUS := OPTIONAL
  971.    );
  972.  
  973. -- KEYWORD : name of the keyword to define
  974. -- STATUS  : status of the keyword
  975.  
  976. -- Keywords are defined so that information about CIs can be stored
  977. -- in the database.  A required keyword must always be included on
  978. -- any CI stored.  Optional keywords are just that, optional.
  979. -- Invalid keywords are ones that may at one time have been valid,
  980. -- but can no longer be used to store CIs.  They can still be used
  981. -- for lookup since CIs added with a keyword before it was made 
  982. -- invalid are not changed.
  983.  
  984. .EL
  985. .PG
  986. .HL ^&DELETE\&
  987. .SK
  988. .P
  989. A CIV that is already in the catalog can be deleted using this subprogram.
  990. There are two types of DELETE, CLEAN_UP and FIX_UP, which serve 
  991. different purposes.  A DELETE that is being done to clean up the catalog
  992. is removing old CIs so that space can be reclaimed.  A CIV that is being 
  993. deleted for fix up purposes was not stored correctly in the catalog.  A
  994. STORE (or CREATE_CI) can be incomplete if the user aborted in the middle
  995. or the machine crashed, so DELETE allows the incomplete CIV to be removed.
  996. The difference between the two modes is that in clean up mode the catalog
  997. manager checks there is no one with the CIV fetched,
  998. and it fails if there is someone with it fetched.  Obviously, if fix up
  999. mode is fixing a STORE that was incomplete the CIV will appear to be fetched
  1000. so the check is not done.
  1001. .LT
  1002.  
  1003.  
  1004. -- DELETE : Delete a configuration item that is in the catalog.
  1005. --          This is a privileged operation.
  1006. -- 3.02-1.0
  1007.  
  1008.  
  1009. subtype CI_ID       is STRING;
  1010. type    DELETE_TYPE is (FIX_UP, CLEAN_UP);
  1011.  
  1012. procedure DELETE(
  1013.    NAME : in CI_ID;
  1014.    MODE : in DELETE_TYPE := CLEAN_UP
  1015.    );
  1016.  
  1017. -- NAME : Name of the configuration item to delete
  1018. -- MODE : What type of delete is to be done
  1019.  
  1020. -- There are two types of deletion that may take place.  Deletion of a
  1021. -- CI that is out of date and not needed, and deletion of a CI where
  1022. -- the STORE only partially completed for some reason.  The former is
  1023. -- clean_up and the latter is fix_up.  When cleaning up, the catalog 
  1024. -- manager checks that the CI is not currently fetched.  In fix up the
  1025. -- STORE was incomplete and so by definition the CI will still appear
  1026. -- to be fetched.
  1027.  
  1028. .EL
  1029. .PG
  1030. .HL ^&REMOVE_LOCK\&
  1031. .SK
  1032. .P
  1033. This procedure removes a lock on the catalog.  Before removing any locks
  1034. like this the privileged user should be sure that the lock is not current.
  1035. A lock can be left behind if the user exits the catalog by any means other
  1036. than the DONE command.  Read locks will prevent any other user from 
  1037. doing any commands involving a write lock, and a write lock will prevent
  1038. any user from opening the catalog.  An error message is returned if the
  1039. lock does not exist.
  1040. .LT
  1041.  
  1042.  
  1043. -- REMOVE_LOCK : Remove a lock that was left by a user aborting a session
  1044. --               This is a privileged operation
  1045. -- 3.02-1.0
  1046.  
  1047.  
  1048. type LOCK_TYPE is (READ, WRITE);
  1049. type NODE_TYPE is (CATALOG_NODE, CI_NODE, INDEX_NODE);
  1050.  
  1051. procedure REMOVE_LOCK(
  1052.    NAME      : in STRING;
  1053.    LOCK      : in LOCK_TYPE;
  1054.    NODE_NAME : in STRING    := "current_catalog";
  1055.    NODE      : in NODE_TYPE := CATALOG_NODE
  1056.    );
  1057.  
  1058. -- NAME      : Name of the person owning the lock
  1059. -- LOCK      : Type of lock that is to be removed
  1060. -- NODE_NAME : Name of the node to be unlocked
  1061. -- NODE      : Type of node to be unlocked
  1062.  
  1063. .EL
  1064.  
  1065. .PG
  1066. .HL ^&CREATE_CI&
  1067. .SK
  1068. .P
  1069. This procedure is used to create a new CI in the catalog.
  1070. During creation checks will be done before any real changes are made.  In
  1071. this way nothing in the catalog will be changed unless there are no errors.
  1072. As many errors as can be found will be reported before finishing execution
  1073. enabling a user to fix up all of the known errors before proceeding.
  1074. To create a CI, the library must not have been fetched for update or branch;
  1075. the name must be unique and an ada identifier; it must include all required
  1076. keywords, and may not include any keywords that are invalid or undefined.
  1077. This is a privileged operation that should probably be controlled by
  1078. a CM coordinator.
  1079. .LT
  1080.  
  1081.  
  1082. -- CREATE_CI : create a new configuration item (CI) in the catalog
  1083. -- 3.02-1.0
  1084.  
  1085.  
  1086. subtype CI_ID is STRING;
  1087.  
  1088. procedure CREATE_CI(
  1089.    NAME    : in CI_ID;
  1090.    LIBRARY : in STRING;
  1091.    HISTORY : in STRING
  1092.    );
  1093.  
  1094. -- NAME    : Name of the new ci to create
  1095. -- LIBRARY : Name of the item library to create the CI from
  1096. -- HISTORY : Brief description of the new CI
  1097.  
  1098. -- Any errors encountered will be reported to the user and the
  1099. -- creation will not take place.  In addition to having the correct
  1100. -- status, the keywords on the library must be both valid, and
  1101. -- include all the required ones.  The history parameter will be
  1102. -- stored on the new CI along with the creator and date.  This
  1103. -- information can be seen with the HISTORY command.
  1104.  
  1105.  
  1106.  
  1107. .EL
  1108. .PG
  1109. .HL ^&STORE&
  1110. .SK
  1111. .P
  1112. STORE is similar to create, but it creates a new CIV
  1113. which is based on an old one instead of an entirely new CI.  It checks for
  1114. slightly different errors, but like CREATE_CI as many errors as
  1115. can be found will be reported
  1116. and the STORE will not take place if there are any errors.  To STORE a library,
  1117. it must have been fetched for update or branch; the owner of the 
  1118. library must be the user
  1119. that did the FETCH; the CIV this library is based on must exist in this
  1120. catalog; the CI name must be a valid ada identifier; the properties must
  1121. include all required keywords, and not include any that are invalid.
  1122. This is also a privileged operation.
  1123. .LT
  1124.  
  1125.  
  1126. -- STORE : Store a new version of an already existing CI
  1127. -- 3.02-1.0
  1128.  
  1129.  
  1130.  
  1131. procedure STORE(
  1132.    LIBRARY : in STRING;
  1133.    HISTORY : in STRING
  1134.    );
  1135.  
  1136. -- LIBRARY : Name of the item library to get the CI from
  1137. -- HISTORY : Description of the changes made to the new CI
  1138.  
  1139. -- Any errors encountered will be reported to the user and the
  1140. -- STORE will not take place.  In addition to being fetched
  1141. -- correctly, the keywords on the library must be both valid,
  1142. -- and include all the required ones.  The history parameter will
  1143. -- be stored along with the creator and date and can be accessed
  1144. -- with the history command.
  1145.  
  1146. .EL
  1147. .PG
  1148. .HL ^&LIBRARY_MANAGER&
  1149. .SK
  1150. .P
  1151. Refer to the section on Interactive Library Manager for command
  1152. description and syntax.
  1153. ::::::::::::::
  1154. docfile
  1155. ::::::::::::::
  1156. ::::::::::::::
  1157. docmgr.cnt
  1158. ::::::::::::::
  1159. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]CREATERM.ADA   7 L  0 C 4 S 
  1160. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]DOCMGR.DAT     13 L  4 C 3 S 
  1161. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]ADDUSER.ADA    91 L  0 C 44 S 
  1162. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]DELHUSER.SPC   15 L  5 C 4 S 
  1163. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]DELHUSER.BDY   60 L  3 C 29 S 
  1164. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]DELUSER.ADA    34 L  0 C 19 S 
  1165. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]PAGINATE.ADA   238 L  1 C 117 S 
  1166. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]LIBMGR.DAT     140 L  53 C 69 S 
  1167. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]LIBERR.SPC     56 L  4 C 6 S 
  1168. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]LIBERR.BDY     135 L  3 C 34 S 
  1169. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]LIBUTL.SPC     599 L  216 C 57 S 
  1170. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]LIBUTL.BDY     2179 L  5 C 116 S 
  1171. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]ADDP.SPC       19 L  5 C 6 S 
  1172. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]ADDP.BDY       123 L  0 C 74 S 
  1173. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]CANCELI.SPC    16 L  5 C 4 S 
  1174. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]CANCELI.BDY    100 L  0 C 60 S 
  1175. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]COPYL.SPC      22 L  7 C 5 S 
  1176. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]COPYL.BDY      167 L  0 C 103 S 
  1177. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]COPYL.ADA      103 L  0 C 41 S 
  1178. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]CREATEI.SPC    18 L  6 C 4 S 
  1179. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]CREATEI.BDY    117 L  0 C 72 S 
  1180. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]CREATEI.ADA    83 L  0 C 35 S 
  1181. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]CREATEL.SPC    16 L  5 C 4 S 
  1182. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]CREATEL.BDY    88 L  0 C 52 S 
  1183. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]CREATEL.ADA    69 L  0 C 31 S 
  1184. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]DELETEI.SPC    19 L  5 C 6 S 
  1185. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]DELETEI.BDY    130 L  0 C 82 S 
  1186. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]DELETEL.SPC    17 L  5 C 6 S 
  1187. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]DELETEL.BDY    91 L  0 C 53 S 
  1188. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]DELETEL.ADA    60 L  0 C 29 S 
  1189. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]DELETEP.SPC    18 L  5 C 6 S 
  1190. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]DELETEP.BDY    113 L  0 C 68 S 
  1191. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]FETCHI.SPC     22 L  7 C 5 S 
  1192. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]FETCHI.BDY     208 L  0 C 136 S 
  1193. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]FETCHI.ADA     106 L  0 C 43 S 
  1194. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]LISTI.SPC      21 L  6 C 5 S 
  1195. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]LISTI.BDY      174 L  0 C 113 S 
  1196. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]LISTI.ADA      107 L  0 C 43 S 
  1197. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]LISTL.SPC      16 L  5 C 4 S 
  1198. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]LISTL.BDY      121 L  0 C 80 S 
  1199. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]LISTL.ADA      69 L  0 C 30 S 
  1200. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]LISTP.SPC      18 L  7 C 4 S 
  1201. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]LISTP.BDY      134 L  0 C 85 S 
  1202. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]MODIFYP.SPC    20 L  6 C 6 S 
  1203. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]MODIFYP.BDY    123 L  0 C 74 S 
  1204. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]PURGEI.SPC     18 L  5 C 6 S 
  1205. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]PURGEI.BDY     104 L  0 C 60 S 
  1206. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]RENAMEI.SPC    19 L  5 C 6 S 
  1207. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]RENAMEI.BDY    115 L  0 C 66 S 
  1208. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]RENAMEV.SPC    21 L  6 C 6 S 
  1209. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]RENAMEV.BDY    129 L  0 C 74 S 
  1210. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]RETURNI.SPC    18 L  6 C 4 S 
  1211. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]RETURNI.BDY    118 L  0 C 73 S 
  1212. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]RETURNI.ADA    79 L  0 C 35 S 
  1213. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]SHOWHIST.SPC   18 L  6 C 4 S 
  1214. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]SHOWHIST.BDY   174 L  0 C 112 S 
  1215. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]LIBMGR.SPC     16 L  5 C 4 S 
  1216. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]LIBMGR.BDY     956 L  65 C 255 S 
  1217. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]LIBMGR.ADA     69 L  0 C 31 S 
  1218. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]VLIST.SPC      2 L  0 C 2 S 
  1219. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]CIID.SPC       216 L  77 C 31 S 
  1220. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]CATDECLS.DAT   30 L  2 C 19 S 
  1221. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]PROP.SPC       29 L  0 C 11 S 
  1222. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]PROP.BDY       27 L  0 C 8 S 
  1223. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]CATMGR.SPC     380 L  196 C 66 S 
  1224. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]CIID.BDY       535 L  123 C 158 S 
  1225. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]HIFUTIL.SPC    37 L  2 C 9 S 
  1226. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]LOCK.SPC       64 L  27 C 12 S 
  1227. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]CIINDEX.SPC    149 L  62 C 27 S 
  1228. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]CIINDEX.BDY    424 L  97 C 166 S 
  1229. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]CATMGR.BDY     1646 L  256 C 747 S 
  1230. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]RDPARSER.SPC   67 L  11 C 26 S 
  1231. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]COMMAND.SPC    12 L  5 C 2 S 
  1232. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]COMMAND.BDY    1224 L  75 C 613 S 
  1233. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]HIFUTIL.BDY    61 L  2 C 19 S 
  1234. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]INTERFACE.SPC  123 L  82 C 7 S 
  1235. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]INTERFACE.BDY  609 L  77 C 150 S 
  1236. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]LOCK.BDY       243 L  72 C 93 S 
  1237. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]RDPARSER.BDY   157 L  11 C 79 S 
  1238. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]CHCONSIST.ADA  112 L  23 C 39 S 
  1239. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]LISTCAT.ADA    71 L  10 C 27 S 
  1240. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]CREATECAT.ADA  88 L  17 C 31 S 
  1241. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]OPENCAT.ADA    77 L  15 C 28 S 
  1242. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]FGEN.BDY       873 L  97 C 354 S 
  1243. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]FGEN.SPC       15 L  0 C 5 S 
  1244. USER1:[NOSC.RELEASES.V0302.DOCMGR.SOURCE]FILEGEN.ADA    94 L  5 C 32 S 
  1245. ::::::::::::::
  1246. docmgr.mem
  1247. ::::::::::::::
  1248.                         Documentation System User Guide
  1249.       ____________      INTRODUCTION
  1250.            The Documentation System  is  made  up  of  four  parts:   the
  1251.       catalog  manager;  the  item library manager; paginate and filegen.
  1252.       The  catalog  manager  is  the  interface  to  configuration   item
  1253.       catalogs,  and  the  item  library manager is the interface to item
  1254.       libraries.  These interfaces will be described in detail  in  later
  1255.       sections,  although some commands will be mentioned here to provide
  1256.       an overview of the system.  Filegen and paginate are  utilities  to
  1257.       be used with the Documentation System.
  1258.       ________ _ _____________ ______ ____      BECOMING A DOCUMENTATION SYSTEM USER
  1259.            In order to use the Documentation System the user  must  be  a
  1260.       HIF  user.   There is an operation ADD_USER that will make a user a
  1261.       HIF user.  ADD_USER has two parameters:  a directory where HIF data
  1262.       files  will  be  kept  and  a user id.  The user id defaults to the
  1263.       current user id.  If you are adding yourself there is  no  need  to
  1264.       specify  the  second parameter.  In order to be recognized as a HIF
  1265.       user your HIF user id must be  the  same  as  your  login  id.   In
  1266.       addition  to ADD_USER there is DELETE_USER that takes no parameters
  1267.       and removes the current user from the HIF.
  1268.            The  user  must  also  set  two   logical   variables   called
  1269.       HIF_DIRECTORY  and  HIF_FDL.  This is best done at login time.  The
  1270.       values for both of these variables are determined  at  installation
  1271.       time  by  the  person  that  sets up the documentation system.  All
  1272.       operations will fail if the user is not a HIF user.
  1273.       ________ __ ___ _______ _______ ___ ____ _______ _______      OVERVIEW OF THE CATALOG MANAGER AND ITEM LIBRARY MANAGER
  1274.            A configuration item (CI) is a collection of  files  that  are
  1275.       logically  connected.   For example the set of files that make up a
  1276.       list package could be grouped as one CI.  The user has  the  option
  1277.       of  including  all  files,  source  and documentation, in one CI or
  1278.       dividing the files into one or more CIs as seems appropriate.   The
  1279.       degenerate case would be where a CI contains only one item.
  1280.            The way in which the files are grouped prior to making them  a
  1281.       CI is to put them into an item library.  An item is not a file.  It
  1282.       is the 'contents' of that file.  In this way an  item  library  can
  1283.       contain  any  number of versions of one 'item'.  Item libraries are
  1284.       created with the item library manager  command  CREATE_LIBRARY.   A
  1285.       library  is  created  empty and your files are put into the library
  1286.       with the command CREATE_ITEM.  More versions of an item are created
  1287.       by   calling  FETCH_ITEM,  modifying  the  file  and  then  calling
  1288.       RETURN_ITEM.
  1289.            In order to make a CI there must be a catalog in which to  put
  1290.       it.   Catalogs  are  created  with the CREATE_CATALOG command.  Any
  1291.       number of catalogs can be in the  same  documentation  system,  but
  1292.       they  must  have unique names.  Different projects may want to keep
  1293.       Documentation System User Guide                              Page 2
  1294.       their CIs in different catalogs.  There are  three  other  commands
  1295.       that   act   on  catalogs:   LIST_CATALOGS,  CHECK_CONSISTENCY  and
  1296.       OPEN_CATALOG.   LIST_CATALOGS  will  list  all  catalogs   in   the
  1297.       documentation  system;  CHECK_CONSISTENCY walks a catalog structure
  1298.       reporting any inconsistencies; OPEN_CATALOG is an interactive  tool
  1299.       that provides the user interface to CIs in a catalog.  Any commands
  1300.       following that deal with  CIs  are  actually  commands  within  the
  1301.       OPEN_CATALOG tool.
  1302.            To make a CI you must have an item library.  A CI is made from
  1303.       the  library  when you execute the command CREATE_CI.  At this time
  1304.       the contents of the library are put into the catalog under the name
  1305.       that  you give it and the library is deleted.  For example, suppose
  1306.       the list package files were put into a library, now they are  in  a
  1307.       controlled  environment  for  the  developer to modify and test the
  1308.       code until a working list package is arrived at.  The  user  should
  1309.       then  let  a  configuration  management (CM) coordinator know which
  1310.       library to take.  Using CREATE_CI the CM coordinator will make a CI
  1311.       from  the  specified  library.   CREATE_CI  takes  the  most recent
  1312.       version of each item, and other information stored in  the  library
  1313.       moves  it  into the catalog under the name given to CREATE_CI which
  1314.       might have been 'list' for the list package.  A CI version  of  '1'
  1315.       will  be assigned to this CI and so the CI id of this CI version is
  1316.       'list 1'.
  1317.            Although there are versions of a CI,  each  version  could  be
  1318.       viewed  as a configuration item itself.  This is easy to understand
  1319.       since each 'version' exists for some reason, and  even  though  new
  1320.       development  would  probably use the most current version of any CI
  1321.       it needs, there will undoubtedly be something that still depends on
  1322.       an  older  version,  So  to  avoid confusion, from now on 'CI' will
  1323.       refer to the complete collection of versions that share the same CI
  1324.       name, and 'CI version' (CIV) will refer to a particular instance of
  1325.       a CI.  A CI id identifies a particular CI version.
  1326.            When a CIV is  put  into  the  catalog  other  information  in
  1327.       addition  to  the  files  is  kept.   Properties  are  part  of the
  1328.       information taken from the library.  A property is a keyword, value
  1329.       pair  that  identifies  some attribute of the CIV.  For example the
  1330.       list package might have a property:  LANGUAGE-ADA.  Properties  are
  1331.       attached  to a CIV when it is in the item library stage.  There are
  1332.       item library commands to add, delete and  change  properties.   The
  1333.       properties  are  not checked, however, until the user tries to make
  1334.       the library a CIV.  The reason for this is that different  catalogs
  1335.       can have different sets of valid keywords and when you just have an
  1336.       item library there is nothing to determine which catalog  in  which
  1337.       it may be put later.
  1338.            The valid keywords for a catalog are defined by  a  privileged
  1339.       user, usually the person that created the catalog, and keywords can
  1340.       be defined to be required on every CIV.  When the CIV is created or
  1341.       stored  in the catalog its properties are checked to make sure they
  1342.       all have valid keywords and all the  required  ones  are  included.
  1343.       Then  the  properties are stored in a database that allows users to
  1344.       query the catalog by properties.
  1345.       Documentation System User Guide                              Page 3
  1346.            Having determined through the database what CIV  they  want  a
  1347.       user  can FETCH it to modify or just to use.  When a CIV is fetched
  1348.       its contents are put into a specified item library.  At this  point
  1349.       the user may fetch and return items as before, and the item library
  1350.       in this case can be thought of as a working copy of the CI.
  1351.            When the library is again ready to become a CIV it is returned
  1352.       to  the catalog with the STORE operation.  The store operation will
  1353.       give the CIV a CI id that has the same CI name as  before  and  the
  1354.       next  number  sequentially for the version.  For example, suppose a
  1355.       user wanted to add a labeled list to the  list  package.   The  CIV
  1356.       could  be fetched, modified and then stored.  It would have a CI id
  1357.       of 'list 2'.
  1358.            This development cycle can be repeated any  number  of  times.
  1359.       The  user  should  note  that  CREATE_CI  and  STORE are privileged
  1360.       commands that can only be executed  by  a  person  that  knows  the
  1361.       catalog  password.   This would normally be the person that created
  1362.       the catalog or a CM coordinator.  On the other hand any user may do
  1363.       a FETCH and most of the other commands in the interactive tool.
  1364.       ________ ___ _______      PAGINATE AND FILEGEN
  1365.            Paginate and Filegen are utilities that can be used  with  the
  1366.       catalog  manager  and  the  item library manager, or independently.
  1367.       Paginate will produce an output file with page breaks  ,  a  header
  1368.       and  a  footer from any text input file.  The options it allows are
  1369.       described fully in the paginate section.
  1370.            Filegen is a file inclusion utility.  Given a file  containing
  1371.       filegen directives it will produce an output file that contains the
  1372.       original file's text, the text of  any  files  included  and  other
  1373.       information  like  the  current date and the CI name of the CIV the
  1374.       file is in.  The information that can be included is  described  in
  1375.       detail in the filegen section dealing with the filegen directives.
  1376.            In addition to being able to include  other  files  from  your
  1377.       file  system, you can include files from a library or even a CIV in
  1378.       a catalog.  You can also produce output from a file inside  a  CIV.
  1379.       If you give as input the name of an item in a CIV, the the CIV's CI
  1380.       id and the catalog name, file gen will produce an output file  that
  1381.       is the text of the input item, and the information generated by the
  1382.       filegen directives.
  1383.       Documentation System User Guide                              Page 4
  1384.       _______ _______      CATALOG MANAGER
  1385.       ___________      Description
  1386.            A catalog is a database of configuration items (CI),  and  the
  1387.       catalog  manager  encompasses  the  procedures  that allow users to
  1388.       manage catalogs, access CIs and add new CIs.   A  catalog  contains
  1389.       CIs, a keyword list and a property index.  CIs will have properties
  1390.       to describe them, and when  a  CI  is  added  to  the  catalog  its
  1391.       properties  are  stored  in  the  index  so it can be referenced by
  1392.       property.  A property  is  a  keyword,  value  pair,  and  all  the
  1393.       allowable  keywords for the catalog are stored in its keyword list.
  1394.       There are three states that a keyword can have:  optional, required
  1395.       and invalid.  Invalid keywords are ones that once were valid.
  1396.            Libraries can only be STORED into the catalog as a CI  version
  1397.       if  all  the  properties  are valid.  In this way a user can use an
  1398.       invalid keyword when selecting CIVs from the index since there  may
  1399.       be  versions  that were added to the catalog before the keyword was
  1400.       invalid.  Although it is possible to define a  keyword  as  invalid
  1401.       from the start it serves no useful purpose.
  1402.            There   are   four   procedures   that   act   on    catalogs.
  1403.       CREATE_CATALOG creates new catalogs, and any number of catalogs can
  1404.       be created as long as they have unique names.  A catalog name  must
  1405.       be  an Ada identifier.  LIST_CATALOGS will list all the catalogs in
  1406.       the system.  It can be given a pattern in which case it  will  only
  1407.       print   out   those   catalogs  whose  name  matches  the  pattern.
  1408.       OPEN_CATALOG will open a specific catalog and put the  user  in  an
  1409.       interactive  tool  where  he can select CIVs, fetch and store them.
  1410.       In the interactive  tool  the  user  can  also  print  out  various
  1411.       information    stored    in    the    catalog   about   the   CIVs.
  1412.       CHECK_CONSISTENCY will read the structure  of  a  catalog  and  the
  1413.       information in it and check that it is not corrupt.  It will report
  1414.       any inconsistencies it finds.  It does not do  any  actual  fixing,
  1415.       but there are ways for privileged users to fix the inconsistencies.
  1416.       _____________ ____ ________      Configuration Item Versions
  1417.            A CI version will have file components  and  properties.   The
  1418.       file  components  are  the  source files that go into making up the
  1419.       version.  A file component  can  be  any  type  of  text;  code  or
  1420.       documentation.  Properties are keyword, value pairs associated with
  1421.       a version that describe it in some way.   For  example,  a  keyword
  1422.       might  be  subject,  and a value for that keyword might be ADA_pdl.
  1423.       Both keywords and values must be ada  identifiers.   When  an  item
  1424.       library  is  added to a catalog to become a CIV its properties must
  1425.       have keywords that are  valid  for  that  catalog,  and  they  must
  1426.       include  all  required  keywords.   If  there are any errors when a
  1427.       library is being added to the catalog, the error  is  reported  and
  1428.       the library is left where it is.  Item libraries are managed by the
  1429.       Item Library Manager procedures.
  1430.       Documentation System User Guide                              Page 5
  1431.       _____________ ______________      Configuration Identification
  1432.            A CI id consists  of  two  parts,  a  name  which  is  an  ada
  1433.       identifier  and  the  version  which  is  assigned  by  the catalog
  1434.       manager.  The version is a number beginning at 1 with  the  version
  1435.       being  assigned  sequentially.  If a CIV is only fetched for update
  1436.       then its versions will be a single number.  The updates of a CI are
  1437.       called  trunk  versions.   When  a  CIV  is fetched as a branch the
  1438.       version gets two more numbers when it is stored.  The first  number
  1439.       indicates  what  branch  this is and then the second indicates that
  1440.       this CIV is the first version along the  branch.   For  example,  a
  1441.       branch  from  the CIV 'example 2' would be given the CI id 'example
  1442.       2.1.1' when it was stored.  This new CIV can also  be  checked  out
  1443.       for  updating,  and  when  the  store  is  done  the CI id would be
  1444.       'example 2.1.2'.  These CIVs begin a trunk along the branch.  It is
  1445.       also  possible  to  have  branches from branches.  For example, the
  1446.       STORE of a branch from 'example 2.1.2' would be given a  CI  id  of
  1447.       'example 2.1.2.1.1'.  It should be noted that in addition to making
  1448.       the  version  numbers  longer,  branches  add  some   computational
  1449.       overhead,  so  operations  with  branches will take a little longer
  1450.       depending on how many levels of branching there is.
  1451.       _____ ___ _______ _______      Using The Catalog Manager
  1452.            A project should set up a catalog in which  to  put  its  CIs.
  1453.       When  CREATE_CATALOG  is  invoked  the user must supply a directory
  1454.       where the catalog will keep its data files.  The catalog  directory
  1455.       is  like  an  Ada program library:  you may go into it and list the
  1456.       files, but if you change  anything  you  may  corrupt  the  catalog
  1457.       beyond repair.
  1458.            It is suggested that the  project  create  one  directory  for
  1459.       catalog  related  file  and create the catalog as a subdirectory of
  1460.       the designated directory.  The user directories and item  libraries
  1461.       can  also  be subdirectories of this directory enabling a backup of
  1462.       all documentation system data to be collected easily.
  1463.            When the catalog is created a password is prompted for.   This
  1464.       password  should  then only be given out to those that NEED to know
  1465.       like a CM coordinator.  The only command that changes  the  catalog
  1466.       which is not privileged is MODIFY_PROPERTY, but it only affects the
  1467.       index.  Once the catalog is created the creator should lose no time
  1468.       in  opening  it  and defining the keywords allowed and add any item
  1469.       libraries pending.
  1470.       _______ _______      Example Session
  1471.            A user beginning to use the system for the  first  time  would
  1472.       probably execute a sequence of commands like the following:
  1473.       LIST_CATALOGS; -- to find out what catalogs are available.
  1474.       -- Suppose there was a catalog called "PROJECT" that is the user's 
  1475.       -- project catalog.
  1476.       OPEN_CATALOG ("PROJECT"); -- opens the catalog.
  1477.       -- Note that the names are Ada identifiers so case is unimportant.
  1478.       Documentation System User Guide                              Page 6
  1479.       LIST_KEYWORDS; -- lists the possible keywords to select by.
  1480.       -- Suppose that there are keywords language, type, subject, 
  1481.       -- implementor, group, and that the user is interested in finding 
  1482.       -- the list package mentioned earlier with the requirement that 
  1483.       -- it be written in Ada.  
  1484.       SELECT_CIS ("language=ada & type=abstraction");
  1485.       -- This will return a set of CI ids that have both these properties.
  1486.       -- Suppose that the set returned contained: list 1, list 2, list 3, 
  1487.       -- set 1, set 1.1.1, set 1.1.2, and stack 1.
  1488.       -- (The user could also have done a LIST_CIS; to see the names of 
  1489.       --  the CIs in the catalog if there weren't too many.)
  1490.       LIST_VERSIONS ("list");
  1491.       -- lists all possible versions of the CI 'list'.  There may be a 
  1492.       -- list 1.1.1 that is a list of one particular item which did 
  1493.       -- not fit the 'type=abstraction' criteria.
  1494.       HISTORY ("list 3"); -- shows the comments recorded with each version.
  1495.       DESCRIBE ("list 3"); -- will show all the properties on list 3.
  1496.       LIST_COMPONENTS ("list 3); -- will list all the items in the version.
  1497.       -- Suppose that after seeing all this information the user determines 
  1498.       -- that list 3 is the version closest to what is needed, but some 
  1499.       -- changes need to be made.
  1500.       FETCH ("list 3", "list_library", "[.list_library]", update);
  1501.       -- This puts list 3 in the library list_library.  All properties 
  1502.       -- associated with list 3 are also copied to the library so some may 
  1503.       -- need to be changed.   
  1504.       -- At this point the user cannot do any more.  The library can only be
  1505.       -- returned to the catalog by a privileged user.
  1506.            This example did not show all the uses  of  the  commands  and
  1507.       they  are  described  in  more detail in the sections pertaining to
  1508.       each command.  CHECK_CONSISTENCY is a command  that  will  also  be
  1509.       used  by  privileged  users.   Anyone  is enabled to run it, but if
  1510.       there turn out to be any inconsistencies only a privileged user can
  1511.       fix  them.   The  checks  and  how  to  fix any inconsistencies are
  1512.       described in the section on CHECK_CONSISTENCY.
  1513.       Documentation System User Guide                              Page 7
  1514.       _______ _______ ________      CATALOG MANAGER COMMANDS
  1515.       ______________      CREATE_CATALOG -
  1516.            CREATE_CATALOG creates the named catalog on the  system.   The
  1517.       user  must give the name as an ada identifier, and a directory name
  1518.       where the catalog will be placed.   The  directory  cannot  already
  1519.       exist,  and  the  name  of  the catalog must be unique.  During the
  1520.       creation process the user will be prompted for  a  password.   This
  1521.       becomes  the  privileged  user  password,  and will be prompted for
  1522.       before allowing anyone to perform any  restricted  operation.   The
  1523.       user  must  also already be a documentation system user in order to
  1524.       run any of the catalog manager procedures.  A user is added to  the
  1525.       documentation system with ADD_USER.
  1526.       -- CREATE_CATALOG : Create a new configuration item catalog
  1527.       -- 3.02-1.0
  1528.       procedure CREATE_CATALOG(
  1529.          CATALOG_NAME   : in STRING;
  1530.          DIRECTORY_SPEC : in STRING
  1531.          );
  1532.       -- CATALOG_NAME   : Name of the catalog to be created
  1533.       -- DIRECTORY_SPEC : Name of the directory to create the catalog in
  1534.       -- Creates a new configuration item catalog.  The name of the catalog
  1535.       -- must be an ada identifier and the directory should not already
  1536.       -- exist.  The user will be prompted for a privileged user password
  1537.       -- when the catalog is created.  The user must be a document manager
  1538.       -- system user to be able to run this tool (see Add_User).
  1539.       Documentation System User Guide                              Page 8
  1540.       ____________      OPEN_CATALOG -
  1541.            OPEN_CATALOG opens the specified catalog and puts the user  in
  1542.       the  interactive  tool.   From within the interactive tool the user
  1543.       can query the catalog about various CIs and  fetch  CIs  into  item
  1544.       libraries  for  modification.   When the catalog is opened the user
  1545.       gets a read lock on the catalog.  This lock  prevents  other  users
  1546.       from  performing  operations  that  would  change  the catalog like
  1547.       creating a CI, but other users may also open the  catalog  to  read
  1548.       it.   If someone is creating a CIV in the catalog when a user tries
  1549.       to open it they will get a message saying that the other person has
  1550.       a  write  lock  and they will be asked if they wish to override the
  1551.       lock.  This prompt is to allow a privileged user to remove a  write
  1552.       lock  that  was  left  on the catalog by mistake.  Most users would
  1553.       respond no to the prompt since you must know  the  privileged  user
  1554.       password  to  continue.  If the catalog is write locked in this way
  1555.       when you try to open it, simply wait a few minutes and  try  again.
  1556.       If  it  continues  to  be  locked by the same user for more that 30
  1557.       minutes, you probably should notify a privileged user that there is
  1558.       a  lock  that  may  need to be removed.  If the user trys to open a
  1559.       catalog that does not exist an error message is returned.   If  the
  1560.       user  exits  the  interactive tool by any means other than the EXIT
  1561.       command their read lock will be left on the catalog.  You  may  not
  1562.       re-enter  the  catalog  is a read lock already exists for which you
  1563.       are the owner.  This to prevent users  from  entering  the  catalog
  1564.       under  two  different login sessions because the two sessions locks
  1565.       would interact.  For descriptions of all the  interactive  commands
  1566.       see the section on the interactive catalog manager.
  1567.       -- OPEN_CATALOG : Open a configuration item catalog
  1568.       -- 3.02-1.0
  1569.       procedure OPEN_CATALOG(
  1570.          CATALOG_NAME : in STRING
  1571.          );
  1572.       -- CATALOG_NAME : Name of the catalog to be opened
  1573.       -- Opens the specified catalog and places the user in interactive
  1574.       -- mode.  The name given must belong to an existent catalog.
  1575.       -- Create_Catalog should be run first if the catalog does not exist
  1576.       -- The user must be a document system manager user to run this tool
  1577.       -- (see Add_User).
  1578.       Documentation System User Guide                              Page 9
  1579.       _____________      LIST_CATALOGS -
  1580.            LIST_CATALOGS lists  all  catalogs  in  the  document  manager
  1581.       system.   If  it is given a pattern to match only the catalogs with
  1582.       names that match the pattern will be returned.
  1583.       -- LIST_CATALOGS : List the names of all the catalogs in the 
  1584.       --                 document system
  1585.       -- 3.02-1.0
  1586.       procedure LIST_CATALOGS(
  1587.          CATALOGS : in STRING := "*"
  1588.          );
  1589.       -- CATALOGS : Search string for the name to match
  1590.       -- A list of all the catalogs in the current document manager system
  1591.       -- is produced.  The default is to list all catalogs, but a subset may
  1592.       -- be selected by giving a pattern to match for catalogs.  The user
  1593.       -- must be a document manager system user to run this tool (see Add_User)
  1594.       Documentation System User Guide                             Page 10
  1595.       _________________      CHECK_CONSISTENCY -
  1596.            CHECK_CONSISTENCY checks that the internal  structure  of  the
  1597.       catalog  is  not  corrupted  and  that  the  index of properties is
  1598.       correct.  Any inconsistencies are reported in  the  file  returned.
  1599.       The checks that it performs are as follows.
  1600.            For the catalog it checks that there is only one password, and
  1601.       it  reports any users that have read or write locks on the catalog.
  1602.       If this procedure is run late at night any locks found may need  to
  1603.       be  removed  with  REMOVE_LOCK.  If there is more than one password
  1604.       just redo the CHANGE_PASSWORD, but you do have to remember what the
  1605.       old password was.
  1606.            The index is also checked to make sure that the data node  for
  1607.       each  keyword  still  exists.  If the node has somehow been deleted
  1608.       you cannot automatically recreate  the  data,  but  redefining  the
  1609.       keyword will put the data node back.  Once that is done you can run
  1610.       CHECK_CONSISTENCY again and do a MODIFY_PROPERTY for all  the  CIVs
  1611.       that report that the property is missing from the index.
  1612.            It checks that for each CI version in  the  catalog  the  node
  1613.       that  contains  the  file components exists if the CIV has not been
  1614.       deleted.  If the CIV has been  deleted  it  checks  that  the  node
  1615.       containing  the components does not exist.  In the first case where
  1616.       the file components do not exist an incomplete store would  be  the
  1617.       most  likely cause.  The solution is to delete the version with the
  1618.       mode being  FIX_UP,  and  then  to  re-STORE  or  re-CREATE_CI  the
  1619.       version.   In  the  case  of  a re-STORE determining the library to
  1620.       store can be done by doing a LIST_LIBRARY of the libraries owned by
  1621.       the person that has the version fetched (which is also reported for
  1622.       each version).  The library will  still  exist  since  it  it  only
  1623.       deleted  after  the  CI version is completely created.  If the node
  1624.       still exists after the CIV was supposed  to  be  deleted  ,  simply
  1625.       re-try the DELETE.
  1626.            There is a check to make sure that every CI has at  least  one
  1627.       version.  If this is not so redo the CREATE_CI to fix the problem.
  1628.            In addition, this procedure will check that all the properties
  1629.       for  each  CI  version are recorded in the index.  If a property is
  1630.       missing from the index it could indicate  an  incomplete  store  in
  1631.       which  case  the  person  is  still  recorded as having the version
  1632.       fetched,  and  the  library  still  exists.   In  the  case  of  an
  1633.       incomplete  CREATE_CI  there  is no record of it being fetched, but
  1634.       the library still exists.  Depending on how many properties did not
  1635.       get added and whether it is a STORE or CREATE_CI there are two ways
  1636.       to solve this problem.  The first is to delete the  CI  version  in
  1637.       FIX_UP  mode  and  then to retry the STORE or CREATE_CI.  The other
  1638.       way only works if the operation that didn't complete was  a  STORE.
  1639.       You could add each of the properties with MODIFY_PROPERTY, take the
  1640.       user's name off the fetched list with CANCEL and the library  name,
  1641.       and then delete the library.  index.
  1642.       Documentation System User Guide                             Page 11
  1643.            This procedure checks that the actual number of branches  from
  1644.       this version match the number stored in the attribute recording how
  1645.       many branches there should be.  If the number of branches  is  more
  1646.       that  the  recorded  attribute  there  is nothing to do since STORE
  1647.       takes care of fixing the attribute the next time a branch is added.
  1648.       The  case where there are fewer branches should never happen unless
  1649.       someone modifies the catalog  structure  directly,  in  which  case
  1650.       there is no way to fix it.
  1651.            All the names of people with the CI version  fetched  will  be
  1652.       included   in   the  report  although  these  are  not  necessarily
  1653.       inconsistencies.  If you determine that a name on the fetched  list
  1654.       is  incorrect  then  CANCEL  the  library  in  which the person had
  1655.       fetched that CIV.  To determine the library do  a  LIST_LIBRARY  of
  1656.       that person's libraries and see which one contains that CIV.
  1657.            It also checks that for each branch there is at least on trunk
  1658.       on  the  branch.   If there are no trunks on a branch then you must
  1659.       redo the STORE.
  1660.            Since this procedure runs over the whole catalog it will  take
  1661.       a long time to run.  It probably should not be run interactively.
  1662.       -- CHECK_CONSISTENCY : Check the consistency of the information in 
  1663.       --                     a catalog
  1664.       -- 3.02-1.0
  1665.       procedure CHECK_CONSISTENCY(
  1666.          CATALOG_NAME : in STRING;
  1667.          OUTPUT_FILE  : in STRING
  1668.          );
  1669.       -- CATALOG_NAME : Name of the catalog to be checked
  1670.       -- OUTPUT_FILE  : Name of the output file for the consistency report
  1671.       -- Produces a report of the consistency of a given catalog
  1672.       -- The checks include: 
  1673.       -- Checking that the information on a CI matches the information in
  1674.       --         the index.
  1675.       -- Checking that CIs are complete.
  1676.       -- Checking that all the locks are current.
  1677.       -- Checking that there is only one password
  1678.       -- The user must be a document manager system user to use this tool
  1679.       -- (see Add_User). 
  1680.       Documentation System User Guide                             Page 12
  1681.       _____ __ ___ ___________ _______ _______      Guide To The Interactive Catalog Manager
  1682.            The interactive catalog manager is a system to allow users  to
  1683.       find  configuration items (CI) in a catalog, and subsequently fetch
  1684.       them from the catalog  to  modify.   It  has  functions  that  give
  1685.       information  to a user to allow identification of a particular CIV.
  1686.       In addition there are procedures to control the way  in  which  CIs
  1687.       are  taken  out  of the catalog and put back.  There are also a few
  1688.       procedures that can be performed only  by  a  privileged  user  who
  1689.       knows  the  catalog  password.  The procedures will be discussed in
  1690.       four section classified by the type of procedure.
  1691.       _____ ___ ___________ _______ _______      Using The Interactive Catalog Manager
  1692.            When you enter the interactive tool using OPEN_CATALOG you are
  1693.       first  prompted for a password.  This is the password to enable you
  1694.       to do privileged commands.  If you are not a  privileged  user,  or
  1695.       just  don't  want  to  use the privileged commands even if you are,
  1696.       simply hit the carriage return key.  As a privileged user  you  may
  1697.       run  all  the  privileged commands in addition to the regular ones.
  1698.       The tool will tell you as it sets up the catalog  whether  you  are
  1699.       entering as a privileged or privileged user.
  1700.       _______ _________      Catalog Functions
  1701.            These  two  functions  are  operations  that  act  within  the
  1702.       interactive  tool.   The  first  gives  help  about the interactive
  1703.       commands, and the second terminates the interactive session.
  1704.             o  HELP
  1705.             o  EXIT
  1706.       _____ _________      Query Functions
  1707.            There are two types of query functions.  One type operates  on
  1708.       the  catalog  as  a  whole  and  generally returns with a result of
  1709.       several  CIs.   The  other  type  provides  information   about   a
  1710.       particular  CIV.   More  details  about each of the commands can be
  1711.       found in the sections pertaining to each of them.
  1712.            Catalog Queries -
  1713.             o  SELECT_CIS
  1714.             o  CLEAR_SELECTED_SET
  1715.             o  PRINT_SET
  1716.             o  LIST_CIS
  1717.             o  LIST_KEYWORDS
  1718.             o  LIST_VERSIONS
  1719.            Configuration Item Queries -
  1720.             o  DESCRIBE
  1721.             o  HISTORY
  1722.             o  LIST_COMPONENTS
  1723.       Documentation System User Guide                             Page 13
  1724.       _____________ ____ ________      Configuration Item Commands
  1725.            These are commands that may be  done  by  anyone.   FETCH  and
  1726.       CANCEL  both  involve  item  libraries, and MODIFY_PROPERTY changes
  1727.       information in the index.
  1728.             o  FETCH
  1729.             o  CANCEL
  1730.             o  MODIFY_PROPERTY
  1731.       ___________ __________      Priviledged Operations
  1732.            These are privileged commands, and one must have  entered  the
  1733.       interactive  tool  as  a  privileged  user  in  order to user them.
  1734.       DELETE and REMOVE_LOCK are fix up commands, and CREATE_CI and STORE
  1735.       are both CIV creation commands.
  1736.             o  CHANGE_PASSWORD
  1737.             o  DEFINE_KEYWORD
  1738.             o  DELETE
  1739.             o  REMOVE_LOCK
  1740.             o  CREATE_CI
  1741.             o  STORE
  1742.       ____ _______ __________      Item Library Operations
  1743.            The following command deals with item libraries.
  1744.             o  LIBRARY_MANAGER
  1745.       Documentation System User Guide                             Page 14
  1746.       ___________ ________      INTERACTIVE COMMANDS
  1747.       ____      HELP
  1748.            HELP prints out a general help message  listing  each  of  the
  1749.       catalog  commands.   Short  descriptions are given of the commands,
  1750.       but for the most part additional help is given when the command  in
  1751.       question is entered with no parameters.
  1752.       -- SELECT_CIS : Selects a set of CIs according to the selection criteria given
  1753.       -- CLEAR_SELECTED_SET : Make the current selected set be the empty set.
  1754.       -- PRINT_SET : Print the contents of the currently selected set.
  1755.       -- LIST_CIS : Lists the contents of the catalog by name.
  1756.       -- CHANGE_PASSWORD : Changes the privileged user password.
  1757.       --                   This is a privileged operation
  1758.       -- DEFINE_KEYWORD : Define a new keyword, or change the status of an
  1759.       --                  existing one.
  1760.       --                  This is a privileged operation
  1761.       -- LIST_KEYWORDS : List all the keywords and their status.
  1762.       -- CREATE_CI : create a new configuration item (CI) in the catalog
  1763.       -- STORE : Store a new version of an already existing CI
  1764.       -- FETCH : Fetch a specified CI and put it in an item library.
  1765.       -- CANCEL : Cancel a fetch that was made with the mode update
  1766.       -- DELETE : Delete a configuration item that is in the catalog.
  1767.       --          This is a privileged operation.
  1768.       -- MODIFY_PROPERTY : Modify the value associated with the given keyword
  1769.       --                   on the specified CI
  1770.       -- DESCRIBE : Show the values of the given keywords
  1771.       -- HISTORY : Give the history of the named CI
  1772.       -- LIST_VERSIONS : List the versions of a named CI
  1773.       -- LIST_COMPONENTS : List the components of the given CI
  1774.       -- REMOVE_LOCK : Remove a lock that was left by a user aborting a session
  1775.       --               This is a privileged operation
  1776.       -- LIBRARY_MANAGER : Invoke the Interactive Library Manager
  1777.       procedure HELP;
  1778.       Documentation System User Guide                             Page 15
  1779.       __________      SELECT_CIS
  1780.            This procedure returns a set of CIs that match  the  selection
  1781.       criteria.  To specify what to select by the user enters a selection
  1782.       string.  Sets are determined by indicating what property  the  CIVs
  1783.       should  match,  and  there are the operators '&' and '|' to provide
  1784.       intersection and union of the sets.
  1785.       -- SELECT_CIS : Selects a set of CIs according to the selection 
  1786.       --              criteria given
  1787.       -- 3.02-1.0
  1788.       procedure SELECT_CIS(
  1789.          CRITERIA : in STRING
  1790.          );
  1791.       -- CRITERIA : A string in selection syntax giving the criteria to
  1792.       --            select by.  The operators recognized are & and |.  
  1793.       --            Parentheses can be used to indicate precedence.  & does 
  1794.       --            intersections, and | does unions. The expressions are 
  1795.       --            evaluated from left to right
  1796.       Selection Syntax: -
  1797.       The terminals in the language are:  CURRENT_SET, KEYWORD, VALUE, =,
  1798.       &,  |,  (, and ).  CURRENT_SET is a reserved word.  Parentheses can
  1799.       be used to indicate  precedence  since  the  operators  have  equal
  1800.       precedence.   CURRENT_SET  is  the  current  selected  set  in  the
  1801.       catalog.  KEYWORD is a catalog  keyword.   It  should  be  a  known
  1802.       keyword  and must be an Ada identifier.  VALUE is the corresponding
  1803.       value for the keyword.  It must also be an Ada identifier.
  1804.       expr ::= expr op expr |  term  |  (expr)
  1805.       term ::= KEYWORD '=' VALUE  |  CURRENT_SET
  1806.       op   ::= '&'  |  '|'
  1807.            For example, the user might specify "language = nroff & person
  1808.       =   john"   to   get   all  nroff  documents  written  by  john  or
  1809.       alternatively, "language = nroff  &  (person  =  john  |  person  =
  1810.       jane)".   This  would  result in nroff documents by jane as well as
  1811.       john.
  1812.       Documentation System User Guide                             Page 16
  1813.       __________________      CLEAR_SELECTED_SET
  1814.            After any selection the user has a current selected set  which
  1815.       is saved in the catalog.  This is the set indicated by the reserved
  1816.       word CURRENT_SET in the selection criteria.   This  procedure  will
  1817.       make that set be the empty set.
  1818.       -- CLEAR_SELECTED_SET : Make the current selected set be the empty set.
  1819.       -- 3.02-1.0
  1820.       procedure CLEAR_SELECTED_SET;
  1821.       Documentation System User Guide                             Page 17
  1822.       _________      PRINT_SET
  1823.            This prints out the CI ids of each CIV in the current selected
  1824.       set  upon  request.   In this way a user can, at any time, see what
  1825.       has been selected even if the select was  performed  many  commands
  1826.       before.
  1827.       -- PRINT_SET : Print the contents of the currently selected set.
  1828.       -- 3.02-1.0
  1829.       procedure PRINT_SET;
  1830.       Documentation System User Guide                             Page 18
  1831.       ________      LIST_CIS
  1832.            At any point the user can use this procedure to get a  listing
  1833.       of  the  names  of  the  CIs  in  the catalog.  It will not include
  1834.       information about different versions of a CI,  for  that  the  user
  1835.       must  use  LIST_VERSIONS.  To limit the list the user can specify a
  1836.       string to match and only CIs with names that match will be printed.
  1837.       -- LIST_CIS : Lists the contents of the catalog by name.
  1838.       -- 3.02-1.0
  1839.       procedure LIST_CIS(
  1840.          CIS : in STRING := "*"
  1841.          );
  1842.       -- CIS : Name string to match, * matches all strings
  1843.       -- This will only list the name part of a configuration item id. To
  1844.       -- see the different versions of a CI use LIST_VERSIONS.
  1845.       Documentation System User Guide                             Page 19
  1846.       _____________      LIST_KEYWORDS
  1847.            Lists all the possible keywords and  their  status.   Keywords
  1848.       with  status  INVALID  may only be used for look up.  Any CIV being
  1849.       added to the catalog may not include a  property  with  an  invalid
  1850.       keyword.   On  the  other  hand, keywords with status REQUIRED must
  1851.       always be included on CIs being added to the catalog.  Keywords may
  1852.       be defined or redefined by a privileged user using DEFINE_KEYWORD
  1853.       -- LIST_KEYWORDS : List all the keywords and their status.
  1854.       -- 3.02-1.0
  1855.       procedure LIST_KEYWORDS;
  1856.       -- The possible values for the status of a keyword are REQUIRED,
  1857.       -- OPTIONAL and INVALID.  REQUIRED keywords mean that a property
  1858.       -- with that keyword must be on all libraries being stored in the
  1859.       -- catalog as CIs.  OPTIONAL keywords mean a library with that
  1860.       -- property may be stored in the catalog.  A library can not be
  1861.       -- stored with an INVALID property keyword.  CIs may be selected
  1862.       -- by any keyword (see SELECT_CIS).
  1863.       Documentation System User Guide                             Page 20
  1864.       _____________      LIST_VERSIONS
  1865.            LIST_VERSIONS lists all the different versions of a CI in  the
  1866.       catalog.  It will show the complete tree of trunks and branches.
  1867.       -- LIST_VERSIONS : List the versions of a named CI
  1868.       -- 3.02-1.0
  1869.       procedure LIST_VERSIONS(
  1870.          NAME : in STRING
  1871.          );
  1872.       -- NAME : Name of the CI to list
  1873.       -- LIST_VERSIONS lists the versions of a CI with the same name.  The
  1874.       -- name given should be an ada identifier.  The list will be from
  1875.       -- oldest to newest.
  1876.       Documentation System User Guide                             Page 21
  1877.       ________      DESCRIBE
  1878.            DESCRIBE lists the properties on  a  CIV.   With  the  default
  1879.       setting  all properties of the named CIV will be listed.  If a list
  1880.       is given only properties with a keyword that  matches  one  of  the
  1881.       patterns  given  will  be  listed.   DESCRIBE  does  not  check for
  1882.       undefined keywords in  the  keyword  list  since  patterns  can  be
  1883.       specified.   If  a  user does give only undefined keywords the list
  1884.       returned will be empty.
  1885.       -- DESCRIBE : Show the values of the given keywords
  1886.       -- 3.02-1.0
  1887.       subtype CI_ID       is STRING;
  1888.       type    STRING_LIST is array (POSITIVE range <>) of STRING;
  1889.       procedure DESCRIBE(
  1890.          NAME     : in CI_ID;
  1891.          KEYWORDS : in STRING_LIST := ("*")
  1892.          );
  1893.       -- NAME     : Name of the CI to describe
  1894.       -- KEYWORDS : List of keywords to lookup the values of
  1895.       --            The default (*) matches all properties on a CI
  1896.       -- DESCRIBE does not list the creator or creation date see HISTORY
  1897.       -- for that information.
  1898.       Documentation System User Guide                             Page 22
  1899.       _______      HISTORY
  1900.            HISTORY prints out information about the creation of  the  CIV
  1901.       and  its  predecessors.  For each predecessor its version, creator,
  1902.       creation date, and history comment are listed.  This information is
  1903.       listed  in  order  from  the  latest version of the CI to the first
  1904.       version with this name.  The person that created or stored the  CIV
  1905.       is  also  listed  under  the heading Submitter.  The creator is the
  1906.       person that created the contents of the CIV in a library.
  1907.       -- HISTORY : Give the history of the named CI
  1908.       -- 3.02-1.0
  1909.       subtype CI_ID is STRING;
  1910.       procedure HISTORY(
  1911.          NAME : in CI_ID
  1912.          );
  1913.       -- NAME : Name of the CI of which to give the history
  1914.       -- The history of a CI is the history comments stored when each of its
  1915.       -- predecessors was stored.  The comments will be printed out in 
  1916.       -- reverse order, that is, from the most recent version to the first
  1917.       -- version of the CI with that name.
  1918.       Documentation System User Guide                             Page 23
  1919.       _______________      LIST_COMPONENTS
  1920.            This procedure will list the file components of the given CIV.
  1921.       These  files,  however,  cannot  be manipulated through the catalog
  1922.       manager.  To do that use FETCH and then the Item Library Manager.
  1923.       -- LIST_COMPONENTS : List the components of the given CI
  1924.       -- 3.02-1.0
  1925.       subtype CI_ID is STRING;
  1926.       procedure LIST_COMPONENTS(
  1927.          NAME : in CI_ID
  1928.          );
  1929.       -- NAME : Name of the CI to list
  1930.       -- The listing will consist of the file items that make up the
  1931.       -- CI.  It will be in the same format as a component list from
  1932.       -- the Item Library Manager
  1933.       Documentation System User Guide                             Page 24
  1934.       _____      FETCH
  1935.            This procedure fetches a CIV into  an  item  library  for  the
  1936.       user.   If  it  is fetched for update there is a check to make sure
  1937.       that the update may be done.  Once in  the  library  the  user  may
  1938.       modify the contents using item library manager which is detailed in
  1939.       another section.  To fetch a CIV the name parameter must be a valid
  1940.       CI  id  and  must  belong  to an existent CIV in this catalog.  The
  1941.       default mode for FETCH is no_update.  When  a  fetch  is  done  any
  1942.       properties  on  the  CIV  are also transferred to the item library.
  1943.       These may need to be changed, especially if any keywords have  been
  1944.       made  invalid  since  it  was  last  stored.   In no_update mode no
  1945.       changes made to a library can be put back in the catalog as  a  new
  1946.       version  of  this  CI.  It can be entered into the catalog as a new
  1947.       CIV (see CREATE_CI).  If a CIV is fetched with a mode of update  or
  1948.       branch,  then  it  must  be  returned to the catalog with the STORE
  1949.       command or the  FETCH  can  be  erased  with  the  CANCEL  command.
  1950.       DELETE_LIBRARY  will  not allow a library to be deleted while it is
  1951.       still pending from a catalog.
  1952.       -- FETCH : Fetch a specified CI and put it in an item library.
  1953.       -- 3.02-1.0
  1954.       subtype CI_ID      is STRING;
  1955.       type    FETCH_TYPE is (NO_UPDATE, UPDATE, BRANCH);
  1956.       procedure FETCH(
  1957.          NAME      : in CI_ID;
  1958.          LIBRARY   : in STRING;
  1959.          DIRECTORY : in STRING;
  1960.          MODE      : in FETCH_TYPE := NO_UPDATE
  1961.          );
  1962.       -- NAME      : Name of the ci to fetch
  1963.       -- LIBRARY   : Name of the item library to put the CI in
  1964.       -- DIRECTORY : Name of the directory to create the itemlibrary in
  1965.       -- MODE      : Indicates what type of update the fetch is allowing
  1966.       -- FETCH will put a specified CI in an item library for the user.
  1967.       -- If the mode is UPDATE or BRANCH the user can modify the CI and
  1968.       -- STORE it as a new version.  If the mode is NO_UPDATE (default)
  1969.       -- the user is still free to modify the library, but it may NOT be
  1970.       -- returned to the catalog as a new version.  When a CI is fetched
  1971.       -- for UPDATE checks are made to make sure that no one else is
  1972.       -- updating the same CI
  1973.       Documentation System User Guide                             Page 25
  1974.       ______      CANCEL
  1975.            CANCEL changes the mode on the library  to  be  no_update  and
  1976.       deletes  the  user's  name from the list of users updating the CIV.
  1977.       The default for user is the current user.  Only a  privileged  user
  1978.       may  cancel a FETCH done by someone else, but you may cancel any of
  1979.       your own fetches.  If this procedure is run on a library  that  was
  1980.       not fetched for update or branch it has no effect.
  1981.       -- CANCEL : Cancel a FETCH that was made with the mode update
  1982.       -- 3.02-1.0
  1983.       procedure CANCEL(
  1984.          LIBRARY : in STRING;
  1985.          USER    : in STRING := "CHRIS"
  1986.          );
  1987.       -- LIBRARY : Name of the item library the fetched CI is in
  1988.       -- USER    : Name of the person who did the fetch
  1989.       --           Default is the current user
  1990.       -- Any user can cancel a FETCH that he or she made, but only a
  1991.       -- privileged user may cancel someone else's.  So if the name given
  1992.       -- does not match the current user the catalog password will be 
  1993.       -- asked for.
  1994.       Documentation System User Guide                             Page 26
  1995.       _______________      MODIFY_PROPERTY
  1996.            This allows a user to update the properties on a CIV.  If  the
  1997.       properties  on  a  CIV are wrong in some way or inconsistent a user
  1998.       may change them, but a  user  cannot  delete  a  property  that  is
  1999.       required.
  2000.       -- MODIFY_PROPERTY : Modify the value associated with the given keyword
  2001.       --                   on the specified CI
  2002.       -- 3.02-1.0
  2003.       subtype CI_ID is STRING;
  2004.       procedure MODIFY_PROPERTY(
  2005.          NAME    : in CI_ID;
  2006.          KEYWORD : in STRING;
  2007.          VALUE   : in STRING
  2008.          );
  2009.       -- NAME    : Name of the CI with the property to be changed
  2010.       -- KEYWORD : name of the keyword to change the value of
  2011.       -- VALUE   : New value for the keyword
  2012.       -- Modify_property will change the value associated with a keyword
  2013.       -- on a CI.  The property can not be added if the keyword is
  2014.       -- invalid and a property can not be removed if it is required.
  2015.       -- To remove a property simply give it a null string for a new
  2016.       -- value.  This change has no effect on other CIs with the same
  2017.       -- name.
  2018.       Documentation System User Guide                             Page 27
  2019.       _______________      CHANGE_PASSWORD -
  2020.            CHANGE_PASSWORD will allow a privileged  user  to  change  the
  2021.       catalog  password.  The user is prompted for first the old password
  2022.       and then the new one.  The new password is then asked for again  so
  2023.       that  it  can  be verified.  This procedure will fail if either the
  2024.       old password is incorrect or the two new passwords do not match.
  2025.       -- CHANGE_PASSWORD : Changes the privileged user password.
  2026.       --                   This is a privileged operation
  2027.       -- 3.02-1.0
  2028.       procedure CHANGE_PASSWORD;
  2029.       -- To change the password the user must know the old password.
  2030.       -- The user will prompted for the old password and then the new
  2031.       -- password twice to verify that it was typed correctly.
  2032.       Documentation System User Guide                             Page 28
  2033.       ______________      DEFINE_KEYWORD -
  2034.            DEFINE_KEYWORD is used to define or change the  definition  of
  2035.       keywords  for  the  catalog.  Each catalog must have its own set of
  2036.       keywords.  A keyword can be defined with  one  of  three  different
  2037.       status,  OPTIONAL,  REQUIRED, and INVALID.  If a keyword is defined
  2038.       as invalid it prevents libraries  with  that  property  from  being
  2039.       added  to  the  catalog Required keywords are keywords that must be
  2040.       present for a library to be added to the catalog.  If  any  of  the
  2041.       set  of  required  keywords  is missing the STORE or CREATE_CI will
  2042.       fail.  Invalid keywords are still useful for looking up a CIV as  a
  2043.       select can be done using invalid keywords.
  2044.       -- DEFINE_KEYWORD : Define a new keyword, or change the status of an
  2045.       --                  existing one.
  2046.       --                  This is a privileged operation
  2047.       -- 3.02-1.0
  2048.       type PROPER_STATUS is (OPTIONAL, REQUIRED, INVALID);
  2049.       procedure DEFINE_KEYWORD(
  2050.          KEYWORD : in STRING;
  2051.          STATUS  : in PROPER_STATUS := OPTIONAL
  2052.          );
  2053.       -- KEYWORD : name of the keyword to define
  2054.       -- STATUS  : status of the keyword
  2055.       -- Keywords are defined so that information about CIs can be stored
  2056.       -- in the database.  A required keyword must always be included on
  2057.       -- any CI stored.  Optional keywords are just that, optional.
  2058.       -- Invalid keywords are ones that may at one time have been valid,
  2059.       -- but can no longer be used to store CIs.  They can still be used
  2060.       -- for lookup since CIs added with a keyword before it was made 
  2061.       -- invalid are not changed.
  2062.       Documentation System User Guide                             Page 29
  2063.       ______      DELETE -
  2064.            A CIV that is already in the catalog can be deleted using this
  2065.       subprogram.   There  are  two types of DELETE, CLEAN_UP and FIX_UP,
  2066.       which serve different purposes.  A DELETE that  is  being  done  to
  2067.       clean  up  the  catalog  is  removing  old CIs so that space can be
  2068.       reclaimed.  A CIV that is being deleted for fix up purposes was not
  2069.       stored  correctly  in  the  catalog.  A STORE (or CREATE_CI) can be
  2070.       incomplete if the  user  aborted  in  the  middle  or  the  machine
  2071.       crashed,  so  DELETE  allows the incomplete CIV to be removed.  The
  2072.       difference between the two modes is  that  in  clean  up  mode  the
  2073.       catalog manager checks there is no one with the CIV fetched, and it
  2074.       fails if there is someone with it fetched.  Obviously,  if  fix  up
  2075.       mode  is  fixing a STORE that was incomplete the CIV will appear to
  2076.       be fetched so the check is not done.
  2077.       -- DELETE : Delete a configuration item that is in the catalog.
  2078.       --          This is a privileged operation.
  2079.       -- 3.02-1.0
  2080.       subtype CI_ID       is STRING;
  2081.       type    DELETE_TYPE is (FIX_UP, CLEAN_UP);
  2082.       procedure DELETE(
  2083.          NAME : in CI_ID;
  2084.          MODE : in DELETE_TYPE := CLEAN_UP
  2085.          );
  2086.       -- NAME : Name of the configuration item to delete
  2087.       -- MODE : What type of delete is to be done
  2088.       -- There are two types of deletion that may take place.  Deletion of a
  2089.       -- CI that is out of date and not needed, and deletion of a CI where
  2090.       -- the STORE only partially completed for some reason.  The former is
  2091.       -- clean_up and the latter is fix_up.  When cleaning up, the catalog 
  2092.       -- manager checks that the CI is not currently fetched.  In fix up the
  2093.       -- STORE was incomplete and so by definition the CI will still appear
  2094.       -- to be fetched.
  2095.       Documentation System User Guide                             Page 30
  2096.       ___________      REMOVE_LOCK -
  2097.            This procedure removes a lock on the catalog.  Before removing
  2098.       any  locks  like  this  the privileged user should be sure that the
  2099.       lock is not current.  A lock can be left behind if the  user  exits
  2100.       the  catalog  by any means other than the DONE command.  Read locks
  2101.       will prevent any other user from doing  any  commands  involving  a
  2102.       write lock, and a write lock will prevent any user from opening the
  2103.       catalog.  An error message is returned if the lock does not exist.
  2104.       -- REMOVE_LOCK : Remove a lock that was left by a user aborting a session
  2105.       --               This is a privileged operation
  2106.       -- 3.02-1.0
  2107.       type LOCK_TYPE is (READ, WRITE);
  2108.       type NODE_TYPE is (CATALOG_NODE, CI_NODE, INDEX_NODE);
  2109.       procedure REMOVE_LOCK(
  2110.          NAME      : in STRING;
  2111.          LOCK      : in LOCK_TYPE;
  2112.          NODE_NAME : in STRING    := "current_catalog";
  2113.          NODE      : in NODE_TYPE := CATALOG_NODE
  2114.          );
  2115.       -- NAME      : Name of the person owning the lock
  2116.       -- LOCK      : Type of lock that is to be removed
  2117.       -- NODE_NAME : Name of the node to be unlocked
  2118.       -- NODE      : Type of node to be unlocked
  2119.       Documentation System User Guide                             Page 31
  2120.       _________      CREATE_CI
  2121.            This procedure is used to create a  new  CI  in  the  catalog.
  2122.       During  creation  checks  will  be done before any real changes are
  2123.       made.  In this way nothing in the catalog will  be  changed  unless
  2124.       there  are  no  errors.   As  many  errors  as can be found will be
  2125.       reported before finishing execution enabling a user to fix  up  all
  2126.       of the known errors before proceeding.  To create a CI, the library
  2127.       must not have been fetched for update or branch; the name  must  be
  2128.       unique  and  an  ada  identifier;  it  must  include  all  required
  2129.       keywords, and may not include any  keywords  that  are  invalid  or
  2130.       undefined.   This is a privileged operation that should probably be
  2131.       controlled by a CM coordinator.
  2132.       -- CREATE_CI : create a new configuration item (CI) in the catalog
  2133.       -- 3.02-1.0
  2134.       subtype CI_ID is STRING;
  2135.       procedure CREATE_CI(
  2136.          NAME    : in CI_ID;
  2137.          LIBRARY : in STRING;
  2138.          HISTORY : in STRING
  2139.          );
  2140.       -- NAME    : Name of the new ci to create
  2141.       -- LIBRARY : Name of the item library to create the CI from
  2142.       -- HISTORY : Brief description of the new CI
  2143.       -- Any errors encountered will be reported to the user and the
  2144.       -- creation will not take place.  In addition to having the correct
  2145.       -- status, the keywords on the library must be both valid, and
  2146.       -- include all the required ones.  The history parameter will be
  2147.       -- stored on the new CI along with the creator and date.  This
  2148.       -- information can be seen with the HISTORY command.
  2149.       Documentation System User Guide                             Page 32
  2150.       _____      STORE
  2151.            STORE is similar to create, but it creates a new CIV which  is
  2152.       based  on  an old one instead of an entirely new CI.  It checks for
  2153.       slightly different errors, but like CREATE_CI as many errors as can
  2154.       be  found  will  be  reported  and the STORE will not take place if
  2155.       there are any errors.  To  STORE  a  library,  it  must  have  been
  2156.       fetched  for update or branch; the owner of the library must be the
  2157.       user that did the FETCH; the CIV this  library  is  based  on  must
  2158.       exist  in this catalog; the CI name must be a valid ada identifier;
  2159.       the properties must include all required keywords, and not  include
  2160.       any that are invalid.  This is also a privileged operation.
  2161.       -- STORE : Store a new version of an already existing CI
  2162.       -- 3.02-1.0
  2163.       procedure STORE(
  2164.          LIBRARY : in STRING;
  2165.          HISTORY : in STRING
  2166.          );
  2167.       -- LIBRARY : Name of the item library to get the CI from
  2168.       -- HISTORY : Description of the changes made to the new CI
  2169.       -- Any errors encountered will be reported to the user and the
  2170.       -- STORE will not take place.  In addition to being fetched
  2171.       -- correctly, the keywords on the library must be both valid,
  2172.       -- and include all the required ones.  The history parameter will
  2173.       -- be stored along with the creator and date and can be accessed
  2174.       -- with the history command.
  2175.       Documentation System User Guide                             Page 33
  2176.       _______________      LIBRARY_MANAGER
  2177.            Refer to  the  section  on  Interactive  Library  Manager  for
  2178.       command description and syntax.
  2179.       Documentation System User Guide                             Page 34
  2180.       ____ _______ _______      ITEM LIBRARY MANAGER
  2181.       ___________      Description
  2182.            The Item Library Manager consists of a  set  of  functions  to
  2183.       manage  a  library of related files (items) called an item library.
  2184.       It will provide configuration control over the items  and  maintain
  2185.       multiple  versions  of the same item.  An item library is a working
  2186.       copy of a configuration item (CI) and may have associated with  it,
  2187.       properties  to  describe itself (See Catalog Manager for details on
  2188.       CI's and properties).  The following commands are provided  in  the
  2189.       Item Library Manager:
  2190.             o  LIBRARY_MANAGER
  2191.             o  CREATE_LIBRARY
  2192.             o  DELETE_LIBRARY
  2193.             o  COPY_LIBRARY
  2194.             o  LIST_LIBRARY
  2195.             o  CREATE_ITEM
  2196.             o  FETCH_ITEM
  2197.             o  RETURN_ITEM
  2198.             o  LIST_ITEM
  2199.       ______________      CREATE_LIBRARY
  2200.       -- CREATE_LIBRARY : Create an Item Library
  2201.       -- 3.02-1.0
  2202.       subtype LIBRARY_NAME   is STRING;
  2203.       subtype DIRECTORY_SPEC is STRING;
  2204.       procedure CREATE_LIBRARY(
  2205.          LIBRARY   : in LIBRARY_NAME;
  2206.          DIRECTORY : in DIRECTORY_SPEC
  2207.          );
  2208.       -- LIBRARY   : Name of the item library to be created
  2209.       -- DIRECTORY : Name of directory to be used by this library
  2210.            The CREATE_LIBRARY command creates an item  library  with  the
  2211.       specified  name.   The library name must be an Ada identifier.  The
  2212.       directory  may  be  any  string  but  must  be  a  valid  directory
  2213.       specification for the file system in which the Item Library Manager
  2214.       resides.  All  items/information  of  this  item  library  will  be
  2215.       contained  in  the  specified  directory.  The Item Library Manager
  2216.       does NOT provide  protection  for  this  directory  except  in  the
  2217.       context   of   item   libraries.    It   is   recommended  that  no
  2218.       files/attributes be changed/deleted in this directory.  Failure  to
  2219.       adhere  to  this may cause the entire document management system to
  2220.       be corrupted.
  2221.       Documentation System User Guide                             Page 35
  2222.       ______________      DELETE_LIBRARY
  2223.       -- DELETE_LIBRARY : Delete an Item Library
  2224.       -- 3.02-1.0
  2225.       subtype LIBRARY_NAME is STRING;
  2226.       procedure DELETE_LIBRARY(
  2227.          LIBRARY : in LIBRARY_NAME
  2228.          );
  2229.       -- LIBRARY : Name of the item library to be deleted
  2230.            The DELETE_LIBRARY command deletes an existing  item  library.
  2231.       Only  the owner of a library may delete the library and only if the
  2232.       library is not pending a return into a catalog as a CI (See Catalog
  2233.       Manager for details of RETURN_CI function).
  2234.       ____________      COPY_LIBRARY
  2235.       -- COPY_LIBRARY : Copy an Item Library to Another Item Library
  2236.       -- 3.02-1.0
  2237.       subtype LIBRARY_NAME   is STRING;
  2238.       subtype DIRECTORY_SPEC is STRING;
  2239.       type    COPY_MODE      is (CURRENT, FULL);
  2240.       procedure COPY_LIBRARY(
  2241.          FROM_LIBRARY : in LIBRARY_NAME;
  2242.          TO_LIBRARY   : in LIBRARY_NAME;
  2243.          TO_DIRECTORY : in DIRECTORY_SPEC;
  2244.          MODE         : in COPY_MODE      := CURRENT
  2245.          );
  2246.       -- FROM_LIBRARY : Name of the item library to be copied
  2247.       -- TO_LIBRARY   : Name of the new item library
  2248.       -- TO_DIRECTORY : Name of directory to be used by the new library
  2249.       -- MODE         : Copy option:
  2250.       --                   CURRENT : copy only the current version of items
  2251.       --                   FULL    : copy all versions of items
  2252.            The COPY_LIBRARY command copies an existing  item  library  to
  2253.       another  item  library.   The  new  library  name  must  be  an Ada
  2254.       identifier.  All attributes except  library  ownership  are  copied
  2255.       from  the  existing library.  A library may be copied only if there
  2256.       are not items within the library pending a return.  The Mode option
  2257.       specifies  if  all  versions of all items in the library are copied
  2258.       (FULL)  or  only  the  latest  version  of  all  items  are  copied
  2259.       (CURRENT).
  2260.       Documentation System User Guide                             Page 36
  2261.       ____________      LIST_LIBRARY
  2262.       -- LIST_LIBRARY : List Libraries Owned by User
  2263.       -- 3.02-1.0
  2264.       subtype USER_NAME    is STRING;
  2265.       subtype LIBRARY_NAME is STRING;
  2266.       procedure LIST_LIBRARY(
  2267.          OWNER   : in USER_NAME    := "owner_name";
  2268.          LIBRARY : in LIBRARY_NAME := "*"
  2269.          );
  2270.       -- OWNER   : Name of the library owner
  2271.       -- LIBRARY : Name of the library
  2272.            The LIST_LIBRARY command lists all libraries that satisfy  the
  2273.       condition  given  by the ownership and name of the libraries.  Both
  2274.       the library ownership and name may  contain  wildcard  character(s)
  2275.       "*".
  2276.       ___________      CREATE_ITEM
  2277.       -- CREATE_ITEM : Create an Item in the Item Library
  2278.       -- 3.02-1.0
  2279.       subtype LIBRARY_NAME is STRING;
  2280.       subtype FILE_NAME    is STRING;
  2281.       procedure CREATE_ITEM(
  2282.          LIBRARY : in LIBRARY_NAME;
  2283.          FILE    : in FILE_NAME;
  2284.          HISTORY : in STRING
  2285.          );
  2286.       -- LIBRARY : Name of the item library
  2287.       -- FILE    : Name of the file to be checked into the item library
  2288.       -- HISTORY : Description/reason for this item
  2289.            The CREATE_ITEM command is used to create an item in the  item
  2290.       library  from  a given file.  The item name will be the same as the
  2291.       file name and must not already exist  in  the  item  library.   The
  2292.       History  may be any character string and will be stored in the item
  2293.       library associated with the created item.
  2294.       Documentation System User Guide                             Page 37
  2295.       __________      FETCH_ITEM
  2296.       -- FETCH_ITEM : Fetch an Item from an Item Library
  2297.       -- 3.02-1.0
  2298.       subtype LIBRARY_NAME is STRING;
  2299.       subtype ITEM_NAME    is STRING;
  2300.       subtype VERSION      is STRING;
  2301.       type    FETCH_MODE   is (NO_UPDATE, UPDATE);
  2302.       procedure FETCH_ITEM(
  2303.          LIBRARY : in LIBRARY_NAME;
  2304.          ITEM    : in ITEM_NAME;
  2305.          VERSION : in VERSION      := "";
  2306.          MODE    : in FETCH_MODE   := NO_UPDATE
  2307.          );
  2308.       -- LIBRARY : Name of the item library
  2309.       -- ITEM    : Name of the item to be fetched from the item library
  2310.       -- VERSION : Version specification
  2311.       -- MODE    : Fetch mode:
  2312.       --              NO_UPDATE : check out an item for read only
  2313.       --              UPDATE    : check out an item for update
  2314.            The FETCH_ITEM command is used to check an  item  out  of  the
  2315.       item  library.   The checked out item will be a file in the current
  2316.       directory with the item name as its file name.  The Mode  specifies
  2317.       whether  the  item is to be checked out as read only (NO_UPDATE) or
  2318.       for updating and eventual return  to  the  item  library  (UPDATE).
  2319.       Only  the  current  version  may be checked out for UPDATE provided
  2320.       that it is  not  already  checked  out  for  UPDATE.   The  version
  2321.       specification  may  be any numeric in string format (eg.  "3") or a
  2322.       null string for the current version.
  2323.       ___________      RETURN_ITEM
  2324.       -- RETURN_ITEM : Return a File to an Item Library
  2325.       -- 3.02-1.0
  2326.       subtype LIBRARY_NAME is STRING;
  2327.       subtype FILE_NAME    is STRING;
  2328.       procedure RETURN_ITEM(
  2329.          LIBRARY : in LIBRARY_NAME;
  2330.          FILE    : in FILE_NAME;
  2331.          HISTORY : in STRING
  2332.          );
  2333.       -- LIBRARY : Name of the item library
  2334.       -- FILE    : Name of the file to be returned to the item library
  2335.       Documentation System User Guide                             Page 38
  2336.       -- HISTORY : Description/reason for the change(s) in this item
  2337.            The RETURN_ITEM command is used to check a file back into  the
  2338.       item  library  as  a  new version of an item previously checked out
  2339.       (see FETCH_ITEM).  The History may be any character string and will
  2340.       be  stored  in the item library associated with this new version of
  2341.       an item.
  2342.       _________      LIST_ITEM
  2343.       -- LIST_ITEM : List Item(s) in the Item Library
  2344.       -- 3.02-1.0
  2345.       subtype LIBRARY_NAME is STRING;
  2346.       subtype ITEM_NAME    is STRING;
  2347.       subtype VERSION      is STRING;
  2348.       type    LIST_MODE    is (LONG, SHORT);
  2349.       procedure LIST_ITEM(
  2350.          LIBRARY : in LIBRARY_NAME;
  2351.          ITEM    : in ITEM_NAME    := "*";
  2352.          VERSION : in VERSION      := "";
  2353.          MODE    : in LIST_MODE    := SHORT
  2354.          );
  2355.       -- LIBRARY : Name of the item library
  2356.       -- ITEM    : Name of the item to list
  2357.       -- VERSION : Version specification
  2358.       -- MODE    : List mode:
  2359.       --              SHORT : list item/version name(s) only
  2360.       --              LONG  : list attributes as well as item/version name(s)
  2361.            The LIST_ITEM command lists item(s) in the item  library  that
  2362.       satisfies  the  condition specified by Item and Version.  Both Item
  2363.       and Version  may  contain  wildcard  character(s)  "*".   The  Mode
  2364.       specifies  whether  the  list  is to contain only the item name and
  2365.       version (SHORT) or item name, version,  and  associated  attributes
  2366.       (LONG).
  2367.       _______________ _  ___________ _______ _______      LIBRARY_MANAGER :  Interactive Library Manager
  2368.       -- LIBRARY_MANAGER : Interactive Library Manager Tool
  2369.       -- 3.02-1.0
  2370.       subtype LIBRARY_NAME   is STRING;
  2371.       procedure LIBRARY_MANAGER(
  2372.       Documentation System User Guide                             Page 39
  2373.          LIBRARY : in LIBRARY_NAME := "";
  2374.          PROMPT  : in STRING       := ""
  2375.          );
  2376.       -- LIBRARY : Name of the item library
  2377.       -- PROMPT  : Prompt string
  2378.            This command invokes the interactive library management  tool.
  2379.       The  item  library  name  if  given must be an Ada identifier.  The
  2380.       PROMPT may be any string and  will  appear  as  a  prompt  for  the
  2381.       interactive  library  manager.   The following interactive commands
  2382.       are provided:
  2383.             o  CREATE_LIBRARY
  2384.             o  DELETE_LIBRARY
  2385.             o  COPY_LIBRARY
  2386.             o  LIST_LIBRARY
  2387.             o  CREATE_ITEM
  2388.             o  FETCH_ITEM
  2389.             o  RETURN_ITEM
  2390.             o  CANCEL_ITEM
  2391.             o  LIST_ITEM
  2392.             o  DELETE_ITEM
  2393.             o  PURGE_ITEM
  2394.             o  RENAME_ITEM
  2395.             o  RENAME_VERSION
  2396.             o  SHOW_HISTORY
  2397.             o  ADD_PROPERTY
  2398.             o  DELETE_PROPERTY
  2399.             o  MODIFY_PROPERTY
  2400.             o  LIST_PROPERTY
  2401.             o  ENTER_LIBRARY
  2402.             o  HELP
  2403.             o  EXIT
  2404.            The HELP command shows brief descriptions of  all  Interactive
  2405.       Library Manager commands.
  2406.            The EXIT command is used to terminate the Interactive  Library
  2407.       Manager session.
  2408.            The following commands have  the  same  function  and  command
  2409.       syntax as described immediately above:
  2410.           CREATE_LIBRARY
  2411.           DELETE_LIBRARY
  2412.           COPY_LIBRARY
  2413.           LIST_LIBRARY
  2414.            The following commands have the  same  function  as  described
  2415.       immediately above but the command syntax differs in that no library
  2416.       specifications are given:
  2417.           CREATE_ITEM
  2418.       Documentation System User Guide                             Page 40
  2419.           FETCH_ITEM
  2420.           RETURN_ITEM
  2421.           LIST_ITEM
  2422.       ___________      CANCEL_ITEM -
  2423.       -- CANCEL_ITEM : Cancel a Pending Return for an Item in the Item Library
  2424.       -- 3.02-1.0
  2425.       subtype ITEM_NAME    is STRING;
  2426.       procedure CANCEL_ITEM(
  2427.          ITEM    : in ITEM_NAME
  2428.          );
  2429.       -- ITEM    : Name of the item to cancel the pending return
  2430.            The CANCEL_ITEM command cancels a return pending state  of  an
  2431.       item  in  the item library without returning the file back into the
  2432.       item library.  The item must  be  checked  out  for  update  to  be
  2433.       canceled.
  2434.       ___________      DELETE_ITEM -
  2435.       -- DELETE_ITEM : Delete Item(s) in an Item Library
  2436.       -- 3.02-1.0
  2437.       subtype ITEM_NAME    is STRING;
  2438.       subtype VERSION      is STRING;
  2439.       procedure DELETE_ITEM(
  2440.          ITEM    : in ITEM_NAME;
  2441.          VERSION : in VERSION      := ""
  2442.          );
  2443.       -- ITEM    : Name of the item(s) to be deleted in the item library
  2444.       -- VERSION : Version specification
  2445.            The DELETE_ITEM command deletes item(s) from the item library.
  2446.       Both   Item   and   Version   specification  may  contain  wildcard
  2447.       character(s)   "*".    All   items/versions   that   satisfy    the
  2448.       specifications  and  whose ownership requirements are satisfied are
  2449.       deleted from the item library.
  2450.       Documentation System User Guide                             Page 41
  2451.       __________      PURGE_ITEM -
  2452.       -- PURGE_ITEM : Purge Item(s) in an Item Library
  2453.       -- 3.02-1.0
  2454.       subtype ITEM_NAME    is STRING;
  2455.       procedure PURGE_ITEM(
  2456.          ITEM    : in ITEM_NAME
  2457.          );
  2458.       -- ITEM    : Name of the item(s) to be purged in the item library
  2459.            The PURGE_ITEM command deletes all but the current  version(s)
  2460.       of  item(s)  from the item library.  Item specification may contain
  2461.       wildcard  character(s)   "*".    All   items   that   satisfy   the
  2462.       specification  and  whose ownership requirements are satisfied will
  2463.       have all but their highest version(s) deleted.
  2464.       ___________      RENAME_ITEM -
  2465.       -- RENAME_ITEM : Rename Item in an Item Library
  2466.       -- 3.02-1.0
  2467.       subtype ITEM_NAME    is STRING;
  2468.       procedure RENAME_ITEM(
  2469.          FROM_ITEM : in ITEM_NAME;
  2470.          TO_ITEM   : in ITEM_NAME
  2471.          );
  2472.       -- FROM_ITEM : Name of the item to be renamed in the item library
  2473.       -- TO_ITEM   : New item name
  2474.            The RENAME_ITEM command renames an item in the  item  library.
  2475.       The item name specification may not contain wildcard character "*".
  2476.       The validity of the new item name is not  checked  by  RENAME_ITEM.
  2477.       Invalid  item name (ie.  name that may not conform to the file name
  2478.       specification of the file  system  on  which  the  library  manager
  2479.       resides)  will  make the item unretrievable by FETCH_ITEM operation
  2480.       which will attempt to create an external file with the same name as
  2481.       the item name being fetched.
  2482.       Documentation System User Guide                             Page 42
  2483.       ______________      RENAME_VERSION -
  2484.       -- RENAME_VERSION : Rename Version of Item(s) in an Item Library
  2485.       -- 3.02-1.0
  2486.       subtype ITEM_NAME    is STRING;
  2487.       subtype VERSION      is STRING;
  2488.       procedure RENAME_VERSION(
  2489.          ITEM         : in ITEM_NAME;
  2490.          FROM_VERSION : in VERSION;
  2491.          TO_VERSION   : in VERSION
  2492.          );
  2493.       -- ITEM         : Name of the item(s) to be renamed in the item library
  2494.       -- FROM_VERSION : Version of item(s) to be renamed
  2495.       -- TO_VERSION   : New version of item(s)
  2496.            The RENAME_VERSION command renames a version of item(s) in the
  2497.       item  library.   The version specification may not contain wildcard
  2498.       character "*".  The current version may  be  specified  as  a  null
  2499.       string  "".  The item specification may contain wildcard characters
  2500.       "*".  Inappropriate usage of this command may cause  regression  in
  2501.       the item versions.
  2502.       ____________      SHOW_HISTORY -
  2503.       -- SHOW_HISTORY : Show History of Item(s) in an Item Library
  2504.       -- 3.02-1.0
  2505.       subtype ITEM_NAME    is STRING;
  2506.       subtype VERSION      is STRING;
  2507.       procedure SHOW_HISTORY(
  2508.          ITEM    : in ITEM_NAME    := "*";
  2509.          VERSION : in VERSION      := ""
  2510.          );
  2511.       -- ITEM    : Name of the item to list
  2512.       -- VERSION : Version specification
  2513.            The  SHOW_HISTORY  command  lists  all  history   descriptions
  2514.       associated   with  all  version(s)  of  item(s)  that  satisfy  the
  2515.       condition specified by Item and Version.  Both Item and Version may
  2516.       contain   wildcard   character(s)  "*".   The  current  version  is
  2517.       specified by a null string "".
  2518.       Documentation System User Guide                             Page 43
  2519.       ____________      ADD_PROPERTY -
  2520.       -- ADD_PROPERTY : Add a Property Keyword/Value to the Item Library
  2521.       -- 3.02-1.0
  2522.       procedure ADD_PROPERTY(
  2523.          KEYWORD : in STRING;
  2524.          VALUE   : in STRING
  2525.          );
  2526.       -- KEYWORD : Property keyword
  2527.       -- VALUE   : Property value
  2528.            The  ADD_PROPERTY  command  is  used  to   associate   a   new
  2529.       keyword/value   property  description  to  an  item  library.   The
  2530.       property keyword to be added must not exist.  Both the keyword  and
  2531.       the value must be an Ada identifier.
  2532.       _______________      DELETE_PROPERTY -
  2533.       -- DELETE_PROPERTY : Delete a Property Keyword from the Item Library
  2534.       -- 3.02-1.0
  2535.       procedure DELETE_PROPERTY(
  2536.          KEYWORD : in STRING
  2537.          );
  2538.       -- KEYWORD : Property keyword
  2539.            The DELETE_PROPERTY command  is  used  to  delete  a  property
  2540.       description  associated with an item library.  The property keyword
  2541.       to be delete must exist.  The keyword must be an Ada identifier.
  2542.       _______________      MODIFY_PROPERTY -
  2543.       -- MODIFY_PROPERTY : Change a Property Keyword/Value in the Item Library
  2544.       -- 3.02-1.0
  2545.       procedure MODIFY_PROPERTY(
  2546.          KEYWORD : in STRING;
  2547.          VALUE   : in STRING
  2548.          );
  2549.       -- KEYWORD : Property keyword
  2550.       -- VALUE   : Property value
  2551.       Documentation System User Guide                             Page 44
  2552.            The MODIFY_PROPERTY command is used to change the value  of  a
  2553.       property  description keyword associated with an item library.  The
  2554.       property keyword whose value is to be changed must exist.  Both the
  2555.       keyword and the value must be an Ada identifier.
  2556.       _____________      LIST_PROPERTY -
  2557.       -- LIST_PROPERTY : List Property Keyword/Value in the Item Library
  2558.       -- 3.02-1.0
  2559.       procedure LIST_PROPERTY(
  2560.          KEYWORD : in STRING       := "*"
  2561.          );
  2562.       -- KEYWORD : Property keyword
  2563.            The  LIST_PROPERTY  command   lists   keyword/value   property
  2564.       description(s)  associate  with  an  item library.  The keyword may
  2565.       contain wildcard character(s) "*" but  otherwise  must  be  an  Ada
  2566.       identifier.
  2567.       _____________      ENTER_LIBRARY -
  2568.       -- ENTER_LIBRARRY : Enter a Given Item Library
  2569.       -- 3.02-1.0
  2570.       subtype LIBRARY_NAME is STRING;
  2571.       procedure ENTER_LIBRARY(
  2572.          LIBRARY : in LIBRARY_NAME
  2573.          );
  2574.       -- LIBRARY : Name of the item library
  2575.            The ENTER_LIBRARY command sets the given library as a  current
  2576.       item  library.   All  subsequent commands will operate on the given
  2577.       library.  A null library name resets the  current  library  to  the
  2578.       library for which the Interactive Library Manager was invoked.
  2579.       Documentation System User Guide                             Page 45
  2580.       ________      Examples
  2581.            The following sequence of commands  describe  a  typical  item
  2582.       library  operations  for creating and manipulating an item library.
  2583.       Assume that there are three (3) files called FILE1.ADA,  FILE2.SPC,
  2584.       and   FILE2.BDY   and   one   wishes  to  create  an  item  library
  2585.       PROJECT_LIBRARY.
  2586.            CREATE_LIBRARY ("PROJECT_LIBRARY", "[.PLIB]");
  2587.                 -- create a library PROJECT_LIBRARY in a directory
  2588.                 -- PLIB relative to the current directory (VAX/VMS notation)
  2589.            LIBRARY_MANAGER ("PROJECT_LIBRARY", "=>");
  2590.                 -- enter the interactive library manager for PROJECT_LIBRARY
  2591.                 -- prompt string is =>
  2592.              => ADD_PROPERTY ("PROGRAMMER", "JOHN");
  2593.              => ADD_PROPERTY ("LANGUAGE", "ADA");
  2594.              => ADD_PROPERTY ("PROJECT", "XXX_123");
  2595.                 -- give the library properties with appropriate values
  2596.              => CREATE_ITEM ("FILE1.ADA", "Description of FILE1");
  2597.              => CREATE_ITEM ("FILE2.SPC", "Description of FILE2 Spec");
  2598.              => CREATE_ITEM ("FILE1.ADA", "Description of FILE2 Body");
  2599.                 -- create items in the library with descriptions
  2600.                 -- associated with each item
  2601.              EXIT;
  2602.                 -- exit the interactive library manager
  2603.                 --
  2604.                 -- now there is a need to change FILE2.BDY
  2605.                 --
  2606.            FETCH_ITEM ("PROJECT_LIBRARY", "FILE2.BDY", UPDATE);
  2607.                 -- check FILE2.BDY out of the library for update
  2608.                 -- change FILE2.BDY using any editor
  2609.            RETURN_ITEM ("PROJECT_LIBRARY", "FILE2.BDY", "Change description");
  2610.                 -- check FILE2.BDY back into the library
  2611.                 -- now there will be two versions of FILE2.BDY in the library
  2612.       ____      Bugs
  2613.            External   interrupt(s)   during   item   library   management
  2614.       operations may cause abnormal behavior.
  2615.       Documentation System User Guide                             Page 46
  2616.       ________ __________ ______ ____ _________      DOCUMENT MANAGEMENT SYSTEM FILE GENERATOR
  2617.       ____________      INTRODUCTION
  2618.            FILEGEN provides the documentation management system  (DocMgr)
  2619.       with the capability to combine one or more files to create a single
  2620.       output file.  The "source file" may contain  directives  which  are
  2621.       processed by FILEGEN to generate the output file.  These directives
  2622.       begin with the character "#"  (sharp  sign)  in  column  one.   The
  2623.       INCLUDE  directive  may  be used to merge additional files into the
  2624.       output  file.   Other  directives  allow  the  file  name  (or  the
  2625.       configuration   identifier   if  the  file  is  a  component  of  a
  2626.       configuration item), the version number and the  file  modification
  2627.       date  to  be  inserted  into  the  output  file.   This  provides a
  2628.       mechanism through  which  any  file  that  is  under  configuration
  2629.       control  can  be  uniquely identified when it is checked out of the
  2630.       configuration management system.
  2631.       _______ ______      Command Format
  2632.       -- FileGen : Generate a target file from a source file
  2633.       -- 3.02-1.0
  2634.       FileGen(
  2635.           Source  : string;
  2636.           Output  : string := "";
  2637.           Catalog : string := "";
  2638.           CI_Name : CI_ID_Type := ""
  2639.           );
  2640.       Source:         -- File name or name of a component of CI
  2641.       Output:         -- Name of the output file (default is standard output)
  2642.       Catalog:        -- Name of a CI Catalog (default is none)
  2643.       CI_Name:        -- Name of a CI (default is none)
  2644.       __________      Parameters
  2645.            The OUTPUT parameter specifies the name of the file  which  is
  2646.       to  contain  the  file  to  be generated.  It is a host system file
  2647.       specification.
  2648.            The  input  file  to  be  processed  is  specified   by   some
  2649.       combination of the remaining three parameters, depending on whether
  2650.       the input file is an ordinary text file, or a  component  within  a
  2651.       configuration item.
  2652.            If the input file is an "ordinary file" (that is, one that has
  2653.       not  been  stored  as as a component of a configuration item), then
  2654.       the SOURCE parameter is an ordinary  file  specification  (on  VMS,
  2655.       "USERMAN.SRC"  or  "[WORK.DOC]USERMAN.SRC", etc.), and CI_NAME is a
  2656.       null string.  The CATALOG parameter is necessary only if an INCLUDE
  2657.       directive  that  specifies  a CI component is encountered in one of
  2658.       the files being processed.
  2659.            If the source file is currently stored  in  an  item  library,
  2660.       then  it cannot be processed by fileGen directly.  Instead, it must
  2661.       be checked out of the library and processed as an ordinary file.
  2662.       Documentation System User Guide                             Page 47
  2663.            Finally,  if  the  source  file  is  currently  stored  as   a
  2664.       configuration  item,  then CATALOG is the name of the configuration
  2665.       item catalog, CI_NAME is the name of the  configuration  item,  and
  2666.       SOURCE is the name of the file within this configuration item.
  2667.            The SOURCE parameter has the form of an ordinary  host  system
  2668.       file  name.   If  the  item  is  inside  of  an  item  library or a
  2669.       configuration item, it must be a simple  file  name  (no  directory
  2670.       path).
  2671.            The CATALOG parameter must be a  valid  Ada  identifier.   The
  2672.       CI_Name parameter is a valid Ada identifier followed by one or more
  2673.       spaces followed by a  version  number.   See  the  section  on  the
  2674.       Catalog Manager for details on the version numbering scheme.
  2675.       ___________      Description
  2676.            FILEGEN has three basic functions:
  2677.               1. Extracting files from an Item Library or from a
  2678.                  configuration item.
  2679.               2. File inclusion
  2680.               3. Substitutions:
  2681.                  - Version ID         - Date of last modification
  2682.                  - CI_ID                      - ITEM_ID
  2683.            The following are the directives that may be used  in  a  file
  2684.       processed  by  FILEGEN.   Lines that do not begin with a sharp sign
  2685.       (#) are simply copied to  the  output  file.   If  the  sharp  sign
  2686.       appears  twice  in a row (in columns one and two), then the line is
  2687.       copied to the output file starting with column two (the first sharp
  2688.       sign is deleted).  This makes it relatively easy to generate output
  2689.       files containing a sharp sign in column one, should the need arise.
  2690.            There are three kinds of directives:  includes, substitutions,
  2691.       and  definitions.  The Include directive causes the contents of the
  2692.       designated file to be recursively processed by FILEGEN  and  copied
  2693.       to  the  output  file.   Substitution  directives are evaluated and
  2694.       replaced by their values before the line is copied  to  the  output
  2695.       file.   Definitions  assign  string  values to variables and do not
  2696.       generate any output.  scope of a variable is limited  to  the  file
  2697.       which defines it.
  2698.            In a directive,  everything  following  a  double  dash  is  a
  2699.       comment  (as  in  Ada) and is ignored.  If a directive results in a
  2700.       line that is entirely blank, the line is not copied to  the  output
  2701.       file.  Thus lines of the form
  2702.           #-- <text>
  2703.       are filtered from the input file.
  2704.       Documentation System User Guide                             Page 48
  2705.            The syntax of the directives is as follows:
  2706.       Directive = "Set" Variable ":=" StrVal          -- Variable definition
  2707.                 | "Include" "file" StrVal             -- File inclusion
  2708.                 | "Include" "il_item" StrVal, StrVal, VSpec -- File from item library
  2709.                 | "Include" "ci_comp" StrVal, StrVal, VSpec -- File from CI Catalog
  2710.                 | Expr                                -- Substitution
  2711.       StrVal  = String
  2712.               | Variable
  2713.       VSpec   = DottedNumber
  2714.       Expr    = Primary               -- Simple substitution
  2715.               | Primary Expr          -- Concatenation
  2716.       Primary = StrVal                -- String literal or variable
  2717.               | "Date"                -- Replace with date of last modification
  2718.               | "CI"                  -- Replaced by CI name of this file
  2719.               | "ITEM"                -- Replaced by Item name of this file
  2720.               | "Version"             -- Replaced by Version Number of this file
  2721.       Variable = (an Ada identifier)
  2722.       ________ ___________      Variable Definitions
  2723.            A variable definition assigns a string value to an identifier.
  2724.       Subsequent  uses  of  the variable are replaced by its value.  If a
  2725.       variable is redefined, a warning message is issued.  The scope of a
  2726.       variable  is  limited  to  the  file  that contains its definition.
  2727.       Variables must be defined before use.
  2728.            If a number of  files  are  to  be  extracted  from  the  same
  2729.       configuration   item,   it   may   be   convenient  to  assign  the
  2730.       configuration item name and version number to variable  as  in  the
  2731.       following example:
  2732.           #set CI := "System_Documentation"
  2733.           #set VNum := 5.3
  2734.           #include CI_COMP CI, "Part_1", VNum
  2735.           #include CI_COMP CI, "Part_2", VNum
  2736.           #include CI_COMP CI, "Part_3", VNum
  2737.            Then, it is a simple matter to change the definition of CI  or
  2738.       VNum  to extract the same files from a different configuration item
  2739.       or different version of the same item.
  2740.       ___ _______ _________      The INCLUDE Directive
  2741.            There are three forms of the include directive.  In all cases,
  2742.       the  directive  is  replaced  by  the  contents of the file that it
  2743.       specifies.  The file can be either an ordinary host file,  an  item
  2744.       within  an  item  library, or a file from a configuration item.  To
  2745.       include an ordinary host system file, the  following  form  of  the
  2746.       INCLUDE directive is used:
  2747.       Documentation System User Guide                             Page 49
  2748.           #INCLUDE FILE <host system file name>
  2749.        
  2750.            To include an item from within an item library,  the  name  of
  2751.       the  library, the name of the item, and the desired revision number
  2752.       must all be specified:
  2753.           #INCLUDE IL_ITEM <library name> <item name> <version number>
  2754.        
  2755.       The library name must be a valid Ada identifier.  The item name  is
  2756.       a  host  system file name, and the version number is a single digit
  2757.       number.
  2758.            Finally, to include an item from within a  configuration  item
  2759.       catalog,  the  name of the configuration item, the name of the file
  2760.       within that CI,  and  the  desired  revision  number  must  all  be
  2761.       specified:
  2762.           #INCLUDE CI_COMP <CI name> <file name> <version number>
  2763.        
  2764.       the CI name must be a valid Ada identifier.  The  file  name  is  a
  2765.       simple  host  system  file name, and the version number may contain
  2766.       several components to reflect branching  within  the  configuration
  2767.       item catalog (eg.  1 or 1.1.3 or 1.2.3, etc.)
  2768.       _____________      Substitutions
  2769.            If a directive consists of  a  sequence  of  expressions,  the
  2770.       value  of  each  expression is simply copied to the output file and
  2771.       then the output line is terminated.
  2772.       ________      Examples
  2773.            Assuming the following command is given to invoke FILEGEN
  2774.           FILEGEN("USERMAN.FGN", "USERMAN.RNO");
  2775.               
  2776.       In this case, the file USERMAN.fgn will be processed to generate  a
  2777.       file  called USERMAN.RNO.  No catalog or item library will be used.
  2778.       The following examples show how each directive might be used.
  2779.        1. Inserting the date of last modification into the output file:
  2780.           IN:   #"This file last modified " Date
  2781.           OUT:  This file last modified " 15-Jan-1985 15:33.32
  2782.        2. Include a specified file:
  2783.           IN:   #Include file "[DOC.WORK]INTRO.FGN"
  2784.           OUT:  (Contents of the specified file [DOC.WORK]INTRO.FGN)
  2785.        3. Variable definition
  2786.           IN:  #SET Dir := "[WORK.DOC]"
  2787.                #"-- The value of DIR is: " Dir
  2788.       Documentation System User Guide                             Page 50
  2789.           OUT: -- The value of DIR is: [WORK.DOC]
  2790.        4. Substitutions of CI, Item, and Version
  2791.           IN:  #"This is " Item " of " CI ", version " Version "."
  2792.           OUT: This is Item? of CI?, version Version?
  2793.            The above example shows that  if  the  Item,  CI,  or  Version
  2794.       substitutions   are  requested  when  an  ordinary  file  is  being
  2795.       processed, the strings "Item?", "CI?",  and  "Version?"  are  used.
  2796.       This  allows  a  FILEGEN  source  file  to be checked out before it
  2797.       becomes a component of a configuration item.
  2798.            Assuming the following command is given to invoke FILEGEN:
  2799.           FILEGEN("TEST.ADAGEN", "TEST.ADA", "My_Catalog", "TestCI 3");
  2800.       The following show some directives and the associated output
  2801.        1. Inserting the CI_ID as a comment in the output file:
  2802.           IN:   #"-- Version " Version " of " CI "." Item
  2803.           OUT:  -- Version 3 of My_Catalog.TestCI
  2804.        2. Inserting the CI_ID and date of last modification as a literal
  2805.           string in the output file:
  2806.           IN:   #"Version_ID: constant string :="
  2807.                 #""" CI "." Item "(" Version ") of " Date """;"
  2808.           OUT:  Version_ID: constant string := 
  2809.                       "My_Catalog.TestCI(3) of 8/12/85";
  2810.        3. Include a specified file:
  2811.           IN:   #Include file "decls.ada"
  2812.           OUT:  (Contents of the specified file)
  2813.        4. Include a specified item (file) called "other.dat" from the
  2814.       same
  2815.           configuration item as is being processed:
  2816.           IN:   #Include CI_COMP CI, "other.dat", Version
  2817.           OUT:  (Contents of neighboring item OTHER.DAT)
  2818.        5. Include a specified item from a different Item Library:
  2819.           IN:   #Include  IL_ITEM "Joes_IL", "other.dat", "3"
  2820.           OUT:  (Contents of item OTHER.DAT version 3 from JOES_IL)
  2821.       Documentation System User Guide                             Page 51
  2822.        6. Include a specified item from some other CI:
  2823.           IN:   #Include CI_COMP Joes_CI, other.dat, 3.2.7
  2824.           OUT:  (Contents of item OTHER.DAT from JOES_CI version 3.2.7)
  2825.        7. Include two items from the same CI:
  2826.           IN:   #Current_Version := "3.2.8"
  2827.                 #Include CI_COMP Joes_CI, FIRST.DAT, Current_Version
  2828.                 #Include CI_COMP Joes_CI, SECOND.DAT, Current_Version
  2829.           OUT:  (Contents of item FIRST.DAT from JOES_CI version 3.2.8)
  2830.                 (Contents of item SECOND.DAT from JOES_CI version 3.2.8)
  2831.       _____      Notes
  2832.            There is no way to specify the "latest version" of an item  in
  2833.       a  CI.   This  is because 1) doing so would violate the requirement
  2834.       that it be possible to recreate any CI at any  time  and  2)  since
  2835.       branches are allowed, the "latest version" is not well defined.
  2836.       Documentation System User Guide                             Page 52
  2837.       ________ _______      DOCUMENT PRINTER
  2838.       ___________      Description
  2839.            The Document Printer produces a  page  separated  output  file
  2840.       from  any  number of input files.  The page header and footer lines
  2841.       may be specified as well as the output page size,  margin  setting,
  2842.       and line numbering.
  2843.       ________ _______ _______ ______      Document Printer Command Format
  2844.       -- PAGINATE : Formats file(s) as specified
  2845.       -- 3.02-1.00
  2846.       subtype FILE_NAME   is STRING;
  2847.       type    SOURCE_LIST is array (POSITIVE range <>) of FILE_NAME;
  2848.       subtype PAGE_TYPE   is INTEGER range 1 .. 999;
  2849.       subtype MARGIN_TYPE is INTEGER range 0 .. 20;
  2850.       type    SWITCH      is (ON, OFF);
  2851.       procedure PAGINATE(
  2852.          SOURCE_LIST : in SOURCE_LIST;
  2853.          OUTPUT      : in FILE_NAME;
  2854.          HEADER      : in STRING      := "~F(L50) ~D  ~T   Page ~P(R3)";
  2855.          FOOTER      : in STRING      := "";
  2856.          PAGE        : in PAGE_TYPE   := 60;
  2857.          MARGIN      : in MARGIN_TYPE := 0;
  2858.          NUMBER      : in SWITCH      := OFF
  2859.          );
  2860.       -- SOURCE_LIST : List of file name(s) to be formatted
  2861.       -- OUTPUT      : Output file name (defaults to standard output)
  2862.       -- HEADER      : Header text
  2863.       -- FOOTER      : Footer text
  2864.       -- PAGE        : Number of lines per page (excluding header/footer)
  2865.       -- MARGIN      : Left margin size
  2866.       -- NUMBER      : Line numbering
  2867.            The header/footer text may contain substitution sequence(s) as
  2868.       place  holder(s) for actual data to be inserted in the output file.
  2869.       The substitution sequence is defined by an escape  character  tilde
  2870.       (~)  followed by a substitution character and may be followed by an
  2871.       optional  alignment  specification  consisting  of   an   alignment
  2872.       character  and  a  numeric  field  size.  The general format of the
  2873.       substitution sequence  is  ~S(Ann)  where  S  is  the  substitution
  2874.       character and A is the alignment character followed by a number nn.
  2875.       Documentation System User Guide                             Page 53
  2876.       The valid substitution characters are:
  2877.            F : output external file name
  2878.            P : current page number
  2879.            D : current date (eg. 03/15/86)
  2880.            C : current calendar date (eg. March 15, 1986)
  2881.            T : current time (eg. 04:53:32)
  2882.            The valid optional alignment character A are:
  2883.            L : left align the text
  2884.            R : right align the text
  2885.            C : center the text
  2886.       The nn following the alignment character specifies  the  number  of
  2887.       spaces  the text will displace in the header/footer text.  The case
  2888.       is not significant after the escape character tilde  (~).   If  the
  2889.       escape  character  is  followed by any character other than a valid
  2890.       substitution character  the  tilde  will  not  be  printed  and  no
  2891.       substitution  is  performed.   To  print  a  tilde character in the
  2892.       output header/footer two (2) consecutive tilde characters  must  be
  2893.       written in the header/footer specification.
  2894.       Documentation System User Guide                             Page 54
  2895.       ________      Examples
  2896.            The  following  example  takes  three  (3)  files  FILE1..DAT,
  2897.       FILE2..DAT,  and  FILE3..DAT  as  input (SOURCE_LIST) and creates a
  2898.       paginated output file FILES..OUT  (OUTPUT).   The  header  (HEADER)
  2899.       consists  of  the  output  file  name left aligned to 60 characters
  2900.       followed by the date and time.  The footer (FOOTER) consists of the
  2901.       page  number centered in the middle of the page.  The whole text is
  2902.       offset (MARGIN) by five (5) characters at the left margin.
  2903.            PAGINATE ( SOURCE_LIST => ("FILE1.DAT", "FILE2.DAT", "FILE3.DAT"),
  2904.                       OUTPUT      => "FILES.OUT",
  2905.                       HEADER      => "~F(L60) ~D  ~T",
  2906.                       FOOTER      => "~P(C80)",
  2907.                       MARGIN      => 5);
  2908.       Documentation System User Guide                             Page 55
  2909.       ____      Bugs
  2910.            There are no known bugs.
  2911.       Documentation System User Guide                             Page 56
  2912.       ____________      INSTALLATION
  2913.            Refer to the Byron installation guide.
  2914.       Documentation System User Guide                                          Page 57
  2915.       ________ _      APPENDIX 1
  2916.       To rebuild the DOCMGR tools:
  2917.        1. Compile all of the abstractions into an Ada program library
  2918.        2. Compile the files in the [.DOCMGR.SOURCE] directory into
  2919.           the same library or into a sublibrary of that library.  The
  2920.           file DOCMGR.CO lists all of the DOCMGR source files in a
  2921.           valid compilation order.
  2922.        3. Link the following executables:
  2923.           Executable Name             Ada program unit name
  2924.           ADDUSER.EXE                 Add_User
  2925.           CHCONSIST.EXE               Check_Consistency
  2926.           COPYL.EXE                   Copy_Library
  2927.           CREATECAT.EXE               Create_Catalog
  2928.           CREATEI.EXE                 Create_Item
  2929.           CREATEL.EXE                 Create_Library
  2930.           CREATERM.EXE                Cre_RM
  2931.           DELHUSER.EXE                Delete_HIF_User
  2932.           DELETEL.EXE                 Delete_Library
  2933.           DELUSER.EXE                 Delete_User
  2934.           FETCHI.EXE                  Fetch_Item
  2935.           FILEGEN.EXE                 FileGen
  2936.           LIBMGR.EXE                  Interactive_Library_Manager
  2937.           LISTCAT.EXE                 List_Catalogs
  2938.           LISTL.EXE                   List_Library
  2939.           LISTI.EXE                   List_Item
  2940.           OPENCAT.EXE                 Open_Catalog
  2941.           PAGINATE.EXE                Paginate
  2942.           RETURNI.EXE                 Return_Item
  2943.       This release is built on a version of the HIF (Host Interface Facility)
  2944.       called the Super-HIF that has known problems.  The current version of
  2945.       the Super-HIF will not allow multiple processes to access item(s) in the
  2946.       Super-HIF at the same time.  The consequence of this is that only one
  2947.       process may access the catalog or th library at a given time.
  2948. ::::::::::::::
  2949. docmgr.rno
  2950. ::::::::::::::
  2951. .RM 67
  2952. .PS ,67
  2953. .STHL ,,2,0,,1,0,,! turns off section numbering, second level and lower not all caps
  2954. .EUN        ! enable underlining
  2955. .FLAGS ACCEPT % ! Make underscore a printable character, we don't need overstrike
  2956. .T Documentation System User Guide
  2957. .C 
  2958. Documentation System User Guide 
  2959. .SK
  2960. .HL ^&Introduction\&
  2961. .SK
  2962. .P
  2963. The Documentation System is made up of four parts: the catalog manager; 
  2964. the item library manager; paginate and filegen.  The catalog manager is the
  2965. interface to configuration item catalogs, and the item library manager
  2966. is the interface to item libraries.  These interfaces will be
  2967. described in detail in later sections, although some commands 
  2968. will be mentioned here to provide an overview of the system.
  2969. Filegen and paginate are utilities to be used with the Documentation System.
  2970. .HL ^&Becoming a Documentation System User\&
  2971. .SK
  2972. .P
  2973. In order to use the Documentation System the user must be a HIF user.
  2974. There is an operation ADD_USER that will make a user a HIF user.
  2975. ADD_USER has two parameters: a directory where HIF data files will
  2976. be kept and a user id.  The user id defaults to the current user id.
  2977. If you are adding yourself there is no need to specify the second
  2978. parameter.  In order to be recognized as a HIF user your HIF user
  2979. id must be the same as your login id.  In addition to ADD_USER there
  2980. is DELETE_USER that takes no parameters and removes the current
  2981. user from the HIF.  
  2982. .P
  2983. The user must also set two logical variables called HIF_DIRECTORY and
  2984. HIF_FDL.  This is best done at login time.  The values for both of
  2985. these variables are determined at installation time by the person that
  2986. sets up the documentation system.
  2987. All operations will fail if the user is not
  2988. a HIF user.
  2989. .HL ^&Overview of the Catalog Manager and Item Library Manager\&
  2990. .SK
  2991. .P
  2992. A configuration item (CI) is a collection of files that are logically
  2993. connected.  For example the set of files that make up a list package
  2994. could be grouped as one CI.  The user has the option of including
  2995. all files, source and documentation, in one CI or dividing the
  2996. files into one or more CIs as seems appropriate.  The degenerate case
  2997. would be where a CI contains only one item.
  2998. .P
  2999. The way in which the files are grouped prior to making them a CI is to
  3000. put them into an item library.  An item is not a file.  It is the
  3001. 'contents' of that file.  In this way an item library can contain any
  3002. number of versions of one 'item'.
  3003. Item libraries are created with the item library manager command
  3004. CREATE_LIBRARY.  A library is created empty and your files are 
  3005. put into the library with the command CREATE_ITEM.  More versions of 
  3006. an item are created by calling FETCH_ITEM, modifying the file
  3007. and then calling RETURN_ITEM.
  3008. .P
  3009. In order to make a CI there must be a catalog in which to put it.
  3010. Catalogs are created with the CREATE_CATALOG command.  Any number
  3011. of catalogs can be in the same documentation system, but they
  3012. must have unique names.  Different projects may want to keep their
  3013. CIs in different catalogs.  There are three other commands that act on
  3014. catalogs: LIST_CATALOGS, CHECK_CONSISTENCY and OPEN_CATALOG.  
  3015. LIST_CATALOGS will list all catalogs in the documentation system;
  3016. CHECK_CONSISTENCY walks a catalog structure reporting any inconsistencies;
  3017. OPEN_CATALOG is an interactive tool that provides the user interface to
  3018. CIs in a catalog.  Any commands following that deal with CIs are actually
  3019. commands within the OPEN_CATALOG tool.
  3020. .P
  3021. To make a CI you must have an item library.
  3022. A CI is made from the library when you execute the command CREATE_CI.
  3023. At this time the contents of the library are put into the catalog
  3024. under the name that you give it and the library is deleted.  For
  3025. example, suppose the list package files were put into a library, now
  3026. they are in a controlled environment for the developer to modify
  3027. and test the code until a working list package is arrived at.  
  3028. The user should then let a configuration management (CM) coordinator
  3029. know which library to take.
  3030. Using CREATE_CI the CM coordinator will make a CI from the specified
  3031. library.  CREATE_CI takes the most recent version 
  3032. of each item, and other information
  3033. stored in the library moves it into the catalog under the name
  3034. given to CREATE_CI which might have been 'list' for the
  3035. list package.  A CI version
  3036. of '1' will be assigned to this CI and so the CI id of this CI version is
  3037. 'list 1'.
  3038. .P
  3039. Although there are versions of a CI, each
  3040. version could be viewed as a configuration item itself.  This is
  3041. easy to understand since each 'version' exists for some reason, and
  3042. even though new development would probably use the most
  3043. current version of any CI it needs, there will undoubtedly be
  3044. something that still depends on an older version,  So to avoid 
  3045. confusion, from now on 'CI' will refer to the complete collection of versions
  3046. that share the same CI name, and 'CI version' (CIV) will refer to a
  3047. particular instance of a CI.  A CI id identifies a particular CI
  3048. version.
  3049. .P
  3050. When a CIV is put into the catalog other
  3051. information in addition to the files is kept.  
  3052. Properties are part of the information taken from the library.
  3053. A property is a
  3054. keyword, value pair that identifies some attribute of the CIV.
  3055. For example the list package might have a property: LANGUAGE-ADA.
  3056. Properties are attached to a CIV when it is in the item library
  3057. stage.  There are item library commands to add, delete and change
  3058. properties.  The properties are not checked, however, until the
  3059. user tries to make the library a CIV.  The reason for this is that
  3060. different catalogs can have different sets of valid keywords and
  3061. when you just have an item library there is nothing to determine
  3062. which catalog in which it may be put later.
  3063. .P
  3064. The valid keywords for a catalog
  3065. are defined by a privileged user, usually the
  3066. person that created the catalog, and keywords can be defined to
  3067. be required on every CIV.
  3068. When the CIV is created or stored in the catalog its properties
  3069. are checked to make sure they all have valid keywords and all the
  3070. required ones are included.  Then the properties are stored in
  3071. a database that allows users to query the catalog by properties.
  3072. .P
  3073. Having determined through the database what CIV they want a user
  3074. can FETCH it to modify or just to use.  When a CIV is fetched
  3075. its contents are put into a specified item library.  At this
  3076. point the user may fetch and return items as before, and
  3077. the item library in this case can be thought of as a working
  3078. copy of the CI.
  3079. .P
  3080. When the
  3081. library is again ready to become a CIV it is returned to the 
  3082. catalog with the STORE operation.  The store operation will 
  3083. give the CIV a CI id that has the same CI name as before and
  3084. the next number sequentially for the version.  For example,
  3085. suppose a user wanted to add a labeled list to the list package.
  3086. The CIV could be fetched, modified and then stored.  It would have
  3087. a CI id of 'list 2'.  
  3088. .P
  3089. This development cycle can be repeated any number of times.
  3090. The user should note that CREATE_CI and STORE are privileged 
  3091. commands that can only be executed by a person that knows
  3092. the catalog password.  This would normally be the person that
  3093. created the catalog or a CM coordinator.  On the other hand
  3094. any user may do a FETCH and most of the other commands in the
  3095. interactive tool.
  3096. .HL ^&Paginate and FILEGEN\&
  3097. .SK
  3098. .P
  3099. Paginate and Filegen are utilities
  3100. that can be used with the catalog manager and the item library
  3101. manager, or independently.  Paginate will produce an output file
  3102. with page breaks , a header and a footer from any text input file.
  3103. The options it allows are described fully in the paginate section.
  3104. .P
  3105. Filegen is a file inclusion utility.  Given a file containing 
  3106. filegen directives it will produce an output file that contains
  3107. the original file's text, the text of any files included and
  3108. other information like the current date and the CI name of the CIV
  3109. the file is in.
  3110. The information that can be included is described in detail in
  3111. the filegen section dealing with the filegen directives.
  3112. .P
  3113. In addition to being able to include other files from your file system,
  3114. you can include files from a library or even a CIV in a catalog.
  3115. You can also produce output from a file inside a CIV.  If you give as
  3116. input the name of an item in a CIV, the the CIV's CI id and the catalog name,
  3117. file gen will produce an output file that is the text of the
  3118. input item, and the information generated by the filegen directives.
  3119. .REQ "catmgr.rno"
  3120. .REQ "libmgr.rno"
  3121. .REQ "fgen.rno"
  3122. .REQ "paginate.rno"
  3123. .PAGE
  3124. .HEADER LEVEL 1^&Installation\&
  3125. .PARAGRAPH
  3126. Refer to the Byron installation guide.
  3127. .PAGE
  3128. .RM 80
  3129. .PS ,80
  3130. .HEADER LEVEL 1^&Appendix 1\&
  3131. .BLANK
  3132. .NO FILL
  3133. .NO JUSTIFY
  3134. .REQ "[-]read.me"
  3135. .FILL
  3136. .JUSTIFY
  3137. .RM 67
  3138. .PS ,67
  3139. ::::::::::::::
  3140. docmgrc.mem
  3141. ::::::::::::::
  3142.                                    CONTENTS
  3143.         1       INTRODUCTION . . . . . . . . . . . . . . . . . . . . 1
  3144.         2       BECOMING A DOCUMENTATION SYSTEM USER . . . . . . . . 1
  3145.         3       OVERVIEW OF THE CATALOG MANAGER AND ITEM LIBRARY 
  3146.                 MANAGER  . . . . . . . . . . . . . . . . . . . . . . 1
  3147.         4       PAGINATE AND FILEGEN . . . . . . . . . . . . . . . . 3
  3148.         5       CATALOG MANAGER  . . . . . . . . . . . . . . . . . . 4
  3149.         5.1       Description  . . . . . . . . . . . . . . . . . . . 4
  3150.         5.2       Configuration Item Versions  . . . . . . . . . . . 4
  3151.         5.3       Configuration Identification . . . . . . . . . . . 5
  3152.         5.4       Using The Catalog Manager  . . . . . . . . . . . . 5
  3153.         5.5       Example Session  . . . . . . . . . . . . . . . . . 5
  3154.         5.6       CATALOG MANAGER COMMANDS . . . . . . . . . . . . . 7
  3155.         5.6.1       CREATE_CATALOG . . . . . . . . . . . . . . . . . 7
  3156.         5.6.2       OPEN_CATALOG . . . . . . . . . . . . . . . . . . 8
  3157.         5.6.3       LIST_CATALOGS  . . . . . . . . . . . . . . . . . 9
  3158.         5.6.4       CHECK_CONSISTENCY  . . . . . . . . . . . . . .  10
  3159.         5.7       Guide To The Interactive Catalog Manager . . . .  12
  3160.         5.8       Using The Interactive Catalog Manager  . . . . .  12
  3161.         5.8.1       Catalog Functions  . . . . . . . . . . . . . .  12
  3162.         5.8.2       Query Functions  . . . . . . . . . . . . . . .  12
  3163.         5.8.2.1       Catalog Queries  . . . . . . . . . . . . . .  12
  3164.         5.8.2.2       Configuration Item Queries . . . . . . . . .  12
  3165.         5.8.3       Configuration Item Commands  . . . . . . . . .  13
  3166.         5.8.4       Priviledged Operations   . . . . . . . . . . .  13
  3167.         5.8.5       Item Library Operations  . . . . . . . . . . .  13
  3168.         5.9       INTERACTIVE COMMANDS . . . . . . . . . . . . . .  14
  3169.         5.9.1       HELP   . . . . . . . . . . . . . . . . . . . .  14
  3170.         5.9.2       SELECT_CIS   . . . . . . . . . . . . . . . . .  15
  3171.         5.9.2.1       Selection Syntax:  . . . . . . . . . . . . .  15
  3172.         5.9.3       CLEAR_SELECTED_SET   . . . . . . . . . . . . .  16
  3173.         5.9.4       PRINT_SET  . . . . . . . . . . . . . . . . . .  17
  3174.         5.9.5       LIST_CIS   . . . . . . . . . . . . . . . . . .  18
  3175.         5.9.6       LIST_KEYWORDS  . . . . . . . . . . . . . . . .  19
  3176.         5.9.7       LIST_VERSIONS  . . . . . . . . . . . . . . . .  20
  3177.         5.9.8       DESCRIBE   . . . . . . . . . . . . . . . . . .  21
  3178.         5.9.9       HISTORY  . . . . . . . . . . . . . . . . . . .  22
  3179.         5.9.10      LIST_COMPONENTS  . . . . . . . . . . . . . . .  23
  3180.         5.9.11      FETCH  . . . . . . . . . . . . . . . . . . . .  24
  3181.         5.9.12      CANCEL   . . . . . . . . . . . . . . . . . . .  25
  3182.         5.9.13      MODIFY_PROPERTY  . . . . . . . . . . . . . . .  26
  3183.         5.9.14      CHANGE_PASSWORD  . . . . . . . . . . . . . . .  27
  3184.         5.9.15      DEFINE_KEYWORD . . . . . . . . . . . . . . . .  28
  3185.         5.9.16      DELETE . . . . . . . . . . . . . . . . . . . .  29
  3186.         5.9.17      REMOVE_LOCK  . . . . . . . . . . . . . . . . .  30
  3187.         5.9.18      CREATE_CI  . . . . . . . . . . . . . . . . . .  31
  3188.         5.9.19      STORE  . . . . . . . . . . . . . . . . . . . .  32
  3189.         5.9.20      LIBRARY_MANAGER  . . . . . . . . . . . . . . .  33
  3190.         6       ITEM LIBRARY MANAGER . . . . . . . . . . . . . . .  34
  3191.         6.1       Description  . . . . . . . . . . . . . . . . . .  34
  3192.         6.2       CREATE_LIBRARY . . . . . . . . . . . . . . . . .  34
  3193.         6.3       DELETE_LIBRARY . . . . . . . . . . . . . . . . .  35
  3194.         6.4       COPY_LIBRARY . . . . . . . . . . . . . . . . . .  35
  3195.         6.5       LIST_LIBRARY . . . . . . . . . . . . . . . . . .  36
  3196.                                                                 Page 2
  3197.         6.6       CREATE_ITEM  . . . . . . . . . . . . . . . . . .  36
  3198.         6.7       FETCH_ITEM . . . . . . . . . . . . . . . . . . .  37
  3199.         6.8       RETURN_ITEM  . . . . . . . . . . . . . . . . . .  37
  3200.         6.9       LIST_ITEM  . . . . . . . . . . . . . . . . . . .  38
  3201.         6.10      LIBRARY_MANAGER : Interactive Library Manager  .  38
  3202.         6.10.1      CANCEL_ITEM  . . . . . . . . . . . . . . . . .  40
  3203.         6.10.2      DELETE_ITEM  . . . . . . . . . . . . . . . . .  40
  3204.         6.10.3      PURGE_ITEM . . . . . . . . . . . . . . . . . .  41
  3205.         6.10.4      RENAME_ITEM  . . . . . . . . . . . . . . . . .  41
  3206.         6.10.5      RENAME_VERSION . . . . . . . . . . . . . . . .  42
  3207.         6.10.6      SHOW_HISTORY . . . . . . . . . . . . . . . . .  42
  3208.         6.10.7      ADD_PROPERTY . . . . . . . . . . . . . . . . .  43
  3209.         6.10.8      DELETE_PROPERTY  . . . . . . . . . . . . . . .  43
  3210.         6.10.9      MODIFY_PROPERTY  . . . . . . . . . . . . . . .  43
  3211.         6.10.10     LIST_PROPERTY  . . . . . . . . . . . . . . . .  44
  3212.         6.10.11     ENTER_LIBRARY  . . . . . . . . . . . . . . . .  44
  3213.         6.11      Examples . . . . . . . . . . . . . . . . . . . .  45
  3214.         6.12      Bugs . . . . . . . . . . . . . . . . . . . . . .  45
  3215.         7       DOCUMENT MANAGEMENT SYSTEM FILE GENERATOR  . . . .  46
  3216.         8       INTRODUCTION . . . . . . . . . . . . . . . . . . .  46
  3217.         8.1       Command Format . . . . . . . . . . . . . . . . .  46
  3218.         8.2       Parameters . . . . . . . . . . . . . . . . . . .  46
  3219.         8.3       Description  . . . . . . . . . . . . . . . . . .  47
  3220.         8.4       Variable Definitions . . . . . . . . . . . . . .  48
  3221.         8.5       The INCLUDE Directive  . . . . . . . . . . . . .  48
  3222.         8.6       Substitutions  . . . . . . . . . . . . . . . . .  49
  3223.         8.7       Examples . . . . . . . . . . . . . . . . . . . .  49
  3224.         8.8       Notes  . . . . . . . . . . . . . . . . . . . . .  51
  3225.         9       DOCUMENT PRINTER . . . . . . . . . . . . . . . . .  52
  3226.         9.1       Description  . . . . . . . . . . . . . . . . . .  52
  3227.         9.2       Document Printer Command Format  . . . . . . . .  52
  3228.         9.3       Examples . . . . . . . . . . . . . . . . . . . .  54
  3229.         9.4       Bugs . . . . . . . . . . . . . . . . . . . . . .  55
  3230.         10      INSTALLATION . . . . . . . . . . . . . . . . . . .  56
  3231.         11      APPENDIX 1 . . . . . . . . . . . . . . . . . . . .  57
  3232. ::::::::::::::
  3233. fgen.rno
  3234. ::::::::::::::
  3235. .FLAGS SPACE ~  ! Make sharp sign printable
  3236. .KEEP        ! Copy blank lines from input to output
  3237. .HL 1 ^&Document Management System File Generator\&
  3238.  
  3239. .HL ^&Introduction\&
  3240. .P
  3241. FILEGEN provides the documentation management system (DocMgr) with the
  3242. capability to combine one or more files to create a single output file.
  3243. The "source file" may contain directives which are processed by FILEGEN
  3244. to generate the output file.  These directives begin with the character
  3245. "#" (sharp sign) in column one.  The INCLUDE directive may be used to
  3246. merge additional files into the output file.  Other directives allow the
  3247. file name (or the configuration identifier if the file is a component of a
  3248. configuration item), the version number and the file modification date
  3249. to be inserted into the output file.  This provides a mechanism through
  3250. which any file that is under configuration control can be uniquely identified 
  3251. when it is checked out of the configuration management system.
  3252.  
  3253. .HL +1 ^&Command Format\&
  3254. .LT        ! take from the tool help message
  3255.  
  3256. -- FileGen : Generate a target file from a source file
  3257. -- 3.02-1.0
  3258.  
  3259. FileGen(
  3260.     Source  : string;
  3261.     Output  : string := "";
  3262.     Catalog : string := "";
  3263.     CI_Name : CI_ID_Type := ""
  3264.     );
  3265.  
  3266. Source:     -- File name or name of a component of CI
  3267. Output:     -- Name of the output file (default is standard output)
  3268. Catalog:     -- Name of a CI Catalog (default is none)
  3269. CI_Name:     -- Name of a CI (default is none)
  3270.  
  3271. .EL
  3272. .HL ^&Parameters\&
  3273. .P
  3274. The OUTPUT parameter specifies the name of the file which is to contain
  3275. the file to be generated.  It is a host system file specification.  
  3276. .P
  3277. The input file to be processed is specified by some combination of the
  3278. remaining three parameters, depending on whether the input file is an
  3279. ordinary text file, or a component within a configuration item.
  3280. .P
  3281. If the input file is an "ordinary file" (that is, one that has not been
  3282. stored as as a component of a configuration item), then the SOURCE
  3283. parameter is an ordinary file specification (on VMS, "USERMAN.SRC" or
  3284. "[WORK.DOC]USERMAN.SRC", etc.), and CI_NAME is a null string.  The
  3285. CATALOG parameter is necessary only if an INCLUDE directive that specifies
  3286. a CI component is encountered in one of the files being processed.
  3287. .P
  3288. If the source file is currently stored in an item library, then it cannot
  3289. be processed by fileGen directly.  Instead, it must be checked out of
  3290. the library and processed as an ordinary file.
  3291. .P
  3292. Finally, if the source file is currently stored as a configuration item,
  3293. then CATALOG is the name of the configuration item catalog, CI_NAME is
  3294. the name of the configuration item, and SOURCE is the name of the file
  3295. within this configuration item.
  3296. .P
  3297. The SOURCE parameter has the form of an ordinary host system file name.
  3298. If the item is inside of an item library or a configuration item, it must
  3299. be a simple file name (no directory path).
  3300. .P
  3301. The CATALOG parameter must be a valid Ada identifier.  The CI_Name parameter
  3302. is a valid Ada identifier followed by one or more spaces followed by a
  3303. version number.  See the section on the Catalog Manager for details on the
  3304. version numbering scheme.
  3305.  
  3306. .HL ^&Description\&
  3307. .P
  3308. FILEGEN has three basic functions:
  3309. .LM +5
  3310. .LT
  3311.  
  3312.    1. Extracting files from an Item Library or from a
  3313.       configuration item.
  3314.  
  3315.    2. File inclusion
  3316.  
  3317.    3. Substitutions:
  3318.  
  3319.       - Version ID        - Date of last modification
  3320.       - CI_ID            - ITEM_ID
  3321. .EL
  3322. .LM -5
  3323. .P
  3324. The following are the directives that may be used in a file processed by
  3325. FILEGEN.  Lines that do not begin with a sharp sign (#) are simply
  3326. copied to the output file.  If the sharp sign appears twice in a row (in
  3327. columns one and two), then the line is copied to the output file
  3328. starting with column two (the first sharp sign is deleted).  This makes
  3329. it relatively easy to generate output files containing a sharp sign in
  3330. column one, should the need arise.
  3331. .P
  3332. There are three kinds of directives: includes, substitutions, and
  3333. definitions.  The Include directive causes the contents of the
  3334. designated file to be recursively processed by FILEGEN and copied to
  3335. the output file.  Substitution directives are evaluated and replaced by
  3336. their values before the line is copied to the output file.  Definitions
  3337. assign string values to variables and do not generate any output.
  3338. scope of a variable is limited to the file which defines it.  
  3339. .P
  3340. In a directive, everything following a double dash is a comment (as in
  3341. Ada) and is ignored.  If a directive results in a line that is entirely
  3342. blank, the line is not copied to the output file.  Thus lines of the
  3343. form 
  3344. .LT
  3345.  
  3346.     #-- <text>
  3347.  
  3348. .EL
  3349. are filtered from the input file.
  3350. .P
  3351. The syntax of the directives is as follows:
  3352. .LT
  3353.  
  3354. Directive = "Set" Variable ":=" StrVal        -- Variable definition
  3355.       | "Include" "file" StrVal        -- File inclusion
  3356.       | "Include" "il_item" StrVal, StrVal, VSpec -- File from item library
  3357.       | "Include" "ci_comp" StrVal, StrVal, VSpec -- File from CI Catalog
  3358.       | Expr                -- Substitution
  3359.  
  3360. StrVal    = String
  3361.     | Variable
  3362.  
  3363. VSpec    = DottedNumber
  3364.  
  3365. Expr    = Primary        -- Simple substitution
  3366.     | Primary Expr        -- Concatenation
  3367.  
  3368. Primary = StrVal        -- String literal or variable
  3369.     | "Date"        -- Replace with date of last modification
  3370.     | "CI"             -- Replaced by CI name of this file
  3371.     | "ITEM"        -- Replaced by Item name of this file
  3372.     | "Version"        -- Replaced by Version Number of this file
  3373.  
  3374. Variable = (an Ada identifier)
  3375.  
  3376. .EL
  3377.  
  3378. .HL ^&Variable Definitions\&
  3379. .P
  3380. A variable definition assigns a string value to an identifier.
  3381. Subsequent uses of the variable are replaced by its value.  If a
  3382. variable is redefined, a warning message is issued.  The scope of a
  3383. variable is limited to the file that contains its definition.  Variables
  3384. must be defined before use.
  3385. .P
  3386. If a number of files are to be extracted from the same configuration
  3387. item, it may be convenient to assign the configuration item name and
  3388. version number to variable as in the following example:
  3389. .LT
  3390.  
  3391.     #set CI := "System_Documentation"
  3392.     #set VNum := 5.3
  3393.     #include CI_COMP CI, "Part_1", VNum
  3394.     #include CI_COMP CI, "Part_2", VNum
  3395.     #include CI_COMP CI, "Part_3", VNum
  3396. .EL
  3397. .P
  3398. Then, it is a simple matter to change the definition of CI or VNum to
  3399. extract the same files from a different configuration item or different
  3400. version of the same item.
  3401.  
  3402. .HL ^&The INCLUDE Directive\&
  3403. .P
  3404. There are three forms of the include directive.  In all cases, the
  3405. directive is replaced by the contents of the file that it specifies.
  3406. The file can be either an ordinary host file, an item within an item library,
  3407. or a file from a configuration item.  To include an ordinary host system
  3408. file, the following form of the INCLUDE directive is used:
  3409. .LT
  3410.  
  3411.     #INCLUDE FILE <host system file name>
  3412.  
  3413. .EL
  3414. .P
  3415. To include an item from within an item library, the name of the library,
  3416. the name of the item, and the desired revision number must all be
  3417. specified:
  3418. .LT
  3419.  
  3420.     #INCLUDE IL_ITEM <library name> <item name> <version number>
  3421.  
  3422. .EL
  3423. The library name must be a valid Ada identifier.  The item name is
  3424. a host system file name, and the version number is a single digit number.
  3425. .P
  3426. Finally, to include an item from within a configuration item catalog,
  3427. the name of the configuration item, the name of the file within that CI,
  3428. and the desired revision number must all be specified:
  3429. .LT
  3430.  
  3431.     #INCLUDE CI_COMP <CI name> <file name> <version number>
  3432.  
  3433. .EL
  3434. the CI name must be a valid Ada identifier.  The file name is a simple
  3435. host system file name, and the version number may contain several components
  3436. to reflect branching within the configuration item catalog (eg. 1 or 1.1.3 or
  3437. 1.2.3, etc.)
  3438.  
  3439. .HL ^&Substitutions\&
  3440. .P
  3441. If a directive consists of a sequence of expressions, the value of each
  3442. expression is simply copied to the output file and then the output line
  3443. is terminated.
  3444.  
  3445. .HL ^&Examples\&
  3446. .P
  3447. Assuming the following command is given to invoke FILEGEN
  3448. .LT
  3449.  
  3450.     FILEGEN("USERMAN.FGN", "USERMAN.RNO");
  3451.     
  3452. .EL
  3453. In this case, the file USERMAN.fgn will be processed to generate
  3454. a file called USERMAN.RNO.  No catalog or item library will be
  3455. used.  The following examples show how each directive might be
  3456. used.  
  3457. .NF
  3458.  
  3459.  1. Inserting the date of last modification into the output file:
  3460.  
  3461.     IN:      #"This file last modified " Date
  3462.     OUT:  This file last modified " 15-Jan-1985 15:33.32
  3463.  
  3464.  
  3465.  2. Include a specified file:
  3466.  
  3467.     IN:   #Include file "[DOC.WORK]INTRO.FGN"
  3468.     OUT:  (Contents of the specified file [DOC.WORK]INTRO.FGN)
  3469.  
  3470.  
  3471.  3. Variable definition
  3472.  
  3473.     IN:  #SET Dir := "[WORK.DOC]"
  3474.      #"-- The value of DIR is: " Dir
  3475.  
  3476.     OUT: -- The value of DIR is: [WORK.DOC]
  3477.  
  3478.  
  3479.  4. Substitutions of CI, Item, and Version
  3480.  
  3481.     IN:  #"This is " Item " of " CI ", version " Version "."
  3482.     OUT: This is Item? of CI?, version Version?
  3483.  
  3484. .F
  3485. .P
  3486. The above example shows that if the Item, CI, or Version substitutions
  3487. are requested when an ordinary file is being processed, the strings
  3488. "Item?", "CI?", and "Version?" are used. This allows a FILEGEN source
  3489. file to be checked out before it becomes a component of a configuration item.
  3490.  
  3491. .P
  3492. Assuming the following command is given to invoke FILEGEN:
  3493. .LT
  3494.  
  3495.     FILEGEN("TEST.ADAGEN", "TEST.ADA", "My_Catalog", "TestCI 3");
  3496.  
  3497. .EL    
  3498. The following show some directives and the associated output
  3499. .NF
  3500.  1. Inserting the CI_ID as a comment in the output file:
  3501.  
  3502.     IN:      #"-- Version " Version " of " CI "." Item
  3503.     OUT:  -- Version 3 of My_Catalog.TestCI
  3504.  
  3505.  
  3506.  2. Inserting the CI_ID and date of last modification as a literal
  3507.     string in the output file:
  3508.  
  3509.     IN:      #"Version_ID: constant string :="
  3510.       #""" CI "." Item "(" Version ") of " Date """;"
  3511.  
  3512.     OUT:  Version_ID: constant string := 
  3513.         "My_Catalog.TestCI(3) of 8/12/85";
  3514.  
  3515.  
  3516.  3. Include a specified file:
  3517.  
  3518.     IN:   #Include file "decls.ada"
  3519.     OUT:  (Contents of the specified file)
  3520.  
  3521.  
  3522.  4. Include a specified item (file) called "other.dat" from the same
  3523.     configuration item as is being processed:
  3524.  
  3525.     IN:   #Include CI_COMP CI, "other.dat", Version
  3526.     OUT:  (Contents of neighboring item OTHER.DAT)
  3527.  
  3528.  
  3529.  5. Include a specified item from a different Item Library:
  3530.  
  3531.     IN:   #Include  IL_ITEM "Joes_IL", "other.dat", "3"
  3532.     OUT:  (Contents of item OTHER.DAT version 3 from JOES_IL)
  3533.  
  3534.  
  3535.  6. Include a specified item from some other CI:
  3536.  
  3537.     IN:   #Include CI_COMP Joes_CI, other.dat, 3.2.7
  3538.     OUT:  (Contents of item OTHER.DAT from JOES_CI version 3.2.7)
  3539.  
  3540.  
  3541.  7. Include two items from the same CI:
  3542.  
  3543.     IN:   #Current_Version := "3.2.8"
  3544.       #Include CI_COMP Joes_CI, FIRST.DAT, Current_Version
  3545.       #Include CI_COMP Joes_CI, SECOND.DAT, Current_Version
  3546.  
  3547.     OUT:  (Contents of item FIRST.DAT from JOES_CI version 3.2.8)
  3548.       (Contents of item SECOND.DAT from JOES_CI version 3.2.8)
  3549.  
  3550. .F
  3551. .HL ^&Notes\&
  3552. .P
  3553. There is no way to specify the "latest version" of an item in a CI.
  3554. This is because 1) doing so would violate the requirement that it be
  3555. possible to recreate any CI at any time and 2) since branches are
  3556. allowed, the "latest version" is not well defined.
  3557. ::::::::::::::
  3558. install.mem
  3559. ::::::::::::::
  3560.         INSTALLATION GUIDE
  3561.              To install the documetation system the  HIF  must  be  set  up
  3562.         first.   The first step is to decide where the root of the hif will
  3563.         be.  This should be a directory, and where  it  is  placed  has  no
  3564.         effect  on  the  documentation  system.   After  this  directory is
  3565.         created set a logical variable 'HIF_DIRECTORY' to be the  directory
  3566.         spec  for  it.  You must also set the logical variable 'HIF_FDL' to
  3567.         be the full path name for fdl file shipped with  the  documentation
  3568.         system.   The values for both these variables must also be given to
  3569.         the users in order for them to use the system.  Once the  variables
  3570.         are set you can run in this order:  CRE_RM and CRE_RP.  If prompted
  3571.         to 'Enter parameters:' just hit return.  At this point the  HIF  is
  3572.         created.   In  order  to  run the documentation system one hif user
  3573.         must be added first.  This is the hif user DOCMGR.  If you wish  to
  3574.         change  the  name  you  must also modify the name in DOCMGR.DAT and
  3575.         recompile.  To add the user DOCMGR determine  which  directory  the
  3576.         root  of  the  documentation  system  should  occupy,  and then run
  3577.         ADD_USER giving it as parameters the directory  path  and  "DOCMGR"
  3578.         for  a  user  name.  Now the only thing left to do is to define all
  3579.         the commands.  A system manager could make system wide definitions,
  3580.         or  each  user  could make the definitions in their login file.  In
  3581.         the latter case you must inform the users where all the executables
  3582.         are.
  3583.              Catalogs and libraries are also HIF users and should it become
  3584.         necessary  to  remove a catalog there is the command DELTE_HIF_USER
  3585.         which takes a user name.  It can also be used to delete users  that
  3586.         leave without deleting themselves.  It should be protected since it
  3587.         will allow any user on the computer delete  any  catalog  or  user.
  3588.         This   procedure   can  also  be  used  to  delete  libraries,  but
  3589.         DELETE_LIBRARY has been provided  for  that  case.   DELETE_LIBRARY
  3590.         checks  to  make  sure  that  the library is not outstanding from a
  3591.         catalog  before  deleting  it,  so  it   is   preferable   to   use
  3592.         DELETE_LIBRARY for the safety checks.
  3593. ::::::::::::::
  3594. install.rno
  3595. ::::::::::::::
  3596. .LM 8        ! alternatively 0
  3597. .RM 75        ! alternatively 67
  3598. .PS ,75        ! alternatively 67
  3599. .STHL ,,2,0,,1,0,,! turns off section numbering, second level and lower not all caps
  3600. .EUN        ! enable underlining
  3601. .FLAGS ACCEPT % ! Make underscore a printable character, we don't need overstrike
  3602. .T Installation Guide (Draft)
  3603. .HL Installation Guide
  3604. .SK
  3605. .P
  3606. To install the documetation system the HIF must be set up first.
  3607. The first step is to decide where the root of the HIF will be.
  3608. This should be a directory, and where it is placed has no effect
  3609. on the documentation system.  After this directory is created set
  3610. a logical variable 'HIF_DIRECTORY' to be the directory spec for it.
  3611. You must also set the logical variable 'HIF_FDL' to be the full
  3612. path name for FDL
  3613. file shipped with the documentation system.  The values for both these
  3614. variables must also be given to the users in order for them to use the 
  3615. system.
  3616. .P
  3617. Once the variables are set you can run in this order: CRE_RM and CRE_RP.
  3618. If prompted to 'Enter parameters:' just hit return.
  3619. At this point the HIF is created.  
  3620. .P
  3621. In order to run the documentation 
  3622. system one hif user must be added first.  This is the hif user DOCMGR.
  3623. If you wish to change the name you must also modify the name in
  3624. DOCMGR.DAT and recompile.  To add the user DOCMGR determine which
  3625. directory the
  3626. root of the documentation system should occupy, and then run ADD_USER
  3627. giving it as parameters the directory path and "DOCMGR" for a user name.
  3628. Now the only thing left to do is to define all the commands.
  3629. A system manager could make system wide definitions, or each user could
  3630. make the definitions in their login file.  In the latter case you must
  3631. inform the users where all the executables are.
  3632. .P
  3633. Catalogs and libraries are also HIF users and should it become necessary
  3634. to remove a catalog there is the command DELTE_HIF_USER which takes a
  3635. user name.  The name to give it to delete a catalog is the catalog name.
  3636. It can also be used to delete users that leave without
  3637. deleting themselves.  It should be protected since it will allow any
  3638. user on the computer delete any catalog or user.  This procedure can
  3639. also be used to delete libraries, but DELETE_LIBRARY has been provided
  3640. for that case.  DELETE_LIBRARY checks to make sure that the library
  3641. is not outstanding from a catalog before deleting it, so it is preferable
  3642. to use DELETE_LIBRARY for the safety checks.
  3643. ::::::::::::::
  3644. libmgr.rno
  3645. ::::::::::::::
  3646. .PAGE
  3647. .HEADER LEVEL 1^&Item Library Manager\&
  3648. .BLANK
  3649. .HEADER LEVEL 2^&Description\&
  3650. .BLANK
  3651. .PARAGRAPH
  3652. The Item Library Manager consists of a set of functions to manage a library
  3653. of related files (items) called an item library.  It will provide configuration
  3654. control over the items and maintain multiple versions of the same item.
  3655. An item library is a working copy of a configuration item (CI) and may have
  3656. associated with it, properties to describe itself
  3657. (See Catalog Manager for details on CI's and properties). 
  3658. The following commands are provided in the Item Library Manager:
  3659. .BLANK
  3660. .LS 0, "o"
  3661. .LE
  3662. LIBRARY_MANAGER
  3663. .LE
  3664. CREATE_LIBRARY
  3665. .LE
  3666. DELETE_LIBRARY
  3667. .LE
  3668. COPY_LIBRARY
  3669. .LE
  3670. LIST_LIBRARY
  3671. .LE
  3672. CREATE_ITEM
  3673. .LE
  3674. FETCH_ITEM
  3675. .LE
  3676. RETURN_ITEM
  3677. .LE
  3678. LIST_ITEM
  3679. .ELS 0
  3680. .BLANK 2
  3681. .HEADER LEVEL 2^&CREATE_LIBRARY\&
  3682. .LITERAL
  3683.  
  3684. -- CREATE_LIBRARY : Create an Item Library
  3685. -- 3.02-1.0
  3686.  
  3687.  
  3688. subtype LIBRARY_NAME   is STRING;
  3689. subtype DIRECTORY_SPEC is STRING;
  3690.  
  3691. procedure CREATE_LIBRARY(
  3692.    LIBRARY   : in LIBRARY_NAME;
  3693.    DIRECTORY : in DIRECTORY_SPEC
  3694.    );
  3695.  
  3696. -- LIBRARY   : Name of the item library to be created
  3697. -- DIRECTORY : Name of directory to be used by this library
  3698.  
  3699. .END LITERAL
  3700. .PARAGRAPH
  3701. The CREATE_LIBRARY command creates an item library with the specified name.
  3702. The library name must be an Ada identifier.
  3703. The directory may be any string but must be a valid directory specification
  3704. for the file system in which the Item Library Manager resides.
  3705. All items/information of this item library will be contained in the
  3706. specified directory.  The Item Library Manager does NOT provide
  3707. protection for this directory except in the context of item libraries.
  3708. It is recommended that no files/attributes be changed/deleted
  3709. in this directory.  Failure to adhere to this may cause the entire
  3710. document management system to be corrupted.
  3711. .BLANK 2
  3712. .HEADER LEVEL 2^&DELETE_LIBRARY\&
  3713. .LITERAL
  3714.  
  3715. -- DELETE_LIBRARY : Delete an Item Library
  3716. -- 3.02-1.0
  3717.  
  3718.  
  3719. subtype LIBRARY_NAME is STRING;
  3720.  
  3721. procedure DELETE_LIBRARY(
  3722.    LIBRARY : in LIBRARY_NAME
  3723.    );
  3724.  
  3725. -- LIBRARY : Name of the item library to be deleted
  3726.  
  3727. .END LITERAL
  3728. .PARAGRAPH
  3729. The DELETE_LIBRARY command deletes an existing item library.
  3730. Only the owner of a library may delete the library and only if the
  3731. library is not pending a return into a catalog as a CI (See Catalog
  3732. Manager for details of RETURN_CI function). 
  3733. .BLANK 2
  3734. .HEADER LEVEL 2^©_LIBRARY\&
  3735. .LITERAL
  3736.  
  3737. -- COPY_LIBRARY : Copy an Item Library to Another Item Library
  3738. -- 3.02-1.0
  3739.  
  3740.  
  3741. subtype LIBRARY_NAME   is STRING;
  3742. subtype DIRECTORY_SPEC is STRING;
  3743. type    COPY_MODE      is (CURRENT, FULL);
  3744.  
  3745. procedure COPY_LIBRARY(
  3746.    FROM_LIBRARY : in LIBRARY_NAME;
  3747.    TO_LIBRARY   : in LIBRARY_NAME;
  3748.    TO_DIRECTORY : in DIRECTORY_SPEC;
  3749.    MODE         : in COPY_MODE      := CURRENT
  3750.    );
  3751.  
  3752. -- FROM_LIBRARY : Name of the item library to be copied
  3753. -- TO_LIBRARY   : Name of the new item library
  3754. -- TO_DIRECTORY : Name of directory to be used by the new library
  3755. -- MODE         : Copy option:
  3756. --                   CURRENT : copy only the current version of items
  3757. --                   FULL    : copy all versions of items
  3758.  
  3759. .END LITERAL
  3760. .PARAGRAPH
  3761. The COPY_LIBRARY command copies an existing item library to another
  3762. item library.
  3763. The new library name must be an Ada identifier.
  3764. All attributes except library ownership are copied
  3765. from the existing library.  A library may be copied only if there are
  3766. not items within the library pending a return.  The Mode option specifies
  3767. if all versions of all items in the library are copied (FULL) or only
  3768. the latest version of all items are copied (CURRENT).  
  3769. .BLANK 2
  3770. .HEADER LEVEL 2^&LIST_LIBRARY\&
  3771. .LITERAL
  3772.  
  3773. -- LIST_LIBRARY : List Libraries Owned by User
  3774. -- 3.02-1.0
  3775.  
  3776.  
  3777. subtype USER_NAME    is STRING;
  3778. subtype LIBRARY_NAME is STRING;
  3779.  
  3780. procedure LIST_LIBRARY(
  3781.    OWNER   : in USER_NAME    := "owner_name";
  3782.    LIBRARY : in LIBRARY_NAME := "*"
  3783.    );
  3784.  
  3785. -- OWNER   : Name of the library owner
  3786. -- LIBRARY : Name of the library
  3787.  
  3788. .END LITERAL
  3789. .PARAGRAPH
  3790. The LIST_LIBRARY command lists all libraries that satisfy the condition
  3791. given by the ownership and name of the libraries.  
  3792. Both the library ownership and name may contain wildcard character(s) "%*".
  3793. .BLANK 2
  3794. .HEADER LEVEL 2^&CREATE_ITEM\&
  3795. .LITERAL
  3796.  
  3797. -- CREATE_ITEM : Create an Item in the Item Library
  3798. -- 3.02-1.0
  3799.  
  3800.  
  3801. subtype LIBRARY_NAME is STRING;
  3802. subtype FILE_NAME    is STRING;
  3803.  
  3804. procedure CREATE_ITEM(
  3805.    LIBRARY : in LIBRARY_NAME;
  3806.    FILE    : in FILE_NAME;
  3807.    HISTORY : in STRING
  3808.    );
  3809.  
  3810. -- LIBRARY : Name of the item library
  3811. -- FILE    : Name of the file to be checked into the item library
  3812. -- HISTORY : Description/reason for this item
  3813.  
  3814. .END LITERAL
  3815. .PARAGRAPH
  3816. The CREATE_ITEM command is used to create an item in the item library
  3817. from a given file.  The item name will be the same as the file name and
  3818. must not already exist in the item library.  The History may be any
  3819. character string and will be stored in the item library associated 
  3820. with the created item.
  3821. .BLANK 2
  3822. .HEADER LEVEL 2^&FETCH_ITEM\&
  3823. .LITERAL
  3824.  
  3825. -- FETCH_ITEM : Fetch an Item from an Item Library
  3826. -- 3.02-1.0
  3827.  
  3828.  
  3829. subtype LIBRARY_NAME is STRING;
  3830. subtype ITEM_NAME    is STRING;
  3831. subtype VERSION      is STRING;
  3832. type    FETCH_MODE   is (NO_UPDATE, UPDATE);
  3833.  
  3834. procedure FETCH_ITEM(
  3835.    LIBRARY : in LIBRARY_NAME;
  3836.    ITEM    : in ITEM_NAME;
  3837.    VERSION : in VERSION      := "";
  3838.    MODE    : in FETCH_MODE   := NO_UPDATE
  3839.    );
  3840.  
  3841. -- LIBRARY : Name of the item library
  3842. -- ITEM    : Name of the item to be fetched from the item library
  3843. -- VERSION : Version specification
  3844. -- MODE    : Fetch mode:
  3845. --              NO_UPDATE : check out an item for read only
  3846. --              UPDATE    : check out an item for update
  3847.  
  3848. .END LITERAL
  3849. .PARAGRAPH
  3850. The FETCH_ITEM command is used to check an item out of the item library.
  3851. The checked out item will be a file in the current directory
  3852. with the item name as its file name.  The Mode specifies whether the
  3853. item is to be checked out as read only (NO_UPDATE) or for updating
  3854. and eventual return to the item library (UPDATE).  
  3855. Only the current version may be checked out for UPDATE provided that it
  3856. is not already checked out for UPDATE.  
  3857. The version specification may be any numeric in string format (eg. "3") or
  3858. a null string for the current version.
  3859. .BLANK 2
  3860. .HEADER LEVEL 2^&RETURN_ITEM\&
  3861. .LITERAL
  3862.  
  3863. -- RETURN_ITEM : Return a File to an Item Library
  3864. -- 3.02-1.0
  3865.  
  3866.  
  3867. subtype LIBRARY_NAME is STRING;
  3868. subtype FILE_NAME    is STRING;
  3869.  
  3870. procedure RETURN_ITEM(
  3871.    LIBRARY : in LIBRARY_NAME;
  3872.    FILE    : in FILE_NAME;
  3873.    HISTORY : in STRING
  3874.    );
  3875.  
  3876. -- LIBRARY : Name of the item library
  3877. -- FILE    : Name of the file to be returned to the item library
  3878. -- HISTORY : Description/reason for the change(s) in this item
  3879.  
  3880. .END LITERAL
  3881. .PARAGRAPH
  3882. The RETURN_ITEM command is used to check a file back into the item
  3883. library as a new version of an item previously checked out (see FETCH_ITEM).
  3884. The History may be any character string and will be stored in the item library
  3885. associated with this new version of an item. 
  3886. .BLANK 2
  3887. .HEADER LEVEL 2^&LIST_ITEM\&
  3888. .LITERAL
  3889.  
  3890. -- LIST_ITEM : List Item(s) in the Item Library
  3891. -- 3.02-1.0
  3892.  
  3893.  
  3894. subtype LIBRARY_NAME is STRING;
  3895. subtype ITEM_NAME    is STRING;
  3896. subtype VERSION      is STRING;
  3897. type    LIST_MODE    is (LONG, SHORT);
  3898.  
  3899. procedure LIST_ITEM(
  3900.    LIBRARY : in LIBRARY_NAME;
  3901.    ITEM    : in ITEM_NAME    := "*";
  3902.    VERSION : in VERSION      := "";
  3903.    MODE    : in LIST_MODE    := SHORT
  3904.    );
  3905.  
  3906. -- LIBRARY : Name of the item library
  3907. -- ITEM    : Name of the item to list
  3908. -- VERSION : Version specification
  3909. -- MODE    : List mode:
  3910. --              SHORT : list item/version name(s) only
  3911. --              LONG  : list attributes as well as item/version name(s)
  3912.  
  3913. .END LITERAL
  3914. .PARAGRAPH
  3915. The LIST_ITEM command lists item(s) in the item library that satisfies
  3916. the condition specified by Item and Version.  
  3917. Both Item and Version may contain wildcard character(s) "%*".  The Mode
  3918. specifies whether the list is to contain only the item name and version
  3919. (SHORT) or item name, version, and associated attributes (LONG).
  3920. .BLANK 2
  3921. .HEADER LEVEL 2^&LIBRARY_MANAGER : Interactive Library Manager\&
  3922. .LITERAL
  3923.  
  3924. -- LIBRARY_MANAGER : Interactive Library Manager Tool
  3925. -- 3.02-1.0
  3926.  
  3927.  
  3928. subtype LIBRARY_NAME   is STRING;
  3929.  
  3930. procedure LIBRARY_MANAGER(
  3931.    LIBRARY : in LIBRARY_NAME := "";
  3932.    PROMPT  : in STRING       := ""
  3933.    );
  3934.  
  3935. -- LIBRARY : Name of the item library
  3936. -- PROMPT  : Prompt string
  3937.  
  3938. .END LITERAL
  3939. .PARAGRAPH
  3940. This command invokes the interactive library management tool.
  3941. The item library name if given must be an Ada identifier.  The PROMPT may be
  3942. any string and will appear as a prompt for the interactive library manager.
  3943. The following interactive commands are provided:
  3944. .BLANK
  3945. .LS 0, "o"
  3946. .LE
  3947. CREATE_LIBRARY
  3948. .LE
  3949. DELETE_LIBRARY
  3950. .LE
  3951. COPY_LIBRARY
  3952. .LE
  3953. LIST_LIBRARY
  3954. .LE
  3955. CREATE_ITEM
  3956. .LE
  3957. FETCH_ITEM
  3958. .LE
  3959. RETURN_ITEM
  3960. .LE
  3961. CANCEL_ITEM
  3962. .LE
  3963. LIST_ITEM
  3964. .LE
  3965. DELETE_ITEM
  3966. .LE
  3967. PURGE_ITEM
  3968. .LE
  3969. RENAME_ITEM
  3970. .LE
  3971. RENAME_VERSION
  3972. .LE
  3973. SHOW_HISTORY
  3974. .LE
  3975. ADD_PROPERTY
  3976. .LE
  3977. DELETE_PROPERTY
  3978. .LE
  3979. MODIFY_PROPERTY
  3980. .LE
  3981. LIST_PROPERTY
  3982. .LE
  3983. ENTER_LIBRARY
  3984. .LE
  3985. HELP
  3986. .LE
  3987. EXIT
  3988. .ELS 0
  3989. .PARAGRAPH
  3990. The HELP command shows brief descriptions of all Interactive Library Manager
  3991. commands.
  3992. .PARAGRAPH
  3993. The EXIT command is used to terminate the Interactive Library Manager session.
  3994. .PARAGRAPH
  3995. The following commands have the same function and command syntax as described
  3996. immediately above:
  3997. .BLANK
  3998. .LITERAL
  3999.     CREATE_LIBRARY
  4000.     DELETE_LIBRARY
  4001.     COPY_LIBRARY
  4002.     LIST_LIBRARY
  4003. .END LITERAL
  4004. .PARAGRAPH
  4005. The following commands have the same function as described
  4006. immediately above but the command syntax differs in that no library
  4007. specifications are given:
  4008. .BLANK
  4009. .LITERAL
  4010.     CREATE_ITEM
  4011.     FETCH_ITEM
  4012.     RETURN_ITEM
  4013.     LIST_ITEM
  4014. .END LITERAL
  4015. .BLANK 2
  4016. .HEADER LEVEL 3^&CANCEL_ITEM\&
  4017. .LITERAL
  4018.  
  4019. -- CANCEL_ITEM : Cancel a Pending Return for an Item in the Item Library
  4020. -- 3.02-1.0
  4021.  
  4022.  
  4023. subtype ITEM_NAME    is STRING;
  4024.  
  4025. procedure CANCEL_ITEM(
  4026.    ITEM    : in ITEM_NAME
  4027.    );
  4028.  
  4029. -- ITEM    : Name of the item to cancel the pending return
  4030.  
  4031. .END LITERAL
  4032. .PARAGRAPH
  4033. The CANCEL_ITEM command cancels a return pending state of an item in the item
  4034. library without returning the file back into the item library.  The item
  4035. must be checked out for update to be canceled.
  4036. .BLANK 2
  4037. .HEADER LEVEL 3^&DELETE_ITEM\&
  4038. .LITERAL
  4039.  
  4040. -- DELETE_ITEM : Delete Item(s) in an Item Library
  4041. -- 3.02-1.0
  4042.  
  4043.  
  4044. subtype ITEM_NAME    is STRING;
  4045. subtype VERSION      is STRING;
  4046.  
  4047. procedure DELETE_ITEM(
  4048.    ITEM    : in ITEM_NAME;
  4049.    VERSION : in VERSION      := ""
  4050.    );
  4051.  
  4052. -- ITEM    : Name of the item(s) to be deleted in the item library
  4053. -- VERSION : Version specification
  4054.  
  4055. .END LITERAL
  4056. .PARAGRAPH
  4057. The DELETE_ITEM command deletes item(s) from the item library.  Both
  4058. Item and Version specification may contain wildcard character(s) "%*".
  4059. All items/versions that satisfy the specifications and whose ownership
  4060. requirements are satisfied are deleted from the item library.
  4061. .BLANK 2
  4062. .HEADER LEVEL 3^&PURGE_ITEM\&
  4063. .LITERAL
  4064.  
  4065. -- PURGE_ITEM : Purge Item(s) in an Item Library
  4066. -- 3.02-1.0
  4067.  
  4068.  
  4069. subtype ITEM_NAME    is STRING;
  4070.  
  4071. procedure PURGE_ITEM(
  4072.    ITEM    : in ITEM_NAME
  4073.    );
  4074.  
  4075. -- ITEM    : Name of the item(s) to be purged in the item library
  4076.  
  4077. .END LITERAL
  4078. .PARAGRAPH
  4079. The PURGE_ITEM command deletes all but the current version(s) of item(s)
  4080. from the item library.  Item specification may contain wildcard
  4081. character(s) "%*".  All items that satisfy the specification and whose ownership
  4082. requirements are satisfied will have all but their highest version(s) deleted.
  4083. .BLANK 2
  4084. .HEADER LEVEL 3^&RENAME_ITEM\&
  4085. .LITERAL
  4086.  
  4087. -- RENAME_ITEM : Rename Item in an Item Library
  4088. -- 3.02-1.0
  4089.  
  4090.  
  4091. subtype ITEM_NAME    is STRING;
  4092.  
  4093. procedure RENAME_ITEM(
  4094.    FROM_ITEM : in ITEM_NAME;
  4095.    TO_ITEM   : in ITEM_NAME
  4096.    );
  4097.  
  4098. -- FROM_ITEM : Name of the item to be renamed in the item library
  4099. -- TO_ITEM   : New item name
  4100.  
  4101. .END LITERAL
  4102. .PARAGRAPH
  4103. The RENAME_ITEM command renames an item in the item library.
  4104. The item name specification may not contain wildcard character "%*".
  4105. The validity of the new item name is not checked by RENAME_ITEM.
  4106. Invalid item name (ie. name that may not conform to 
  4107. the file name specification of the file system on which the library
  4108. manager resides) will make the item unretrievable by FETCH_ITEM
  4109. operation which will attempt to create an external file 
  4110. with the same name as the item name being fetched.
  4111. .BLANK 2
  4112. .HEADER LEVEL 3^&RENAME_VERSION\&
  4113. .LITERAL
  4114.  
  4115. -- RENAME_VERSION : Rename Version of Item(s) in an Item Library
  4116. -- 3.02-1.0
  4117.  
  4118.  
  4119. subtype ITEM_NAME    is STRING;
  4120. subtype VERSION      is STRING;
  4121.  
  4122. procedure RENAME_VERSION(
  4123.    ITEM         : in ITEM_NAME;
  4124.    FROM_VERSION : in VERSION;
  4125.    TO_VERSION   : in VERSION
  4126.    );
  4127.  
  4128. -- ITEM         : Name of the item(s) to be renamed in the item library
  4129. -- FROM_VERSION : Version of item(s) to be renamed
  4130. -- TO_VERSION   : New version of item(s)
  4131.  
  4132. .END LITERAL
  4133. .PARAGRAPH
  4134. The RENAME_VERSION command renames a version of item(s) in the item library.
  4135. The version specification may not contain wildcard character "%*".
  4136. The current version may be specified as a null string "".
  4137. The item specification may contain wildcard characters "%*".
  4138. Inappropriate usage of this command may cause regression in the item
  4139. versions. 
  4140. .BLANK 2
  4141. .HEADER LEVEL 3^&SHOW_HISTORY\&
  4142. .LITERAL
  4143.  
  4144. -- SHOW_HISTORY : Show History of Item(s) in an Item Library
  4145. -- 3.02-1.0
  4146.  
  4147.  
  4148. subtype ITEM_NAME    is STRING;
  4149. subtype VERSION      is STRING;
  4150.  
  4151. procedure SHOW_HISTORY(
  4152.    ITEM    : in ITEM_NAME    := "*";
  4153.    VERSION : in VERSION      := ""
  4154.    );
  4155.  
  4156. -- ITEM    : Name of the item to list
  4157. -- VERSION : Version specification
  4158.  
  4159. .END LITERAL
  4160. .PARAGRAPH
  4161. The SHOW_HISTORY command lists all history descriptions associated with
  4162. all version(s) of item(s) that satisfy the condition specified by
  4163. Item and Version.
  4164. Both Item and Version may contain wildcard character(s) "%*".
  4165. The current version is specified by a null string "".
  4166. .BLANK 2
  4167. .HEADER LEVEL 3^&ADD_PROPERTY\&
  4168. .LITERAL
  4169.  
  4170. -- ADD_PROPERTY : Add a Property Keyword/Value to the Item Library
  4171. -- 3.02-1.0
  4172.  
  4173.  
  4174. procedure ADD_PROPERTY(
  4175.    KEYWORD : in STRING;
  4176.    VALUE   : in STRING
  4177.    );
  4178.  
  4179. -- KEYWORD : Property keyword
  4180. -- VALUE   : Property value
  4181.  
  4182. .END LITERAL
  4183. .PARAGRAPH
  4184. The ADD_PROPERTY command is used to associate a new keyword/value property 
  4185. description to an item library.  The property keyword to be added must
  4186. not exist.  Both the keyword and the value must be an Ada identifier.
  4187. .BLANK 2
  4188. .HEADER LEVEL 3^&DELETE_PROPERTY\&
  4189. .LITERAL
  4190.  
  4191. -- DELETE_PROPERTY : Delete a Property Keyword from the Item Library
  4192. -- 3.02-1.0
  4193.  
  4194.  
  4195. procedure DELETE_PROPERTY(
  4196.    KEYWORD : in STRING
  4197.    );
  4198.  
  4199. -- KEYWORD : Property keyword
  4200.  
  4201. .END LITERAL
  4202. .PARAGRAPH
  4203. The DELETE_PROPERTY command is used to delete a property description
  4204. associated with an item library.  The property keyword to be delete must
  4205. exist.  The keyword must be an Ada identifier.
  4206. .BLANK 2
  4207. .HEADER LEVEL 3^&MODIFY_PROPERTY\&
  4208. .LITERAL
  4209.  
  4210. -- MODIFY_PROPERTY : Change a Property Keyword/Value in the Item Library
  4211. -- 3.02-1.0
  4212.  
  4213.  
  4214. procedure MODIFY_PROPERTY(
  4215.    KEYWORD : in STRING;
  4216.    VALUE   : in STRING
  4217.    );
  4218.  
  4219. -- KEYWORD : Property keyword
  4220. -- VALUE   : Property value
  4221.  
  4222. .END LITERAL
  4223. .PARAGRAPH
  4224. The MODIFY_PROPERTY command is used to change the value of a property 
  4225. description keyword associated with an item library.
  4226. The property keyword whose value is to be changed must exist.
  4227. Both the keyword and the value must be an Ada identifier.
  4228. .BLANK 2
  4229. .HEADER LEVEL 3^&LIST_PROPERTY\&
  4230. .LITERAL
  4231.  
  4232. -- LIST_PROPERTY : List Property Keyword/Value in the Item Library
  4233. -- 3.02-1.0
  4234.  
  4235.  
  4236. procedure LIST_PROPERTY(
  4237.    KEYWORD : in STRING       := "*"
  4238.    );
  4239.  
  4240. -- KEYWORD : Property keyword
  4241.  
  4242. .END LITERAL
  4243. .PARAGRAPH
  4244. The LIST_PROPERTY command lists keyword/value property description(s)
  4245. associate with an item library.  The keyword may contain wildcard character(s)
  4246. "%*" but otherwise must be an Ada identifier.
  4247. .BLANK 2
  4248. .HEADER LEVEL 3^&ENTER_LIBRARY\&
  4249. .LITERAL
  4250.  
  4251. -- ENTER_LIBRARRY : Enter a Given Item Library
  4252. -- 3.02-1.0
  4253.  
  4254.  
  4255. subtype LIBRARY_NAME is STRING;
  4256.  
  4257. procedure ENTER_LIBRARY(
  4258.    LIBRARY : in LIBRARY_NAME
  4259.    );
  4260.  
  4261. -- LIBRARY : Name of the item library
  4262.  
  4263. .END LITERAL
  4264. .PARAGRAPH
  4265. The ENTER_LIBRARY command sets the given library as a current item library.
  4266. All subsequent commands will operate on the given library.  A null library
  4267. name resets the current library to the library for which the Interactive
  4268. Library Manager was invoked.
  4269. .PAGE
  4270. .HEADER LEVEL 2^&Examples\&
  4271. .PARAGRAPH
  4272. The following sequence of commands describe a typical item library
  4273. operations for creating and manipulating an item library.  Assume that
  4274. there are three (3) files called FILE1.ADA, FILE2.SPC, and FILE2.BDY and
  4275. one wishes to create an item library PROJECT_LIBRARY.
  4276. .BLANK
  4277. .LITERAL
  4278.      CREATE_LIBRARY ("PROJECT_LIBRARY", "[.PLIB]");
  4279.           -- create a library PROJECT_LIBRARY in a directory
  4280.           -- PLIB relative to the current directory (VAX/VMS notation)
  4281.      LIBRARY_MANAGER ("PROJECT_LIBRARY", "=>");
  4282.           -- enter the interactive library manager for PROJECT_LIBRARY
  4283.           -- prompt string is =>
  4284.        => ADD_PROPERTY ("PROGRAMMER", "JOHN");
  4285.        => ADD_PROPERTY ("LANGUAGE", "ADA");
  4286.        => ADD_PROPERTY ("PROJECT", "XXX_123");
  4287.           -- give the library properties with appropriate values
  4288.        => CREATE_ITEM ("FILE1.ADA", "Description of FILE1");
  4289.        => CREATE_ITEM ("FILE2.SPC", "Description of FILE2 Spec");
  4290.        => CREATE_ITEM ("FILE1.ADA", "Description of FILE2 Body");
  4291.           -- create items in the library with descriptions
  4292.           -- associated with each item
  4293.        EXIT;
  4294.           -- exit the interactive library manager
  4295.           --
  4296.           -- now there is a need to change FILE2.BDY
  4297.           --
  4298.      FETCH_ITEM ("PROJECT_LIBRARY", "FILE2.BDY", UPDATE);
  4299.           -- check FILE2.BDY out of the library for update
  4300.           -- change FILE2.BDY using any editor
  4301.      RETURN_ITEM ("PROJECT_LIBRARY", "FILE2.BDY", "Change description");
  4302.           -- check FILE2.BDY back into the library
  4303.           -- now there will be two versions of FILE2.BDY in the library
  4304. .END LITERAL
  4305. .BLANK 2
  4306. .HEADER LEVEL 2^&Bugs\&
  4307. .PARAGRAPH
  4308. External interrupt(s) during item library management operations may cause
  4309. abnormal behavior.
  4310. .PAGE
  4311. ::::::::::::::
  4312. paginate.rno
  4313. ::::::::::::::
  4314. .PAGE
  4315. .HEADER LEVEL 1^&Document Printer\&
  4316. .BLANK
  4317. .HEADER LEVEL 2^&Description\&
  4318. .BLANK
  4319. .PARAGRAPH
  4320. The Document Printer produces a page separated output file from
  4321. any number of input files.  The page header and footer lines may be
  4322. specified as well as the output page size, margin setting, and line numbering.
  4323. .BLANK
  4324. .HEADER LEVEL 2^&Document Printer Command Format\&
  4325. .LITERAL
  4326.  
  4327. -- PAGINATE : Formats file(s) as specified
  4328. -- 3.02-1.00
  4329.  
  4330.  
  4331. subtype FILE_NAME   is STRING;
  4332. type    SOURCE_LIST is array (POSITIVE range <>) of FILE_NAME;
  4333. subtype PAGE_TYPE   is INTEGER range 1 .. 999;
  4334. subtype MARGIN_TYPE is INTEGER range 0 .. 20;
  4335. type    SWITCH      is (ON, OFF);
  4336.  
  4337. procedure PAGINATE(
  4338.    SOURCE_LIST : in SOURCE_LIST;
  4339.    OUTPUT      : in FILE_NAME;
  4340.    HEADER      : in STRING      := "~F(L50) ~D  ~T   Page ~P(R3)";
  4341.    FOOTER      : in STRING      := "";
  4342.    PAGE        : in PAGE_TYPE   := 60;
  4343.    MARGIN      : in MARGIN_TYPE := 0;
  4344.    NUMBER      : in SWITCH      := OFF
  4345.    );
  4346.  
  4347. -- SOURCE_LIST : List of file name(s) to be formatted
  4348. -- OUTPUT      : Output file name (defaults to standard output)
  4349. -- HEADER      : Header text
  4350. -- FOOTER      : Footer text
  4351. -- PAGE        : Number of lines per page (excluding header/footer)
  4352. -- MARGIN      : Left margin size
  4353. -- NUMBER      : Line numbering
  4354.  
  4355. .END LITERAL
  4356. .PARAGRAPH
  4357. The header/footer text may contain substitution sequence(s) as place holder(s)
  4358. for actual data to be inserted in the output file.
  4359. The substitution sequence is defined by an escape character tilde (%~) followed
  4360. by a substitution character and may be followed by an optional alignment
  4361. specification consisting of an alignment character and a numeric field size.
  4362. The general format of the substitution sequence is %~S(Ann) where S is the
  4363. substitution character and A is the alignment character followed by a
  4364. number nn.
  4365. .PAGE
  4366. The valid substitution characters are:
  4367. .BLANK
  4368. .LITERAL
  4369.      F : output external file name
  4370.      P : current page number
  4371.      D : current date (eg. 03/15/86)
  4372.      C : current calendar date (eg. March 15, 1986)
  4373.      T : current time (eg. 04:53:32)
  4374. .END LITERAL
  4375. .BLANK
  4376. .PARAGRAPH
  4377. The valid optional alignment character A are:
  4378. .BLANK
  4379. .LITERAL
  4380.      L : left align the text
  4381.      R : right align the text
  4382.      C : center the text
  4383. .END LITERAL
  4384. .BLANK
  4385. The nn following the alignment character specifies the number of spaces the
  4386. text will displace in the header/footer text.  The case is not significant
  4387. after the escape character tilde (%~).  If the escape character is followed by
  4388. any character other than a valid substitution character the tilde will not
  4389. be printed and no substitution is performed.  To print a tilde character
  4390. in the output header/footer two (2) consecutive tilde characters must be
  4391. written in the header/footer specification.
  4392. .PAGE
  4393. .HEADER LEVEL 2^&Examples\&
  4394. .PARAGRAPH
  4395. The following example takes three (3) files FILE1..DAT, 
  4396. FILE2..DAT, and FILE3..DAT as input (SOURCE_LIST) and creates a paginated
  4397. output file FILES..OUT (OUTPUT).
  4398. The header (HEADER) consists of the output file name left aligned to
  4399. 60 characters followed by the date and time.
  4400. The footer (FOOTER) consists of the page number centered in the middle
  4401. of the page.
  4402. The whole text is offset (MARGIN) by five (5) characters at the left margin.
  4403. .BLANK
  4404. .LITERAL
  4405.      PAGINATE ( SOURCE_LIST => ("FILE1.DAT", "FILE2.DAT", "FILE3.DAT"),
  4406.                 OUTPUT      => "FILES.OUT",
  4407.                 HEADER      => "~F(L60) ~D  ~T",
  4408.                 FOOTER      => "~P(C80)",
  4409.                 MARGIN      => 5);
  4410. .END LITERAL
  4411. .PAGE
  4412. .HEADER LEVEL 2^&Bugs\&
  4413. .PARAGRAPH
  4414. There are no known bugs.
  4415. .PAGE
  4416. ::::::::::::::
  4417. release.nts
  4418. ::::::::::::::
  4419. 11-APR-86    Initial release built on Super-HIF.
  4420.         Know Super-HIF problem : No mutiple processes in a single
  4421.                                  HIF at one time.
  4422. ::::::::::::::
  4423. title.mem
  4424. ::::::::::::::
  4425.  
  4426.  
  4427.  
  4428.  
  4429.  
  4430.  
  4431.  
  4432.  
  4433.  
  4434.  
  4435.  
  4436.  
  4437.  
  4438.  
  4439.  
  4440.  
  4441.  
  4442.  
  4443.                    DOCUMENTATION SYSTEM USER GUIDE