To: vim_dev@googlegroups.com Subject: Patch 8.0.0317 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.0.0317 Problem: No test for setting 'guifont'. Solution: Add a test for X11 GUIs. (Kazunobu Kuriyama) Files: src/testdir/test_gui.vim *** ../vim-8.0.0316/src/testdir/test_gui.vim 2017-02-06 22:11:50.577264620 +0100 --- src/testdir/test_gui.vim 2017-02-09 16:04:15.214813050 +0100 *************** *** 72,77 **** --- 72,136 ---- endif endfunc + func Test_set_guifont() + let l:guifont_saved = &guifont + if has('xfontset') + " Prevent 'guifontset' from canceling 'guifont'. + let l:guifontset_saved = &guifontset + set guifontset= + endif + + let skipped = 0 + if has('gui_athena') || has('gui_motif') + " Non-empty font list with invalid font names. + " + " This test is twofold: (1) It checks if the command fails as expected + " when there are no loadable fonts found in the list. (2) It checks if + " 'guifont' remains the same after the command loads none of the fonts + " listed. + let l:flist = &guifont + call assert_fails('set guifont=-notexist1-*,-notexist2-*') + call assert_equal(l:flist, &guifont) + + " Non-empty font list with a valid font name. Should pick up the first + " valid font. + set guifont=-notexist1-*,fixed,-notexist2-* + call assert_equal('fixed', getfontname()) + + " Empty list. Should fallback to the built-in default. + set guifont= + call assert_equal('7x13', getfontname()) + + elseif has('gui_gtk2') || has('gui_gnome') || has('gui_gtk3') + " For GTK, what we refer to as 'font names' in our manual are actually + " 'initial font patterns'. A valid font which matches the 'canonical font + " pattern' constructed from a given 'initial pattern' is to be looked up + " and loaded. That explains why the GTK GUIs appear to accept 'invalid + " font names'. + " + " Non-empty list. Should always pick up the first element, no matter how + " strange it is, as explained above. + set guifont=(´・ω・`)\ 12,Courier\ 12 + call assert_equal('(´・ω・`) 12', getfontname()) + + " Empty list. Should fallback to the built-in default. + set guifont= + call assert_equal('Monospace 10', getfontname()) + + else + let skipped = 1 + endif + + if has('xfontset') + let &guifontset = l:guifontset_saved + endif + let &guifont = l:guifont_saved + + if skipped + throw "Skipped: Test not implemented yet for this GUI" + endif + endfunc + func Test_getwinpos() call assert_match('Window position: X \d\+, Y \d\+', execute('winpos')) call assert_true(getwinposx() >= 0) *** ../vim-8.0.0316/src/version.c 2017-02-09 11:54:46.742748026 +0100 --- src/version.c 2017-02-09 16:05:22.774318435 +0100 *************** *** 766,767 **** --- 766,769 ---- { /* Add new patch number below this line */ + /**/ + 317, /**/ -- A year spent in artificial intelligence is enough to make one believe in God. /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///