* Freeware. May not be altered or modified without permission!
*
* $VER: AreaFixMan.spot 3.1
*
*/
DETACH_SUBJECT = "So long..."
PREF = 'AreaFixMan.prefs'
FILE = 'ENV:' || PREF
FILESAVE = 'ENVARC:' || PREF
TEMP = 'T:Spot.AreaFixMan.temp'
TEMP2 = 'T:Spot.AreaFixMan.temp2'
DETACH_TEMP = 'Rexx:Spot/AreaFixMan.announce'
EDITOR = 'Ed'
LF = '0d'x
/* lines between this comment line and the next may be
altered to taste */
EDITOR = 'Ed'
CHAR = '~'
CHARNAME = 'tilde'
/* marks end of changable program */
COUNT=0
Address SPOT
Options Results
'IsIconified'
If RC=0 Then 'UnIconify'
'IsAreaList'
If RC=0 Then Do
'RequestNotify PROMPT "Do not use from Area List"'
Exit
End
'GetAreaName'
REAL_NAME=Result
If ~(Left(REAL_NAME,3)='NET') Then Do
Do Forever
'RequestResponse PROMPT "This is not a matrix area.'LF'Do you wish to proceed?" GADGETS "_Continue|_Help|_Abort"'
If RC=0 Then Exit
If RC=1 Then Leave
If RC=2 Then 'RequestNotify PROMPT "Messages to AreaFix should be in your Matrix areas.'LF'If you send it in any other area, other people may see'LF'your password and assume your identity."'
End
End
If Open('Prefs',FILE,'r') Then Do
FORMAT=ReadLn('Prefs')
If ~(FORMAT='FORMAT 2.6') Then Do
'RequestNotify TITLE "Sorry!" PROMPT "Prefs file is not compatible with this version of AFM.'LF'Delete the prefs files and set up again...Sorry!"'
'RequestResponse TITLE "Delete?" PROMPT "Auto delete prefs files?" GADGETS "Delete|Cancel"'
If RC=1 Then Do
Call Close('Prefs')
Address Command
Delete "ENV:AreaFixMan.prefs"
Delete "ENVARC:AreaFixMan.prefs"
Address SPOT
'RequestNotify PROMPT "Call AFM again now."'
Exit
End
If RC=0 Then Exit
End
Do Until Eof('Prefs')
DUMMY='dummy'
AREA=Strip(ReadLn('Prefs'),'L')
ADDRESS=Strip(ReadLn('Prefs'),'L')
PASS=Strip(ReadLn('Prefs'),'L')
AREAFIX=Strip(ReadLn('Prefs'),'L')
COMMENT=Strip(ReadLn('Prefs'),'L')
If Length(COMMENT)=0 Then Do
COMMENT='Options'
End
Else Do
ANNOUNCE=Strip(ReadLn('Prefs'),'L')
If Length(ANNOUNCE)=0 Then Do
ANNOUNCE='No Announce'
DUMMY=''
End
Else Do
/* Any new prefs will be inserted here */
Do Until Length(DUMMY)=0
DUMMY=ReadLn('Prefs')
End
End
End
If AREA=REAL_NAME Then Do
Call Close('Prefs')
Signal DOAF
End
End
Call Close('Prefs')
If ~Open('Prefs',FILE,'a') Then Do
'RequestNotify PROMPT "Cannot open prefs file: 'FILE'."'
If COUNT>1 Then 'RequestResponse TITLE "'COMMENT || count'" PROMPT "'TEXT'" GADGETS "_Attach|_Detach|_Erase|_Rotate|_OKAY|_CANCEL"'
Else If COUNT=1 Then 'RequestResponse TITLE "'COMMENT'" PROMPT "'TEXT'" GADGETS "_Attach|_Detach|_Erase|_OKAY|_CANCEL"'
Else 'RequestResponse TITLE "'COMMENT'" PROMPT "'TEXT'" GADGETS "_Attach|_Detach|_OKAY|_CANCEL"'
End
Else 'RequestResponse TITLE "'COMMENT'" PROMPT "'TEXT'" GADGETS "_Erase|_Rotate|_OKAY|_CANCEL"'
ARC=RC
If ARC=0 Then Exit
If (ARC=1) & (COUNT<15) Then Do
arc=-1
'RequestResponse TITLE "Attach Method" PROMPT "You may select areas via'LF'a message containing an area'LF'listing or manually." GADGETS "Manual|_Message"'
If RC=0 Then Do
'SaveAscii TO "'TEMP2'" OVERWRITE NOHEADER NOTEARLINE NOORIGIN NOKLUDGES NOREFLOW'
'RequestNotify TITLE "Attach" PROMPT "Select areas by placing'LF'a 'CHARNAME' before the name'LF'of the area."'
'WB2Front'
Address Command '"'EDITOR'"' '"'TEMP2'"'
'Spot2Front'
If Open('AtFile',TEMP2,'r') Then Do
Do While ~Eof('AtFile') & (COUNT<14)
LINE=ReadLn('AtFile')
P=Pos(CHAR,LINE)
If P>0 Then Do
LINE=Right(LINE,Length(LINE)-P)
COUNT=COUNT+1
ENTRY.COUNT='+' || Word(LINE,1)
End
End
Call Close('AtFile')
End
Else Do
'RequestNotify PROMPT "Could not open file!"'
End
End
Else Do Forever
If COUNT>14 Then Break
'RequestString TITLE "Attach" PROMPT "Enter area to attach to.'LF'Select CANCEL for menu."'
If RC>0 Then Break
ATTATCH=Result
If Length(ATTATCH)=0 Then Break
COUNT=COUNT+1
ENTRY.COUNT='+' || Upper(ATTATCH)
End
End
If (ARC=2) & (COUNT<15) Then Do Forever
arc=-1
If COUNT>14 Then break
'RequestArea TITLE "Detach" ALL'
DETATCH=Result
If RC>0 Then Break
If Length(DETATCH)=0 Then Break
COUNT=COUNT+1
ENTRY.COUNT='-' || Upper(DETATCH)
If ANNOUNCE='Announce' Then Do
If Exists(DETACH_TEMP) Then Do
'GotoArea NAME "'DETATCH'"'
'Write TO "All" SUBJECT "'DETACH_SUBJECT'" 'DONOTREMOVE' FILE "'DETACH_TEMP'" NOEDIT NOGUI'
'GotoArea NAME "'REAL_NAME'"'
End
End
If COUNT>14 Then Break
End
If ((ARC=3) & (COUNT>0) & (COUNT<15)) | ((ARC=1) & (COUNT>14)) Then Do
arc=-1
If COUNT=0 Then Do
ARC=4
End
Else COUNT=COUNT-1
End
If ((ARC=4) & (COUNT>1) & (COUNT<15)) | (ARC=2) & (COUNT>14) Then Do
arc=-1
Do C=(COUNT+1) To 1 By -1
D=C-1
ENTRY.C=ENTRY.D
End
D=COUNT+1
ENTRY.1=ENTRY.D
End
If ((ARC=3) & ((COUNT=0) | (COUNT>14))) | ((ARC=4) & (COUNT=1)) | ((ARC=5) & (COUNT>1) & (COUNT<15)) Then Do
arc=-1
If COUNT>0 Then Do c=1 TO COUNT
Call WriteLn('File',ENTRY.c)
End
Call WriteLn('File','--- AFM')
Call Close('File')
'RequestResponse TITLE "Arealist etc." PROMPT "Request Arealist?" GADGETS "_Yes|_Other|_No"'