(Dis)ambiguate some variables, fix a line continuation

This commit is contained in:
Quinn Evans 2017-03-05 22:47:00 -07:00
parent 685feff941
commit 421971ec62
2 changed files with 121 additions and 108 deletions

View File

@ -21,18 +21,17 @@
03 MSG-BODY PIC X(999). 03 MSG-BODY PIC X(999).
03 MSG-BODY-1 REDEFINES MSG-BODY PIC X(6). 03 MSG-BODY-1 REDEFINES MSG-BODY PIC X(6).
88 HAS-PREFIX VALUE "$COLN$". 88 HAS-PREFIX VALUE "$COLN$".
01 IRC-PARAMETERS. 01 IRC-PARAMS.
03 NUM-PARAMETERS PIC 99. 03 NUM-PARAMS PIC 99.
03 PREFIX. 03 PREFIX.
05 MSG-SRC PIC 999. 05 MSG-SRC PIC 999.
05 IDENT PIC 999. 05 IDENT PIC 999.
05 HOST PIC 999. 05 HOST PIC 999.
03 COMMAND PIC 999. 03 COMMAND PIC 999.
03 PARAMS. 03 PARAM PIC 999 OCCURS 15 TIMES.
05 PARAM PIC 999 OCCURS 15 TIMES.
PROCEDURE DIVISION USING BUFFER, IRC-PARAMETERS. PROCEDURE DIVISION USING BUFFER, IRC-PARAMS.
MOVE 0 TO IRC-PARAMETERS. MOVE 0 TO IRC-PARAMS.
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
@ -46,14 +45,14 @@
WITH POINTER MSG-POINTER. WITH POINTER MSG-POINTER.
MOVE 0 TO LOOP-STATE. MOVE 0 TO LOOP-STATE.
PERFORM GET-PARAMETER PERFORM GET-PARAMETER
VARYING NUM-PARAMETERS FROM 1, BY 1 VARYING NUM-PARAMS FROM 1, BY 1
UNTIL DONE OR UNTIL DONE OR
NUM-PARAMETERS IS NOT LESS THAN 15. NUM-PARAMS IS NOT LESS THAN 15.
SUBTRACT 1 FROM NUM-PARAMETERS. SUBTRACT 1 FROM NUM-PARAMS.
EXIT PROGRAM. EXIT PROGRAM.
GET-PARAMETER. GET-PARAMETER.
MOVE MSG-POINTER TO PARAM(NUM-PARAMETERS). MOVE MSG-POINTER TO PARAM(NUM-PARAMS).
MOVE SPACES TO WORK. MOVE SPACES TO WORK.
UNSTRING MSG-BODY DELIMITED BY SPACES UNSTRING MSG-BODY DELIMITED BY SPACES
INTO WORK INTO WORK
@ -61,9 +60,9 @@
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-PARAMS
ELSE IF REST-PARAMETER THEN ELSE IF REST-PARAMETER THEN
ADD 6 TO PARAM(NUM-PARAMETERS). ADD 6 TO PARAM(NUM-PARAMS).
WITH-PREFIX. WITH-PREFIX.
MOVE 7 TO MSG-POINTER, MSG-SRC. MOVE 7 TO MSG-POINTER, MSG-SRC.

206
WOPO.COB
View File

@ -56,7 +56,7 @@
88 IS-CTCP VALUE "$SOH$". 88 IS-CTCP VALUE "$SOH$".
03 WORK-PTR PIC 999 USAGE COMPUTATIONAL. 03 WORK-PTR PIC 999 USAGE COMPUTATIONAL.
03 PARAM PIC X(480) OCCURS 5 TIMES. 03 PARAM PIC X(480) OCCURS 5 TIMES.
03 WOPO-PARAMS PIC 9. 03 NUM-PARAMS PIC 9.
03 WOPO-COUNTER PIC 9. 03 WOPO-COUNTER PIC 9.
03 MSG-BODY-TMP PIC X(999). 03 MSG-BODY-TMP PIC X(999).
D 03 DEBUG-PTR PIC 9. D 03 DEBUG-PTR PIC 9.
@ -65,7 +65,7 @@
03 FILLER PIC X(40) VALUE "USER NAME.". 03 FILLER PIC X(40) VALUE "USER NAME.".
03 FILLER PIC X(6) VALUE "LEVEL.". 03 FILLER PIC X(6) VALUE "LEVEL.".
01 IRC-PARAMETERS. 01 IRC-PARAMS.
03 NUM-PARAMS PIC 99. 03 NUM-PARAMS PIC 99.
03 PREFIX. 03 PREFIX.
05 MSG-SRC PIC 999. 05 MSG-SRC PIC 999.
@ -73,8 +73,7 @@
05 IDENT PIC 999. 05 IDENT PIC 999.
05 HOST PIC 999. 05 HOST PIC 999.
03 COMMAND PIC 999. 03 COMMAND PIC 999.
03 PARAMS. 03 PARAM PIC 999 OCCURS 15 TIMES.
05 PARAM-PTR PIC 999 OCCURS 15 TIMES.
01 IRC-STATE. 01 IRC-STATE.
03 NICK PIC X(40). 03 NICK PIC X(40).
@ -90,7 +89,7 @@
03 BF-INPUT PIC X(999) 03 BF-INPUT PIC X(999)
VALUE "$NUL$". VALUE "$NUL$".
03 BF-CODE PIC X(999) 03 BF-CODE PIC X(999)
VALUE "++++++++++(>++++++(>++++<-)<-)>>.<<+++++(>++++(>--" VALUE "++++++++++(>++++++(>++++<-)<-)>>.<<+++++(>++++(>--
- "--<-)<-)>>-.<+++(>---<-)>.-.$$". - "--<-)<-)>>-.<+++(>---<-)>.-.$$".
03 BF-OUTPUT PIC X(999) 03 BF-OUTPUT PIC X(999)
VALUE SPACES. VALUE SPACES.
@ -205,20 +204,20 @@
PERFORM GET-PARAMS. PERFORM GET-PARAMS.
GET-IRC-STATE. GET-IRC-STATE.
CALL "PARSE-IRC-MSG" USING MSG-BODY, IRC-PARAMETERS. CALL "PARSE-IRC-MSG" USING MSG-BODY, IRC-PARAMS.
IF GOT-PREFIX THEN IF GOT-PREFIX THEN
MOVE MSG-SRC TO WORK-PTR MOVE MSG-SRC TO WORK-PTR
UNSTRING MSG-BODY UNSTRING MSG-BODY
DELIMITED BY "$EXC$" OR "$AT$" OR SPACES DELIMITED BY "$EXC$" OR "$AT$" OR SPACES
INTO NICK INTO NICK
WITH POINTER WORK-PTR. WITH POINTER WORK-PTR.
MOVE COMMAND OF IRC-PARAMETERS TO WORK-PTR. MOVE COMMAND OF IRC-PARAMS TO WORK-PTR.
UNSTRING MSG-BODY UNSTRING MSG-BODY
DELIMITED BY SPACES DELIMITED BY SPACES
INTO COMMAND OF IRC-STATE INTO COMMAND OF IRC-STATE
WITH POINTER WORK-PTR. WITH POINTER WORK-PTR.
IF NUM-PARAMS IS NOT LESS THAN 1 THEN IF NUM-PARAMS OF IRC-PARAMS IS NOT LESS THAN 1 THEN
MOVE PARAM-PTR(1) TO WORK-PTR MOVE PARAM OF IRC-PARAMS(1) TO WORK-PTR
UNSTRING MSG-BODY UNSTRING MSG-BODY
DELIMITED BY SPACES DELIMITED BY SPACES
INTO TARGET INTO TARGET
@ -231,30 +230,31 @@
COMMAND OF IRC-STATE EQUALS WAITING-COMMAND. COMMAND OF IRC-STATE EQUALS WAITING-COMMAND.
GET-PARAMS. GET-PARAMS.
MOVE PARAM-PTR(NUM-PARAMS) TO WORK-PTR. MOVE PARAM OF IRC-PARAMS(NUM-PARAMS OF IRC-PARAMS)
TO WORK-PTR.
UNSTRING MSG-BODY DELIMITED BY "$NUL$" UNSTRING MSG-BODY DELIMITED BY "$NUL$"
INTO WORK INTO WORK
WITH POINTER WORK-PTR. WITH POINTER WORK-PTR.
MOVE 1 TO WORK-PTR. MOVE 1 TO WORK-PTR.
PERFORM BLANK-PARAM VARYING WORK-PTR FROM 1, BY 1, PERFORM BLANK-PARAM VARYING WORK-PTR FROM 1, BY 1,
UNTIL WORK-PTR IS NOT LESS THAN 5. UNTIL WORK-PTR IS NOT LESS THAN 5.
MOVE 0 TO WOPO-PARAMS, STATE. MOVE 0 TO NUM-PARAMS OF WOPO, STATE.
MOVE 1 TO WORK-PTR. MOVE 1 TO WORK-PTR.
PERFORM UNSTRING-PARAM UNTIL DONE. PERFORM UNSTRING-PARAM UNTIL DONE.
UNSTRING-PARAM. UNSTRING-PARAM.
ADD 1 TO WOPO-PARAMS. ADD 1 TO NUM-PARAMS OF WOPO.
UNSTRING WORK DELIMITED BY SPACE UNSTRING WORK DELIMITED BY SPACE
INTO PARAM(WOPO-PARAMS) INTO PARAM OF WOPO(NUM-PARAMS OF WOPO)
WITH POINTER WORK-PTR. WITH POINTER WORK-PTR.
IF PARAM(WOPO-PARAMS) IS EQUAL TO SPACES THEN IF PARAM OF WOPO(NUM-PARAMS OF WOPO) IS EQUAL TO SPACES THEN
SUBTRACT 1 FROM WOPO-PARAMS SUBTRACT 1 FROM NUM-PARAMS OF WOPO
MOVE 99 TO STATE. MOVE 99 TO STATE.
IF WOPO-PARAMS IS NOT LESS THAN 5 THEN IF NUM-PARAMS OF WOPO IS NOT LESS THAN 5 THEN
MOVE 99 TO STATE. MOVE 99 TO STATE.
BLANK-PARAM. BLANK-PARAM.
MOVE SPACES TO PARAM(WORK-PTR). MOVE SPACES TO PARAM OF WOPO(WORK-PTR).
PRESERVE-MESSAGE. PRESERVE-MESSAGE.
MOVE MSG-BODY TO MSG-BODY-TMP. MOVE MSG-BODY TO MSG-BODY-TMP.
@ -283,12 +283,13 @@
WAIT-FOR-ACC. WAIT-FOR-ACC.
PERFORM WAIT-FOR-COMMAND. PERFORM WAIT-FOR-COMMAND.
IF PARAM(1) EQUALS USER-NAME AND PARAM(4) EQUALS "ACC" THEN IF PARAM OF WOPO(1) EQUALS USER-NAME AND
PARAM OF WOPO(4) EQUALS "ACC" THEN
MOVE 99 TO STATE MOVE 99 TO STATE
IF PARAM(5) IS NOT EQUAL TO "3" THEN IF PARAM OF WOPO(5) IS NOT EQUAL TO "3" THEN
MOVE 0 TO USER-LEVEL MOVE 0 TO USER-LEVEL
ELSE ELSE
MOVE PARAM(3) TO USER-NAME MOVE PARAM OF WOPO(3) TO USER-NAME
READ USERS RECORD READ USERS RECORD
INVALID KEY MOVE 0 TO USER-LEVEL INVALID KEY MOVE 0 TO USER-LEVEL
ELSE MOVE SPACES TO COMMAND OF IRC-STATE. ELSE MOVE SPACES TO COMMAND OF IRC-STATE.
@ -365,7 +366,7 @@
HANDLE-KICK. HANDLE-KICK.
D DISPLAY "DETECTED KICK.". D DISPLAY "DETECTED KICK.".
MOVE SPACES TO WORK. MOVE SPACES TO WORK.
MOVE PARAM-PTR(2) TO WORK-PTR. MOVE PARAM OF IRC-PARAMS(2) TO WORK-PTR.
UNSTRING MSG-BODY DELIMITED BY SPACE UNSTRING MSG-BODY DELIMITED BY SPACE
INTO WORK INTO WORK
WITH POINTER WORK-PTR. WITH POINTER WORK-PTR.
@ -378,7 +379,8 @@
"$NUL$" "$NUL$"
INTO MSG-BODY INTO MSG-BODY
PERFORM SEND-LINE PERFORM SEND-LINE
MOVE PARAM-PTR(NUM-PARAMS) TO WORK-PTR MOVE PARAM OF IRC-PARAMS(NUM-PARAMS OF IRC-PARAMS)
TO WORK-PTR
UNSTRING MSG-BODY-TMP UNSTRING MSG-BODY-TMP
INTO WORK INTO WORK
WITH POINTER WORK-PTR WITH POINTER WORK-PTR
@ -395,67 +397,68 @@
PERFORM SEND-LINE. PERFORM SEND-LINE.
DDEBUG-PARAMS. DDEBUG-PARAMS.
D DISPLAY "PARAMETER ", DEBUG-PTR, ": ", PARAM(DEBUG-PTR). D DISPLAY "PARAMETER ", DEBUG-PTR, ": ",
D PARAM OF WOPO(DEBUG-PTR).
HANDLE-MESSAGE. HANDLE-MESSAGE.
D DISPLAY "HANDLING MESSAGE." D DISPLAY "HANDLING MESSAGE."
D PERFORM DEBUG-PARAMS D PERFORM DEBUG-PARAMS
D VARYING DEBUG-PTR D VARYING DEBUG-PTR
D FROM 1, BY 1 D FROM 1, BY 1
D UNTIL DEBUG-PTR IS GREATER THAN WOPO-PARAMS D UNTIL DEBUG-PTR IS GREATER THAN NUM-PARAMS OF WOPO
IF IS-CTCP THEN IF IS-CTCP THEN
PERFORM HANDLE-CTCP PERFORM HANDLE-CTCP
ELSE IF IS-COMMAND THEN ELSE IF IS-COMMAND THEN
MOVE 3 TO WORK-PTR MOVE 3 TO WORK-PTR
UNSTRING PARAM(1) INTO WORK UNSTRING PARAM OF WOPO(1) INTO WORK
WITH POINTER WORK-PTR WITH POINTER WORK-PTR
MOVE WORK TO PARAM(1) MOVE WORK TO PARAM OF WOPO(1)
D DISPLAY "COMMAND BODY ", PARAM(1) D DISPLAY "COMMAND BODY ", PARAM OF WOPO(1)
IF PARAM(1) IS EQUAL TO "BF-CODE" THEN IF PARAM OF WOPO(1) IS EQUAL TO "BF-CODE" THEN
PERFORM HANDLE-BF-CODE PERFORM HANDLE-BF-CODE
ELSE IF PARAM(1) IS EQUAL TO "BF-INPUT" THEN ELSE IF PARAM OF WOPO(1) IS EQUAL TO "BF-INPUT" THEN
PERFORM HANDLE-BF-INPUT PERFORM HANDLE-BF-INPUT
ELSE IF PARAM(1) IS EQUAL TO "BF-OUTPUT" THEN ELSE IF PARAM OF WOPO(1) IS EQUAL TO "BF-OUTPUT" THEN
PERFORM HANDLE-BF-OUTPUT PERFORM HANDLE-BF-OUTPUT
ELSE IF PARAM(1) IS EQUAL TO "BF-RUN" THEN ELSE IF PARAM OF WOPO(1) IS EQUAL TO "BF-RUN" THEN
D DISPLAY "BF-RUN" D DISPLAY "BF-RUN"
PERFORM HANDLE-BF-RUN PERFORM HANDLE-BF-RUN
ELSE IF PARAM(1) IS EQUAL TO "DEOP" THEN ELSE IF PARAM OF WOPO(1) IS EQUAL TO "DEOP" THEN
PERFORM HANDLE-DEOP PERFORM HANDLE-DEOP
ELSE IF PARAM(1) IS EQUAL TO "DEVOICE" THEN ELSE IF PARAM OF WOPO(1) IS EQUAL TO "DEVOICE" THEN
PERFORM HANDLE-DEVOICE PERFORM HANDLE-DEVOICE
ELSE IF PARAM(1) IS EQUAL TO "HELP" THEN ELSE IF PARAM OF WOPO(1) IS EQUAL TO "HELP" THEN
PERFORM HANDLE-HELP PERFORM HANDLE-HELP
ELSE IF PARAM(1) IS EQUAL TO "JOIN" THEN ELSE IF PARAM OF WOPO(1) IS EQUAL TO "JOIN" THEN
PERFORM HANDLE-JOIN PERFORM HANDLE-JOIN
ELSE IF PARAM(1) IS EQUAL TO "LEVEL" THEN ELSE IF PARAM OF WOPO(1) IS EQUAL TO "LEVEL" THEN
PERFORM HANDLE-LEVEL PERFORM HANDLE-LEVEL
ELSE IF PARAM(1) IS EQUAL TO "LICK" THEN ELSE IF PARAM OF WOPO(1) IS EQUAL TO "LICK" THEN
PERFORM HANDLE-LICK PERFORM HANDLE-LICK
ELSE IF PARAM(1) IS EQUAL TO "LIST-USERS" THEN ELSE IF PARAM OF WOPO(1) IS EQUAL TO "LIST-USERS" THEN
PERFORM HANDLE-LIST-USERS PERFORM HANDLE-LIST-USERS
ELSE IF PARAM(1) IS EQUAL TO "OP" THEN ELSE IF PARAM OF WOPO(1) IS EQUAL TO "OP" THEN
PERFORM HANDLE-OP PERFORM HANDLE-OP
ELSE IF PARAM(1) IS EQUAL TO "PART" THEN ELSE IF PARAM OF WOPO(1) IS EQUAL TO "PART" THEN
PERFORM HANDLE-PART PERFORM HANDLE-PART
ELSE IF PARAM(1) IS EQUAL TO "QUIT" THEN ELSE IF PARAM OF WOPO(1) IS EQUAL TO "QUIT" THEN
PERFORM HANDLE-QUIT PERFORM HANDLE-QUIT
ELSE IF PARAM(1) IS EQUAL TO "RELEVEL" THEN ELSE IF PARAM OF WOPO(1) IS EQUAL TO "RELEVEL" THEN
PERFORM HANDLE-RELEVEL PERFORM HANDLE-RELEVEL
ELSE IF PARAM(1) IS EQUAL TO "SHITFED" THEN ELSE IF PARAM OF WOPO(1) IS EQUAL TO "SHITFED" THEN
PERFORM HANDLE-SHITFED PERFORM HANDLE-SHITFED
ELSE IF PARAM(1) IS EQUAL TO "SHOW-ESCAPES" THEN ELSE IF PARAM OF WOPO(1) IS EQUAL TO "SHOW-ESCAPES" THEN
PERFORM HANDLE-SHOW-ESCAPES PERFORM HANDLE-SHOW-ESCAPES
ELSE IF PARAM(1) IS EQUAL TO "SOURCE" THEN ELSE IF PARAM OF WOPO(1) IS EQUAL TO "SOURCE" THEN
PERFORM HANDLE-SOURCE PERFORM HANDLE-SOURCE
ELSE IF PARAM(1) IS EQUAL TO "STRESS" THEN ELSE IF PARAM OF WOPO(1) IS EQUAL TO "STRESS" THEN
PERFORM HANDLE-STRESS PERFORM HANDLE-STRESS
ELSE IF PARAM(1) IS EQUAL TO "VOICE" THEN ELSE IF PARAM OF WOPO(1) IS EQUAL TO "VOICE" THEN
PERFORM HANDLE-VOICE. PERFORM HANDLE-VOICE.
HANDLE-HELP. HANDLE-HELP.
PERFORM BEGIN-STANDARD-REPLY. PERFORM BEGIN-STANDARD-REPLY.
IF PARAM(2) IS EQUAL TO "ME" THEN IF PARAM OF WOPO(2) IS EQUAL TO "ME" THEN
STRING "$240$$159$$142$$135$ " STRING "$240$$159$$142$$135$ "
- "GOD HELPS THOSE WHO HELP THEMSELVES, COMMIE. " - "GOD HELPS THOSE WHO HELP THEMSELVES, COMMIE. "
- "$240$$159$$142$$134" - "$240$$159$$142$$134"
@ -463,8 +466,8 @@
WITH POINTER WORK-PTR WITH POINTER WORK-PTR
ELSE ELSE
STRING "COMMANDS$COLN$ " STRING "COMMANDS$COLN$ "
- "$$BF-CODE $$BF-INPUT $$BF-OUTPUT $$BF-RUN $$DEOP " - "$$BF-CODE $$BF-INPUT $$BF-OUTPUT $$BF-RUN "
- "$$DEVOICE $$HELP $$JOIN $$LEVEL $$LICK " - "$$DEOP $$DEVOICE $$HELP $$JOIN $$LEVEL $$LICK "
- "$$LIST-USERS $$OP $$PART $$RELEVEL $$SHITFED " - "$$LIST-USERS $$OP $$PART $$RELEVEL $$SHITFED "
- "$$SHOW-ESCAPES $$SOURCE $$STRESS $$VOICE " - "$$SHOW-ESCAPES $$SOURCE $$STRESS $$VOICE "
- "$NUL$" - "$NUL$"
@ -496,10 +499,10 @@
PERFORM SEND-LINE. PERFORM SEND-LINE.
HANDLE-LICK. HANDLE-LICK.
IF WOPO-PARAMS IS LESS THAN 2 THEN IF NUM-PARAMS OF WOPO IS LESS THAN 2 THEN
MOVE NICK TO WORK MOVE NICK TO WORK
ELSE ELSE
MOVE PARAM(2) TO WORK. MOVE PARAM OF WOPO(2) TO WORK.
PERFORM BEGIN-REPLY. PERFORM BEGIN-REPLY.
STRING "$SOH$ACTION VIGOROUSLY LICKS " DELIMITED BY SIZE, STRING "$SOH$ACTION VIGOROUSLY LICKS " DELIMITED BY SIZE,
WORK DELIMITED BY SPACES, WORK DELIMITED BY SPACES,
@ -509,8 +512,8 @@
PERFORM SEND-LINE. PERFORM SEND-LINE.
HANDLE-LEVEL. HANDLE-LEVEL.
IF PARAM(2) IS NOT EQUAL TO SPACES THEN IF PARAM OF WOPO(2) IS NOT EQUAL TO SPACES THEN
MOVE PARAM(2) TO USER-NAME MOVE PARAM OF WOPO(2) TO USER-NAME
ELSE ELSE
MOVE NICK TO USER-NAME. MOVE NICK TO USER-NAME.
READ USERS RECORD READ USERS RECORD
@ -569,10 +572,10 @@
PERFORM REPLY-ACK. PERFORM REPLY-ACK.
PERFORM VALIDATE-USER. PERFORM VALIDATE-USER.
IF USER-LEVEL IS NOT LESS THAN 80 AND IF USER-LEVEL IS NOT LESS THAN 80 AND
PARAM(2) IS NOT EQUAL TO "0" THEN PARAM OF WOPO(2) IS NOT EQUAL TO "0" THEN
MOVE SPACES TO MSG-BODY MOVE SPACES TO MSG-BODY
STRING "JOIN ", DELIMITED BY SIZE, STRING "JOIN ", DELIMITED BY SIZE,
PARAM(2), DELIMITED BY SPACES, PARAM OF WOPO(2), DELIMITED BY SPACES,
"$NUL$" "$NUL$"
INTO MSG-BODY INTO MSG-BODY
PERFORM SEND-LINE PERFORM SEND-LINE
@ -582,10 +585,10 @@
HANDLE-PART. HANDLE-PART.
PERFORM REPLY-ACK. PERFORM REPLY-ACK.
PERFORM VALIDATE-USER. PERFORM VALIDATE-USER.
IF WOPO-PARAMS IS LESS THAN 2 THEN IF NUM-PARAMS OF WOPO IS LESS THAN 2 THEN
MOVE TARGET TO WORK MOVE TARGET TO WORK
ELSE ELSE
MOVE PARAM(2) TO WORK MOVE PARAM OF WOPO(2) TO WORK
IF USER-LEVEL IS NOT LESS THAN 80 THEN IF USER-LEVEL IS NOT LESS THAN 80 THEN
MOVE SPACES TO MSG-BODY MOVE SPACES TO MSG-BODY
STRING "PART " DELIMITED BY SIZE, STRING "PART " DELIMITED BY SIZE,
@ -603,7 +606,7 @@
STRING "$LOWO$" INTO MSG-BODY WITH POINTER WORK-PTR. STRING "$LOWO$" INTO MSG-BODY WITH POINTER WORK-PTR.
STRING-PARAMS. STRING-PARAMS.
STRING PARAM(WOPO-COUNTER) DELIMITED BY SPACES STRING PARAM OF WOPO(WOPO-COUNTER) DELIMITED BY SPACES
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR. WITH POINTER WORK-PTR.
ADD 1 TO WORK-PTR. ADD 1 TO WORK-PTR.
@ -611,9 +614,9 @@
HANDLE-VOICE. HANDLE-VOICE.
PERFORM REPLY-ACK. PERFORM REPLY-ACK.
PERFORM VALIDATE-USER. PERFORM VALIDATE-USER.
IF WOPO-PARAMS IS LESS THAN 2 THEN IF NUM-PARAMS OF WOPO IS LESS THAN 2 THEN
MOVE NICK TO PARAM(2) MOVE NICK TO PARAM OF WOPO(2)
MOVE 2 TO WOPO-PARAMS. MOVE 2 TO NUM-PARAMS OF WOPO.
IF USER-LEVEL IS NOT LESS THAN 60 THEN IF USER-LEVEL IS NOT LESS THAN 60 THEN
MOVE SPACES TO MSG-BODY MOVE SPACES TO MSG-BODY
MOVE 1 TO WORK-PTR MOVE 1 TO WORK-PTR
@ -625,12 +628,14 @@
PERFORM STRING-LOWVS PERFORM STRING-LOWVS
VARYING WOPO-COUNTER VARYING WOPO-COUNTER
FROM 2, BY 1 FROM 2, BY 1
UNTIL WOPO-COUNTER IS GREATER THAN WOPO-PARAMS UNTIL WOPO-COUNTER IS GREATER THAN
NUM-PARAMS OF WOPO
ADD 1 TO WORK-PTR ADD 1 TO WORK-PTR
PERFORM STRING-PARAMS PERFORM STRING-PARAMS
VARYING WOPO-COUNTER VARYING WOPO-COUNTER
FROM 2, BY 1 FROM 2, BY 1
UNTIL WOPO-COUNTER IS GREATER THAN WOPO-PARAMS UNTIL WOPO-COUNTER IS GREATER THAN
NUM-PARAMS OF WOPO
STRING "$NUL$" STRING "$NUL$"
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR WITH POINTER WORK-PTR
@ -641,9 +646,9 @@
HANDLE-DEVOICE. HANDLE-DEVOICE.
PERFORM REPLY-ACK. PERFORM REPLY-ACK.
PERFORM VALIDATE-USER. PERFORM VALIDATE-USER.
IF WOPO-PARAMS IS LESS THAN 2 THEN IF NUM-PARAMS OF WOPO IS LESS THAN 2 THEN
MOVE NICK TO PARAM(2) MOVE NICK TO PARAM OF WOPO(2)
MOVE 2 TO WOPO-PARAMS. MOVE 2 TO NUM-PARAMS OF WOPO.
IF USER-LEVEL IS NOT LESS THAN 60 THEN IF USER-LEVEL IS NOT LESS THAN 60 THEN
MOVE SPACES TO MSG-BODY MOVE SPACES TO MSG-BODY
MOVE 1 TO WORK-PTR MOVE 1 TO WORK-PTR
@ -655,12 +660,14 @@
PERFORM STRING-LOWVS PERFORM STRING-LOWVS
VARYING WOPO-COUNTER VARYING WOPO-COUNTER
FROM 2, BY 1 FROM 2, BY 1
UNTIL WOPO-COUNTER IS GREATER THAN WOPO-PARAMS UNTIL WOPO-COUNTER IS GREATER THAN
NUM-PARAMS OF WOPO
ADD 1 TO WORK-PTR ADD 1 TO WORK-PTR
PERFORM STRING-PARAMS PERFORM STRING-PARAMS
VARYING WOPO-COUNTER VARYING WOPO-COUNTER
FROM 2, BY 1 FROM 2, BY 1
UNTIL WOPO-COUNTER IS GREATER THAN WOPO-PARAMS UNTIL WOPO-COUNTER IS GREATER THAN
NUM-PARAMS OF WOPO
STRING "$NUL$" STRING "$NUL$"
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR WITH POINTER WORK-PTR
@ -671,9 +678,9 @@
HANDLE-OP. HANDLE-OP.
PERFORM REPLY-ACK. PERFORM REPLY-ACK.
PERFORM VALIDATE-USER. PERFORM VALIDATE-USER.
IF WOPO-PARAMS IS LESS THAN 2 THEN IF NUM-PARAMS OF WOPO IS LESS THAN 2 THEN
MOVE NICK TO PARAM(2) MOVE NICK TO PARAM OF WOPO(2)
MOVE 2 TO WOPO-PARAMS. MOVE 2 TO NUM-PARAMS OF WOPO.
IF USER-LEVEL IS NOT LESS THAN 70 THEN IF USER-LEVEL IS NOT LESS THAN 70 THEN
MOVE SPACES TO MSG-BODY MOVE SPACES TO MSG-BODY
MOVE 1 TO WORK-PTR MOVE 1 TO WORK-PTR
@ -685,12 +692,14 @@
PERFORM STRING-LOWOS PERFORM STRING-LOWOS
VARYING WOPO-COUNTER VARYING WOPO-COUNTER
FROM 2, BY 1 FROM 2, BY 1
UNTIL WOPO-COUNTER IS GREATER THAN WOPO-PARAMS UNTIL WOPO-COUNTER IS GREATER THAN
NUM-PARAMS OF WOPO
ADD 1 TO WORK-PTR ADD 1 TO WORK-PTR
PERFORM STRING-PARAMS PERFORM STRING-PARAMS
VARYING WOPO-COUNTER VARYING WOPO-COUNTER
FROM 2, BY 1 FROM 2, BY 1
UNTIL WOPO-COUNTER IS GREATER THAN WOPO-PARAMS UNTIL WOPO-COUNTER IS GREATER THAN
NUM-PARAMS OF WOPO
STRING "$NUL$" STRING "$NUL$"
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR WITH POINTER WORK-PTR
@ -701,9 +710,9 @@
HANDLE-DEOP. HANDLE-DEOP.
PERFORM REPLY-ACK. PERFORM REPLY-ACK.
PERFORM VALIDATE-USER. PERFORM VALIDATE-USER.
IF WOPO-PARAMS IS LESS THAN 2 THEN IF NUM-PARAMS OF WOPO IS LESS THAN 2 THEN
MOVE NICK TO PARAM(2) MOVE NICK TO PARAM OF WOPO(2)
MOVE 2 TO WOPO-PARAMS. MOVE 2 TO NUM-PARAMS OF WOPO.
IF USER-LEVEL IS NOT LESS THAN 70 THEN IF USER-LEVEL IS NOT LESS THAN 70 THEN
MOVE SPACES TO MSG-BODY MOVE SPACES TO MSG-BODY
MOVE 1 TO WORK-PTR MOVE 1 TO WORK-PTR
@ -715,12 +724,14 @@
PERFORM STRING-LOWOS PERFORM STRING-LOWOS
VARYING WOPO-COUNTER VARYING WOPO-COUNTER
FROM 2, BY 1 FROM 2, BY 1
UNTIL WOPO-COUNTER IS GREATER THAN WOPO-PARAMS UNTIL WOPO-COUNTER IS GREATER THAN
NUM-PARAMS OF WOPO
ADD 1 TO WORK-PTR ADD 1 TO WORK-PTR
PERFORM STRING-PARAMS PERFORM STRING-PARAMS
VARYING WOPO-COUNTER VARYING WOPO-COUNTER
FROM 2, BY 1 FROM 2, BY 1
UNTIL WOPO-COUNTER IS GREATER THAN WOPO-PARAMS UNTIL WOPO-COUNTER IS GREATER THAN
NUM-PARAMS OF WOPO
STRING "$NUL$" STRING "$NUL$"
INTO MSG-BODY INTO MSG-BODY
WITH POINTER WORK-PTR WITH POINTER WORK-PTR
@ -748,10 +759,10 @@
PERFORM REPLY-ACK. PERFORM REPLY-ACK.
PERFORM VALIDATE-USER. PERFORM VALIDATE-USER.
IF USER-LEVEL IS NOT LESS THAN 90 THEN IF USER-LEVEL IS NOT LESS THAN 90 THEN
IF PARAM(2) IS NOT EQUAL TO SPACES THEN IF PARAM OF WOPO(2) IS NOT EQUAL TO SPACES THEN
IF PARAM(2) IS EQUAL TO "ON" THEN IF PARAM OF WOPO(2) IS EQUAL TO "ON" THEN
SET SHOW-ESCAPES TO ON SET SHOW-ESCAPES TO ON
ELSE IF PARAM(2) IS EQUAL TO "OFF" THEN ELSE IF PARAM OF WOPO(2) IS EQUAL TO "OFF" THEN
SET SHOW-ESCAPES TO OFF SET SHOW-ESCAPES TO OFF
ELSE NEXT SENTENCE ELSE NEXT SENTENCE
ELSE IF SHOULD-SHOW-ESCAPES THEN ELSE IF SHOULD-SHOW-ESCAPES THEN
@ -769,9 +780,9 @@
HANDLE-RELEVEL. HANDLE-RELEVEL.
PERFORM REPLY-ACK. PERFORM REPLY-ACK.
PERFORM VALIDATE-USER. PERFORM VALIDATE-USER.
MOVE PARAM(2) TO USER-NAME. MOVE PARAM OF WOPO(2) TO USER-NAME.
IF USER-LEVEL IS NOT LESS THAN 99 THEN IF USER-LEVEL IS NOT LESS THAN 99 THEN
MOVE PARAM(3) TO USER-LEVEL MOVE PARAM OF WOPO(3) TO USER-LEVEL
IF USER-LEVEL IS NOT GREATER THAN ZERO THEN IF USER-LEVEL IS NOT GREATER THAN ZERO THEN
DELETE USERS RECORD DELETE USERS RECORD
INVALID KEY NEXT SENTENCE INVALID KEY NEXT SENTENCE
@ -789,7 +800,7 @@
PERFORM SEND-LINE. PERFORM SEND-LINE.
HANDLE-BF-CODE. HANDLE-BF-CODE.
IF WOPO-PARAMS IS LESS THAN 2 THEN IF NUM-PARAMS OF WOPO IS LESS THAN 2 THEN
PERFORM BEGIN-STANDARD-REPLY PERFORM BEGIN-STANDARD-REPLY
STRING "CODE. ", STRING "CODE. ",
BF-CODE, BF-CODE,
@ -801,7 +812,8 @@
ELSE ELSE
PERFORM REPLY-ACK PERFORM REPLY-ACK
PERFORM VALIDATE-USER PERFORM VALIDATE-USER
MOVE PARAM-PTR(NUM-PARAMS) TO WORK-PTR MOVE PARAM OF IRC-PARAMS(NUM-PARAMS OF IRC-PARAMS)
TO WORK-PTR
UNSTRING MSG-BODY DELIMITED BY SPACE UNSTRING MSG-BODY DELIMITED BY SPACE
INTO WORK, INTO WORK,
WITH POINTER WORK-PTR WITH POINTER WORK-PTR
@ -814,7 +826,7 @@
PERFORM REPLY-NAK. PERFORM REPLY-NAK.
HANDLE-BF-INPUT. HANDLE-BF-INPUT.
IF WOPO-PARAMS IS LESS THAN 2 THEN IF NUM-PARAMS OF WOPO IS LESS THAN 2 THEN
PERFORM BEGIN-STANDARD-REPLY PERFORM BEGIN-STANDARD-REPLY
STRING "INPUT. ", STRING "INPUT. ",
BF-INPUT BF-INPUT
@ -826,7 +838,8 @@
ELSE ELSE
PERFORM REPLY-ACK PERFORM REPLY-ACK
PERFORM VALIDATE-USER PERFORM VALIDATE-USER
MOVE PARAM-PTR(NUM-PARAMS) TO WORK-PTR MOVE PARAM OF IRC-PARAMS(NUM-PARAMS OF IRC-PARAMS)
TO WORK-PTR
UNSTRING MSG-BODY DELIMITED BY SPACE UNSTRING MSG-BODY DELIMITED BY SPACE
INTO WORK, INTO WORK,
WITH POINTER WORK-PTR WITH POINTER WORK-PTR
@ -856,10 +869,10 @@
D DISPLAY "HANDLING BF-RUN". D DISPLAY "HANDLING BF-RUN".
PERFORM REPLY-ACK PERFORM REPLY-ACK
PERFORM VALIDATE-USER. PERFORM VALIDATE-USER.
IF WOPO-PARAMS IS LESS THAN 2 THEN IF NUM-PARAMS OF WOPO IS LESS THAN 2 THEN
MOVE 999 TO MAYBE-CYCLE-LIMIT MOVE 999 TO MAYBE-CYCLE-LIMIT
ELSE ELSE
UNSTRING PARAM(2) INTO MAYBE-CYCLE-LIMIT. UNSTRING PARAM OF WOPO(2) INTO MAYBE-CYCLE-LIMIT.
D DISPLAY "CYCLE LIMIT. ", CYCLE-LIMIT. D DISPLAY "CYCLE LIMIT. ", CYCLE-LIMIT.
IF USER-LEVEL IS NOT LESS THAN 50 THEN IF USER-LEVEL IS NOT LESS THAN 50 THEN
MOVE MAYBE-CYCLE-LIMIT TO CYCLE-LIMIT MOVE MAYBE-CYCLE-LIMIT TO CYCLE-LIMIT
@ -896,21 +909,22 @@
NEXT SENTENCE NEXT SENTENCE
ELSE ELSE
MOVE 6 TO WORK-PTR MOVE 6 TO WORK-PTR
UNSTRING PARAM(1) DELIMITED BY SPACE OR "$SOH$" UNSTRING PARAM OF WOPO(1) DELIMITED BY SPACE OR "$SOH$"
INTO WORK INTO WORK
WITH POINTER WORK-PTR WITH POINTER WORK-PTR
D DISPLAY "CTCP PARAM. ", WORK D DISPLAY "CTCP PARAM. ", WORK
MOVE WORK TO PARAM(1) MOVE WORK TO PARAM OF WOPO(1)
IF PARAM(1) IS EQUAL TO "PING" THEN IF PARAM OF WOPO(1) IS EQUAL TO "PING" THEN
PERFORM HANDLE-PING PERFORM HANDLE-PING
ELSE IF PARAM(1) IS EQUAL TO "VERSION" THEN ELSE IF PARAM OF WOPO(1) IS EQUAL TO "VERSION" THEN
PERFORM HANDLE-VERSION PERFORM HANDLE-VERSION
* ELSE IF PARAM(1) IS EQUAL TO "TIME" THEN * ELSE IF PARAM OF WOPO(1) IS EQUAL TO "TIME" THEN
* PERFORM HANDLE-TIME * PERFORM HANDLE-TIME
ELSE NEXT SENTENCE. ELSE NEXT SENTENCE.
HANDLE-PING. HANDLE-PING.
MOVE PARAM-PTR(NUM-PARAMS) TO WORK-PTR. MOVE PARAM OF IRC-PARAMS(NUM-PARAMS OF IRC-PARAMS)
TO WORK-PTR.
ADD 5 TO WORK-PTR ADD 5 TO WORK-PTR
UNSTRING MSG-BODY DELIMITED BY "$NUL$" UNSTRING MSG-BODY DELIMITED BY "$NUL$"
INTO WORK INTO WORK