summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gui_gtk_x11.c12
-rw-r--r--src/testdir/test_gui.vim22
-rw-r--r--src/version.c2
3 files changed, 32 insertions, 4 deletions
diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c
index e107c5e060..d46f819073 100644
--- a/src/gui_gtk_x11.c
+++ b/src/gui_gtk_x11.c
@@ -5744,12 +5744,16 @@ gui_gtk2_draw_string(int row, int col, char_u *s, int len, int flags)
}
}
- // temporarily zero terminate substring, print, restore char, wrap
- backup_ch = *(cs + slen);
- *(cs + slen) = 0;
+ if (slen < len)
+ {
+ // temporarily zero terminate substring, print, restore char, wrap
+ backup_ch = *(cs + slen);
+ *(cs + slen) = NUL;
+ }
len_sum += gui_gtk2_draw_string_ext(row, col + len_sum,
cs, slen, flags, needs_pango);
- *(cs + slen) = backup_ch;
+ if (slen < len)
+ *(cs + slen) = backup_ch;
cs += slen;
byte_sum += slen;
needs_pango = should_need_pango;
diff --git a/src/testdir/test_gui.vim b/src/testdir/test_gui.vim
index 84836e6692..133298db3a 100644
--- a/src/testdir/test_gui.vim
+++ b/src/testdir/test_gui.vim
@@ -145,6 +145,28 @@ func Test_quoteplus()
let @+ = quoteplus_saved
endfunc
+func Test_gui_read_stdin()
+ CheckUnix
+
+ call writefile(['some', 'lines'], 'Xstdin')
+ let script =<< trim END
+ call writefile(getline(1, '$'), 'XstdinOK')
+ qa!
+ END
+ call writefile(script, 'Xscript')
+
+ " Cannot use --not-a-term here, the "reading from stdin" message would not be
+ " displayed.
+ let vimcmd = substitute(GetVimCommand(), '--not-a-term', '', '')
+
+ call system('cat Xstdin | ' .. vimcmd .. ' -f -g -S Xscript -')
+ call assert_equal(['some', 'lines'], readfile('XstdinOK'))
+
+ call delete('Xstdin')
+ call delete('XstdinOK')
+ call delete('Xscript')
+endfunc
+
func Test_set_background()
let background_saved = &background
diff --git a/src/version.c b/src/version.c
index 3f80877da9..1e7fb75cab 100644
--- a/src/version.c
+++ b/src/version.c
@@ -758,6 +758,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 3548,
+/**/
3547,
/**/
3546,