Remove WORK, WORK-PTR. Add REGISTER-FILE.

This commit is contained in:
Quinn Evans 2017-03-07 21:02:29 -07:00
parent 421971ec62
commit e49145cb03
1 changed files with 134 additions and 130 deletions

264
WOPO.COB
View File

@ -49,12 +49,16 @@
05 ASCII-CELL PIC 999 OCCURS 999 TIMES.
01 WOPO.
03 WOPO-NICK PIC X(40).
03 WORK PIC X(999).
03 WORK-PREFIX REDEFINES WORK PIC XX.
88 IS-COMMAND VALUE "$$".
03 WORK-CTCP REDEFINES WORK PIC X(5).
88 IS-CTCP VALUE "$SOH$".
03 WORK-PTR PIC 999 USAGE COMPUTATIONAL.
03 REGISTER-FILE.
05 REGISTER OCCURS 8 TIMES.
07 R PIC X(999).
07 R-COMMAND REDEFINES R PIC XX.
88 IS-COMMAND VALUE "$$".
07 R-CTCP REDEFINES R PIC X(5).
88 IS-CTCP VALUE "$SOH$".
07 PTR PIC 999.
05 SRC PIC 9.
05 DEST PIC 9.
03 PARAM PIC X(480) OCCURS 5 TIMES.
03 NUM-PARAMS PIC 9.
03 WOPO-COUNTER PIC 9.
@ -143,22 +147,22 @@
INTO MSG-BODY.
PERFORM SEND-LINE.
MOVE SPACES TO MSG-BODY.
MOVE 1 TO WORK-PTR.
MOVE 1 TO PTR(1).
STRING "USER " DELIMITED BY SIZE
INTO MSG-BODY
WITH POINTER WORK-PTR.
WITH POINTER PTR(1).
MOVE "IDENT" TO CONFIG-KEY.
PERFORM READ-CONFIG-ENTRY.
STRING CONFIG-VALUE DELIMITED BY SPACE,
INTO MSG-BODY
WITH POINTER WORK-PTR.
ADD 1 TO WORK-PTR.
WITH POINTER PTR(1).
ADD 1 TO PTR(1).
MOVE "REAL-NAME" TO CONFIG-KEY.
PERFORM READ-CONFIG-ENTRY.
STRING "BOGUS HOST $COLN$" DELIMITED BY SIZE,
CONFIG-VALUE DELIMITED BY " ",
INTO MSG-BODY
WITH POINTER WORK-PTR.
WITH POINTER PTR(1).
PERFORM SEND-LINE.
OPEN INPUT CHANNELS.
PERFORM AUTOJOIN-CHANNELS UNTIL DONE.
@ -206,22 +210,22 @@
GET-IRC-STATE.
CALL "PARSE-IRC-MSG" USING MSG-BODY, IRC-PARAMS.
IF GOT-PREFIX THEN
MOVE MSG-SRC TO WORK-PTR
MOVE MSG-SRC TO PTR(1)
UNSTRING MSG-BODY
DELIMITED BY "$EXC$" OR "$AT$" OR SPACES
INTO NICK
WITH POINTER WORK-PTR.
MOVE COMMAND OF IRC-PARAMS TO WORK-PTR.
WITH POINTER PTR(1).
MOVE COMMAND OF IRC-PARAMS TO PTR(1).
UNSTRING MSG-BODY
DELIMITED BY SPACES
INTO COMMAND OF IRC-STATE
WITH POINTER WORK-PTR.
WITH POINTER PTR(1).
IF NUM-PARAMS OF IRC-PARAMS IS NOT LESS THAN 1 THEN
MOVE PARAM OF IRC-PARAMS(1) TO WORK-PTR
MOVE PARAM OF IRC-PARAMS(1) TO PTR(1)
UNSTRING MSG-BODY
DELIMITED BY SPACES
INTO TARGET
WITH POINTER WORK-PTR
WITH POINTER PTR(1)
ELSE
MOVE SPACES TO TARGET.
@ -231,22 +235,22 @@
GET-PARAMS.
MOVE PARAM OF IRC-PARAMS(NUM-PARAMS OF IRC-PARAMS)
TO WORK-PTR.
TO PTR(1).
UNSTRING MSG-BODY DELIMITED BY "$NUL$"
INTO WORK
WITH POINTER WORK-PTR.
MOVE 1 TO WORK-PTR.
PERFORM BLANK-PARAM VARYING WORK-PTR FROM 1, BY 1,
UNTIL WORK-PTR IS NOT LESS THAN 5.
INTO R(1)
WITH POINTER PTR(1).
MOVE 1 TO PTR(1).
PERFORM BLANK-PARAM VARYING PTR(1) FROM 1, BY 1,
UNTIL PTR(1) IS NOT LESS THAN 5.
MOVE 0 TO NUM-PARAMS OF WOPO, STATE.
MOVE 1 TO WORK-PTR.
MOVE 1 TO PTR(1).
PERFORM UNSTRING-PARAM UNTIL DONE.
UNSTRING-PARAM.
ADD 1 TO NUM-PARAMS OF WOPO.
UNSTRING WORK DELIMITED BY SPACE
UNSTRING R(1) DELIMITED BY SPACE
INTO PARAM OF WOPO(NUM-PARAMS OF WOPO)
WITH POINTER WORK-PTR.
WITH POINTER PTR(1).
IF PARAM OF WOPO(NUM-PARAMS OF WOPO) IS EQUAL TO SPACES THEN
SUBTRACT 1 FROM NUM-PARAMS OF WOPO
MOVE 99 TO STATE.
@ -254,7 +258,7 @@
MOVE 99 TO STATE.
BLANK-PARAM.
MOVE SPACES TO PARAM OF WOPO(WORK-PTR).
MOVE SPACES TO PARAM OF WOPO(PTR(1)).
PRESERVE-MESSAGE.
MOVE MSG-BODY TO MSG-BODY-TMP.
@ -314,40 +318,40 @@
*THE REPLY FUNCTIONS NEED NICK, COMMAND, AND TARGET PRESERVED.
BEGIN-REPLY.
MOVE SPACES TO MSG-BODY.
MOVE 1 TO WORK-PTR.
MOVE 1 TO PTR(1).
STRING COMMAND OF IRC-STATE DELIMITED BY SPACES
INTO MSG-BODY
WITH POINTER WORK-PTR.
ADD 1 TO WORK-PTR.
WITH POINTER PTR(1).
ADD 1 TO PTR(1).
IF TARGET IS EQUAL TO WOPO-NICK THEN
STRING NICK DELIMITED BY SPACE
INTO MSG-BODY
WITH POINTER WORK-PTR
WITH POINTER PTR(1)
ELSE
STRING TARGET DELIMITED BY SPACE
INTO MSG-BODY
WITH POINTER WORK-PTR.
WITH POINTER PTR(1).
STRING " $COLN$" DELIMITED BY SIZE
INTO MSG-BODY
WITH POINTER WORK-PTR.
WITH POINTER PTR(1).
BEGIN-STANDARD-REPLY.
PERFORM BEGIN-REPLY.
STRING "$226$$128$$139$"
INTO MSG-BODY
WITH POINTER WORK-PTR.
WITH POINTER PTR(1).
IF TARGET IS NOT EQUAL TO WOPO-NICK THEN
STRING NICK DELIMITED BY SPACES
". " DELIMITED BY SIZE
INTO MSG-BODY
WITH POINTER WORK-PTR.
WITH POINTER PTR(1).
REPLY-ACK.
PERFORM PRESERVE-MESSAGE.
PERFORM BEGIN-STANDARD-REPLY.
STRING "OK.$NUL$"
INTO MSG-BODY
WITH POINTER WORK-PTR.
WITH POINTER PTR(1).
PERFORM SEND-LINE.
PERFORM RESTORE-MESSAGE.
@ -355,7 +359,7 @@
PERFORM BEGIN-STANDARD-REPLY.
STRING "ACCESS DENIED.$NUL$"
INTO MSG-BODY
WITH POINTER WORK-PTR.
WITH POINTER PTR(1).
PERFORM SEND-LINE.
PONG.
@ -365,12 +369,12 @@
HANDLE-KICK.
D DISPLAY "DETECTED KICK.".
MOVE SPACES TO WORK.
MOVE PARAM OF IRC-PARAMS(2) TO WORK-PTR.
MOVE SPACES TO R(1).
MOVE PARAM OF IRC-PARAMS(2) TO PTR(1).
UNSTRING MSG-BODY DELIMITED BY SPACE
INTO WORK
WITH POINTER WORK-PTR.
IF WORK IS EQUAL TO WOPO-NICK THEN
INTO R(1)
WITH POINTER PTR(1).
IF R(1) IS EQUAL TO WOPO-NICK THEN
D DISPLAY "KICK WAS ME."
MOVE MSG-BODY TO MSG-BODY-TMP
MOVE SPACES TO MSG-BODY
@ -380,18 +384,18 @@
INTO MSG-BODY
PERFORM SEND-LINE
MOVE PARAM OF IRC-PARAMS(NUM-PARAMS OF IRC-PARAMS)
TO WORK-PTR
TO PTR(1)
UNSTRING MSG-BODY-TMP
INTO WORK
WITH POINTER WORK-PTR
IF WORK IS NOT EQUAL TO WOPO-NICK THEN
INTO R(1)
WITH POINTER PTR(1)
IF R(1) IS NOT EQUAL TO WOPO-NICK THEN
MOVE SPACES TO MSG-BODY
STRING "PRIVMSG " DELIMITED BY SIZE,
TARGET DELIMITED BY SPACES,
" $COLN$" DELIMITED BY SIZE,
NICK DELIMITED BY SPACES,
". " DELIMITED BY SIZE,
WORK DELIMITED BY "$NUL$",
R(1) DELIMITED BY "$NUL$",
"$NUL$"
INTO MSG-BODY
PERFORM SEND-LINE.
@ -406,13 +410,13 @@
D VARYING DEBUG-PTR
D FROM 1, BY 1
D UNTIL DEBUG-PTR IS GREATER THAN NUM-PARAMS OF WOPO
IF IS-CTCP THEN
IF IS-CTCP(1) THEN
PERFORM HANDLE-CTCP
ELSE IF IS-COMMAND THEN
MOVE 3 TO WORK-PTR
UNSTRING PARAM OF WOPO(1) INTO WORK
WITH POINTER WORK-PTR
MOVE WORK TO PARAM OF WOPO(1)
ELSE IF IS-COMMAND(1) THEN
MOVE 3 TO PTR(1)
UNSTRING PARAM OF WOPO(1) INTO R(1)
WITH POINTER PTR(1)
MOVE R(1) TO PARAM OF WOPO(1)
D DISPLAY "COMMAND BODY ", PARAM OF WOPO(1)
IF PARAM OF WOPO(1) IS EQUAL TO "BF-CODE" THEN
PERFORM HANDLE-BF-CODE
@ -463,7 +467,7 @@
- "GOD HELPS THOSE WHO HELP THEMSELVES, COMMIE. "
- "$240$$159$$142$$134"
INTO MSG-BODY
WITH POINTER WORK-PTR
WITH POINTER PTR(1)
ELSE
STRING "COMMANDS$COLN$ "
- "$$BF-CODE $$BF-INPUT $$BF-OUTPUT $$BF-RUN "
@ -472,7 +476,7 @@
- "$$SHOW-ESCAPES $$SOURCE $$STRESS $$VOICE "
- "$NUL$"
INTO MSG-BODY
WITH POINTER WORK-PTR.
WITH POINTER PTR(1).
PERFORM SEND-LINE.
HANDLE-SHITFED.
@ -480,14 +484,14 @@
STRING "$002$LEAVE MY CASE ALONE, "
- "$226$$156$$168$ASSHOL$LOWE$$226$$156$$168$."
INTO MSG-BODY
WITH POINTER WORK-PTR.
WITH POINTER PTR(1).
PERFORM SEND-LINE.
HANDLE-SOURCE.
PERFORM BEGIN-STANDARD-REPLY.
STRING "HTTPS$COLN$//GITHUB.COM/HEDDWCH/WOPO"
INTO MSG-BODY
WITH POINTER WORK-PTR.
WITH POINTER PTR(1).
PERFORM SEND-LINE.
HANDLE-STRESS.
@ -495,20 +499,20 @@
STRING "$SOH$ACTION PUNCHES A "
- "$226$$156$$168$BABY$226$$156$$168$.$SOH$$NUL$"
INTO MSG-BODY
WITH POINTER WORK-PTR.
WITH POINTER PTR(1).
PERFORM SEND-LINE.
HANDLE-LICK.
IF NUM-PARAMS OF WOPO IS LESS THAN 2 THEN
MOVE NICK TO WORK
MOVE NICK TO R(1)
ELSE
MOVE PARAM OF WOPO(2) TO WORK.
MOVE PARAM OF WOPO(2) TO R(1).
PERFORM BEGIN-REPLY.
STRING "$SOH$ACTION VIGOROUSLY LICKS " DELIMITED BY SIZE,
WORK DELIMITED BY SPACES,
R(1) DELIMITED BY SPACES,
".$SOH$$NUL$" DELIMITED BY SIZE
INTO MSG-BODY
WITH POINTER WORK-PTR.
WITH POINTER PTR(1).
PERFORM SEND-LINE.
HANDLE-LEVEL.
@ -522,18 +526,18 @@
MOVE 0 TO WOPO-COUNTER.
IF SHOULD-SHOW-ESCAPES THEN
D DISPLAY "USER NAME. ", USER-NAME
MOVE USER-NAME TO WORK
CALL "RE-ESCAPE" USING WORK, WOPO-COUNTER
MOVE WORK TO USER-NAME
MOVE USER-NAME TO R(1)
CALL "RE-ESCAPE" USING R(1), WOPO-COUNTER
MOVE R(1) TO USER-NAME
D DISPLAY "USER NAME. ", USER-NAME
.
STRING USER-NAME
INTO MSG-BODY
WITH POINTER WORK-PTR.
ADD WOPO-COUNTER TO WORK-PTR.
WITH POINTER PTR(1).
ADD WOPO-COUNTER TO PTR(1).
STRING USER-LEVEL
INTO MSG-BODY
WITH POINTER WORK-PTR.
WITH POINTER PTR(1).
PERFORM SEND-LINE.
HANDLE-LIST-USERS.
@ -541,7 +545,7 @@
OPEN INPUT USERS.
MOVE 0 TO STATE.
PERFORM BEGIN-STANDARD-REPLY.
STRING USERS-HEADER INTO MSG-BODY WITH POINTER WORK-PTR.
STRING USERS-HEADER INTO MSG-BODY WITH POINTER PTR(1).
PERFORM SEND-LINE.
PERFORM LIST-USER-RECORD UNTIL DONE.
CLOSE USERS.
@ -552,20 +556,20 @@
MOVE 0 TO WOPO-COUNTER.
IF SHOULD-SHOW-ESCAPES THEN
D DISPLAY "USER NAME. ", USER-NAME
MOVE USER-NAME TO WORK
CALL "RE-ESCAPE" USING WORK, WOPO-COUNTER
MOVE WORK TO USER-NAME
MOVE USER-NAME TO R(1)
CALL "RE-ESCAPE" USING R(1), WOPO-COUNTER
MOVE R(1) TO USER-NAME
D DISPLAY "USER NAME. ", USER-NAME
.
IF NOT DONE THEN
PERFORM BEGIN-STANDARD-REPLY
STRING USER-NAME
INTO MSG-BODY
WITH POINTER WORK-PTR
ADD WOPO-COUNTER TO WORK-PTR
WITH POINTER PTR(1)
ADD WOPO-COUNTER TO PTR(1)
STRING USER-LEVEL
INTO MSG-BODY
WITH POINTER WORK-PTR
WITH POINTER PTR(1)
PERFORM SEND-LINE.
HANDLE-JOIN.
@ -586,13 +590,13 @@
PERFORM REPLY-ACK.
PERFORM VALIDATE-USER.
IF NUM-PARAMS OF WOPO IS LESS THAN 2 THEN
MOVE TARGET TO WORK
MOVE TARGET TO R(1)
ELSE
MOVE PARAM OF WOPO(2) TO WORK
MOVE PARAM OF WOPO(2) TO R(1)
IF USER-LEVEL IS NOT LESS THAN 80 THEN
MOVE SPACES TO MSG-BODY
STRING "PART " DELIMITED BY SIZE,
WORK DELIMITED BY SPACES,
R(1) DELIMITED BY SPACES,
"$NUL$"
INTO MSG-BODY
PERFORM SEND-LINE
@ -600,16 +604,13 @@
PERFORM REPLY-NAK.
STRING-LOWVS.
STRING "$LOWV$" INTO MSG-BODY WITH POINTER WORK-PTR.
STRING-LOWOS.
STRING "$LOWO$" INTO MSG-BODY WITH POINTER WORK-PTR.
STRING "$LOWV$" INTO MSG-BODY WITH POINTER PTR(1).
STRING-PARAMS.
STRING PARAM OF WOPO(WOPO-COUNTER) DELIMITED BY SPACES
INTO MSG-BODY
WITH POINTER WORK-PTR.
ADD 1 TO WORK-PTR.
WITH POINTER PTR(1).
ADD 1 TO PTR(1).
HANDLE-VOICE.
PERFORM REPLY-ACK.
@ -619,18 +620,18 @@
MOVE 2 TO NUM-PARAMS OF WOPO.
IF USER-LEVEL IS NOT LESS THAN 60 THEN
MOVE SPACES TO MSG-BODY
MOVE 1 TO WORK-PTR
MOVE 1 TO PTR(1)
STRING "MODE " DELIMITED BY SIZE,
TARGET DELIMITED BY SPACES,
" +" DELIMITED BY SIZE
INTO MSG-BODY
WITH POINTER WORK-PTR
WITH POINTER PTR(1)
PERFORM STRING-LOWVS
VARYING WOPO-COUNTER
FROM 2, BY 1
UNTIL WOPO-COUNTER IS GREATER THAN
NUM-PARAMS OF WOPO
ADD 1 TO WORK-PTR
ADD 1 TO PTR(1)
PERFORM STRING-PARAMS
VARYING WOPO-COUNTER
FROM 2, BY 1
@ -638,7 +639,7 @@
NUM-PARAMS OF WOPO
STRING "$NUL$"
INTO MSG-BODY
WITH POINTER WORK-PTR
WITH POINTER PTR(1)
PERFORM SEND-LINE
ELSE
PERFORM REPLY-NAK.
@ -651,18 +652,18 @@
MOVE 2 TO NUM-PARAMS OF WOPO.
IF USER-LEVEL IS NOT LESS THAN 60 THEN
MOVE SPACES TO MSG-BODY
MOVE 1 TO WORK-PTR
MOVE 1 TO PTR(1)
STRING "MODE " DELIMITED BY SIZE,
TARGET DELIMITED BY SPACES,
" -" DELIMITED BY SIZE
INTO MSG-BODY
WITH POINTER WORK-PTR
WITH POINTER PTR(1)
PERFORM STRING-LOWVS
VARYING WOPO-COUNTER
FROM 2, BY 1
UNTIL WOPO-COUNTER IS GREATER THAN
NUM-PARAMS OF WOPO
ADD 1 TO WORK-PTR
ADD 1 TO PTR(1)
PERFORM STRING-PARAMS
VARYING WOPO-COUNTER
FROM 2, BY 1
@ -670,11 +671,14 @@
NUM-PARAMS OF WOPO
STRING "$NUL$"
INTO MSG-BODY
WITH POINTER WORK-PTR
WITH POINTER PTR(1)
PERFORM SEND-LINE
ELSE
PERFORM REPLY-NAK.
STRING-LOWOS.
STRING "$LOWO$" INTO MSG-BODY WITH POINTER PTR(1).
HANDLE-OP.
PERFORM REPLY-ACK.
PERFORM VALIDATE-USER.
@ -683,18 +687,18 @@
MOVE 2 TO NUM-PARAMS OF WOPO.
IF USER-LEVEL IS NOT LESS THAN 70 THEN
MOVE SPACES TO MSG-BODY
MOVE 1 TO WORK-PTR
MOVE 1 TO PTR(1)
STRING "MODE " DELIMITED BY SIZE,
TARGET DELIMITED BY SPACES,
" +" DELIMITED BY SIZE
INTO MSG-BODY
WITH POINTER WORK-PTR
WITH POINTER PTR(1)
PERFORM STRING-LOWOS
VARYING WOPO-COUNTER
FROM 2, BY 1
UNTIL WOPO-COUNTER IS GREATER THAN
NUM-PARAMS OF WOPO
ADD 1 TO WORK-PTR
ADD 1 TO PTR(1)
PERFORM STRING-PARAMS
VARYING WOPO-COUNTER
FROM 2, BY 1
@ -702,7 +706,7 @@
NUM-PARAMS OF WOPO
STRING "$NUL$"
INTO MSG-BODY
WITH POINTER WORK-PTR
WITH POINTER PTR(1)
PERFORM SEND-LINE
ELSE
PERFORM REPLY-NAK.
@ -715,18 +719,18 @@
MOVE 2 TO NUM-PARAMS OF WOPO.
IF USER-LEVEL IS NOT LESS THAN 70 THEN
MOVE SPACES TO MSG-BODY
MOVE 1 TO WORK-PTR
MOVE 1 TO PTR(1)
STRING "MODE " DELIMITED BY SIZE,
TARGET DELIMITED BY SPACES,
" -" DELIMITED BY SIZE
INTO MSG-BODY
WITH POINTER WORK-PTR
WITH POINTER PTR(1)
PERFORM STRING-LOWOS
VARYING WOPO-COUNTER
FROM 2, BY 1
UNTIL WOPO-COUNTER IS GREATER THAN
NUM-PARAMS OF WOPO
ADD 1 TO WORK-PTR
ADD 1 TO PTR(1)
PERFORM STRING-PARAMS
VARYING WOPO-COUNTER
FROM 2, BY 1
@ -734,7 +738,7 @@
NUM-PARAMS OF WOPO
STRING "$NUL$"
INTO MSG-BODY
WITH POINTER WORK-PTR
WITH POINTER PTR(1)
PERFORM SEND-LINE
ELSE
PERFORM REPLY-NAK.
@ -771,10 +775,10 @@
ELSE
PERFORM REPLY-NAK.
PERFORM BEGIN-STANDARD-REPLY.
STRING "SHOW-ESCAPES " INTO MSG-BODY WITH POINTER WORK-PTR.
STRING "SHOW-ESCAPES " INTO MSG-BODY WITH POINTER PTR(1).
IF SHOULD-SHOW-ESCAPES THEN
STRING "ON." INTO MSG-BODY WITH POINTER WORK-PTR
ELSE STRING "OFF." INTO MSG-BODY WITH POINTER WORK-PTR.
STRING "ON." INTO MSG-BODY WITH POINTER PTR(1)
ELSE STRING "OFF." INTO MSG-BODY WITH POINTER PTR(1).
PERFORM SEND-LINE.
HANDLE-RELEVEL.
@ -796,7 +800,7 @@
PERFORM BEGIN-STANDARD-REPLY.
STRING USER-RECORD
INTO MSG-BODY
WITH POINTER WORK-PTR.
WITH POINTER PTR(1).
PERFORM SEND-LINE.
HANDLE-BF-CODE.
@ -806,22 +810,22 @@
BF-CODE,
"$NUL$"
INTO MSG-BODY
WITH POINTER WORK-PTR
WITH POINTER PTR(1)
D DISPLAY "BF-CODE. ", BF-CODE
PERFORM SEND-LINE
ELSE
PERFORM REPLY-ACK
PERFORM VALIDATE-USER
MOVE PARAM OF IRC-PARAMS(NUM-PARAMS OF IRC-PARAMS)
TO WORK-PTR
TO PTR(1)
UNSTRING MSG-BODY DELIMITED BY SPACE
INTO WORK,
WITH POINTER WORK-PTR
INTO R(1),
WITH POINTER PTR(1)
UNSTRING MSG-BODY
INTO WORK
WITH POINTER WORK-PTR
INTO R(1)
WITH POINTER PTR(1)
IF USER-LEVEL IS NOT LESS THAN 60 THEN
MOVE WORK TO BF-CODE
MOVE R(1) TO BF-CODE
ELSE
PERFORM REPLY-NAK.
@ -831,7 +835,7 @@
STRING "INPUT. ",
BF-INPUT
INTO MSG-BODY
WITH POINTER WORK-PTR
WITH POINTER PTR(1)
D DISPLAY "INPUT. ", BF-INPUT
D DISPLAY "MSG-BODY. ", MSG-BODY
PERFORM SEND-LINE
@ -839,15 +843,15 @@
PERFORM REPLY-ACK
PERFORM VALIDATE-USER
MOVE PARAM OF IRC-PARAMS(NUM-PARAMS OF IRC-PARAMS)
TO WORK-PTR
TO PTR(1)
UNSTRING MSG-BODY DELIMITED BY SPACE
INTO WORK,
WITH POINTER WORK-PTR
INTO R(1),
WITH POINTER PTR(1)
UNSTRING MSG-BODY
INTO WORK
WITH POINTER WORK-PTR
INTO R(1)
WITH POINTER PTR(1)
IF USER-LEVEL IS NOT LESS THAN 50 THEN
MOVE WORK TO BF-INPUT
MOVE R(1) TO BF-INPUT
ELSE
PERFORM REPLY-NAK.
@ -860,7 +864,7 @@
STRING "OUTPUT. " DELIMITED BY SIZE,
BF-OUTPUT DELIMITED BY "$NUL$"
INTO MSG-BODY
WITH POINTER WORK-PTR.
WITH POINTER PTR(1).
D DISPLAY "SENDING LINE".
PERFORM SEND-LINE.
D DISPLAY "SENT LINE".
@ -900,7 +904,7 @@
CYCLE-LIMIT
"."
INTO MSG-BODY
WITH POINTER WORK-PTR.
WITH POINTER PTR(1).
PERFORM SEND-LINE.
HANDLE-CTCP.
@ -908,12 +912,12 @@
IF NOTICE AND TARGET IS NOT EQUAL TO WOPO-NICK THEN
NEXT SENTENCE
ELSE
MOVE 6 TO WORK-PTR
MOVE 6 TO PTR(1)
UNSTRING PARAM OF WOPO(1) DELIMITED BY SPACE OR "$SOH$"
INTO WORK
WITH POINTER WORK-PTR
D DISPLAY "CTCP PARAM. ", WORK
MOVE WORK TO PARAM OF WOPO(1)
INTO R(1)
WITH POINTER PTR(1)
D DISPLAY "CTCP PARAM. ", R(1)
MOVE R(1) TO PARAM OF WOPO(1)
IF PARAM OF WOPO(1) IS EQUAL TO "PING" THEN
PERFORM HANDLE-PING
ELSE IF PARAM OF WOPO(1) IS EQUAL TO "VERSION" THEN
@ -924,15 +928,15 @@
HANDLE-PING.
MOVE PARAM OF IRC-PARAMS(NUM-PARAMS OF IRC-PARAMS)
TO WORK-PTR.
ADD 5 TO WORK-PTR
TO PTR(1).
ADD 5 TO PTR(1)
UNSTRING MSG-BODY DELIMITED BY "$NUL$"
INTO WORK
WITH POINTER WORK-PTR.
INTO R(1)
WITH POINTER PTR(1).
STRING "NOTICE " DELIMITED BY SIZE,
NICK DELIMITED BY SPACES,
" $COLN$$SOH$" DELIMITED BY SIZE,
WORK DELIMITED BY "$SOH$",
R(1) DELIMITED BY "$SOH$",
"$SOH$$NUL$" DELIMITED BY SIZE
INTO MSG-BODY.
D DISPLAY MSG-BODY.