Mercurial > vim
view Filelist @ 9444:e08c8502d7ce v7.4.2003
commit https://github.com/vim/vim/commit/144445d15f2369a58b94b6fee2fe162fc81c8abe
Author: Bram Moolenaar <Bram@vim.org>
Date: Fri Jul 8 21:41:54 2016 +0200
patch 7.4.2003
Problem: Still cursor flickering when a callback updates the screen. (David
Samvelyan)
Solution: Put the cursor in the right position after updating the screen.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Fri, 08 Jul 2016 21:45:05 +0200 |
parents | 9b048dced116 |
children | 2faeec4787be |
line wrap: on
line source
# List of distributed Vim files. # Used by Makefile and upload.aap. # source files for all source archives SRC_ALL = \ .hgignore \ .travis.yml \ appveyor.yml \ src/appveyor.bat \ src/README.txt \ src/alloc.h \ src/arabic.c \ src/arabic.h \ src/ascii.h \ src/blowfish.c \ src/buffer.c \ src/channel.c \ src/charset.c \ src/crypt.c \ src/crypt_zip.c \ src/diff.c \ src/digraph.c \ src/edit.c \ src/eval.c \ src/ex_cmds.c \ src/ex_cmds.h \ src/ex_cmds2.c \ src/ex_docmd.c \ src/ex_eval.c \ src/ex_getln.c \ src/farsi.c \ src/farsi.h \ src/feature.h \ src/fileio.c \ src/fold.c \ src/getchar.c \ src/globals.h \ src/gui.c \ src/gui.h \ src/gui_beval.c \ src/gui_beval.h \ src/hardcopy.c \ src/hashtab.c \ src/json.c \ src/json_test.c \ src/keymap.h \ src/macros.h \ src/main.c \ src/mark.c \ src/mbyte.c \ src/memfile.c \ src/memfile_test.c \ src/memline.c \ src/menu.c \ src/message.c \ src/misc1.c \ src/misc2.c \ src/move.c \ src/mysign \ src/nbdebug.c \ src/nbdebug.h \ src/netbeans.c \ src/normal.c \ src/ops.c \ src/option.c \ src/option.h \ src/popupmnu.c \ src/quickfix.c \ src/regexp.c \ src/regexp_nfa.c \ src/regexp.h \ src/screen.c \ src/search.c \ src/sha256.c \ src/structs.h \ src/spell.c \ src/syntax.c \ src/tag.c \ src/term.c \ src/term.h \ src/termlib.c \ src/ui.c \ src/undo.c \ src/version.c \ src/version.h \ src/vim.h \ src/winclip.c \ src/window.c \ src/xxd/xxd.c \ src/main.aap \ src/testdir/main.aap \ src/testdir/README.txt \ src/testdir/Make_all.mak \ src/testdir/*.in \ src/testdir/*.py \ src/testdir/sautest/autoload/*.vim \ src/testdir/runtest.vim \ src/testdir/test[0-9]*.ok \ src/testdir/test[0-9]*a.ok \ src/testdir/test_[a-z]*.ok \ src/testdir/test49.vim \ src/testdir/test60.vim \ src/testdir/test83-tags? \ src/testdir/test77a.com \ src/testdir/test_*.vim \ src/testdir/python2/*.py \ src/testdir/python3/*.py \ src/testdir/pythonx/*.py \ src/testdir/pythonx/topmodule/__init__.py \ src/testdir/pythonx/topmodule/submodule/__init__.py \ src/testdir/pythonx/topmodule/submodule/subsubmodule/__init__.py \ src/testdir/pythonx/topmodule/submodule/subsubmodule/subsubsubmodule.py \ src/testdir/python_after/*.py \ src/testdir/python_before/*.py \ src/testdir/bench*.in \ src/testdir/bench*.vim \ src/testdir/samples/*.txt \ src/proto.h \ src/proto/arabic.pro \ src/proto/blowfish.pro \ src/proto/buffer.pro \ src/proto/channel.pro \ src/proto/charset.pro \ src/proto/crypt.pro \ src/proto/crypt_zip.pro \ src/proto/diff.pro \ src/proto/digraph.pro \ src/proto/edit.pro \ src/proto/eval.pro \ src/proto/ex_cmds.pro \ src/proto/ex_cmds2.pro \ src/proto/ex_docmd.pro \ src/proto/ex_eval.pro \ src/proto/ex_getln.pro \ src/proto/farsi.pro \ src/proto/fileio.pro \ src/proto/fold.pro \ src/proto/getchar.pro \ src/proto/gui.pro \ src/proto/gui_beval.pro \ src/proto/hardcopy.pro \ src/proto/hashtab.pro \ src/proto/json.pro \ src/proto/main.pro \ src/proto/mark.pro \ src/proto/mbyte.pro \ src/proto/memfile.pro \ src/proto/memline.pro \ src/proto/menu.pro \ src/proto/message.pro \ src/proto/misc1.pro \ src/proto/misc2.pro \ src/proto/move.pro \ src/proto/netbeans.pro \ src/proto/normal.pro \ src/proto/ops.pro \ src/proto/option.pro \ src/proto/popupmnu.pro \ src/proto/quickfix.pro \ src/proto/regexp.pro \ src/proto/screen.pro \ src/proto/search.pro \ src/proto/sha256.pro \ src/proto/spell.pro \ src/proto/syntax.pro \ src/proto/tag.pro \ src/proto/term.pro \ src/proto/termlib.pro \ src/proto/ui.pro \ src/proto/undo.pro \ src/proto/version.pro \ src/proto/winclip.pro \ src/proto/window.pro \ # source files for Unix only SRC_UNIX = \ Makefile \ Filelist \ README_src.txt \ configure \ pixmaps/*.xpm \ pixmaps/*.png \ pixmaps/gen-inline-pixbufs.sh \ pixmaps/stock_icons.h \ src/INSTALL \ src/INSTALLx.txt \ src/Makefile \ src/auto/configure \ src/config.aap.in \ src/config.h.in \ src/config.mk.dist \ src/config.mk.in \ src/configure \ src/configure.in \ src/gui_at_fs.c \ src/gui_at_sb.c \ src/gui_at_sb.h \ src/gui_athena.c \ src/gui_gtk.c \ src/gui_gtk_f.c \ src/gui_gtk_f.h \ src/gui_gtk_x11.c \ src/gui_gtk_res.xml \ src/gui_motif.c \ src/gui_xmdlg.c \ src/gui_xmebw.c \ src/gui_xmebw.h \ src/gui_xmebwp.h \ src/gui_x11.c \ src/gui_x11_pm.h \ src/hangulin.c \ src/if_xcmdsrv.c \ src/integration.c \ src/integration.h \ src/link.sh \ src/installman.sh \ src/installml.sh \ src/mkinstalldirs \ src/os_unix.c \ src/os_unix.h \ src/os_unixx.h \ src/osdef.sh \ src/osdef1.h.in \ src/osdef2.h.in \ src/pathdef.sh \ src/proto/gui_athena.pro \ src/proto/gui_gtk.pro \ src/proto/gui_gtk_x11.pro \ src/proto/gui_gtk_gresources.pro \ src/proto/gui_motif.pro \ src/proto/gui_xmdlg.pro \ src/proto/gui_x11.pro \ src/proto/hangulin.pro \ src/proto/if_xcmdsrv.pro \ src/proto/os_unix.pro \ src/proto/pty.pro \ src/proto/workshop.pro \ src/pty.c \ src/testdir/Makefile \ src/testdir/unix.vim \ src/toolcheck \ src/vim_icon.xbm \ src/vim_mask.xbm \ src/vimtutor \ src/gvimtutor \ src/which.sh \ src/workshop.c \ src/workshop.h \ src/wsdebug.c \ src/wsdebug.h \ src/xxd/Makefile \ # source files for both DOS and Unix SRC_DOS_UNIX = \ src/if_cscope.c \ src/if_cscope.h \ src/if_lua.c \ src/if_mzsch.c \ src/if_mzsch.h \ src/if_perl.xs \ src/if_perlsfio.c \ src/if_python.c \ src/if_python3.c \ src/if_py_both.h \ src/if_ruby.c \ src/if_tcl.c \ src/proto/if_cscope.pro \ src/proto/if_lua.pro \ src/proto/if_mzsch.pro \ src/proto/if_perl.pro \ src/proto/if_perlsfio.pro \ src/proto/if_python.pro \ src/proto/if_python3.pro \ src/proto/if_ruby.pro \ src/proto/if_tcl.pro \ src/typemap \ # source files for DOS (also in the extra archive) SRC_DOS = \ src/GvimExt/*.mak \ src/GvimExt/GvimExt.reg \ src/GvimExt/Makefile \ src/GvimExt/README.txt \ src/GvimExt/gvimext.cpp \ src/GvimExt/gvimext.def \ src/GvimExt/gvimext.h \ src/GvimExt/gvimext.inf \ src/GvimExt/gvimext.rc \ src/GvimExt/gvimext_ming.def \ src/GvimExt/gvimext_ming.rc \ src/GvimExt/resource.h \ src/GvimExt/uninst.bat \ README_srcdos.txt \ src/INSTALLpc.txt \ src/Make_bc5.mak \ src/Make_cyg.mak \ src/Make_cyg_ming.mak \ src/Make_ivc.mak \ src/Make_dvc.mak \ src/Make_ming.mak \ src/Make_mvc.mak \ src/bigvim.bat \ src/bigvim64.bat \ src/msvcsetup.bat \ src/msvc2008.bat \ src/msvc2010.bat \ src/dimm.idl \ src/dlldata.c \ src/dosinst.c \ src/dosinst.h \ src/glbl_ime.cpp \ src/glbl_ime.h \ src/gui_dwrite.cpp \ src/gui_dwrite.h \ src/gui_w32.c \ src/gui_w32_rc.h \ src/if_ole.cpp \ src/if_ole.h \ src/if_ole.idl \ src/if_perl_msvc/stdbool.h \ src/iscygpty.c \ src/iscygpty.h \ src/iid_ole.c \ src/os_dos.h \ src/os_w32dll.c \ src/os_w32exe.c \ src/os_win32.c \ src/os_mswin.c \ src/os_win32.h \ src/proto/gui_w32.pro \ src/proto/if_ole.pro \ src/proto/os_win32.pro \ src/proto/os_mswin.pro \ src/testdir/Make_dos.mak \ src/testdir/Make_ming.mak \ src/testdir/dos.vim \ src/uninstal.c \ src/vim.def \ src/vim.rc \ src/vimio.h \ src/gvim.exe.mnf \ src/vimrun.c \ src/xpm_w32.c \ src/xpm_w32.h \ src/xxd/Make_bc5.mak \ src/xxd/Make_ming.mak \ src/xxd/Make_mvc.mak \ nsis/gvim.nsi \ nsis/gvim_version.nsh \ nsis/README.txt \ uninstal.txt \ src/VisVim/Commands.cpp \ src/VisVim/Commands.h \ src/VisVim/DSAddIn.cpp \ src/VisVim/DSAddIn.h \ src/VisVim/OleAut.cpp \ src/VisVim/OleAut.h \ src/VisVim/README_VisVim.txt \ src/VisVim/Reg.cpp \ src/VisVim/Register.bat \ src/VisVim/Resource.h \ src/VisVim/StdAfx.cpp \ src/VisVim/StdAfx.h \ src/VisVim/UnRegist.bat \ src/VisVim/VisVim.cpp \ src/VisVim/VisVim.def \ src/VisVim/VisVim.mak \ src/VisVim/VisVim.h \ src/VisVim/VisVim.odl \ src/VisVim/VisVim.rc \ src/VisVim/VsReadMe.txt \ # source files for DOS without CR/LF translation (also in the extra archive) SRC_DOS_BIN = \ src/VisVim/Res/*.bmp \ src/tearoff.bmp \ src/tools.bmp \ src/vim*.ico \ src/vim.tlb \ src/xpm/COPYRIGHT \ src/xpm/README.txt \ src/xpm/include/*.h \ src/xpm/x64/lib/libXpm.a \ src/xpm/x64/lib/libXpm.lib \ src/xpm/x64/lib-vc14/libXpm.lib \ src/xpm/x86/lib/libXpm.a \ src/xpm/x86/lib/libXpm.lib \ src/xpm/x86/lib-vc14/libXpm.lib \ nsis/icons/*.bmp \ nsis/icons/*.ico \ # source files for Amiga, DOS, etc. (also in the extra archive) SRC_AMI_DOS = \ # source files for Amiga (also in the extra archive) SRC_AMI = \ README_amisrc.txt \ README_amisrc.txt.info \ src.info \ src/INSTALLami.txt \ src/Make_dice.mak \ src/Make_manx.mak \ src/Make_morph.mak \ src/Make_sas.mak \ src/os_amiga.c \ src/os_amiga.h \ src/proto/os_amiga.pro \ src/testdir/Make_amiga.mak \ src/testdir/amiga.vim \ src/xxd/Make_amiga.mak \ # source files for the Mac (also in the extra archive) SRC_MAC = \ src/INSTALLmac.txt \ src/dehqx.py \ src/gui_mac.c \ src/os_mac_rsrc/*.icns \ src/os_mac.h \ src/os_mac.rsr.hqx \ src/os_mac_conv.c \ src/os_macosx.m \ src/proto/gui_mac.pro \ src/proto/os_mac_conv.pro \ # source files for VMS (in the extra archive) SRC_VMS = \ src/INSTALLvms.txt \ src/Make_vms.mms \ src/gui_gtk_vms.h \ src/os_vms.c \ src/os_vms_conf.h \ src/os_vms_mms.c \ src/proto/os_vms.pro \ src/testdir/Make_vms.mms \ src/testdir/vms.vim \ src/xxd/Make_vms.mms \ vimtutor.com \ # source files for QNX (in the extra archive) SRC_QNX = \ src/os_qnx.c \ src/os_qnx.h \ src/gui_photon.c \ src/proto/gui_photon.pro \ src/proto/os_qnx.pro \ # source files for the extra archive (all sources that are not for Unix) SRC_EXTRA = \ $(SRC_AMI) \ $(SRC_AMI_DOS) \ $(SRC_DOS) \ $(SRC_DOS_BIN) \ $(SRC_MAC) \ $(SRC_QNX) \ $(SRC_VMS) \ README_os390.txt \ src/Make_mint.mak \ src/infplist.xml \ src/link.390 \ src/os_beos.c \ src/os_beos.h \ src/os_beos.rsrc \ src/proto/os_beos.pro \ src/os_mint.h \ src/os_vms_fix.com \ src/toolbar.phi \ # runtime files for all distributions RT_ALL = \ README.txt \ README.md \ CONTRIBUTING.md \ runtime/bugreport.vim \ runtime/doc/*.awk \ runtime/doc/*.pl \ runtime/doc/*.txt \ runtime/doc/Makefile \ runtime/doc/doctags.c \ runtime/doc/vim.1 \ runtime/doc/evim.1 \ runtime/doc/vimdiff.1 \ runtime/doc/vimtutor.1 \ runtime/doc/xxd.1 \ runtime/ftoff.vim \ runtime/gvimrc_example.vim \ runtime/macros/README.txt \ runtime/macros/editexisting.vim \ runtime/macros/hanoi/click.me \ runtime/macros/hanoi/hanoi.vim \ runtime/macros/hanoi/poster \ runtime/macros/justify.vim \ runtime/macros/less.bat \ runtime/macros/less.sh \ runtime/macros/less.vim \ runtime/macros/life/click.me \ runtime/macros/life/life.vim \ runtime/macros/matchit.vim \ runtime/macros/maze/README.txt \ runtime/macros/maze/[mM]akefile \ runtime/macros/maze/main.aap \ runtime/macros/maze/maze.c \ runtime/macros/maze/maze_5.78 \ runtime/macros/maze/maze_mac \ runtime/macros/maze/mazeansi.c \ runtime/macros/maze/mazeclean.c \ runtime/macros/maze/poster \ runtime/macros/shellmenu.vim \ runtime/macros/swapmous.vim \ runtime/macros/urm/README.txt \ runtime/macros/urm/examples \ runtime/macros/urm/urm \ runtime/macros/urm/urm.vim \ runtime/mswin.vim \ runtime/evim.vim \ runtime/optwin.vim \ runtime/ftplugin.vim \ runtime/ftplugof.vim \ runtime/indent.vim \ runtime/indoff.vim \ runtime/termcap \ runtime/tools/README.txt \ runtime/tools/[a-z]*[a-z0-9] \ runtime/tutor/README.txt \ runtime/tutor/tutor \ runtime/tutor/tutor.vim \ runtime/vimrc_example.vim \ runtime/pack/dist/opt/dvorak/plugin/dvorak.vim \ runtime/pack/dist/opt/dvorak/dvorak/enable.vim \ runtime/pack/dist/opt/dvorak/dvorak/disable.vim \ runtime/pack/dist/opt/editexisting/plugin/editexisting.vim \ runtime/pack/dist/opt/justify/plugin/justify.vim \ runtime/pack/dist/opt/matchit/plugin/matchit.vim \ runtime/pack/dist/opt/matchit/doc/matchit.txt \ runtime/pack/dist/opt/matchit/doc/tags \ runtime/pack/dist/opt/shellmenu/plugin/shellmenu.vim \ runtime/pack/dist/opt/swapmouse/plugin/swapmouse.vim \ # runtime files for all distributions without CR-NL translation RT_ALL_BIN = \ runtime/doc/tags \ runtime/print/*.ps \ # runtime script files RT_SCRIPTS = \ runtime/filetype.vim \ runtime/scripts.vim \ runtime/menu.vim \ runtime/macmap.vim \ runtime/delmenu.vim \ runtime/synmenu.vim \ runtime/makemenu.vim \ runtime/autoload/*.vim \ runtime/autoload/README.txt \ runtime/autoload/xml/*.vim \ runtime/colors/*.vim \ runtime/colors/README.txt \ runtime/compiler/*.vim \ runtime/compiler/README.txt \ runtime/indent/*.vim \ runtime/indent/README.txt \ runtime/ftplugin/*.vim \ runtime/ftplugin/logtalk.dict \ runtime/ftplugin/README.txt \ runtime/plugin/*.vim \ runtime/plugin/README.txt \ runtime/syntax/*.vim \ runtime/syntax/README.txt \ # Unix runtime RT_UNIX = \ README_unix.txt \ runtime/hi16-action-make.png \ runtime/hi22-action-make.png \ runtime/vim16x16.png \ runtime/vim16x16.xpm \ runtime/vim32x32.png \ runtime/vim32x32.xpm \ runtime/vim48x48.png \ runtime/vim48x48.xpm \ runtime/gvim.desktop \ runtime/vim.desktop \ # Unix and DOS runtime without CR-LF translation RT_UNIX_DOS_BIN = \ runtime/vim16x16.gif \ runtime/vim32x32.gif \ runtime/vim48x48.gif \ # runtime not for unix or extra RT_NO_UNIX = \ # runtime for Amiga (also in the extra archive) RT_AMI_DOS = \ runtime/doc/vim.man \ runtime/doc/vimdiff.man \ runtime/doc/vimtutor.man \ runtime/doc/xxd.man \ # DOS runtime (also in the extra archive) RT_DOS = \ README_dos.txt \ runtime/rgb.txt \ vimtutor.bat \ # DOS runtime without CR-LF translation (also in the extra archive) RT_DOS_BIN = \ runtime/vimlogo.cdr \ runtime/vimlogo.eps \ runtime/vimlogo.gif \ runtime/vimlogo.pdf \ # Amiga runtime (also in the extra archive) RT_AMI = \ README.txt.info \ README_ami.txt \ README_ami.txt.info \ runtime/doc.info \ runtime/doc/*.info \ runtime/icons/README.txt \ runtime/icons/*.info \ runtime/icons.info \ runtime/macros.info \ runtime/macros/*.info \ runtime/macros/hanoi/*.info \ runtime/macros/life/*.info \ runtime/macros/maze/*.info \ runtime/macros/urm/*.info \ runtime/tools.info \ runtime/tutor.info \ runtime/tutor/*.info \ # runtime files in extra archive RT_EXTRA = \ $(RT_AMI) \ $(RT_AMI_DOS) \ $(RT_DOS) \ $(RT_DOS_BIN) \ README_mac.txt \ # included in all Amiga archives ROOT_AMI = \ Contents \ Contents.info \ runtime.info \ vimdir.info \ # root files for the extra archive ROOT_EXTRA = \ $(ROOT_AMI) \ # files for Amiga small binary (also in extra archive) BIN_AMI = \ README_amibin.txt \ README_amibin.txt.info \ Vim.info \ Xxd.info \ # files for DOS binary (also in extra archive) BIN_DOS = \ README_bindos.txt \ uninstal.txt \ # files for Win32 OLE binary (also in extra archive) BIN_OLE = \ README_ole.txt \ # files for Win32s binary (also in extra archive) BIN_W32S = \ README_w32s.txt \ # files for VMS binary (also in extra archive) BIN_VMS = \ README_vms.txt \ # files for OS/2 binary (also in extra archive) BIN_OS2 = \ README_os2.txt \ # binary files for extra archive BIN_EXTRA = \ $(BIN_AMI) \ $(BIN_DOS) \ $(BIN_OLE) \ $(BIN_W32S) \ $(BIN_VMS) \ $(BIN_OS2) \ # all files for extra archive EXTRA = \ $(BIN_EXTRA) \ $(ROOT_EXTRA) \ $(RT_EXTRA) \ $(SRC_EXTRA) \ README_extra.txt \ src/VisVim/VisVim.dll \ farsi/README.txt \ farsi/fonts/*/far-* \ runtime/vimlogo.xpm \ src/swis.s \ src/tee/Makefile \ src/tee/Make_mvc.mak \ src/tee/tee.c \ # files in READMEdir that are included from the top dir IN_README_DIR = \ README.txt.info \ README_ami.txt \ README_ami.txt.info \ README_amibin.txt \ README_amibin.txt.info \ README_amisrc.txt \ README_amisrc.txt.info \ README_bindos.txt \ README_dos.txt \ README_extra.txt \ README_mac.txt \ README_ole.txt \ README_os2.txt \ README_os390.txt \ README_src.txt \ README_srcdos.txt \ README_unix.txt \ README_vms.txt \ README_w32s.txt \ Contents \ Contents.info \ Vim.info \ Xxd.info \ runtime.info \ src.info \ vimdir.info \ # generic language files LANG_GEN = \ runtime/doc/*-de.1 \ runtime/doc/*-de.UTF-8.1 \ runtime/doc/*-fr.1 \ runtime/doc/*-fr.UTF-8.1 \ runtime/doc/*-it.1 \ runtime/doc/*-it.UTF-8.1 \ runtime/doc/*-ja.UTF-8.1 \ runtime/doc/*-pl.1 \ runtime/doc/*-pl.UTF-8.1 \ runtime/doc/*-ru.1 \ runtime/doc/*-ru.UTF-8.1 \ runtime/lang/README.txt \ runtime/lang/menu_*.vim \ runtime/keymap/README.txt \ runtime/keymap/*.vim \ runtime/tutor/README.*.txt \ runtime/tutor/Makefile \ runtime/tutor/tutor.utf-8 \ runtime/tutor/tutor.?? \ runtime/tutor/tutor.??.utf-8 \ runtime/tutor/tutor.??.euc \ runtime/tutor/tutor.??.sjis \ runtime/tutor/tutor.??.iso9 \ runtime/tutor/tutor.??.big5 \ runtime/tutor/tutor.??.cp1250 \ runtime/tutor/tutor.??.cp1251 \ runtime/tutor/tutor.??.cp737 \ runtime/tutor/tutor.??_??.utf-8 \ runtime/tutor/tutor.bar \ runtime/tutor/tutor.bar.utf-8 \ runtime/spell/README.txt \ runtime/spell/??/*.diff \ runtime/spell/??/main.aap \ runtime/spell/tet/*.diff \ runtime/spell/tet/main.aap \ runtime/spell/check/main.aap \ runtime/spell/check/*.aff \ runtime/spell/check/*.dic \ runtime/spell/yi/README.txt \ runtime/spell/main.aap \ runtime/spell/*.vim \ # generic language files, binary LANG_GEN_BIN = \ runtime/spell/README_en.txt \ runtime/spell/en.ascii.spl \ runtime/spell/en.latin1.spl \ runtime/spell/en.utf-8.spl \ runtime/spell/en.ascii.sug \ runtime/spell/en.latin1.sug \ runtime/spell/en.utf-8.sug \ # all files for lang archive LANG_SRC = \ src/po/README.txt \ src/po/README_mingw.txt \ src/po/README_mvc.txt \ src/po/check.vim \ src/po/cleanup.vim \ src/po/Makefile \ src/po/Make_cyg.mak \ src/po/Make_ming.mak \ src/po/Make_mvc.mak \ src/po/sjiscorr.c \ src/po/*.po \ # the language files for the Win32 lang archive LANG_DOS = \ src/po/*.mo \ # vim: set ft=make: