← Commit list

968951fd0

Tomas Heinrich
Tomas Heinrich
2010-03-26
FAILED Duration: 27s

Subject

unexpand: fix "a b"\n" input case

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

coreutils/expand.c+10 -7
@@ -81,12 +81,13 @@ static void unexpand(FILE *file, unsigned tab_size, unsigned opt)
while (*ptr) {
unsigned n;
- unsigned len;
+ unsigned len = 0;
while (*ptr == ' ') {
- column++;
ptr++;
+ len++;
}
+ column += len;
if (*ptr == '\t') {
column += tab_size - (column % tab_size);
ptr++;
@@ -94,16 +95,18 @@ static void unexpand(FILE *file, unsigned tab_size, unsigned opt)
}
n = column / tab_size;
- column = column % tab_size;
- while (n--)
- putchar('\t');
+ if (n) {
+ len = column = column % tab_size;
+ while (n--)
+ putchar('\t');
+ }
if ((opt & OPT_INITIAL) && ptr != line) {
- printf("%*s%s", column, "", ptr);
+ printf("%*s%s", len, "", ptr);
break;
}
n = strcspn(ptr, "\t ");
- printf("%*s%.*s", column, "", n, ptr);
+ printf("%*s%.*s", len, "", n, ptr);
# if ENABLE_FEATURE_ASSUME_UNICODE
{
char c;
testsuite/unexpand.tests+3 -0
@@ -27,6 +27,9 @@ testing "unexpand case 6" "unexpand" \
testing "unexpand case 7" "unexpand" \
"123\t 45678\n" "" "123 \t 45678\n" \
+testing "unexpand case 8" "unexpand" \
+ "a b\n" "" "a b\n" \
+
testing "unexpand with unicode characher 0x394" "unexpand" \
"1ΔΔΔ5\t99999\n" "" "1ΔΔΔ5 99999\n" \