home *** CD-ROM | disk | FTP | other *** search
/ Meeting Pearls 3 / Meeting_Pearls_III.iso / Pearls / comm / Fido / Spot / Rexx / AreaFixMan / AreaFixMan.spot < prev   
Text File  |  1994-08-03  |  8KB  |  282 lines

  1. /*
  2.  *
  3.  * AFM: AreaFix Manager © 1993 PSR Software
  4.  *          Makes AreaFix calls much simpler!
  5.  * Freeware.  May not be altered or modified without permission!
  6.  *
  7.  * $VER: AreaFixMan.spot 3.1
  8.  *
  9.  */
  10.  
  11. DETACH_SUBJECT = "So long..."
  12.  
  13. PREF = 'AreaFixMan.prefs'
  14. FILE = 'ENV:' || PREF
  15. FILESAVE = 'ENVARC:' || PREF
  16. TEMP = 'T:Spot.AreaFixMan.temp'
  17. TEMP2 = 'T:Spot.AreaFixMan.temp2'
  18. DETACH_TEMP = 'Rexx:Spot/AreaFixMan.announce'
  19. EDITOR = 'Ed'
  20. LF = '0d'x
  21.  
  22. /* lines between this comment line and the next may be
  23.    altered to taste */
  24. EDITOR = 'Ed'
  25. CHAR = '~'
  26. CHARNAME = 'tilde'
  27. /* marks end of changable program */
  28.  
  29. COUNT=0
  30.  
  31. Address SPOT
  32. Options Results
  33.  
  34. 'IsIconified'
  35. If RC=0 Then 'UnIconify'
  36.  
  37. 'IsAreaList'
  38. If RC=0 Then Do
  39.    'RequestNotify PROMPT "Do not use from Area List"'
  40.    Exit
  41. End
  42.  
  43. 'GetAreaName'
  44. REAL_NAME=Result
  45. If ~(Left(REAL_NAME,3)='NET') Then Do
  46.    Do Forever
  47.       'RequestResponse PROMPT "This is not a matrix area.'LF'Do you wish to proceed?" GADGETS "_Continue|_Help|_Abort"'
  48.       If RC=0 Then Exit
  49.       If RC=1 Then Leave
  50.       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."'
  51.    End
  52. End
  53.  
  54. If Open('Prefs',FILE,'r') Then Do
  55.    FORMAT=ReadLn('Prefs')
  56.    If ~(FORMAT='FORMAT 2.6') Then Do
  57.       'RequestNotify TITLE "Sorry!" PROMPT "Prefs file is not compatible with this version of AFM.'LF'Delete the prefs files and set up again...Sorry!"'
  58.       'RequestResponse TITLE "Delete?" PROMPT "Auto delete prefs files?" GADGETS "Delete|Cancel"'
  59.       If RC=1 Then Do
  60.          Call Close('Prefs')
  61.          Address Command
  62.          Delete "ENV:AreaFixMan.prefs"
  63.          Delete "ENVARC:AreaFixMan.prefs"
  64.          Address SPOT
  65.          'RequestNotify PROMPT "Call AFM again now."'
  66.          Exit
  67.       End
  68.       If RC=0 Then Exit
  69.    End
  70.    Do Until Eof('Prefs')
  71.       DUMMY='dummy'
  72.       AREA=Strip(ReadLn('Prefs'),'L')
  73.       ADDRESS=Strip(ReadLn('Prefs'),'L')
  74.       PASS=Strip(ReadLn('Prefs'),'L')
  75.       AREAFIX=Strip(ReadLn('Prefs'),'L')
  76.  
  77.       COMMENT=Strip(ReadLn('Prefs'),'L')
  78.       If Length(COMMENT)=0 Then Do
  79.          COMMENT='Options'
  80.       End
  81.       Else Do
  82.          ANNOUNCE=Strip(ReadLn('Prefs'),'L')
  83.          If Length(ANNOUNCE)=0 Then Do
  84.             ANNOUNCE='No Announce'
  85.             DUMMY=''
  86.          End
  87.          Else Do
  88.             /* Any new prefs will be inserted here */
  89.             Do Until Length(DUMMY)=0
  90.                DUMMY=ReadLn('Prefs')
  91.             End
  92.          End
  93.       End
  94.       If AREA=REAL_NAME Then Do
  95.          Call Close('Prefs')
  96.          Signal DOAF
  97.       End
  98.    End
  99.    Call Close('Prefs')
  100.    If ~Open('Prefs',FILE,'a') Then Do
  101.       'RequestNotify PROMPT "Cannot open prefs file: 'FILE'."'
  102.       Exit
  103.    End
  104. End
  105. Else If ~Open('Prefs',FILE,'w') Then Do
  106.    'RequestNotify PROMPT "Cannot create prefs file: 'FILE'."'
  107.    Exit
  108. End
  109. Else Do
  110.    'RequestNotify PROMPT "New prefs file has been created"'
  111.    Call Writeln('Prefs','FORMAT 2.6')
  112. End
  113.  
  114. 'RequestString TITLE "Boss" PROMPT "Enter the address of the boss'LF'for this area.  i.e 2:253/516"'
  115. If RC>0 Then Exit
  116. ADDRESS=Result
  117.  
  118. 'RequestString TITLE "Password" PROMPT "Enter your password for this boss."'
  119. If RC>0 Then Exit
  120. PASS=Result
  121.  
  122. 'RequestString TITLE "AreaFix" PROMPT "Enter name of the AreaFix handler'LF'for this boss or leave unaltered." DEFAULT "Areafix"'
  123. If RC>0 Then Exit
  124. AREAFIX=Result
  125.  
  126. 'RequestString TITLE "Comment" PROMPT "Enter optional comment or reminder for this area"'
  127. COMMENT=Result
  128. If Length(COMMENT)=0 Then COMMENT="Options"
  129.  
  130. 'RequestResponse TITLE "Announce" PROMPT "Do you want a message sent'LF'to areas you detach from?" GADGETS "_Yes|_No"'
  131. ANNOUNCE=RC
  132. If ANNOUNCE=0 Then Do
  133.    ANNOUNCE='No Announce'
  134. End
  135. Else Do
  136.    ANNOUNCE='Announce'
  137. End
  138.  
  139. /* Further prefs will be added here as they are thought of */
  140.  
  141. 'RequestResponse PROMPT "You have changed the prefs." GADGETS "_Save|_Use|_Cancel"'
  142.  
  143. If ~(RC=0) Then Do
  144.    Call WriteLn('Prefs',REAL_NAME)
  145.    Call WriteLn('Prefs',ADDRESS)
  146.    Call WriteLn('Prefs',PASS)
  147.    Call WriteLn('Prefs',AREAFIX)
  148.    Call WriteLn('Prefs',COMMENT)
  149.    Call WriteLn('Prefs',ANNOUNCE)
  150.    Call WriteLn('Prefs','')
  151.    Call Close('Prefs')
  152.    If RC=1 Then Address Command 'Copy 'FILE FILESAVE
  153. End
  154.  
  155. DOAF:
  156.  
  157. Address Command 'Delete >NIL: "Ram:T/Spot.AreaFixMan.temp"'
  158.  
  159. If ~Open('File','RAM:T/Spot.AreaFixMan.temp','w') Then Do
  160.    'RequestNotify PROMPT "Cannot open temporary file!"'
  161.    Exit
  162. End
  163. DONOTREMOVE = Translate('ISAYABiGPaulWozHerE!.',' GNRO""IearAiFanMx--','iYBSIG.AulaPzoE!rHWe')
  164. Do Forever
  165.  
  166.    TEXT=''
  167.    If COUNT>0 Then Do c=1 To COUNT
  168.       TEXT=TEXT || ENTRY.c || LF
  169.       End
  170.  
  171.    If COUNT<15 Then Do
  172.       If COUNT>1 Then 'RequestResponse TITLE "'COMMENT || count'" PROMPT "'TEXT'" GADGETS "_Attach|_Detach|_Erase|_Rotate|_OKAY|_CANCEL"'
  173.       Else If COUNT=1 Then 'RequestResponse TITLE "'COMMENT'" PROMPT "'TEXT'" GADGETS "_Attach|_Detach|_Erase|_OKAY|_CANCEL"'
  174.       Else 'RequestResponse TITLE "'COMMENT'" PROMPT "'TEXT'" GADGETS "_Attach|_Detach|_OKAY|_CANCEL"'
  175.       End
  176.    Else 'RequestResponse TITLE "'COMMENT'" PROMPT "'TEXT'" GADGETS "_Erase|_Rotate|_OKAY|_CANCEL"'
  177.      
  178.    ARC=RC
  179.    If ARC=0 Then Exit
  180.  
  181.    If (ARC=1) & (COUNT<15)  Then Do
  182.       arc=-1
  183.       'RequestResponse TITLE "Attach Method" PROMPT "You may select areas via'LF'a message containing an area'LF'listing or manually." GADGETS "Manual|_Message"'
  184.       If RC=0 Then Do
  185.          'SaveAscii TO "'TEMP2'" OVERWRITE NOHEADER NOTEARLINE NOORIGIN NOKLUDGES NOREFLOW'
  186.          'RequestNotify TITLE "Attach" PROMPT "Select areas by placing'LF'a 'CHARNAME' before the name'LF'of the area."'
  187.          'WB2Front'
  188.          Address Command '"'EDITOR'"' '"'TEMP2'"'
  189.          'Spot2Front'
  190.          If Open('AtFile',TEMP2,'r') Then Do
  191.             Do While ~Eof('AtFile') & (COUNT<14)
  192.                LINE=ReadLn('AtFile')
  193.                P=Pos(CHAR,LINE)                                       
  194.                If P>0 Then Do
  195.                   LINE=Right(LINE,Length(LINE)-P)
  196.                   COUNT=COUNT+1
  197.                   ENTRY.COUNT='+' || Word(LINE,1)
  198.                End
  199.             End
  200.             Call Close('AtFile')
  201.          End
  202.          Else Do
  203.             'RequestNotify PROMPT "Could not open file!"'
  204.          End
  205.       End
  206.       Else Do Forever
  207.          If COUNT>14 Then Break
  208.          'RequestString TITLE "Attach" PROMPT "Enter area to attach to.'LF'Select CANCEL for menu."'
  209.          If RC>0 Then Break
  210.  
  211.          ATTATCH=Result
  212.          If Length(ATTATCH)=0 Then Break
  213.  
  214.          COUNT=COUNT+1
  215.          ENTRY.COUNT='+' || Upper(ATTATCH)
  216.       End
  217.    End
  218.  
  219.    If (ARC=2) & (COUNT<15) Then Do Forever
  220.       arc=-1
  221.       If COUNT>14 Then break
  222.       'RequestArea TITLE "Detach" ALL'
  223.       DETATCH=Result
  224.       If RC>0 Then Break
  225.       If Length(DETATCH)=0 Then Break
  226.  
  227.       COUNT=COUNT+1
  228.       ENTRY.COUNT='-' || Upper(DETATCH)
  229.       If ANNOUNCE='Announce' Then Do
  230.          If Exists(DETACH_TEMP) Then Do
  231.             'GotoArea NAME "'DETATCH'"'
  232.             'Write TO "All" SUBJECT "'DETACH_SUBJECT'" 'DONOTREMOVE' FILE "'DETACH_TEMP'" NOEDIT NOGUI'
  233.             'GotoArea NAME "'REAL_NAME'"'
  234.          End
  235.       End
  236.       If COUNT>14 Then Break
  237.    End
  238.  
  239.    If ((ARC=3) & (COUNT>0) & (COUNT<15)) | ((ARC=1) & (COUNT>14)) Then Do
  240.      arc=-1
  241.      If COUNT=0 Then Do
  242.        ARC=4
  243.      End
  244.      Else COUNT=COUNT-1
  245.    End
  246.  
  247.    If ((ARC=4) & (COUNT>1) & (COUNT<15)) | (ARC=2) & (COUNT>14) Then Do
  248.      arc=-1
  249.      Do C=(COUNT+1) To 1 By -1
  250.        D=C-1
  251.        ENTRY.C=ENTRY.D
  252.      End
  253.      D=COUNT+1
  254.      ENTRY.1=ENTRY.D
  255.    End
  256.  
  257.    If ((ARC=3) & ((COUNT=0) | (COUNT>14))) | ((ARC=4) & (COUNT=1)) | ((ARC=5) & (COUNT>1) & (COUNT<15)) Then Do
  258.       arc=-1
  259.       If COUNT>0 Then Do c=1 TO COUNT
  260.          Call WriteLn('File',ENTRY.c)
  261.       End
  262.       Call WriteLn('File','--- AFM')
  263.       Call Close('File')
  264.  
  265.       'RequestResponse TITLE "Arealist etc." PROMPT "Request Arealist?" GADGETS "_Yes|_Other|_No"'
  266.       If RC=1 Then PASS=PASS || ' -L'
  267.       If RC=2 Then Do
  268.          TEMPPASS=PASS
  269.          Do Forever
  270.             'RequestString TITLE "Other options" PROMPT "Enter options eg. -L -H" DEFAULT "'PASS'"'
  271.             If RC>0 Then Exit
  272.             PASS=Result
  273.             Break
  274.             End
  275.          End
  276.       'Write TO "'AREAFIX'" TOADDR "'ADDRESS'" SUBJECT "'PASS'" FILE "'TEMP'" REFLOW=OFF NOSIG NOEDIT NOGUI'
  277.       'LastMessage'
  278.       Exit
  279.       End
  280.  
  281.    End
  282.