home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / applications / wp / write.lha / WRITE / REXX / REXX.lha / OpenWrite.rexx < prev    next >
Encoding:
OS/2 REXX Batch file  |  1994-10-15  |  2.7 KB  |  118 lines

  1. /*
  2. * WRITE V3.000 © 1991-1993 by Tim Teulings startup script
  3. * for ideal use set sleep mode in the configuration file
  4. * This script was done by MGR, Asgrad -- Lars Hanke
  5. * no copyrights claimed
  6. *
  7. * $VER Open.wrx 1.2 (15.10.94) hartmut Goebel
  8. *
  9. * Template = "FILE,CONFIG,ScreenToFront=SCREEN/S,Background=RUN"
  10. *
  11. *  FILE           - name of file to be loaded into new ed
  12. *  CONFIG         - config to be used when opening ed
  13. *                   (defaults to "").
  14. *  ScreenToFront  - bring to front when starting and to the back
  15. *                   again when quitting. Usefull for starting WRITE
  16. *                   from other screens.
  17. *  Background     - return to shell immediately.
  18. *
  19. * History:
  20. *  1.2 use RexxDosSupport.library, added CONFIG option (hartmut Goebel)
  21. *  1.1 added SCREEN option (Tim Teulings)
  22. *  1.0 initial version
  23. */
  24.  
  25. ArgsTemplate = "FILE,CONFIG,ScreenToFront/S,Background=RUN/"
  26.  
  27. /* easy localization :-) */
  28. Write.NotFound = "Kann WRITE nicht finden!"
  29. Write.NoMorePorts = "REXX-SKript 'open.wrx':\nBekomme keinen ARexx-Port!"
  30. /* english texts
  31. Write.NotFound = "Can't find WRITE!"
  32. Write.NoMorePorts = "REXX-script 'open.wrx':\nSorry, no more private ports!"
  33. */
  34.  
  35. call addlib('rexxdossupport.library', 0, -30, 2)
  36.  
  37. CONFIG=""; FILE=""; ScreenToFront = 0; Background = 0;
  38.  
  39. parse arg arguments
  40.  
  41. if strip(arguments) = '?' then do
  42.   address  command 'echo noline "' ArgsTemplate ': "'
  43.   pull arguments
  44. end; else nop
  45. if ~ ReadArgs(arguments,ArgsTemplate) then do
  46.   say Fault(RC,ProgramName)
  47.   exit 10
  48. end; else nop
  49.  
  50. drop arguments
  51.  
  52. call StartWrite()
  53.  
  54. FileName = file; drop file;
  55. IF length(FileName)~=0 THEN DO
  56.   IF pos(':',FileName)=0 THEN DO
  57.     DirName=pragma('D')
  58.     IF right(DirName,1)~=':' THEN
  59.       DirName=DirName||'/'
  60.     FileName=DirName||FileName
  61.   END
  62. END
  63.  
  64. ADDRESS "WRITE"
  65.  
  66. OPTIONS RESULTS
  67.  
  68. 'NEWED "' || CONFIG || '"'  /* open new Edit using config */
  69. ID = RESULT
  70. OPENPORT ID
  71. Port = RESULT
  72. IF Port = "" THEN DO
  73.   "MESSAGEOK (" || Write.NoMorePorts ||")"
  74.   EXIT 20
  75. END
  76.  
  77. INTERPRET ADDRESS Port
  78.  
  79. "WINDOW 0 0 0 0"
  80.  
  81. "SETVAR (_Path) ("||FileName||")"
  82. IF length(FileName)~=0 THEN DO
  83.   IF exists(FileName) then
  84.     "OPEN ("||FileName||")"
  85.   ELSE
  86.     "SETVAR (_FileName) ("||FileName||")"
  87. END
  88.  
  89. IF (ScreenToFront = TRUE) & (Background = FALSE) THEN DO
  90.   MODIFYSCREEN 0
  91. END
  92.  
  93. IF (Background = FALSE) THEN DO
  94.   WAITPORT ID
  95. END
  96.  
  97. IF (ScreenToFront = TRUE) & (Background = FALSE) THEN DO
  98.   IF show('P',"WRITE") THEN DO
  99.     ADDRESS "WRITE"
  100.     MODIFYSCREEN 1
  101.   END
  102. END
  103.  
  104. EXIT
  105.  
  106. /* ---- */
  107.  
  108. StartWrite: PROCEDURE expose Write.NotFound
  109. IF ~show('P',"WRITE") THEN DO
  110.   WRITEPATH = GetVar("WRITE")
  111.   IF RC ~= 0 THEN DO
  112.     say Write.NotFound
  113.     EXIT 20;
  114.   END;
  115.   ADDRESS COMMAND "run >NIL: <NIL:" WRITEPATH
  116.   ADDRESS COMMAND "WaitForPort <NIL: >NIL: WRITE" /* should be in command search path */
  117. END
  118.