Bug fixes!
This commit is contained in:
parent
06ded93ce6
commit
a857d0b8e6
1 changed files with 15 additions and 9 deletions
24
IRC-MSG.COB
24
IRC-MSG.COB
|
@ -9,9 +9,9 @@
|
||||||
03 WORK-1 REDEFINES WORK PIC X(6).
|
03 WORK-1 REDEFINES WORK PIC X(6).
|
||||||
88 REST-PARAMETER VALUE "$COLN$".
|
88 REST-PARAMETER VALUE "$COLN$".
|
||||||
03 WORK-DELIM PIC X(6).
|
03 WORK-DELIM PIC X(6).
|
||||||
88 IDENT-SPEC VALUE "!".
|
88 IDENT-SPEC VALUE "$EXC$".
|
||||||
88 HOST-SPEC VALUE "@".
|
88 HOST-SPEC VALUE "$AT$".
|
||||||
88 END-PREFIX VALUE SPACES.
|
88 PREFIX-END VALUE ALL SPACES.
|
||||||
01 MSG-POINTER PIC 999.
|
01 MSG-POINTER PIC 999.
|
||||||
01 LOOP-STATE PIC 99.
|
01 LOOP-STATE PIC 99.
|
||||||
88 DONE VALUE 99.
|
88 DONE VALUE 99.
|
||||||
|
@ -32,22 +32,24 @@
|
||||||
05 PARAM PIC 999 OCCURS 15 TIMES.
|
05 PARAM PIC 999 OCCURS 15 TIMES.
|
||||||
|
|
||||||
PROCEDURE DIVISION USING BUFFER, IRC-PARAMETERS.
|
PROCEDURE DIVISION USING BUFFER, IRC-PARAMETERS.
|
||||||
MOVE 0 TO LOOP-STATE.
|
|
||||||
MOVE 0 TO IRC-PARAMETERS.
|
MOVE 0 TO IRC-PARAMETERS.
|
||||||
MOVE SPACES TO WORK.
|
MOVE SPACES TO WORK.
|
||||||
MOVE 1 TO MSG-POINTER.
|
MOVE 1 TO MSG-POINTER.
|
||||||
IF HAS-PREFIX THEN
|
IF HAS-PREFIX THEN
|
||||||
PERFORM WITH-PREFIX
|
PERFORM WITH-PREFIX
|
||||||
ELSE
|
ELSE
|
||||||
|
MOVE 0 TO MSG-SRC
|
||||||
MOVE 1 TO MSG-POINTER.
|
MOVE 1 TO MSG-POINTER.
|
||||||
MOVE MSG-POINTER TO COMMAND.
|
MOVE MSG-POINTER TO COMMAND.
|
||||||
UNSTRING MSG-BODY DELIMITED BY SPACES
|
UNSTRING MSG-BODY DELIMITED BY SPACES
|
||||||
INTO WORK
|
INTO WORK
|
||||||
WITH POINTER MSG-POINTER.
|
WITH POINTER MSG-POINTER.
|
||||||
|
MOVE 0 TO LOOP-STATE.
|
||||||
PERFORM GET-PARAMETER
|
PERFORM GET-PARAMETER
|
||||||
VARYING NUM-PARAMETERS FROM 1, BY 1
|
VARYING NUM-PARAMETERS FROM 1, BY 1
|
||||||
UNTIL DONE OR
|
UNTIL DONE OR
|
||||||
NUM-PARAMETERS IS GREATER THAN OR EQUAL TO 15.
|
NUM-PARAMETERS IS NOT LESS THAN 15.
|
||||||
|
SUBTRACT 1 FROM NUM-PARAMETERS.
|
||||||
EXIT PROGRAM.
|
EXIT PROGRAM.
|
||||||
|
|
||||||
GET-PARAMETER.
|
GET-PARAMETER.
|
||||||
|
@ -59,17 +61,21 @@
|
||||||
IF BLANK-PARAM OR REST-PARAMETER THEN
|
IF BLANK-PARAM OR REST-PARAMETER THEN
|
||||||
MOVE 99 TO LOOP-STATE.
|
MOVE 99 TO LOOP-STATE.
|
||||||
IF BLANK-PARAM THEN
|
IF BLANK-PARAM THEN
|
||||||
SUBTRACT 1 FROM NUM-PARAMETERS.
|
SUBTRACT 1 FROM NUM-PARAMETERS
|
||||||
|
ELSE IF REST-PARAMETER THEN
|
||||||
|
ADD 6 TO PARAM(NUM-PARAMETERS).
|
||||||
|
|
||||||
WITH-PREFIX.
|
WITH-PREFIX.
|
||||||
MOVE 7 TO MSG-POINTER, MSG-SRC.
|
MOVE 7 TO MSG-POINTER, MSG-SRC.
|
||||||
PERFORM GET-PREFIX-PART UNTIL END-PREFIX.
|
MOVE 0 TO LOOP-STATE.
|
||||||
MOVE SPACES TO WORK-DELIM.
|
PERFORM GET-PREFIX-PART UNTIL DONE.
|
||||||
|
|
||||||
GET-PREFIX-PART.
|
GET-PREFIX-PART.
|
||||||
UNSTRING WORK,
|
MOVE SPACES TO WORK-DELIM.
|
||||||
|
UNSTRING MSG-BODY,
|
||||||
DELIMITED BY "$EXC$", OR "$AT$", OR SPACES,
|
DELIMITED BY "$EXC$", OR "$AT$", OR SPACES,
|
||||||
INTO WORK, DELIMITER IN WORK-DELIM,
|
INTO WORK, DELIMITER IN WORK-DELIM,
|
||||||
WITH POINTER MSG-POINTER.
|
WITH POINTER MSG-POINTER.
|
||||||
IF IDENT-SPEC THEN MOVE MSG-POINTER TO IDENT.
|
IF IDENT-SPEC THEN MOVE MSG-POINTER TO IDENT.
|
||||||
IF HOST-SPEC THEN MOVE MSG-POINTER TO HOST.
|
IF HOST-SPEC THEN MOVE MSG-POINTER TO HOST.
|
||||||
|
IF PREFIX-END THEN MOVE 99 TO LOOP-STATE.
|
||||||
|
|
Loading…
Reference in a new issue