view Filelist @ 33581:403d57b06231 v9.0.2035

patch 9.0.2035: [security] use-after-free with wildmenu Commit: https://github.com/vim/vim/commit/8f4fb007e4d472b09ff6bed9ffa485e0c3093699 Author: Yee Cheng Chin <ychin.git@gmail.com> Date: Tue Oct 17 10:06:56 2023 +0200 patch 9.0.2035: [security] use-after-free with wildmenu Problem: [security] use-after-free with wildmenu Solution: properly clean up the wildmenu when exiting Fix wildchar/wildmenu/pum memory corruption with special wildchar's Currently, using `wildchar=<Esc>` or `wildchar=<C-\>` can lead to a memory corruption if using wildmenu+pum, or wrong states if only using wildmenu. This is due to the code only using one single place inside the cmdline process loop to perform wild menu clean up (by checking `end_wildmenu`) but there are other odd situations where the loop could have exited and we need a post-loop clean up just to be sure. If the clean up was not done you would have a stale popup menu referring to invalid memory, or if not using popup menu, incorrect status line (if `laststatus=0`). For example, if you hit `<Esc>` two times when it's wildchar, there's a hard-coded behavior to exit command-line as a failsafe for user, and if you hit `<C-\><C-\><C-N>` it will also exit command-line, but the clean up code would not have hit because of specialized `<C-\>` handling. Fix Ctrl-E / Ctrl-Y to not cancel/accept wildmenu if they are also used for 'wildchar'/'wildcharm'. Currently they don't behave properly, and also have potentially memory unsafe behavior as the logic is currently not accounting for this situation and try to do both. (Previous patch that addressed this: #11677) Also, correctly document Escape key behavior (double-hit it to escape) in wildchar docs as it's previously undocumented. In addition, block known invalid chars to be set in `wildchar` option, such as Ctrl-C and `<CR>`. This is just to make it clear to the user they shouldn't be set, and is not required for this bug fix. closes: #13361 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
author Christian Brabandt <cb@256bit.org>
date Tue, 17 Oct 2023 10:15:08 +0200
parents 7df9cb603272
children 93b27fc986fb
line wrap: on
line source

# List of distributed Vim files.
# Used by Makefile.

# source files for all source archives
SRC_ALL =	\
		.cirrus.yml \
		.coveralls.yml \
		.gitattributes \
		.github/CODEOWNERS \
		.github/ISSUE_TEMPLATE/bug_report.yml \
		.github/ISSUE_TEMPLATE/feature_request.md \
		.github/workflows/ci.yml \
		.github/workflows/codeql-analysis.yml \
		.github/workflows/coverity.yml \
		.github/dependabot.yml \
		.gitignore \
		.hgignore \
		.appveyor.yml \
		.codecov.yml \
		ci/appveyor.bat \
		ci/config.mk*.sed \
		ci/if_ver*.vim \
		ci/setup-xvfb.sh \
		src/Make_all.mak \
		src/README.md \
		src/alloc.c \
		src/alloc.h \
		src/arabic.c \
		src/arglist.c \
		src/ascii.h \
		src/autocmd.c \
		src/beval.c \
		src/beval.h \
		src/blob.c \
		src/blowfish.c \
		src/buffer.c \
		src/bufwrite.c \
		src/change.c \
		src/channel.c \
		src/charset.c \
		src/cindent.c \
		src/clientserver.c \
		src/clipboard.c \
		src/cmdexpand.c \
		src/cmdhist.c \
		src/crypt.c \
		src/crypt_zip.c \
		src/debugger.c \
		src/dict.c \
		src/diff.c \
		src/digraph.c \
		src/drawline.c \
		src/drawscreen.c \
		src/edit.c \
		src/errors.h \
		src/eval.c \
		src/evalbuffer.c \
		src/evalfunc.c \
		src/evalvars.c \
		src/evalwindow.c \
		src/ex_cmdidxs.h \
		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/feature.h \
		src/fileio.c \
		src/filepath.c \
		src/findfile.c \
		src/float.c \
		src/fold.c \
		src/getchar.c \
		src/globals.h \
		src/gui.c \
		src/gui.h \
		src/gui_beval.c \
		src/hardcopy.c \
		src/hashtab.c \
		src/help.c \
		src/highlight.c \
		src/indent.c \
		src/insexpand.c \
		src/job.c \
		src/json.c \
		src/json_test.c \
		src/keymap.h \
		src/kword_test.c \
		src/list.c \
		src/locale.c \
		src/logfile.c \
		src/macros.h \
		src/main.c \
		src/map.c \
		src/mark.c \
		src/match.c \
		src/mbyte.c \
		src/memfile.c \
		src/memfile_test.c \
		src/memline.c \
		src/menu.c \
		src/message.c \
		src/message_test.c \
		src/misc1.c \
		src/misc2.c \
		src/mouse.c \
		src/move.c \
		src/mysign \
		src/nbdebug.c \
		src/nbdebug.h \
		src/netbeans.c \
		src/normal.c \
		src/nv_cmdidxs.h \
		src/nv_cmds.h \
		src/ops.c \
		src/option.c \
		src/option.h \
		src/optiondefs.h \
		src/optionstr.c \
		src/popupmenu.c \
		src/popupwin.c \
		src/profiler.c \
		src/quickfix.c \
		src/regexp.c \
		src/regexp_bt.c \
		src/regexp_nfa.c \
		src/regexp.h \
		src/register.c \
		src/scriptfile.c \
		src/screen.c \
		src/search.c \
		src/session.c \
		src/sha256.c \
		src/sign.c \
		src/sound.c \
		src/spell.c \
		src/spell.h \
		src/spellfile.c \
		src/spellsuggest.c \
		src/strings.c \
		src/structs.h \
		src/syntax.c \
		src/tag.c \
		src/term.c \
		src/terminal.c \
		src/termdefs.h \
		src/termlib.c \
		src/testing.c \
		src/textformat.c \
		src/textobject.c \
		src/textprop.c \
		src/time.c \
		src/typval.c \
		src/ui.c \
		src/undo.c \
		src/usercmd.c \
		src/userfunc.c \
		src/version.c \
		src/version.h \
		src/vim.h \
		src/vim9.h \
		src/vim9class.c \
		src/vim9cmds.c \
		src/vim9compile.c \
		src/vim9execute.c \
		src/vim9expr.c \
		src/vim9instr.c \
		src/vim9script.c \
		src/vim9type.c \
		src/viminfo.c \
		src/winclip.c \
		src/window.c \
		src/xxd/xxd.c \
		src/testdir/gen_opt_test.vim \
		src/testdir/README.txt \
		src/testdir/Make_all.mak \
		src/testdir/*.in \
		src/testdir/*.py \
		src/testdir/keycode_check.vim \
		src/testdir/keycode_check.json \
		src/testdir/lsan-suppress.txt \
		src/testdir/sautest/autoload/*.vim \
		src/testdir/testluaplugin/lua/testluaplugin/*.lua \
		src/testdir/check.vim \
		src/testdir/gui_init.vim \
		src/testdir/gui_preinit.vim \
		src/testdir/mouse.vim \
		src/testdir/runtest.vim \
		src/testdir/screendump.vim \
		src/testdir/setup.vim \
		src/testdir/setup_gui.vim \
		src/testdir/shared.vim \
		src/testdir/vim9.vim \
		src/testdir/script_util.vim \
		src/testdir/summarize.vim \
		src/testdir/term_util.vim \
		src/testdir/view_util.vim \
		src/testdir/test[0-9]*.ok \
		src/testdir/test77a.ok \
		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/pyxfile/*.py \
		src/testdir/dumps/*.dump \
		src/testdir/dumps/*.vim \
		src/testdir/samples/*.txt \
		src/testdir/samples/test000 \
		src/testdir/color_ramp.vim \
		src/testdir/silent.wav \
		src/testdir/popupbounce.vim \
		src/testdir/crash/* \
		src/proto.h \
		src/protodef.h \
		src/proto/alloc.pro \
		src/proto/arabic.pro \
		src/proto/arglist.pro \
		src/proto/autocmd.pro \
		src/proto/beval.pro \
		src/proto/blob.pro \
		src/proto/blowfish.pro \
		src/proto/buffer.pro \
		src/proto/bufwrite.pro \
		src/proto/change.pro \
		src/proto/channel.pro \
		src/proto/charset.pro \
		src/proto/cindent.pro \
		src/proto/clientserver.pro \
		src/proto/clipboard.pro \
		src/proto/cmdexpand.pro \
		src/proto/cmdhist.pro \
		src/proto/crypt.pro \
		src/proto/crypt_zip.pro \
		src/proto/debugger.pro \
		src/proto/dict.pro \
		src/proto/diff.pro \
		src/proto/digraph.pro \
		src/proto/drawline.pro \
		src/proto/drawscreen.pro \
		src/proto/edit.pro \
		src/proto/eval.pro \
		src/proto/evalbuffer.pro \
		src/proto/evalfunc.pro \
		src/proto/evalvars.pro \
		src/proto/evalwindow.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/fileio.pro \
		src/proto/filepath.pro \
		src/proto/findfile.pro \
		src/proto/float.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/help.pro \
		src/proto/highlight.pro \
		src/proto/indent.pro \
		src/proto/insexpand.pro \
		src/proto/job.pro \
		src/proto/json.pro \
		src/proto/list.pro \
		src/proto/locale.pro \
		src/proto/logfile.pro \
		src/proto/main.pro \
		src/proto/map.pro \
		src/proto/mark.pro \
		src/proto/match.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/mouse.pro \
		src/proto/move.pro \
		src/proto/netbeans.pro \
		src/proto/normal.pro \
		src/proto/ops.pro \
		src/proto/option.pro \
		src/proto/optionstr.pro \
		src/proto/popupmenu.pro \
		src/proto/popupwin.pro \
		src/proto/profiler.pro \
		src/proto/quickfix.pro \
		src/proto/regexp.pro \
		src/proto/register.pro \
		src/proto/scriptfile.pro \
		src/proto/screen.pro \
		src/proto/search.pro \
		src/proto/session.pro \
		src/proto/sha256.pro \
		src/proto/sign.pro \
		src/proto/sound.pro \
		src/proto/spell.pro \
		src/proto/spellfile.pro \
		src/proto/spellsuggest.pro \
		src/proto/strings.pro \
		src/proto/syntax.pro \
		src/proto/tag.pro \
		src/proto/term.pro \
		src/proto/terminal.pro \
		src/proto/termlib.pro \
		src/proto/testing.pro \
		src/proto/textformat.pro \
		src/proto/textobject.pro \
		src/proto/textprop.pro \
		src/proto/time.pro \
		src/proto/typval.pro \
		src/proto/ui.pro \
		src/proto/undo.pro \
		src/proto/usercmd.pro \
		src/proto/userfunc.pro \
		src/proto/version.pro \
		src/proto/vim9class.pro \
		src/proto/vim9cmds.pro \
		src/proto/vim9compile.pro \
		src/proto/vim9execute.pro \
		src/proto/vim9expr.pro \
		src/proto/vim9instr.pro \
		src/proto/vim9script.pro \
		src/proto/vim9type.pro \
		src/proto/viminfo.pro \
		src/proto/winclip.pro \
		src/proto/window.pro \
		src/libvterm/.bzrignore \
		src/libvterm/.gitignore \
		src/libvterm/LICENSE \
		src/libvterm/Makefile \
		src/libvterm/README \
		src/libvterm/CONTRIBUTING \
		src/libvterm/tbl2inc_c.pl \
		src/libvterm/vterm.pc.in \
		src/libvterm/doc/URLs \
		src/libvterm/doc/seqs.txt \
		src/libvterm/find-wide-chars.pl \
		src/libvterm/include/vterm.h \
		src/libvterm/include/vterm_keycodes.h \
		src/libvterm/src/encoding.c \
		src/libvterm/src/encoding/DECdrawing.inc \
		src/libvterm/src/encoding/DECdrawing.tbl \
		src/libvterm/src/encoding/uk.inc \
		src/libvterm/src/encoding/uk.tbl \
		src/libvterm/src/fullwidth.inc \
		src/libvterm/src/keyboard.c \
		src/libvterm/src/mouse.c \
		src/libvterm/src/parser.c \
		src/libvterm/src/pen.c \
		src/libvterm/src/rect.h \
		src/libvterm/src/screen.c \
		src/libvterm/src/state.c \
		src/libvterm/src/unicode.c \
		src/libvterm/src/utf8.h \
		src/libvterm/src/vterm.c \
		src/libvterm/src/vterm_internal.h \
		src/libvterm/t/02parser.test \
		src/libvterm/t/03encoding_utf8.test \
		src/libvterm/t/10state_putglyph.test \
		src/libvterm/t/11state_movecursor.test \
		src/libvterm/t/12state_scroll.test \
		src/libvterm/t/13state_edit.test \
		src/libvterm/t/14state_encoding.test \
		src/libvterm/t/15state_mode.test \
		src/libvterm/t/16state_resize.test \
		src/libvterm/t/17state_mouse.test \
		src/libvterm/t/18state_termprops.test \
		src/libvterm/t/20state_wrapping.test \
		src/libvterm/t/21state_tabstops.test \
		src/libvterm/t/22state_save.test \
		src/libvterm/t/25state_input.test \
		src/libvterm/t/26state_query.test \
		src/libvterm/t/27state_reset.test \
		src/libvterm/t/28state_dbl_wh.test \
		src/libvterm/t/29state_fallback.test \
		src/libvterm/t/30state_pen.test \
		src/libvterm/t/31state_rep.test \
		src/libvterm/t/32state_flow.test \
		src/libvterm/t/40state_selection.test \
		src/libvterm/t/60screen_ascii.test \
		src/libvterm/t/61screen_unicode.test \
		src/libvterm/t/62screen_damage.test \
		src/libvterm/t/63screen_resize.test \
		src/libvterm/t/64screen_pen.test \
		src/libvterm/t/65screen_protect.test \
		src/libvterm/t/66screen_extent.test \
		src/libvterm/t/67screen_dbl_wh.test \
		src/libvterm/t/68screen_termprops.test \
		src/libvterm/t/69screen_reflow.test \
		src/libvterm/t/90vttest_01-movement-1.test \
		src/libvterm/t/90vttest_01-movement-2.test \
		src/libvterm/t/90vttest_01-movement-3.test \
		src/libvterm/t/90vttest_01-movement-4.test \
		src/libvterm/t/90vttest_02-screen-1.test \
		src/libvterm/t/90vttest_02-screen-2.test \
		src/libvterm/t/90vttest_02-screen-3.test \
		src/libvterm/t/90vttest_02-screen-4.test \
		src/libvterm/t/92lp1640917.test \
		src/libvterm/t/harness.c \
		src/libvterm/t/run-test.pl \
		src/xdiff/COPYING \
		src/xdiff/README.txt \
		src/xdiff/xdiff.h \
		src/xdiff/xdiffi.c \
		src/xdiff/xdiffi.h \
		src/xdiff/xemit.c \
		src/xdiff/xemit.h \
		src/xdiff/xhistogram.c \
		src/xdiff/xinclude.h \
		src/xdiff/xmacros.h \
		src/xdiff/xpatience.c \
		src/xdiff/xprepare.c \
		src/xdiff/xprepare.h \
		src/xdiff/xtypes.h \
		src/xdiff/xutils.c \
		src/xdiff/xutils.h \


# 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.h.in \
		src/config.mk.dist \
		src/config.mk.in \
		src/configure \
		src/configure.ac \
		src/create_cmdidxs.vim \
		src/create_nvcmdidxs.c \
		src/create_nvcmdidxs.vim \
		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/if_xcmdsrv.c \
		src/link.sh \
		src/installman.sh \
		src/installml.sh \
		src/install-sh \
		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_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/if_xcmdsrv.pro \
		src/proto/os_unix.pro \
		src/proto/pty.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/xxd/Makefile \

# source files for both DOS and Unix
SRC_DOS_UNIX =	\
		src/gui_xim.c \
		src/if_cscope.c \
		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/gui_xim.pro \
		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 MS-Windows (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_cyg.mak \
		src/Make_cyg_ming.mak \
		src/Make_ming.mak \
		src/Make_mvc.mak \
		tools/rename.bat \
		src/bigvim.bat \
		src/bigvim64.bat \
		src/msvc-latest.bat \
		src/msvc2015.bat \
		src/msvc2017.bat \
		src/msvc2019.bat \
		src/msvc2022.bat \
		src/msys32.bat \
		src/msys64.bat \
		src/dlldata.c \
		src/dosinst.c \
		src/dosinst.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/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_mvc.mak \
		src/testdir/Make_ming.mak \
		src/testdir/dos.vim \
		src/uninstall.c \
		src/vim.rc \
		src/vim.manifest \
		src/vimrun.c \
		src/xpm_w32.c \
		src/xpm_w32.h \
		src/tee/Make_ming.mak \
		src/tee/Make_mvc.mak \
		src/tee/Makefile \
		src/tee/tee.c \
		src/xxd/Make_ming.mak \
		src/xxd/Make_mvc.mak \
		nsis/gvim.nsi \
		nsis/gvim_version.nsh \
		nsis/README.txt \
		nsis/lang/*.nsi \
		uninstall.txt \

# source files for DOS without CR/LF translation (also in the extra archive)
SRC_DOS_BIN =	\
		src/tearoff.bmp \
		src/tools.bmp \
		src/vim*.ico \
		src/vim.tlb \
		src/xpm/COPYRIGHT \
		src/xpm/README.txt \
		src/xpm/arm64/lib-vc14/libXpm.lib \
		src/xpm/include/*.h \
		src/xpm/x64/lib-vc14/libXpm.lib \
		src/xpm/x64/lib/libXpm.a \
		src/xpm/x86/lib-vc14/libXpm.lib \
		src/xpm/x86/lib/libXpm.a \
		runtime/bitmaps/vim.ico \
		nsis/icons.zip \

# 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_ami.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 Haiku (also in the extra archive)
SRC_HAIKU =	\
		README_haiku.txt \
		src/os_haiku.h \
		src/os_haiku.rdef.in \
		src/gui_haiku.cc \
		src/gui_haiku.h \
		src/proto/gui_haiku.pro \

# source files for the Mac (also in the extra archive)
SRC_MAC =	\
		src/INSTALLmac.txt \
		src/os_mac.h \
		src/os_mac_conv.c \
		src/os_macosx.m \
		src/proto/os_mac_conv.pro \
		src/proto/os_macosx.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_HAIKU) \
		$(SRC_MAC) \
		$(SRC_QNX) \
		$(SRC_VMS) \
		README_os390.txt \
		src/link.390 \
		src/os_vms_fix.com \
		src/toolbar.phi \

# runtime files for all distributions
RT_ALL =	\
		README.txt \
		README.md \
		README_VIM9.md \
		LICENSE \
		CONTRIBUTING.md \
		runtime/bugreport.vim \
		runtime/doc/*.awk \
		runtime/doc/*.pl \
		runtime/doc/*.txt \
		runtime/doc/Makefile \
		runtime/doc/doctags.c \
		runtime/doc/doctags.vim \
		runtime/doc/test_urls.vim \
		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/import/dist/vimhelp.vim \
		runtime/import/dist/vimhighlight.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/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/defaults.vim \
		runtime/evim.vim \
		runtime/mswin.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/cfilter/plugin/cfilter.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/matchit/autoload/*.vim \
		runtime/pack/dist/opt/shellmenu/plugin/shellmenu.vim \
		runtime/pack/dist/opt/swapmouse/plugin/swapmouse.vim \
		runtime/pack/dist/opt/termdebug/plugin/termdebug.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/dist/*.vim \
		runtime/autoload/xml/*.vim \
		runtime/autoload/zig/*.vim \
		runtime/colors/*.vim \
		runtime/colors/README.txt \
		runtime/colors/lists/*.vim \
		runtime/colors/tools/*.vim \
		runtime/compiler/*.vim \
		runtime/compiler/README.txt \
		runtime/indent/*.vim \
		runtime/indent/README.txt \
		runtime/indent/Makefile \
		runtime/indent/testdir/README.txt \
		runtime/indent/testdir/*.vim \
		runtime/indent/testdir/*.in \
		runtime/indent/testdir/*.ok \
		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 \
		runtime/syntax/shared/*.vim \
		runtime/syntax/shared/README.txt \
		runtime/syntax/Makefile \
		runtime/syntax/testdir/README.txt \
		runtime/syntax/testdir/runtest.vim \
		runtime/syntax/testdir/input/*.* \
		runtime/syntax/testdir/dumps/*.dump \

# Unix runtime
RT_UNIX =	\
		README_unix.txt \
		runtime/hi16-action-make.png \
		runtime/hi22-action-make.png \
		runtime/gvim.desktop \
		runtime/vim.desktop \

# Unix and DOS runtime without CR-LF translation
RT_UNIX_DOS_BIN =	\
		runtime/vim16x16.gif \
		runtime/vim16x16.png \
		runtime/vim16x16.xpm \
		runtime/vim32x32.gif \
		runtime/vim32x32.png \
		runtime/vim32x32.xpm \
		runtime/vim48x48.gif \
		runtime/vim48x48.png \
		runtime/vim48x48.xpm \

# runtime not for unix or extra
RT_NO_UNIX =	\

# runtime for Amiga (also in the extra archive)
RT_AMI_DOS =	\
		runtime/doc/evim.man \
		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 \
		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 \
		uninstall.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 \
		runtime/vimlogo.xpm \

# 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/*-da.1 \
		runtime/doc/*-da.UTF-8.1 \
		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/doc/*-tr.1 \
		runtime/doc/*-tr.UTF-8.1 \
		runtime/lang/README.txt \
		runtime/lang/Makefile \
		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/sr/README_sr.txt \
		runtime/spell/sr/convert.vim \
		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/tojavascript.vim \
		src/po/fixfilenames.vim \
		src/po/Makefile \
		src/po/Make_all.mak \
		src/po/Make_cyg.mak \
		src/po/Make_ming.mak \
		src/po/Make_mvc.mak \
		src/po/vim.desktop.in \
		src/po/gvim.desktop.in \
		src/po/sjiscorr.c \
		src/po/*.po \

# the language files for the Win32 lang archive
LANG_DOS = \
		src/po/*.mo \

# vim: set ft=make: