IDENTIFICATION DIVISION. PROGRAM-ID. UTL565. AUTHOR. B. Wallis. INSTALLATION. Fleetwood Enterprises, Inc. DATE-WRITTEN. 9-Mar-84. ****************************************************************************** * * PROGRAM FUNCTIONS: * This subprogram will spawn a subprocess which will execute whatever * command it is given. * * PROGRAM OPTIONS: * None. * * PROGRAM MODIFICATIONS: * * AUTHOR T. MOORE * DATE 21-MAY-86 * VERSION 1-D * * PROGRAM CHANGES: * Delete use of mailboxes during spawn. Use ATTACH * to execute the transaction. * ****************************************************************************** ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. VAX-11. OBJECT-COMPUTER. VAX-11. DATA DIVISION. WORKING-STORAGE SECTION. 01 PROG-ID PIC X(9) VALUE "UTL565-1D". 01 CNT PIC S9(9) COMP. 01 FIRST-TIME-SW PIC X(1) VALUE "T". 88 FIRST-TIME VALUE "T". 88 NOT-FIRST-TIME VALUE "F". 01 NOWAIT-MASK PIC S9(9) COMP VALUE EXTERNAL CLI$M_NOWAIT. 01 PROCESS-ID PIC S9(9) COMP. 01 RETURN-STATUS PIC S9(9) COMP. 01 SS-NORMAL PIC S9(9) COMP VALUE EXTERNAL SS$_NORMAL. 01 COMMAND-LOGICAL PIC X(11) VALUE "UTL_COMMAND". 01 LOGICAL-TABLE PIC X(7) VALUE "LNM$JOB". 01 SPAWN-COMMAND PIC X(19) VALUE "@JOBS:UTLATTACH.JOB". LINKAGE SECTION. 01 COMMAND-STRING PIC X(127). 01 SUBPROCESS-RETURN-STATUS PIC S9(9) COMP. PROCEDURE DIVISION USING COMMAND-STRING, SUBPROCESS-RETURN-STATUS GIVING RETURN-STATUS. MAIN SECTION. 001-MAIN. IF FIRST-TIME PERFORM 130-SPAWN-SUBPROCESS THRU 130-EXIT IF RETURN-STATUS IS SUCCESS SET NOT-FIRST-TIME TO TRUE PERFORM 200-SEND-OUT-COMMAND THRU 200-EXIT END-IF ELSE PERFORM 200-SEND-OUT-COMMAND THRU 200-EXIT END-IF. * * We can no longer get the subprocess return status so we will always * return success. * MOVE SS-NORMAL TO SUBPROCESS-RETURN-STATUS. EXIT PROGRAM. SUBROUTINE SECTION. 130-SPAWN-SUBPROCESS. CALL "LIB$SPAWN" USING BY DESCRIPTOR SPAWN-COMMAND OMITTED, OMITTED, OMITTED, OMITTED, BY REFERENCE PROCESS-ID, OMITTED, OMITTED, OMITTED, OMITTED, OMITTED, OMITTED GIVING RETURN-STATUS. 130-EXIT. 200-SEND-OUT-COMMAND. * CALL "LIB$SET_LOGICAL" USING BY DESCRIPTOR COMMAND-LOGICAL, BY DESCRIPTOR COMMAND-STRING, BY DESCRIPTOR LOGICAL-TABLE, OMITTED, OMITTED GIVING RETURN-STATUS. * IF RETURN-STATUS IS SUCCESS CALL "LIB$ATTACH" USING BY REFERENCE PROCESS-ID GIVING RETURN-STATUS. 200-EXIT.