Ticket #3972: edit_printable_2.patch

File edit_printable_2.patch, 2.4 KB (added by andrew_b, 3 months ago)

Patch version 2

  • src/editor/editdraw.c

    diff --git a/src/editor/editdraw.c b/src/editor/editdraw.c
    index bdaea7493..f9946a383 100644
    a b edit_draw_this_line (WEdit *edit, off_t b, long row, long start_col, long end_co 
    573573                unsigned int c; 
    574574                gboolean wide_width_char = FALSE; 
    575575                gboolean control_char = FALSE; 
     576                gboolean printable; 
    576577 
    577578                p->ch = 0; 
    578579                p->style = q == edit->buffer.curs1 ? MOD_CURSOR : 0; 
    edit_draw_this_line (WEdit *edit, off_t b, long row, long start_col, long end_co 
    759760                        control_char = TRUE; 
    760761                        break; 
    761762                    } 
    762 #ifdef HAVE_CHARSET 
     763 
     764#ifdef HAVE_CHARSET 
    763765                    if (edit->utf8) 
    764766                    { 
    765                         if (g_unichar_isprint (c)) 
    766                             p->ch = c; 
     767                        if (mc_global.utf8_display) 
     768                            /* c is gunichar */ 
     769                            printable = g_unichar_isprint (c); 
    767770                        else 
    768                         { 
    769                             p->ch = '.'; 
    770                             p->style = abn_style; 
    771                         } 
    772                         p++; 
     771                            /* c was gunichar; now c is 8-bit char converted from gunichar */ 
     772                            printable = is_printable (c); 
    773773                    } 
    774774                    else 
    775775#endif 
     776                        /* c is 8-bit char */ 
     777                        printable = is_printable (c); 
     778 
     779                    if (printable) 
     780                        p->ch = c; 
     781                    else 
    776782                    { 
    777                         if ((mc_global.utf8_display && g_unichar_isprint (c)) || 
    778                             (!mc_global.utf8_display && is_printable (c))) 
    779                         { 
    780                             p->ch = c; 
    781                             p++; 
    782                         } 
    783                         else 
    784                         { 
    785                             p->ch = '.'; 
    786                             p->style = abn_style; 
    787                             p++; 
    788                         } 
     783                        p->ch = '.'; 
     784                        p->style = abn_style; 
    789785                    } 
     786                    p++; 
    790787                    col++; 
    791788                    break; 
    792789                }               /* case */