home *** CD-ROM | disk | FTP | other *** search
/ Gold Fish 2 / goldfish_vol2_cd1.bin / files / comm / fido / spot / rexx / areafixman / areafixman.spot < prev   
Text File  |  1994-07-24  |  8KB  |  268 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.0
  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>0 Then 'RequestResponse TITLE "'COMMENT'" PROMPT "'TEXT'" GADGETS "_Attach|_Detach|_Erase|_OKAY|_CANCEL"'
  173.       Else 'RequestResponse TITLE "'COMMENT'" PROMPT "'TEXT'" GADGETS "_Attach|_Detach|_OKAY|_CANCEL"'
  174.       End
  175.    Else 'RequestResponse TITLE "'COMMENT'" PROMPT "'TEXT'" GADGETS "_Erase|_OKAY|_CANCEL"'
  176.      
  177.    If RC=0 Then Exit
  178.  
  179.    If RC=1 Then Do 
  180.       'RequestResponse TITLE "Attach Method" PROMPT "You may select areas via'LF'a message containing an area'LF'listing or manually." GADGETS "Manual|_Message"'
  181.       If RC=0 Then Do
  182.          'SaveAscii TO "'TEMP2'" OVERWRITE NOHEADER NOTEARLINE NOORIGIN NOKLUDGES NOREFLOW'
  183.          'RequestNotify TITLE "Attach" PROMPT "Select areas by placing'LF'a 'CHARNAME' before the name'LF'of the area."'
  184.          'WB2Front'
  185.          Address Command '"'EDITOR'"' '"'TEMP2'"'
  186.          'Spot2Front'
  187.          If Open('AtFile',TEMP2,'r') Then Do
  188.             Do While ~Eof('AtFile') & (COUNT<14)
  189.                LINE=ReadLn('AtFile')
  190.                P=Pos(CHAR,LINE)                                       
  191.                If P>0 Then Do
  192.                   LINE=Right(LINE,Length(LINE)-P)
  193.                   COUNT=COUNT+1
  194.                   ENTRY.COUNT='+' || Word(LINE,1)
  195.                End
  196.             End
  197.             Call Close('AtFile')
  198.          End
  199.          Else Do
  200.             'RequestNotify PROMPT "Could not open file!"'
  201.          End
  202.       End
  203.       Else Do Forever
  204.          If COUNT>14 Then RC=3
  205.          If COUNT>14 Then Break
  206.          'RequestString TITLE "Attach" PROMPT "Enter area to attach to.'LF'Select CANCEL for menu."'
  207.          If RC>0 Then Break
  208.  
  209.          ATTATCH=Result
  210.          If Length(ATTATCH)=0 Then Break
  211.  
  212.          COUNT=COUNT+1
  213.          ENTRY.COUNT='+' || Upper(ATTATCH)
  214.          If COUNT=15 Then Break
  215.       End
  216.    End
  217.    If RC=2 Then Do Forever
  218.       If COUNT>14 Then RC=4
  219.       If COUNT>14 Then Break
  220.       'RequestArea TITLE "Detach" ALL'
  221.       DETATCH=Result
  222.       If RC>0 Then Break
  223.       If Length(DETATCH)=0 Then Break
  224.  
  225.       COUNT=COUNT+1
  226.       ENTRY.COUNT='-' || Upper(DETATCH)
  227.       If ANNOUNCE='Announce' Then Do
  228.          If Exists(DETACH_TEMP) Then Do
  229.             'GotoArea NAME "'DETATCH'"'
  230.             'Write TO "All" SUBJECT "'DETACH_SUBJECT'" 'DONOTREMOVE' FILE "'DETACH_TEMP'" NOEDIT NOGUI'
  231.             'GotoArea NAME "'REAL_NAME'"'
  232.          End
  233.       End
  234.       If COUNT=15 Then Break
  235.       End
  236.  
  237.    If RC=3 Then Do
  238.      If COUNT=0 Then Do
  239.         RC=4
  240.         End
  241.      Else COUNT=COUNT-1
  242.      End
  243.  
  244.    If RC=4 Then Do
  245.       If COUNT>0 Then Do c=1 TO COUNT
  246.          Call WriteLn('File',ENTRY.c)
  247.          End
  248.       Call WriteLn('File','--- AFM')
  249.       Call Close('File')
  250.  
  251.       'RequestResponse TITLE "Arealist etc." PROMPT "Request Arealist?" GADGETS "_Yes|_Other|_No"'
  252.       If RC=1 Then PASS=PASS || ' -L'
  253.       If RC=2 Then Do
  254.          TEMPPASS=PASS
  255.          Do Forever
  256.             'RequestString TITLE "Other options" PROMPT "Enter options eg. -L -H" DEFAULT "'PASS'"'
  257.             If RC>0 Then Exit
  258.             PASS=Result
  259.             Break
  260.             End
  261.          End
  262.       'Write TO "'AREAFIX'" TOADDR "'ADDRESS'" SUBJECT "'PASS'" FILE "'TEMP'" REFLOW=OFF NOSIG NOEDIT NOGUI'
  263.       'LastMessage'
  264.       Exit
  265.       End
  266.  
  267.    End
  268.