home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / comm / rbbs2.zip / RFIX173B.DOC < prev    next >
Text File  |  1990-10-28  |  29KB  |  672 lines

  1. =====[ Changes to RBBS-PC 17.3B ]========
  2.  
  3. Last Mod:  KG102703
  4.  
  5. Note:  BASE is the release of 17.3A/0923
  6.  
  7. CONVENTIONS:
  8.     The changes are assigned numbers that  correspond  to  the
  9.     month,  day, and order in which they were made.  Any mods
  10.     are dated following the modification  description.   The
  11.     lines   of   source   code  that  are  changed/modified/added  are
  12.     designated by the comment beginning in column 70 of "' iiMMDD#"
  13.     where ii is the initials of the person providing the change.
  14.  
  15. The latest set of merges available is:  <none>
  16.  
  17. -------------------------------------------------------------------
  18. RBBS-PC.EXE         09-28-90  07:00 PM EST  Release of 17.3B
  19. --------------------------------------------------------------------
  20.                             Summary
  21.  
  22. EXE   MOD       Short Description
  23. ---- --------   -----------------
  24. RBBS KG102703   Upgraded security not letting join conferences
  25. RBBS KG102702   Not marking all batch downloads in personal dir
  26. RBBS KG102701   Unable to locate some files actually present
  27. CNFG DA102402   File path input often didn't work
  28. RBBS DA102401   Page with SNOOP off doesn't display caller name
  29. RBBS KG102202   Unable to J)oin main from conference v)iew
  30. CNFG DA102101   Pers dir check complains about comment lines
  31. RBBS DA101801   When snoop is off, page and autopage won't work
  32. RBBS KG102001   Erroneous msg on thread when subject begins with a #
  33. CNFG KG101203   Sometimes get untrapped error initializing modem's firmware
  34. RBBS KG101202   Some commands not stacking properly
  35. RBBS KG101201   Bulletins command can list non-bulletins
  36. RBBS KG101102   Debugging statement left on sysop's screen when door
  37. RBBS KG101101   Not properly finding some options
  38.  
  39. Contributors include:
  40.  
  41.      DA - Doug Azzarito
  42.      KG - Ken Goosens
  43.  
  44. ------------------------[ KG102703 ]-------------------------
  45.  
  46. Problem:  When a questionnaire in main raises security to a level
  47. that would let the caller join a semi-private conference,
  48. callers are not able to join until they call back.
  49.  
  50. Solution:  The security used to decide what conferences person
  51. can join is the logon security.   Revise logon security to new
  52. value if user is in main, but not if in another conference.
  53. Change RBBSSUB4.BAS as follows:
  54.  
  55. 64462 CALL CheckInt (ZOutTxt$)
  56.       IF ZErrCode = 0 THEN _
  57.          Temp = ZUserSecLevel + _
  58.             WasX * ZTestedIntValue : _
  59.          IF Temp <= MaxSecLevel THEN _
  60.             ZUserSecLevel = Temp : _
  61.             ZUserSecSave = ZUserSecLevel : _
  62.             ZAdjustedSecurity = ZTrue : _
  63.             IF ZOrigMsgFile$ = ZActiveMessageFile$ THEN _            ' KG102703
  64.                ZOrigSec = ZUserSecLevel                              ' KG102703
  65.       GOTO 64110
  66.  
  67. ------------------------[ KG102702 ]-------------------------
  68.  
  69. Problem:  When do batch downloads using P)ersonal download, the
  70. entry is marked as downloaded only for the last file.
  71.  
  72. Solution:  Change RBBSSUB4.BAS as follows:
  73.  
  74. (line 59400)
  75.  
  76.       SUB LogPDown (PrivateDnld,DwnIndex) STATIC                     ' RH021501
  77.       IF NOT PrivateDnld THEN _
  78.          EXIT SUB
  79.       ZWasEN$ = ZPersonalDir$
  80.       WasBX = &H4
  81.       ZSubParm = 9
  82.       CALL FileLock
  83.       WasL = 36 + ZMaxDescLen + ZPersonalLen
  84.       CLOSE 2
  85.       IF ZShareIt THEN _
  86.          OPEN ZWasEN$ FOR RANDOM SHARED AS #2 LEN=WasL _
  87.       ELSE OPEN "R",2,ZPersonalDir$,WasL
  88.       FIELD #2,WasL AS PersonalRec$
  89.       FOR Temp = 1 TO ZDownFiles                                     ' KG102702
  90.          ZWasA = VAL(MID$(ZUserIn$(0),5 * (DwnIndex - Temp) + 1,5))  ' KG102702
  91.          GET #2,ZWasA                                                ' KG102702
  92.          MID$(PersonalRec$,WasL-2,1) = "!"                           ' KG102702
  93.          PUT #2,ZWasA                                                ' KG102702
  94.       NEXT                                                           ' KG102702
  95.       CALL UnLockAppend
  96.       END SUB
  97.  
  98. ------------------------[ KG102701 ]-------------------------
  99.  
  100. Problem:  When using Fast File System with Tab index, files beginning
  101. with a symbol between "9" and "A", such as "@", will never be found.
  102.  
  103. Solution:  Change RBBSSUB5.BAS as follows:
  104.  
  105. (line 63520)
  106.  
  107.       SUB BinSearch (PassedSearchFor$,StartPos, NumChars, LenRec, High, RecFoundAt, RecFound$) STATIC
  108.       SearchFor$ = LEFT$(PassedSearchFor$,NumChars)
  109.       SearchFor$ = SearchFor$ + SPACE$(NumChars-LEN(SearchFor$))
  110.       FIELD #2, LenRec AS SearchRec$
  111.       Low = 0
  112.       IF LEN(ZFastTabs$) < 72 THEN _
  113.          GOTO 63522
  114.       WasX$ = LEFT$(SearchFor$,1)
  115.       WasX = INSTR("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",WasX$)
  116.       IF WasX > 0 THEN _
  117.          Low = CVI(MID$(ZFastTabs$,1+2*(WasX-1),2)) - 1 : _          ' KG102701
  118.          IF WasX < 36 THEN _                                         ' KG102701
  119.             High = CVI(MID$(ZFastTabs$,1+2*WasX,2))                  ' KG102701
  120.  
  121. ------------------------[ DA102402 ]-------------------------
  122. Problem: The input routine in CONFIG for PATH names would not
  123. accept many legal paths, and the check routine was inoperable
  124.  
  125. Solution: Change CONFIG.BAS as follows:
  126.  
  127. 25850 CALL ASKRO ("Enter " + A$ + " DOS sub-directory name (CR to end). ",24,HJ$)
  128.       CALL ALLCAPS (HJ$)
  129.       IF LEN(HJ$) < 1 THEN _
  130.          RETURN
  131.       X$ = HJ$                                                       ' DA102402
  132.       IF LEN(X$) = 2 AND INSTR(X$,":") = 2 THEN _                    ' DA102402
  133.          RETURN
  134.       I = INSTR(X$,":")                                              ' DA102402
  135.       IF I = 2 THEN _                                                ' DA102402
  136.          I = I + 1 _                                                 ' DA102402
  137.       ELSE _                                                         ' DA102402
  138.          GOTO 25850                                                  ' DA102402
  139.       WHILE I <= LEN(X$)                                             ' DA102402
  140.          Y = INSTR(I,X$,"\")                                         ' DA102402
  141.          IF Y = 0 THEN _                                             ' DA102402
  142.             Y = LEN(X$) + 1                                          ' DA102402
  143.          L1 = Y - I                                                  ' DA102402
  144.          GOSUB 25876                                                 ' DA102402
  145.          IF I <> 0 THEN _                                            ' DA102402
  146.             GOTO 25850                                               ' DA102402
  147.          I = Y + 1                                                   ' DA102402
  148.       WEND                                                           ' DA102402
  149.       RETURN                                                         ' DA102402
  150.  
  151. 25876 HJ$ = MID$(X$,I,L1)
  152.       I = 1                                                          ' DA102402
  153.       IF LEN(HJ$) > 12 THEN _
  154.          RETURN                                                      ' DA102402
  155.       L1 = INSTR(HJ$,".")
  156.       IF L1 = 0 AND (LEN(HJ$) > 8) THEN _                            ' DA102402
  157.          RETURN                                                      ' DA102402
  158.       IF L1 > 8 THEN _                                               ' DA102402
  159.          RETURN                                                      ' DA102402
  160.       IF L1 > 0 AND (LEN(HJ$) - L1 > 3) THEN _                       ' DA102402
  161.          RETURN                                                      ' DA102402
  162.  
  163. 25920 FOR J = 1 TO LEN(HJ$)
  164.          X = ASC(MID$(HJ$,J,1))
  165.          IF (X > 63 AND X < 91) THEN _
  166.             GOTO 26020
  167.          IF (X > 47 AND X < 58) THEN _
  168.             GOTO 26020
  169.          IF (X = 33) THEN _
  170.             GOTO 26020
  171.          IF (X > 34 AND X < 42) THEN _
  172.             GOTO 26020
  173.          IF (X > 43 AND X < 47) THEN _
  174.             GOTO 26020
  175.          IF (X > 96 AND X < 124) THEN _
  176.             GOTO 26020
  177.          IF (X = 125) THEN _
  178.             GOTO 26020
  179.          I = 1                                                       ' DA102402
  180.          RETURN                                                      ' DA102402
  181.  
  182. 26020 NEXT
  183.       I = 0                                                          ' DA102402
  184.       RETURN
  185. '
  186. ' * VERIFY THAT THE DISK DRIVE IS ONE ELIGIBLE FOR DOWNLOADING
  187. '
  188.  
  189. ------------------------[ DA102401 ]-------------------------
  190. Problem: When SNOOP is off, and caller pages SysOp, the caller's
  191. name is not on the local screen
  192.  
  193. Solution: Call LINE25 before page and autopage as follows,
  194. in RBBS-PC.BAS:
  195.  
  196. 4710 ZOutTxt$ = "Page " + _
  197.           ZSysopFirstName$ + _
  198.           " (Y/[N])"
  199.      CALL SkipLine (1)
  200.      GOSUB 12999
  201.      IF NOT ZYes THEN _
  202.         RETURN
  203.      PageCount = 0
  204.      ZOutTxt$ = "Paging " + _
  205.           ZSysopFirstName$                                           ' KG071301
  206.      GOSUB 12978
  207.      PageTimeStart! = TIMER
  208.      TempSnoop = ZSnoop                                              ' DA101801
  209.      ZSnoop = ZTrue                                                  ' DA101801
  210.      CALL Line25                                                     ' DA102401
  211.  
  212.  And in RBBSSUB4.BAS as follows:
  213.  
  214. 60300 ' $SUBTITLE: 'AutoPage - NOTIFIES ZSysop WHEN SPECIFIC USER CALLS'
  215.      .
  216.      .
  217.      .
  218.      TempSnoop = ZSnoop                                              ' DA101801
  219.      ZSnoop = ZTrue                                                  ' DA101801
  220.      CALL Line25                                                     ' DA102401
  221.      FOR WasI = 1 TO VAL(ZWorkAra$(3))
  222.      .
  223.      .
  224.      .
  225. ------------------------[ KG102202 ]-------------------------
  226.  
  227. Problem:  Get "no such option MAIN" when try to join main in
  228. the conference v)iew function.
  229.  
  230. Solution: (fix to a fix) Change RBBSSUB4.BAS as follows:
  231.  
  232. 59532 IF INSTR(ReturnOn$,LEFT$(ZWasZ$,1)) > 0 THEN _                 ' KG102202
  233.          ZWasZ$ = LEFT$(ZWasZ$,1) : _                                ' KG102202
  234.          EXIT SUB
  235.       GOSUB 59547
  236.       GOTO 59515
  237.  
  238. ------------------------[ DA102101 ]-------------------------
  239.  
  240. Problem:  Config check on structure of personal directory
  241. wrongly complains about comment lines.
  242.  
  243. Solution:  Change CNFG-SUB.BAS as follows:
  244.  
  245. 61755 SUB CHKPERSDIR (PDIR$, DESC.LEN, NAMELEN) STATIC
  246.       CLS
  247.       LOCATE 5, 21
  248.       PRINT "Checking Personal Directory "; PDIR$;
  249.       NLINES = 0
  250.       LOCATE 7, 27
  251.       PRINT "Line #";
  252.       LOCATE 9, 20
  253.       COLOR 0, 7
  254.       PRINT " Last Line with an ERROR ";
  255.       LOCATE 12, 28
  256.       PRINT " Last ERROR ";
  257.       COLOR 7, 0
  258.       GO.ON = -1
  259.       CALL FINDFILE(PDIR$, FEXISTS)
  260.       IF NOT FEXISTS THEN _
  261.          LOCATE 6, 25: _
  262.          PRINT "File not found"; : _
  263.          GOTO 61775
  264.       LINELEN = 34 + DESC.LEN + NAMELEN
  265.       OPEN PDIR$ FOR INPUT AS #2
  266.       WHILE NOT EOF(2) AND GO.ON
  267.          NLINES = NLINES + 1
  268.          LINE INPUT #2, A$
  269.          L = LEN(A$)
  270.          LOCATE 7, 36
  271.          PRINT NLINES;
  272.          IF L > LINELEN THEN _
  273.             CALL HANDERR(A$, NLINES, "Too LONG: has" + STR$(L) + " chars but should have" + STR$(LINELEN), GO.ON) : _
  274.             IF NOT GO.ON THEN _
  275.                GOTO 61770
  276.          IF L < LINELEN THEN _
  277.             CALL HANDERR(A$, NLINES, "Too SHORT: has" + STR$(L) + " chars but should have" + STR$(LINELEN), GO.ON) : _
  278.                IF NOT GO.ON THEN _
  279.                   GOTO 61770
  280.          IF L > 30 AND (LEFT$(A$,1) <> " ") THEN _                   ' DA102101
  281.             X$ = MID$(A$, 24, 2) + MID$(A$, 27, 2) + MID$(A$, 30, 2) : _
  282.             I = 1 : _
  283.             WHILE I < 7 AND INSTR("0123456789", MID$(X$, I, 1)) > 0 : _
  284.                I = I + 1 : _
  285.             WEND : _
  286.             IF I < 7 THEN _
  287.                CALL HANDERR(A$, NLINES, "INVALID CHARACTER <" + MID$(X$, I, 1) + "> in date field", GO.ON) : _
  288.                IF NOT GO.ON THEN _
  289.                   GOTO 61770
  290.            IF L = LINELEN THEN _
  291.               X$ = RIGHT$(A$, 1) : _
  292.               IF INSTR("*!", X$) = 0 THEN _
  293.                  CALL HANDERR(A$, NLINES, "Last char on line should be * or ! but found <" + X$ + ">", GO.ON) : _
  294.                  IF NOT GO.ON THEN  _
  295.                     GOTO 61770
  296.            IF L = LINELEN THEN _
  297.               X$ = MID$(A$, L - NAMELEN, LINELEN) : _
  298.               IF LEFT$(X$, 1) = " " THEN _
  299.                  IF INSTR("0123456789-", MID$(X$, 2, 1)) = 0 THEN _
  300.                     CALL HANDERR(A$, NLINES, "Name field at col" + STR$(L - NAMELEN) + " has <" + LEFT$(X$, 1) + ">, needs non-blank or blank+number", GO.ON) : _
  301.                     IF NOT GO.ON THEN _
  302.                        GOTO 61770
  303.  
  304. ------------------------[ DA101801 ]-------------------------
  305.  
  306. Problem:  Most sysops turn off snoop only to improve performance.
  307. But snoop off supresses page and autopage.   In a few cases, however,
  308. SysOp wants page off because BBS runs in bedroom.   In that case,
  309. use office hours to restrict page.
  310.  
  311. Change RBBS-PC.BAS as follows:
  312.  
  313. 4710 ZOutTxt$ = "Page " + _
  314.           ZSysopFirstName$ + _
  315.           " (Y/[N])"
  316.      CALL SkipLine (1)
  317.      GOSUB 12999
  318.      IF NOT ZYes THEN _
  319.         RETURN
  320.      PageCount = 0
  321.      ZOutTxt$ = "Paging " + _
  322.           ZSysopFirstName$                                           ' KG071301
  323.      GOSUB 12978
  324.      PageTimeStart! = TIMER
  325.      TempSnoop = ZSnoop                                              ' DA101801
  326.      ZSnoop = ZTrue                                                  ' DA101801
  327.  
  328. 4745 GOSUB 12978
  329.      CALL CheckTime (PageTimeStart!, PageTimeNow!, 2)
  330.      IF PageTimeNow! < 30 THEN GOTO 4730
  331.      ZSnoop = TempSnoop                                              ' DA101801
  332.  
  333. Change RBBSSUB4.BAS as follows:
  334.  
  335. (line 60300)
  336.  
  337.       SUB AutoPage STATIC
  338.       CALL FindIt (ZAutoPageDef$)
  339.       IF NOT ZOK THEN _
  340.          EXIT SUB
  341.       ZErrCode = 0
  342.       ZOK = ZFalse
  343.       WHILE NOT EOF(2) AND ZOK = ZFalse AND ZErrCode = 0
  344.          CALL ReadParms (ZWorkAra$(),4,1)
  345.          IF ZErrCode = 0 THEN _
  346.             ZOK = (ZWorkAra$(1) = ZActiveUserName$) : _
  347.             IF NOT ZOK THEN _
  348.                IF ZNewUser AND ZWorkAra$(1) = "NEWUSER" THEN _
  349.                   ZOK = ZTrue _
  350.                ELSE IF LEFT$(ZWorkAra$(1),1) = "/" AND LEN(ZWorkAra$(1)) > 2 THEN _
  351.                        ZWasB = INSTR (2,ZWorkAra$(1),"/") : _
  352.                        IF ZWasB > 0 AND LEN(ZWorkAra$(1)) > ZWasB THEN _
  353.                           IF ZUserSecLevel <= VAL(MID$(ZWorkAra$(1),ZWasB+1)) AND _
  354.                              ZUserSecLevel >= VAL(MID$(ZWorkAra$(1),2)) THEN _
  355.                                 ZOK = ZTrue
  356.       WEND
  357.       CLOSE 2
  358.       IF ZErrCode > 0 OR NOT ZOK THEN _
  359.          ZErrCode = 0 : _
  360.          EXIT SUB
  361.       ZPageStatus$ = "AP!"                                           ' DA080902
  362.       IF LEFT$(ZWorkAra$(2),1) = "N" THEN _
  363.          ZOutTxt$ = "Telling sysop you're on..." : _
  364.          CALL RingCaller
  365.       ZWasB = (ZWorkAra$(4) = "")
  366.       ZWorkAra$(5) = ""
  367.      TempSnoop = ZSnoop                                              ' DA101801
  368.      ZSnoop = ZTrue                                                  ' DA101801
  369.       FOR WasI = 1 TO VAL(ZWorkAra$(3))
  370.          IF ZWasB THEN _
  371.             CALL LPrnt (ZBellRinger$,0) : _
  372.          ELSE ZWorkAra$(5) = ZWorkAra$(5) + "O4 X" + VARPTR$(ZWorkAra$(4))
  373.       NEXT
  374.       IF NOT ZWasB THEN _
  375.          CALL RBBSPlay (ZWorkAra$(5))
  376.       ZSnoop = TempSnoop                                             ' DA101801
  377.       END SUB
  378.  
  379. ------------------------[ KG102001 ]-------------------------
  380.  
  381. Problem:  When subject of message begins with a number, can
  382. get msg "no such msg #" when threading.
  383.  
  384. Solution:  Change RBBS-PC.BAS as follows:
  385.  
  386. 4515 IF Forward THEN _
  387.         ZOutTxt$ = "No new messages" : _
  388.         ZLastMsgRead = HighMsgNUmber : _
  389.         ZMailWaiting = ZFalse _
  390.      ELSE ZOutTxt$ = "No such msg #" + _
  391.                STR$(CurMsg)
  392.      IF SubInHeader$ = "" THEN _                                     ' KG102001
  393.         GOSUB 12979                                                  ' KG102001
  394.      GOTO 4370
  395.  
  396. ------------------------[ KG101203 ]-------------------------
  397.  
  398. Problem:   When using config to initialize modem's firmware,
  399. sometimes get untrapped error 57 in line 23738.   Need to
  400. recover.
  401.  
  402. Solution:  Change CONFIG.BAS as follows:
  403.  
  404. 60010 '* HANDLE ERROR CONDITIONS *
  405.       IF ERR = 62 AND _
  406.         (ERL = 11600 OR _
  407.          ERL = 11620 OR _
  408.          ERL = 11640 OR _
  409.          ERL = 11660 OR _
  410.          ERL = 11680 OR _
  411.          ERL = 11700 OR _
  412.          ERL = 11705 OR _
  413.          ERL = 11706) THEN _
  414.          PRINT CONFIG.FILENAME$ + _
  415.                " from a version earlier than " + CONFIG.VERSION$ + " on default drive." : _
  416.          PRINT "Please delete and rerun CONFIG." : _
  417.          RESUME 60340
  418.       IF ERL = 15780 AND ERR = 5 AND _
  419.          INSTR(USER.INIT.COMMAND$,"S0=") = 0 THEN _
  420.          RESUME 16073
  421.       IF ERL = 22340 THEN _                                          ' KG073103
  422.          RESUME 22342                                                ' KG073103
  423.       IF ERL = 31000 AND ERR = 58 THEN _
  424.          KILL A$ : _
  425.          RESUME 31000
  426.       IF ERL = 31030 AND ERR = 58 THEN _
  427.          KILL A$ : _
  428.          RESUME 31030
  429.       IF ERL = 22120 AND ERR = 6 THEN _
  430.          RESUME 22100
  431.       IF ERL = 23738 AND ERR = 57 THEN _                             ' KG101203
  432.          RESUME 23738                                                ' KG101203
  433.       IF ERL = 24750 AND ERR = 58 THEN _
  434.          KILL A$ : _
  435.          RESUME 24750
  436.       IF ERL = 31020 THEN _
  437.          PRINT "Unable to kill ";MAIN.MESSAGE.FILE$;".  Error";STR$(ERR):_
  438.          RESUME 31035
  439.       IF ERL = 50490 AND ERR = 58 THEN  _
  440.          RESUME 50500
  441.       IF ERL = 50540 AND ERR = 58 THEN  _
  442.          RESUME 50550
  443.       IF ERL = 50490 OR ERL = 50540 THEN _
  444.          RESUME 15230
  445.       IF ERL = 60471 THEN _
  446.          IF ERR <> 76 THEN _
  447.             RESUME 60478 _
  448.          ELSE RESUME 60474
  449.       IF ERL = 60480 THEN _
  450.          PRINT "ERROR -";ERR;" UNABLE TO CREATE SUBDIRECTORY" : _
  451.          RESUME 60478
  452.       IF ERR = 61 THEN _
  453.          PRINT "ERROR - IBM DOS DISKETTE FULL " : _
  454.          RESUME 60340
  455.       IF ERR = 67 THEN _
  456.          PRINT "ERROR - IBM DOS DIRECTORY FULL" : _
  457.          RESUME 60340
  458.       IF ERR = 70 THEN _
  459.          PRINT "DISKETTE IN DRIVE IS WRITE PROTECTED" : _
  460.          RESUME 60340
  461.       IF ERR = 71 THEN _
  462.          PRINT "DRIVE DOOR OPEN OR MISSING DISKETTE"  : _
  463.          RESUME 60340
  464.       IF ERR = 72 THEN _
  465.          PRINT "ERROR - UNFORMATTED IBM DOS DISKETTE IN DRIVE" : _
  466.          RESUME 60340
  467.       PRINT "+++ Error";ERR;" in line ";ERL "occurred at " TIME$ " on " DATE$
  468.  
  469. ------------------------[ KG101202 ]-------------------------
  470.  
  471. Problem:   At the msg prompt on what numbers to read, cannot stack
  472. anything after "q", such as quit and goodbye ("q g").
  473.  
  474. Solution:  Change RBBS-PC.BAS as follows:
  475.  
  476. 4402 IF LEN(ZUserIn$(ZAnsIndex)) = 1 THEN _                          ' KG022701
  477.         WasY = INSTR("QqHh?",ZUserIn$(ZAnsIndex)) : _                ' KG101202
  478.         IF WasY > 2 THEN _                                           ' KG081302
  479.             ZFileName$ = ZHelpPath$ + "MR" + ZHelpExtension$ : _
  480.             GOSUB 1790 : _
  481.             GOTO 4390 _                                              ' KG101202
  482.         ELSE IF WasY > 0 THEN _                                      ' KG101202
  483.                 RETURN                                               ' KG101202
  484.      MsgIndex = 0                                                    ' KG022701
  485.      NumMsgsSelected = ZWasQ
  486.      GOTO 4370
  487.  
  488. ------------------------[ KG101201 ]-------------------------
  489.  
  490. Problem:  Possible in bulletins to get a non-bulletin listed.
  491.  
  492. Solution:  Change RBBSSUB2.BAS as follows:
  493.  
  494. (line 20235)
  495.  
  496.       SUB BadName (BadFileNameIndex,ProtectExt) STATIC               ' KG101201
  497. '
  498. '
  499. ' *  TEST FOR SYSTEM FILE ATTEMPT
  500. '
  501.       BadFileNameIndex = 2
  502.       ZWasZ$ = ZFileName$
  503.       CALL BreakFileName (ZFileName$,DR$,Prefix$,Extension$,ZFalse)
  504.       IF LEN(Extension$) = 3 AND ProtectExt THEN _                   ' KG101201
  505.          IF INSTR("DEF,MNU,OLD,PUI,BAK,",Extension$+",") > 0 THEN _
  506.             EXIT SUB
  507.       ZOK = 0
  508.       CALL FileNameCheck (ZActiveMessageFile$,Prefix$,Extension$)
  509.       CALL FileNameCheck (ZActiveUserFile$,Prefix$,Extension$)
  510.       CALL FileNameCheck (ZCallersFile$,Prefix$,Extension$)
  511.       CALL FileNameCheck (ZCmntsFile$,Prefix$,Extension$)
  512.       CALL FileNameCheck (ZFileSecFile$,Prefix$,Extension$)
  513.       CALL FileNameCheck (ZMainMsgBackup$,Prefix$,Extension$)
  514.       CALL FileNameCheck (ZOrigMsgFile$,Prefix$,Extension$)
  515.       CALL FileNameCheck (ZOrigUserFile$,Prefix$,Extension$)
  516.       CALL FileNameCheck (ZPswdFile$,Prefix$,Extension$)
  517.       CALL FileNameCheck (ZRBBSBat$,Prefix$,Extension$)
  518.       CALL FileNameCheck (ZRCTTYBat$,Prefix$,Extension$)
  519.       CALL FileNameCheck (ZConfigFileName$,Prefix$,Extension$)
  520.       IF ZOK = 0 THEN _                                              ' KG101201
  521.          BadFileNameIndex = 1                                        ' KG101201
  522.       END SUB
  523.  
  524. Change RBBSSUB4.BAS as follows:
  525.  
  526. 59532 IF INSTR(ReturnOn$,LEFT$(ZWasZ$,1)) > 0 AND WasBF < 2 THEN _   ' KG101201
  527.          EXIT SUB
  528.       GOSUB 59547
  529.       GOTO 59515
  530.  
  531. 59538 FilName$ = FPre$ + ZWasZ$ + PreSuf$                            ' KG090801
  532.       ZFileName$ = FilName$ + BackOpt$                               ' KG090801
  533.       GOSUB 59543                                                    ' KG101201
  534.       IF WasBF > 1 THEN _                                            ' KG101201
  535.          ZOK = ZFalse : _                                            ' KG101201
  536.          RETURN                                                      ' KG101201
  537.       CALL Graphic (GRDefault$,ZFileName$)
  538.       IF NOT ZOK THEN _
  539.          IF BackOpt2$ <> "" THEN _
  540.             ZFileName$ = FilName$ + _
  541.                          BackOpt2$ : _
  542.          GOSUB 59543 : _                                             ' KG101201
  543.          IF WasBF > 1 THEN _                                         ' KG101201
  544.             ZOK = ZFalse : _                                         ' KG101201
  545.             RETURN _                                                 ' KG101201
  546.          ELSE CALL Graphic (GRDefault$,ZFileName$)                   ' KG101201
  547.       IF ZOK THEN _                                                  ' KG092301
  548.          CALL WordInFile (CurMenu$,ZWasZ$,InMenu) : _                ' KG092301
  549.          IF ZSysop OR InMenu OR (NOT RequireInMenu) THEN _           ' KG092301
  550.             RETURN _
  551.          ELSE GOTO 59540
  552.       IF (NOT VerifyInMenu) THEN _
  553.          GOTO 59540
  554.       CALL WordInFile (CurMenu$,ZWasZ$,InMenu)  'verify against menu itself ' KG032502
  555.       IF InMenu THEN _                                               ' KG032502
  556.          IF AllMenuOK THEN _
  557.             RETURN
  558.  
  559. 59543 WasZ$ = ZWasZ$                                                 ' KG101201
  560.       CALL BadName (WasBF,ZFalse)                                    ' KG101201
  561.       ZWasZ$ = WasZ$                                                 ' KG101201
  562.       RETURN                                                         ' KG101201
  563.  
  564. Change RBBSSUB5.BAS as follows:
  565.  
  566. 20163 ZFileName$ = ZFileNameHold$
  567.       CALL BadName (BadFileNameIndex,ZTrue)                          ' KG101201
  568.       ON BadFileNameIndex GOTO 20164,20176
  569.  
  570. 20235 CALL BadName (BadFileNameIndex,ZTrue)                          ' KG101201
  571.       ON BadFileNameIndex GOTO  20236,20245
  572.  
  573. ------------------------[ KG101102 ]-------------------------
  574.  
  575. Problem:  When door, get strange msg on SysOp's screen though not
  576. on the caller's.   This was left in from debugging.
  577.  
  578. Solution:  Change RBBSSUB2.BAS as follows:
  579.  
  580. 10983 ' $SUBTITLE: 'DoorExit -- Setup to exit to a "door"'
  581. ' $PAGE
  582. '  NAME    -- DoorExit
  583. '
  584. '  INPUTS  -- PARAMETER             MEANING
  585. '             ZMultiLinkPresent
  586. '             ZNodeID$
  587. '             ZRBBSBat$
  588. '             ZWasZ$
  589. '
  590. '  OUTPUTS -- ZWasQ                    NUMBER OF LINES TO WRITE OUT TO
  591. '                                      ZRCTTYBat$
  592. '             ZUserIn$()               LINES TO WRITE OUT TO ZRCTTYBat$
  593. '
  594. '  PURPOSE -- Set up ZUserIn$() and ZWasQ in order to call "EXITRBBS" and
  595. '             exit RBBS-PC to invoke another program
  596. '
  597.       SUB DoorExit (ReqDoorsDef) STATIC                              ' KG032502
  598.       IF ZWasZ$ = "" OR _
  599.          ZWasZ$ = "NONE" THEN _
  600.          EXIT SUB
  601.       CALL FindIt (ZWasZ$)
  602.       IF NOT ZOK THEN _
  603.          GOTO 10986
  604.       CALL BreakFileName (ZWasZ$,WasX$,ExitTo$,ExitMethod$,ZFalse)   ' KG032501
  605.       ExitMethod$ = ""
  606.       ZDooredTo$ = ExitTo$
  607.       CALL FindIt (ZDoorsDef$)                                       ' KG101102
  608.       IF NOT ZOK THEN _
  609.          IF ReqDoorsDef THEN _                                       ' KG032502
  610.             EXIT SUB _                                               ' KG032502
  611.          ELSE ExitTo$ = ExitTo$ + " " + ZNodeID$ : _                 ' KG032502
  612.               GOTO 10989                                             ' KG032502
  613.  
  614. ------------------------[ KG101101 ]-------------------------
  615.  
  616. Problem:  In bulletins, can view system files that have no
  617. extension, when the system file is on the same drive/path
  618. as the bulletin menu.
  619.     Also, bulletins, doors, conferences are supposed to look at
  620. the drive/path where the menu is located for an option, but
  621. were not doing this when the menu file included a drive/path
  622. different from the primary placed looking, such as the bulletin
  623. prefix for bulletins.
  624.  
  625. Solution:  Change RBBSSUB4.BAS as follows:
  626.  
  627. 59510 ZFileName$ = CurMenu$
  628.       InMenu = ZTrue                                                 ' KG041701
  629.       CALL BreakFileName (FrontOpt$,WasX$,FrontPre$,ZWasDF$,ZTrue)   ' KG101101
  630.       CALL BreakFileName (CurMenu$,MenuDrv$,WasX$,ZWasDF$,ZTrue)
  631.       MenuFront$ = MenuDrv$ + LEFT$(WasX$,LEN(WasX$)-LEN(PreSuf$))   ' KG090801
  632.       IF CurMenu$ = LastSubMenu$ THEN _                              ' KG090801
  633.          MenuFront$ = LEFT$(MenuFront$,LEN(MenuFront$)-1)            ' KG090801
  634.       CALL Graphic (GRDefault$,ZFileName$)
  635.       CurMenuVer$ = ZFileName$
  636.       ZStopInterrupts = ZFalse
  637.       IF ZAnsIndex < ZLastIndex OR ZExpertUser THEN _
  638.          GOTO 59520
  639.  
  640. 59530 ZWasZ$ = ZUserIn$(ZAnsIndex)
  641.       CALL AllCaps (ZWasZ$)
  642.       IF INSTR(ReturnOn$,ZWasZ$) THEN _  'check whether calling pgm wants
  643.          EXIT SUB
  644.       IF INSTR("LH?",ZWasZ$) THEN _       'check whether caller wants help
  645.          GOTO 59515
  646.       IF INSTR(ZWasZ$,".") > 0 THEN _
  647.          GOTO 59532
  648.       CALL BadFile (ZWasZ$,WasBF)                                    ' KG081705
  649.       IF WasBF > 1 THEN _                                            ' KG081705
  650.          GOTO 59532                                                  ' KG081705
  651.       FPre$ = MenuFront$   ' check for sub-option                    ' KG081603
  652.       PreSuf$ = "-"                                                  ' KG090801
  653.       CALL BadFile (FPRE$ + ZWasZ$ + "-",WasBF)                      ' KG090801
  654.       ZOK = ZFalse                                                   ' KG082401
  655.       IF WasBF < 2 THEN _                                            ' KG082401
  656.          VerifyInMenu = ZFalse : _                                   ' KG082401
  657.          GOSUB 59538
  658.       PreSuf$ = ""                                                   ' KG090801
  659.       VerifyInMenu = PassedVerifyInMenu                              ' KG082005
  660.       IF NOT ZOK THEN _                                              ' KG081603
  661.          FPre$ = FrontOpt$ : _    ' check standard option            ' KG081603
  662.          GOSUB 59538 : _
  663.          IF NOT ZOK THEN _    ' check option where menu is           ' KG081603
  664.             FPre$ = MenuDrv$ + FrontPre$ : _                         ' KG101101
  665.             IF FrontOpt$ <> FPre$ THEN _                             ' KG101101
  666.                GOSUB 59538                                           ' KG101101
  667.       IF NewMenu THEN _
  668.          NewMenu = ZFalse : _
  669.          GOTO 59515
  670.       IF ZOK THEN _
  671.          EXIT SUB
  672.