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:
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);