# HG changeset patch # User Bram Moolenaar # Date 1291834618 -3600 # Node ID a03f7551baccc60bedef5ef6a9f92ccdfe69a9a3 # Parent e19ecdb13f34ca1ccb3dd3c382a08423c385e847 updated for version 7.3.081 Problem: Non-printable characters in 'statusline' cause trouble. (ZyX) Solution: Use transstr(). (partly by Caio Ariede) diff --git a/src/screen.c b/src/screen.c --- a/src/screen.c +++ b/src/screen.c @@ -3405,9 +3405,9 @@ win_line(wp, lnum, startrow, endrow, noc # endif ) { - int_u text_sign; + int text_sign; # ifdef FEAT_SIGN_ICONS - int_u icon_sign; + int icon_sign; # endif /* Draw two cells with the sign value or blank. */ @@ -6522,8 +6522,17 @@ win_redr_custom(wp, draw_ruler) stl, use_sandbox, fillchar, maxwidth, hltab, tabtab); vim_free(stl); + + /* Make all characters printable. */ + p = transstr(buf); + if (p != NULL) + { + vim_strncpy(buf, p, sizeof(buf) - 1); + vim_free(p); + } + + /* fill up with "fillchar" */ len = (int)STRLEN(buf); - while (width < maxwidth && len < (int)sizeof(buf) - 1) { #ifdef FEAT_MBYTE diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -715,6 +715,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 81, +/**/ 80, /**/ 79,