59 lines
1.8 KiB
COBOL
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 DELIMITED BY "$NUL$",
|
|
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.
|