view Filelist @ 33284:0943c2a880cc v9.0.1908

patch 9.0.1908: undefined behaviour upper/lower function ptrs Commit: https://github.com/vim/vim/commit/d25021cf036c63d539f845a1ee05b03ea21d61ff Author: Yee Cheng Chin <ychin.git@gmail.com> Date: Mon Sep 18 19:51:56 2023 +0200 patch 9.0.1908: undefined behaviour upper/lower function ptrs Problem: undefined behaviour upper/lower function ptrs Solution: Fix UBSAN error in regexp and simplify upper/lowercase modifier code The implementation of \u / \U / \l / \L modifiers in the substitute command relies on remembering the state by setting function pointers on func_all/func_one in the code. The code signature of `fptr_T` is supposed to return void* (due to C function signatures not being able to return itself due to type recursion), and the definition of the functions (e.g. to_Upper) didn't follow this rule, and so the code tries to cast functions of different signatures, resulting in undefined behavior error under UBSAN in Clang 17. See #12745. We could just fix `do_Upper`/etc to just return void*, which would fix the problem. However, these functions actually do not need to return anything at all. It used to be the case that there was only one pointer "func" to store the pointer, which is why the function needs to either return itself or NULL to indicate whether it's a one time or ongoing modification. However, c2c355df6f094cdb9e599fd395a78c14486ec697 (7.3.873) already made that obsolete by introducing `func_one` and `func_all` to store one-time and ongoing operations separately, so these functions don't actually need to return anything anymore because it's implicit whether it's a one-time or ongoing operation. Simplify the code to reflect that. closes: #13117 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 Mon, 18 Sep 2023 20:00:09 +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: