/*
  AREXX script zur Beendigung des TeXmaticTNE Prozeßes.
 

  Aufruf durch CEd bei Betätigung der diesem Script entsprechenden
  Funktionstaste (default: f3).

  Siehe auch TeX:config/CED_ARexxCommands

  15.04.94 Thomas Neidhardt
*/


/*
 Private Umgebung aus Rexx-Clip lesen (bitte dort ablegen):
*/

OPTIONS RESULTS

HOST = address()

CALL GetENVclip

CALL DateiResults


IF (SHOW('P',CEDport)) THEN
  ADDRESS VALUE CEDport
ELSE
  ADDRESS VALUE HOST


okay2 " ... TeX beenden ?  "  /* in CED und ShowDVI verwendbar */
 IF (~RESULT) THEN
  DO
   if (HOST ~= CEDport) then
    DO

      EXIT 0
    END
   EXIT 0
  END
 ELSE   /* beenden */
  DO

   /* alle TeX-Docks schließen */

   ADDRESS COMMAND
     'run' '>NIL:' 'execute' 'T:CloseCEDdock.exe'
     'wait' "1 secs"
     'run' '>NIL:' 'execute' 'T:CloseSDVIdock.exe'
     'wait' "1 secs"

   IF (SHOW('P', StartPort)) THEN
    DO
     ADDRESS VALUE StartPort
      'quit'
     ClosePort(StartPort)
    END

   IF (SHOW('P', CEDport)) THEN
    DO
     CALL Std_CED_ENV   /* normale Ced Umgebung aus s:cedenv ... */

     ADDRESS VALUE CEDport
      "Jump to file" ""loadeddir""loadedfile".tex"
      IF (RESULT) THEN     /* sonst wahrsch. TeX-fremder Text im CED */
       DO
        ADDRESS VALUE CEDport
         'Quit'
       END
      ELSE
       DO
        ADDRESS VALUE CEDport
         Status 21
         IF (UPPER(RIGHT(RESULT,4)) = ".TEX") THEN
          tex=1
         Status 17
         Zeilen=RESULT
         Status 18
         Aenderungen=RESULT
         IF (tex=1 | (Zeilen = 0 & Aenderungen = 0)) THEN
           'Quit'
       END
    END

   IF (SHOW('P', sDVIport)) THEN
    DO
     ADDRESS VALUE sDVIport
      'exit'
    END

    CALL cleanupDOSvars
    CALL cleanupClip
  END

ADDRESS COMMAND
 ''comDIR'ScreenToFront >NIL: Workbench 9'


drop StartPort CEDport sDVIport comDIR Texts console TeXbin TeXcnfDIR Virtex cedDIR Format

EXIT 0

/*---------------------------------------------------------------------------
*/

Std_CED_ENV:
 ADDRESS VALUE CEDport
  "Clear definitions"
  "Load definitions" "s:CEDmacros"
  "Load Dos/ARexx commands" "s:RexxCommands"
  Specify "s:ceddefaults"
 RETURN 1


GetENVclip:
 StartPort=getclip("TeXStartPort")
 CEDport=getclip("TeXRexxCEDport")
 sDVIport=getclip("TeXRexxShowDVIport")
 comDIR=getclip("TeXcomDIR")
 Texts=getclip("TeXTextDIR")
 console=getclip("TeXmsgconsole")
 TeXbin=getclip("TeXbinDIR")
 TeXcnfDIR=getclip("TeXconfigDIR")
 Virtex=getclip("TeXvirtex")
 cedDIR=getclip("TeXcedDIR")
 ToggleCEdDock=getclip("ToggleCEdDock")
 ToggleSDVIdock=getclip("ToggleSDVIdock")
 CEDPubScr=getclip("CEDPubScr")
 SDVIPubScr=getclip("SDVIPubScr")
 PrinterHi=getclip("PrinterHi")
 PrinterLo=getclip("PrinterLo")
 Tags=getclip("Tags")
 EZtags=getclip("EZtags")
 GLtags=getclip("GLtags")
 GStags=getclip("GStags")

 Format=mygetenv(TEXFORMAT)
 IF "GIVES" = Format THEN Format='glplain'

 ADDRESS COMMAND
  ''comDIR'set texformat='Format''

 RETURN 1


cleanupClip:
 ADDRESS VALUE HOST
 setclip('TeXStartPort')
 setclip('TeXRexxCEDport')
 setclip('TeXRexxShowDVIport')
 setclip('TeXcomDIR')
 setclip('TeXTextDIR')
 setclip('TeXmsgconsole')
 setclip('TeXbinDIR')
 setclip('TeXconfigDIR')
 setclip('TeXcedDIR')
 setclip('TeXvirtex')
 setclip('ToggleCEdDock')
 setclip('ToggleSDVIDock')
 setclip('CEDPubScr')
 setclip('SDVIPubScr')
 setclip('PrinterHi')
 setclip('PrinterLo')
 setclip('Tags')
 setclip('EZtags')
 setclip('GLtags')
 setclip('GStags')
 RETURN 1


cleanupDOSvars:
 /* weitere DOS-spezifische Abmeldungen */

 /* Müll von StartDVIprint.rexx usw. aufräumen */

 ADDRESS COMMAND
 'delete >NIL: T:TestCEDdock.exe quiet'
 'delete >NIL: T:TestSDVIdock.exe quiet'
 'delete >NIL: T:CloseCEDdock.exe quiet'
 'delete >NIL: T:CloseSDVIdock.exe quiet'
 'delete >NIL: T:ShellDVIprint quiet'
 'delete >NIL: T:TeXTextFile quiet'
 'delete >NIL: T:Compile_TeX_Script quiet'
 'delete >NIL: T:LoadIntoMultiFax.rexx quiet'
 'delete >NIL: T:#?fax-exe quiet'
 'delete >NIL: T:#?.fax quiet'
 'delete >NIL: T:#?.adr#? quiet'

 /* abmelden der Environmentvariablen ...

   für VirTeX & Co. (Wübbeling) */

   ADDRESS COMMAND
   ''comDIR'set TEXFORMATS'
   ''comDIR'set TEXMACROS'
   ''comDIR'set TEXFONTS'
   ''comDIR'set TEXINPUTS'


 /* für Radical Eye TeX */

   ADDRESS COMMAND
   ''comDIR'set texmacros'
   ''comDIR'set texinputs'
   ''comDIR'set texpacked'
   ''comDIR'set texformat'

 /* entfernen der restlichen ENV: Bestandteile */

   ADDRESS COMMAND
   'delete >NIL: ENV:TEXCONFIG ENV:TEXFORMATS ENV:TEXINPUTS ENV:TEXMACROS ENV:TEXPOOL quiet'

 RETURN 1


mygetenv: PROCEDURE	/* when will ARexx supply GetEnv/SetEnv ? */
   PARSE ARG name

   IF open(TEMPFILE,"ENV:"||name,'r') THEN
    DO
     gives = readln(TEMPFILE)
     CALL close TEMPFILE
	END
   ELSE
     gives = "GIVES"

   RETURN gives


DateiResults:
 if show('P', sDVIport) then
  DO
    ADDRESS VALUE sDVIport
     getfile
      loadedfile = RESULT
     getdir
      loadeddir = RESULT
     getpage
      page = RESULT

    RETURN 1
  END

 ADDRESS VALUE CEDport

  Status 19
  FullPath=RESULT

  sfxPath=LASTPOS('.',FullPath)
  IF (sfxPath>1) THEN
   DO
    FullPathTeX=LEFT(FullPath,sfxPath-1)".tex"
    FullPathDVI=LEFT(FullPath,sfxPath-1)".dvi"
   END

  Status 20
  texdir=RESULT

  Status 21
  Datei=RESULT
  DateiTeX=Datei

  sfxDatei=LASTPOS('.',Datei)
  IF (sfxDatei>1) THEN
   DateiDVI=LEFT(Datei,sfxDatei-1)

  loadedfile = DateiDVI
  loadeddir = texdir'/'

 RETURN 1


GetENVclip:
 StartPort=getclip("TeXStartPort")
 CEDport=getclip("TeXRexxCEDport")
 sDVIport=getclip("TeXRexxShowDVIport")
 comDIR=getclip("TeXcomDIR")
 Texts=getclip("TeXTextDIR")
 console=getclip("TeXmsgconsole")
 TeXbin=getclip("TeXbinDIR")
 TeXcnfDIR=getclip("TeXconfigDIR")
 Virtex=getclip("TeXvirtex")
 cedDIR=getclip("TeXcedDIR")
 ToggleCEdDock=getclip("ToggleCEdDock")
 ToggleSDVIdock=getclip("ToggleSDVIdock")
 CEDPubScr=getclip("CEDPubScr")
 SDVIPubScr=getclip("SDVIPubScr")
 PrinterHi=getclip("PrinterHi")
 PrinterLo=getclip("PrinterLo")
 Tags=getclip("Tags")
 EZtags=getclip("EZtags")
 GLtags=getclip("GLtags")
 GStags=getclip("GStags")

 Format=mygetenv(TEXFORMAT)
 IF "GIVES" = Format THEN Format='glplain'

 ADDRESS COMMAND
  ''comDIR'set texformat='Format''

 RETURN 1
