/* $VER: Update.rexx 8.3 (12.12.94) */ CALL TIME('R') SAY SAY SUBSTR(SOURCELINE(1),4) SAY SAY 'This macro updates the file libraries for ALL previous' SAY 'versions of BBBBS to work with BBBBS version 8.0 and above.' SAY 'It will abort before trying to update twice, so ''no worries''.' SAY SAY 'It will renumber the first 101 files by shuffling them into' SAY 'blank spots in the filelist, or adding to the end if that is' SAY 'necessary. It then saves the filelist and calls BuildALPHA.rexx.' SAY OPTIONS PROMPT 'Continue? (nY) > ' PULL junk IF LEFT(junk,1)='N' THEN DO OPTIONS PROMPT 'Not renumbering is probably not a good idea, are you sure? (Ny) > ' PULL junk IF LEFT(junk,1)='Y' THEN EXIT END figarg='s:CONFIG.BBS' IF ~EXISTS(figarg) THEN figarg='BBS:BBS_TEXT/CONFIG.BBS' IF readopen(figarg)=0 THEN DO SAY 's:CONFIG.BBS and BBS:BBS/CONFIG.BBS are both missing!' EXIT END lynes.='' DO i=1 TO 40 lynes.i=READLN(f) END CALL CLOSE(f) compos=POS('/*',lynes.1) IF compos>0 THEN lynes.1=LEFT(lynes.1,compos-1) bbsname=STRIP(lynes.1) sysop=WORD(lynes.2,1) bbspath=WORD(lynes.6,1) IF ~EXISTS(bbspath) THEN DO SAY bbspath 'does not exist!' EXIT END testchar=RIGHT(bbspath,1) IF testchar~='/' & testchar~=':' THEN bbspath=bbspath'/' libpath=WORD(lynes.8,1) IF ~EXISTS(libpath) THEN DO SAY libpath 'does not exist!' EXIT END testchar=RIGHT(libpath,1) IF testchar~='/' & testchar~=':' THEN libpath=libpath'/' dirs.='' IF readopen(bbspath'Lists/Libraries') THEN DO SAY 'Loading Library list...' DO i=1 line=READLN(f) IF line='END' | EOF(f) THEN LEAVE i num=WORD(line,1) IF DATATYPE(num,'W') THEN dirs.num=STRIP(WORD(line,2)) END CALL CLOSE(f) END ELSE EXIT file.='' file.0=0 gottadoit=0 IF readopen(bbspath'Lists/Files') THEN DO SAY 'Loading Current Files list...' DO i=1 line=READLN(f) IF EOF(f) THEN LEAVE i num=WORD(line,1) IF DATATYPE(num,'W') THEN DO IF gottadoit=0 THEN DO IF num>100 THEN DO SAY 'This file system has already been updated for BBBBS 8.0' SAY EXIT END END file.num=STRIP(WORD(line,2) WORD(line,3)) IF num>file.0 THEN file.0=num IF num<100 THEN IF LEFT(WORD(file.num,2),1)~='.' THEN gottadoit=1 END END CALL CLOSE(f) END ELSE EXIT SAY oldtop=file.0 SAY 'Renumbering files...' lastfill=102 DO i=101 TO 1 BY -1 IF file.i='' THEN ITERATE i DO j=lastfill WHILE file.j~='' END lastfill=j IF i=1 THEN j=101 file.j=file.i fnote=bbspath'FileNotes/'WORD(file.j,1)'/'WORD(file.j,2) IF readopen(fnote) THEN DO lynes.='' DO k=1 line=READLN(f) IF EOF(f) THEN LEAVE k lynes.k=line END CALL CLOSE(f) lynes.0=k-1 lynes.1=OVERLAY(j,lynes.1,7,5) CALL DELAY(28) IF writeopen(fnote) THEN DO DO k=1 TO lynes.0 CALL WRITELN(f,lynes.k) END CALL CLOSE(f) file.i='' SAY 'Renumbered file' i 'to' j WORD(file.j,1)'/'WORD(file.j,2) END IF j>file.0 THEN file.0=j END END SAY IF file.0>oldtop THEN DO IF readopen(bbspath'Numbers/LastFile') THEN DO num=READLN(f) CALL CLOSE(f) CALL DELAY(50) IF num