/* Edition d'un script à l'aide de l'éditeur de texte AmiTex */
/* Version 1.00: 16 juillet 1997, Chez Corbin */
/* Version 1.01: 9 novembre 2000 (localisation anglais/français) */
/* $VER: EditScript.AmiCAD 1.01 (© R.Florac, 9/11/2000) */
/* Chargement automatique d'un script dans AmiTex depuis AmiCAD */
/* L'appel se fait en sélectionnant l'un des onze menus Macros/ARexx
 * et en enfonçant en même temps la touche CONTROL (Ctrl).
 *
 * La ligne 20 doit être modifiée pour être conforme à votre système */

/* This script is called for loading a script file in a text editor
 * while working with AmiCAD.
 * Push the CONTROL key while selecting an ARexx menu with AmiCAD
 * to call it.
 * This script is for my text editor Amitex, adapt it
 * to any other text editor to suit to your needs. */

signal on error 		    /* pour l'interception des erreurs */
signal on syntax

options results

parse arg script		    /* récupération du nom du script */

'LANGUAGE'
if result="français.language" then fr=1
else fr=0

if script = "" then do
    if fr=1 then 'REQFILE("Fichier script à éditer", "Travail:AmiCAD/ARexx", "")'
    else 'REQFILE("Script file to edit", "Work:AmiCAD/ARexx", "")'
    script = result
    if script="" then exit
end

port = ADDRESS()                    /* lecture du nom du port AmiCAD */

address command
if ~show(p, "AMITEX") then do       /* à améliorer... (AMITEX0, AMITEX1...) */
    f=0 			    /* il n'y avait pas de fenêtre ouverte */
    'run > nil:' "SYS:tools/Amitex/AmiTex"  /* chargement de l'éditeur */
    waitforport "AMITEX"
end
else f=1			    /* il y a déjà une fenêtre active */

ADDRESS(AMITEX)
cr='0a'x

if f=1 then 'NEW("")'               /* demande l'ouverture d'une autre fenêtre */
if ~exists(script) then script=script||".AmiCAD"

'LOAD("'script'")'                  /* demande le chargement du script */

exit

/* Traitement des erreurs, interruption du programme */
syntax:
address (port)
erreur=RC
if fr=1 then 'MESSAGE("Script EditScript.AmiCAD :"+CHR(10)+"Erreur de syntaxe"+CHR(10)+"en ligne 'SIGL'"+CHR(10)+"'errortext(erreur)'")'
else 'MESSAGE("EditScript.AmiCAD Script:"+CHR(10)+"Syntax error"+CHR(10)+"in line 'SIGL'"+CHR(10)+"'errortext(erreur)'")'
exit

error:
address (port)
if fr=1 then 'MESSAGE("Script EditScript.AmiCAD :"+CHR(10)+"Erreur en ligne 'SIGL'")'
else 'MESSAGE("EditScript.AmiCAD Script:"+CHR(10)+"Error in line 'SIGL'")'
exit
