home *** CD-ROM | disk | FTP | other *** search
Text File | 1990-06-19 | 117.7 KB | 3,024 lines |
-
- =====[ Test Version - Changes to RBBS-PC 17.3 ]========
-
- Last Mod: KG061501
-
- Note: BASE is the release of 17.3.
-
- 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: RFIX0518.ZIP
-
- -------------------------------------------------------------------
- RBBS-PC.EXE 02-11-90 7:00 PM EST Release of CPC17.3
- --------------------------------------------------------------------
- Summary
-
- EXE MOD Short Description
- ---- -------- -----------------
- RBBS KG061501 Stacked commands wrongly executed during a timelock
- RBBS EC061301 Not correctly analyzing all file names
- CNFG EC060601 Untrapped error when set required protocol for pers. dwld
- RBBS KG061001 Error condition on individuation not handled properly
- RBBS KG060903 Person with sysop status not notified of mail to sysop
- RBBS KG060902 Msg to public name of sysop says user not found
- RBBS KG060901 In msg entry, says will notify even when who to not found
- CNFG KG060103 Check wrong for conflict btw individuation & dwnld ratios
- RBBS KG060102 Version name of MiteSized version keeps getting longer
- RBBS KG060101 Remote sysop name wrongly logged to callers file
- RBBS MB052101 Color spilling over into "min left"
- RBBS RC050901 Individuation not being restored on return from Doors
- RBBS KG052901 Macros sometimes not working in PUI's
- RBBS KG052702 Logging to callers file improved in local mode
- RBBS KG052701 Time logged on not right in caller's file
- RBBS KG052401 RBBS overwrites callers file entry on shell to door
- RBBS KG052201 Support info stored in name field but not part of name
- RBBS DA042401 Possible to get infinite loop in FMS search
- RBBS KG051702 K)ill can be in msg prompt even though can't kill
- RBBS TC051701 Join back to main from subboard in V)iew not working
- RBBS MB051601 Subject of msg sometimes not prompted for
- RBBS KG051501 Subject of msg not treated right when has lower case
- RBBS KG042501 Block print in macros not working right
- CNFG KG041702 Quote for command symbol messes up DEF file
- RBBS KG041701 Doors not getting executed
- RBBS ML041401 Infinite loop possible under NetBios
- RBBS KG040902 Log of file transfers not right when dooring
- RBBS KG040901 Not pausing when screen full on directory scans
- RBBS KG032801 Macros associated with protocol not being executed
- RBBS KG032601 Possible to get untrapped errors when have new user
- RBBS KG032502 Adds support for hidden doors not on menu if in DOORS.DEF
- RBBS KG032501 Registration door control ignored in DOORS.DEF
- RBBS KG031801 Wrong directory sometimes shown
- RBBS KG031501 Unable to cancel an upload
- RBBS KK030901 Sometimes get overflow error
- RBBS KG030801 Stops reporting in personal mail scan after a screen pause
- RBBS KG030601 Constant recycling with "Connect Timeout"
- CNFG KG030301 Confusing prompt for name of file shown on sec violation
- RBBS KG030203 Msg scan reporting personal mail may not pause on full screen
- RBBS KG030202 Color spills over into a prompt in personal download
- RBBS KG030201 Display of message cannot be paused
- RBBS KG030101 Mail V)iew function can show mail waiting wrong in current conf.
- RBBS KG022702 Untrapped errors in LIT version with MIMPORT OFF
- RBBS KG022701 Stacked commands sometimes not working properly
- RBBS RH022501 Autodownload sometimes not reporting name properly
- RBBS KG022301 Add support for macro processing for online files
- RBBS KG022205 File name reported wiped out by macro processing
- RBBS KG022204 Add ability to vary FFS macro processing
- RBBS KG022203 Colors graphics door menu MENU05C bleeds on the right
- RBBS KG022202 Up and downloads in distributed RBBS-PC.DEF may not work
- RBBS KG022201 Jump no longer an option when V)iew in dir listing
- RBBS KG022103 LIT merges not assigning new user security right
- RBBS KG022102 LIT merges give compile error if SURVEY is OFF
- RBBS KG022101 Not correctly tracking bytes downloaded when dooring
- RBBS KG022001 Autodownload not working when extension not specified
- RBBS KG021803 Macro assign sometimes picks up wrong value
- RBBS KG021802 Macros in Fast File Search executed too frequently
- RBBS KG021801 Internal code documentation missing some cases
- RBBS KG021502 Logon into a conference can pick up a macro
- RBBS KG021501 Prompt after end of macro is repeated twice
- RBBS RH021501 Autodownload not working
-
- Contributors include:
-
- DA - Doug Azzarito
- EC - Ezra Conger
- KG - Ken Goosens
- KK - Kim Kodde
- MB - Mathew Briggs
- ML - Mark Lautenschlager
- RC - Richard Couture
- RH - Ray Horton
- TC - Tom Collins
-
- ------------------------[ KG061501 ]-------------------------
-
- Problem: When have a timelock on downloads and stack the
- files to download, the file names are misinterpreted as commands.
-
- Solution: Change RBBSSUB4.BAS as follows:
-
- (line 60180)
-
- SUB TimeLock STATIC
- CALL TimeRemain(MinsRemaining)
- IF ZSecsUsedSession! >= ZTimeLockSet THEN _
- ZOK = ZTrue : _
- EXIT SUB
- ZOutTxt$ = ZFirstName$
- CALL NameCaps(ZOutTxt$)
- CALL QuickTPut1 ("Sorry, " + ZOutTxt$ + ", function locked" + _
- STR$(INT((ZTimeLockSet-ZSecsUsedSession!)/60)) + _' DA11102
- " more minutes" + _
- STR$(INT(ZTimeLockSet-ZSecsUsedSession!) MOD 60) + " seconds")
- CALL BufFile(ZHelpPath$+"TIMELOCK"+ZHelpExtension$,WasX)
- ZOK = ZFalse
- ZLastIndex = 0 ' KG061501
- END SUB
-
- ------------------------[ EC061301 ]-------------------------
-
- Problem: File names not broken correctly into components when they
- contain a period before the extension (e.g. "C:..\RBBS\AX.ZIP").
-
- Solution: Change RBBSSUB5.BAS as follows:
-
- (line 63300)
-
- SUB BreakFileName (FileSpec$,DrvPath$,Prefix$,Extension$,ForJoining) STATIC
- CALL AllCaps (FileSpec$)
- DrvPath$ = ""
- Prefix$ = ""
- Extension$ = ""
- CALL TrimTrail (FileSpec$,"\")
- WasL = LEN(FileSpec$)
- IF WasL < 1 THEN _
- EXIT SUB
- CALL FindLast (FileSpec$,"\",WasX,WasY)
- IF WasX < 1 THEN _
- IF MID$(FileSpec$,2,1) = ":" THEN _
- DrvPath$ = LEFT$(FileSpec$,1) : _
- ZWasS = 3 _
- ELSE ZWasS = 1 _
- ELSE DrvPath$ = LEFT$(FileSpec$,WasX-1) : _
- ZWasS = WasX + 1 : _
- IF WasY = 1 THEN _
- DrvPath$ = DrvPath$ + "\"
- WasX = INSTR(ZWasS,FileSpec$ + ".",".") ' EC061301
- IF WasX < WasL THEN _
- Extension$ = MID$(FileSpec$,WasX + 1)
- IF ZWasS <= WasL THEN _
- IF WasX >= ZWasS THEN _
- Prefix$ = MID$(FileSpec$,ZWasS,WasX - ZWasS)
- IF NOT ForJoining THEN _
- EXIT SUB
- IF LEN(DrvPath$) = 1 THEN _
- IF DrvPath$ <> "\" THEN _
- DrvPath$ = DrvPath$ + _
- ":"
- IF INSTR(DrvPath$,"\") > 0 AND RIGHT$(DrvPath$,1) <> "\" THEN _
- DrvPath$ = DrvPath$ + _
- "\"
- IF LEN(Extension$) > 0 THEN _
- Extension$ = "." + _
- Extension$
- END SUB
-
- ------------------------[ EC060601 ]-------------------------
-
- Problem: When set a required protocol for personal downloads in
- configuration, can get illegal function call.
-
- Solution: Change CNFG-SUB.BAS as follows:
-
- 12466 DISPLAYED.PAGE.NUMBER = 8
- GOSUB 24800
- LOCATE 3,1
- PRINT "141. Call-back verification ----------------------- " + NOT.YET.IN$ ' CALLBACK.VERIFICATION$
- PRINT "142. Drive/path where personal files & dir stored - " + PERSONAL.DRVPATH$
- PRINT "143. Name of Personal Directory ------------------- " + PERSONAL.DIR$
- PRINT "144. Protocol required for personal downloads ----- " + MID$("<other><none> Ascii XMODEM Xm/CRC Kermit Ymodem Im■dem YmodemGWxmodem", 7 * INSTR("NAXCKYIGW",PERSONAL.PROTOCOL$) + 1,7) ' EC060601
- PRINT "145. Files with download security are listed in --- " + FILESEC.FILE$
- PRINT "146. File name with privileged group passwords is - " + PASSWORD.FILE$
- PRINT "147. Concatenate multi-file ASCII downloads ------- " + FNYESNO$(PERSONAL.CONCAT)
- PRINT "148. Min SECURITY to CATEGORIZE uploads -----------" + STR$(SL.CATEGORIZE.UPLOADS)
- PRINT "149. Min security level to view new uploads -------" + STR$(MIN.SEC.TO.VIEW)
- PRINT "150. Security level exempt from 'epi-log' file ----" + STR$(SECURITY.EXEMPT.FROM.EPILOG)
- PRINT "151. Min. security to 'AUTO ADD' conference user --" + AUTO.ADD.SECURITY$
- PRINT "152. Min. security for old caller to turbo logon --" + STR$(ALLOW.CALLER.TURBO)
- PRINT "153. Min. security to describe an existing file ---" + STR$(ADD.DIR.SECURITY)
- PRINT "154. Help file to display for a security violation- " + SECVIO.HLP$
- TIME.LOCK$ = MID$("<none> DOORS DOWNLDSBOTH ",TIME.LOCK*7+1,7)
- PRINT "155. Time lock on DOORS and DOWNLOADS ------------- "; TIME.LOCK$
- PRINT "156. Min. sec level exempt from auto-update of sec-" ; AUTO.UPGRADE.SEC
- PRINT "157. Min security to READ & KILL all messages -----" ; SEC.KILL.ANY
- PRINT "158. Do not display lines in msgs beginning with -- "; SCREEN.OUT.MSG$ ' KG041101
- PRINT "159. Min. sec level to do personal uploads --------" ; ZMinSecPersUpld ' nc030101
- PRINT "160. Let messages have multiple recipients -------- " ; FNYESNO$(ZEnableCC) ' nc030101
- GOTO 12580
-
- ------------------------[ KG060903 ]-------------------------
-
- Problem: When have sysop status but not using remote sysop name,
- message scan does not identify mail to/from "SYSOP" as belonging
- to the caller. Mail to "SYSOP" should be shared by everyone with
- sysop status.
-
- Solution: Change RBBS-PC.BAS as follows:
-
- 4660 IF RemoteSysop THEN _
- CALL MsgNameMatch ("SYSOP",SysopFullName$,6,MsgFromCaller) : _
- CALL MsgNameMatch ("SYSOP",SysopFullName$,37,MsgToCaller) _
- ELSE WasX$ = LEFT$("SYSOP",-5*ZSysop) : _ ' KG060903
- CALL MsgNameMatch (MsgUserName$,WasX$,6,MsgFromCaller) : _ ' KG060903
- CALL MsgNameMatch (MsgUserName$,WasX$,37,MsgToCaller) ' KG060903
- UserInHeader = (MsgFromCaller OR MsgToCaller)
- RETURN
-
- ------------------------[ KG060902 ]-------------------------
-
- Problem: When leave a msg to public name of sysop, can say the user not
- found and caution against leaving mail.
-
- Solution: Change RBBSSUB2.BAS as follows:
-
- 2250 ' $SUBTITLE: 'WhoCheck - Checks whether user exists'
- ' $PAGE
- '
- ' NAME -- WhoCheck
- '
- ' INPUTS -- PARAMETER MEANING
- ' WhoFind$ User to find
- '
- ' OUTPUTS -- WhoFound Whether user found
- ' UserNumFound Record # of user
- '
- ' PURPOSE -- Validate that user record exists. Sysop
- ' counted as found even if lack user record.
- '
- SUB WhoCheck (WhoFind$,WhoFound,UserNumFound) STATIC
- UserNumFound = 0
- IF ZStartHash <> 1 THEN _
- WhoFound = ZTrue : _
- EXIT SUB
- Work128$ = ZUserRecord$
- WhoFound = ZFalse
- ToSysop = (INSTR(WhoFind$,"SYSOP") > 0 OR _
- INSTR(WhoFind$,ZSysopFirstName$ + " " + ZSysopLastName$) > 0) ' KG060902
- CALL OpenUser (HighestUserRecord)
- FIELD 5, 128 AS ZUserRecord$
- IF ToSysop THEN _
- WasX$ = ZSysopPswd1$ + " " + ZSysopPswd2$ _
- ELSE WasX$ = WhoFind$
- IF LEN(WasX$) > 1 THEN _
- CALL FindUser (WasX$,"",ZStartHash,ZLenHash,_
- 0,0,HighestUserRecord,WhoFound,_
- UserNumFound,ZWasSL)
- LSET ZUserRecord$ = Work128$
- IF NOT WhoFound THEN _
- IF ToSysop THEN _
- WhoFound = ZTrue _
- ELSE CALL QuickTPut1 (WhoFind$ + " not active user")
- END SUB
-
- ------------------------[ KG060901 ]-------------------------
-
- Problem: When leave mail to person not found because not in user file,
- will still say the receiver "will be notified" has mail waiting, even though
- can't and won't.
-
- Solution: Change RBBSUB2.BAS as follows:
-
- 2032 IF MsgTo$ <> "ALL" THEN _
- IF (LEFT$(MsgTo$,4) <> "ALL " AND ZStartHash = 1) THEN _
- ZWasDF = INSTR(MsgTo$+" @"," @") : _ ' KG052201
- TempHashValue$ = LEFT$(MsgTo$,ZWasDF-1) : _ ' KG052201
- CALL WhoCheck (TempHashValue$,Found,RcvrRecNum) : _
- IF NOT Found THEN _
- ZLastIndex = 0 : _
- RcvrRecNum = 0 : _ ' KG060901
- IF NOT ZReply THEN _
- ZOutTxt$ = "[R]e-enter name, Q)uit, C)ontinue" : _
- ZTurboKey = -ZTurboKeyUser : _
- ZLastIndex = 0 : _
- GOSUB 2033 : _
- ZWasZ$ = ZUserIn$(1) : _
- CALL AllCaps (ZWasZ$) : _
- IF ZWasZ$ <> "C" THEN _
- MsgTo$ = "" : _
- IF ZWasZ$ <> "Q" THEN _
- GOTO 2020
- IF MsgTo$ = Temp$ THEN _
- ZOutTxt$ = "Msg would be from and to SAME PERSON! Really do this (Y,[N])" : _
- ZLastIndex = 0 : _
- GOSUB 2033 : _
- IF NOT ZYes THEN _
- MsgTo$ = ""
- EXIT SUB
-
- ------------------------[ KG060103 ]-------------------------
-
- Problem: Valid individuation fields are rejected by CONFIG was
- conflicting with download ratios. E.g. begin at 63, length 2,
- should be ok (1st two characters of location) but is rejected.
-
- Solution: Change CONFIG.BAS as follows:
-
- 18102 IF START.INDIV = 0 OR LEN.INDIV = 0 THEN_
- INDIV.ID$ = NONE.PICKED$ _
- ELSE INDIV.ID$ = "(nonstandard)"
- START.WRITE = START.INDIV
- LEN.WRITE = LEN.INDIV ' KG060103
- GOSUB 17805
- IF NOT OK THEN _
- START.INDIV = 0 : _
- LEN.INDIV = 31 : _
- GOTO 18102
- START.WRITE = START.INDIV
- RETURN
-
- ------------------------[ KG060102 ]-------------------------
-
- Problem: When use MiteSized version of RBBS, version name grows
- by "/MITESIZE" every time enter a subboard.
-
- Solution: Replace RBBSLIT.MRG and MITEVER.LIT by the enclosed
- new ones.
-
- ------------------------[ KG060101 ]-------------------------
-
- Problem: (fix to a fix) Remote SysOp name logged to callers
- file when it should not be.
-
- Solution: Change RBBS-PC.BAS as follows:
-
- (line 800)
-
- .
- .
- .
- CALL SetCrLf
- CALL SetPrompt
- CALL XferType (2,ZTrue)
- IF NOT SubBoard THEN _
- BoardCheckDate$ = PrevLastOn$
- GOSUB 5370 ' KG060101
- IF ZWasA THEN _ ' KG060101
- ZActiveUserName$ = "SYSOP" ' KG060101
- IF ZExitToDoors OR SubBoard THEN _ ' KG052701
- GOTO 815
- GOSUB 465
- IF (ZEightBit AND _
- ZAutoDownDesired) OR _
- ZAskID THEN _
- CALL TestUser
- .
- .
- .
-
- 819 CALL Trim (ZWasCI$) ' KG060101
- IF (ZNodeRecIndex < 2) THEN _
- GOTO 821
- GOSUB 4910
- GOSUB 24000
- GET 1,ZNodeRecIndex
- MID$(ZMsgRec$,1,31) = ZActiveUserName$ + _
- SPACE$(31 - LEN(ZActiveUserName$))
- MID$(ZMsgRec$,40,2) = " 0"
- MID$(ZMsgRec$,44,2) = STR$(ZBPS)
- MID$(ZMsgRec$,55,2) = " 0"
- MID$(ZMsgRec$,57,1) = "A"
- MID$(ZMsgRec$,60,5) = ZTalkToModemAt$ + _
- SPACE$(5 - LEN(ZTalkToModemAt$))
- MID$(ZMsgRec$,72,2) = " 0"
- MID$(ZMsgRec$,93,24) = ZWasCI$ + _
- SPACE$(24)
- PUT 1,ZNodeRecIndex
- GOSUB 12985
-
- ------------------------[ MB052101 ]-------------------------
-
- Problem: When have colorization active, color from prior context
- will sometimes spill into the report of # of minutes left.
-
- Solution: Change RBBSSUB3.BAS as follows:
-
- 41032 ' $SUBTITLE: 'DispTimeRemain - Display users time remaining'
- ' $PAGE
- '
- ' NAME -- DispTimeRemain
- '
- ' INPUTS -- PARAMETER MEANING
- ' MinsRemaining
- '
- ' OUTPUTS -- PARAMETER MEANING
- ' MinsRemaining TIME IN MINUTES LEFT IN SESSION
- '
- SUB DispTimeRemain (MinsRemaining) STATIC
- CALL TimeRemain (MinsRemaining)
- CALL QuickTPut1 (ZEmphasizeOff$ + STR$(MinsRemaining) + " min left") ' MB052101
- END SUB
-
- ------------------------[ RC050901 ]-------------------------
-
- Problem: When return from a door and individuating callers
- with same name, the individuation field is always asked,
- whereas it should never ask for individuation (just like it
- never asks again for name, just password at most).
-
- Solution: Add the following variable to RBBS-VAR.BAS: ZIndivValue$.
- Change RBBS-PC.BAS as follows:
-
- 725 IF ZUserSecLevel < ZMinLogonSec THEN _
- ZLogonErrorIndex = 1 : _
- GOTO 460
- IF ZFirstName$ = ZLastName$ THEN _
- CALL QuickTPut1 (ZFirstNamePrompt$+"/"+ZLastNamePrompt$+" cannot be same") : _
- ZLogonErrorIndex = 3 : _
- GOTO 10620
- IF NOT ZRememberNewUsers THEN _
- GOSUB 13700 : _
- ZUserFileIndex = 0 : _
- GOSUB 12960: _
- PrevLastOn$ = "00-00-00": _
- GOTO 735
- ZNewUser = ZTrue
- CALL OpenUser (HighestUserRecord)
- GOSUB 9450
- GOSUB 12630
- MID$(ZUserRecord$,ZStartHash,ZLenHash) = LEFT$("NEWUSER",ZLenHash)
- IF ZStartIndiv > 0 THEN _ ' RC050901
- MID$(ZUserRecord$,ZStartIndiv,ZLenIndiv) = ZIndivValue$ ' RC050901
- GOSUB 9440
-
- (line 800)
- .
- .
- .
- '
- ' * ALWAYS RECORD THE HASH/INDIVIDUATING FIELD TO EACH RECORD LOGGED OUT
- '
- WasX$ = "{" + _ ' KG052701
- HashValue$ + _ ' KG052701
- "/" + _ ' KG052701
- ZIndivValue$ + _ ' RC050901
- "}" ' KG052701
- IF LEN(ZWasZ$) < 65 THEN _ ' KG052701
- WasX = 65 _ ' KG052701
- ELSE WasX = LEN(ZWasZ$) + 2 ' KG052701
- MID$(ZWasNG$,WasX) = WasX$ ' KG052701
- CALL Printit (" " + ZWasZ$) ' KG052701
- IF ZNewUser THEN _ ' KG052701
- CALL UpdtCalr ("NEWUSER",1) : _ ' KG052701
- CALL Muzak (2) ' KG052701
- '
- ' ***** NOTIFY CALLER IF ABLE TO "AUTODOWN" ****
- '
- .
- .
- .
-
- 815 ZDnlds = CVI(ZUserDnlds$)
- ZUplds = CVI(ZUserUplds$)
- IF ZEnforceRatios THEN _
- ZDLToday! = CVS(ZTodayDl$) : _
- ZBytesToday! = CVS(ZTodayBytes$) : _
- ZDLBytes! = CVS(ZDlBytes$) : _
- ZULBytes! = CVS(ZULBytes$)
- IF ZCurDate$ <> LEFT$(ZLastDateTimeOnSave$,8) THEN _
- ZDLToday! = 0 : _
- ZBytesToday! = 0
- IF NOT GlobalsSet THEN _
- GlobalsSet = ZTrue : _
- ZGlobalDnlds = ZDnlds : _
- ZGlobalUplds = ZUplds : _
- ZGlobalDLToday! = ZDLToday! : _
- ZGlobalBytesToday! = ZBytesToday! : _
- ZGlobalDLBytes! = ZDLBytes! : _
- ZGlobalULBytes! = ZULBytes!
- 'IF ZRatioRestrict# > 0 AND ZEnforceRatios THEN _
- ' IF ZByteMethod = 0 AND ZUplds < ZInitialCredit# THEN _
- ' ZUplds = ZInitialCredit# _
- ' ELSE IF ZByteMethod = 1 AND ZULBytes! < ZInitialCredit# THEN _
- ' ZULBytes! = ZInitialCredit#
- GOSUB 827
- LSET ZUserOption$ = MKI$(ZTimesLoggedOn) + _
- MID$(ZUserOption$,3)
- LSET ZLastDateTimeOn$ = ZCurDate$ + _
- " " + _
- ZTimeLoggedOn$
- MID$(ZUserRecord$,ZStartHash,ZLenHash) = HashValue$
- IF ZStartIndiv > 0 THEN _
- MID$(ZUserRecord$,ZStartIndiv,ZLenIndiv) = ZIndivValue$ ' RC050901
- LSET ZUserName$ = ZOrigUserName$
- IF (NOT ZExitToDoors) AND NOT (ZOrigMsgFile$ = ZActiveMessageFile$ AND SubBoard) THEN _
- CALL AutoPage
- IF NOT SubBoard THEN _
- ZOrigUserFileIndex = ZUserFileIndex
- GOSUB 9440
- GOSUB 12991
- CALL AskMore ("",ZTrue,ZTrue,WasX,ZTrue)
- IF TurboLogon THEN _
- GOTO 819
- IF SkipWelcomeScreen AND _
- (ZUserSecLevel >= ZAllowCallerTurbo) THEN _
- GOTO 816
- IF NOT SameUser THEN _
- ZStopInterrupts = NOT ZWelcomeInterruptable : _
- ZBypassTimeCheck = ZTrue : _
- ZFileName$ = ZWelcomeFile$ : _
- ZDisplayAsUnit = ZTrue : _
- GOSUB 1790 : _
- ZDisplayAsUnit = ZFalse
- ZBypassTimeCheck = ZFalse
- ZStopInterrupts = ZTrue
-
- 12300 WasA1$ = ""
- Attempts = 0
- UserSecLevelSave = ZUserSecLevel
- FirstNameSave$ = ZFirstName$
- LastNameSave$ = ZLastName$
- ActiveUserNameSave$ = ZActiveUserName$
- CityStateSave$ = ZWasCI$
- HashValueSave$ = HashValue$
- IndivValueSave$ = ZIndivValue$ ' RC050901
- GOSUB 12500
- GOSUB 12840
- GOSUB 12850
- GOSUB 12598
- IF ZUserFileIndex = 0 THEN _
- GOSUB 12984 : _
- GOTO 12330
- IF Found THEN _
- WasD$ = "User already exists" : _
- GOSUB 1315 : _
- GOSUB 12984 : _
- GOTO 12330
-
- 12310 GOSUB 12630
- GOSUB 12800
- GOSUB 11395
- ZTempSecLevel = WasOF
- GOSUB 12900
- LSET ZLastDateTimeOn$ = ZCurDate$ + _
- " " + _
- ZTimeLoggedOn$
- GOSUB 12960
- CALL AllCaps (ZUserIn$)
- LSET ZCityState$ = ZUserIn$
- LSET ZElapsedTime$ = MKI$(0)
- IF ZStartHash > 1 THEN _
- MID$(ZUserRecord$,ZStartHash,ZLenHash) = HashValue$
- IF ZStartIndiv > 1 THEN _
- MID$(ZUserRecord$,ZStartIndiv,ZLenIndiv) = ZIndivValue$ ' RC050901
- GOSUB 9440
-
- 12330 ZUserSecLevel = UserSecLevelSave
- ZFirstName$ = FirstNameSave$
- ZLastName$ = LastNameSave$
- ZActiveUserName$ = ActiveUserNameSave$
- ZWasCI$ = CityStateSave$
- HashValue$ = HashValueSave$
- ZIndivValue$ = IndivValueSave$ ' RC050901
- ZUserFileIndex = WasTU
- LSET ZUserRecord$ = UserRecordHold$
- GOTO 11001
-
- 12598 TempHashValue$ = HashValue$
- TempIndivValue$ = ZIndivValue$ ' RC050901
-
- 12850 IF ZStartIndiv < 1 THEN _
- RETURN
- IF ZStartIndiv = 1 THEN _
- ZIndivValue$ = ZActiveUserName$ : _ ' RC050901
- RETURN
- IF ZExitToDoors THEN _ ' RC050901
- RETURN ' RC050901
- WasX$ = WasA1$ + _
- ZPromptIndiv$
- CALL UntilRight (WasX$,ZIndivValue$,2,ZLenIndiv) ' RC050901
- RETURN
-
- Change RBBSSUB3.BAS as follows:
-
- 43070 ZActiveMessageFile$ = ZOrigMsgFile$
- ZSubParm = 3
- CALL FileLock
- CALL OpenMsg
- FIELD 1, 128 AS ZMsgRec$
- GET 1,ZNodeRecIndex
- IF ZGlobalSysop THEN _
- MID$(ZMsgRec$,1,30) = "SYSOP" + SPACE$(25)
- MID$(ZMsgRec$,40,2) = STR$(ZExitToDoors)
- MID$(ZMsgRec$,42,2) = STR$(ZEightBit)
- MID$(ZMsgRec$,44,2) = STR$(ZBPS)
- MID$(ZMsgRec$,46,2) = STR$(ZUpperCase)
- MID$(ZMsgRec$,48,5) = MKS$(ZNumDnldBytes!) + MID$(STR$(-ZBatchTransfer),2) ' KG022101
- MID$(ZMsgRec$,53,2) = STR$(ZWasGR)
- MID$(ZMsgRec$,55,2) = STR$(ZSysop)
- MID$(ZMsgRec$,65,3) = CHR$(VAL(LEFT$(ZTimeLoggedOn$,2))) + _
- CHR$(VAL(MID$(ZTimeLoggedOn$,4,2))) + _
- CHR$(VAL(MID$(ZTimeLoggedOn$,7,2)))
- MID$(ZMsgRec$,72,2) = STR$(ZPrivateDoor)
- MID$(ZMsgRec$,74,1) = MID$(STR$(ZTransferFunction),2,1)
- MID$(ZMsgRec$,75,1) = ZWasFT$
- MID$(ZMsgRec$,113,2) = MKI$(CINT(ZTimeCredits!)/60)
- MID$(ZMsgRec$,79,8) = LEFT$(ZDooredTo$+" ",8)
- MID$(ZMsgRec$,91,2) = STR$(ZReliableMode)
- CALL BreakFileName (ZCurPUI$,ZOutTxt$,ZUserIn$,ZWasZ$,ZFalse)
- MID$(ZMsgRec$,93,8) = ZUserIn$ + SPACE$(8 - LEN(ZUserIn$))
- IF ZLocalUser THEN _
- ZWasZ$ = ZCarriageReturn$ + ZCarriageReturn$ _ ' KG030601
- ELSE ZWasZ$ = " 0" ' KG030601
- MID$(ZMsgRec$,101,2) = ZWasZ$ ' KG030601
- MID$(ZMsgRec$,103,2) = STR$(ZLocalUserMode) ' KG030601
- ZConfName$ = LEFT$(ZConfName$,INSTR(ZConfName$ + " "," ") - 1)
- MID$(ZMsgRec$,105,8) = ZConfName$ + SPACE$(8 - LEN(ZConfName$))
- MID$(ZMsgRec$,115,1) = MID$(STR$(ZAutoLogoffReq),2,1)
- MID$(ZMsgRec$,117,2) = STR$(ZMenuIndex)
- MID$(ZMsgRec$,119,2) = LEFT$(DATE$,2)
- MID$(ZMsgRec$,121,2) = MID$(DATE$,4,2)
- MID$(ZMsgRec$,123,2) = RIGHT$(DATE$,2)
- MID$(ZMsgRec$,125,2) = LEFT$(TIME$,2)
- MID$(ZMsgRec$,127,2) = MID$(TIME$,4,2)
- ' *** Save additional parameters for door restoral
- CALL OpenOutW (ZNodeWorkDrvPath$+"DRST"+ZNodeFileID$+".DEF")
- CALL PrintWorkA (STR$(ZLimitMinsPerSession))
- CALL PrintWorkA (ZWasNG$) ' KG052701
- CALL PrintWorkA (ZIndivValue$) ' NC050901
- CLOSE 2
-
- 44003 ZUserLogonTime! = VAL(HourLoggedOn$) * 3600! + _ ' KK030901
- VAL(MinLoggedOn$) * 60! + _ ' KK030901
- VAL(SecLoggedOn$)
- HourLoggedOn$ = ""
- MinLoggedOn$ = ""
- SecLoggedOn$ = ""
- IF ZMinsPerSession < 1 THEN _
- ZMinsPerSession = 3
- IF NOT ZEightBit THEN _
- OUT ZLineCntlReg,&H1A
- IF LEFT$(ZMsgRec$,7) = "SYSOP " THEN _
- ZFirstName$ = ZSysopPswd1$ : _
- ZActiveUserName$ = ZSysopPswd1$ + " " + ZSysopPswd2$ _
- ELSE ZFirstNameEnd = INSTR(ZMsgRec$," ") : _
- ZLastNameEnd = INSTR(ZFirstNameEnd + 1,ZMsgRec$ + " "," ") : _
- ZFirstName$ = LEFT$(ZMsgRec$,ZFirstNameEnd-1) : _
- ZLastName$ = MID$(ZMsgRec$,ZFirstNameEnd + 1,ZLastNameEnd - (ZFirstNameEnd + 1)) : _
- ZActiveUserName$ = MID$(ZFirstName$ + " " + ZLastName$,1,31)
- ZWasZ$ = ZFirstName$
- CALL OpenWork (2,ZNodeWorkDrvPath$+"DRST"+ZNodeFileID$+".DEF")
- CALL ReadDir (2,1)
- ZLimitMinsPerSession = VAL (ZOutTxt$)
- CALL ReadDir (2,1) ' KG052701
- ZWasNG$ = ZOutTxt$ ' KG052701
- CALL ReadDir (2,1) ' RC050901
- ZIndivValue$ = ZOutTxt$ ' RC050901
- CLOSE 2
- END SUB
-
- ------------------------[ KG052901 ]-------------------------
-
- Problem: When using Programmable User Interface, macros will not
- work after do a join to a conference that does not exist or after
- execute conference view and go to end of list without joining
- anything. Problem reported by Ken Humrich.
-
- Solution: Change RBBS-PC.BAS as follows:
-
- 1232 MID$(ZLastCommand$,2,1) = " " ' KG052901
- IF ZCustomPUI THEN _ ' KG052901
- CALL UserFace (ZUserGraphicDefault$) : _
- GOSUB 12997 : _
- GOTO 1235 ' KG052901
- ZOutTxt$ = ZCmdPrompt$
- GOSUB 12930
- IF ZWasQ = 0 THEN _
- GOTO 1230
-
- ------------------------[ KG052702 ]-------------------------
-
- Problem: In local mode, when log to printer, not logging to
- caller's file. This messages up caller analysis on networks.
- Also, unnecessary code check when entering/exiting a conference
- because check is done in logging routine. Finally,
- entrance/exit to conference made to log all the time and not just
- on extended logging.
-
- Solution: Change RBBS-PC.BAS as follows:
-
- 4900 CALL UpdtCalr ("Entered " + ZConfName$,2) ' KG052702
- CALL QuickTPut1 ("Welcome to " + ZConfName$)
-
- 5350 IF ZConfName$ <> "MAIN" THEN _
- CALL QuickTPut1 ("Rejoining " + OrigMsgName$)
- ZConfName$ = "MAIN"
- ConfFileName$ = OrigMsgName$
- ZNewsFileName$ = OrigNewsFileName$
- TurboLogon = ZTrue
- ZWasQ = 0
- ZInConfMenu = ZTrue
- IF ZActiveUserName$ = "SYSOP" THEN _
- ZActiveUserName$ = ZSysopPswd1$ + " " + ZSysopPswd2$ : _
- CALL Trim (ZActiveUserName$)
- ZConfigFileName$ = ZOrigCnfg$
- CALL ReadDef (ZConfigFileName$)
- IF ZOrigMsgFile$ <> ZActiveMessageFile$ THEN _
- ZActiveMessageFile$ = ZOrigMsgFile$ : _
- GOSUB 5343
- IF ZOrigUserFile$ <> ZActiveUserFile$ THEN _
- GOSUB 5380 : _
- ZActiveUserFile$ = ZOrigUserFile$ : _
- ZActiveUserName$ = ZOrigUserName$ : _
- GOSUB 12598 : _
- GOSUB 12990 : _
- IF Found THEN _
- GOSUB 9500 : _
- ZMainUserFileIndex = ZUserFileIndex : _
- CALL SetPrompt : _
- CALL XferType (2,ZTrue) _
- ELSE ZUserFileIndex = 0 : _
- ZMainUserFileIndex = 0
- CALL UpdtCalr ("Exited Conference",2) ' KG052702
- GOSUB 2350
- ZUplds = ZGlobalUplds
- ZDnlds = ZGlobalDnlds
- ZDLToday! = ZGlobalDLToday!
- ZBytesToday! = ZGlobalBytesToday!
- ZDLBytes! = ZGlobalDLBytes!
- ZULBytes! = ZGlobalULBytes!
-
- Change RBBSSUB1.BAS as follows:
-
- 13670 LSET ZCallersRecord$ = WasX$
- CALL Printit (ZCallersRecord$) ' KG052702
- ZCallersFileIndex! = ZCallersFileIndex! + 1
-
- ------------------------[ KG052701 ]-------------------------
-
- Problem: When join subboards, the time shown in callers file
- for logon is the time joined last subboard rather than original
- time logged on.
-
- Solution: Change RBBS-PC.BAS as follows:
-
- Omit code at line 837.
-
- 800 CALL DoorReturn
- IF ZAdjustedSecurity THEN _
- GOSUB 5135
- IF ZOrigCnfg$ = ZCurDef$ THEN _
- ZMainUserFileIndex = ZUserFileIndex : _
- ZOrigSec = ZUserSecLevel : _
- ZUserSecSave = ZUserSecLevel : _
- ZOrigUserName$ = ZActiveUserName$
- ZTimesLoggedOn = CVI(MID$(ZUserOption$,1,2)) - _
- ((ZOrigCnfg$ <> ZCurDef$ OR NOT SubBoard) AND _
- (NOT ZPrivateDoor) AND (NOT ZExitToDoors))
- GOSUB 9500
- IF (NOT ZExitToDoors) AND (NOT SubBoard) THEN _
- CALL UpdtCalr (ZActiveUserName$ + " from " + ZWasCI$ + _
- " Lvl" + STR$(ZUserSecLevel) + " " + TIME$,2)
- PrevLastOn$ = ZLastDateTimeOn$
- IF ZLocalUser THEN _
- ZTalkToModemAt$ = "9600" : _
- ZBaudParity$ = "9600 BAUD,N,8,1" : _
- ZModemInitBaud$ = "9600" : _
- ZSnoop = ZTrue : _
- ZLineFeeds = ZTrue
- CALL SetCrLf
- CALL SetPrompt
- CALL XferType (2,ZTrue)
- IF NOT SubBoard THEN _
- BoardCheckDate$ = PrevLastOn$
- IF ZExitToDoors OR SubBoard THEN _ ' KG052701
- GOTO 815
- GOSUB 465
- IF (ZEightBit AND _
- ZAutoDownDesired) OR _
- ZAskID THEN _
- CALL TestUser
- CALL QuickTPut1 ("Logging " + ZActiveUserName$)
- CALL Talk (1,ZOutTxt$)
- CALL QuickTPut1 ("RBBS-PC " + ZVersionID$ + " NODE " + ZNodeID$ + _
- ", OPERATING AT " + ZBaudParity$)
- CALL SkipLine (1)
- Attempts = 0
- ZWasZ$ = ZActiveUserName$ + _ ' KG052701
- " on at " + _ ' KG052701
- ZCurDate$ + _ ' KG052701
- ", " + _ ' KG052701
- ZTime$ + _ ' KG052701
- " from " + _ ' KG052701
- ZWasCI$ + _ ' KG052701
- ", " + _ ' KG052701
- ZBaudParity$ ' KG052701
- ZWasNG$ = ZWasZ$ + SPACE$(128 - LEN(ZWasZ$)) ' KG052701
- MsgUserName$ = LEFT$(ZActiveUserName$+" ",22) ' KG052701
- '
- ' * ALWAYS RECORD THE HASH/INDIVIDUATING FIELD TO EACH RECORD LOGGED OUT
- '
- WasX$ = "{" + _ ' KG052701
- HashValue$ + _ ' KG052701
- "/" + _ ' KG052701
- IndivValue$ + _ ' KG052701
- "}" ' KG052701
- IF LEN(ZWasZ$) < 65 THEN _ ' KG052701
- WasX = 65 _ ' KG052701
- ELSE WasX = LEN(ZWasZ$) + 2 ' KG052701
- MID$(ZWasNG$,WasX) = WasX$ ' KG052701
- CALL Printit (" " + ZWasZ$) ' KG052701
- IF ZNewUser THEN _ ' KG052701
- CALL UpdtCalr ("NEWUSER",1) : _ ' KG052701
- CALL Muzak (2) ' KG052701
- '
- ' ***** NOTIFY CALLER IF ABLE TO "AUTODOWN" ****
- '
- IF ZEightBit AND ZAutoDownYes THEN _
- ZOutTxt$ = CHR$(9) + _
- ZReturnLineFeed$ + _
- "You may use AUTODOWNLOADing!" : _
- CALL RingCaller : _
- CALL DelayTime(4)
-
- Change RBBSSUB3.BAS as follows:
-
- (line 43070)
- .
- .
- .
- ' *** Save additional parameters for door restoral
- CALL OpenOutW (ZNodeWorkDrvPath$+"DRST"+ZNodeFileID$+".DEF")
- CALL PrintWorkA (STR$(ZLimitMinsPerSession))
- CALL PrintWorkA (ZWasNG$) ' KG052701
- CLOSE 2
-
- 44003 ZUserLogonTime! = VAL(HourLoggedOn$) * 3600! + _ ' KK030901
- VAL(MinLoggedOn$) * 60! + _ ' KK030901
- VAL(SecLoggedOn$)
- HourLoggedOn$ = ""
- MinLoggedOn$ = ""
- SecLoggedOn$ = ""
- IF ZMinsPerSession < 1 THEN _
- ZMinsPerSession = 3
- IF NOT ZEightBit THEN _
- OUT ZLineCntlReg,&H1A
- IF LEFT$(ZMsgRec$,7) = "SYSOP " THEN _
- ZFirstName$ = ZSysopPswd1$ : _
- ZActiveUserName$ = ZSysopPswd1$ + " " + ZSysopPswd2$ _
- ELSE ZFirstNameEnd = INSTR(ZMsgRec$," ") : _
- ZLastNameEnd = INSTR(ZFirstNameEnd + 1,ZMsgRec$ + " "," ") : _
- ZFirstName$ = LEFT$(ZMsgRec$,ZFirstNameEnd-1) : _
- ZLastName$ = MID$(ZMsgRec$,ZFirstNameEnd + 1,ZLastNameEnd - (ZFirstNameEnd + 1)) : _
- ZActiveUserName$ = MID$(ZFirstName$ + " " + ZLastName$,1,31)
- ZWasZ$ = ZFirstName$
- CALL OpenWork (2,ZNodeWorkDrvPath$+"DRST"+ZNodeFileID$+".DEF")
- CALL ReadDir (2,1)
- ZLimitMinsPerSession = VAL (ZOutTxt$)
- CALL ReadDir (2,1) ' KG052701
- ZWasNG$ = ZOutTxt$ ' KG052701
- CLOSE 2
- END SUB
- ------------------------[ KG052401 ]-------------------------
-
- Problem: When shell to a door and it writes information to
- the callers file, the entries are overwritten when returns to
- RBBS.
-
- Solution: Add the following variable to RBBS-VAR.BAS:
- ZPrevCaller$. Change RBBSSUB1.BAS as follows:
-
- (line 108)
-
- SUB SetCall STATIC
- ON ERROR GOTO 65000
- IF ZPrevCaller$ = ZCallersFile$ OR ZCallersFilePrefix$ = "" THEN _ ' KG052401
- EXIT SUB
- ZPrevCaller$ = ZCallersFile$ ' KG052401
- ZCallersFileIndex! = 1
- CLOSE 2
- CLOSE 4
- IF ZShareIt THEN _
- OPEN ZCallersFile$ FOR RANDOM SHARED AS #4 LEN=64 _
- ELSE OPEN "R",4,ZCallersFile$,64
- FIELD 4,64 AS ZCallersRecord$
- IF LOF(4) > 0 THEN _
- ZCallersFileIndex! = LOF(4) / 64
- IF ZCallersFileIndex! < 1 THEN _
- ZCallersFileIndex! = 0
- ZUserIn$ = STRING$(13,0)
-
- Change RBBSUB2.BAS as follows:
-
- 10989 IF ZTransferFunction = 3 THEN _
- ZWasY$ = "Registration" _
- ELSE ZWasY$ = ZDooredTo$
- ZOutTxt$ = ZWasY$ + _
- " door opened at " + _
- TIME$ + _
- " on " + _
- DATE$
- ZSubParm = 5
- CALL TPut
- CALL UpdtCalr (ZDooredTo$ + " door opened!",2)
- CLOSE 2
- OPEN "O",2,"DORINFO" + _
- ZNodeFileID$ + _
- ".DEF"
- PRINT #2,ZRBBSName$
- PRINT #2,ZSysopFirstName$
- PRINT #2,ZSysopLastName$
- IF ZLocalUser THEN _
- PRINT #2,"COM0" _
- ELSE PRINT #2,ZComPort$
- ZUserIn$ = MID$(ZBaudParity$,INSTR(ZBaudParity$," B"))
- PRINT #2,ZTalkToModemAt$;ZUserIn$
- PRINT #2,ZNetworkType
- IF ZGlobalSysop THEN _
- PRINT #2,"SYSOP" : _
- PRINT #2,"" _
- ELSE PRINT #2,ZFirstName$ : _
- PRINT #2,ZLastName$
- PRINT #2,ZCityState$
- PRINT #2,ZWasGR
- PRINT #2,ZUserSecLevel
- CALL TimeRemain (MinsRemaining)
- CALL CheckInt (DoorTime$)
- IF ZErrCode = 0 AND ZTestedIntValue > 0 THEN _
- IF MinsRemaining > ZTestedIntValue THEN _
- MinsRemaining = ZTestedIntValue
- PRINT #2,INT(MinsRemaining)
- PRINT #2,ZFossil
- IF ExitMethod$ = "S" THEN _
- CLOSE 4 : _ ' KG052401
- CALL ShellExit (ExitTemplate$) : _
- ZPrevCaller$ = "" : _ ' KG052401
- CALL SetCall : _ ' KG052401
- ZExitToDoors = ZTrue : _
- CALL BufFile (ZDoorDisplay$,WasX) : _
- CALL DoorReturn _
- ELSE ZOutTxt$(1) = ZDiskForDos$ + _
- "COMMAND /C " + _
- ExitTo$ : _
- ZOutTxt$(2) = ZRBBSBat$ : _
- CALL RBBSExit (ZOutTxt$(),2)
- END SUB
-
- ------------------------[ KG052201 ]-------------------------
-
- Problem: Set echomail processors want to add "@ <node#>" after the
- name of the person sending mail. But then, when person replies,
- name is never found for setting mail waiting.
-
- Solution: Reguard name as terminated with first "@".
-
- Change RBBSSUB2.BAS as follows:
-
- 2032 IF MsgTo$ <> "ALL" THEN _
- IF (LEFT$(MsgTo$,4) <> "ALL " AND ZStartHash = 1) THEN _
- ZWasDF = INSTR(MsgTo$+" @"," @") : _ ' KG052201
- TempHashValue$ = LEFT$(MsgTo$,ZWasDF-1) : _ ' KG052201
- CALL WhoCheck (TempHashValue$,Found,RcvrRecNum) : _
- IF NOT Found THEN _
- ZLastIndex = 0 : _
- IF NOT ZReply THEN _
- ZOutTxt$ = "[R]e-enter name, Q)uit, C)ontinue" : _
- ZTurboKey = -ZTurboKeyUser : _
- ZLastIndex = 0 : _
- GOSUB 2033 : _
- ZWasZ$ = ZUserIn$(1) : _
- CALL AllCaps (ZWasZ$) : _
- IF ZWasZ$ <> "C" THEN _
- MsgTo$ = "" : _
- IF ZWasZ$ <> "Q" THEN _
- GOTO 2020
- IF MsgTo$ = Temp$ THEN _
- ZOutTxt$ = "Msg would be from and to SAME PERSON! Really do this (Y,[N])" : _
- ZLastIndex = 0 : _
- GOSUB 2033 : _
- IF NOT ZYes THEN _
- MsgTo$ = ""
- EXIT SUB
-
- Change RBBSSUB5.BAS as follows:
-
- 63540 ' Match Name to one in message file
- SUB MsgNameMatch (PrimeName$,AltName$,SearchPos,Found) STATIC
- WasX$ = LEFT$(PrimeName$+" ",22-8*(SearchPos < 7))
- GOSUB 63542 ' KG052201
- IF Found OR AltName$ = "" THEN _ ' KG052201
- EXIT SUB ' KG052201
- WasX$ = LEFT$(AltName$ + " ",22-8*(SearchPos < 7))
- GOSUB 63542 ' KG052201
- EXIT SUB ' KG052201
- 63542 WasY$ = MID$(ZMsgRec$,SearchPos,LEN(WasX$)) ' KG052201
- ZWasDF = INSTR(WasY$,"@") ' KG052201
- IF ZWasDF > 0 THEN _ ' KG052201
- MID$(WasY$,ZWasDF) = " " ' KG052201
- Found = (WasY$ = WasX$) ' KG052201
- RETURN ' KG052201
- END SUB
-
- ------------------------[ DA042401 ]-------------------------
-
- Problem: Get an infinite loop when do an file S)earch and hit a
- string in the extended description you have insufficient suecurity
- to view because is protected by a security level (= in front of name).
-
- Solution: Change RBBSSUB3.BAS as follows:
-
- 58169 CALL CheckInt (MID$(PartToPrint$,34))
- IF ZUserSecLevel < ZTestedIntValue THEN _
- LastOK = ZFalse : _
- FailedSearch = ZFalse : _ ' DA042401
- GOTO 58168
- MID$(PartToPrint$,1,13) = MID$(PartToPrint$,2,12) + " "
- ZWasA = LEN(STR$(ZTestedIntValue))
- MID$(PartToPrint$,34) = MID$(PartToPrint$,34 + ZWasA) + SPACE$(ZWasA)
- GOTO 58172
-
- ------------------------[ KG051702 ]-------------------------
-
- Problem: When security for K)ill command set too high to use,
- caller still presented with K option in msg read when reading own
- mail.
-
- Solution: Change RBBS-PC.BAS as follows:
-
- 4600 IF ScanMsgs THEN _
- GOSUB 8020 : _
- GOTO 4630
- IF NOT JustSearching THEN _
- GOSUB 8000 : _
- IF QuotedReply THEN _
- QuotedReply = ZFalse : _
- GOTO 4610
- IF ZRet THEN _
- GOTO 4630
- CanChangeSec = (ZUserSecLevel => ZSecChangeMsg)
- WasI = - ((ZUserSecLevel >= ZOptSec(9)) AND (UserInHeader OR CanKill)) ' KG051702
- IF ZExpertUser THEN _
- WasA1$ = ",R,T,=,+,-" + _
- MID$(",F",1,- (UserInHeader OR CanChangeSec) * 2) + _
- MID$(",K",1,WasI * 2) + _ ' KG051702
- MID$(",U",1,- (ZUserSecLevel >= ZOptSec(54)) * 2) + _
- MID$(",S",1, - CanChangeSec * 2) _
- ELSE WasA1$ = ",R)eply,T)hread,=)again,+,-" + _
- MID$(",F)wd",1, - (UserInHeader OR CanChangeSec) * 5) + _
- MID$(",K)ill",1, WasI * 6) + _ ' KG051702
- MID$(",U)ser",1,- (ZUserSecLevel >= ZOptSec(54)) * 6) + _
- MID$(",S)ec",1, - CanChangeSec * 5)
- ZTurboKey = -ZTurboKeyUser
- IF JustSearching OR NOT JustReplied THEN _
- GOTO 4610
- JustReplied = ZFalse
- CALL AskMore (WasA1$,ZTrue,ZFalse,ZAnsIndex,ZFalse)
- CALL SkipLine (1)
- IF ZNo THEN _
- RETURN
- CALL AllCaps (ZUserIn$)
- ZReply = (ZReply OR ZUserIn$ = "R")
- IF ZUserIn$ <> "=" THEN _
- GOTO 4618
- CALL SkipLine (1)
-
- ------------------------[ KG051701 ]-------------------------
-
- Problem: When in a subboard, do a V)iew conference, and use
- join suboption to rejoin main, stays inside the subboard.
-
- Solution: Change RBBS-PC.BAS as follows:
-
- 1205 IF ZSubParm < 0 THEN _
- GOTO 202
- ZSubParm = 1
- ZStopInterrupts = ZFalse
- ZNonStop = (ZPageLength < 1)
- ZWasQ = 0
- IF ConfMailJoin OR (ZHomeConf$ <> "" AND ZHomeConf$ <> "MAIN") THEN _ ' TC051701
- TurboLogon = (NOT ConfMailJoin) : _
- ConfMailJoin = ZFalse : _
- ZFF = 8 : _
- ZUserIn$(2) = ZHomeConf$ : _
- ZHomeConf$ = "" : _
- ZWasQ = 1 : _
- ZAnsIndex = 1 : _
- ZLastIndex = 2 : _
- ZStoreParseAt = 1 : _
- ZLastCommand$ = "MJ" : _ ' KG021502
- GOTO 1240
- CALL SkipLine (1)
-
- ------------------------[ KG051601 ]-------------------------
-
- Problem: When SysOp declines to leave a comment because it would
- be to same person msg would be from, and then E)nters another
- message, is not prompted for the subject ("comment" is used).
-
- Change RBBS-PC.BAS as follows:
-
- 2000 QuotedReply = ZFalse
- MsgFrom$ = ZActiveUserName$
- SysopMsg = ZFalse ' MB051601
-
- ------------------------[ KG051501 ]-------------------------
-
- Problem: Some BBS's allow lower case in a msg subject. When mail from
- them gets added to RBBS, it may remain in lower case. Then thread
- and text search will not match properly.
-
- Solution: Always make the subject upper case when it is read into
- RBBS. Change RBBS-PC.BAS as follows:
-
- 8040 IF LEN(MsgTo$) < 23 THEN _
- MsgTo$ = MsgTo$ + _
- SPACE$(23 - LEN(MsgTo$))
- Subject$ = MID$(ZMsgRec$,76,25)
- CALL Trim (Subject$)
- CALL AllCaps (Subject$) ' KG051501
- OrigSubject$ = Subject$
- IF ZPswdFailed THEN _
- Subject$ = WasSJ$
-
- ------------------------[ KG042501 ]-------------------------
-
- Problem: When execute macros with block print to screen that
- has empty lines in it, prompts repeated on the screen and macro
- works irregulary.
-
- Solution: Change RBBSSUB5.BAS as follows:
-
- 63336 GOSUB 63395
- IF NOT ZMacroActive THEN _
- ZMacroEcho = ZTrue : _
- EXIT SUB ' KG042501
- IF CompareVar > 0 THEN _
- IF NOT CaseExecute THEN _
- IF LEFT$(ZOutTxt$,3) = ZSmartTextCode$+"==" THEN _
- WasX$ = RIGHT$(ZOutTxt$,LEN(ZOutTxt$)-3) : _ ' KG042501
- GOTO 63370 _
- ELSE IF LEFT$(ZOutTxt$,7) = ZSmartTextCode$ + "END ON" THEN _
- CompareVar = 0 : _
- GOTO 63336 _
- ELSE GOTO 63336
- IF LEN(ZOutTxt$) < 3 THEN _ ' KG042501
- GOTO 63398 ' KG042501
- WasX$ = RIGHT$(ZOutTxt$,LEN(ZOutTxt$)-3) ' KG042501
- IF LEFT$(ZOutTxt$,1) <> ZSmartTextCode$ THEN _
- GOTO 63398
- CALL CheckInt (MID$(ZOutTxt$,2))
- IF ZErrCode > 0 THEN _
- GOTO 63398
- .
- .
- .
-
- ------------------------[ KG041702 ]-------------------------
-
- Problem: CONFIG accepts a quote for a command symbol but this
- choice messes up the entire configuration file.
-
- Solution: Do not allow quote as a choice. Change CNFG-SUB.BAS
- as follows:
-
- 61892 CALL ASKRO("New command for " + _
- MID$(COMMANDS$(FF,1),1,INSTR(COMMANDS$(FF,1)," ")) + _
- "is?",24,HK$)
- IF HK$ = CHR$(34) THEN _ ' KG041702
- GOTO 61892 ' KG041702
- X$ = MID$(HK$,1,1)
- CALL ALLCAPS (X$)
- IF LEN(HK$) > 1 THEN _
- HK$ = X$ + MID$(HK$,2)
- IF LEN (HK$) = 1 THEN _
- HK$ = X$
- COMMANDS$(FF,2) = HK$
- MID$(SECTION.COMMANDS$,FF,1) = HK$
- GOTO 61880
-
- ------------------------[ KG041701 ]-------------------------
-
- Problem: Door may exist but fail to be executed.
-
- Solution: Line was left out of a subprogram. Change RBBSSUB4.BAS
- as follows:
-
- 59510 ZFileName$ = CurMenu$
- InMenu = ZTrue ' KG041701
- CALL BreakFileName (CurMenu$,MenuDrv$,WasX$,ZWasDF$,ZTrue)
- MenuFront$ = MenuDrv$ + WasX$
- CALL Graphic (GRDefault$,ZFileName$)
- CurMenuVer$ = ZFileName$
- ZStopInterrupts = ZFalse
- IF ZAnsIndex < ZLastIndex OR ZExpertUser THEN _
- GOTO 59520
-
- ------------------------[ KG041401 ]-------------------------
-
- Problem: Possible to get an infinite loop under NetBios.
-
- Solution: Caused by trying to unlock a file not locked. Change
- RBBSSUB1.BAS as follows:
-
- 29920 ZErrCode = 0
- IF IBMFileLock = 6 AND IBMRecLock = 3 THEN _
- IBMCount = IBMCount - 1 : _
- IF IBMCount > 0 THEN _
- EXIT SUB _
- ELSE IBMCount = 0
- UNLOCK IBMFileLock, IBMRecLock TO IBMRecLock
- IF ZErrCode = 70 THEN _ ' ML041401
- EXIT SUB ' ML041401
- IF ZErrCode <> 0 THEN _
- GOTO 29920
- END SUB
-
- ------------------------[ KG040902 ]-------------------------
-
- Problem: When dooring to external protocols that append to the
- log file used by DSZ, the log file can grow rather than contain
- only the latest transfer, causing RBBS to read the wrong entry.
-
- Solution: Change RBBSSUB5.BAS as follows:
-
- 20263 IF ZPrivateDoor THEN _
- ZCmdTransfer$ = ZWasFT$ : _
- CALL XferType (2,ZTrue) : _
- ZCmdTransfer$ = ""
- CALL OpenWork (2,"XFER-" + ZNodeID$ + ".DEF")
- IF ZErrCode <> 0 THEN _
- GOTO 20267
- CALL ReadParms (ZWorkAra$(), ZFailureParm, 1)
- IF ZErrCode <> 0 THEN _
- GOTO 20267
- CLOSE 2 ' KG040902
- CALL KillWork ("XFER-" + ZNodeID$ + ".DEF")
-
- ------------------------[ KG040901 ]-------------------------
-
- Problem: If screen happens to fill with msg "Scanning directory...",
- will not pause but scroll lines away.
-
- Solution: Change RBBSSUB5.BAS as follows:
-
- 20120 ZOutTxt$ = "Scanning Directory " + _
- ZFileNameHold$
- IF WasRS$ <> "" THEN _
- ZOutTxt$ = ZOutTxt$ + " for " + WasRS$
- GOSUB 21650
- IF ZFileSysParm > 1 THEN _
- RETURN
- CALL AskMore ("",ZTrue,ZTrue,ZAnsIndex,ZFalse) ' KG040901
- IF ZNo THEN _ ' KG040901
- ZErrCode = 0 : _ ' KG040901
- RETURN ' KG040901
- WasPG = ZTrue
-
- ------------------------[ KG032801 ]-------------------------
-
- Problem: Documentation says a macro can be executed before any
- file transfer by putting it in PROTO.DEF. But macro is ignored.
-
- Solution: Change RBBSSUB5.BAS as follows:
-
- 20330 IF ZAutoDownInProgress THEN _
- RETURN
- GOSUB 20337 ' KG032801
- ZOutTxt$ = ZProtoPrompt$ + _
- " " + WasA1$ + _
- " of " + _
- ZFileNameHold$ + _
- " ready. <Ctrl X> aborts"
- GOSUB 21650
-
- 20337 IF ZProtoMacro$ <> "" THEN _ ' KG032801
- ZGSRAra$(1) = MID$("DU ",ZTransferFunction,1) : _ ' KG032801
- CALL MacroExe (ZProtoMacro$) ' KG032801
- RETURN ' KG032801
-
- 20340 IF ZWasDF THEN _
- ZOutTxt$ = "Switch to a non-ascii protocol" : _
- GOSUB 21650 : _
- GOTO 21700
- GOSUB 20750
- IF ZFileSysParm > 1 OR NOT ZOK THEN _
- RETURN
- CALL OpenWork (2,ZFileName$)
- IF (ZAnsIndex = FirstDnld OR NOT ZConcatFIles) THEN _
- GOSUB 20337 : _ ' KG032801
- ZOutTxt$ = "^X aborts. ^S suspends ^Q resumes" : _
- GOSUB 21640 : _
- IF ZFileSysParm > 1 THEN _
- RETURN _
- ELSE ZOutTxt$ = ZProtoPrompt$ + " SEND of " + _
- ZFileNameHold$ + _
- " ready. Press Any Key to start" : _
- ZTurboKey = 2 : _
- ZForceKeyboard = ZTrue : _
- ZSuspendAutologoff = ZTrue : _
- GOSUB 21660 : _
- ZSuspendAutologoff = ZFalse : _
- GOSUB 20335 : _
- IF ZFileSysParm > 1 THEN _
- RETURN
-
- 20560 LineACK = (ZDefaultLineACK$ <> "")
- IF LineACK THEN _
- ZOutTxt$ = "Acknowledge each line ([Y],N)" : _
- ZTurboKey = - ZTurboKeyUser : _
- LineACK = NOT ZNo : _
- GOSUB 21660 : _
- IF ZFileSysParm > 1 THEN _
- RETURN
- GOSUB 20337 ' KG032801
- CALL QuickTPut1 ("Transfer MUST end with a <Ctrl-K>")
- CALL QuickTPut1 (ZProtoPrompt$+" RECEIVE of " + ZFileNameHold$ + " ready")
- ZOK = ZFalse
- XOff = ZFalse
- CALL OpenOutW(ZFileName$)
- IF ZErrCode <> 0 AND ZErrCode <> 53 THEN _
- ZWasEL = 20560 : _
- GOTO 21900
- GOSUB 20510
- IF ZFileSysParm > 1 THEN _
- RETURN
-
- ------------------------[ KG032601 ]-------------------------
-
- Problem: When have a problem reading TRASHCAN file other than
- file not found, such as when TRASHCAN is a dos subdirectory,
- will get untrapped errors when new user tries to log on.
-
- Solution: Change RBBS-PC.BAS as follows:
-
- 12570 Found = ZFalse
- CALL OpenWork (2,ZTrashcanFile$)
- IF ZErrCode <> 0 THEN _ ' KG032601
- ZErrCode = 0 : _ ' KG032601
- RETURN ' KG032601
-
- ------------------------[ KG032502 ]-------------------------
-
- Problem: Any door listed in DOORS.DEF should be executable if
- caller has sufficient security. But only SysOp can executed
- doors not listed on the menu.
-
- Solution: To allow "hidden" doors, change RBBS-PC.BAS as
- follows:
-
- 821 IF ZExitToDoors THEN _
- IF ZTransferFunction = 3 THEN _
- ZNewUser = ZTrue : _
- TurboLogon = ZFalse : _
- SameUser = ZFalse : _
- ZTransferFunction = 0 : _
- GOTO 832 _
- ELSE GOTO 832
- GOSUB 1241
- IF (SubBoard AND (ZOrigMsgFile$ = ZActiveMessageFile$)) _
- OR ((ZUserSecLevel > ZMaxRegSec) AND (NOT ZNewUser)) THEN _
- GOTO 832
- ZWasZ$ = ZRegProgram$
- ZTransferFunction = 3
- CALL DoorExit (ZFalse) ' KG032502
- ZTransferFunction = 0
- GOTO 832
-
- 1401 ZStackC = ZTrue
- CALL SubMenu ("Which questionnaire(s), L)ist" + ZPressEnterExpert$, _
- WasA1$,ZQuesPath$,".DEF","",ZUserGraphicDefault$,ZTrue,ZFalse,ZTrue,"",WasX) ' KG032502
- IF ZWasQ = 0 THEN _
- RETURN
- IF ZSubParm = -1 THEN _
- RETURN 10595
- QuestHold$ = ZWasZ$
- GOSUB 11520
- CLOSE 2
- CALL UpdtCalr (QuestHold$ + " questionnaire " + _
- MID$("answeredaborted",1 - 8 * ZQuestAborted,8),2)
- IF ReturnToPrompt THEN _
- RETURN
- GOTO 1401
-
- 5301 ZStackC = ZTrue
- CALL SubMenu ("What conference, L)ist, M)ain ([ENTER] quits)",_
- WasA1$,MsgDrvPath$,_
- "M.DEF","M",ZUserGraphicDefault$,ZTrue,ZFalse,ZFalse,"C.DEF",WasX) ' KG032502
- IF ZWasQ = 0 THEN _
- RETURN
- IF ZSubParm = -1 THEN _
- RETURN 10595
-
- 9701 CALL SubMenu ("Read what bulletin(s), L)ist, S)ince, N)ews ([ENTER] = none)",_
- WasA1$, ZBulletinPrefix$,"",ReturnOn$,_
- ZUserGraphicDefault$,ZFalse,ZFalse,ZFalse,"",WasX) ' KG032502
- IF ZWasQ = 0 THEN _
- RETURN
- CALL CheckCarrier
- IF ZSubParm = -1 THEN _
- RETURN 10595
- IF (ZWasZ$ = "*" OR ZWasZ$ = "S") THEN _
- ZPrevPrefix$ = "" : _
- GOTO 9760
- ZStopInterrupts = ZFalse
- IF ZWasZ$ = "N" THEN _
- GOSUB 1242 : _
- IF WasZ <> 0 THEN _
- CALL QuickTPut1 ("No NEWS available") : _
- GOTO 9701 _
- ELSE GOTO 9703
- CALL BufFile (ZFileName$,ZAnsIndex)
-
- 10974 WasA1$ = ZMenu$(5)
- CALL Talk (5,ZOutTxt$)
- ZStackC = ZTrue
- CALL SubMenu ("Open which door, L)ist" + ZPressEnterExpert$, _
- WasA1$,"",".BAT","",_
- ZUserGraphicDefault$,ZTrue,ZFalse,ZFalse,"",InMenu) ' KG032502
- IF ZWasQ = 0 THEN _
- RETURN
- IF ZSubParm = -1 THEN _
- RETURN 10595
-
- 10986 ZWasZ$ = ZFileName$
- CALL DoorExit (NOT InMenu) ' KG032502
- GOTO 10974 ' KG032502
-
- Change RBBSSUB2.BAS as follows:
-
- (line 10983)
-
- 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$)
- IF NOT ZOK THEN _
- IF ReqDoorsDef THEN _ ' KG032502
- EXIT SUB _ ' KG032502
- ELSE ExitTo$ = ExitTo$ + " " + ZNodeID$ : _ ' KG032502
- GOTO 10989 ' KG032502
- 10985 CALL ReadParms (ZOutTxt$(),8,1)
- IF ZErrCode > 0 THEN _
- IF ReqDoorsDef THEN _ ' KG032502
- EXIT SUB _ ' KG032502
- ELSE ExitTo$ = ExitTo$ + " " + ZNodeID$ : _ ' KG032502
- GOTO 10989 ' KG032502
- IF ExitTo$ <> ZOutTxt$(1) THEN _
- GOTO 10985
- CALL CheckInt (ZOutTxt$(2))
- IF ZErrCode > 0 THEN _
- ZErrCode = 0 : _
- GOTO 10985
- IF ZUserSecLevel < ZTestedIntValue THEN _
- CALL QuickTPut1 ("Insufficient security for door") : _
- EXIT SUB
- WasX$ = LEFT$(ZOutTxt$(5),INSTR(ZOutTxt$(5)+" "," ")-1)
- CALL FindIt (WasX$)
- IF NOT ZOK THEN _
- GOTO 10986
- ZFileName$ = ZOutTxt$(3)
- ExitMethod$ = ZOutTxt$(4)
- ExitTemplate$ = ZOutTxt$(5)
- ZDoorDisplay$ = ZOutTxt$(7)
- DoorTime$ = ZOutTxt$(8)
- CALL AskUsers
- CALL SmartText (ExitTemplate$,ZFalse,ZFalse)
- CALL MetaGSR (ExitTemplate$,ZFalse)
- ExitTo$ = ExitTemplate$
- GOTO 10989
-
- Change RBBSSUB4.BAS as follows:
-
- (line 59500)
-
- SUB SubMenu (PassedPrompt$,CurMenu$,FrontOpt$, _
- BackOpt$,ReturnOn$,GRDefault$,VerifyInMenu, _
- AllMenuOK,RequireInMenu,BackOpt2$,InMenu) STATIC ' KG032502
-
- 59538 FilName$ = FPre$ + ZWasZ$
- CALL BadFile (FilName$,WasBF)
- IF WasBF > 1 THEN _
- ZOK = ZFalse : _
- RETURN
- ZFileName$ = FilName$ + _
- BackOpt$
- CALL Graphic (GRDefault$,ZFileName$)
- IF NOT ZOK THEN _
- IF BackOpt2$ <> "" THEN _
- ZFileName$ = FilName$ + _
- BackOpt2$ : _
- CALL Graphic (GRDefault$,ZFileName$)
- IF ZOK THEN _
- IF ZSysop OR (NOT RequireInMenu) THEN _
- RETURN _
- ELSE CALL WordInFile (CurMenu$,ZWasZ$,InMenu) : _ ' KG032502
- IF InMenu THEN _ ' KG032502
- 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
- 59540 WasX$ = FPre$ + _
- ZWasZ$ + _
- ".MNU" 'check whether option is a menu
- ZFileName$ = WasX$
- CALL Graphic (GRDefault$,ZFileName$)
- IF ZOK THEN _
- NewMenu = ZTrue : _
- CurMenuVer$ = ZFileName$ : _
- CurMenu$ = WasX$ : _
- CALL BreakFileName (CurMenu$,MenuDrv$,WasX$,ZWasDF$,ZTrue) : _
- MenuFront$ = MenuDrv$ + WasX$ : _
- RETURN
- IF VerifyInMenu AND InMenu AND NOT RequireInMenu THEN _ ' KG032502
- CALL UpdtCalr("Option " + ZWasZ$ + " on menu " + _
- CurMenu$ + " but not found",1)
- RETURN
-
- ------------------------[ KG032501 ]-------------------------
-
- Problem: When put registration door control in DOORS.DEF, it
- is being ignored.
-
- Solution: Change RBBSSUB2.BAS as follows:
-
- (line 10983)
-
- SUB DoorExit STATIC
- 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$ = ""
- .
- .
- .
-
- ------------------------[ KG031801 ]-------------------------
-
- Problem: When has main and auxiliary FMS directories, and list an
- auxiliary, abort, then list main, get auxiliary instead.
-
- Solution: Change RBBSSUB3.BAS as follows:
-
- 58183 CLOSE 2
- ZNonStop = (ZPageLength < 1)
- ZStopInterrupts = ZFalse
- ZOutTxt$ = ""
- ZActiveFMSDir$ = "" ' KG031801
- ZJumpSupported = ZFalse
- EXIT SUB
-
- ------------------------[ KG031501 ]-------------------------
-
- Problem: Sometimes get endless looping where keeps trying to download
- same file after upload is aborted.
-
- Solution: Change RBBSSUB5.BAS as follows:
-
- 20735 CALL KillWork (ZFileName$)
- IF ZErrCode <>0 THEN _
- ZWasEL = 20736 : _
- GOTO 21900
- ZAnsIndex = ZLastIndex + 1 ' KG031501
- ZLastIndex = 0
- RETURN
-
- ------------------------[ KK030901 ]-------------------------
-
- Problem: Possible to get untrapped overflow error in intermediate
- variables in an integer calculation.
-
- Solution: Change RBBS-PC.BAS as follows:
-
- 135 IF ZCurDef$ = ZOrigCnfg$ THEN _
- ZActiveMessageFile$ = ZMainMsgFile$ : _
- ZActiveUserFile$ = ZMainUserFile$
- GOSUB 4910
- IF ZConfMode THEN _
- GOTO 150
- ZLocalUserMode = (RIGHT$(ZComPort$,1) < "1")
- GET 1,ZNodeRecIndex
- ZWasY$ = MID$(ZMsgRec$,77,2)
- CALL UnPackDate (ZWasY$,WasX,WasL,WasI,ZOldDate$)
- ZOldDate$ = LEFT$(ZOldDate$,6) + MID$(STR$(WasX),2)
- ZHourMinToDropToDos = - (ZHourMinToDropToDos > 0) * ZHourMinToDropToDos
- Hour = INT(ZHourMinToDropToDos / 100)
- WasMN = ZHourMinToDropToDos - Hour * 100
- ZTimeToDropToDos! = Hour * 3600! + WasMN * 60! ' KK030901
-
- 175 GOSUB 5344
- CALL CountLines (MaxEntries)
- REDIM ZCategoryName$(MaxEntries),ZCategoryCode$(MaxEntries),_
- ZCategoryDesc$(MaxEntries) : _
- CALL InitFMS (ZCategoryName$(),ZCategoryCode$(), _
- ZCategoryDesc$(),ZNumCategories)
- ZMaxMsgLines = ZMaxMsgLinesDef
- ZLocalUser = (ZLocalUser OR ZLocalUserMode)
- IF (NOT ZLocalUser) AND (NOT SubBoard) THEN _
- CALL OpenCom (ZModemInitBaud$,",N,8,1")
- IF NOT SubBoard THEN _
- CALL SetEcho (ZDefaultEchoer$)
- ZNodeWorkFile$ = ZNodeWorkDrvPath$ + _
- "NODE" + _
- ZNodeFileID$ + _
- "WRK"
- ZSecsPerSession! = ZMinsPerSession * 60! ' KK030901
- IF NOT ZLocalUserMode THEN _
- IF NOT ZExitToDoors THEN _
- GOTO 180 _
- ELSE IF NOT ZLocalUser THEN _
- GOTO 180
- ZLocalUser = ZTrue
- ZBPS = -6
- ZBaudTest! = 9600
- ZEightBit = ZTrue
- ZSnoop = ZTrue
- IF ZExitToDoors THEN _
- CALL AMorPM : _
- CALL ReadProf : _
- GOTO 410
- GOSUB 178
- GOTO 345
-
- 459 GOSUB 9500
- ZLastDateTimeOnSave$ = ZLastDateTimeOn$
- IF ZExitToDoors THEN _
- TempHoldTime! = VAL(LEFT$(ZTime$,2))*3600! + _ ' KK030901
- VAL(MID$(ZTime$,4,2))*60! : _ ' KK030901
- CALL CheckTime(TempHoldTime!, TempTime!, 2) : _
- MinsInDoors = TempTime! / 60 : _
- CALL TimeRemain (MinsRemaining)
- ZUserFileIndex = LOC(5)
- GOSUB 5135
- '
- ' *** COMPUTE THE NUMBER OF DAYS REMAINING UNTIL REGISTRATION EXPIRES **
- '
- IF ZRestrictByDate AND ZDaysInRegPeriod > 0 THEN _
- CALL CompDate (UserRegYY,UserRegMM,UserRegDD,UserComputeDate!) : _
- ZRegDaysRemaining = UserComputeDate! + _
- ZDaysInRegPeriod - _
- TodayComputeDate! : _
- CALL ExpireDate (UserComputeDate!,ZDaysInRegPeriod,ZExpirationDate$) _
- ELSE ZDaysInRegPeriod = 0
- IF NOT ZPrivateDoor THEN _
- IF ZRegDaysRemaining < 0 AND ZDaysInRegPeriod > 0 THEN _
- IF ZUserSecLevel > ZExpiredSec THEN _
- CALL QuickTPut1 (ZWasLG$(9) + _
- " - security reset to " + _
- STR$(ZExpiredSec)) : _
- CALL BufFile(ZHelpPath$+"RGXPIRD"+ZHelpExtension$,WasX) : _
- ZLogonErrorIndex = 9 : _
- ZUserSecLevel = ZExpiredSec : _
- LSET ZSecLevel$ = MKI$(ZUserSecLevel) : _
- GOSUB 5135
-
- Change RBBSSUB3.BAS as follows:
-
- (line 44000)
-
- SUB ReadProf STATIC
- FIELD 1, 128 AS ZMsgRec$
- GET 1,ZNodeRecIndex
- ZReliableMode = VAL(MID$(ZMsgRec$,91,2))
- MID$(ZMsgRec$,40,2) = "00"
- ZEightBit = VAL(MID$(ZMsgRec$,42,2))
- ZBPS = VAL(MID$(ZMsgRec$,44,2))
- CALL CommInfo
- ZBaudTest! = VAL(MID$(ZBaudRates$,(-5 * ZBPS),5))
- ZUpperCase = VAL(MID$(ZMsgRec$,46,2))
- ZNumDnldBytes! = CVS(MID$(ZMsgRec$,48,4)) ' KG022101
- ZBatchTransfer = (MID$(ZMsgRec$,52,1) = "1")
- ZWasGR = VAL(MID$(ZMsgRec$,53,2))
- HourLoggedOn$ = RIGHT$("0"+MID$(STR$(ASC(MID$(ZMsgRec$,65,1))),2),2)
- MinLoggedOn$ = RIGHT$("0"+MID$(STR$(ASC(MID$(ZMsgRec$,66,1))),2),2)
- SecLoggedOn$ = RIGHT$("0"+MID$(STR$(ASC(MID$(ZMsgRec$,67,1))),2),2)
- ZTimeLoggedOn$ = HourLoggedOn$ + _
- ":" + _
- MinLoggedOn$ + _
- ":" + _
- SecLoggedOn$
- ZTransferFunction = VAL(MID$(ZMsgRec$,74,1))
- ZWasFT$ = MID$(ZMsgRec$,75,1)
- ZTimeCredits! = 60!*CVI(MID$(ZMsgRec$,113,2)) ' KKG030901
- ZDooredTo$ = MID$(ZMsgRec$,79,8)
- CALL Trim (ZDooredTo$)
- .
- .
- .
-
- 44003 ZUserLogonTime! = VAL(HourLoggedOn$) * 3600! + _ ' KK030901
- VAL(MinLoggedOn$) * 60! + _ ' KK030901
- VAL(SecLoggedOn$)
- HourLoggedOn$ = ""
- MinLoggedOn$ = ""
- SecLoggedOn$ = ""
- IF ZMinsPerSession < 1 THEN _
- ZMinsPerSession = 3
- IF NOT ZEightBit THEN _
- OUT ZLineCntlReg,&H1A
- IF LEFT$(ZMsgRec$,7) = "SYSOP " THEN _
- ZFirstName$ = ZSysopPswd1$ : _
- ZActiveUserName$ = ZSysopPswd1$ + " " + ZSysopPswd2$ _
- ELSE ZFirstNameEnd = INSTR(ZMsgRec$," ") : _
- ZLastNameEnd = INSTR(ZFirstNameEnd + 1,ZMsgRec$ + " "," ") : _
- ZFirstName$ = LEFT$(ZMsgRec$,ZFirstNameEnd-1) : _
- ZLastName$ = MID$(ZMsgRec$,ZFirstNameEnd + 1,ZLastNameEnd - (ZFirstNameEnd + 1)) : _
- ZActiveUserName$ = MID$(ZFirstName$ + " " + ZLastName$,1,31)
- ZWasZ$ = ZFirstName$
- CALL OpenWork (2,ZNodeWorkDrvPath$+"DRST"+ZNodeFileID$+".DEF")
- CALL ReadDir (2,1)
- ZLimitMinsPerSession = VAL (ZOutTxt$)
- CLOSE 2
- END SUB
-
- (line 58140)
-
- SUB LoadNew (Ara(2)) STATIC
- IF ZFMSDirectory$ = "" THEN _
- EXIT SUB
- ZPrevBase$ = ""
- IF PrevLoadNew$ = ZFMSDirectory$ THEN _
- Ara(1,1) = 0 : _
- EXIT SUB
- PrevLoadNew$ = ZFMSDirectory$
- CALL OpenFMS (LastRec)
- FIELD 2, 23 AS PreDate$, _
- 2 AS WasMM$, _
- 1 AS Fill1$, _
- 2 AS WasDD$, _
- 1 AS Fill2$, _
- 2 AS Year$, _
- (2 + ZMaxDescLen) AS Fill3$, _
- 3 AS Category$, _
- 2 AS Fill4$
- MaxRecs = UBOUND(Ara,1)
- IF MaxRecs < 1 THEN _
- MaxRecs = 1 _
- ELSE IF MaxRecs > 23 THEN _
- MaxRecs = 23
- WasL = 0
- WasK = LastRec
- WHILE WasK > 0 AND WasL < MaxRecs
- GET #2,WasK
- IF INSTR("\= ",LEFT$(PreDate$,1)) > 0 THEN _
- GOTO 58142
- IF (ZCanDnldFromUp OR Category$ <> ZDefaultCatCode$) THEN _
- WasL = WasL + 1 : _
- Ara(WasL,1) = 372! * (VAL(Year$) - 80!) + 31! * VAL(WasMM$) + VAL(WasDD$) ' KK030901
- IF NOT ZCanDnldFromUp THEN _
- WasX = ZMinSecToView _
- ELSE IF Category$ = "***" THEN _
- WasX = ZSysopSecLevel _
- ELSE IF Category$ = ZDefaultCatCode$ THEN _
- WasX = ZMinSecToView _
- ELSE WasX = ZOptSec(19)
- Ara(WasL,2) = WasX
-
- ------------------------[ KG030801 ]-------------------------
-
- Problem: When screen pauses in midst of personal mail scan, will no
- longer show rest of mail scan on the screen.
-
- Solution: Change RBBS-PC.BAS as follows:
-
- 1900 GOSUB 5344
- IF ZPrivateDoor THEN _
- ActionFlag = ZTrue
- ZPrevBase$ = ZActiveMessageFile$
- ShowActive = ZFalse
- IF NOT ActionFlag THEN _
- CALL QuickTPut ("Checking messages in " + ConfFileName$,0) : _
- ShowActive = ZTrue _
- ELSE CALL QuickTPut ("Loading messages",0)
- WasA1$ = "" ' KG030801
- MsgCt = 0 ' KG030203
- MsgsFromUser = ZFalse
- ActiveMessages = 0
- MailReported = ActionFlag
- FirstOld = ZTrue
- GOSUB 23000
- MsgRec = FirstMsgRecord
- MaxMsgs = VAL(MID$(ZMsgRec$,89,7))
- IF MaxMsgs > WasMM THEN _
- MaxMsgs = WasMM
- REDIM ZMsgPtr(MaxMsgs,2)
- NumDots = 0
-
- 1940 IF MsgsFromUser < ZMsgDim THEN _
- MsgsFromUser = MsgsFromUser + 1 : _
- WasA1$ = WasA1$ + LEFT$(ZMsgRec$,5) ' KG030801
-
- 1960 WasK = 1
- FOR MsgCt = 1 TO MsgsFromUser ' KG030203
- ZOutTxt$ = MID$(WasA1$,WasK,5) ' KG030801
- WasK = WasK + 5
- GOSUB 12978
- IF MsgCt MOD 15 = 0 THEN _ ' KG030203
- CALL SkipLine (1) : _ ' KG030203
- CALL AskMore ("",ZTrue,ZTrue,WasX,ZTrue) ' KG030203
- NEXT
- WasA1$ = "" ' KG030801
- CALL SkipLine (1)
- CALL QuickTPut1 ("Please K)ill old/unneeded msgs")
-
- ------------------------[ KG030601 ]-------------------------
-
- Problem: Sometimes RBBS will get in a state where it constantly
- recycles. Callers file says "Connect Timeout".
-
- Solution: Caused usually by storing a telephone number in place of
- where from, or by failing to give password right in local mode, then
- bringing up remotely. Change RBBS-PC.BAS as follows:
-
- 150 IF SubBoard THEN _
- GOSUB 12987 : _
- GOSUB 5135 : _
- GOTO 170
- ZSysopAvail = VAL(MID$(ZMsgRec$,32,2))
- ZSysopAnnoy = VAL(MID$(ZMsgRec$,34,2))
- ZSysopNext = VAL(MID$(ZMsgRec$,36,2))
- MID$(ZMsgRec$,36,2) = STR$(ZFalse)
- ZPrinter = VAL(MID$(ZMsgRec$,38,2))
- IF ZTurnPrinterOff THEN _
- ZPrinter = ZFalse
- ZExitToDoors = (MID$(ZMsgRec$,40,2) = "-1" AND ZNetBaud$ = "")
- ZEightBit = VAL(MID$(ZMsgRec$,42,2))
- ZBPS = VAL(MID$(ZMsgRec$,44,2))
- ZSnoop = VAL(MID$(ZMsgRec$,58,2))
- MID$(ZMsgRec$,57,1) = "I"
- ZPrivateDoor = (MID$(ZMsgRec$,72,2) = "-1")
- IF ZPrivateDoor THEN _
- ZHasPrivDoor = ZTrue
- MID$(ZMsgRec$,72,2) = STR$(ZFalse)
- ZLocalUser = (MID$(ZMsgRec$,101,2) = ZCarriageReturn$+ZCarriageReturn$) ' KG030601
- IF ZExitToDoors OR ZPrivateDoor THEN _
- ZHasDoored = ZTrue : _
- TurboLogon = ZTrue
- PUT 1,ZNodeRecIndex
- GOSUB 12985
- '
- ' ***** INITIALIZE VOICE SYNTHESIZER ****
- '
- CALL Talk (Init,ZOutTxt$)
- '
- ' ***** TEST FOR MULTI LINK PRESENT IF NOT COMPAQ COMPUTER ****
- '
-
- 13555 ZActiveMessageFile$ = ZOrigMsgFile$
- GOSUB 12986
- GOSUB 5344
- GET 1,ZNodeRecIndex
- MID$(ZMsgRec$,57,1) = "I"
- MID$(ZMsgRec$,40,2) = " 0"
- MID$(ZMsgRec$,72,2) = " 0"
- IF MID$(ZMsgRec$,101,2) = ZCarriageReturn$+ZCarriageReturn$ THEN _ ' KG030602
- MID$(ZMsgRec$,101,2) = " 0" ' KG030602
- PUT 1,ZNodeRecIndex
- GOSUB 12985
- CLOSE 1,2,4,5
- IF NOT ZFossil THEN _
- CLOSE 3
- IF ZRecycleToDos THEN _
- GOTO 203
- RUN 100
-
- Change RBBSSUB3.BAS as follows:
-
- 43070 ZActiveMessageFile$ = ZOrigMsgFile$
- ZSubParm = 3
- CALL FileLock
- CALL OpenMsg
- FIELD 1, 128 AS ZMsgRec$
- GET 1,ZNodeRecIndex
- IF ZGlobalSysop THEN _
- MID$(ZMsgRec$,1,30) = "SYSOP" + SPACE$(25)
- MID$(ZMsgRec$,40,2) = STR$(ZExitToDoors)
- MID$(ZMsgRec$,42,2) = STR$(ZEightBit)
- MID$(ZMsgRec$,44,2) = STR$(ZBPS)
- MID$(ZMsgRec$,46,2) = STR$(ZUpperCase)
- MID$(ZMsgRec$,48,5) = MKS$(ZNumDnldBytes!) + MID$(STR$(-ZBatchTransfer),2) ' KG022101
- MID$(ZMsgRec$,53,2) = STR$(ZWasGR)
- MID$(ZMsgRec$,55,2) = STR$(ZSysop)
- MID$(ZMsgRec$,65,3) = CHR$(VAL(LEFT$(ZTimeLoggedOn$,2))) + _
- CHR$(VAL(MID$(ZTimeLoggedOn$,4,2))) + _
- CHR$(VAL(MID$(ZTimeLoggedOn$,7,2)))
- MID$(ZMsgRec$,72,2) = STR$(ZPrivateDoor)
- MID$(ZMsgRec$,74,1) = MID$(STR$(ZTransferFunction),2,1)
- MID$(ZMsgRec$,75,1) = ZWasFT$
- MID$(ZMsgRec$,113,2) = MKI$(CINT(ZTimeCredits!)/60)
- MID$(ZMsgRec$,79,8) = LEFT$(ZDooredTo$+" ",8)
- MID$(ZMsgRec$,91,2) = STR$(ZReliableMode)
- CALL BreakFileName (ZCurPUI$,ZOutTxt$,ZUserIn$,ZWasZ$,ZFalse)
- MID$(ZMsgRec$,93,8) = ZUserIn$ + SPACE$(8 - LEN(ZUserIn$))
- IF ZLocalUser THEN _
- ZWasZ$ = ZCarriageReturn$ + ZCarriageReturn$ _ ' KG030601
- ELSE ZWasZ$ = " 0" ' KG030601
- MID$(ZMsgRec$,101,2) = ZWasZ$ ' KG030601
- MID$(ZMsgRec$,103,2) = STR$(ZLocalUserMode) ' KG030601
- ZConfName$ = LEFT$(ZConfName$,INSTR(ZConfName$ + " "," ") - 1)
- MID$(ZMsgRec$,105,8) = ZConfName$ + SPACE$(8 - LEN(ZConfName$))
- MID$(ZMsgRec$,115,1) = MID$(STR$(ZAutoLogoffReq),2,1)
- MID$(ZMsgRec$,117,2) = STR$(ZMenuIndex)
- MID$(ZMsgRec$,119,2) = LEFT$(DATE$,2)
- MID$(ZMsgRec$,121,2) = MID$(DATE$,4,2)
- MID$(ZMsgRec$,123,2) = RIGHT$(DATE$,2)
- MID$(ZMsgRec$,125,2) = LEFT$(TIME$,2)
- MID$(ZMsgRec$,127,2) = MID$(TIME$,4,2)
- ' *** Save additional parameters for door restoral
- CALL OpenOutW (ZNodeWorkDrvPath$+"DRST"+ZNodeFileID$+".DEF")
- CALL PrintWorkA (STR$(ZLimitMinsPerSession))
- CLOSE 2
-
- (line 44000)
-
- SUB ReadProf STATIC
- FIELD 1, 128 AS ZMsgRec$
- GET 1,ZNodeRecIndex
- ZReliableMode = VAL(MID$(ZMsgRec$,91,2))
- MID$(ZMsgRec$,40,2) = "00"
- ZEightBit = VAL(MID$(ZMsgRec$,42,2))
- ZBPS = VAL(MID$(ZMsgRec$,44,2))
- CALL CommInfo
- ZBaudTest! = VAL(MID$(ZBaudRates$,(-5 * ZBPS),5))
- ZUpperCase = VAL(MID$(ZMsgRec$,46,2))
- ZNumDnldBytes! = CVS(MID$(ZMsgRec$,48,4)) ' KG022101
- ZBatchTransfer = (MID$(ZMsgRec$,52,1) = "1")
- ZWasGR = VAL(MID$(ZMsgRec$,53,2))
- HourLoggedOn$ = RIGHT$("0"+MID$(STR$(ASC(MID$(ZMsgRec$,65,1))),2),2)
- MinLoggedOn$ = RIGHT$("0"+MID$(STR$(ASC(MID$(ZMsgRec$,66,1))),2),2)
- SecLoggedOn$ = RIGHT$("0"+MID$(STR$(ASC(MID$(ZMsgRec$,67,1))),2),2)
- ZTimeLoggedOn$ = HourLoggedOn$ + _
- ":" + _
- MinLoggedOn$ + _
- ":" + _
- SecLoggedOn$
- ZTransferFunction = VAL(MID$(ZMsgRec$,74,1))
- ZWasFT$ = MID$(ZMsgRec$,75,1)
- ZTimeCredits! = 60*CVI(MID$(ZMsgRec$,113,2))
- ZDooredTo$ = MID$(ZMsgRec$,79,8)
- CALL Trim (ZDooredTo$)
- IF ZExitToDoors AND ZDooredTo$ <> "" THEN _
- CALL OpenWork (2,ZDoorsDef$) : _
- IF ZErrCode = 0 THEN _
- CALL ReadParms (ZOutTxt$(),8,1) : _
- WHILE ZErrCode = 0 AND ZOutTxt$(1) <> ZDooredTo$ : _
- CALL ReadParms (ZOutTxt$(),8,1) : _
- WEND : _
- IF ZOutTxt$(1) = ZDooredTo$ THEN _
- ZDoorSkipsPswd = (ZOutTxt$(6) <> "Y") : _
- CALL BufFile (ZOutTxt$(7),WasX)
- ZErrCode = 0
- ZMenuIndex = VAL(MID$(ZMsgRec$,117,2))
- ZCurPUI$ = MID$(ZMsgRec$,93,8)
- CALL Remove (ZCurPUI$," ")
- IF ZCurPUI$ <> "" THEN _
- CALL BreakFileName (ZMainPUI$,ZOutTxt$,ZUserIn$,ZWasZ$,ZTrue) : _
- ZCurPUI$ = ZOutTxt$ + ZCurPUI$ + ZWasZ$
- ZCustomPUI = (ZCurPUI$ <> "")
- ZLocalUser = (MID$(ZMsgRec$,101,2) = ZCarriageReturn$ + ZCarriageReturn$) ' KG030601
- ZLocalUserMode = VAL(MID$(ZMsgRec$,103,2))
- ZHomeConf$ = MID$(ZMsgRec$,105,8)
- ZAutoLogoffReq = (VAL(MID$(ZMsgRec$,115,1)) <> 0)
- CALL Trim (ZHomeConf$)
- IF ZRequiredRings > 0 AND _
- INSTR(ZModemInitCmd$,"S0=255") THEN _
- COLOR 7,0,0 _
- ELSE COLOR ZFG,ZBG,ZBorder
- IF ZLocalUserMode THEN _
- GOTO 44003
- CALL SetBaud
-
- ------------------------[ KG030301 ]-------------------------
-
- Problem: prompt for file displayed on security violation confusing
- people because it wants only the file prefix and refuses to accept
- extension or drive/path without making that clear.
-
- Solution: Change CONFIG.BAS as follows:
-
- 17280 CALL ASKRO("Name of file shown for security breaches (prefix ONLY)",24,HJ$) ' KG030301
- IF LEN(HJ$) > 8 OR INSTR(HJ$,".") > 0 THEN _
- GOTO 17280
- IF LEN(HJ$) < 1 THEN _
- SECVIO.HLP$ = NONE.PICKED$ : _
- RETURN
- CALL ALLCAPS (HJ$)
- SECVIO.HLP$ = HELP.PATH$ + HJ$ + "." + HELP.EXTENSION$
- RETURN
-
- ------------------------[ KG030203 ]-------------------------
-
- Problem: If caller happened to have many msgs, display of them in
- msg scan may fail to pause when screen is full. Also, # of messages
- listed on a line was inconsistent between new and old messages.
-
- Solution: Change RBBS-PC.BAS as follows:
-
- 1900 GOSUB 5344
- IF ZPrivateDoor THEN _
- ActionFlag = ZTrue
- ZPrevBase$ = ZActiveMessageFile$
- ShowActive = ZFalse
- IF NOT ActionFlag THEN _
- CALL QuickTPut ("Checking messages in " + ConfFileName$,0) : _
- ShowActive = ZTrue _
- ELSE CALL QuickTPut ("Loading messages",0)
- ZUserIn$ = ""
- MsgCt = 0 ' KG030203
- MsgsFromUser = ZFalse
- ActiveMessages = 0
- MailReported = ActionFlag
- FirstOld = ZTrue
- GOSUB 23000
- MsgRec = FirstMsgRecord
- MaxMsgs = VAL(MID$(ZMsgRec$,89,7))
- IF MaxMsgs > WasMM THEN _
- MaxMsgs = WasMM
- REDIM ZMsgPtr(MaxMsgs,2)
- NumDots = 0
-
- 1925 ZWasA = VAL(MID$(ZMsgRec$,2,4))
- IF LogonMailNew THEN _
- IF ZWasA <= ZLastMsgRead THEN _
- GOTO 1935
- IF NOT ShowActive THEN _
- GOTO 1930
- MailReported = ZTrue
- FirstNew = (ZWasA > ZLastMsgRead)
- IF FirstNew THEN _
- MsgCt = 0 : _ ' KG030203
- CALL SkipLine (1) : _
- CALL QuickTPut1 ("NEW Mail for YOU (* = Private)") _
- ELSE IF FirstOld THEN _
- CALL SkipLine (1) : _
- CALL QuickTPut1 ("OLD Mail for YOU (* = Private)") : _
- FirstOld = ZFalse
- ShowActive = NOT FirstNew
-
- 1930 CALL QuickTPut (LEFT$(ZMsgRec$,5),0)
- MsgCt = MsgCt + 1 ' KG030203
- IF MsgCt MOD 15 = 0 THEN _ ' KG030203
- CALL SkipLine (1) : _ ' KG030203
- CALL AskMore ("",ZTrue,ZTrue,WasX,ZTrue) ' KG030203
- 1960 WasK = 1
- FOR MsgCt = 1 TO MsgsFromUser ' KG030203
- ZOutTxt$ = MID$(ZUserIn$,WasK,5)
- WasK = WasK + 5
- GOSUB 12978
- IF MsgCt MOD 15 = 0 THEN _ ' KG030203
- CALL SkipLine (1) : _ ' KG030203
- CALL AskMore ("",ZTrue,ZTrue,WasX,ZTrue) ' KG030203
- NEXT
- ZUserIn$ = ""
- CALL SkipLine (1)
- CALL QuickTPut1 ("Please K)ill old/unneeded msgs")
-
- ------------------------[ KG030202 ]-------------------------
-
- Problem: In personal download, when have color graphics on,
- color of description spills over into prompt to download what.
-
- Solution: Change RBBSSUB4.BAS as follows:
-
- 59303 CALL QuickTPut (ZEmphasizeOff$,0) ' KG030202
- ZOutTxt$ = "Download what: L)ist, * = new, or file(s)" + _
- ZPressEnterExpert$
- ZMacroMin = 99
- ZStackC = ZTrue
- CALL PopCmdStack
- IF ZSubParm = -1 OR ZWasQ = 0 THEN _
- ZLastIndex = 0 : _
- EXIT SUB
-
- ------------------------[ KG030201 ]-------------------------
-
- Problem: When remote called does Xoff (Control-S), display of
- a message does not pause until after display of full screen or
- end of message.
-
- Solution: Change RBBS-PC.BAS as follows:
-
- 9085 IF LEFT$(ZOutTxt$,1) = ZStartOfHeader$ OR _
- LEFT$(ZOutTxt$,LEN(ZScreenOutMsg$)) = ZScreenOutMsg$ THEN _
- GOTO 9050
- ZOutTxt$(ZLinesInMsg) = ZOutTxt$
- IF Bracketed THEN _
- Bracketed = ZFalse : _
- HiLitedLine = ZLinesInMsg
- ZLinesInMsg = ZLinesInMsg + 1
- IF ZLinesInMsg > MsgDimXtra THEN _
- ZLinesInMsg = ZLinesInMsg - 1 : _
- CALL SkipLine (1) : _
- CALL QuickTPut1 ("Message too long. Truncated to " + STR$(MsgDimXtra) + " lines!") : _
- ZOutTxt$ = "" : _
- RETURN
- IF NOT DontPrint THEN _ ' KG030201
- GOSUB 12979 : _ ' KG030201
- IF ZRet THEN _
- ZOutTxt$ = "" : _
- RETURN _ ' KG030201
- ELSE CALL AskMore ("",ZTrue,ZTrue,ZAnsIndex,ZFalse) : _ ' KG030201
- IF ZNo THEN _ ' KG030201
- DontPrint = ZTrue ' KG030201
- GOTO 9050
-
- ------------------------[ KG030101 ]-------------------------
-
- Problem: When having mail waiting in current confernce, and
- read all the new mail, and then do a V)iew conference, the
- mail waiting flag is still shown as on in the current conference.
-
- Solution: Change RBBSSUB4.BAS as follows:
-
- 59852 IF EOF(2) OR NOT ZOK THEN _
- GOTO 59854
- CALL ReadAny
- ZActiveUserFile$ = ZOutTxt$
- CALL ReadAny
- IF ZErrCode > 0 THEN _
- GOTO 59854
- ZActiveMessageFile$ = ZOutTxt$
- CALL FindFile (ZActiveUserFile$,ZOK)
- IF NOT ZOK THEN _
- GOTO 59854
- CALL OpenUser (HighestUserRecord)
- FIELD 5, 128 AS ZUserRecord$
- CALL FindFile (ZActiveMessageFile$,ZOK)
- IF NOT ZOK THEN _
- GOTO 59854
- CALL FindUser (ZOrigUserName$,"",ZStartHash,ZLenHash,_
- 0,0,HighestUserRecord,_
- Found,HoldUserFileIndex,ZWasSL)
- IF NOT Found THEN _
- GOTO 59852
- CALL OpenMsg
- FIELD 1, 128 AS ZMsgRec$
- GET 1,1
- AnyMail = ZTrue
- WasX = CVI(MID$(ZUserRecord$,57,2))
- WasX = (WasX AND 512) > 0
- CALL BreakFileName (ZActiveUserFile$,WasX$,CurPre$,CurExt$,ZFalse)
- InCur = (CurPre$ = NowInPre$ AND CurExt$ = NowInExt$)
- IF InCur THEN _
- WasX = ZMailWaiting : _ ' KG030101
- ZWasA = ZLastMsgRead _
- ELSE ZWasA = CVI(MID$(ZUserRecord$,51,2))
- .
- .
- .
-
- ------------------------[ KG022702 ]-------------------------
-
- Problem: When using LIT version with message import off
- (MIMPORT OFF), get untrapped errors when message margin of
- user set lower than that used by the message.
-
- Solution: Use new MIMPORT.LIT.
-
- ------------------------[ KG022701 ]-------------------------
-
- Problem: Command stacking not always working right in msg
- read. E.g. "j xxx r test" will look for messages with text "r".
-
- Solution: Change RBBS-PC.BAS as follows:
-
- 4330 QuickScanMsgs = ZFalse
- ReadMsgs = ZTrue
- HiLiteRec = -1
- ScanMsgs = ZFalse
- MsgStart = 6
- MsgEnd = 100
- IF ZLocalUserMode OR NOT ZLocalUser THEN _
- IF ReadMsgIn$ <> ZActiveMessageFile$ THEN _
- ReadMsgIn$ = ZActiveMessageFile$ : _
- CALL UpdtCalr ("Read Messages in " + ReadMsgIn$,1)
- GOSUB 1300
- GOTO 4350 ' KG022701
-
- 4360 ZWasLG$(11) = ZWasZ$
- NumMsgsSelected = ZLastIndex
- MsgIndex = ZAnsIndex ' KG022701
- ZLastIndex = 0
- ToRequested = ZFalse
- FromRequested = ZFalse
- IF ZPageLength < 1 THEN _
- ZNonStop = ZTrue
- 4370 MsgIndex = MsgIndex + 1 ' KG022701
- 4371 IF MsgIndex <= NumMsgsSelected THEN _ ' KG022701
- IF LEN(ZUserIn$(ZAnsIndex)) = 1 AND _
- INSTR("Cc",ZUserIn$(MsgIndex)) > 0 THEN _ ' KG022701
- GOTO 4370 _
- ELSE _
- CALL CheckInt (ZUserIn$(MsgIndex)) : _ ' KG022701
- IF ZErrCode <> 0 THEN _
- ZWasEL = 4371 : _
- GOTO 13000 _
- ELSE CurMsg = ZTestedIntValue : _
- ZAnsIndex = MsgIndex : _ ' KG022701
- GOTO 4415
-
- 4400 GOSUB 12932 ' KG022701
- IF ZWasQ = 0 THEN _
- RETURN
- 4402 IF LEN(ZUserIn$(ZAnsIndex)) = 1 THEN _ ' KG022701
- IF INSTR("Qq",ZUserIn$) THEN _
- RETURN _
- ELSE IF INSTR("Hh",LEFT$(ZUserIn$(ZAnsIndex),1)) THEN _ ' KG022701
- ZFileName$ = ZHelpPath$ + "MR" + ZHelpExtension$ : _
- GOSUB 1790 : _
- GOTO 4390
- MsgIndex = 0 ' KG022701
- NumMsgsSelected = ZWasQ
- GOTO 4370
-
- 4416 IF INSTR("Mm",ZUserIn$(ZAnsIndex)) THEN _
- AddressedToUser = ZTrue : _
- GOTO 4370
- ZWasA = INSTR("FfTt",ZUserIn$(ZAnsIndex))
- IF ZWasA > 0 THEN _
- ToRequested = (ZWasA > 2) : _
- FromRequested = (ZWasA < 3) : _
- GOTO 4370
- IF CurMsg = 0 THEN _
- IF SearchHeader$ <> "" THEN _
- GOTO 4370 _
- ELSE SearchString$ = ZUserIn$(ZAnsIndex) : _ ' KG022701
- CALL AllCaps (SearchString$) : _
- CALL Remove (SearchString$,CHR$(34) + CHR$(39)) : _
- SearchHeader$ = SearchString$ : _
- SubInHeader$ = SearchHeader$ : _
- GOTO 4370
- CALL SkipLine (1)
-
- ------------------------[ RH022501 ]-------------------------
-
- Problem: in autodownload, the name displayed to the user is wrong
- when default extension is added by rbbs.
-
- Change RBBS-PC.BAS as follows:
-
- 20247 ZWasDF = 0
- CALL BreakFileName (ZFileName$,DR$,WasX$,Extension$,ZFalse)
- IF ZAutoDownInProgress THEN _
- ZUserIn$(ZAnsIndex) = WasX$ + "." + Extension$ : _ ' RH022501
- ZOutTxt$ = "Transferring -- " + _
- ZUserIn$(ZAnsIndex) : _ ' RH022501
- GOSUB 21640 : _
- IF ZFileSysParm > 1 THEN _
- RETURN
- IF INSTR("...WRK.FW .ARC.EXE.COM.OBJ.WKS.LBR.ZIP.PAK.ZOO.LZH.","."+Extension$+".") > 2 OR _
- MID$(Extension$,2,1) = "Q" OR _
- (ZRequireNonASCII AND Extension$ = "BAS") THEN _
- ZWasDF = ZTrue
-
- ------------------------[ KG022301 ]-------------------------
-
- Problem: no way to trigger macro processing for on-line files.
- Either not found or macro. Now can have both.
-
- Solution: Add the following variable to RBBS-VAR.BAS: ZFileLocations$
-
- Change RBBSSUB4.BAS as follows:
-
- (line 58700)
-
- SUB RotorsDir (FilName$,SDirAra$(1),MaxSearch,MarkingTime,PassToMacro$) STATIC ' KG022204
- ZOK = ZFalse
- ZDotFlag = ZFalse
- IF MarkingTime THEN _
- CALL QuickTPut ("Searching for "+FilName$,0)
- IF ZMenuIndex = 6 THEN _
- GOTO 58705
- NumSearch = 1
- WasX = 0
- WHILE (NOT ZOK) AND NumSearch <= MaxSearch AND _
- SDirAra$(NumSearch) <> ""
- IF MarkingTime THEN _
- CALL MarkTime (WasX)
- WasX$ = SDirAra$(NumSearch) + _
- FilName$
- CALL FindFile (WasX$,ZOK)
- NumSearch = NumSearch + 1
- WEND
- IF ZOK OR NOT ZFastFileSearch THEN _ ' KG022301
- GOTO 58710 ' KG022301
- CALL OpenRSeq (ZFastFileList$,HighRec,WasX,18) ' KG022301
- IF ZErrCode <> 0 THEN _ ' KG022301
- GOTO 58710 ' KG022301
- CALL TrimTrail (FilName$,".")
- CALL BinSearch (FilName$,1,12,18,HighRec,RecFoundAt, RecFound$)
- ZOK = (RecFoundAt > 0)
- IF NOT ZOK THEN _ ' KG022301
- GOTO 58710 ' KG022301
- ZOK = ZFalse
- CALL CheckInt (MID$(RecFound$,13,4))
- IF ZTestedIntValue < 1 THEN _ ' KG022301
- GOTO 58710 ' KG022301
- CALL OpenRSeq (ZFastFileLocator$,HighRec,WasX,66)
- IF ZErrCode <> 0 OR ZTestedIntValue > HighRec THEN _ ' KG022301
- GOTO 58710 ' KG022301
- FIELD 2, 66 AS LocatorRec$
- GET 2, ZTestedIntValue
- WasX$ = LEFT$(LocatorRec$,63)
- CALL Trim (WasX$)
- IF LEFT$(WasX$,2) = "M!" THEN _
- ZOK = ZFalse : _ ' KG022301
- ZGSRAra$(1) = PassToMacro$ : _ ' KG022204
- WasX$ = RIGHT$(WasX$,LEN(WasX$)-2) : _ ' KG022204
- CALL Trim (WasX$) : _ ' KG022204
- ZFileLocation$ = "" : _ ' KG022301
- CALL MacroExe (WasX$) : _ ' KG022204
- IF ZFileLocation$ = "" THEN _ ' KG022301
- ZOK = ZFalse : _ ' KG022204
- GOTO 58711 _ ' KG022301
- ELSE WasX$ = ZFileLocation$ ' KG022301
- WasX$ = WasX$ + FilName$ ' KG022301
- CALL FindFile (WasX$,ZOK) ' KG022301
- GOTO 58710 ' KG022301
-
- Change RBBSSUB5.BAS as follows:
-
- 63336 GOSUB 63395
- IF NOT ZMacroActive THEN _
- ZMacroEcho = ZTrue : _
- EXIT SUB
- IF LEN(ZOutTxt$) < 3 THEN _
- GOTO 63398
- WasX$ = RIGHT$(ZOutTxt$,LEN(ZOutTxt$)-3)
- IF CompareVar > 0 THEN _
- IF NOT CaseExecute THEN _
- IF LEFT$(ZOutTxt$,3) = ZSmartTextCode$+"==" THEN _
- GOTO 63370 _
- ELSE IF LEFT$(ZOutTxt$,7) = ZSmartTextCode$ + "END ON" THEN _
- CompareVar = 0 : _
- GOTO 63336 _
- ELSE GOTO 63336
- IF LEFT$(ZOutTxt$,1) <> ZSmartTextCode$ THEN _
- GOTO 63398
- CALL CheckInt (MID$(ZOutTxt$,2))
- IF ZErrCode > 0 THEN _
- GOTO 63398
- IF ZTestedIntValue > 0 AND ZTestedIntValue <= ZMaxWorkVar THEN _
- ZOutTxt$ = WasX$ : _ ' Macro command ask
- ZForceKeyboard = ZTrue : _
- ZMacroSave = ZTestedIntValue : _
- ZLinesPrinted = 1 : _
- ZNonStop = (ZPageLength < 1) : _
- EXIT SUB
- ON (1+INSTR("*0*1*B*FWT>>STON==M!M@EYEN/*TK<<:=LVNVCVLO",MID$(ZOutTxt$,2,2)))\2 GOTO _ ' KG022301
- 63345, _ ' Display with no Carriage Return
- 63347, _ ' Display with Carriage Return
- 63340, _ ' Display Block
- 63348, _ ' Display File
- 63343, _ ' Wait # of seconds
- 63350, _ ' Append to file
- 63355, _ ' Stack
- 63360, _ ' Case
- 63370, _ ' Case Comparison
- 63375, _ ' Macro execute
- 63380, _ ' Macro Abort
- 63383, _ ' Macro Echo on
- 63385, _ ' Macro Echo off
- 63336, _ ' Macro Comment
- 63387, _ ' Turbo Key allowed
- 63390, _ ' Form read
- 63362, _ ' Assign value to work var
- 63363, _ ' LV list verify
- 63364, _ ' NV number verify
- 63364, _ ' CV character verify ' KG022301
- 63367 ' LO assign file location ' KG022301
- GOTO 63398
-
- 63367 CALL TRIM (WasX$) ' KG022301
- ZFileLocation$ = WasX$ ' KG022301
- GOTO 63336 ' KG022301
-
- ------------------------[ KG022205 ]-------------------------
-
- Problem: In arc view, if file invokes macro processing, the file
- name was no longer correct when came back and reported file not
- found.
-
- 20143 ZWasZ$ = ZUserIn$(ZAnsIndex)
- WasZ$ = ZWasZ$ ' KG022205
- CALL AllCaps (ZWasZ$)
- CALL BreakFileName (ZWasZ$,Drive$,Prefix$,Ext$,ZFalse)
- IF Ext$ = "" THEN _
- Ext$ = ZDefaultExtension$ : _
- ZWasZ$ = ZWasZ$ + "." + ZDefaultExtension$
- ZFileNameHold$ = ZWasZ$
- ZFileName$ = ZWasZ$
- CALL BadFile (Prefix$,BadFileNameIndex)
- ON BadFileNameIndex GOTO 20144,20146,20147
-
- 20146 ZWasZ$ = WasZ$ + _ ' KG022205
- " not found!"
- CALL UpdtCalr (ZWasZ$,2)
- ZOutTxt$ = ZWasZ$ + _
- " Type correct filename" + ZPressEnterExpert$
- ZSubParm = 1
- CALL TGet
- IF ZSubParm = -1 OR ZWasQ = 0 THEN _
- RETURN
- ZUserIn$(ZAnsIndex) = ZUserIn$(1)
- GOTO 20143
-
- ------------------------[ KG022204 ]-------------------------
-
- Problem: SysOps off-line files might want to process differently
- when get an upload, view, or download rather than execute macro
- only on download.
-
- Solution: pass D, V, or U to macro in first work variable so
- can alter processing.
-
- Change RBBSSUB2.BAS as follows:
-
- 20145 CALL RotorsDir (ZFileName$,ZSubDir$(),ZSubDirCount + (NOT ZSysop),ZTrue,"V") ' KG022204
- IF ZOK THEN _
- GOTO 20148
-
- Change RBBSSUB4.BAS as follows:
-
- (line 58700)
-
- SUB RotorsDir (FilName$,SDirAra$(1),MaxSearch,MarkingTime,PassToMacro$) STATIC ' KG022204
- ZOK = ZFalse
- ZDotFlag = ZFalse
- IF MarkingTime THEN _
- CALL QuickTPut ("Searching for "+FilName$,0)
- IF ZMenuIndex = 6 THEN _
- GOTO 58705
- NumSearch = 1
- WasX = 0
- WHILE (NOT ZOK) AND NumSearch <= MaxSearch AND _
- SDirAra$(NumSearch) <> ""
- IF MarkingTime THEN _
- CALL MarkTime (WasX)
- WasX$ = SDirAra$(NumSearch) + _
- FilName$
- CALL FindFile (WasX$,ZOK)
- NumSearch = NumSearch + 1
- WEND
- IF ZOK OR NOT ZFastFileSearch THEN _ ' KG022301
- GOTO 58710 ' KG022301
- CALL OpenRSeq (ZFastFileList$,HighRec,WasX,18) ' KG022301
- IF ZErrCode <> 0 THEN _ ' KG022301
- GOTO 58710 ' KG022301
- CALL TrimTrail (FilName$,".")
- CALL BinSearch (FilName$,1,12,18,HighRec,RecFoundAt, RecFound$)
- ZOK = (RecFoundAt > 0)
- IF NOT ZOK THEN _ ' KG022301
- GOTO 58710 ' KG022301
- ZOK = ZFalse
- CALL CheckInt (MID$(RecFound$,13,4))
- IF ZTestedIntValue < 1 THEN _ ' KG022301
- GOTO 58710 ' KG022301
- CALL OpenRSeq (ZFastFileLocator$,HighRec,WasX,66)
- IF ZErrCode <> 0 OR ZTestedIntValue > HighRec THEN _ ' KG022301
- GOTO 58710 ' KG022301
- FIELD 2, 66 AS LocatorRec$
- GET 2, ZTestedIntValue
- WasX$ = LEFT$(LocatorRec$,63)
- CALL Trim (WasX$)
- IF LEFT$(WasX$,2) = "M!" THEN _
- ZOK = ZFalse : _ ' KG022301
- ZGSRAra$(1) = PassToMacro$ : _ ' KG022204
- WasX$ = RIGHT$(WasX$,LEN(WasX$)-2) : _ ' KG022204
- CALL Trim (WasX$) : _ ' KG022204
- ZFileLocation$ = "" : _ ' KG022301
- CALL MacroExe (WasX$) : _ ' KG022204
- IF ZFileLocation$ = "" THEN _ ' KG022301
- ZOK = ZFalse : _ ' KG022204
- GOTO 58711 _ ' KG022301
- ELSE WasX$ = ZFileLocation$ ' KG022301
- WasX$ = WasX$ + FilName$ ' KG022301
- CALL FindFile (WasX$,ZOK) ' KG022301
- GOTO 58710 ' KG022301
-
- 59336 ZUserIn$(WasI) = LEFT$(PartToPrint$,INSTR(PartToPrint$," ") - 1)
- CALL FindFile (ZPersonalDrvPath$ + ZUserIn$(WasI),ZOK)
- IF ZOK THEN _
- ZUserIn$(WasI) = ZPersonalDrvPath$ + ZUserIn$(WasI) _
- ELSE CALL RotorsDir (ZUserIn$(WasI),ZSubDir$(),ZSubDirCount + _
- ((ZUserSecLevel < ZMinSecToView) OR _
- NOT ZCanDnldFromUp),ZTrue,"D") : _ ' KG022204
- GOSUB 59338
- RETURN
-
- Change RBBSSUB5.BAS as follows:
-
- 20222 CALL RotorsDir (ZFileName$,ZSubDir$(),ZSubDirCount + _
- ((ZUserSecLevel < ZMinSecToView) OR _
- NOT ZCanDnldFromUp),MarkingTime,"D") ' KG022204
-
- 20440 CALL RotorsDir (ZFileName$,ZSubDir$(),ZSubDirCount,ZTrue,"U") ' KG022204
-
- ------------------------[ KG022203 ]-------------------------
-
- Problem: When locally viewing the distributed color graphics
- door menu (MENU05C), the colors will bleed over to the right
- side of the boundary of the menu. The display looks fine
- remotely.
-
- Solution: Replace MENU05C with the new one distributed in
- the latest merge file.
-
- ------------------------[ KG022202 ]-------------------------
-
- Problem: When installing RBBS-PC for the first time and use
- the distributed def file RBBS-PC.DEF, the up and downloads do
- not work properly unless RBBS-PC is installed in a subdirectory
- called RBBS.
-
- Solution: In CONFIG, change the subdirectory for uploads from
- "C:\RBBS\FILES" to "C:FILES", and change the two subdirectories
- available for downloading from "C:\RBBS\FILES" to "C:FILES" and
- from "C:\RBBS\BULLETINS" to "C:BULLETINS".
- These are changed in parameter 208.
-
- ------------------------[ KG022201 ]-------------------------
-
- Problem: When doing a directory listing and V)iew archieve,
- J)ump is no longer an option after listing resumes.
-
- Solution: Change RBBSSUB3.BAS as follows:
-
- 58180 ZTurboKey = -ZTurboKeyUser
- ZStackC = ZTrue
- CALL AskMore (ExtraPrompt$, ZTrue, ZFalse,AbortIndex,ZFalse)
- IF ZSubParm = -1 THEN _
- GOTO 58183
- IF ZNo THEN _
- GOTO 58183
- CALL AllCaps (ZUserIn$(1))
- IF ZUserIn$(1) = "V" THEN _
- ZLastIndex = ZWasQ : _
- ZAnsIndex = 1 : _
- CALL GetArc : _
- ZJumpSupported = ZTrue : _ ' KG022201
- ZWasA = UpldIndex : _
- GOSUB 58185 : _
- UpldIndex = ZWasA : _
- GOTO 58180
- IF ZUserIn$(1) = "D" THEN _
- ZOutTxt$ = "Download what file(s)" : _
- ZStackC = ZTrue : _
- CALL PopCmdStack : _
- IF ZWasQ = 0 THEN _
- GOTO 58180
- IF ZJumpSearching THEN _
- PrevSearch$ = SearchFor$ : _
- SearchFor$ = ZJumpTo$ _
- ELSE SearchFor$ = SearchString$ : _
- IF LEN(ZUserIn$(1)) > 1 THEN _
- IF NOT ZYes AND CanDnld THEN _
- CALL SkipLine (1) : _
- DnldFlag = UpldIndex : _
- ZLastIndex = ZWasQ : _
- ZAnsIndex = 1 : _
- EXIT SUB
- IF ZNonStop THEN IF UpldIndex > 999 THEN _
- IF (SearchDate$ = "" OR NOT ZExpertUser) THEN _
- ZOutTxt$ = STR$(UpldIndex) + _
- " lines left to search. Really go non-stop? (Y/[N])" : _
- ZNoAdvance = ZTrue : _
- ZTurboKey = -ZTurboKeyUser : _
- ZSubParm = 1 : _
- CALL TGet : _
- CALL WipeLine (79) : _
- ZNonStop = ZYes
- FMSCheckPoint = 0
- GOTO 58168
-
- ------------------------[ KG022103 ]-------------------------
-
- Problem: LIT merges not assigned security right for new
- users.
-
- Solution: Replace the file INDEF.LIT by the new one in the lastest
- fix file merges.
-
- ------------------------[ KG022102 ]-------------------------
-
- Problem: LIT merge generates a compile error when SURVEY
- metavariable is set to OFF.
-
- Solution: Replace the file SURVEY.LIT by the new one in
- the latest fix file merges.
-
- ------------------------[ KG022101 ]-------------------------
-
- Problem: When door to external protocols, not correctly tracking
- bytes downloaded. Caused by misspelled variable names.
-
- Change RBBSSUB3.BAS as follows:
-
- 43070 ZActiveMessageFile$ = ZOrigMsgFile$
- ZSubParm = 3
- CALL FileLock
- CALL OpenMsg
- FIELD 1, 128 AS ZMsgRec$
- GET 1,ZNodeRecIndex
- IF ZGlobalSysop THEN _
- MID$(ZMsgRec$,1,30) = "SYSOP" + SPACE$(25)
- MID$(ZMsgRec$,40,2) = STR$(ZExitToDoors)
- MID$(ZMsgRec$,42,2) = STR$(ZEightBit)
- MID$(ZMsgRec$,44,2) = STR$(ZBPS)
- MID$(ZMsgRec$,46,2) = STR$(ZUpperCase)
- MID$(ZMsgRec$,48,5) = MKS$(ZNumDnldBytes!) + MID$(STR$(-ZBatchTransfer),2) ' KG022101
- MID$(ZMsgRec$,53,2) = STR$(ZWasGR)
- MID$(ZMsgRec$,55,2) = STR$(ZSysop)
- MID$(ZMsgRec$,65,3) = CHR$(VAL(LEFT$(ZTimeLoggedOn$,2))) + _
- CHR$(VAL(MID$(ZTimeLoggedOn$,4,2))) + _
- CHR$(VAL(MID$(ZTimeLoggedOn$,7,2)))
- MID$(ZMsgRec$,72,2) = STR$(ZPrivateDoor)
- MID$(ZMsgRec$,74,1) = MID$(STR$(ZTransferFunction),2,1)
- MID$(ZMsgRec$,75,1) = ZWasFT$
- MID$(ZMsgRec$,113,2) = MKI$(CINT(ZTimeCredits!)/60)
- MID$(ZMsgRec$,79,8) = LEFT$(ZDooredTo$+" ",8)
- MID$(ZMsgRec$,91,2) = STR$(ZReliableMode)
- CALL BreakFileName (ZCurPUI$,ZOutTxt$,ZUserIn$,ZWasZ$,ZFalse)
- MID$(ZMsgRec$,93,8) = ZUserIn$ + SPACE$(8 - LEN(ZUserIn$))
- MID$(ZMsgRec$,101,2) = STR$(ZLocalUser)
- MID$(ZMsgRec$,103,2) = STR$(ZLocalUserMode)
- ZConfName$ = LEFT$(ZConfName$,INSTR(ZConfName$ + " "," ") - 1)
- MID$(ZMsgRec$,105,8) = ZConfName$ + SPACE$(8 - LEN(ZConfName$))
- MID$(ZMsgRec$,115,1) = MID$(STR$(ZAutoLogoffReq),2,1)
- MID$(ZMsgRec$,117,2) = STR$(ZMenuIndex)
- MID$(ZMsgRec$,119,2) = LEFT$(DATE$,2)
- MID$(ZMsgRec$,121,2) = MID$(DATE$,4,2)
- MID$(ZMsgRec$,123,2) = RIGHT$(DATE$,2)
- MID$(ZMsgRec$,125,2) = LEFT$(TIME$,2)
- MID$(ZMsgRec$,127,2) = MID$(TIME$,4,2)
- ' *** Save additional parameters for door restoral
- CALL OpenOutW (ZNodeWorkDrvPath$+"DRST"+ZNodeFileID$+".DEF")
- CALL PrintWorkA (STR$(ZLimitMinsPerSession))
- CLOSE 2
-
- (line 44000)
-
- SUB ReadProf STATIC
- FIELD 1, 128 AS ZMsgRec$
- GET 1,ZNodeRecIndex
- ZReliableMode = VAL(MID$(ZMsgRec$,91,2))
- MID$(ZMsgRec$,40,2) = "00"
- ZEightBit = VAL(MID$(ZMsgRec$,42,2))
- ZBPS = VAL(MID$(ZMsgRec$,44,2))
- CALL CommInfo
- ZBaudTest! = VAL(MID$(ZBaudRates$,(-5 * ZBPS),5))
- ZUpperCase = VAL(MID$(ZMsgRec$,46,2))
- ZNumDnldBytes! = CVS(MID$(ZMsgRec$,48,4)) ' KG022101
- ZBatchTransfer = (MID$(ZMsgRec$,52,1) = "1")
- ZWasGR = VAL(MID$(ZMsgRec$,53,2))
- HourLoggedOn$ = RIGHT$("0"+MID$(STR$(ASC(MID$(ZMsgRec$,65,1))),2),2)
- MinLoggedOn$ = RIGHT$("0"+MID$(STR$(ASC(MID$(ZMsgRec$,66,1))),2),2)
- SecLoggedOn$ = RIGHT$("0"+MID$(STR$(ASC(MID$(ZMsgRec$,67,1))),2),2)
- ZTimeLoggedOn$ = HourLoggedOn$ + _
- ":" + _
- MinLoggedOn$ + _
- ":" + _
- SecLoggedOn$
- ZTransferFunction = VAL(MID$(ZMsgRec$,74,1))
- ZWasFT$ = MID$(ZMsgRec$,75,1)
- ZTimeCredits! = 60*CVI(MID$(ZMsgRec$,113,2))
- ZDooredTo$ = MID$(ZMsgRec$,79,8)
- CALL Trim (ZDooredTo$)
- IF ZExitToDoors AND ZDooredTo$ <> "" THEN _
- CALL OpenWork (2,ZDoorsDef$) : _
- IF ZErrCode = 0 THEN _
- CALL ReadParms (ZOutTxt$(),8,1) : _
- WHILE ZErrCode = 0 AND ZOutTxt$(1) <> ZDooredTo$ : _
- CALL ReadParms (ZOutTxt$(),8,1) : _
- WEND : _
- IF ZOutTxt$(1) = ZDooredTo$ THEN _
- ZDoorSkipsPswd = (ZOutTxt$(6) <> "Y") : _
- CALL BufFile (ZOutTxt$(7),WasX)
- ZErrCode = 0
- ZMenuIndex = VAL(MID$(ZMsgRec$,117,2))
- ZCurPUI$ = MID$(ZMsgRec$,93,8)
- CALL Remove (ZCurPUI$," ")
- IF ZCurPUI$ <> "" THEN _
- CALL BreakFileName (ZMainPUI$,ZOutTxt$,ZUserIn$,ZWasZ$,ZTrue) : _
- ZCurPUI$ = ZOutTxt$ + ZCurPUI$ + ZWasZ$
- ZCustomPUI = (ZCurPUI$ <> "")
- ZLocalUser = VAL(MID$(ZMsgRec$,101,2))
- ZLocalUserMode = VAL(MID$(ZMsgRec$,103,2))
- ZHomeConf$ = MID$(ZMsgRec$,105,8)
- ZAutoLogoffReq = (VAL(MID$(ZMsgRec$,115,1)) <> 0)
- CALL Trim (ZHomeConf$)
- IF ZRequiredRings > 0 AND _
- INSTR(ZModemInitCmd$,"S0=255") THEN _
- COLOR 7,0,0 _
- ELSE COLOR ZFG,ZBG,ZBorder
- IF ZLocalUserMode THEN _
- GOTO 44003
- CALL SetBaud
-
- ------------------------[ KG022001 ]-------------------------
-
- Problem: When using autodownload and do not specify an extension,
- and default is appended, file name transmitted has no extension.
-
- Solution: Change RBBSSUB5.BAS as follows:
-
- 20247 ZWasDF = 0
- CALL BreakFileName (ZFileName$,DR$,WasX$,Extension$,ZFalse)
- IF ZAutoDownInProgress THEN _
- ZOutTxt$ = "Transferring -- " + _
- WasX$ + "." + Extension$ : _ ' KG022001
- GOSUB 21640 : _
- IF ZFileSysParm > 1 THEN _
- RETURN
- IF INSTR("...WRK.FW .ARC.EXE.COM.OBJ.WKS.LBR.ZIP.PAK.ZOO.LZH.","."+Extension$+".") > 2 OR _
- MID$(Extension$,2,1) = "Q" OR _
- (ZRequireNonASCII AND Extension$ = "BAS") THEN _
- ZWasDF = ZTrue
-
-
- ------------------------[ KG021803 ]-------------------------
-
- Problem: In macro initialization of a variable, value includes the
- variable number if a space separates the command and number. Should
- not matter whether say "{:=1" or "{:= 1", for example.
-
- Solution: Change RBBSSUB5.BAS as follows:
-
- 63362 CALL Trim (WasX$) ' KG021803
- CALL CheckInt (WasX$)
- WasX = INSTR(WasX$," ")
- IF WasX > 0 AND ZTestedIntValue > 0 AND ZTestedIntValue <= ZMaxWorkVar THEN _
- ZGSRAra$(ZTestedIntValue) = RIGHT$(WasX$,LEN(WasX$)-WasX) ' KG021803
- GOTO 63336
-
- ------------------------[ KG021802 ]-------------------------
-
- Problem: When implement macros in the Fast File System, the macros
- are executed on more than download requests - including uploads and
- file v)iew archive.
-
- Change RBBSSUB2.BAS as follows:
-
- 20145 CALL RotorsDir (ZFileName$,ZSubDir$(),ZSubDirCount + (NOT ZSysop),ZTrue,ZFalse) ' KG021802
- IF ZOK THEN _
- GOTO 20148
-
- Change RBBSSUB4.BAS as follows:
-
- (line 58700)
-
- SUB RotorsDir (FilName$,SDirAra$(1),MaxSearch,MarkingTime,DoMacro) STATIC ' KG021802
- ZOK = ZFalse
- ZDotFlag = ZFalse
- IF MarkingTime THEN _
- CALL QuickTPut ("Searching for "+FilName$,0)
- IF ZMenuIndex = 6 THEN _
- GOTO 58705
- NumSearch = 1
- WasX = 0
- WHILE (NOT ZOK) AND NumSearch <= MaxSearch AND _
- SDirAra$(NumSearch) <> ""
- IF MarkingTime THEN _
- CALL MarkTime (WasX)
- WasX$ = SDirAra$(NumSearch) + _
- FilName$
- CALL FindFile (WasX$,ZOK)
- NumSearch = NumSearch + 1
- WEND
- IF ZFastFileSearch AND NOT ZOK THEN _
- CALL OpenRSeq (ZFastFileList$,HighRec,WasX,18) : _
- IF ZErrCode = 0 THEN _
- CALL TrimTrail (FilName$,".") : _
- CALL BinSearch (FilName$,1,12,18,HighRec,RecFoundAt, RecFound$) : _
- ZOK = (RecFoundAt > 0) : _
- IF ZOK THEN _
- ZOK = ZFalse : _
- CALL CheckInt (MID$(RecFound$,13,4)) : _
- IF ZTestedIntValue > 0 THEN _
- CALL OpenRSeq (ZFastFileLocator$,HighRec,WasX,66) : _
- IF ZErrCode = 0 AND ZTestedIntValue <= HighRec THEN _
- FIELD 2, 66 AS LocatorRec$ : _
- GET 2, ZTestedIntValue : _
- WasX$ = LEFT$(LocatorRec$,63) : _
- CALL Trim (WasX$) : _
- IF LEFT$(WasX$,2) = "M!" THEN _
- ZOK = ZFalse : _ ' KG021802
- ZDotFlag = ZTrue : _ ' KG021802
- IF DoMacro THEN _ ' KG021802
- WasX$ = RIGHT$(WasX$,LEN(WasX$)-2) : _
- CALL Trim (WasX$) : _
- CALL MacroExe (WasX$) : _
- ZOK = ZFalse : _ ' KG021802
- GOTO 58711 _ ' KG021802
- ELSE GOTO 58711 _ ' KG021802
- ELSE WasX$ = WasX$ + FilName$ : _
- CALL FindFile (WasX$,ZOK)
- GOTO 58710
-
- 58711 CALL SkipLine (-MarkingTime) ' KG021802
- END SUB
-
- 59336 ZUserIn$(WasI) = LEFT$(PartToPrint$,INSTR(PartToPrint$," ") - 1)
- CALL FindFile (ZPersonalDrvPath$ + ZUserIn$(WasI),ZOK)
- IF ZOK THEN _
- ZUserIn$(WasI) = ZPersonalDrvPath$ + ZUserIn$(WasI) _
- ELSE CALL RotorsDir (ZUserIn$(WasI),ZSubDir$(),ZSubDirCount + _
- ((ZUserSecLevel < ZMinSecToView) OR _
- NOT ZCanDnldFromUp),ZTrue,ZFalse) : _ ' KG021802
- GOSUB 59338
- RETURN
-
- Change RBBSSUB5.BAS as follows:
-
- 20222 CALL RotorsDir (ZFileName$,ZSubDir$(),ZSubDirCount + _
- ((ZUserSecLevel < ZMinSecToView) OR _
- NOT ZCanDnldFromUp),MarkingTime,ZTrue) ' KG021802
-
- 20440 CALL RotorsDir (ZFileName$,ZSubDir$(),ZSubDirCount,ZTrue,ZFalse) ' KG021802
- 20450 IF Extension$ <> Check$ THEN _
- CALL RotorsDir (WasX$ + "." + Check$,ZSubDir$(),ZSubDirCount,ZTrue,ZFalse) : _ ' KG021802
- IF ZOK THEN _
- GOTO 20452
- GOTO 20447
-
- ------------------------[ KG021801 ]-------------------------
-
- Problem: internal code documentation for SmartText omits notes
- on what command invokes processing.
-
- Change RBBSSUB4.BAS as follows:
-
- 58266 SmartHold$ = DATE$ ' DT Date ' KG021801
- RETURN
- 58267 CALL AMorPM
- SmartHold$ = ZTime$ ' TM Time ' KG021801
- RETURN
-
- ------------------------[ KG021502 ]-------------------------
-
- Problem: When restrict a macro to the main prompt, and have a macro
- with same name as a conference (to join it), "j <conf>" works but
- "fn;ln;pswd;!<conf>" does not. The macro gets substituted for
- "<conf>".
-
- Solution: Change RBBS-PC.BAS as follows:
-
- 1205 IF ZSubParm < 0 THEN _
- GOTO 202
- ZSubParm = 1
- ZStopInterrupts = ZFalse
- ZNonStop = (ZPageLength < 1)
- ZWasQ = 0
- IF ZHomeConf$ <> "" AND ZHomeConf$ <> "MAIN" THEN _
- TurboLogon = (NOT ConfMailJoin) : _
- ConfMailJoin = ZFalse : _
- ZFF = 8 : _
- ZUserIn$(2) = ZHomeConf$ : _
- ZHomeConf$ = "" : _
- ZWasQ = 1 : _
- ZAnsIndex = 1 : _
- ZLastIndex = 2 : _
- ZStoreParseAt = 1 : _
- ZLastCommand$ = "MJ" : _ ' KG021502
- GOTO 1240
- CALL SkipLine (1)
-
- ------------------------[ KG021502 ]-------------------------
-
- Problem: the prompt after a macro ends is repeated twice.
-
- Solution: Change RBBSSUB2.BAS as follows:
-
- 1628 CALL VerifyAns
- IF NOT ZOK THEN _
- CALL QuickTPut1 ("Invalid answer <" + ZUserIn$(1) + ">") : _
- GOTO 1500
- HoldA$ = ""
- ZForceKeyboard = ZFalse
- IF ZMacroSave > 0 THEN _
- ZGSRAra$(ZMacroSave) = ZUserIn$ : _
- ZMacroSave = 0 : _
- GOTO 1632
- IF (ZDistantTGet > 0) OR (ZMacroTemplate$ <> "") THEN _
- CALL WipeLine (38) : _
- IF NOT ZNo THEN _
- GOTO 1632 _
- ELSE ZWasQ = 0 : _
- ZMacroTemplate$ = "" : _
- ZDistantTGet = 0 : _
- ZNo = ZFalse : _
- GOTO 1633
- IF ZMacroActive THEN _
- ZLastIndex = ZWasQ : _
- FirstIndex = 1: _
- ZMacroActive = NOT EOF(6) : _ ' KG021501
- EXIT SUB
- IF ZAnsIndex > 255 OR ((NOT InStack) AND INSTR(ZUserIn$,".") > 0) THEN _
- EXIT SUB
- IF MacroIndex THEN _
- MacroIndex = 1 _
- ELSE MacroIndex = ZAnsIndex
- CALL NoPath (ZUserIn$(MacroIndex),Found)
- IF Found THEN _
- EXIT SUB
- CALL CheckMacro (ZUserIn$(MacroIndex),Found)
- IF Found THEN _
- ZStoreParseAt = ZAnsIndex : _
- GOTO 1525
- EXIT SUB
-
- ------------------------[ RH021501 ]-------------------------
-
- Problem: autodownload just does not work.
-
- Solution: Change RBBSSUB3.BAS as follows:
-
- 20296 CALL FlushCom(ZWasY$) ' CLEAR THE COMM BUFFER OF GARBAGE
- IF ZSubParm = -1 THEN _
- EXIT SUB
- CALL PutCom (ZEscape$+"OD") ' SEND "ALERT" STRING
- IF ZSubParm = -1 THEN _
- EXIT SUB
- IF ZAbort = ZTrue THEN _
- GOTO 20306
- CALL LPrnt("Sending FILENAME -- ",1)
- CALL LPrnt(ZReturnLineFeed$ + CHR$(9),0)
- CALL DelayTime (1) ' WAIT 1 SECOND FOR SETUP
- '
- ' SEND ONE CHARACTER AT A TIME
- '
- CALL BreakFileName (ZUserIn$(ZAnsIndex),WasX$,ZOutTxt$,ZWasY$,ZTrue) ' RH021501
- ZOutTxt$ = ZOutTxt$ + ZWasY$ + "=X" ' RH021501
- FOR WasX = 1 TO LEN(ZOutTxt$)
- CALL PutCom (MID$(ZOutTxt$,WasX,1)) ' SEND 1 CHARACTER
- IF ZSubParm = -1 THEN _
- EXIT SUB
- IF ZAbort = ZTrue THEN _
- GOTO 20306
- CALL LPrnt(MID$(ZOutTxt$,WasX,1),0) ' DISPLAY IF NEEDED
- ZDelay! = TIMER + 10 ' SET MAXIMUM TIME TO WAIT FOR Reply
- Char = ZTrue
- WHILE Char = -1
- CALL CheckTime(ZDelay!, TempElapsed!, 1)
- IF TempElapsed! <= 0 THEN _
- GOTO 20300 ' IF ZNo ECHO, CANCEL FILENAME Transfer
- CALL EofComm (Char)
- WEND ' JUMP OUT IF CHARACTER IS RECEIVED
-
- 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$
- ZWasA = VAL(MID$(ZUserIn$(0),5 * (DwnIndex - 1) + 1,5)) ' RH021501
- GET #2,ZWasA
- MID$(PersonalRec$,WasL-2,1) = "!"
- PUT #2,ZWasA
- CALL UnLockAppend
- END SUB
-
- Change RBBSSUB3.BAS as follows:
-
- 20296 CALL FlushCom(ZWasY$) ' CLEAR THE COMM BUFFER OF GARBAGE
- IF ZSubParm = -1 THEN _
- EXIT SUB
- CALL PutCom (ZEscape$+"OD") ' SEND "ALERT" STRING
- IF ZSubParm = -1 THEN _
- EXIT SUB
- IF ZAbort = ZTrue THEN _
- GOTO 20306
- CALL LPrnt("Sending FILENAME -- ",1)
- CALL LPrnt(ZReturnLineFeed$ + CHR$(9),0)
- CALL DelayTime (1) ' WAIT 1 SECOND FOR SETUP
- '
- ' SEND ONE CHARACTER AT A TIME
- '
- CALL BreakFileName (ZUserIn$(ZAnsIndex),WasX$,ZOutTxt$,ZWasY$,ZTrue) ' RH021501
- ZOutTxt$ = ZOutTxt$ + ZWasY$ + "=X" ' RH021501
- FOR WasX = 1 TO LEN(ZOutTxt$)
- CALL PutCom (MID$(ZOutTxt$,WasX,1)) ' SEND 1 CHARACTER
- IF ZSubParm = -1 THEN _
- EXIT SUB
- IF ZAbort = ZTrue THEN _
- GOTO 20306
- CALL LPrnt(MID$(ZOutTxt$,WasX,1),0) ' DISPLAY IF NEEDED
- ZDelay! = TIMER + 10 ' SET MAXIMUM TIME TO WAIT FOR Reply
- Char = ZTrue
- WHILE Char = -1
- CALL CheckTime(ZDelay!, TempElapsed!, 1)
- IF TempElapsed! <= 0 THEN _
- GOTO 20300 ' IF ZNo ECHO, CANCEL FILENAME Transfer
- CALL EofComm (Char)
- WEND ' JUMP OUT IF CHARACTER IS RECEIVED
-