aplat

Documents structurés pour Unix
git clone git://git.asteride.xyz/~ldp/aplat.git
Journaux | Fichiers | Références | LISEZ-MOI | LICENCE

commit c0ab52238a90582d705e60a543861dada42db3ed
parent ac54a87353aeab79143c46232bb3b0a191617c11
Auteur: Selve <selve@asteride.xyz>
Date:   Tue, 21 Nov 2023 16:14:59 -0500

possibilité d'échapper les nouvelles lignes

C'est-à-dire partout sauf dans un bloc.

Diffstat:
Maplat.c | 19++++++++++++-------
1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/aplat.c b/aplat.c @@ -215,8 +215,6 @@ prch_jeton(FILE *f, struct tampon *tp, int tp_type) tp_ecr('t', tp); continue; case '\n': - tp_ecr('\\', tp); - tp_ecr('n', tp); continue; case EOF: return EOF; @@ -282,7 +280,6 @@ guillemets(FILE *f, struct tampon *tp) assert(tp != NULL); while ((c = getc(f)) != '"' && c != EOF) { -en_haut: switch (c) { case '\n': tp_ecr('\\', tp); @@ -293,11 +290,19 @@ en_haut: tp_ecr('t', tp); continue; case '\\': - if ((c = getc(f)) == EOF) + switch (c = getc(f)) { + case '\\': + tp_ecr('\\', tp); + break; + case '\n': + continue; + case '\t': + tp_ecr('\\', tp); + tp_ecr('t', tp); + continue; + case EOF: return EOF; - if (c != '\\') - goto en_haut; - tp_ecr('\\', tp); + } /* CASCADE */ default: tp_ecr(c, tp);