les fonctions externes : insertion
caract-ins ‹flag-fen› ‹flag-O› ‹deb› ‹num› ‹hol› ‹info-lst› ‹car› ... : insérer des caractères :
‹flag-fen› | drapeau, vrai si une fenêtre est ouverte sur le Buffer modifié. |
‹flag-O› | drapeau, vrai si l'insertion est réalisée devant le curseur (commande ^O). |
‹deb› | variable de début d'insertion. |
‹num› | nombre d'insertions répétées. |
‹hol› | holophraste d'insertion. |
‹info-lst› | liste des liens d'insertion sous l'holophraste considéré. |
‹car› ... | liste des caractères ‹car› ... à insérer. |
caract-ins-LF ‹flag-fen› ‹flag-O› ‹deb› ‹hol› ‹info-lst› : insérer un retour à la ligne :
pour les paramètres cf. caract-ins.
caract-ins-buf ‹flag-fen› ‹flag-O› ‹deb› ‹hol› ‹info-lst›
caract-ins-buf ‹cpyhol› ‹cpydebcol› ‹cpydeblgn› ‹cpyregx› ‹cpyfincol› : insérer une zone de Buffer :
pour les premiers paramètres cf. caract-ins.
‹cpyhol› | holophraste de la zone copiée. |
‹cpydebcol› | colonne de début de la zone copiée. |
‹cpydeblgn› | ligne de début de la zone copiée. |
‹cpydebx› | abscisse du premier caractère du Buffer local de la zone copiée. |
‹cpyfincol› | colonne de fin de la zone copiée. |
caract-ins-ynk ‹flag-O›
caract-ins-ynk ‹cpyhol› ‹cpydebcol› ‹cpydeblgn› ‹cpyregx› ‹cpyfincol› : insérer une zone de Buffer dans le Kill Buffer :
pour les paramètres cf. caract-ins-buf.
caract-ins-fic ‹flag-fen› ‹flag-O› ‹deb› ‹hol› ‹info-lst› ‹grep› : insérer un fichier :
pour les premiers paramètres cf. caract-ins.
‹grep› | variable tampon de la représentation du texte lu dans le fichier. |
les fonctions externes : suppression
caract-cursup ‹flag-fen› ‹deb› ‹fin› ‹hol› ‹info-lst› : détruire une zone du Buffer :
‹flag-fen› | drapeau, vrai si une fenêtre est ouverte sur le Buffer modifié. |
‹deb› | variable du début de la zone à détruire. |
‹fin› | variable de la fin de la zone à détruire. |
‹hol› | holophraste de la zone à détruire. |
‹info-lst› | liste des liens de la zone à détruire sous l'holophraste considéré. |
les fonctions externes : écriture sur fichier
caract-write ‹hol› ‹info-lst› ‹flag-app› : écrire le Buffer local d'holophraste ‹hol› de liste des liens ‹info-lst› :
‹flag-app› | drapeau, vrai si l'écriture est faite en ajout dans le fichier. |
caract-write-flat ‹hol› ‹info-lst› : écrire à plat le Buffer local d'holophraste ‹hol› de liste des liens ‹info-lst›.
les fonctions externes : détermination des zones
det>caract-sup ‹fin› ‹num› ‹hol› ‹info-lst› : retourne le début de la zone qui contient ‹num› curseurs et qui finit sur ‹fin›, sous l'holophraste ‹hol› dans la liste des liens ‹info-lst› (commande ^D par exemple).
det>caract-del ‹deb› ‹num› ‹hol› ‹info-lst› : identique à det>caract-sup, retourne la fin de la zone qui contient ‹num› curseurs et qui débute sur ‹deb› (commande ^H par exemple).
det>region ‹deb› : retourne sur les variables auxiliaires auxdeb et auxfin les début et fin de la région – la zone comprise entre le curseur courant et la marque.
les fonctions internes : insertion
Le graphe d'appel des fonctions est le suivant :

MODIF-ins : commande d'insertion.
caract-fin : mise à jour des variables globales du curseur, de la marque, ..., et affichage.
caract-aux-<ins> et -<fin> : modification sur les curseurs qui suivent le point d'insertion – sur une même vraie ligne.
caract-lgn-<ins> et -<fin> : insertion éventuelle de lignes.
aux>caract-ins et -fin : insertion de caractères.
aux>caract-ins-LF : insertion d'un caractère de retour à la ligne LF.
aux>caract-ins-buf : insertion d'un Buffer.
aux>caract-ins-fic : insertion d'un fichier.
les fonctions internes : suppression
Le graphe d'appel des fonctions est le suivant :

MODIF-sup : commande de suppression.
caract-fin : cf. précédemment.
caract-aux-<sup> et -<fin> : cf. caract-aux-<ins>.
caract-lgn-<sup> et -<fin> : suppression éventuelle de lignes.
aux>caract-sup et -fin : suppression de caractères, sur une même ligne.
les fonctions internes : boucles
Les fonctions de boucles traitent des vraies lignes du Buffer – cf. précédemment sur les commandes ESC-n et ESC-p.
boucle-ins ‹num› : paramètres implicites : auxcol auxlgn auxhol auxinfo-lst ;
| reçoit : | |
‹num› | nombre de caractères insérés. |
auxcol auxlgn | colonne et ligne de début d'insertion. |
auxhol auxinfo-lst | holophraste et liste des liens du point d'insertion. |
| renvoie : | |
auxcol auxlgn | colonne et ligne de début du dernier point modifié par l'insertion. |
auxhol auxinfo-lst | holophraste et liste des liens du dernier point modifié par l'insertion. |
boucle-del ‹num› : paramètres implicites : auxcol auxlgn auxhol auxinfo-lst ;
identique à boucle-ins, ‹num› étant le nombre de caractères supprimés.
boucle-sel ‹num› : paramètres implicites : auxcol auxlgn auxhol auxinfo-lst ;
identique à boucle-ins, concernant une sélection validée (commande ^X-^@) ; ‹num› est l'abscisse de début du curseur défini par la sélection – qu'on cherche à rendre maximal.
boucle-flt : paramètres implicites : auxcol auxlgn auxhol auxinfo-lst ;
identique à boucle-ins, concernant l'aplatissement d'un curseur (commande ^X- (blanc)).
les fonctions internes : boucles générales
boucle-COPY ‹hol›
boucle-COPY ‹origcol› ‹origlgn› ‹origregx› ‹origfincol›
boucle-COPY ‹destcol› ‹destlgn› ‹destx› ‹destregx› ‹destinfo-lst› :
| copie de l'origine : | |
‹hol› | holophraste. |
‹origcol› | colonne de début de la zone copiée. |
‹origlgn› | ligne de début de la zone copiée. |
‹origregx› | abscisse de début du Buffer local de la zone copiée. |
‹origfincol› | colonne de fin de la zone copiée. |
| vers le destinataire : | |
‹destcol› | colonne du point d'insertion. |
‹destlgn› | ligne du point d'insertion. |
‹destx› | abscisse du point d'insertion. |
‹destregx› | abscisse de début du Buffer local du point d'insertion. |
‹destinfo-lst› | liste des liens du point d'insertion. |
boucle-NEXT ‹num› ‹hol›
boucle-NEXT ‹origcol› ‹origlgn› ‹origregx› ‹origfincol› :
retourne le début de ligne de la ‹num›-ième vraie ligne suivant l'origine.
boucle-ERASE ‹num› ‹hol›
boucle-ERASE ‹origcol› ‹origlgn› ‹origregx› ‹origfincol› :
retourne le ‹num›-ième curseur suivant l'origine.
les fonctions auxiliaires : mise à jour des variables
caract-clean-log ‹num› : paramètre implicite : auxlgn ;
met à jour la variable du curseur logique log :
‹num› | nombre de lignes insérées. |
auxlgn | première vraie ligne non modifiée. |
caract-clean ‹num› ‹loc› : paramètre implicite : auxlgn ;
identique à caract-clean-log, sur une variable quelconque ‹loc›.
caract-aux ‹num› : détermine la nouvelle page et les nouveaux curseurs.
caract-fin ‹hol› : détermine si le curseur logique doit être considéré comme étant en fin de ligne.
caract-curfin : retourne le numéro de ligne qui suit le curseur.
aff>caract-fin : réalise l'affichage après modification ; variables globales :
MODIF-tot | drapeau, vrai si l'on réaffiche entièrement la fenêtre. |
MODIF-y1 | numéro de la première ligne du Buffer à réafficher. |
MODIF-y2 | numéro de la dernière ligne du Buffer à réafficher. |
aff>caract ‹num› ‹deby› ‹finy› : met à jour les variables globales de réaffichage :
‹num› | nombre de lignes modifiées. |
‹deby› | numéro de la première ligne modifiée. |
‹finy› | numéro de la dernière ligne modifiée. |
aff>ligne-mod ‹y1› ‹y2› : affichage des lignes, entre les numéros ‹y1› et ‹y2›.