WOPO/IRC-MSG.COB

60 lines
1.8 KiB
COBOL
Raw Normal View History

2015-09-27 05:52:34 +00:00
IDENTIFICATION DIVISION.
PROGRAM-ID. "IRC-MSG".
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WORK PIC X(480).
2015-09-27 05:52:34 +00:00
01 MSG-POINTER PIC 9(3).
LINKAGE SECTION.
01 BUFFER.
03 MSG-LENGTH PIC 9(3).
03 MSG-BODY PIC X(512).
2015-09-27 05:52:34 +00:00
03 MSG-BODY-1 REDEFINES MSG-BODY PIC X.
88 HAS-PREFIX VALUE ";".
2015-09-27 05:52:34 +00:00
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.
88 REST-PARAM VALUE ";".
2015-09-27 05:52:34 +00:00
PROCEDURE DIVISION USING BUFFER, IRC-MESSAGE.
MOVE SPACES TO IRC-MESSAGE.
MOVE SPACES TO WORK.
MOVE 1 TO MSG-POINTER.
2015-09-27 05:52:34 +00:00
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 2 TO MSG-POINTER
UNSTRING WORK
INTO REST
WITH POINTER MSG-POINTER.
2015-09-27 05:52:34 +00:00
WITH-PREFIX.
MOVE 2 TO MSG-POINTER.
UNSTRING MSG-BODY,
DELIMITED BY SPACES,
INTO WORK,
WITH POINTER MSG-POINTER.
UNSTRING WORK,
2015-10-01 06:41:58 +00:00
DELIMITED BY "!" OR "@",
INTO NICK,
IDENT,
HOST.