home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 2 / FFMCD02.bin / new / comm / fido / spot / rexx / areafixman.spot < prev    next >
Text File  |  1993-12-21  |  6KB  |  207 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 v2.6 (19.9.93)
  8.  *
  9.  */
  10.  
  11. PREF = 'AreaFixMan.prefs'
  12. FILE = 'ENV:' || PREF
  13. FILESAVE = 'ENVARC:' || PREF
  14. TEMP = 'T:Spot.AreaFixMan.temp'
  15. LF = '0d'x
  16.  
  17. COUNT=0
  18.  
  19. Address SPOT
  20. Options Results
  21.  
  22. 'IsIconified'
  23. If RC=0 Then 'UnIconify'
  24.  
  25. 'IsAreaList'
  26. If RC=0 Then Do
  27.    'RequestNotify PROMPT "Do not use from Area List"'
  28.    Exit
  29. End
  30.  
  31. 'GetAreaName'
  32. REAL_NAME=Result
  33.  
  34. If ~(Left(REAL_NAME,3)='NET') Then Do
  35.    Do Forever
  36.       'RequestResponse PROMPT "This is not a matrix area.'LF'Do you wish to proceed?" GADGETS "_Continue|_Help|_Abort"'
  37.       If RC=0 Then Exit
  38.       If RC=1 Then Leave
  39.       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."'
  40.    End
  41. End
  42.  
  43. If Open('Prefs',FILE,'r') Then Do
  44.    FORMAT=ReadLn('Prefs')
  45.    If ~(FORMAT='FORMAT 2.6') Then Do
  46.       'RequestNotify TITLE "Sorry!" PROMPT "Prefs file is not compatible with this version of AFM.'LF'Delete the prefs files and set up again...Sorry!"'
  47.       'RequestResponse TITLE "Delete?" PROMPT "Auto delete prefs files?" GADGETS "Delete|Cancel"'
  48.       If RC=1 Then Do
  49.          Call Close('Prefs')
  50.          Address Command
  51.          Delete "ENV:AreaFixMan.prefs"
  52.          Delete "ENVARC:AreaFixMan.prefs"
  53.          Address SPOT
  54.          'RequestNotify PROMPT "Call AFM again now."'
  55.          Exit
  56.          End
  57.       If RC=0 Then Exit
  58.       End
  59.    Do Until Eof('Prefs')
  60.       AREA=Strip(ReadLn('Prefs'),'L')
  61.       ADDRESS=Strip(ReadLn('Prefs'),'L')
  62.       PASS=Strip(ReadLn('Prefs'),'L')
  63.       AREAFIX=Strip(ReadLn('Prefs'),'L')
  64.  
  65.       COMMENT=Strip(ReadLn('Prefs'),'L')
  66.       If Length(COMMENT)=0 Then Do
  67.          COMMENT='Options'
  68.          End
  69.       Else Do
  70.          /* Extra prefs will be inserted here as they are though of! */
  71.          DUMMY=ReadLn('Prefs')
  72.       End
  73.  
  74.       If AREA=REAL_NAME Then Do
  75.          Call Close('Prefs')
  76.          Signal DOAF
  77.          End
  78.       End
  79.    Call Close('Prefs')
  80.    If ~Open('Prefs',FILE,'a') Then Do
  81.       'RequestNotify PROMPT "Cannot open prefs file: 'FILE'."'
  82.       Exit
  83.       End
  84.    End
  85. Else If ~Open('Prefs',FILE,'w') Then Do
  86.       'RequestNotify PROMPT "Cannot create prefs file: 'FILE'."'
  87.       Exit
  88.       End
  89.    Else 'RequestNotify PROMPT "New prefs file has been created"'
  90.  
  91. 'RequestString TITLE "Boss" PROMPT "Enter the address of the boss'LF'for this area.  i.e 2:253/516"'
  92. If RC>0 Then Exit
  93. ADDRESS=Result
  94.  
  95. 'RequestString TITLE "Password" PROMPT "Enter your password for this boss."'
  96. If RC>0 Then Exit
  97. PASS=Result
  98.  
  99. 'RequestString TITLE "AreaFix" PROMPT "Enter name of the AreaFix handler'LF'for this boss or leave unaltered." DEFAULT "Areafix"'
  100. If RC>0 Then Exit
  101. AREAFIX=Result
  102.  
  103. 'RequestString TITLE "Comment" PROMPT "Enter optional comment or reminder for this area"'
  104. COMMENT=Result
  105. If Length(COMMENT)=0 Then COMMENT="Options"
  106.  
  107. /* Further prefs will be added here as they are thought of */
  108.  
  109. 'RequestResponse PROMPT "You have changed the prefs." GADGETS "_Save|_Use|_Cancel"'
  110.  
  111.  
  112. If ~(RC=0) Then Do
  113.    Call WriteLn('Prefs','FORMAT 2.6')
  114.    Call WriteLn('Prefs',REAL_NAME)
  115.    Call WriteLn('Prefs',ADDRESS)
  116.    Call WriteLn('Prefs',PASS)
  117.    Call WriteLn('Prefs',AREAFIX)
  118.    Call WriteLn('Prefs',COMMENT)
  119.    Call WriteLn('Prefs','')
  120.    Call Close('Prefs')
  121.    If RC=1 Then Address Command 'Copy 'FILE FILESAVE
  122.    End
  123.  
  124. DOAF:
  125.  
  126. Address Command 'Delete >NIL: "Ram:T/Spot.AreaFixMan.temp"'
  127.  
  128. If ~Open('File','RAM:T/Spot.AreaFixMan.temp','w') Then Do
  129.    'RequestNotify PROMPT "Cannot open temporary file!"'
  130.    Exit
  131. End
  132.  
  133. Do Forever
  134.  
  135.    TEXT=''
  136.    If COUNT>0 Then Do c=1 To COUNT
  137.       TEXT=TEXT || ENTRY.c || LF
  138.       End
  139.  
  140.    If COUNT<15 Then Do
  141.       If COUNT>0 Then 'RequestResponse TITLE "'COMMENT'" PROMPT "'TEXT'" GADGETS "_Attach|_Detach|_Erase|_OKAY|_CANCEL"'
  142.       Else 'RequestResponse TITLE "'COMMENT'" PROMPT "'TEXT'" GADGETS "_Attach|_Detach|_OKAY|_CANCEL"'
  143.       End
  144.    Else 'RequestResponse TITLE "'COMMENT'" PROMPT "'TEXT'" GADGETS "_Erase|_OKAY|_CANCEL"'
  145.      
  146.    If RC=0 Then Exit
  147.  
  148.    If RC=1 Then Do Forever
  149.       If COUNT>14 Then RC=3
  150.       If COUNT>14 Then Break
  151.       'RequestString TITLE "Attach" PROMPT "Enter area to attach to.'LF'Select CANCEL for menu."'
  152.       If RC>0 Then Break
  153.  
  154.       ATTATCH=Result
  155.       If Length(ATTATCH)=0 Then Break
  156.  
  157.       COUNT=COUNT+1
  158.       ENTRY.COUNT='+' || Upper(ATTATCH)
  159.       If COUNT=15 Then Break
  160.       End
  161.  
  162.    If RC=2 Then Do Forever
  163.       If COUNT>14 Then RC=4
  164.       If COUNT>14 Then Break
  165.       'RequestString TITLE "Detach" PROMPT "Enter area to detach from.'LF'Select CANCEL for menu."'
  166.       If RC>0 Then Break
  167.  
  168.       DETATCH=Result
  169.       If Length(DETATCH)=0 Then Break
  170.  
  171.       COUNT=COUNT+1
  172.       ENTRY.COUNT='-' || Upper(DETATCH)
  173.       If COUNT=15 Then Break
  174.       End
  175.  
  176.    If RC=3 Then Do
  177.      If COUNT=0 Then Do
  178.         RC=4
  179.         End
  180.      Else COUNT=COUNT-1
  181.      End
  182.  
  183.    If RC=4 Then Do
  184.       If COUNT>0 Then Do c=1 TO COUNT
  185.          Call WriteLn('File',ENTRY.c)
  186.          End
  187.       Call WriteLn('File','--- AFM')
  188.       Call Close('File')
  189.  
  190.       'RequestResponse TITLE "Arealist etc." PROMPT "Request Arealist?" GADGETS "_Yes|_Other|_No"'
  191.       If RC=1 Then PASS=PASS || ' -L'
  192.       If RC=2 Then Do
  193.          TEMPPASS=PASS
  194.          Do Forever
  195.             'RequestString TITLE "Other options" PROMPT "Enter options eg. -L -H" DEFAULT "'PASS'"'
  196.             If RC>0 Then Exit
  197.             PASS=Result
  198.             Break
  199.             End
  200.          End
  201.       'Write TO "'AREAFIX'" TOADDR "'ADDRESS'" SUBJECT "'PASS'" FILE "'TEMP'" REFLOW=OFF NOSIG NOEDIT NOGUI'
  202.       'LastMessage'
  203.       Exit
  204.       End
  205.  
  206.    End
  207.