# HG changeset patch # User Bram Moolenaar # Date 1545390010 -3600 # Node ID 54d2905bd5ab6cdb7e05012e701c57e1058b1b76 # Parent e4d63834f86626135defff427cf8f00e45b44b9b patch 8.1.0612: cannot use two global runtime dirs with configure commit https://github.com/vim/vim/commit/9d302ad4e31b4e20ce0b3af700f43edb6f5e6036 Author: Bram Moolenaar Date: Fri Dec 21 11:48:51 2018 +0100 patch 8.1.0612: cannot use two global runtime dirs with configure Problem: Cannot use two global runtime dirs with configure. Solution: Support a comma in --with-global-runtime. (James McCoy, closes #3704) diff --git a/src/Makefile b/src/Makefile --- a/src/Makefile +++ b/src/Makefile @@ -317,12 +317,13 @@ CClink = $(CC) # You can give a lot of options to configure. # Change this to your desire and do 'make config' afterwards -# examples (can only use one!): -#CONF_ARGS = --exec-prefix=/usr -#CONF_ARGS = --with-vim-name=vim7 --with-ex-name=ex7 --with-view-name=view7 -#CONF_ARGS = --with-global-runtime=/etc/vim -#CONF_ARGS = --with-local-dir=/usr/share -#CONF_ARGS = --without-local-dir +# examples: +#CONF_ARGS1 = --exec-prefix=/usr +#CONF_ARGS2 = --with-vim-name=vim8 --with-ex-name=ex8 --with-view-name=view8 +#CONF_ARGS3 = --with-global-runtime=/etc/vim,/usr/share/vim +#CONF_ARGS4 = --with-local-dir=/usr/share +#CONF_ARGS5 = --without-local-dir +CONF_ARGS = $(CONF_ARGS1) $(CONF_ARGS2) $(CONF_ARGS3) $(CONF_ARGS4) $(CONF_ARGS5) # Use this one if you distribute a modified version of Vim. #CONF_ARGS = --with-modified-by="John Doe" diff --git a/src/auto/configure b/src/auto/configure --- a/src/auto/configure +++ b/src/auto/configure @@ -1533,7 +1533,7 @@ Optional Packages: --with-vim-name=NAME what to call the Vim executable --with-ex-name=NAME what to call the Ex executable --with-view-name=NAME what to call the View executable - --with-global-runtime=DIR global runtime directory in 'runtimepath' + --with-global-runtime=DIR global runtime directory in 'runtimepath', comma-separated for multiple directories --with-modified-by=NAME name of who modified a release version --with-features=TYPE tiny, small, normal, big or huge (default: huge) --with-compiledby=NAME name to show in :version message @@ -4890,16 +4890,25 @@ fi # Check whether --with-global-runtime was given. if test "${with_global_runtime+set}" = set; then : - withval=$with_global_runtime; { $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 -$as_echo "$withval" >&6; }; cat >>confdefs.h <<_ACEOF -#define RUNTIME_GLOBAL "$withval" -_ACEOF - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - + withval=$with_global_runtime; RUNTIME_GLOBAL="$withval"; { $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +$as_echo "$withval" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +if test "X$RUNTIME_GLOBAL" != "X"; then + RUNTIME_GLOBAL_AFTER=$(printf -- "$RUNTIME_GLOBAL\\n" | $AWK -F, 'BEGIN { comma=0 } { for (i = NF; i > 0; i--) { if (comma) { printf ",%s/after", $i } else { printf "%s/after", $i; comma=1 } } } END { printf "\n" }') + cat >>confdefs.h <<_ACEOF +#define RUNTIME_GLOBAL "$RUNTIME_GLOBAL" +_ACEOF + + cat >>confdefs.h <<_ACEOF +#define RUNTIME_GLOBAL_AFTER "$RUNTIME_GLOBAL_AFTER" +_ACEOF + +fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-modified-by argument" >&5 $as_echo_n "checking --with-modified-by argument... " >&6; } diff --git a/src/config.h.in b/src/config.h.in --- a/src/config.h.in +++ b/src/config.h.in @@ -453,9 +453,12 @@ /* Define if you want to include terminal emulator support. */ #undef FEAT_TERMINAL -/* Define default global runtime path */ +// Define default global runtime path. #undef RUNTIME_GLOBAL +// Define default global runtime after path. +#undef RUNTIME_GLOBAL_AFTER + /* Define name of who modified a released Vim */ #undef MODIFIED_BY diff --git a/src/configure.ac b/src/configure.ac --- a/src/configure.ac +++ b/src/configure.ac @@ -345,10 +345,16 @@ AC_ARG_WITH(view-name, [ --with-view-na AC_SUBST(VIEWNAME) AC_MSG_CHECKING(--with-global-runtime argument) -AC_ARG_WITH(global-runtime, [ --with-global-runtime=DIR global runtime directory in 'runtimepath'], - AC_MSG_RESULT($withval); AC_DEFINE_UNQUOTED(RUNTIME_GLOBAL, "$withval"), +AC_ARG_WITH(global-runtime, [ --with-global-runtime=DIR global runtime directory in 'runtimepath', comma-separated for multiple directories], + RUNTIME_GLOBAL="$withval"; AC_MSG_RESULT($withval), AC_MSG_RESULT(no)) +if test "X$RUNTIME_GLOBAL" != "X"; then + RUNTIME_GLOBAL_AFTER=$(printf -- "$RUNTIME_GLOBAL\\n" | $AWK -F, 'BEGIN { comma=0 } { for (i = NF; i > 0; i--) { if (comma) { printf ",%s/after", $i } else { printf "%s/after", $i; comma=1 } } } END { printf "\n" }') + AC_DEFINE_UNQUOTED(RUNTIME_GLOBAL, "$RUNTIME_GLOBAL") + AC_DEFINE_UNQUOTED(RUNTIME_GLOBAL_AFTER, "$RUNTIME_GLOBAL_AFTER") +fi + AC_MSG_CHECKING(--with-modified-by argument) AC_ARG_WITH(modified-by, [ --with-modified-by=NAME name of who modified a release version], AC_MSG_RESULT($withval); AC_DEFINE_UNQUOTED(MODIFIED_BY, "$withval"), diff --git a/src/feature.h b/src/feature.h --- a/src/feature.h +++ b/src/feature.h @@ -973,7 +973,8 @@ #endif /* - * RUNTIME_GLOBAL Directory name for global Vim runtime directory. + * RUNTIME_GLOBAL Comma-separated list of directory names for global Vim + * runtime directories. * Don't define this if the preprocessor can't handle * string concatenation. * Also set by "--with-global-runtime" configure argument. @@ -981,6 +982,15 @@ /* #define RUNTIME_GLOBAL "/etc/vim" */ /* + * RUNTIME_GLOBAL_AFTER Comma-separated list of directory names for global Vim + * runtime after directories. + * Don't define this if the preprocessor can't handle + * string concatenation. + * Also set by "--with-global-runtime" configure argument. + */ +/* #define RUNTIME_GLOBAL_AFTER "/etc/vim/after" */ + +/* * MODIFIED_BY Name of who modified Vim. Required when distributing * a modified version of Vim. * Also from the "--with-modified-by" configure argument. diff --git a/src/os_unix.h b/src/os_unix.h --- a/src/os_unix.h +++ b/src/os_unix.h @@ -369,8 +369,13 @@ typedef struct dsc$descriptor DESC; # define CLEAN_RUNTIMEPATH "$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after" #else # ifdef RUNTIME_GLOBAL -# define DFLT_RUNTIMEPATH "~/.vim," RUNTIME_GLOBAL ",$VIMRUNTIME," RUNTIME_GLOBAL "/after,~/.vim/after" -# define CLEAN_RUNTIMEPATH RUNTIME_GLOBAL ",$VIMRUNTIME," RUNTIME_GLOBAL "/after" +# ifdef RUNTIME_GLOBAL_AFTER +# define DFLT_RUNTIMEPATH "~/.vim," RUNTIME_GLOBAL ",$VIMRUNTIME," RUNTIME_GLOBAL_AFTER ",~/.vim/after" +# define CLEAN_RUNTIMEPATH RUNTIME_GLOBAL ",$VIMRUNTIME," RUNTIME_GLOBAL_AFTER +# else +# define DFLT_RUNTIMEPATH "~/.vim," RUNTIME_GLOBAL ",$VIMRUNTIME," RUNTIME_GLOBAL "/after,~/.vim/after" +# define CLEAN_RUNTIMEPATH RUNTIME_GLOBAL ",$VIMRUNTIME," RUNTIME_GLOBAL "/after" +# endif # else # define DFLT_RUNTIMEPATH "~/.vim,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,~/.vim/after" # define CLEAN_RUNTIMEPATH "$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after" diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -800,6 +800,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 612, +/**/ 611, /**/ 610,