diff --git a/src/calendar.c b/src/calendar.c index 49d41bd9..00c7da29 100644 --- a/src/calendar.c +++ b/src/calendar.c @@ -884,7 +884,16 @@ static void PrintCentered(char const *s, int width, char *pad) for (i=0; iwc_pos; ws - e->wc_pos < ColSpaces; ws++) { if (!*ws) break; - if (wcwidth(*ws) > 0) { - numwritten += wcwidth(*ws); + if (iswspace(*ws)) { + PutChar(' '); + numwritten++; + } else { + if (wcwidth(*ws) > 0) { + numwritten += wcwidth(*ws); + } + PutWideChar(*ws); } - PutWideChar(*ws); } e->wc_pos = ws; } else { /* We found a space - print everything before it. */ for (ws = e->wc_pos; ws 0) { - numwritten += wcwidth(*ws); + if (iswspace(*ws)) { + PutChar(' '); + numwritten++; + } else { + if (wcwidth(*ws) > 0) { + numwritten += wcwidth(*ws); + } + PutWideChar(*ws); } - PutWideChar(*ws); } } @@ -1097,7 +1116,7 @@ static int WriteOneColLine(int col) /* Find the last space char within the column. */ while (s - e->pos <= ColSpaces) { if (!*s) {space = s; break;} - if (*s == ' ') space = s; + if (isspace(*s)) space = s; s++; } @@ -1111,7 +1130,11 @@ static int WriteOneColLine(int col) for (s = e->pos; s - e->pos < ColSpaces; s++) { if (!*s) break; numwritten++; - PutChar(*s); + if (isspace(*s)) { + PutChar(' '); + } else { + PutChar(*s); + } } e->pos = s; } else { @@ -1119,7 +1142,11 @@ static int WriteOneColLine(int col) for (s = e->pos; snext) { diff --git a/tests/test-rem b/tests/test-rem index 09ba135d..32c1a2fd 100644 --- a/tests/test-rem +++ b/tests/test-rem @@ -291,7 +291,7 @@ EOF export LC_ALL=en_US.utf-8 export LANG=en_US.utf-8 -../src/remind -w128 -c ../tests/utf-8.rem >> ../tests/test.out +../src/remind -w128 -c ../tests/utf-8.rem 1 Nov 2019 >> ../tests/test.out cmp -s ../tests/test.out ../tests/test.cmp if [ "$?" = "0" ]; then echo "Remind: Acceptance test PASSED" diff --git a/tests/test.cmp b/tests/test.cmp index 8fc8c3d0..f4aaa55c 100644 --- a/tests/test.cmp +++ b/tests/test.cmp @@ -6848,22 +6848,22 @@ February 29 | | | | | | | | +----------+----------+----------+----------+----------+----------+----------+ +-----------------------------------------------------------------------------------------------------------------------------+ -| November 2020 | +| November 2019 | +-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+ | Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday | +-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+ -|1 ************** |2 |3 |4 |5 |6 |7 | +| | | | | |1 |2 | | | | | | | | | -|ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский | -|ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский | -|ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский | -|ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский | +| | | | | |ру́сский ру́сский |ру́сский ру́сский | +| | | | | |ру́сский ру́сский |ру́сский ру́сский | +| | | | | |ру́сский ру́сский |ру́сский ру́сский | +| | | | | |ру́сский ру́сский |ру́сский ру́сский | | | | | | | | | -|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית| -|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית| -|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית| +| | | | | |עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית| +| | | | | |עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית| +| | | | | |עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית| +-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+ -|8 |9 |10 |11 |12 |13 |14 | +|3 |4 |5 |6 |7 |8 |9 | | | | | | | | | |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский | |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский | @@ -6873,8 +6873,11 @@ February 29 |עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית| |עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית| |עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית| +| | | | | | | | +| | | |With tabs and | | | | +| | | |spaces | | | | +-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+ -|15 |16 |17 |18 |19 |20 |21 | +|10 |11 |12 |13 |14 |15 |16 | | | | | | | | | |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский | |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский | @@ -6884,8 +6887,11 @@ February 29 |עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית| |עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית| |עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית| +| | | | | | | | +| | | |With tabs and | | | | +| | | |spaces | | | | +-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+ -|22 |23 |24 |25 |26 |27 |28 | +|17 |18 |19 |20 |21 |22 |23 | | | | | | | | | |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский | |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский | @@ -6895,16 +6901,22 @@ February 29 |עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית| |עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית| |עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית| +| | | | | | | | +| | | |With tabs and | | | | +| | | |spaces | | | | +-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+ -|29 |30 | | | | | | +|24 |25 |26 |27 |28 |29 |30 | | | | | | | | | -|ру́сский ру́сский |ру́сский ру́сский | | | | | | -|ру́сский ру́сский |ру́сский ру́сский | | | | | | -|ру́сский ру́сский |ру́сский ру́сский | | | | | | -|ру́сский ру́сский |ру́сский ру́сский | | | | | | +|ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский | +|ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский | +|ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский | +|ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский | | | | | | | | | -|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית| | | | | | -|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית| | | | | | -|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית| | | | | | +|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית| +|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית| +|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית| +| | | | | | | | +| | | |With tabs and | | | | +| | | |spaces | | | | +-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+ \ No newline at end of file diff --git a/tests/utf-8.rem b/tests/utf-8.rem index 3476ab19..ce8d4ed5 100644 --- a/tests/utf-8.rem +++ b/tests/utf-8.rem @@ -1,2 +1,4 @@ MSG ру́сский ру́сский ру́сский ру́сский ру́сский ру́сский ру́сский ру́сский MSG עִבְרִית עִבְרִית עִבְרִית עִבְרִית עִבְרִית עִבְרִית עִבְרִית עִבְרִית עִבְרִית + +Wed MSG With tabs and spaces \ No newline at end of file