Fix for calendar alignment for reminders with embedded tabs.

Convert all whitespace chars to space in calendar mode.
This commit is contained in:
Dianne Skoll
2020-11-03 08:41:24 -05:00
parent 22353d4833
commit a5c9b07052
4 changed files with 73 additions and 32 deletions

View File

@@ -884,7 +884,16 @@ static void PrintCentered(char const *s, int width, char *pad)
for (i=0; i<d; i++) fputs(pad, stdout);
for (i=0; i<width; i++) {
if (*s) PutChar(*s++); else break;
if (*s) {
if (isspace(*s)) {
PutChar(' ');
s++;
} else {
PutChar(*s++);
}
} else {
break;
}
}
for (i=d+len; i<width; i++) fputs(pad, stdout);
#else
@@ -1034,20 +1043,30 @@ static int WriteOneColLine(int col)
if (!wspace) {
for (ws = e->wc_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<wspace; 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);
}
}
@@ -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; s<space; s++) {
if (!*s) break;
numwritten++;
PutChar(*s);
if (isspace(*s)) {
PutChar(' ');
} else {
PutChar(*s);
}
}
}
@@ -1132,7 +1159,7 @@ static int WriteOneColLine(int col)
while(numwritten++ < ColSpaces) PutChar(' ');
/* Skip any spaces before next word */
while (*s == ' ') s++;
while (isspace(*s)) s++;
/* If done, free memory if no next entry. */
if (!*s && !e->next) {

View File

@@ -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"

View File

@@ -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 | | | |
+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+

View File

@@ -1,2 +1,4 @@
MSG ру́сский ру́сский ру́сский ру́сский ру́сский ру́сский ру́сский ру́сский
MSG עִבְרִית עִבְרִית עִבְרִית עִבְרִית עִבְרִית עִבְרִית עִבְרִית עִבְרִית עִבְרִית
Wed MSG With tabs and spaces