$DEBUG PAGEWIDTH(80) PAGELENGTH(50) /****************************************************/ /* */ /* MODULE NAME - M$FIRST$PARM */ /* */ /* FUNCTION - CONTAINES 'FIRST$PARM' PROCEDURE */ /* */ /****************************************************/ M$FIRST$PARM: DO; $NOLIST $INCLUDE(COMMON.DCL) $LIST $INCLUDE(STRING.DCL) DELIMITER: PROCEDURE(CHAR,WILDCARD) BOOLEAN EXTERNAL; DECLARE CHAR BYTE, WILDCARD BOOLEAN; END DELIMITER; $EJECT /****************************************************/ /* */ /* PROCEDURE NAME - FIRST$PARM */ /* */ /* FUNCTION - EXTRACT FIRST PARAMETER FROM A */ /* STRING. */ /* */ /* INPUT - DST$P : ADDRESS, POINTER TO DESTINATION */ /* STRING. */ /* SRC$P : ADDRESS, POINTER TO SOURCE */ /* STRING. */ /* SRC$I$P : ADDRESS, POINTER TO SOURCE */ /* STRING INDEX. */ /* WILDCARD : BOOLEAN, SEE 'DELIMITER' */ /* */ /* OUTPUT - DST : STRING, POINTED BY DST$P */ /* SRC$I : SRC. STRING INDEX, POINTS */ /* AFTER THE PARAMETER, POINTED */ /* TO BY SRC$I$P */ /* */ /* LAST UPDATED - 4.4.82 DROR */ /* */ /****************************************************/ FIRST$PARM: PROCEDURE(DST$P,SRC$P,SRC$I$P,WILDCARD) PUBLIC; DECLARE SRC$P ADDRESS, DST$P ADDRESS, SRC$I$P ADDRESS, WILDCARD BOOLEAN; DECLARE (SRC BASED SRC$P) STRING, (DST BASED DST$P) STRING, (SRC$I BASED SRC$I$P) ADDRESS; SRC$I=0; DO WHILE ((SRC$I < SRC.L) AND (SRC.D(SRC$I)=' ')); SRC$I=SRC$I+1; END; DST.L=0; DO WHILE ((NOT DELIMITER(SRC.D(SRC$I),WILDCARD)) AND (SRC$I < SRC.L) AND (DST.L < DST.ML)); DST.D(DST.L)=SRC.D(SRC$I); DST.L=DST.L+1; SRC$I=SRC$I+1; END; DST.D(DST.L)=0; END FIRST$PARM; END M$FIRST$PARM;