fonctions externes
cmde : appelle l'éditeur : la commande demande un nom de fichier, auquel sera associé le premier Buffer à l'entrée sous l'éditeur.
re-cmde ou le macro-caractère % : rappel de l'éditeur, après une interruption (commande ^X-s).
cmde-init : initialisation ; à appeler une première fois avant tout appel de l'éditeur.
fonctions de saisies
cmde-int : interprétation des commandes.
cmde-rsp : interprétation d'un caractère.
cmde-err : commande inexistante (bell).
cmde-tyi : saisie d'un caractère.
cmde-get : recherche de la fonction attachée au caractère.
cmde-call : appel de la fonction attachée au caractère.
initialisation
cmde-init-0 : variables globales
initialisation des variables globales :
cmde-beg | ancien début de page. |
cmde-end | ancienne fin de page. |
cmde-curdeb | ancien début de curseur. |
cmde-curfin | ancienne fin de curseur. |
flag-cmde-key | drapeau, vrai si en cours de définition de macro. |
flag-cmde-keydef | drapeau, vrai si la macro est définie. |
flag-cmde-T | drapeau, vrai si mode physique. |
flag-kill | drapeau, vrai si la dernière commande a touché au Kill Buffer. |
ynkinfo-lst | liste des liens du Kill Buffer. |
flag-jst | drapeau, vrai si mode justification. |
flag-rch | drapeau, vrai si mode recherche. |
cmde-rechbuf | dernier motif recherché. |
flag-cmde-S-T | drapeau, vrai si le dernier motif recherché contient des expressions régulières. |
flag-msg | drapeau : 0 : pas de message sur la ligne de contrôle, 1 : un message à détruire sur la ligne de contrôle, 2 : un message à laisser, le drapeau prend la valeur 1. |
flag-aff | drapeau, vrai si localement on affiche le curseur physique. |
grsp | liste des commandes qui composent la macro. |
cmde-fin | drapeau, vrai si fin de session. |
fonctions d'appel des commandes
Elles ont toutes un paramètre fonctionnel ; on les utilise pour grouper la mise à jour des variables globales.
cmde-DEPABS ‹cmde-fun› : déplacement absolu du curseur – la fenêtre est recalée sur le curseur.
cmde-DEPFEN ‹cmde-fun› : déplacement absolu de la fenêtre – le curseur est recalé sur la fenêtre.
cmde-DEPREL-nxt ‹cmde-fun› : déplacement relatif du curseur vers l'avant.
cmde-DEPREL-prd ‹cmde-fun› : déplacement relatif du curseur vers l'arrière.
cmde-CMDE ‹cmde-fun› : pas d'effet immédiat (^L, ^X, ESC, ...).
cmde-STAT ‹cmde-fun› : pas de déplacement.
cmde-ZONE ‹cmde-fun› : pas de déplacement des curseurs – déplacement dans les fenêtres, ...
cmde-MSG ‹cmde-fun› : envoi d'un message.
cmde-MODIF ‹cmde-fun› : modification.
cmde-LECT ‹cmde-fun› : lecture.
fonctions de mise à jour des variables globales
cmde-nxt : positionnement, dans un déplacement vers l'avant.
cmde-prd : positionnement, dans un déplacement vers l'arrière.
cmde-ind : positionnement, dans un déplacement dans un sens indéterminé.
cmde-app-ON : entrer en mode « ajout ».
cmde-app-OFF : sortir du mode « ajout ».
cmde-eob-ON : entrer dans l'état « fin de Buffer ».
cmde-eob-OFF : sortir de l'état « fin de Buffer ».
cmde-aff-ON : entrer dans l'état « afficher localement le curseur physique ».
cmde-aff-OFF : sortir de l'état « afficher localement le curseur physique ».
cmde-msg-ON : entrer dans l'état « un message apparaît sur le ligne de contrôle ».
cmde-msg-OFF : sortir de l'état « un message apparaît sur le ligne de contrôle ».
cmde-phy : aficher ou non le curseur physique.
cmde-mod-ON ‹flag-fun› : modifier l'attribut de modification du Buffer pour la valeur "vraie" – ‹flag-fun› indique s'il y a lieu d'afficher la forme visuelle de l'attribut.
cmde-kil-ON : entrer dans l'état « la dernière commande touche au Kill Buffer ».
cmde-kil-OFF : sortir de l'état « la dernière commande touche au Kill Buffer ».
exit-bell : fin de commande : la commande est refusée.
exit-Abort : fin de commande : la commande est abandonnée (^G).
Note : dans les deux cas on sort de la boucle ERREUR d'interprétation de la commande.
append-err : la commande est refusée parce qu'on est en mode « ajout ».
mark-err : la commande est refusée parce que la marque n'a pas été posée dans le Buffer.
fonctions auxiliaires
affiche-cur : afficher le curseur du Buffer courant.
affiche-ecr : afficher l'écran.
affiche-ban : afficher la barre d'information (bannière) de la fenêtre courante.
affiche-ban-part : idem, incomplètement, pour "faire patienter" l'utilisateur.
affiche-ban-init : idem, incomplètement, à l'ouverture d'une fenêtre.
affiche-nom-abs-mem : afficher le nom absolu du Buffer dans la barre d'information.
aff>ban : afficher les holophrastes (logique et physique) – fenêtre de Buffer.
bell : bell.
aff>phy : afficher le curseur physique.
eff>phy : effacer le curseur physique.
aff>scr : afficher la zone de déroulement (scrolling).
aff>msg-cursor : afficher le message "<cursor>" sur la ligne de contrôle.
eff>msg-cursor : identique, effacer.
eff>end-of-line : effacer la fin de ligne.
clear-scroll ‹y1› ‹y2› : effacer la zone de déroulement entre les lignes d'écran ‹y1› et ‹y2›.
clear-region ‹y1› ‹y2› : effacer la région d'écran entre les lignes d'écran ‹y1› et ‹y2›.
cst-1 : numéro de ligne d'écran du début de fenêtre (défaut=1).
cst-20 : idem, de la fin de fenêtre (défaut=22).
cst-21 : idem, de la barre d'information de la fenêtre (défaut=23).
cst-22 : idem, de la ligne de contrôle (défaut=24).
cst-16 : nombre de lignes d'écran déroulées par un saut de page (défaut=18).
cst-8 : idem, par un demi-saut de page (défaut=10).
cst-60 : abscisse de "<cursor>" sur la ligne de contrôle (défaut=72).
min-80 ‹x› : taille de la ligne physique d'écran – minimum de ‹x› et d'une constante (défaut=79).
test-80 ‹x› : test, vrai si ‹x› dépasse la constante de taille de la ligne physique d'écran (défaut=79).
test-min-80 ‹x› : idem, si ‹x› égale la constante (défaut=79).
max-80 ‹x› : taille de la ligne logique (défaut=200).
test-max-80 ‹x› : test, vrai si ‹x› dépasse la constante de taille de la ligne logique (défaut=180).
liste-separ ‹car› ... : liste des caractères séparateurs de mots, en plus des caractères « », «"», «'», «(», «)», «;».
fonctions de dialogue
print-msg ‹msg› ... : afficher la liste de messages ‹msg› sur la ligne de contrôle.
print-bell ‹msg› ... : idem, et sonner.
print-prompt ‹msg› ... : idem, et appeler get-prompt.
print-ack ‹msg› ... : idem, et demander un acquittement "y".
print-msg-mem ‹x› ‹stg› : afficher la liste de codes ASCII ‹stg› à partir de la position ‹x› sur la ligne de contrôle – il s'agit des noms absolus de Buffer : si le nom est trop long, il est élidé.
print-msg-write ‹msg› ‹stg› : afficher le message ‹msg› et le nom de fichier ‹stg› – le nom de fichier est précédé du chemin absolu d'accès au fichier sous UNIX.
eff>msg : effacement du message de la ligne de contrôle ; si l'on est placé dans un mode, il se réaffiche l'indicateur de contrôle correspondant – sélection, « ajout », justification, recherche.
get-prompt : saisir un paramètre sur la ligne de contrôle ; caractères spéciaux :
^G abandon,
^M acquittement – une entrée vide est un cas d'erreur,
^H ou DEL détruire le caractère précédent,
^U détruire les caractères précédents, jusqu'au premier caractère "/" rencontré.
get-prompt-mem : idem, pour la saisie d'un nom de Buffer – on a encore les caractères spéciaux :
^I compléter jusqu'au premier Buffer-Edit,
" " acquittement.
print-sequence ‹lst-msg› : afficher et saisir une liste de messages et de réponses pour les commandes assistées ; syntaxe des messages :
Stg | saisir une chaîne de caractères. | ||||||
Buf | saisir un nom de Buffer. | ||||||
Ok | saisir un acquittement (caractère "y"). | ||||||
‹stg› | afficher la chaîne de caractères ‹stg›. | ||||||
(‹stg› ...) | afficher les chaînes de caractères ‹stg›. | ||||||
(selectq (‹stg1›...‹stgN›) (‹car1›...‹carN›) [‹stg›]) | |||||||
saisir un choix : ‹stg1›...‹stgN› sont des messages, ‹car1›...‹carN› sont des codes ASCII valides, ‹stg› est un message optionnel.
Par exemple : paramètre suite des affichages :
| |||||||
MORE ‹instr› ... : évaluer les instructions ‹instr› avec des affichages du type "more".
fic-MORE ‹nom-fic› : afficher le contenu du fichier ‹nom-fic› par un affichage du type "more".
more-print ‹stg› : afficher la chaîne de caractères ‹stg› par un affichage du type "more" ; si les lignes de la fenêtre sont toutes remplies, on attend un acquittement de l'utilisateur pour poursuivre l'affichage :
^M afficher la ligne suivante,
" " (blanc) afficher la page suivante,
DEL quitter.