On Wednesday 28 March 2001 10:40, [EMAIL PROTECTED] wrote:
> Bonjour,
> Le monsieur qui t'as parle de ligne vide utilise probablement emacs. En
> matiere de ligne, emacs est un mauvais editeur. En effet, sous unix,
> normalement une ligne est *terminee* par un retour chariot (\n), Il se
> trouve --vu la presentation a l'ecran que fait emacs-- qu'emacs
> considere que les lignes sont *separees* par des retour chariot.
>

D'accord pour le comportement d'emacs, qui me para�t le plus "naturel" (ne 
rajoute pas dans le dos de l'utilisateur de caract�res sp�ciaux). Je constate 
que vi exige de tout fichier qu'ils se termine par un \n et qu'il le rajoute 
s'il est absent. 

C'est tr�s bien pour �diter un crontab mais... connaissez-vous des pointeurs 
vers la d�finition de la 'ligne UNIX', hors le discours de vi ? Je vois 
plut�t le comportement de vi comme un pense-b�te pour les 
admins-qui-oublient-de-coller-un-<eol>-avant-l'<eof> dans leurs fichiers de 
configuration. Me tromp�-je ?

> Donc
> unix : toutes les lignes y compris la derniere ont un retour chariot.
> emacs : toutes les lignes sauf la derniere ont un retour chariot.

Disons : fin de ligne = <eol> | <eof>.
Cette histoire de ligne, c'est juste des conventions pour les fichiers texte. 
Une question de pr�sentation. Je croyais qu'en UNIXland, il n' y a pas de 
'fichier texte' ou de 'fichier binaire', contrairement au monde merveilleux 
de DOS, mais je m'�gare peut-�tre.

Je veux dire : si j'ouvre avec vi un flot binaire, et que malencontreusement 
je l'enregistre, il me colle automatiquement un <eol> manquant avant l'<eof> ?

>
> De la, la necessite d'ajouter *sous emacs* ce qui apparait comme une
> ligne vide, mais ce qui en fait n'est que la terminaison correcte de la
> derniere ligne du fichier.
>
> Chaque outil, demon, etc... suivant la maniere dont il analyse les
> fichiers se contente ou non d'une derniere ligne incorrecte, et peut
> parfaitement ignorer une derniere-ligne-qui-n'en-est-pas-une-puisqu'il
> lui-manque-un-retour-chariot.
>
> Les utilisateur de vi, par exemple, ont deja remarque ce genre de
> message :
> partial last line (derniere ligne partielle)
> ou [noeol] ([pasdefindeligne])
>
>       Christophe
> --
> char*p="[)1++++++11+(QI1)9191991)9)1)(II1)919Y91)9)1)(AK+9;991+3*(9I1*IY991
>)Q1\
> )(1I1))A91991)Q1)(+)1)1++9;)Q1+(";main(_){while(*p){for(_=*p-32>>3;_;--_)
> putchar(' ');if(!(_=*p++-32&7))putchar('\n');else while(_--)printf("_/");}}


Répondre à