! PRTOUT Format a SuperVUE outline document for printing.
! Author: Irwin M. Goldstein
! Written on: 11/87
! NOTE: This program is intended to be invoked through PRTOUT.DO.
! Command format:
! .PRTOUT svfile [ret]
! Where "svfile" is the name of a SuperVUE file containing
! ".section" and ".outline" commands that you want turned into
! a printable outline. A file "svfile.OUT" will be created.
! The specified SuperVUE file will be read in, converting the
! ".outline" and ".section" dot commands into a printable outline
! using SuperVUEs numbered list commands. PRTOUT will then invoke
! SuperVUE on the resulting ".OUT" file allowing manual changes and
! adjustments to be made. To print the outline, just invoke the print
! command from SuperVUE command mode.
MAP1 INPUT'FILE, S, 25 ! name of the input file
MAP1 LBUF, S, 500 ! line input from the file
MAP1 LEVEL, F, 6 ! outline/indentation level
MAP1 TEXT, S, 100 ! line of text for an outline entry
INPUT LINE INPUT'FILE ! get the name of the file to process
OPEN #1, INPUT'FILE + ".TXT", INPUT ! output of SVCPY is our input
OPEN #2, INPUT'FILE + ".OUT", OUTPUT ! create ".OUT" for output
! Setup the list element commands ad a suitable ruler for the outline:
ILOOP: INPUT LINE #1, LBUF
IF EOF(1) = 1 &
THEN GOTO DONE
! Ignore all but outline commands:
IF (UCS(LBUF[1;8]) # ".OUTLINE") AND (UCS(LBUF[1;8]) # ".SECTION") &
THEN GOTO ILOOP
! Determine the outline level:
! + means increment level by one,
! - means decrement level by one,
! @ means leave the level alone,
! a number means set the level to that number
IF LBUF[10;1] = "+" &
THEN LEVEL = LEVEL + 1 &
ELSE IF LBUF[10;1] = "-" &
THEN LEVEL = LEVEL - 1 &
ELSE IF LBUF[10;1] # "@" &
THEN LEVEL = LBUF[10;2]
! Get the text of the outline entry:
TEXT = LBUF[12,LEN(LBUF)]
STRIP: IF (LEN(TEXT) > 0) AND (TEXT[1;1] = CHR(32)) &
THEN &
TEXT = TEXT[2,-1] : &
GOTO STRIP ! remove leading blanks
! Output the current outline entry:
IF LEVEL = 0 &
THEN PRINT #2, CHR(13); ! extra line between major headings
PRINT #2, SPACE(5*(LEVEL+1)-1);"% ";TEXT;CHR(13);
GOTO ILOOP
! End of input file reached, close up files & exit: