/* MapKey
Programmation d'une séquence de touches
Version 1.00 (6 juillet 1999)
$VER: MapKey.Amitex 1.00 (® R.Florac, 6 juillet 1999) */

options results     /* indispensable pour récupérer le résultat des macros */

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

keys=getclip(key_sequence)
if key~="" then keys=doublage_guillemets(keys)
'INIT(KEY_SEQ,KEY_MACRO):KEY_SEQ=ASKTEXT("Séquence de touches"+CHR(10)+"à programmer ?","'keys'")'
key=result
if key~="" then do
    setclip(key_sequence,key)
    'KEY_MACRO=ASKTEXT("Macro à associer à "+KEY_SEQ,READMAP(KEY_SEQ))'
    if result~="" then 'MAP(KEY_SEQ,KEY_MACRO)'
end

exit

doublage_guillemets: procedure
    parse arg chaine
    t=''
    do i=1 to length(chaine)
	c = substr(chaine,i,1)
	if c='"' then c=c||'"'
	t=t||c
    end
    return t

/* Traitement des erreurs, interruption du programme */
syntax:
erreur=RC
'MESSAGE("Erreur de syntaxe"+CHR(10)+"en ligne 'SIGL'"+CHR(10)+"'errortext(erreur)'")'
exit

error:
'MESSAGE("Erreur en ligne 'SIGL'")'
exit
