mutt stable branch with some hacks
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Skip bidi markers in the pager and index. (closes #3827)

Curses and slang don't support them, so there's little point in
showing them or attempting to somehow deal with them.

This patch adds filtering in the pager, and changes the filtering
added in 6e0aca94cdb0 for the index to completely skip the marker.

+13 -6
+3 -5
mbyte.c
··· 548 548 } 549 549 if (!IsWPrint (wc)) 550 550 wc = '?'; 551 - /* HACK: 552 - * Work around a gnu screen bug. See ticket #3827. 553 - * Filter out the RIGHT-TO-LEFT and LEFT-TO-RIGHT bidi marks because 554 - * they result in screen corruption. 551 + /* Filter out the RIGHT-TO-LEFT and LEFT-TO-RIGHT bidi markers because 552 + * they result in screen corruption. See ticket #3827. 555 553 */ 556 554 else if (Charset_is_utf8 && 557 555 ((wc == (wchar_t)0x200f) || (wc == (wchar_t)0x200e))) 558 - wc = '?'; 556 + continue; 559 557 k2 = wcrtomb (scratch, wc, &mbstate2); 560 558 scratch[k2] = '\0'; 561 559 mutt_buffer_addstr (b, scratch);
+10 -1
pager.c
··· 1146 1146 if (k == 0) 1147 1147 k = 1; 1148 1148 1149 - if (Charset_is_utf8 && (wc == 0x200B || wc == 0xFEFF)) 1149 + if (Charset_is_utf8) 1150 1150 { 1151 + if (wc == 0x200B || wc == 0xFEFF) 1152 + { 1151 1153 dprint (3, (debugfile, "skip zero-width character U+%04X\n", (unsigned short)wc)); 1152 1154 continue; 1155 + } 1156 + /* Filter bidi markers, see ticket #3827 */ 1157 + if (wc == (wchar_t)0x200f || wc == (wchar_t)0x200e) 1158 + { 1159 + dprint (3, (debugfile, "skip bidi marker U+%04X\n", (unsigned short)wc)); 1160 + continue; 1161 + } 1153 1162 } 1154 1163 1155 1164 /* Handle backspace */