144 lines
3.4 KiB
Plaintext
Executable File
144 lines
3.4 KiB
Plaintext
Executable File
*******************************************************************************
|
|
*
|
|
* Change spooler options
|
|
*
|
|
* Module %M% Version %I% Date %H%
|
|
*
|
|
* (c) Copyright 1998 Ardent Software Inc. - All Rights Reserved
|
|
* This is unpublished proprietary source code of Ardent Software Inc.
|
|
* The copyright notice above does not evidence any actual or intended
|
|
* publication of such source code.
|
|
*
|
|
*******************************************************************************
|
|
*
|
|
* Maintenence log - insert most recent change descriptions at top
|
|
*
|
|
* Date.... GTAR# WHO Description.........................................
|
|
* 10/14/98 23801 SAP Change copyrights.
|
|
* 08/29/96 19148 SAP Port Release 8.3.3 to ICL
|
|
* 08/18/96 18335 MAA Add new code to port 9 to Siemens Nixdorf.
|
|
* 08/27/92 8943 PVW Allow MD format of SP-ASSIGN =formname {options}
|
|
* 04/24/91 8257 JWT Ignore option M
|
|
* 05/07/90 7065 JWT added D option to fill in defaults
|
|
* 07/25/88 - - Maintenence log purged at 5.2.1, see release 5.1.10.
|
|
*
|
|
*******************************************************************************
|
|
|
|
$OPTIONS DEFAULT
|
|
INCLUDE UNIVERSE.INCLUDE MACHINE.NAME
|
|
|
|
command.line = trim(@sentence)
|
|
assign.command = field(command.line," ",1)
|
|
options = field(command.line," ",2,999)
|
|
|
|
H.flag=0
|
|
S.flag=0
|
|
O.flag=0
|
|
D.flag=0
|
|
copies=0
|
|
form = ""
|
|
unit =0
|
|
display= 0
|
|
mode =1
|
|
if UV.MACHINE = "RM600" then optionnum=0 else optionnum=1
|
|
*
|
|
* check for MD format
|
|
*
|
|
test = field(options," ",1)
|
|
if test[1,1] = "="
|
|
then
|
|
* setptr only accepts a form of upto six characters
|
|
* but take 999 so that wrong for name is not assigned
|
|
form = test[2,999]
|
|
options = field(options," ",2,999)
|
|
end
|
|
|
|
ol=len(options)
|
|
for i=1 to ol
|
|
c=options[i,1]
|
|
begin case
|
|
case num(c)
|
|
copies=c
|
|
loop
|
|
c=options[i+1,1]
|
|
while c#"" and num(c)
|
|
copies:=c
|
|
i+=1
|
|
repeat
|
|
case c="?"
|
|
display=if ol=1 then 1 else 2
|
|
case c=" " or c="," or c="(" or c=")" or c="C" or c="I"
|
|
NULL
|
|
case c="D"
|
|
D.flag=1
|
|
case c="F" or c="Q"
|
|
* option Fn or Qn which is set equal to FORM #
|
|
form=""
|
|
loop
|
|
c=options[i+1,1]
|
|
while c#"" and num(c)
|
|
form:=c
|
|
i+=1
|
|
repeat
|
|
case c="R"
|
|
* this option set unit number
|
|
unit=""
|
|
loop
|
|
c=options[i+1,1]
|
|
while c#"" and num(c)
|
|
unit:=c
|
|
i+=1
|
|
repeat
|
|
case c="H"
|
|
H.flag=1
|
|
case c="S"
|
|
S.flag=1
|
|
case c="I"
|
|
print "The 'I' option is not supported."
|
|
case c="O"
|
|
O.flag=1
|
|
case c="T"
|
|
form="TAPE"
|
|
case c="M"
|
|
* Ignore this option for IN2 compatability
|
|
if UV.MACHINE = "RM600" then optionnum=1
|
|
case 1
|
|
print "Illegal option ":quote(c)
|
|
end case
|
|
next i
|
|
|
|
if display # 1 then
|
|
|
|
if form = "TAPE" then S.flag = 0
|
|
opt=""
|
|
begin case
|
|
case S.flag and H.flag
|
|
opt := ",RETAIN,HOLD"
|
|
case H.flag
|
|
opt := ",RETAIN,NOHOLD"
|
|
case S.flag
|
|
mode="NULL"
|
|
opt := ",NORETAIN,NOHOLD"
|
|
case 1
|
|
opt := ",NORETAIN,NOHOLD"
|
|
end case
|
|
|
|
if O.flag then opt:=",KEEP" else opt:=",NOKEEP"
|
|
if copies > 0 then opt:=",COPIES ":copies else opt:=",COPIES 0"
|
|
if form # "" then opt:=",FORM ":form else opt:=",FORM"
|
|
|
|
if D.flag
|
|
then opt := ",INFORM,BRIEF"
|
|
else
|
|
if optionnum
|
|
then opt := ",NODEFAULT,INFORM,BRIEF"
|
|
else opt := ",NODEFAULT,BRIEF"
|
|
end
|
|
execute "SETPTR ":unit:",,,,,":mode:opt
|
|
|
|
end
|
|
|
|
if display then execute "SETPTR ":unit
|
|
|
|
end
|