mirror of
https://salsa.debian.org/dskoll/remind.git
synced 2026-04-16 06:18:47 +02:00
Properly fix combining-char-word-wrapping.
This commit is contained in:
@@ -929,6 +929,10 @@ static void PrintCentered(char const *s, int width, char *pad)
|
||||
break;
|
||||
}
|
||||
}
|
||||
/* Mop up any potential combining characters */
|
||||
while (*ws && wcwidth(*ws) == 0) {
|
||||
PutWideChar(*ws++);
|
||||
}
|
||||
for (i=d+len; i<width; i++) fputs(pad, stdout);
|
||||
if (buf != static_buf) free(buf);
|
||||
#endif
|
||||
@@ -981,6 +985,7 @@ static int WriteOneColLine(int col)
|
||||
#ifdef REM_USE_WCHAR
|
||||
wchar_t const *ws;
|
||||
wchar_t const *wspace;
|
||||
int width;
|
||||
#endif
|
||||
|
||||
int numwritten = 0;
|
||||
@@ -1005,9 +1010,18 @@ static int WriteOneColLine(int col)
|
||||
}
|
||||
|
||||
/* Find the last space char within the column. */
|
||||
while (ws - e->wc_pos <= ColSpaces) {
|
||||
if (!*ws) {wspace = ws; break;}
|
||||
if (iswspace(*ws)) wspace = ws;
|
||||
width = 0;
|
||||
while (width <= ColSpaces) {
|
||||
if (!*ws) {
|
||||
wspace = ws;
|
||||
break;
|
||||
}
|
||||
if (iswspace(*ws)) {
|
||||
wspace = ws;
|
||||
}
|
||||
if (wcwidth(*ws)) {
|
||||
width++;
|
||||
}
|
||||
ws++;
|
||||
}
|
||||
|
||||
|
||||
@@ -291,7 +291,7 @@ EOF
|
||||
|
||||
export LC_ALL=en_US.utf-8
|
||||
export LANG=en_US.utf-8
|
||||
../src/remind -c ../tests/utf-8.rem >> ../tests/test.out
|
||||
../src/remind -w128 -c ../tests/utf-8.rem >> ../tests/test.out
|
||||
cmp -s ../tests/test.out ../tests/test.cmp
|
||||
if [ "$?" = "0" ]; then
|
||||
echo "Remind: Acceptance test PASSED"
|
||||
|
||||
105
tests/test.cmp
105
tests/test.cmp
@@ -6847,49 +6847,64 @@ February 29
|
||||
|26 |27 |28 |29 |30 |31 | |
|
||||
| | | | | | | |
|
||||
+----------+----------+----------+----------+----------+----------+----------+
|
||||
+----------------------------------------------------------------------------+
|
||||
| November 2020 |
|
||||
+----------+----------+----------+----------+----------+----------+----------+
|
||||
| Sunday | Monday | Tuesday |Wednesday | Thursday | Friday | Saturday |
|
||||
+----------+----------+----------+----------+----------+----------+----------+
|
||||
|1 ******* |2 |3 |4 |5 |6 |7 |
|
||||
| | | | | | | |
|
||||
|ру́сский |ру́сский |ру́сский |ру́сский |ру́сский |ру́сский |ру́сский |
|
||||
| | | | | | | |
|
||||
|עִבְרִית |עִבְרִית |עִבְרִית |עִבְרִית |עִבְרִית |עִבְרִית |עִבְרִית |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
+----------+----------+----------+----------+----------+----------+----------+
|
||||
|8 |9 |10 |11 |12 |13 |14 |
|
||||
| | | | | | | |
|
||||
|ру́сский |ру́сский |ру́сский |ру́сский |ру́сский |ру́сский |ру́сский |
|
||||
| | | | | | | |
|
||||
|עִבְרִית |עִבְרִית |עִבְרִית |עִבְרִית |עִבְרִית |עִבְרִית |עִבְרִית |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
+----------+----------+----------+----------+----------+----------+----------+
|
||||
|15 |16 |17 |18 |19 |20 |21 |
|
||||
| | | | | | | |
|
||||
|ру́сский |ру́сский |ру́сский |ру́сский |ру́сский |ру́сский |ру́сский |
|
||||
| | | | | | | |
|
||||
|עִבְרִית |עִבְרִית |עִבְרִית |עִבְרִית |עִבְרִית |עִבְרִית |עִבְרִית |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
+----------+----------+----------+----------+----------+----------+----------+
|
||||
|22 |23 |24 |25 |26 |27 |28 |
|
||||
| | | | | | | |
|
||||
|ру́сский |ру́сский |ру́сский |ру́сский |ру́сский |ру́сский |ру́сский |
|
||||
| | | | | | | |
|
||||
|עִבְרִית |עִבְרִית |עִבְרִית |עִבְרִית |עִבְרִית |עִבְרִית |עִבְרִית |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
+----------+----------+----------+----------+----------+----------+----------+
|
||||
|29 |30 | | | | | |
|
||||
| | | | | | | |
|
||||
|ру́сский |ру́сский | | | | | |
|
||||
| | | | | | | |
|
||||
|עִבְרִית |עִבְרִית | | | | | |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
+----------+----------+----------+----------+----------+----------+----------+
|
||||
+-----------------------------------------------------------------------------------------------------------------------------+
|
||||
| November 2020 |
|
||||
+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+
|
||||
| Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday |
|
||||
+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+
|
||||
|1 ************** |2 |3 |4 |5 |6 |7 |
|
||||
| | | | | | | |
|
||||
|ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |
|
||||
|ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |
|
||||
|ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |
|
||||
|ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |
|
||||
| | | | | | | |
|
||||
|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|
|
||||
|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|
|
||||
|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|
|
||||
+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+
|
||||
|8 |9 |10 |11 |12 |13 |14 |
|
||||
| | | | | | | |
|
||||
|ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |
|
||||
|ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |
|
||||
|ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |
|
||||
|ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |
|
||||
| | | | | | | |
|
||||
|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|
|
||||
|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|
|
||||
|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|
|
||||
+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+
|
||||
|15 |16 |17 |18 |19 |20 |21 |
|
||||
| | | | | | | |
|
||||
|ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |
|
||||
|ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |
|
||||
|ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |
|
||||
|ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |
|
||||
| | | | | | | |
|
||||
|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|
|
||||
|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|
|
||||
|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|
|
||||
+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+
|
||||
|22 |23 |24 |25 |26 |27 |28 |
|
||||
| | | | | | | |
|
||||
|ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |
|
||||
|ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |
|
||||
|ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |
|
||||
|ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |ру́сский ру́сский |
|
||||
| | | | | | | |
|
||||
|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|
|
||||
|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|
|
||||
|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית|
|
||||
+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+
|
||||
|29 |30 | | | | | |
|
||||
| | | | | | | |
|
||||
|ру́сский ру́сский |ру́сский ру́сский | | | | | |
|
||||
|ру́сский ру́сский |ру́сский ру́сский | | | | | |
|
||||
|ру́сский ру́сский |ру́сский ру́сский | | | | | |
|
||||
|ру́сский ру́сский |ру́сский ру́сский | | | | | |
|
||||
| | | | | | | |
|
||||
|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית| | | | | |
|
||||
|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית| | | | | |
|
||||
|עִבְרִית עִבְרִית עִבְרִית|עִבְרִית עִבְרִית עִבְרִית| | | | | |
|
||||
+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
MSG ру́сский
|
||||
MSG עִבְרִית
|
||||
MSG ру́сский ру́сский ру́сский ру́сский ру́сский ру́сский ру́сский ру́сский
|
||||
MSG עִבְרִית עִבְרִית עִבְרִית עִבְרִית עִבְרִית עִבְרִית עִבְרִית עִבְרִית עִבְרִית
|
||||
|
||||
Reference in New Issue
Block a user