WOPO/IRC-MSG.COB

59 lines
1.8 KiB
COBOL

IDENTIFICATION DIVISION.
PROGRAM-ID. "IRC-MSG".
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WORK PIC X(480).
01 MSG-POINTER PIC 9(3).
LINKAGE SECTION.
01 BUFFER.
03 MSG-BODY PIC X(999).
03 MSG-BODY-1 REDEFINES MSG-BODY PIC X(6).
88 HAS-PREFIX VALUE "$COLN$".
01 IRC-MESSAGE.
03 PREFIX.
05 NICK PIC X(16).
05 IDENT PIC X(16).
05 HOST PIC X(64).
03 COMMAND PIC X(16).
03 PARAMETERS.
05 TARGET PIC X(50).
05 REST PIC X(480).
05 REST-PREFIX REDEFINES REST PIC X(6).
88 REST-PARAM VALUE "$COLN$".
PROCEDURE DIVISION USING BUFFER, IRC-MESSAGE.
MOVE SPACES TO IRC-MESSAGE.
MOVE SPACES TO WORK.
MOVE 1 TO MSG-POINTER.
IF HAS-PREFIX THEN
PERFORM WITH-PREFIX
ELSE
MOVE 1 TO MSG-POINTER.
UNSTRING MSG-BODY,
DELIMITED BY SPACES,
INTO COMMAND, TARGET
WITH POINTER MSG-POINTER.
UNSTRING MSG-BODY,
INTO REST,
WITH POINTER MSG-POINTER.
IF REST-PARAM THEN
MOVE REST TO WORK
MOVE 7 TO MSG-POINTER
UNSTRING WORK
INTO REST
WITH POINTER MSG-POINTER.
WITH-PREFIX.
MOVE 7 TO MSG-POINTER.
UNSTRING MSG-BODY,
DELIMITED BY SPACES,
INTO WORK,
WITH POINTER MSG-POINTER.
UNSTRING WORK,
DELIMITED BY "$EXC$" OR "$AT$",
INTO NICK,
IDENT,
HOST.