Репозитории ALT
5.1: | 4.64L-alt6 |
4.1: | 4.64L-alt5 |
4.0: | 4.64L-alt4.1 |
3.0: | 4.58L-alt4 |
+backports: | 4.64L-alt0.M30.4 |
Группа :: Сети/Почта
Пакет: pine
Главная Изменения Спек Патчи Sources Загрузить Gear Bugs and FR Repocop
Патч: mailindx-plusdraw.patch
Скачать
Скачать
diff -pruN -x '*~' -x '*.rej' -x '*.orig' pine4.63-patch29/pine/mailindx.c pine4.63/pine/mailindx.c
--- pine4.63-patch29/pine/mailindx.c 2005-06-01 08:55:25.139074000 -0600
+++ pine4.63/pine/mailindx.c 2005-06-01 09:10:19.126042155 -0600
@@ -2223,6 +2223,9 @@ paint_index_line(hline, line, scol, pcol
int uc, ac, do_arrow;
int i, drew_X = 0, cols = ps_global->ttyo->screen_cols;
int inverse_hack = 0, need_inverse_hack = 0, lim;
+ int seq = 0, w = 0;
+ char utf_seq[7], *cp, *r;
+
if(uc=pico_usingcolor())
lastc = pico_get_cur_color();
@@ -2302,9 +2305,26 @@ paint_index_line(hline, line, scol, pcol
draw[acol+i] = '>';
}
+ cp = NULL;
if(pcol >= 0 && pcol < cols){
- save_pchar = draw[pcol];
- draw[pcol] = h->plus;
+ memset(utf_seq, 0, sizeof(utf_seq));
+ for(cp = draw; *cp; cp++) {
+ if (!(r = pine_check_utf8(cp, utf_seq, sizeof(utf_seq)))) {
+ seq = 1;
+ continue;
+ }
+ if (seq)
+ w++;
+ seq = 0;
+ if (r == cp)
+ w++;
+ else if (*r == ' ')
+ w++;
+ if (w > pcol)
+ break;
+ }
+ save_pchar = *cp;
+ *cp = h->plus;
}
if(h->offs[0].offset < 0 || h->offs[0].offset >= cols){
@@ -2467,8 +2487,8 @@ done_drawing:
if(!ac && cur)
EndInverse();
- if(pcol >= 0 && pcol < cols)
- draw[pcol] = save_pchar;
+ if(cp)
+ *cp = save_pchar;
if(do_arrow && cur){
int i;