home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fresh Fish 5
/
FreshFish_July-August1994.bin
/
bbs
/
comm
/
bbbbs-7.2.lha
/
BBBBS
/
BBBBS72.lha
/
BBS_LIBS
/
BBS
/
bbsQUICK64.lha
/
bbsQUICK.rexx
< prev
next >
Wrap
OS/2 REXX Batch file
|
1993-10-06
|
46KB
|
1,781 lines
/* $VER: bbsQUICK.rexx 6.4 © 1993 Richard Lee Stockton (6.10.93)
- FREELY DISTRIBUTABLE AS LONG AS THIS NOTICE REMAINS -
requires: libs:rexxsyslib.library c:LhA
libs:rexxsupport.library c:join
libs:rexxarplib.library c:copy
libs:rexxmathlib.library c:delete
libs:screenshare.library c:version
libs:arp.library
- Preferences -
prefs.0 = color data
prefs.1 = work dir
prefs.2 = download dir
prefs.3 = upload dir
prefs.4 = editor
*/
IF SHOW('P','QUICKHOST') THEN
DO
ADDRESS QUICKPORT FRONT
EXIT 0
END
IF ~SHOW('L','rexxsupport.library') THEN
CALL ADDLIB('rexxsupport.library',0,-30,0)
IF ~SHOW('L','rexxarplib.library') THEN
CALL ADDLIB('rexxarplib.library',0,-30,0)
CALL setup_variables()
CALL setup_screen()
CALL setup_host()
w.=''
w.cols=ScreenCols(QUICKSCREEN)
w.rows=ScreenRows(QUICKSCREEN)-1
/* w.cols=640; w.rows=200 */
lines_per_page=(w.rows-43)%8
chars=(w.cols-48)%8
w.idcmp='CLOSEWINDOW+MENUPICK+GADGETUP'
w.flags='WINDOWCLOSE+ACTIVATE'
IF EXISTS(prefspath) THEN SIGNAL START
START_PREFS:
p.=''
p.title=CENTER('Please Enter Your Preferences',44)
CALL OpenWindow(QUICKHOST,120,30,400,130,w.idcmp,w.flags,p.title)
CALL AddMenu(QUICKHOST,'Preferences ')
CALL AddItem(QUICKHOST,' Help','HELP','H')
CALL AddItem(QUICKHOST,' Colors ...','COLORS','C')
CALL AddItem(QUICKHOST,' Load ...','LOAD','L')
CALL AddItem(QUICKHOST,' Save ...','SAVE',';')
CALL AddItem(QUICKHOST,' Use','USE','U')
CALL AddItem(QUICKHOST,' Cancel','CLOSEWINDOW','Q')
CALL AddItem(QUICKHOST,' About','ABOUT')
pp.1='Work Dir:'
pp.2='Download Dir:'
pp.3='Upload Dir:'
pp.4='Editor:'
DO i=0 TO 9
p.i=prefs.i
END
DO i=1 TO 4
CALL SETAPEN(QUICKHOST,1)
CALL MOVE(QUICKHOST,18,29+17*i)
CALL TEXT(QUICKHOST,RIGHT(pp.i,16))
CALL AddGadget(QUICKHOST,158,23+17*i,i,p.i,'PREFS' i '%g',220,RIDGEBORDER)
END
CALL AddGadget(QUICKHOST, 40,112,4,' Save ','SAVE')
CALL AddGadget(QUICKHOST,180,112,5,' Use ','USE')
CALL AddGadget(QUICKHOST,300,112,6,' Cancel ','CLOSEWINDOW')
CALL AddGadget(QUICKHOST, 40,16,7,' Load ','LOAD')
CALL AddGadget(QUICKHOST,176,16,8,' HELP ','HELP')
CALL AddGadget(QUICKHOST,300,16,9,' Colors ','COLORS')
CALL tofront(QUICKHOST)
CALL box(QUICKHOST,1,1,11,30,378,77)
CALL SetAPen(QUICKHOST,3)
CALL Flood(QUICKHOST,1,5,15)
lastgad=1
LOOP_PREFS:
CALL SCREENTOFRONT(QUICKSCREEN)
CALL SetAPen(QUICKHOST,1)
DO FOREVER
CALL ActivateGadget(QUICKHOST,lastgad)
t=waitpkt(QUICKPORT)
DO ff=1
p=GETPKT(QUICKPORT)
IF c2d(p)=0 THEN LEAVE ff
command=GETARG(p)
PARSE VAR command arg1' 'arg2' 'arg3
t=REPLY(p,0)
SELECT
WHEN arg1='LOAD' THEN CALL config('LOAD')
WHEN arg1='SAVE' | arg1='USE' | arg1='CLOSEWINDOW' THEN
DO
DO i=1 TO 9 WHILE arg1~='CLOSEWINDOW'
prefs.i=p.i
END
CALL MAKEDIR(prefs.1)
CALL PRAGMA('D',prefs.1)
arcdir=makepath(prefs.3,'OUT')
CALL MAKEDIR(arcdir)
IF arg1='SAVE' THEN CALL config('SAVE')
CALL CloseWindow(QUICKHOST,'CONTINUE')
SIGNAL START
END
WHEN arg1='HELP' THEN CALL Request(,12,prefshelp,,,,QUICKSCREEN)
WHEN arg1='ABOUT' THEN CALL Request(200,45,abouttext,,,,QUICKSCREEN)
WHEN arg1='PREFS' THEN
DO
n=arg2
p.n=arg3
n=n+1
IF n>4 THEN n=1
lastgad=n
END
WHEN arg1='COLORS' THEN
/* INTERPRET */ ADDRESS AREXX Palette.rexx QUICKSCREEN 4 QUICKPORT
WHEN arg1='NEW_COLORS' THEN p.0=new_colors()
WHEN arg1='MOUSEBUTTONS' THEN NOP
WHEN arg1='SELECTUP' THEN NOP
WHEN arg1='CONTINUE' THEN NOP
OTHERWISE CALL Request(,100,command,,,,QUICKSCREEN)
END
END
END
START:
projects=SHOWDIR(prefs.1)
IF WORDS(projects)=1 THEN
DO
arcdir=makepath(prefs.3,'OUT/'projects)
CALL MAKEDIR(arcdir)
workdir=makepath(prefs.1,projects)
CALL MAKEDIR(workdir)
CALL PRAGMA('D',workdir)
END
ELSE IF projects~='' THEN CALL newarea()
IF EXISTS('.ID') THEN CALL read_ID()
ELSE CALL openarc()
RESTART:
IF mode=0 THEN w.title='Notices and Information'
IF mode=1 THEN w.title='Private EMail Messages'
IF mode=2 THEN w.title='New Conferences Messages'
IF mode=3 THEN w.title='Public Message Conferences'
IF mode=4 THEN w.title='New File Descriptions'
IF mode=5 THEN w.title='Public File Libraries'
w.title=RIGHT(bbsname w.title,75)
CALL OpenWindow(QUICKHOST,,9,w.cols,w.rows-8,w.idcmp,w.flags,w.title)
CALL SetFont(QUICKHOST,'topaz.font',8)
CALL AddMenu(QUICKHOST,'Project ')
CALL AddItem(QUICKHOST,' New','NEW')
CALL AddItem(QUICKHOST,' Open ...','OPEN','O')
CALL AddItem(QUICKHOST,' Archive','ARC','A')
CALL AddItem(QUICKHOST,' Info','INFO','I')
CALL AddItem(QUICKHOST,' About','ABOUT')
CALL AddItem(QUICKHOST,' Quit','CLOSEWINDOW','Q')
CALL AddMenu(QUICKHOST,'Movement ')
CALL AddItem(QUICKHOST,' Line Forward','LINE UP','.')
CALL AddItem(QUICKHOST,' Line Back','LINE BACK',',')
CALL AddItem(QUICKHOST,' Page Forward','PAGE UP','F')
CALL AddItem(QUICKHOST,' Page Back','PAGE BACK','B')
CALL AddItem(QUICKHOST,' Zip to Beg/End','PAGE ZIP','Z')
CALL AddMenu(QUICKHOST,'Commands ')
CALL AddItem(QUICKHOST,' Mode ...','CONTINUE')
CALL AddSubItem(QUICKHOST,' Notices','MODE 0','1',62)
CALL AddSubItem(QUICKHOST,' EMail','MODE 1','2',61)
CALL AddSubItem(QUICKHOST,' Messages','MODE 2','3',59)
CALL AddSubItem(QUICKHOST,' Conferences','MODE 3','4',55)
CALL AddSubItem(QUICKHOST,' FileList','MODE 4','5',47)
CALL AddSubItem(QUICKHOST,' Libraries','MODE 5','6',31)
CALL AddItem(QUICKHOST,' Print','PRINT','[')
CALL AddItem(QUICKHOST,' Search','SEARCH','S')
IF mode=1 & level>sysoplevel THEN CALL AddItem(QUICKHOST,' User','USER','')
IF mode<2 THEN
DO
CALL AddItem(QUICKHOST,' Delete','KILL','K')
CALL AddItem(QUICKHOST,' Save As','SAVEAS','S')
END
IF mode<3 THEN
DO
CALL AddItem(QUICKHOST,' Previous','NEXT BACK','P')
CALL AddItem(QUICKHOST,' Next','NEXT FORWARD','N')
END
IF mode=1 | mode=2 | mode=3 THEN
CALL AddItem(QUICKHOST,' Write','WRITE','W')
IF mode=4 THEN
DO
CALL AddItem(QUICKHOST,' Download','DOWNLOAD','D')
IF level>=sysoplevel THEN
DO
CALL AddItem(QUICKHOST,' Kill','DELETE')
CALL AddItem(QUICKHOST,' Change','CHANGE')
END
IF WORDS(SHOWDIR(makepath(workdir,'EmailFiles')'/'name))>0 THEN
CALL AddItem(QUICKHOST,' EmailFiles','EFILES','E')
END
IF mode=5 THEN CALL AddItem(QUICKHOST,' Upload','UPLOAD','U')
CALL SetItem(QUICKHOST,2,0,mode,'ON')
CALL AddMenu(QUICKHOST,'Preferences ')
CALL AddItem(QUICKHOST,' Set ...','CONFIG SET','/')
CALL AddItem(QUICKHOST,' Load ...','CONFIG LOAD','L')
CALL AddItem(QUICKHOST,' Save ...','CONFIG SAVE',';')
CALL AddItem(QUICKHOST,' Colors ...','COLORS','C')
IF mode<3 THEN
DO
CALL AddGadget(QUICKHOST,110,14,2,' Previous ','NEXT BACK')
CALL AddGadget(QUICKHOST,210,14,3,' Next ','NEXT FORWARD')
END
IF mode=1 | mode=2 | mode=3 THEN
CALL AddGadget(QUICKHOST,20,14,1,' Write ','WRITE')
IF mode=4 THEN
DO
CALL AddGadget(QUICKHOST,14,14,1,' Download ','DOWNLOAD')
IF level>=sysoplevel THEN
CALL AddGadget(QUICKHOST,108,14,2,' Kill ','DELETE')
IF WORDS(SHOWDIR(makepath(workdir,'EmailFiles')'/'name))>0 THEN
CALL AddGadget(QUICKHOST,170,14,3,' EmailFiles ','EFILES')
END
IF mode=5 THEN CALL AddGadget(QUICKHOST,20,14,1,' Upload ','UPLOAD')
CALL AddGadget(QUICKHOST,w.cols-130,14,4,' Page Forward ','PAGE UP')
CALL AddGadget(QUICKHOST,w.cols-235,14,5,' Page Back ','PAGE BACK')
CALL AddGadget(QUICKHOST,280,14,6,CENTER(modetext.mode,13),'NEW_MODE')
CALL SetGadget(QUICKHOST,6,'ON')
CALL tofront(QUICKHOST)
CALL boxes()
CALL SetAPen(QUICKHOST,3)
CALL Flood(QUICKHOST,1,5,15)
CALL read_QUICK()
IF mode=0 | mode=2 THEN CALL do_marked()
/* Wait Loop */
LOOP:
CALL SCREENTOFRONT(QUICKSCREEN)
CALL SetAPen(QUICKHOST,1)
DO FOREVER
t=waitpkt(QUICKPORT)
DO ff=1
p=GETPKT(QUICKPORT)
IF c2d(p)=0 THEN LEAVE ff
command=GETARG(p)
PARSE VAR command arg1' 'arg2' 'arg3' 'arg4
t=REPLY(p,0)
SELECT
WHEN arg1='F