Google
 

Trailing-Edge - PDP-10 Archives - decuslib20-04 - decus/20-0131/libman.rnd
There are 2 other files named libman.rnd in the archive. Click here to see a list.
.LOWER CASE.FLAG CAPITALIZE.RIGHT MARGIN 72
.TITLE ^^LIBMAN -- A LIBRARY FILE MANIPULATION PROGRAM %3\\
.FIRST TITLE
.PARAGRAPH
<LIBMAN IS A PROGRAM TO CONSOLIDATE MULTIPLE FILES INTO A SINGLE LARGE
FILE FOR STORAGE, WITH THE ABILITY TO SUBSEQUENTLY SEPARATE THE FILES.
^USE OF <LIBMAN WILL HELP ALLEVIATE DISK STORAGE PROBLEMS DUE TO ALLOCATION
BEING DONE IN MULTIPLES OF THE CLUSTER SIZE (NORMALLY 5 BLOCKS).  ^FOR
INSTANCE, TEN ONE-BLOCK FILES COUNT FOR FIFTY BLOCKS IN TOTAL ALLOCATION.
^IF THESE WERE PLACED IN A <LIBMAN LIBRARY FILE, IT WOULD COUNT FOR THE
TEN DATA BLOCKS, AND TEN STORAGE INFORMATION BLOCKS,
FOR A TOTAL OF TWENTY BLOCKS (THIS WOULD COUNT FOR TWENTY-FIVE BLOCKS
IN TOTAL ALLOCATION).
.PARAGRAPH
^WHEN SPECIFYING FILES IN <LIBMAN COMMANDS, A FULL FILE SPECIFICATION
(DEVICE, FILE, EXTENSION, PPN, /<PROTECT:XXX, AND /<VERSION:V) MAY BE
USED.  ^HOWEVER, ONLY THE FILENAME AND THE EXTENSION HAVE SIGNIFICANCE
IN DETERMINING THE PRE-EXISTENCE OF A FILE IN THE LIBRARY.  ^DISK INPUT
AND OUTPUT FILES DEFAULT TO <DSK:[-] (YOUR DIRECTORY) UNLESS EXPLICITLY
SPECIFIED IN THE COMMAND.
.PARAGRAPH
^LIBRARIES ARE MANIPULATED BY <LIBMAN USING VERB-LIKE COMMANDS.
^COMMANDS ARE (WORD IN SQUARE BRACKETS INDICATES MINIMUM ABBREVIATION
WHICH CAN BE USED FOR A COMMAND):
.LIST
.LE;<ADD "FILES" [<A]
.BREAK
^ADD THE FILES SPECIFIED IN "FILES" TO THE CURRENT LIBRARY.
^ANY FILES ALREADY EXISTING IN THE LIBRARY WILL NOT BE ADDED, AND
A WARNING WILL BE ISSUED.  ^NO WARNING WILL BE ISSUED IF THE FILE
SPECIFCATION HAD A WILD CARD (* OR ?) IN IT.  <LIBMAN WILL NOT ALLOW
YOU TO ADD A FILE TO THE LIBRARY WHICH HAS THE SAME NAME AS THE LIBRARY
ITSELF.  ^IN ADDITION, <LIBMAN WILL CHECK THE /<BEFORE/SINCE/ABEFORE/ASINCE
SWITCH SETTINGS (IF GIVEN) FOR ANY FILES TO BE ADDED TO THE LIBRARY.
.LE;<CREATE LIBNAM [<CR]
.BREAK
^CREATE A LIBRARY WITH THE NAME LIBNAM.  ^THIS LIBRARY WILL BE USED
UNTIL THE NEXT <USE OR <CREATE COMMAND.
.LE;<COPY "FILES" [<C]
.BREAK
^COPIES THE FILES IN "FILES" OUT OF THE LIBRARY INTO THE USER'S DIRECTORY.
^IF NO OUTPUT FILES ARE SPECIFIED, THE FILES WILL HAVE THE SAME NAMES
AS THEY DO IN THE LIBRARY FILE.  ^SEE THE <DSUPERSEDE VERB DESCRIPTION.
.LE;<DELETE "FILES" [<DEL]
.BREAK
^DELETE THE FILES SPECIFIED BY "FILES" FROM THE LIBRARY.
.LE;<DIRECT <OFILE.EXT="LIST" [<DI]
.BREAK
^GIVE A DIRECTORY OF THE FILES IN "LIST" (THE WHOLE LIBRARY IF NO "LIST")
TO THE SPECIFIED <OFILE.EXT.  ^IF NO OUTPUT FILE IS SPECIFIED, THE DIRECTORY
IS PUT ON THE USER'S TERMINAL.
.LE;<DSUPERSEDE ARG [<DS]
.BREAK
^SPECIFY THE ACTION <LIBMAN IS TO TAKE WHEN A <COPY IS ISSUED TO WRITE
A DISK FILE OVER AN ALREADY EXISTING COPY.  ^IF NO <DSUPERSEDE VERB HAS
BEEN ISSUED, <LIBMAN WILL USE THE VALUE OF THE <SUPERSEDE VERB, AND IF
THAT HAS ALSO NOT BEEN ISSUED, THE DEFAULT IS <DSUPERSEDE <OLDER. ^ARG
MAY BE ONE OF:
.LIST
.LE;<ALWAYS
.BREAK
^ALWAYS SUPERSEDE THE EXISTING DISK COPY.  ^THIS PERMITS <LIBMAN TO
RUN SLIGHTLY FASTER SINCE IT DOES NOT HAVE TO CHECK THE EXISTENCE OF
THE DISK FILE.
.LE;<NEVER
.BREAK
^NEVER SUPERSEDE THE EXISTING COPY ON THE DISK.
.LE;<OLDER
.BREAK
^SUPERSEDE THE EXISTING COPY ONLY IF THE COPY OF THE FILE ON THE DISK
IS OLDER THAN THE COPY IN THE LIBRARY.  ^THIS IS THE DEFAULT IF NO
<DSUPERSEDE VERB HAS BEEN ISSUED.
.END LIST
.LE;<DVERSION "FILES" [<DV]
.BREAK
^THIS COMMAND ALLOWS YOU TO SET THE VERSION OR PROTECTION OF DISK
FILES NOT IN THE LIBRARY.  ^IT ALLOWS WILDCARDING, BUT DOES NOT ALLOW
FOR FILENAME OR EXTENSION RENAMEING.  ^YOU MAY ONLY CHANGE THE PROTECTION
AND/OR THE VERSION OF THE FILES WITH THIS COMMAND.
.LE;<FILDIR (COMMAND) [<F]
.BREAK
^RUN <DIRECT TO GET A DISK FILE DIRECTORY.  (^COMMAND) MAY CONSIST OF
ANYTHING THAT IS LEGAL ON THE INPUT SIDE OF A <DIRECT COMMAND (I.E. /^F/^W OR
*.<REL, ETC.).  <DIRECT WILL RERUN <LIBMAN WHEN IT IS DONE.  ^THE LAST
LIBRARY USED WILL BE REMEMBERED (SEE COMMAND NOTES).
.LE;<LSUPERSEDE ARG [<LS]
.BREAK
^SPECIFY THE ACTION <LIBMAN IS TO TAKE WHEN ^^REPLACE\\ING FILES IN THE
LIBRARY WITH THE <REPLACE COMMAND.  ^IF NO <LSUPERSEDE VERB HAS BEEN
ISSUED, THE VALUE OF THE <SUPERSEDE VERB IS USED.  ^IF NO <SUPERSEDE
HAS BEEN GIVEN, THE DEFAULT IS <LSUPERSEDE OLDER.  ^ARG MAY BE ONE OF:
.LIST
.LE;<ALWAYS
.BREAK
^ALWAYS SUPERSEDE THE COPY IN THE LIBRARY WITH THE DISK COPY.
.LE;<OLDER
.BREAK
^ONLY SUPERSEDE THE COPY IN THE LIBRARY IF IT IS OLDER THAN THE COPY
ON THE DISK.
.END LIST
.LE;<ONEOUT OFILE.EXT="LIST" [<ON]
.BREAK
^CREATE THE SPECIFIED OUTPUT FILE WHICH IS A CONCATENATION OF THE SPECIFIED
INPUT FILES.
.LE;<READ <LIBNAM [<REA]
.BREAK
^SETUP TO USE THE SPECIFIED LIBRARY FILE IN READ-ONLY MODE.  ^THIS ALLOWS
YOU TO EXTRACT FILES, TYPE FILES, AND GET DIRECTORIES OF LIBRARIES IN
AN AREA IN WHICH YOU CANNOT WRITE (<LIBMAN CHECKS WRITE-ACCESS PRIVS FOR
<USE AND <CREATE COMMANDS) OR ON DEVICES OTHER THAN DISK (<LIBMAN WILL
NOT <ADD OR <DELETE FILES ON DEVICES OTHER THAN DISK).
.LE;<REPLACE "FILES" [<R]
.BREAK
^FOR EACH FILE IN THE LIST OF "FILES", REPLACE THE EXISTING COPY
IN THE LIBRARY WITH THE NEW COPY.  ^THIS ACTION IS CONTROLLED BY
THE <LSUPERSEDE VERB.
.LE;<REMEMBER [<REM]
.BREAK
^SPECIFY WHETHER TO <REMEMBER THE LIBRARY FILENAME OR NOT.  ^USE
<NOREMEMBER (DEFAULT) [<NOREM] TO NOT REMEMBER LIBRARY FILENAMES (<LIBMAN WILL RUN
A BIT FASTER, BUT WILL BE SLIGHTLY DUMBER).
.LE;<RENAME <NEWFIL.<EXT=<OLDFIL.<EXT [<REN]
.BREAK
^RENAME THE FILE <OLDFIL.<EXT IN THE LIBRARY TO <NEWFIL.<EXT.
^YOU ARE ABLE TO CHANGE THE FILENAME, EXTENSION, PROTECTION, AND VERSION
OF A FILE IN THE LIBRARY WITH THIS COMMAND.
.LE;<SUPERSEDE ARG [<S]
.BREAK
^SPECIFIES THE ACTION <LIBMAN IS TO TAKE WHEN A <COPY OR <REPLACE COMMAND
IS DONE:
.LIST
.LE;<ALWAYS
.BREAK
^ALWAYS REPLACE THE EXISITING COPY.
.LE;<OLDER
.BREAK
^COPY: COPY THE FILE ONLY IF THE EXISTING COPY ON DISK IS OLDER THAN
THE COPY IN THE LIBRARY. ^REPLACE: REPLACE THE COPY IN THE LIBRARY ONLY
IF THE LIBRARY COPY IS OLDER THAN THE COPY ON DISK.
.LE;<NEVER
.BREAK
^NEVER REPLACE THE EXISTING COPY.
.END LIST
.LE;<TYPE "FILES" [<T]
.BREAK
^TYPE THE SPECIFIED FILES ON THE TELETYPE.
.LE;<USE LIBNAME [<U]
.BREAK
^SUBSEQUENT LIBRARY MANIPULATION COMMANDS WILL BE APPLIED TO THE SPECIFIED
LIBRARY FILE.
.END LIST
.BLANK 3
.CENTER;^^COMMAND NOTES\\
.LIST
.LE;^NO LIBRARY MANIPULATION COMMANDS ARE LEGAL UNTIL A <CREATE OR <USE
COMMAND HAS BEEN GIVEN.
.LE;^THE DEFAULT EXTENSION FOR LIBRARY FILES IS .<LIB.  ^IT IS RECOMMENDED
THAT THE USER NOT SUPPLY EXTENSIONS FOR HIS LIBRARY FILES SO THE DEFAULT
WILL BE USED.
.LE;<LIBMAN WILL REMEMBER THE LAST LIBRARY SPECIFIED IN A <USE OR
<CREATE COMMAND IF /<REMEMBER IS SPECIFIED.  <LIBMAN WILL WRITE A FILE NNN<LRL.TMP, WHICH IT 
WILL TRY TO READ WHEN <LIBMAN IS RUN.  ^THUS, ONE MAY ISSUE A <FILDIR
COMMAND TO GET A DISK DIRECTORY, AND THEN WHEN CONTROL IS RETURNED TO
<LIBMAN, ONE MAY CONTINUE AS IF THE <USE COMMAND HAS ALREADY BEEN ISSUED.
.END LIST
.PAGE
.CENTER;^^EXAMPLES\\
.LIST
.LE;^CREATE A LIBRARY AND ADD FILES TO IT
.BREAK.NOJUST.NOFILL
_.^R <LIBMAN				;RUN <LIBMAN
<CREATE <LIBRAR				;CREATE A LIBRARY NAMED
					;LIBRAR.LIB
<ADD MYPROG.*,FOR01.DAT,*.LST		;ADD ALL FILES IN THE
					;USER'S DIRECTORY WHICH
					;MATCH THE FILE SPECS
.FILL.JUST
.LE;^RENAMING FILES IN A LIBRARY
.BREAK.NOJUST.NOFILL
<RENAME *.ABC=*.DEF			;<RENAMES ALL FILES WITH
					;EXTENSION *.DEF TO HAVE
					;EXTENSION .ABC.
<RENAME *.SRC/PROT:155			;CHANGE THE PROTECTION
					;OF ALL FILES WITH
					;EXTENSION .SRC TO BE
					;_<155_>.
<RENAME *.*/VERSION:1(3)		;CHANGE THE VERSION
					;OF ALL FILES IN THE
					;LIBRARY TO 1(3).
.JUST.FILL
.LE;^COPYING FILES OUT OF THE LIBRARY
.NOJUST.NOFILL
<COPY *.SRC				;COPY ALL FILES IN THE
					;LIBRARY WITH EXTENSION
					;.SRC TO THE USER'S
					;DIRECTORY.
<COPY X.*=Y.*				;COPY ALL FILES FROM
					;THE LIBRARY WITH 
					;FILENAME Y AND ANY
					;EXTENSION TO THE
					;USER'S DIRECTORY AND
					;CHANGE THE FILENAME
					;TO X.
.END LIST
.PAGE
.CENTER;^^LIBMAN MESSAGES\\
^ERROR MESSAGES:
.BREAK
.LIST
.LE;^^?LIBBDL BAD DEVICE FOR LIBRARY OR NOT READING\\
.BREAK
^CURRENTLY, <LIBMAN ONLY OPERATES ON <DISK FILES.  ^IT IS PLANNED IN
A FUTURE VERSION TO ALSO SUPPORT ^^DEC\\TAPE.
.LE;^^?LIBCFL CAN'T FIND LIBRARY\\
.BREAK
^THIS MESSAGE IS ISSUED WHEN TWO SUCCESSIVE <LOOKUP'S ON A FILE ARE ISSUED
AND THE SECOND ONE FAILS.  ^THIS MESSAGE IS NOT EXPECTED TO OCCUR.
.BREAK
.LE;^^?LIBCOD CAN'T OPEN DEVICE, FILE DEV:FILE.EXT[P,PN]\\
.BREAK
<LIBMAN WAS UNABLE TO OPEN THE DEVICE TO USE THE SPECIFIED LIBRARY.
.LE;^^?LIBCWL CAN'T WRITE LIBRARY DEV:FILE.EXT[P,PN]\\
.BREAK
^YOU DO NOT HAVE PRIVELEDGES TO WRITE THE SPECIFIED LIBRARY FILE.
.LE;^^?LIBCWT CAN'T WRITE TMPFILE FOR DIRECT\\
.BREAK
<LIBMAN WAS UNABLE TO WRITE NNN^^DIR.TMP\\ TMPFILE FOR <DIRECT.
^THE <FILDIR COMMAND IS ABORTED.
.LE;^^?LIBIFL INCORRECTLY FORMATTED LIBRARY AT BLOCK N\\
.BREAK
<LIBMAN FOUND THAT BLOCK N DID NOT CONTAIN THE FILE INFORMATION BLOCK,
OR AN UNEXPECTED END-OF-FILE WAS DETECTED IN BLOCK N OF THE LIBRARY, WHICH
SHOULD HAVE CONTAINED FILE DATA.
.LE;^^?LIBLDE LIBRARY DIR EMPTY\\
.BREAK
<A CALL WAS MADE TO MAKE A LST OF FILES WITH AN EMPTY LIBRARY DIRECTORY.
^THIS MESSAGE IS NOT EXPECTED TO OCCUR.  ^PLEASE SHOW THE TERMINAL SESSION
TO THE MAINTAINER.
.LE;^^?LIBLER LOOKUP/ENTER ERROR (N) FILE DEV:FILE.EXT[P,PN]\\
.BREAK
<LIBMAN WAS UNABLE TO <LOOKUP/<ENTER THE SPECIFIED FILE.  ^THE <LOOKUP/<ENTER
ERROR CODE IS N.
.LE;^^?LIBLIE LIBRARY IS EMPTY\\
.BREAK
^YOU HAVE ATTEMPTED TO USE THE <COPY, <DELETE, <DIRECT, <ONEOUT, <REPLACE,
<RENAME, OR <TYPE COMMANDS ON A NULL LIBRARY FILE OR A LIBRARY WHICH
HAS NOT YET BEEN CREATED.
.LE;^^?LIBNUC NO 'USE' COMMAND\\
.BREAK
^YOU HAVE ATTEMPTED TO USE A LIBRARY MANIPULATION COMMAND WITHOUT ISSUING
A <CREATE, <READ, OR <USE COMMAND TO SPECIFY THE LIBRARY FILE.
.LE;^^?LIBWFI WILD CARD FILESPEC ILLEGAL, FILE DEV:FILE.EXT[P,PN]\\
.BREAK
<LIBMAN DOES NOT SUPPORT WILD CARDING FOR LIBRARY FILE SPECIFICATIONS.
^ALL OTHER FILE SPECIFICATIONS (I.E. IN ANY COMMAND OTHER THAN <CREATE,
<READ, OR <USE) MAY CONTAIN WILD CARDING ON THE INPUT FILES.
.END LIST
.BLANK 1
^WARNING MESSAGES:
.LIST
.LE;^^%LIBCDB CAN'T DO BINARY I/O TO DEV:FILE.EXT[P,PN]\\
.BREAK
^THE <ONEOUT COMMAND MUST HAVE AS ITS OUTPUT DEVICE ONE WHICH CAN
DO <BINARY I/O.
.LE;^^%LIBCRE FILE NOT FOUND - ASSUME CREATING DEV:FILE.EXT[P,PN]\\
.BREAK
^A <USE COMMAND WAS ISSUED FOR A NON-EXISTANT LIBRARY.  <LIBMAN IS
TREATING IT AS A <CREATE COMMAND.
.LE;^^%LIBDOE DEVICE OPEN ERROR ON DEV:FILE.EXT[P,PN]\\
.BREAK
<LIBMAN WAS UNABLE TO OPEN THE SPECIFIED DEVICE TO <LOOKUP THE FILE
FOR THE <REPLACE COMMAND.  ^THE SPECIFIED FILE WILL NOT BE REPLACED IN 
THE LIBRARY AND THE ORIGINAL FILE IN THE LIBRARY WILL REMAIN INTACT.
.LE;^^%LIBECL I/O ERROR CLOSING LIBRARY - \\NNNNNN
.BREAK

<LIBMAN DETECTED AN ERROR WHEN CLOSING A LIBRARY FILE AFTER WRITING INTO
IT.  ^THE I/O ERROR STATUS IS NNNNNN.  ^THE VALIDITY OF THE DATA IN THE
LIBRARY IS QUESTIONABLE.
.LE;^^%LIBFAL FILE ALREADY IN LIBRARY - DEV:FILE.EXT[P,PN] - IGNORING\\
.BREAK
^YOU HAVE SPECIFIED EXPLICITLY A FILE TO ADD TO THE LIBRARY, AND THE FILE
IS ALREADY IN THE LIBRARY.  ^NOTE THAT THIS MESSAGE IS NOT ISSUED IF THE
FILE SPECIFICATION CONTAINING THIS FILE (IN YOUR COMMAND STRING) CONTAINED
WILD CARDS (? OR *).  ^IN EITHER CASE THE FILE IS NOT ADDED TO THE LIBRARY.
.LE;^^%LIBFNC FILE NOT COPIED: DEV:FILE.EXT[P,PN]/SUPERSEDE:ARG\\
.BREAK
^THE SPECIFIED FILE WAS NOT COPIED DUE TO THE GIVEN VALUE OF THE /<SUPERSEDE
OR /<DSUPERSEDE SWITCH.
.LE;^^%LIBFNR FILE NOT REPLACED: DEV:FILE.EXT[P,PN]/SUPERSEDE:ARG\\
.BREAK
^THE SPECIFIED FILE WAS NOT REPLACED IN THE LIBRARY DUE TO THE VALUE
OF THE /<LSUPSERSEDE OR /<SUPERSEDE SWITCH.
.LE;^^%LIBFRE FILE RENAME ERROR ON DEV:FILE.EXT[P,PN] _<REASON_>\\
.BREAK
<LIBMAN RECEIVED AN ERROR RETURN ON THE <RENAME OF THE SPECIFIED FILE
WITH THE <DVERSION COMMAND.  <REASON IS AN ENGLISH EXPLANATION OF THE
ERROR.
.LE;^^%LIBIOE I/O ERROR - STATUS=NNNNNN\\
.BREAK
<LIBMAN HAS DETECTED AN I/O ERROR.  ^THE VALIDITY OF THE OPERATION IN
PROGRESS IS HIGHLY QUESTIONABLE, AND SHOULD PROBABLY BE ABORTED IMMEDIATELY.
.LE;^^%LIBLAE LIBRARY ALREADY EXISTS\\
.BREAK
^A <CREATE COMMAND WAS ISSUED TO CREATE A LIBRARY WHICH ALREADY
EXISTS.  ^ANY <ADD COMMANDS WILL CAUSE THE EXISTING LIBRARY TO
BE OVERWRITTEN.  ^IF THIS IS ISSUED TO A LIBRARY TO WHICH YOU HAVE
NO PRIVELEDGES TO WRITE, THIS MESSAGE WILL BE FOLLOWED BY ?^^LIBCWL\\
MESSAGE.
.LE;^^%LIBNFM NO FILES FOUND TO MATCH DEV:FILE.EXT\\
.BREAK
<LIBMAN COULD NOT FIND ANY FILES TO MATCH THE SPECIFIED INPUT
FILES ON THE <COPY, <DELETE, <REPLACE, <TYPE, <ONEOUT, OR <DVERSION
COMMANDS.
.LE;^^%LIBRFE RENAME FILE EXISTS - FILE.EXT\\
.BREAK
^YOU HAVE ATTEMPTED TO RENAME A FILE IN THE LIBRARY TO A FILENAME WHICH
ALREADY EXISTS IN THE LIBRARY (<LIBMAN WILL ALLOW YOU TO RENAME A FILE TO
ITSELF).
.LE;^^%LIBRLE REPLACE LOOKUP ERROR ON DEV:FILE.EXT[P,PN] _<REASON_>\\
.BREAK
<LIBMAN WAS UNABLE TO <LOOKUP THE SPECIFIED FILE TO DO A <REPLACE COMMAND.
^THE EXISTING COPY OF THE FILE IN THE LIBRARY REMAINS UNCHANGED.
.END LIST