]> git.ipfire.org Git - ipfire-3.x.git/blame - coreutils/patches/coreutils-i18n-fold-newline.patch
coreutils: Update to 8.31
[ipfire-3.x.git] / coreutils / patches / coreutils-i18n-fold-newline.patch
CommitLineData
e8da1929
SS
1From ff424639fe863cbd6963add1a79b97290c1606c6 Mon Sep 17 00:00:00 2001
2From: rpm-build <rpm-build>
3Date: Fri, 3 Feb 2017 12:26:53 +0100
4Subject: [PATCH] fold.c: preserve new-lines in mutlibyte text
5
6---
7 src/fold.c | 49 ++++++++++++++++++++++++-------------------------
8 1 file changed, 24 insertions(+), 25 deletions(-)
9
10diff --git a/src/fold.c b/src/fold.c
11index d23edd5..8c232a7 100644
12--- a/src/fold.c
13+++ b/src/fold.c
14@@ -342,39 +342,38 @@ fold_multibyte_text (FILE *istream, size_t width, int *saved_errno)
15 }
16
17 rescan:
18- if (operating_mode == byte_mode) /* byte mode */
19+ if (convfail)
20+ increment = 1;
21+ else if (wc == L'\n')
22+ {
23+ /* preserve newline */
24+ fwrite (line_out, sizeof(char), offset_out, stdout);
25+ START_NEW_LINE;
26+ continue;
27+ }
28+ else if (operating_mode == byte_mode) /* byte mode */
29 increment = mblength;
30 else if (operating_mode == character_mode) /* character mode */
31 increment = 1;
32- else /* column mode */
33+ else /* column mode */
34 {
35- if (convfail)
36- increment = 1;
37- else
38+ switch (wc)
39 {
40- switch (wc)
41- {
42- case L'\n':
43- fwrite (line_out, sizeof(char), offset_out, stdout);
44- START_NEW_LINE;
45- continue;
46+ case L'\b':
47+ increment = (column > 0) ? -1 : 0;
48+ break;
49
50- case L'\b':
51- increment = (column > 0) ? -1 : 0;
52- break;
53+ case L'\r':
54+ increment = -1 * column;
55+ break;
56
57- case L'\r':
58- increment = -1 * column;
59- break;
60+ case L'\t':
61+ increment = 8 - column % 8;
62+ break;
63
64- case L'\t':
65- increment = 8 - column % 8;
66- break;
67-
68- default:
69- increment = wcwidth (wc);
70- increment = (increment < 0) ? 0 : increment;
71- }
72+ default:
73+ increment = wcwidth (wc);
74+ increment = (increment < 0) ? 0 : increment;
75 }
76 }
77
78--
792.7.4
80