Dec 252017
 
Latest merge file for RBBS 17.3 to convert it to 17.3b.
File RBBS-MRG.ZIP from The Programmer’s Corner in
Category BBS Files
Latest merge file for RBBS 17.3 to convert it to 17.3b.
File Name File Size Zip Size Zip Type
MRG-READ.ME 1140 515 deflated
SOURCE 0 0 stored
CNFG1028.BAS 13047 2988 deflated
CNFG1028.MRG 9580 2451 deflated
CSUB1028.MRG 13852 4153 deflated
LKL10283.DAT 231 149 deflated
LKL10284.DAT 213 130 deflated
R-PC1028.MRG 2698 878 deflated
RFIX173B.DOC 28614 7131 deflated
RSB11028.MRG 3159 1381 deflated
RSB21028.MRG 10867 3922 deflated
RSB31028.MRG 4205 1922 deflated
RSB41028.MRG 14477 4467 deflated
RSB51028.MRG 4614 1869 deflated
RVAR1028.BAS 20406 4236 deflated
UPGRADE.BAT 12445 2778 deflated

Download File RBBS-MRG.ZIP Here

Contents of the RFIX173B.DOC file


=====[ Changes to RBBS-PC 17.3B ]========

Last Mod: KG102703

Note: BASE is the release of 17.3A/0923

CONVENTIONS:
The changes are assigned numbers that correspond to the
month, day, and order in which they were made. Any mods
are dated following the modification description. The
lines of source code that are changed/modified/added are
designated by the comment beginning in column 70 of "' iiMMDD#"
where ii is the initials of the person providing the change.

The latest set of merges available is:

-------------------------------------------------------------------
RBBS-PC.EXE 09-28-90 07:00 PM EST Release of 17.3B
--------------------------------------------------------------------
Summary

EXE MOD Short Description
---- -------- -----------------
RBBS KG102703 Upgraded security not letting join conferences
RBBS KG102702 Not marking all batch downloads in personal dir
RBBS KG102701 Unable to locate some files actually present
CNFG DA102402 File path input often didn't work
RBBS DA102401 Page with SNOOP off doesn't display caller name
RBBS KG102202 Unable to J)oin main from conference v)iew
CNFG DA102101 Pers dir check complains about comment lines
RBBS DA101801 When snoop is off, page and autopage won't work
RBBS KG102001 Erroneous msg on thread when subject begins with a #
CNFG KG101203 Sometimes get untrapped error initializing modem's firmware
RBBS KG101202 Some commands not stacking properly
RBBS KG101201 Bulletins command can list non-bulletins
RBBS KG101102 Debugging statement left on sysop's screen when door
RBBS KG101101 Not properly finding some options

Contributors include:

DA - Doug Azzarito
KG - Ken Goosens

------------------------[ KG102703 ]-------------------------

Problem: When a questionnaire in main raises security to a level
that would let the caller join a semi-private conference,
callers are not able to join until they call back.

Solution: The security used to decide what conferences person
can join is the logon security. Revise logon security to new
value if user is in main, but not if in another conference.
Change RBBSSUB4.BAS as follows:

64462 CALL CheckInt (ZOutTxt$)
IF ZErrCode = 0 THEN _
Temp = ZUserSecLevel + _
WasX * ZTestedIntValue : _
IF Temp <= MaxSecLevel THEN _
ZUserSecLevel = Temp : _
ZUserSecSave = ZUserSecLevel : _
ZAdjustedSecurity = ZTrue : _
IF ZOrigMsgFile$ = ZActiveMessageFile$ THEN _ ' KG102703
ZOrigSec = ZUserSecLevel ' KG102703
GOTO 64110

------------------------[ KG102702 ]-------------------------

Problem: When do batch downloads using P)ersonal download, the
entry is marked as downloaded only for the last file.

Solution: Change RBBSSUB4.BAS as follows:

(line 59400)

SUB LogPDown (PrivateDnld,DwnIndex) STATIC ' RH021501
IF NOT PrivateDnld THEN _
EXIT SUB
ZWasEN$ = ZPersonalDir$
WasBX = &H4
ZSubParm = 9
CALL FileLock
WasL = 36 + ZMaxDescLen + ZPersonalLen
CLOSE 2
IF ZShareIt THEN _
OPEN ZWasEN$ FOR RANDOM SHARED AS #2 LEN=WasL _
ELSE OPEN "R",2,ZPersonalDir$,WasL
FIELD #2,WasL AS PersonalRec$
FOR Temp = 1 TO ZDownFiles ' KG102702
ZWasA = VAL(MID$(ZUserIn$(0),5 * (DwnIndex - Temp) + 1,5)) ' KG102702
GET #2,ZWasA ' KG102702
MID$(PersonalRec$,WasL-2,1) = "!" ' KG102702
PUT #2,ZWasA ' KG102702
NEXT ' KG102702
CALL UnLockAppend
END SUB

------------------------[ KG102701 ]-------------------------

Problem: When using Fast File System with Tab index, files beginning
with a symbol between "9" and "A", such as "@", will never be found.

Solution: Change RBBSSUB5.BAS as follows:

(line 63520)

SUB BinSearch (PassedSearchFor$,StartPos, NumChars, LenRec, High, RecFoundAt, RecFound$) STATIC
SearchFor$ = LEFT$(PassedSearchFor$,NumChars)
SearchFor$ = SearchFor$ + SPACE$(NumChars-LEN(SearchFor$))
FIELD #2, LenRec AS SearchRec$
Low = 0
IF LEN(ZFastTabs$) < 72 THEN _
GOTO 63522
WasX$ = LEFT$(SearchFor$,1)
WasX = INSTR("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",WasX$)
IF WasX > 0 THEN _
Low = CVI(MID$(ZFastTabs$,1+2*(WasX-1),2)) - 1 : _ ' KG102701
IF WasX < 36 THEN _ ' KG102701
High = CVI(MID$(ZFastTabs$,1+2*WasX,2)) ' KG102701

------------------------[ DA102402 ]-------------------------
Problem: The input routine in CONFIG for PATH names would not
accept many legal paths, and the check routine was inoperable

Solution: Change CONFIG.BAS as follows:

25850 CALL ASKRO ("Enter " + A$ + " DOS sub-directory name (CR to end). ",24,HJ$)
CALL ALLCAPS (HJ$)
IF LEN(HJ$) < 1 THEN _
RETURN
X$ = HJ$ ' DA102402
IF LEN(X$) = 2 AND INSTR(X$,":") = 2 THEN _ ' DA102402
RETURN
I = INSTR(X$,":") ' DA102402
IF I = 2 THEN _ ' DA102402
I = I + 1 _ ' DA102402
ELSE _ ' DA102402
GOTO 25850 ' DA102402
WHILE I <= LEN(X$) ' DA102402
Y = INSTR(I,X$,"\") ' DA102402
IF Y = 0 THEN _ ' DA102402
Y = LEN(X$) + 1 ' DA102402
L1 = Y - I ' DA102402
GOSUB 25876 ' DA102402
IF I <> 0 THEN _ ' DA102402
GOTO 25850 ' DA102402
I = Y + 1 ' DA102402
WEND ' DA102402
RETURN ' DA102402

25876 HJ$ = MID$(X$,I,L1)
I = 1 ' DA102402
IF LEN(HJ$) > 12 THEN _
RETURN ' DA102402
L1 = INSTR(HJ$,".")
IF L1 = 0 AND (LEN(HJ$) > 8) THEN _ ' DA102402
RETURN ' DA102402
IF L1 > 8 THEN _ ' DA102402
RETURN ' DA102402
IF L1 > 0 AND (LEN(HJ$) - L1 > 3) THEN _ ' DA102402
RETURN ' DA102402

25920 FOR J = 1 TO LEN(HJ$)
X = ASC(MID$(HJ$,J,1))
IF (X > 63 AND X < 91) THEN _
GOTO 26020
IF (X > 47 AND X < 58) THEN _
GOTO 26020
IF (X = 33) THEN _
GOTO 26020
IF (X > 34 AND X < 42) THEN _
GOTO 26020
IF (X > 43 AND X < 47) THEN _
GOTO 26020
IF (X > 96 AND X < 124) THEN _
GOTO 26020
IF (X = 125) THEN _
GOTO 26020
I = 1 ' DA102402
RETURN ' DA102402

26020 NEXT
I = 0 ' DA102402
RETURN
'
' * VERIFY THAT THE DISK DRIVE IS ONE ELIGIBLE FOR DOWNLOADING
'

------------------------[ DA102401 ]-------------------------
Problem: When SNOOP is off, and caller pages SysOp, the caller's
name is not on the local screen

Solution: Call LINE25 before page and autopage as follows,
in RBBS-PC.BAS:

4710 ZOutTxt$ = "Page " + _
ZSysopFirstName$ + _
" (Y/[N])"
CALL SkipLine (1)
GOSUB 12999
IF NOT ZYes THEN _
RETURN
PageCount = 0
ZOutTxt$ = "Paging " + _
ZSysopFirstName$ ' KG071301
GOSUB 12978
PageTimeStart! = TIMER
TempSnoop = ZSnoop ' DA101801
ZSnoop = ZTrue ' DA101801
CALL Line25 ' DA102401

And in RBBSSUB4.BAS as follows:

60300 ' $SUBTITLE: 'AutoPage - NOTIFIES ZSysop WHEN SPECIFIC USER CALLS'
.
.
.
TempSnoop = ZSnoop ' DA101801
ZSnoop = ZTrue ' DA101801
CALL Line25 ' DA102401
FOR WasI = 1 TO VAL(ZWorkAra$(3))
.
.
.
------------------------[ KG102202 ]-------------------------

Problem: Get "no such option MAIN" when try to join main in
the conference v)iew function.

Solution: (fix to a fix) Change RBBSSUB4.BAS as follows:

59532 IF INSTR(ReturnOn$,LEFT$(ZWasZ$,1)) > 0 THEN _ ' KG102202
ZWasZ$ = LEFT$(ZWasZ$,1) : _ ' KG102202
EXIT SUB
GOSUB 59547
GOTO 59515

------------------------[ DA102101 ]-------------------------

Problem: Config check on structure of personal directory
wrongly complains about comment lines.

Solution: Change CNFG-SUB.BAS as follows:

61755 SUB CHKPERSDIR (PDIR$, DESC.LEN, NAMELEN) STATIC
CLS
LOCATE 5, 21
PRINT "Checking Personal Directory "; PDIR$;
NLINES = 0
LOCATE 7, 27
PRINT "Line #";
LOCATE 9, 20
COLOR 0, 7
PRINT " Last Line with an ERROR ";
LOCATE 12, 28
PRINT " Last ERROR ";
COLOR 7, 0
GO.ON = -1
CALL FINDFILE(PDIR$, FEXISTS)
IF NOT FEXISTS THEN _
LOCATE 6, 25: _
PRINT "File not found"; : _
GOTO 61775
LINELEN = 34 + DESC.LEN + NAMELEN
OPEN PDIR$ FOR INPUT AS #2
WHILE NOT EOF(2) AND GO.ON
NLINES = NLINES + 1
LINE INPUT #2, A$
L = LEN(A$)
LOCATE 7, 36
PRINT NLINES;
IF L > LINELEN THEN _
CALL HANDERR(A$, NLINES, "Too LONG: has" + STR$(L) + " chars but should have" + STR$(LINELEN), GO.ON) : _
IF NOT GO.ON THEN _
GOTO 61770
IF L < LINELEN THEN _
CALL HANDERR(A$, NLINES, "Too SHORT: has" + STR$(L) + " chars but should have" + STR$(LINELEN), GO.ON) : _
IF NOT GO.ON THEN _
GOTO 61770
IF L > 30 AND (LEFT$(A$,1) <> " ") THEN _ ' DA102101
X$ = MID$(A$, 24, 2) + MID$(A$, 27, 2) + MID$(A$, 30, 2) : _
I = 1 : _
WHILE I < 7 AND INSTR("0123456789", MID$(X$, I, 1)) > 0 : _
I = I + 1 : _
WEND : _
IF I < 7 THEN _
CALL HANDERR(A$, NLINES, "INVALID CHARACTER <" + MID$(X$, I, 1) + "> in date field", GO.ON) : _
IF NOT GO.ON THEN _
GOTO 61770
IF L = LINELEN THEN _
X$ = RIGHT$(A$, 1) : _
IF INSTR("*!", X$) = 0 THEN _
CALL HANDERR(A$, NLINES, "Last char on line should be * or ! but found <" + X$ + ">", GO.ON) : _
IF NOT GO.ON THEN _
GOTO 61770
IF L = LINELEN THEN _
X$ = MID$(A$, L - NAMELEN, LINELEN) : _
IF LEFT$(X$, 1) = " " THEN _
IF INSTR("0123456789-", MID$(X$, 2, 1)) = 0 THEN _
CALL HANDERR(A$, NLINES, "Name field at col" + STR$(L - NAMELEN) + " has <" + LEFT$(X$, 1) + ">, needs non-blank or blank+number", GO.ON) : _
IF NOT GO.ON THEN _
GOTO 61770

------------------------[ DA101801 ]-------------------------

Problem: Most sysops turn off snoop only to improve performance.
But snoop off supresses page and autopage. In a few cases, however,
SysOp wants page off because BBS runs in bedroom. In that case,
use office hours to restrict page.

Change RBBS-PC.BAS as follows:

4710 ZOutTxt$ = "Page " + _
ZSysopFirstName$ + _
" (Y/[N])"
CALL SkipLine (1)
GOSUB 12999
IF NOT ZYes THEN _
RETURN
PageCount = 0
ZOutTxt$ = "Paging " + _
ZSysopFirstName$ ' KG071301
GOSUB 12978
PageTimeStart! = TIMER
TempSnoop = ZSnoop ' DA101801
ZSnoop = ZTrue ' DA101801

4745 GOSUB 12978
CALL CheckTime (PageTimeStart!, PageTimeNow!, 2)
IF PageTimeNow! < 30 THEN GOTO 4730
ZSnoop = TempSnoop ' DA101801

Change RBBSSUB4.BAS as follows:

(line 60300)

SUB AutoPage STATIC
CALL FindIt (ZAutoPageDef$)
IF NOT ZOK THEN _
EXIT SUB
ZErrCode = 0
ZOK = ZFalse
WHILE NOT EOF(2) AND ZOK = ZFalse AND ZErrCode = 0
CALL ReadParms (ZWorkAra$(),4,1)
IF ZErrCode = 0 THEN _
ZOK = (ZWorkAra$(1) = ZActiveUserName$) : _
IF NOT ZOK THEN _
IF ZNewUser AND ZWorkAra$(1) = "NEWUSER" THEN _
ZOK = ZTrue _
ELSE IF LEFT$(ZWorkAra$(1),1) = "/" AND LEN(ZWorkAra$(1)) > 2 THEN _
ZWasB = INSTR (2,ZWorkAra$(1),"/") : _
IF ZWasB > 0 AND LEN(ZWorkAra$(1)) > ZWasB THEN _
IF ZUserSecLevel <= VAL(MID$(ZWorkAra$(1),ZWasB+1)) AND _
ZUserSecLevel >= VAL(MID$(ZWorkAra$(1),2)) THEN _
ZOK = ZTrue
WEND
CLOSE 2
IF ZErrCode > 0 OR NOT ZOK THEN _
ZErrCode = 0 : _
EXIT SUB
ZPageStatus$ = "AP!" ' DA080902
IF LEFT$(ZWorkAra$(2),1) = "N" THEN _
ZOutTxt$ = "Telling sysop you're on..." : _
CALL RingCaller
ZWasB = (ZWorkAra$(4) = "")
ZWorkAra$(5) = ""
TempSnoop = ZSnoop ' DA101801
ZSnoop = ZTrue ' DA101801
FOR WasI = 1 TO VAL(ZWorkAra$(3))
IF ZWasB THEN _
CALL LPrnt (ZBellRinger$,0) : _
ELSE ZWorkAra$(5) = ZWorkAra$(5) + "O4 X" + VARPTR$(ZWorkAra$(4))
NEXT
IF NOT ZWasB THEN _
CALL RBBSPlay (ZWorkAra$(5))
ZSnoop = TempSnoop ' DA101801
END SUB

------------------------[ KG102001 ]-------------------------

Problem: When subject of message begins with a number, can
get msg "no such msg #" when threading.

Solution: Change RBBS-PC.BAS as follows:

4515 IF Forward THEN _
ZOutTxt$ = "No new messages" : _
ZLastMsgRead = HighMsgNUmber : _
ZMailWaiting = ZFalse _
ELSE ZOutTxt$ = "No such msg #" + _
STR$(CurMsg)
IF SubInHeader$ = "" THEN _ ' KG102001
GOSUB 12979 ' KG102001
GOTO 4370

------------------------[ KG101203 ]-------------------------

Problem: When using config to initialize modem's firmware,
sometimes get untrapped error 57 in line 23738. Need to
recover.

Solution: Change CONFIG.BAS as follows:

60010 '* HANDLE ERROR CONDITIONS *
IF ERR = 62 AND _
(ERL = 11600 OR _
ERL = 11620 OR _
ERL = 11640 OR _
ERL = 11660 OR _
ERL = 11680 OR _
ERL = 11700 OR _
ERL = 11705 OR _
ERL = 11706) THEN _
PRINT CONFIG.FILENAME$ + _
" from a version earlier than " + CONFIG.VERSION$ + " on default drive." : _
PRINT "Please delete and rerun CONFIG." : _
RESUME 60340
IF ERL = 15780 AND ERR = 5 AND _
INSTR(USER.INIT.COMMAND$,"S0=") = 0 THEN _
RESUME 16073
IF ERL = 22340 THEN _ ' KG073103
RESUME 22342 ' KG073103
IF ERL = 31000 AND ERR = 58 THEN _
KILL A$ : _
RESUME 31000
IF ERL = 31030 AND ERR = 58 THEN _
KILL A$ : _
RESUME 31030
IF ERL = 22120 AND ERR = 6 THEN _
RESUME 22100
IF ERL = 23738 AND ERR = 57 THEN _ ' KG101203
RESUME 23738 ' KG101203
IF ERL = 24750 AND ERR = 58 THEN _
KILL A$ : _
RESUME 24750
IF ERL = 31020 THEN _
PRINT "Unable to kill ";MAIN.MESSAGE.FILE$;". Error";STR$(ERR):_
RESUME 31035
IF ERL = 50490 AND ERR = 58 THEN _
RESUME 50500
IF ERL = 50540 AND ERR = 58 THEN _
RESUME 50550
IF ERL = 50490 OR ERL = 50540 THEN _
RESUME 15230
IF ERL = 60471 THEN _
IF ERR <> 76 THEN _
RESUME 60478 _
ELSE RESUME 60474
IF ERL = 60480 THEN _
PRINT "ERROR -";ERR;" UNABLE TO CREATE SUBDIRECTORY" : _
RESUME 60478
IF ERR = 61 THEN _
PRINT "ERROR - IBM DOS DISKETTE FULL " : _

RESUME 60340
IF ERR = 67 THEN _
PRINT "ERROR - IBM DOS DIRECTORY FULL" : _
RESUME 60340
IF ERR = 70 THEN _
PRINT "DISKETTE IN DRIVE IS WRITE PROTECTED" : _
RESUME 60340
IF ERR = 71 THEN _
PRINT "DRIVE DOOR OPEN OR MISSING DISKETTE" : _
RESUME 60340
IF ERR = 72 THEN _
PRINT "ERROR - UNFORMATTED IBM DOS DISKETTE IN DRIVE" : _
RESUME 60340
PRINT "+++ Error";ERR;" in line ";ERL "occurred at " TIME$ " on " DATE$

------------------------[ KG101202 ]-------------------------

Problem: At the msg prompt on what numbers to read, cannot stack
anything after "q", such as quit and goodbye ("q g").

Solution: Change RBBS-PC.BAS as follows:

4402 IF LEN(ZUserIn$(ZAnsIndex)) = 1 THEN _ ' KG022701
WasY = INSTR("QqHh?",ZUserIn$(ZAnsIndex)) : _ ' KG101202
IF WasY > 2 THEN _ ' KG081302
ZFileName$ = ZHelpPath$ + "MR" + ZHelpExtension$ : _
GOSUB 1790 : _
GOTO 4390 _ ' KG101202
ELSE IF WasY > 0 THEN _ ' KG101202
RETURN ' KG101202
MsgIndex = 0 ' KG022701
NumMsgsSelected = ZWasQ
GOTO 4370

------------------------[ KG101201 ]-------------------------

Problem: Possible in bulletins to get a non-bulletin listed.

Solution: Change RBBSSUB2.BAS as follows:

(line 20235)

SUB BadName (BadFileNameIndex,ProtectExt) STATIC ' KG101201
'
'
' * TEST FOR SYSTEM FILE ATTEMPT
'
BadFileNameIndex = 2
ZWasZ$ = ZFileName$
CALL BreakFileName (ZFileName$,DR$,Prefix$,Extension$,ZFalse)
IF LEN(Extension$) = 3 AND ProtectExt THEN _ ' KG101201
IF INSTR("DEF,MNU,OLD,PUI,BAK,",Extension$+",") > 0 THEN _
EXIT SUB
ZOK = 0
CALL FileNameCheck (ZActiveMessageFile$,Prefix$,Extension$)
CALL FileNameCheck (ZActiveUserFile$,Prefix$,Extension$)
CALL FileNameCheck (ZCallersFile$,Prefix$,Extension$)
CALL FileNameCheck (ZCmntsFile$,Prefix$,Extension$)
CALL FileNameCheck (ZFileSecFile$,Prefix$,Extension$)
CALL FileNameCheck (ZMainMsgBackup$,Prefix$,Extension$)
CALL FileNameCheck (ZOrigMsgFile$,Prefix$,Extension$)
CALL FileNameCheck (ZOrigUserFile$,Prefix$,Extension$)
CALL FileNameCheck (ZPswdFile$,Prefix$,Extension$)
CALL FileNameCheck (ZRBBSBat$,Prefix$,Extension$)
CALL FileNameCheck (ZRCTTYBat$,Prefix$,Extension$)
CALL FileNameCheck (ZConfigFileName$,Prefix$,Extension$)
IF ZOK = 0 THEN _ ' KG101201
BadFileNameIndex = 1 ' KG101201
END SUB

Change RBBSSUB4.BAS as follows:

59532 IF INSTR(ReturnOn$,LEFT$(ZWasZ$,1)) > 0 AND WasBF < 2 THEN _ ' KG101201
EXIT SUB
GOSUB 59547
GOTO 59515

59538 FilName$ = FPre$ + ZWasZ$ + PreSuf$ ' KG090801
ZFileName$ = FilName$ + BackOpt$ ' KG090801
GOSUB 59543 ' KG101201
IF WasBF > 1 THEN _ ' KG101201
ZOK = ZFalse : _ ' KG101201
RETURN ' KG101201
CALL Graphic (GRDefault$,ZFileName$)
IF NOT ZOK THEN _
IF BackOpt2$ <> "" THEN _
ZFileName$ = FilName$ + _
BackOpt2$ : _
GOSUB 59543 : _ ' KG101201
IF WasBF > 1 THEN _ ' KG101201
ZOK = ZFalse : _ ' KG101201
RETURN _ ' KG101201
ELSE CALL Graphic (GRDefault$,ZFileName$) ' KG101201
IF ZOK THEN _ ' KG092301
CALL WordInFile (CurMenu$,ZWasZ$,InMenu) : _ ' KG092301
IF ZSysop OR InMenu OR (NOT RequireInMenu) THEN _ ' KG092301
RETURN _
ELSE GOTO 59540
IF (NOT VerifyInMenu) THEN _
GOTO 59540
CALL WordInFile (CurMenu$,ZWasZ$,InMenu) 'verify against menu itself ' KG032502
IF InMenu THEN _ ' KG032502
IF AllMenuOK THEN _
RETURN

59543 WasZ$ = ZWasZ$ ' KG101201
CALL BadName (WasBF,ZFalse) ' KG101201
ZWasZ$ = WasZ$ ' KG101201
RETURN ' KG101201

Change RBBSSUB5.BAS as follows:

20163 ZFileName$ = ZFileNameHold$
CALL BadName (BadFileNameIndex,ZTrue) ' KG101201
ON BadFileNameIndex GOTO 20164,20176

20235 CALL BadName (BadFileNameIndex,ZTrue) ' KG101201
ON BadFileNameIndex GOTO 20236,20245

------------------------[ KG101102 ]-------------------------

Problem: When door, get strange msg on SysOp's screen though not
on the caller's. This was left in from debugging.

Solution: Change RBBSSUB2.BAS as follows:

10983 ' $SUBTITLE: 'DoorExit -- Setup to exit to a "door"'
' $PAGE
' NAME -- DoorExit
'
' INPUTS -- PARAMETER MEANING
' ZMultiLinkPresent
' ZNodeID$
' ZRBBSBat$
' ZWasZ$
'
' OUTPUTS -- ZWasQ NUMBER OF LINES TO WRITE OUT TO
' ZRCTTYBat$
' ZUserIn$() LINES TO WRITE OUT TO ZRCTTYBat$
'
' PURPOSE -- Set up ZUserIn$() and ZWasQ in order to call "EXITRBBS" and
' exit RBBS-PC to invoke another program
'
SUB DoorExit (ReqDoorsDef) STATIC ' KG032502
IF ZWasZ$ = "" OR _
ZWasZ$ = "NONE" THEN _
EXIT SUB
CALL FindIt (ZWasZ$)
IF NOT ZOK THEN _
GOTO 10986
CALL BreakFileName (ZWasZ$,WasX$,ExitTo$,ExitMethod$,ZFalse) ' KG032501
ExitMethod$ = ""
ZDooredTo$ = ExitTo$
CALL FindIt (ZDoorsDef$) ' KG101102
IF NOT ZOK THEN _
IF ReqDoorsDef THEN _ ' KG032502
EXIT SUB _ ' KG032502
ELSE ExitTo$ = ExitTo$ + " " + ZNodeID$ : _ ' KG032502
GOTO 10989 ' KG032502

------------------------[ KG101101 ]-------------------------


Problem: In bulletins, can view system files that have no
extension, when the system file is on the same drive/path
as the bulletin menu.
Also, bulletins, doors, conferences are supposed to look at
the drive/path where the menu is located for an option, but
were not doing this when the menu file included a drive/path
different from the primary placed looking, such as the bulletin
prefix for bulletins.

Solution: Change RBBSSUB4.BAS as follows:

59510 ZFileName$ = CurMenu$
InMenu = ZTrue ' KG041701
CALL BreakFileName (FrontOpt$,WasX$,FrontPre$,ZWasDF$,ZTrue) ' KG101101
CALL BreakFileName (CurMenu$,MenuDrv$,WasX$,ZWasDF$,ZTrue)
MenuFront$ = MenuDrv$ + LEFT$(WasX$,LEN(WasX$)-LEN(PreSuf$)) ' KG090801
IF CurMenu$ = LastSubMenu$ THEN _ ' KG090801
MenuFront$ = LEFT$(MenuFront$,LEN(MenuFront$)-1) ' KG090801
CALL Graphic (GRDefault$,ZFileName$)
CurMenuVer$ = ZFileName$
ZStopInterrupts = ZFalse
IF ZAnsIndex < ZLastIndex OR ZExpertUser THEN _
GOTO 59520

59530 ZWasZ$ = ZUserIn$(ZAnsIndex)
CALL AllCaps (ZWasZ$)
IF INSTR(ReturnOn$,ZWasZ$) THEN _ 'check whether calling pgm wants
EXIT SUB
IF INSTR("LH?",ZWasZ$) THEN _ 'check whether caller wants help
GOTO 59515
IF INSTR(ZWasZ$,".") > 0 THEN _
GOTO 59532
CALL BadFile (ZWasZ$,WasBF) ' KG081705
IF WasBF > 1 THEN _ ' KG081705
GOTO 59532 ' KG081705
FPre$ = MenuFront$ ' check for sub-option ' KG081603
PreSuf$ = "-" ' KG090801
CALL BadFile (FPRE$ + ZWasZ$ + "-",WasBF) ' KG090801
ZOK = ZFalse ' KG082401
IF WasBF < 2 THEN _ ' KG082401
VerifyInMenu = ZFalse : _ ' KG082401
GOSUB 59538
PreSuf$ = "" ' KG090801
VerifyInMenu = PassedVerifyInMenu ' KG082005
IF NOT ZOK THEN _ ' KG081603
FPre$ = FrontOpt$ : _ ' check standard option ' KG081603
GOSUB 59538 : _
IF NOT ZOK THEN _ ' check option where menu is ' KG081603
FPre$ = MenuDrv$ + FrontPre$ : _ ' KG101101
IF FrontOpt$ <> FPre$ THEN _ ' KG101101
GOSUB 59538 ' KG101101
IF NewMenu THEN _
NewMenu = ZFalse : _
GOTO 59515
IF ZOK THEN _
EXIT SUB


 December 25, 2017  Add comments

Leave a Reply