mirror of
https://github.com/macvim-dev/macvim.git
synced 2026-06-11 15:37:29 +02:00
Merge remote-tracking branch 'vim/master'
This commit is contained in:
@@ -451,6 +451,7 @@ SRC_DOS = \
|
||||
src/xxd/Make_mvc.mak \
|
||||
nsis/gvim.nsi \
|
||||
nsis/gvim_version.nsh \
|
||||
nsis/vimrc.ini \
|
||||
nsis/README.txt \
|
||||
uninstal.txt \
|
||||
src/VisVim/Commands.cpp \
|
||||
|
||||
+45
-1
@@ -83,6 +83,7 @@ SilentInstall normal
|
||||
# These are the pages we use
|
||||
Page license
|
||||
Page components
|
||||
Page custom SetCustom ValidateCustom ": _vimrc setting"
|
||||
Page directory "" "" CheckInstallDir
|
||||
Page instfiles
|
||||
UninstPage uninstConfirm
|
||||
@@ -135,6 +136,10 @@ Function .onInit
|
||||
StrCpy $1 "-register-OLE"
|
||||
StrCpy $2 "gvim evim gview gvimdiff vimtutor"
|
||||
|
||||
# Extract InstallOptions files
|
||||
# $PLUGINSDIR will automatically be removed when the installer closes
|
||||
InitPluginsDir
|
||||
File /oname=$PLUGINSDIR\vimrc.ini "vimrc.ini"
|
||||
FunctionEnd
|
||||
|
||||
Function .onUserAbort
|
||||
@@ -404,7 +409,7 @@ Section "Add an Edit-with-Vim context menu entry"
|
||||
SectionEnd
|
||||
|
||||
##########################################################
|
||||
Section "Create a _vimrc if it doesn't exist"
|
||||
Section "Create a _vimrc if it doesn't exist" sec_vimrc_id
|
||||
SectionIn 1 3
|
||||
|
||||
StrCpy $1 "$1 -create-vimrc"
|
||||
@@ -462,6 +467,45 @@ Section -post
|
||||
BringToFront
|
||||
SectionEnd
|
||||
|
||||
##########################################################
|
||||
Function SetCustom
|
||||
# Display the InstallOptions dialog
|
||||
|
||||
# Check if a _vimrc should be created
|
||||
SectionGetFlags ${sec_vimrc_id} $0
|
||||
IntOp $0 $0 & 1
|
||||
StrCmp $0 "1" +2 0
|
||||
Abort
|
||||
|
||||
Push $3
|
||||
InstallOptions::dialog "$PLUGINSDIR\vimrc.ini"
|
||||
Pop $3
|
||||
Pop $3
|
||||
FunctionEnd
|
||||
|
||||
Function ValidateCustom
|
||||
ReadINIStr $3 "$PLUGINSDIR\vimrc.ini" "Field 2" "State"
|
||||
StrCmp $3 "1" 0 +3
|
||||
StrCpy $1 "$1 -vimrc-remap no"
|
||||
Goto behave
|
||||
|
||||
StrCpy $1 "$1 -vimrc-remap win"
|
||||
|
||||
behave:
|
||||
ReadINIStr $3 "$PLUGINSDIR\vimrc.ini" "Field 5" "State"
|
||||
StrCmp $3 "1" 0 +3
|
||||
StrCpy $1 "$1 -vimrc-behave unix"
|
||||
Goto done
|
||||
|
||||
ReadINIStr $3 "$PLUGINSDIR\vimrc.ini" "Field 6" "State"
|
||||
StrCmp $3 "1" 0 +3
|
||||
StrCpy $1 "$1 -vimrc-behave mswin"
|
||||
Goto done
|
||||
|
||||
StrCpy $1 "$1 -vimrc-behave default"
|
||||
done:
|
||||
FunctionEnd
|
||||
|
||||
##########################################################
|
||||
Section Uninstall
|
||||
# Apparently $INSTDIR is set to the directory where the uninstaller is
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
[Settings]
|
||||
NumFields=7
|
||||
|
||||
[Field 1]
|
||||
Type=GroupBox
|
||||
Left=0
|
||||
Right=-1
|
||||
Top=0
|
||||
Bottom=53
|
||||
Text=" Key remapping "
|
||||
|
||||
[Field 2]
|
||||
Type=radiobutton
|
||||
Text=Do not remap keys for Windows behavior (Default)
|
||||
Left=10
|
||||
Right=-10
|
||||
Top=17
|
||||
Bottom=25
|
||||
State=1
|
||||
Flags=GROUP
|
||||
|
||||
[Field 3]
|
||||
Type=radiobutton
|
||||
Text=Remap a few keys for Windows behavior (<C-V>, <C-C>, <C-A>, <C-S>, <C-F>, etc)
|
||||
Left=10
|
||||
Right=-10
|
||||
Top=30
|
||||
Bottom=47
|
||||
State=0
|
||||
Flags=NOTABSTOP
|
||||
|
||||
[Field 4]
|
||||
Type=GroupBox
|
||||
Left=0
|
||||
Right=-1
|
||||
Top=55
|
||||
Bottom=-5
|
||||
Text=" Mouse behavior "
|
||||
|
||||
[Field 5]
|
||||
Type=radiobutton
|
||||
Text=Right button extends selection, left button starts visual mode (Unix)
|
||||
Left=10
|
||||
Right=-5
|
||||
Top=72
|
||||
Bottom=80
|
||||
State=0
|
||||
Flags=GROUP
|
||||
|
||||
[Field 6]
|
||||
Type=radiobutton
|
||||
Text=Right button has a popup menu, left button starts select mode (Windows)
|
||||
Left=10
|
||||
Right=-5
|
||||
Top=85
|
||||
Bottom=93
|
||||
State=0
|
||||
Flags=NOTABSTOP
|
||||
|
||||
[Field 7]
|
||||
Type=radiobutton
|
||||
Text=Right button has a popup menu, left button starts visual mode (Default)
|
||||
Left=10
|
||||
Right=-5
|
||||
Top=98
|
||||
Bottom=106
|
||||
State=1
|
||||
Flags=NOTABSTOP
|
||||
@@ -8879,9 +8879,8 @@ listcmds Compiled with commands for the buffer list |:files|
|
||||
and the argument list |arglist|.
|
||||
localmap Compiled with local mappings and abbr. |:map-local|
|
||||
lua Compiled with Lua interface |Lua|.
|
||||
mac Any Macintosh version of Vim, but not all OS X.
|
||||
macunix Compiled for OS X, with |mac-darwin-feature|
|
||||
osx Compiled for OS X, with or w/o |mac-darwin-feature|
|
||||
mac Any Macintosh version of Vim cf. osx
|
||||
macunix Synonym for osxdarwin
|
||||
menu Compiled with support for |:menu|.
|
||||
mksession Compiled with support for |:mksession|.
|
||||
modify_fname Compiled with file name modifiers. |filename-modifiers|
|
||||
@@ -8905,6 +8904,8 @@ netbeans_intg Compiled with support for |netbeans|.
|
||||
num64 Compiled with 64-bit |Number| support.
|
||||
odbeditor Compiled with |odbeditor| support.
|
||||
ole Compiled with OLE automation support for Win32.
|
||||
osx Compiled for macOS cf. mac
|
||||
osxdarwin Compiled for macOS, with |mac-darwin-feature|
|
||||
packages Compiled with |packages| support.
|
||||
path_extra Compiled with up/downwards search in 'path' and 'tags'
|
||||
perl Compiled with Perl interface.
|
||||
|
||||
+11
-1
@@ -4571,7 +4571,17 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
match may not be found. This is to avoid that Vim hangs while you
|
||||
are typing the pattern.
|
||||
The highlighting can be set with the 'i' flag in 'highlight'.
|
||||
See also: 'hlsearch'.
|
||||
When 'hlsearch' is on, all matched strings are highlighted too while typing
|
||||
a search command. See also: 'hlsearch'.
|
||||
If you don't want turn 'hlsearch' on, but want to highlight all matches
|
||||
while searching, you can turn on and off 'hlsearch' with autocmd.
|
||||
Example: >
|
||||
augroup vimrc-incsearch-highlight
|
||||
autocmd!
|
||||
autocmd CmdlineEnter [/\?] :set hlsearch
|
||||
autocmd CmdlineLeave [/\?] :set nohlsearch
|
||||
augroup END
|
||||
<
|
||||
CTRL-L can be used to add one character from after the current match
|
||||
to the command line. If 'ignorecase' and 'smartcase' are set and the
|
||||
command line has no uppercase characters, the added character is
|
||||
|
||||
@@ -168,8 +168,9 @@ If you want to disable it, pass `--disable-darwin` to the configure script: >
|
||||
and then run `make` to build Vim. The order of the options doesn't matter.
|
||||
|
||||
To make sure at runtime whether or not the darwin feature is compiled in, you
|
||||
can use `has('macunix')` which returns 1 if the feature is compiled in; 0
|
||||
otherwise.
|
||||
can use `has('osxdarwin')` which returns 1 if the feature is compiled in; 0
|
||||
otherwise. For backwards comptibility, you can still use `macunix` instead of
|
||||
`osxdarwin`.
|
||||
|
||||
Notable use cases where `--disable-darwin` is turned out to be useful are:
|
||||
|
||||
|
||||
+9
-8
@@ -1,7 +1,7 @@
|
||||
" Set options and add mapping such that Vim behaves a lot like MS-Windows
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last change: 2017 Feb 09
|
||||
" Last change: 2017 Oct 28
|
||||
|
||||
" bail out if this isn't wanted (mrsvim.vim uses this).
|
||||
if exists("g:skip_loading_mswin") && g:skip_loading_mswin
|
||||
@@ -105,14 +105,15 @@ onoremap <C-F4> <C-C><C-W>c
|
||||
|
||||
if has("gui")
|
||||
" CTRL-F is the search dialog
|
||||
noremap <C-F> :promptfind<CR>
|
||||
inoremap <C-F> <C-\><C-O>:promptfind<CR>
|
||||
cnoremap <C-F> <C-\><C-C>:promptfind<CR>
|
||||
noremap <expr> <C-F> has("gui_running") ? ":promptfind\<CR>" : "/"
|
||||
inoremap <expr> <C-F> has("gui_running") ? "\<C-\>\<C-O>:promptfind\<CR>" : "\<C-\>\<C-O>/"
|
||||
cnoremap <expr> <C-F> has("gui_running") ? "\<C-\>\<C-C>:promptfind\<CR>" : "\<C-\>\<C-O>/"
|
||||
|
||||
" CTRL-H is the replace dialog
|
||||
noremap <C-H> :promptrepl<CR>
|
||||
inoremap <C-H> <C-\><C-O>:promptrepl<CR>
|
||||
cnoremap <C-H> <C-\><C-C>:promptrepl<CR>
|
||||
" CTRL-H is the replace dialog,
|
||||
" but in console, it might be backspace, so don't map it there
|
||||
nnoremap <expr> <C-H> has("gui_running") ? ":promptrepl\<CR>" : "\<C-H>"
|
||||
inoremap <expr> <C-H> has("gui_running") ? "\<C-\>\<C-O>:promptrepl\<CR>" : "\<C-H>"
|
||||
cnoremap <expr> <C-H> has("gui_running") ? "\<C-\>\<C-C>:promptrepl\<CR>" : "\<C-H>"
|
||||
endif
|
||||
|
||||
" restore 'cpoptions'
|
||||
|
||||
+11
-8
@@ -340,7 +340,7 @@ CClink = $(CC)
|
||||
# When both GTK+ 2 and GTK+ 3 are possible then GTK+ 2 will be selected.
|
||||
# To use GTK+ 3 instead use --enable-gui=gtk3 (see below).
|
||||
#CONF_OPT_GUI = --disable-gtk2-check
|
||||
#CONF_OPT_GUI = --enable-gnome2-check
|
||||
#CONF_OPT_GUI = --enable-gnome-check
|
||||
#CONF_OPT_GUI = --disable-gtk3-check
|
||||
#CONF_OPT_GUI = --disable-motif-check
|
||||
#CONF_OPT_GUI = --disable-athena-check
|
||||
@@ -483,9 +483,12 @@ CClink = $(CC)
|
||||
#CONF_OPT_CHANNEL = --disable-channel
|
||||
|
||||
# TERMINAL - Terminal emulator support, :terminal command. Requires the
|
||||
# channel feature.
|
||||
# Uncomment this when you want terminal emulator support.
|
||||
# channel feature. The default is enable for when using "huge" features.
|
||||
# Uncomment the first line when you want terminal emulator support for
|
||||
# not-huge builds. Uncomment the second line when you don't want terminal
|
||||
# emulator support in the huge build.
|
||||
#CONF_OPT_TERMINAL = --enable-terminal
|
||||
#CONF_OPT_TERMINAL = --disable-terminal
|
||||
|
||||
# MULTIBYTE - To edit multi-byte characters.
|
||||
# Uncomment this when you want to edit a multibyte language.
|
||||
@@ -2117,13 +2120,12 @@ test1 \
|
||||
test_listchars \
|
||||
test_search_mbyte \
|
||||
test_wordcount \
|
||||
test3 test11 test12 test14 test15 test17 test19 \
|
||||
test20 test25 test28 test29 \
|
||||
test30 test32 test36 test37 test38 test39 \
|
||||
test3 test11 test12 test14 test15 test17 \
|
||||
test29 test30 test36 test37 test39 \
|
||||
test40 test42 test44 test45 test48 test49 \
|
||||
test50 test52 test55 test59 \
|
||||
test64 test66 test68 test69 \
|
||||
test70 test72 test73 test77 test79 \
|
||||
test64 test68 test69 \
|
||||
test70 test72 test73 test77 \
|
||||
test83 test85 test86 test87 test88 \
|
||||
test94 test95 test99 test108:
|
||||
cd testdir; rm -f $@.out; $(MAKE) -f Makefile $@.out VIMPROG=../$(VIMTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE)
|
||||
@@ -2257,6 +2259,7 @@ test_arglist \
|
||||
test_reltime \
|
||||
test_retab \
|
||||
test_ruby \
|
||||
test_scroll_opt \
|
||||
test_scrollbind \
|
||||
test_search \
|
||||
test_searchpos \
|
||||
|
||||
Vendored
+56
-31
@@ -4185,6 +4185,8 @@ $as_echo_n "checking for Darwin (Mac OS X)... " >&6; }
|
||||
if test "`(uname) 2>/dev/null`" = Darwin; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
||||
$as_echo "yes" >&6; }
|
||||
MACOS_X=yes
|
||||
CPPFLAGS="$CPPFLAGS -DMACOS_X"
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking --disable-darwin argument" >&5
|
||||
$as_echo_n "checking --disable-darwin argument... " >&6; }
|
||||
@@ -4384,10 +4386,10 @@ rm -f core conftest.err conftest.$ac_objext \
|
||||
|
||||
|
||||
if test "$enable_darwin" = "yes"; then
|
||||
MACOSX=yes
|
||||
MACOS_X_DARWIN=yes
|
||||
OS_EXTRA_SRC="os_macosx.m os_mac_conv.c";
|
||||
OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o"
|
||||
CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX"
|
||||
CPPFLAGS="$CPPFLAGS -DMACOS_X_DARWIN"
|
||||
|
||||
# On IRIX 5.3, sys/types and inttypes.h are conflicting.
|
||||
for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
|
||||
@@ -5189,7 +5191,7 @@ rm -f core conftest.err conftest.$ac_objext \
|
||||
if test -f "${vi_cv_path_lua_pfx}/bin/cyglua-${vi_cv_version_lua}.dll"; then
|
||||
vi_cv_dll_name_lua="cyglua-${vi_cv_version_lua}.dll"
|
||||
else
|
||||
if test "x$MACOSX" = "xyes"; then
|
||||
if test "x$MACOS_X" = "xyes"; then
|
||||
ext="dylib"
|
||||
indexes=""
|
||||
else
|
||||
@@ -5235,7 +5237,7 @@ $as_echo "yes" >&6; }
|
||||
LUA_CFLAGS="-DDYNAMIC_LUA_DLL=\\\"${vi_cv_dll_name_lua}\\\" $LUA_CFLAGS"
|
||||
fi
|
||||
if test "X$LUA_CFLAGS$LUA_LIBS" != "X" && \
|
||||
test "x$MACOSX" = "xyes" && test "x$vi_cv_with_luajit" != "xno" && \
|
||||
test "x$MACOS_X" = "xyes" && test "x$vi_cv_with_luajit" != "xno" && \
|
||||
test "`(uname -m) 2>/dev/null`" = "x86_64"; then
|
||||
LUA_LIBS="-pagezero_size 10000 -image_base 100000000 $LUA_LIBS"
|
||||
fi
|
||||
@@ -5440,7 +5442,7 @@ $as_echo "not found" >&6; }
|
||||
|
||||
for path in "${vi_cv_path_mzscheme_pfx}/lib" "${SCHEME_LIB}"; do
|
||||
if test "X$path" != "X"; then
|
||||
if test "x$MACOSX" = "xyes"; then
|
||||
if test "x$MACOS_X" = "xyes"; then
|
||||
MZSCHEME_LIBS="-framework Racket"
|
||||
MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
|
||||
elif test -f "${path}/libmzscheme3m.a"; then
|
||||
@@ -5767,7 +5769,7 @@ $as_echo "OK" >&6; }
|
||||
perlldflags=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed \
|
||||
-e 'ccdlflags' | sed -e 's/-bE:perl.exp//'`
|
||||
|
||||
if test "x$MACOSX" = "xyes"; then
|
||||
if test "x$MACOS_X" = "xyes"; then
|
||||
perllibs=`echo "$perllibs" | sed -e 's/-arch[^-]*//g'`
|
||||
perlcppflags=`echo "$perlcppflags" | sed -e 's/-arch[^-]*//g'`
|
||||
fi
|
||||
@@ -5827,7 +5829,7 @@ $as_echo ">>> too old; need Perl version 5.003_01 or later <<<" >&6; }
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$MACOSX" = "xyes"; then
|
||||
if test "x$MACOS_X" = "xyes"; then
|
||||
dir=/System/Library/Perl
|
||||
darwindir=$dir/darwin
|
||||
if test -d $darwindir; then
|
||||
@@ -6051,7 +6053,7 @@ __:
|
||||
eof
|
||||
eval "`cd ${PYTHON_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
|
||||
rm -f -- "${tmp_mkf}"
|
||||
if test "x$MACOSX" = "xyes" && test -n "${python_PYTHONFRAMEWORK}" && ${vi_cv_path_python} -c \
|
||||
if test "x$MACOS_X" = "xyes" && test -n "${python_PYTHONFRAMEWORK}" && ${vi_cv_path_python} -c \
|
||||
"import sys; sys.exit(${vi_cv_var_python_version} < 2.3)"; then
|
||||
vi_cv_path_python_plibs="-framework Python"
|
||||
if test "x${vi_cv_path_python}" != "x/usr/bin/python" && test -n "${python_PYTHONFRAMEWORKPREFIX}"; then
|
||||
@@ -6565,7 +6567,7 @@ $as_echo_n "checking whether we can do without RTLD_GLOBAL for Python... " >&6;
|
||||
CFLAGS="$CFLAGS $PYTHON_CFLAGS"
|
||||
libs_save=$LIBS
|
||||
LIBS="-ldl $LIBS"
|
||||
if test "x$MACOSX" != "xyes"; then
|
||||
if test "x$MACOS_X" != "xyes"; then
|
||||
if test "$cross_compiling" = yes; then :
|
||||
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
|
||||
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
|
||||
@@ -7039,7 +7041,7 @@ $as_echo "$tclver - OK" >&6; };
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for location of Tcl include" >&5
|
||||
$as_echo_n "checking for location of Tcl include... " >&6; }
|
||||
if test "x$MACOSX" != "xyes"; then
|
||||
if test "x$MACOS_X" != "xyes"; then
|
||||
tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include /usr/local/include/tcl$tclver /usr/include /usr/include/tcl$tclver"
|
||||
else
|
||||
tclinc="/System/Library/Frameworks/Tcl.framework/Headers"
|
||||
@@ -7061,7 +7063,7 @@ $as_echo "<not found>" >&6; }
|
||||
if test -z "$SKIP_TCL"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for location of tclConfig.sh script" >&5
|
||||
$as_echo_n "checking for location of tclConfig.sh script... " >&6; }
|
||||
if test "x$MACOSX" != "xyes"; then
|
||||
if test "x$MACOS_X" != "xyes"; then
|
||||
tclcnf=`echo $tclinc | sed s/include/lib/g`
|
||||
tclcnf="$tclcnf `echo $tclinc | sed s/include/lib64/g`"
|
||||
else
|
||||
@@ -7559,7 +7561,7 @@ fi
|
||||
$as_echo_n "checking --enable-terminal argument... " >&6; }
|
||||
# Check whether --enable-terminal was given.
|
||||
if test "${enable_terminal+set}" = set; then :
|
||||
enableval=$enable_terminal; enable_terminal="yes"
|
||||
enableval=$enable_terminal;
|
||||
else
|
||||
enable_terminal="auto"
|
||||
fi
|
||||
@@ -7651,7 +7653,7 @@ fi
|
||||
$as_echo "$enable_fontset" >&6; }
|
||||
|
||||
test -z "$with_x" && with_x=yes
|
||||
test "${enable_gui-yes}" != no -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && with_x=yes
|
||||
test "${enable_gui-yes}" != no -a "x$MACOS_X" != "xyes" -a "x$QNX" != "xyes" && with_x=yes
|
||||
if test "$with_x" = no; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: defaulting to: don't HAVE_X11" >&5
|
||||
$as_echo "defaulting to: don't HAVE_X11" >&6; }
|
||||
@@ -8668,7 +8670,7 @@ $as_echo "$ac_cv_small_wchar_t" >&6; }
|
||||
fi
|
||||
fi
|
||||
|
||||
test "x$with_x" = xno -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && enable_gui=no
|
||||
test "x$with_x" = xno -a "x$MACOS_X" != "xyes" -a "x$QNX" != "xyes" && enable_gui=no
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking --enable-gui argument" >&5
|
||||
$as_echo_n "checking --enable-gui argument... " >&6; }
|
||||
@@ -8711,7 +8713,7 @@ $as_echo "Sorry, $enable_gui GUI is not supported" >&6; }
|
||||
SKIP_PHOTON=YES ;;
|
||||
esac
|
||||
|
||||
elif test "x$MACOSX" = "xyes" -a "x$with_x" = "xno" ; then
|
||||
elif test "x$MACOS_X" = "xyes" -a "x$with_x" = "xno" ; then
|
||||
SKIP_CARBON=
|
||||
SKIP_MACVIM=
|
||||
case "$enable_gui_canon" in
|
||||
@@ -8911,7 +8913,7 @@ $as_echo "$enable_macvim_check" >&6; };
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$MACOSX" = "xyes"; then
|
||||
if test "x$MACOS_X" = "xyes"; then
|
||||
if test x$prefix = xNONE; then
|
||||
prefix=/Applications
|
||||
fi
|
||||
@@ -10735,7 +10737,7 @@ fi
|
||||
|
||||
done
|
||||
|
||||
if test "x$MACOSX" = "xyes"; then
|
||||
if test "x$MACOS_X" = "xyes"; then
|
||||
$as_echo "#define NO_STRINGS_WITH_STRING_H 1" >>confdefs.h
|
||||
|
||||
else
|
||||
@@ -12187,7 +12189,7 @@ for ac_func in fchdir fchown fsync getcwd getpseudotty \
|
||||
getpgid setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
|
||||
sigprocmask sigvec strcasecmp strerror strftime stricmp strncasecmp \
|
||||
strnicmp strpbrk strtol tgetent towlower towupper iswupper \
|
||||
usleep utime utimes
|
||||
usleep utime utimes mblen
|
||||
do :
|
||||
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
|
||||
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
|
||||
@@ -14210,31 +14212,54 @@ fi
|
||||
done
|
||||
|
||||
|
||||
if test "x$MACOSX" = "xyes" -a -n "$PERL"; then
|
||||
if test "x$MACOS_X" = "xyes" -a -n "$PERL"; then
|
||||
if echo $LIBS | grep -e '-ldl' >/dev/null; then
|
||||
LIBS=`echo $LIBS | sed s/-ldl//`
|
||||
PERL_LIBS="$PERL_LIBS -ldl"
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$MACOSX" = "xyes"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need -framework Cocoa" >&5
|
||||
$as_echo_n "checking whether we need -framework Cocoa... " >&6; }
|
||||
if test "x$features" != "xtiny" || test "x$enable_multibyte" = "xyes"; then
|
||||
LIBS=$"$LIBS -framework Cocoa"
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
||||
$as_echo "yes" >&6; }
|
||||
if test "$MACOS_X" = "yes"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need macOS frameworks" >&5
|
||||
$as_echo_n "checking whether we need macOS frameworks... " >&6; }
|
||||
if test "$GUITYPE" = "CARBONGUI"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, we need Carbon" >&5
|
||||
$as_echo "yes, we need Carbon" >&6; }
|
||||
LIBS="$LIBS -framework Carbon"
|
||||
elif test "$MACOS_X_DARWIN" = "yes"; then
|
||||
if test "$features" = "tiny"; then
|
||||
OS_EXTRA_SRC=`echo "$OS_EXTRA_SRC" | sed -e 's+os_macosx.m++'`
|
||||
OS_EXTRA_OBJ=`echo "$OS_EXTRA_OBJ" | sed -e 's+objects/os_macosx.o++'`
|
||||
if test "$enable_multibyte" = "yes"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, we need CoreServices" >&5
|
||||
$as_echo "yes, we need CoreServices" >&6; }
|
||||
LIBS="$LIBS -framework CoreServices"
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
$as_echo "no" >&6; }
|
||||
OS_EXTRA_SRC=`echo "$OS_EXTRA_SRC" | sed -e 's+os_mac_conv.c++'`
|
||||
OS_EXTRA_OBJ=`echo "$OS_EXTRA_OBJ" | sed -e 's+objects/os_mac_conv.o++'`
|
||||
CPPFLAGS=`echo "$CPPFLAGS" | sed -e 's+-DMACOS_X_DARWIN++'`
|
||||
fi
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, we need AppKit" >&5
|
||||
$as_echo "yes, we need AppKit" >&6; }
|
||||
LIBS="$LIBS -framework AppKit"
|
||||
if test "$features" = "small" -a "$enable_multibyte" = "no"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: +multi_byte will be set in favor of +clipboard" >&5
|
||||
$as_echo "$as_me: +multi_byte will be set in favor of +clipboard" >&6;}
|
||||
enable_multibyte=yes
|
||||
$as_echo "#define FEAT_MBYTE 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
fi
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
$as_echo "no" >&6; }
|
||||
fi
|
||||
if test "x$features" = "xtiny"; then
|
||||
OS_EXTRA_SRC=`echo "$OS_EXTRA_SRC" | sed -e 's+os_macosx.m++'`
|
||||
OS_EXTRA_OBJ=`echo "$OS_EXTRA_OBJ" | sed -e 's+objects/os_macosx.o++'`
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$MACOSX" = "xyes"; then
|
||||
if test "x$MACOS_X" = "xyes"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-xcodecfg argument" >&5
|
||||
$as_echo_n "checking --with-xcodecfg argument... " >&6; }
|
||||
|
||||
|
||||
+7
-2
@@ -4038,9 +4038,14 @@ build_stl_str_hl(
|
||||
/* remove group if all items are empty and highlight group
|
||||
* doesn't change */
|
||||
group_start_userhl = group_end_userhl = 0;
|
||||
for (n = 0; n < groupitem[groupdepth]; n++)
|
||||
for (n = groupitem[groupdepth] - 1; n >= 0; n--)
|
||||
{
|
||||
if (item[n].type == Highlight)
|
||||
group_start_userhl = item[n].minwid;
|
||||
{
|
||||
group_start_userhl = group_end_userhl = item[n].minwid;
|
||||
break;
|
||||
}
|
||||
}
|
||||
for (n = groupitem[groupdepth] + 1; n < curitem; n++)
|
||||
{
|
||||
if (item[n].type == Normal)
|
||||
|
||||
+3
-6
@@ -1852,7 +1852,7 @@ vim_isblankline(char_u *lbuf)
|
||||
* If "what" contains STR2NR_OCT recognize octal numbers
|
||||
* If "what" contains STR2NR_HEX recognize hex numbers
|
||||
* If "what" contains STR2NR_FORCE always assume bin/oct/hex.
|
||||
* If maxlen > 0, check at a maximum maxlen chars
|
||||
* If maxlen > 0, check at a maximum maxlen chars.
|
||||
*/
|
||||
void
|
||||
vim_str2nr(
|
||||
@@ -1900,17 +1900,14 @@ vim_str2nr(
|
||||
if (what & STR2NR_OCT)
|
||||
{
|
||||
/* Don't interpret "0", "08" or "0129" as octal. */
|
||||
for (n = 1; VIM_ISDIGIT(ptr[n]); ++n)
|
||||
for (n = 1; n != maxlen && VIM_ISDIGIT(ptr[n]); ++n)
|
||||
{
|
||||
if (ptr[n] > '7')
|
||||
{
|
||||
pre = 0; /* can't be octal */
|
||||
break;
|
||||
}
|
||||
if (ptr[n] >= '0')
|
||||
pre = '0'; /* assume octal */
|
||||
if (n == maxlen)
|
||||
break;
|
||||
pre = '0'; /* assume octal */
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -212,6 +212,7 @@
|
||||
#undef HAVE_USLEEP
|
||||
#undef HAVE_UTIME
|
||||
#undef HAVE_BIND_TEXTDOMAIN_CODESET
|
||||
#undef HAVE_MBLEN
|
||||
|
||||
/* Define, if needed, for accessing large files. */
|
||||
#undef _LARGE_FILES
|
||||
|
||||
+57
-37
@@ -134,6 +134,8 @@ dnl are a lot of other things we need to change besides GUI stuff
|
||||
AC_MSG_CHECKING([for Darwin (Mac OS X)])
|
||||
if test "`(uname) 2>/dev/null`" = Darwin; then
|
||||
AC_MSG_RESULT(yes)
|
||||
MACOS_X=yes
|
||||
CPPFLAGS="$CPPFLAGS -DMACOS_X"
|
||||
|
||||
AC_MSG_CHECKING(--disable-darwin argument)
|
||||
AC_ARG_ENABLE(darwin,
|
||||
@@ -226,12 +228,12 @@ if test "`(uname) 2>/dev/null`" = Darwin; then
|
||||
|
||||
|
||||
if test "$enable_darwin" = "yes"; then
|
||||
MACOSX=yes
|
||||
MACOS_X_DARWIN=yes
|
||||
OS_EXTRA_SRC="os_macosx.m os_mac_conv.c";
|
||||
OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o"
|
||||
dnl TODO: use -arch i386 on Intel machines
|
||||
dnl Removed -no-cpp-precomp, only for very old compilers.
|
||||
CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX"
|
||||
CPPFLAGS="$CPPFLAGS -DMACOS_X_DARWIN"
|
||||
|
||||
dnl If Carbon or Cocoa is found, assume we don't want
|
||||
dnl X11 unless it was specifically asked for (--with-x)
|
||||
@@ -645,7 +647,7 @@ if test "$enable_luainterp" = "yes" -o "$enable_luainterp" = "dynamic"; then
|
||||
if test -f "${vi_cv_path_lua_pfx}/bin/cyglua-${vi_cv_version_lua}.dll"; then
|
||||
vi_cv_dll_name_lua="cyglua-${vi_cv_version_lua}.dll"
|
||||
else
|
||||
if test "x$MACOSX" = "xyes"; then
|
||||
if test "x$MACOS_X" = "xyes"; then
|
||||
ext="dylib"
|
||||
indexes=""
|
||||
else
|
||||
@@ -689,7 +691,7 @@ if test "$enable_luainterp" = "yes" -o "$enable_luainterp" = "dynamic"; then
|
||||
LUA_CFLAGS="-DDYNAMIC_LUA_DLL=\\\"${vi_cv_dll_name_lua}\\\" $LUA_CFLAGS"
|
||||
fi
|
||||
if test "X$LUA_CFLAGS$LUA_LIBS" != "X" && \
|
||||
test "x$MACOSX" = "xyes" && test "x$vi_cv_with_luajit" != "xno" && \
|
||||
test "x$MACOS_X" = "xyes" && test "x$vi_cv_with_luajit" != "xno" && \
|
||||
test "`(uname -m) 2>/dev/null`" = "x86_64"; then
|
||||
dnl OSX/x64 requires these flags. See http://luajit.org/install.html
|
||||
LUA_LIBS="-pagezero_size 10000 -image_base 100000000 $LUA_LIBS"
|
||||
@@ -821,7 +823,7 @@ if test "$enable_mzschemeinterp" = "yes"; then
|
||||
|
||||
for path in "${vi_cv_path_mzscheme_pfx}/lib" "${SCHEME_LIB}"; do
|
||||
if test "X$path" != "X"; then
|
||||
if test "x$MACOSX" = "xyes"; then
|
||||
if test "x$MACOS_X" = "xyes"; then
|
||||
MZSCHEME_LIBS="-framework Racket"
|
||||
MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
|
||||
elif test -f "${path}/libmzscheme3m.a"; then
|
||||
@@ -1043,7 +1045,7 @@ if test "$enable_perlinterp" = "yes" -o "$enable_perlinterp" = "dynamic"; then
|
||||
perlldflags=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed \
|
||||
-e 'ccdlflags' | sed -e 's/-bE:perl.exp//'`
|
||||
|
||||
if test "x$MACOSX" = "xyes"; then
|
||||
if test "x$MACOS_X" = "xyes"; then
|
||||
dnl Perl on Mac OS X 10.5 and later adds "-arch" flags but these
|
||||
dnl should only be included if requested by passing --with-archs
|
||||
dnl to configure, so strip these flags first (if present)
|
||||
@@ -1088,7 +1090,7 @@ if test "$enable_perlinterp" = "yes" -o "$enable_perlinterp" = "dynamic"; then
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$MACOSX" = "xyes"; then
|
||||
if test "x$MACOS_X" = "xyes"; then
|
||||
dnl Mac OS X 10.2 or later
|
||||
dir=/System/Library/Perl
|
||||
darwindir=$dir/darwin
|
||||
@@ -1231,7 +1233,7 @@ eof
|
||||
dnl -- delete the lines from make about Entering/Leaving directory
|
||||
eval "`cd ${PYTHON_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
|
||||
rm -f -- "${tmp_mkf}"
|
||||
if test "x$MACOSX" = "xyes" && test -n "${python_PYTHONFRAMEWORK}" && ${vi_cv_path_python} -c \
|
||||
if test "x$MACOS_X" = "xyes" && test -n "${python_PYTHONFRAMEWORK}" && ${vi_cv_path_python} -c \
|
||||
"import sys; sys.exit(${vi_cv_var_python_version} < 2.3)"; then
|
||||
vi_cv_path_python_plibs="-framework Python"
|
||||
if test "x${vi_cv_path_python}" != "x/usr/bin/python" && test -n "${python_PYTHONFRAMEWORKPREFIX}"; then
|
||||
@@ -1299,7 +1301,7 @@ eof
|
||||
AC_MSG_CHECKING([if -pthread should be used])
|
||||
threadsafe_flag=
|
||||
thread_lib=
|
||||
dnl if test "x$MACOSX" != "xyes"; then
|
||||
dnl if test "x$MACOS_X" != "xyes"; then
|
||||
if test "`(uname) 2>/dev/null`" != Darwin; then
|
||||
test "$GCC" = yes && threadsafe_flag="-pthread"
|
||||
if test "`(uname) 2>/dev/null`" = FreeBSD; then
|
||||
@@ -1514,7 +1516,7 @@ eof
|
||||
AC_MSG_CHECKING([if -pthread should be used])
|
||||
threadsafe_flag=
|
||||
thread_lib=
|
||||
dnl if test "x$MACOSX" != "xyes"; then
|
||||
dnl if test "x$MACOS_X" != "xyes"; then
|
||||
if test "`(uname) 2>/dev/null`" != Darwin; then
|
||||
test "$GCC" = yes && threadsafe_flag="-pthread"
|
||||
if test "`(uname) 2>/dev/null`" = FreeBSD; then
|
||||
@@ -1592,7 +1594,7 @@ if test "$python_ok" = yes && test "$python3_ok" = yes; then
|
||||
libs_save=$LIBS
|
||||
dnl -ldl must go first to make this work on Archlinux (Roland Puntaier)
|
||||
LIBS="-ldl $LIBS"
|
||||
if test "x$MACOSX" != "xyes"; then
|
||||
if test "x$MACOS_X" != "xyes"; then
|
||||
AC_RUN_IFELSE([AC_LANG_SOURCE([
|
||||
#include <dlfcn.h>
|
||||
/* If this program fails, then RTLD_GLOBAL is needed.
|
||||
@@ -1781,7 +1783,7 @@ if test "$enable_tclinterp" = "yes" -o "$enable_tclinterp" = "dynamic"; then
|
||||
tcldll=`echo 'puts libtcl[[info tclversion]][[info sharedlibextension]]' | $vi_cv_path_tcl -`
|
||||
|
||||
AC_MSG_CHECKING(for location of Tcl include)
|
||||
if test "x$MACOSX" != "xyes"; then
|
||||
if test "x$MACOS_X" != "xyes"; then
|
||||
tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include /usr/local/include/tcl$tclver /usr/include /usr/include/tcl$tclver"
|
||||
else
|
||||
dnl For Mac OS X 10.3, use the OS-provided framework location
|
||||
@@ -1801,7 +1803,7 @@ if test "$enable_tclinterp" = "yes" -o "$enable_tclinterp" = "dynamic"; then
|
||||
fi
|
||||
if test -z "$SKIP_TCL"; then
|
||||
AC_MSG_CHECKING(for location of tclConfig.sh script)
|
||||
if test "x$MACOSX" != "xyes"; then
|
||||
if test "x$MACOS_X" != "xyes"; then
|
||||
tclcnf=`echo $tclinc | sed s/include/lib/g`
|
||||
tclcnf="$tclcnf `echo $tclinc | sed s/include/lib64/g`"
|
||||
else
|
||||
@@ -2099,7 +2101,7 @@ fi
|
||||
AC_MSG_CHECKING(--enable-terminal argument)
|
||||
AC_ARG_ENABLE(terminal,
|
||||
[ --enable-terminal Enable terminal emulation support.],
|
||||
[enable_terminal="yes"], [enable_terminal="auto"])
|
||||
, [enable_terminal="auto"])
|
||||
if test "$enable_terminal" = "yes" || test "$enable_terminal" = "auto" -a "x$features" = "xhuge" ; then
|
||||
if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then
|
||||
AC_MSG_RESULT([cannot use terminal emulator with tiny or small features])
|
||||
@@ -2157,7 +2159,7 @@ AC_MSG_RESULT($enable_fontset)
|
||||
dnl defining FEAT_XFONTSET is delayed, so that it can be disabled for no GUI
|
||||
|
||||
test -z "$with_x" && with_x=yes
|
||||
test "${enable_gui-yes}" != no -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && with_x=yes
|
||||
test "${enable_gui-yes}" != no -a "x$MACOS_X" != "xyes" -a "x$QNX" != "xyes" && with_x=yes
|
||||
if test "$with_x" = no; then
|
||||
AC_MSG_RESULT(defaulting to: don't HAVE_X11)
|
||||
else
|
||||
@@ -2288,7 +2290,7 @@ else
|
||||
fi
|
||||
fi
|
||||
|
||||
test "x$with_x" = xno -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && enable_gui=no
|
||||
test "x$with_x" = xno -a "x$MACOS_X" != "xyes" -a "x$QNX" != "xyes" && enable_gui=no
|
||||
|
||||
AC_MSG_CHECKING(--enable-gui argument)
|
||||
AC_ARG_ENABLE(gui,
|
||||
@@ -2323,7 +2325,7 @@ if test "x$QNX" = "xyes" -a "x$with_x" = "xno" ; then
|
||||
SKIP_PHOTON=YES ;;
|
||||
esac
|
||||
|
||||
elif test "x$MACOSX" = "xyes" -a "x$with_x" = "xno" ; then
|
||||
elif test "x$MACOS_X" = "xyes" -a "x$with_x" = "xno" ; then
|
||||
SKIP_CARBON=
|
||||
SKIP_MACVIM=
|
||||
case "$enable_gui_canon" in
|
||||
@@ -2461,7 +2463,7 @@ if test "x$SKIP_MACVIM" != "xYES" -a "$enable_gui_canon" != "macvim"; then
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$MACOSX" = "xyes"; then
|
||||
if test "x$MACOS_X" = "xyes"; then
|
||||
dnl Default install directory is not /usr/local
|
||||
if test x$prefix = xNONE; then
|
||||
prefix=/Applications
|
||||
@@ -3273,7 +3275,7 @@ AC_TRY_COMPILE([
|
||||
AC_MSG_RESULT(no))
|
||||
|
||||
AC_CHECK_HEADERS(strings.h)
|
||||
if test "x$MACOSX" = "xyes"; then
|
||||
if test "x$MACOS_X" = "xyes"; then
|
||||
dnl The strings.h file on OS/X contains a warning and nothing useful.
|
||||
AC_DEFINE(NO_STRINGS_WITH_STRING_H)
|
||||
else
|
||||
@@ -3735,7 +3737,7 @@ AC_CHECK_FUNCS(fchdir fchown fsync getcwd getpseudotty \
|
||||
getpgid setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
|
||||
sigprocmask sigvec strcasecmp strerror strftime stricmp strncasecmp \
|
||||
strnicmp strpbrk strtol tgetent towlower towupper iswupper \
|
||||
usleep utime utimes)
|
||||
usleep utime utimes mblen)
|
||||
AC_FUNC_FSEEKO
|
||||
|
||||
dnl define _LARGE_FILES, _FILE_OFFSET_BITS and _LARGEFILE_SOURCE when
|
||||
@@ -4362,7 +4364,7 @@ elif test x${DLL} = xdl.h; then
|
||||
fi
|
||||
AC_CHECK_HEADERS(setjmp.h)
|
||||
|
||||
if test "x$MACOSX" = "xyes" -a -n "$PERL"; then
|
||||
if test "x$MACOS_X" = "xyes" -a -n "$PERL"; then
|
||||
dnl -ldl must come after DynaLoader.a
|
||||
if echo $LIBS | grep -e '-ldl' >/dev/null; then
|
||||
LIBS=`echo $LIBS | sed s/-ldl//`
|
||||
@@ -4370,26 +4372,44 @@ if test "x$MACOSX" = "xyes" -a -n "$PERL"; then
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$MACOSX" = "xyes"; then
|
||||
AC_MSG_CHECKING(whether we need -framework Cocoa)
|
||||
dnl Cocoa is needed with FEAT_CLIPBOARD or FEAT_MBYTE (the former is
|
||||
dnl disabled during tiny build)
|
||||
if test "x$features" != "xtiny" || test "x$enable_multibyte" = "xyes"; then
|
||||
LIBS=$"$LIBS -framework Cocoa"
|
||||
AC_MSG_RESULT(yes)
|
||||
if test "$MACOS_X" = "yes"; then
|
||||
AC_MSG_CHECKING([whether we need macOS frameworks])
|
||||
if test "$GUITYPE" = "CARBONGUI"; then
|
||||
AC_MSG_RESULT([yes, we need Carbon])
|
||||
LIBS="$LIBS -framework Carbon"
|
||||
elif test "$MACOS_X_DARWIN" = "yes"; then
|
||||
if test "$features" = "tiny"; then
|
||||
dnl Since no FEAT_CLIPBOARD, no longer need for os_macosx.m.
|
||||
OS_EXTRA_SRC=`echo "$OS_EXTRA_SRC" | sed -e 's+os_macosx.m++'`
|
||||
OS_EXTRA_OBJ=`echo "$OS_EXTRA_OBJ" | sed -e 's+objects/os_macosx.o++'`
|
||||
if test "$enable_multibyte" = "yes"; then
|
||||
AC_MSG_RESULT([yes, we need CoreServices])
|
||||
LIBS="$LIBS -framework CoreServices"
|
||||
else
|
||||
dnl Since no FEAT_MBYTE, no longer need for os_mac_conv.c.
|
||||
AC_MSG_RESULT([no])
|
||||
OS_EXTRA_SRC=`echo "$OS_EXTRA_SRC" | sed -e 's+os_mac_conv.c++'`
|
||||
OS_EXTRA_OBJ=`echo "$OS_EXTRA_OBJ" | sed -e 's+objects/os_mac_conv.o++'`
|
||||
CPPFLAGS=`echo "$CPPFLAGS" | sed -e 's+-DMACOS_X_DARWIN++'`
|
||||
fi
|
||||
else
|
||||
AC_MSG_RESULT([yes, we need AppKit])
|
||||
LIBS="$LIBS -framework AppKit"
|
||||
if test "$features" = "small" -a "$enable_multibyte" = "no"; then
|
||||
dnl Since FEAT_CLIPBOARD is to be defined in vim.h for FEAT_SMALL, define
|
||||
dnl FEAT_MBYTE in order not to compromise the interoperability of the
|
||||
dnl clipboard.
|
||||
AC_MSG_NOTICE([+multi_byte will be set in favor of +clipboard])
|
||||
enable_multibyte=yes
|
||||
AC_DEFINE(FEAT_MBYTE)
|
||||
fi
|
||||
fi
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
dnl As mentioned above, tiny build implies os_macosx.m isn't needed.
|
||||
dnl Exclude it from OS_EXTRA_SRC so that linker won't complain about
|
||||
dnl missing Objective-C symbols.
|
||||
if test "x$features" = "xtiny"; then
|
||||
OS_EXTRA_SRC=`echo "$OS_EXTRA_SRC" | sed -e 's+os_macosx.m++'`
|
||||
OS_EXTRA_OBJ=`echo "$OS_EXTRA_OBJ" | sed -e 's+objects/os_macosx.o++'`
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$MACOSX" = "xyes"; then
|
||||
if test "x$MACOS_X" = "xyes"; then
|
||||
AC_MSG_CHECKING(--with-xcodecfg argument)
|
||||
AC_ARG_WITH(xcodecfg,
|
||||
[ --with-xcodecfg=CFG Debug, Release (default: Release)],
|
||||
|
||||
+2
-2
@@ -321,7 +321,7 @@ static digr_T digraphdefault[] =
|
||||
};
|
||||
|
||||
# else
|
||||
# if defined(MACOS) && !defined(FEAT_MBYTE)
|
||||
# if defined(MACOS_X) && !defined(FEAT_MBYTE)
|
||||
|
||||
/*
|
||||
* Macintosh digraphs
|
||||
@@ -449,7 +449,7 @@ static digr_T digraphdefault[] =
|
||||
{NUL, NUL, NUL}
|
||||
};
|
||||
|
||||
# else /* !MACOS */
|
||||
# else /* !MACOS_X */
|
||||
|
||||
# ifdef OLD_DIGRAPHS
|
||||
|
||||
|
||||
+36
-8
@@ -80,21 +80,23 @@ char *(remap_choices[]) =
|
||||
"Do not remap keys for Windows behavior",
|
||||
"Remap a few keys for Windows behavior (CTRL-V, CTRL-C, CTRL-F, etc)",
|
||||
};
|
||||
int remap_choice = (int)remap_win;
|
||||
int remap_choice = (int)remap_no;
|
||||
char *remap_text = "- %s";
|
||||
|
||||
enum
|
||||
{
|
||||
mouse_xterm = 1,
|
||||
mouse_mswin
|
||||
mouse_mswin,
|
||||
mouse_default
|
||||
};
|
||||
char *(mouse_choices[]) =
|
||||
{
|
||||
"\nChoose the way how Vim uses the mouse:",
|
||||
"right button extends selection (the Unix way)",
|
||||
"right button has a popup menu (the Windows way)",
|
||||
"right button has a popup menu, left button starts select mode (the Windows way)",
|
||||
"right button has a popup menu, left button starts visual mode",
|
||||
};
|
||||
int mouse_choice = (int)mouse_mswin;
|
||||
int mouse_choice = (int)mouse_default;
|
||||
char *mouse_text = "- The mouse %s";
|
||||
|
||||
enum
|
||||
@@ -155,8 +157,7 @@ get_choice(char **table, int entries)
|
||||
{
|
||||
if (idx)
|
||||
printf("%2d ", idx);
|
||||
printf(table[idx]);
|
||||
printf("\n");
|
||||
puts(table[idx]);
|
||||
}
|
||||
printf("Choice: ");
|
||||
if (scanf("%d", &answer) != 1)
|
||||
@@ -1176,6 +1177,8 @@ install_vimrc(int idx)
|
||||
case mouse_mswin:
|
||||
fprintf(fd, "behave mswin\n");
|
||||
break;
|
||||
case mouse_default:
|
||||
break;
|
||||
}
|
||||
if ((tfd = fopen("diff.exe", "r")) != NULL)
|
||||
{
|
||||
@@ -2205,6 +2208,10 @@ print_cmd_line_help(void)
|
||||
printf(" Create .bat files for Vim variants in the Windows directory.\n");
|
||||
printf("-create-vimrc\n");
|
||||
printf(" Create a default _vimrc file if one does not already exist.\n");
|
||||
printf("-vimrc-remap [no|win]\n");
|
||||
printf(" Remap keys when creating a default _vimrc file.\n");
|
||||
printf("-vimrc-behave [unix|mswin|default]\n");
|
||||
printf(" Set mouse behavior when creating a default _vimrc file.\n");
|
||||
printf("-install-popup\n");
|
||||
printf(" Install the Edit-with-Vim context menu entry\n");
|
||||
printf("-install-openwith\n");
|
||||
@@ -2260,6 +2267,28 @@ command_line_setup_choices(int argc, char **argv)
|
||||
*/
|
||||
init_vimrc_choices();
|
||||
}
|
||||
else if (strcmp(argv[i], "-vimrc-remap") == 0)
|
||||
{
|
||||
if (i + 1 == argc)
|
||||
break;
|
||||
i++;
|
||||
if (strcmp(argv[i], "no") == 0)
|
||||
remap_choice = remap_no;
|
||||
else if (strcmp(argv[i], "win") == 0)
|
||||
remap_choice = remap_win;
|
||||
}
|
||||
else if (strcmp(argv[i], "-vimrc-behave") == 0)
|
||||
{
|
||||
if (i + 1 == argc)
|
||||
break;
|
||||
i++;
|
||||
if (strcmp(argv[i], "unix") == 0)
|
||||
mouse_choice = mouse_xterm;
|
||||
else if (strcmp(argv[i], "mswin") == 0)
|
||||
mouse_choice = mouse_mswin;
|
||||
else if (strcmp(argv[i], "default") == 0)
|
||||
mouse_choice = mouse_default;
|
||||
}
|
||||
else if (strcmp(argv[i], "-install-popup") == 0)
|
||||
{
|
||||
init_popup_choice();
|
||||
@@ -2424,8 +2453,7 @@ NULL
|
||||
printf("\n");
|
||||
for (i = 0; items[i] != NULL; ++i)
|
||||
{
|
||||
printf(items[i]);
|
||||
printf("\n");
|
||||
puts(items[i]);
|
||||
printf("Hit Enter to continue, b (back) or q (quit help): ");
|
||||
c = getchar();
|
||||
rewind(stdin);
|
||||
|
||||
+2
-2
@@ -5991,7 +5991,7 @@ insert_special(
|
||||
* Only use mod_mask for special keys, to avoid things like <S-Space>,
|
||||
* unless 'allow_modmask' is TRUE.
|
||||
*/
|
||||
#ifdef MACOS
|
||||
#ifdef MACOS_X
|
||||
/* Command-key never produces a normal key */
|
||||
if (mod_mask & MOD_MASK_CMD)
|
||||
allow_modmask = TRUE;
|
||||
@@ -8770,7 +8770,7 @@ ins_start_select(int c)
|
||||
case K_KPAGEUP:
|
||||
case K_PAGEDOWN:
|
||||
case K_KPAGEDOWN:
|
||||
# ifdef MACOS
|
||||
# ifdef MACOS_X
|
||||
case K_LEFT:
|
||||
case K_RIGHT:
|
||||
case K_UP:
|
||||
|
||||
+8
-9
@@ -24,7 +24,7 @@
|
||||
# include <float.h>
|
||||
#endif
|
||||
|
||||
#ifdef MACOS
|
||||
#ifdef MACOS_X
|
||||
# include <time.h> /* for time_t */
|
||||
#endif
|
||||
|
||||
@@ -5546,14 +5546,13 @@ f_has(typval_T *argvars, typval_T *rettv)
|
||||
#ifdef __BEOS__
|
||||
"beos",
|
||||
#endif
|
||||
#ifdef MACOS
|
||||
"mac",
|
||||
#endif
|
||||
#if defined(MACOS_X_UNIX)
|
||||
"macunix", /* built with 'darwin' enabled */
|
||||
#endif
|
||||
#if defined(__APPLE__) && __APPLE__ == 1
|
||||
"osx", /* built with or without 'darwin' enabled */
|
||||
#ifdef MACOS_X
|
||||
"mac", /* Mac OS X (and, once, Mac OS Classic) */
|
||||
"osx", /* Mac OS X */
|
||||
# ifdef MACOS_X_DARWIN
|
||||
"macunix", /* Mac OS X, with the darwin feature */
|
||||
"osxdarwin", /* synonym for macunix */
|
||||
# endif
|
||||
#endif
|
||||
#ifdef __QNX__
|
||||
"qnx",
|
||||
|
||||
@@ -131,6 +131,7 @@ do_debug(char_u *cmd)
|
||||
redir_off = TRUE; /* don't redirect debug commands */
|
||||
|
||||
State = NORMAL;
|
||||
debug_mode = TRUE;
|
||||
|
||||
if (!debug_did_msg)
|
||||
MSG(_("Entering Debug mode. Type \"cont\" to continue."));
|
||||
@@ -319,6 +320,7 @@ do_debug(char_u *cmd)
|
||||
msg_scroll = save_msg_scroll;
|
||||
lines_left = Rows - 1;
|
||||
State = save_State;
|
||||
debug_mode = FALSE;
|
||||
did_emsg = save_did_emsg;
|
||||
cmd_silent = save_cmd_silent;
|
||||
msg_silent = save_msg_silent;
|
||||
|
||||
+6
-1
@@ -10742,9 +10742,12 @@ eval_vars(
|
||||
if (*s == '<') /* "#<99" uses v:oldfiles */
|
||||
++s;
|
||||
i = (int)getdigits(&s);
|
||||
if (s == src + 2 && src[1] == '-')
|
||||
/* just a minus sign, don't skip over it */
|
||||
s--;
|
||||
*usedlen = (int)(s - src); /* length of what we expand */
|
||||
|
||||
if (src[1] == '<')
|
||||
if (src[1] == '<' && i != 0)
|
||||
{
|
||||
if (*usedlen < 2)
|
||||
{
|
||||
@@ -10767,6 +10770,8 @@ eval_vars(
|
||||
}
|
||||
else
|
||||
{
|
||||
if (i == 0 && src[1] == '<' && *usedlen > 1)
|
||||
*usedlen = 1;
|
||||
buf = buflist_findnr(i);
|
||||
if (buf == NULL)
|
||||
{
|
||||
|
||||
+14
-2
@@ -1723,8 +1723,9 @@ getcmdline(
|
||||
if (p_is && !cmd_silent && (firstc == '/' || firstc == '?'))
|
||||
{
|
||||
pos_T t;
|
||||
int search_flags = SEARCH_KEEP + SEARCH_NOOF;
|
||||
int search_flags = SEARCH_NOOF;
|
||||
|
||||
save_last_search_pattern();
|
||||
cursor_off();
|
||||
out_flush();
|
||||
if (c == Ctrl_G)
|
||||
@@ -1734,6 +1735,8 @@ getcmdline(
|
||||
}
|
||||
else
|
||||
t = match_start;
|
||||
if (!p_hls)
|
||||
search_flags += SEARCH_KEEP;
|
||||
++emsg_off;
|
||||
i = searchit(curwin, curbuf, &t,
|
||||
c == Ctrl_G ? FORWARD : BACKWARD,
|
||||
@@ -1785,6 +1788,7 @@ getcmdline(
|
||||
# endif
|
||||
old_botline = curwin->w_botline;
|
||||
update_screen(NOT_VALID);
|
||||
restore_last_search_pattern();
|
||||
redrawcmdline();
|
||||
}
|
||||
else
|
||||
@@ -1942,12 +1946,17 @@ cmdline_changed:
|
||||
}
|
||||
incsearch_postponed = FALSE;
|
||||
curwin->w_cursor = search_start; /* start at old position */
|
||||
save_last_search_pattern();
|
||||
|
||||
/* If there is no command line, don't do anything */
|
||||
if (ccline.cmdlen == 0)
|
||||
{
|
||||
i = 0;
|
||||
SET_NO_HLSEARCH(TRUE); /* turn off previous highlight */
|
||||
}
|
||||
else
|
||||
{
|
||||
int search_flags = SEARCH_OPT + SEARCH_NOOF + SEARCH_PEEK;
|
||||
cursor_off(); /* so the user knows we're busy */
|
||||
out_flush();
|
||||
++emsg_off; /* So it doesn't beep if bad expr */
|
||||
@@ -1955,8 +1964,10 @@ cmdline_changed:
|
||||
/* Set the time limit to half a second. */
|
||||
profile_setlimit(500L, &tm);
|
||||
#endif
|
||||
if (!p_hls)
|
||||
search_flags += SEARCH_KEEP;
|
||||
i = do_search(NULL, firstc, ccline.cmdbuff, count,
|
||||
SEARCH_KEEP + SEARCH_OPT + SEARCH_NOOF + SEARCH_PEEK,
|
||||
search_flags,
|
||||
#ifdef FEAT_RELTIME
|
||||
&tm, NULL
|
||||
#else
|
||||
@@ -2013,6 +2024,7 @@ cmdline_changed:
|
||||
save_cmdline(&save_ccline);
|
||||
update_screen(SOME_VALID);
|
||||
restore_cmdline(&save_ccline);
|
||||
restore_last_search_pattern();
|
||||
|
||||
/* Leave it at the end to make CTRL-R CTRL-W work. */
|
||||
if (i != 0)
|
||||
|
||||
+4
-4
@@ -61,10 +61,10 @@
|
||||
*/
|
||||
#if !defined(FEAT_TINY) && !defined(FEAT_SMALL) && !defined(FEAT_NORMAL) \
|
||||
&& !defined(FEAT_BIG) && !defined(FEAT_HUGE)
|
||||
# if defined(UNIX) || defined(WIN3264) || defined(MACOS)
|
||||
# if defined(UNIX) || defined(WIN3264) || defined(MACOS_X)
|
||||
# define FEAT_HUGE
|
||||
# else
|
||||
# if defined(MSWIN) || defined(VMS) || defined(MACOS) || defined(AMIGA)
|
||||
# if defined(MSWIN) || defined(VMS) || defined(AMIGA)
|
||||
# define FEAT_BIG
|
||||
# else
|
||||
# define FEAT_NORMAL
|
||||
@@ -363,7 +363,7 @@
|
||||
*/
|
||||
#ifdef FEAT_NORMAL
|
||||
# define FEAT_EVAL
|
||||
# if defined(HAVE_FLOAT_FUNCS) || defined(WIN3264) || defined(MACOS)
|
||||
# if defined(HAVE_FLOAT_FUNCS) || defined(WIN3264) || defined(MACOS_X)
|
||||
# define FEAT_FLOAT
|
||||
# endif
|
||||
# if defined(HAVE_STDINT_H) || defined(WIN3264) || (VIM_SIZEOF_LONG >= 8)
|
||||
@@ -783,7 +783,7 @@
|
||||
* there is no terminal version, and on Windows we can't figure out how to
|
||||
* fork one off with :gui.
|
||||
*/
|
||||
#if defined(FEAT_GUI_MSWIN) || (defined(FEAT_GUI_MAC) && !defined(MACOS_X_UNIX))
|
||||
#if defined(FEAT_GUI_MSWIN) || (defined(FEAT_GUI_MAC) && !defined(MACOS_X_DARWIN))
|
||||
# define ALWAYS_USE_GUI
|
||||
#endif
|
||||
|
||||
|
||||
+13
-37
@@ -68,7 +68,7 @@ static int au_find_group(char_u *name);
|
||||
# define FIO_PUT_CP(x) (((x) & 0xffff) << 16) /* put codepage in top word */
|
||||
# define FIO_GET_CP(x) (((x)>>16) & 0xffff) /* get codepage from top word */
|
||||
# endif
|
||||
# ifdef MACOS_X
|
||||
# ifdef MACOS_CONVERT
|
||||
# define FIO_MACROMAN 0x20 /* convert MacRoman */
|
||||
# endif
|
||||
# define FIO_ENDIAN_L 0x80 /* little endian */
|
||||
@@ -127,7 +127,7 @@ static int make_bom(char_u *buf, char_u *name);
|
||||
# ifdef WIN3264
|
||||
static int get_win_fio_flags(char_u *ptr);
|
||||
# endif
|
||||
# ifdef MACOS_X
|
||||
# ifdef MACOS_CONVERT
|
||||
static int get_mac_fio_flags(char_u *ptr);
|
||||
# endif
|
||||
#endif
|
||||
@@ -1088,7 +1088,7 @@ retry:
|
||||
fio_flags = get_win_fio_flags(fenc);
|
||||
# endif
|
||||
|
||||
# ifdef MACOS_X
|
||||
# ifdef MACOS_CONVERT
|
||||
/* Conversion from Apple MacRoman to latin1 or UTF-8 */
|
||||
if (fio_flags == 0)
|
||||
fio_flags = get_mac_fio_flags(fenc);
|
||||
@@ -1274,7 +1274,7 @@ retry:
|
||||
else if (fio_flags & FIO_CODEPAGE)
|
||||
size = size / ICONV_MULT; /* also worst case */
|
||||
# endif
|
||||
# ifdef MACOS_X
|
||||
# ifdef MACOS_CONVERT
|
||||
else if (fio_flags & FIO_MACROMAN)
|
||||
size = size / ICONV_MULT; /* also worst case */
|
||||
# endif
|
||||
@@ -1956,17 +1956,17 @@ retry:
|
||||
{
|
||||
if (fio_flags & FIO_ENDIAN_L)
|
||||
{
|
||||
u8c = (*--p << 24);
|
||||
u8c += (*--p << 16);
|
||||
u8c += (*--p << 8);
|
||||
u8c = (unsigned)*--p << 24;
|
||||
u8c += (unsigned)*--p << 16;
|
||||
u8c += (unsigned)*--p << 8;
|
||||
u8c += *--p;
|
||||
}
|
||||
else /* big endian */
|
||||
{
|
||||
u8c = *--p;
|
||||
u8c += (*--p << 8);
|
||||
u8c += (*--p << 16);
|
||||
u8c += (*--p << 24);
|
||||
u8c += (unsigned)*--p << 8;
|
||||
u8c += (unsigned)*--p << 16;
|
||||
u8c += (unsigned)*--p << 24;
|
||||
}
|
||||
}
|
||||
else /* UTF-8 */
|
||||
@@ -4200,20 +4200,6 @@ buf_write(
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef MACOS_CLASSIC /* TODO: Is it need for MACOS_X? (Dany) */
|
||||
/*
|
||||
* Before risking to lose the original file verify if there's
|
||||
* a resource fork to preserve, and if cannot be done warn
|
||||
* the users. This happens when overwriting without backups.
|
||||
*/
|
||||
if (backup == NULL && overwriting && !append)
|
||||
if (mch_has_resource_fork(fname))
|
||||
{
|
||||
errmsg = (char_u *)_("E460: The resource fork would be lost (add ! to override)");
|
||||
goto restore_backup;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef VMS
|
||||
vms_remove_version(fname); /* remove version */
|
||||
#endif
|
||||
@@ -4271,7 +4257,7 @@ buf_write(
|
||||
}
|
||||
# endif
|
||||
|
||||
# ifdef MACOS_X
|
||||
# ifdef MACOS_CONVERT
|
||||
if (converted && wb_flags == 0 && (wb_flags = get_mac_fio_flags(fenc)) != 0)
|
||||
{
|
||||
write_info.bw_conv_buflen = bufsize * 3;
|
||||
@@ -4474,13 +4460,7 @@ restore_backup:
|
||||
}
|
||||
write_info.bw_fd = fd;
|
||||
|
||||
#if defined(MACOS_CLASSIC) || defined(WIN3264)
|
||||
/* TODO: Is it need for MACOS_X? (Dany) */
|
||||
/*
|
||||
* On macintosh copy the original files attributes (i.e. the backup)
|
||||
* This is done in order to preserve the resource fork and the
|
||||
* Finder attribute (label, comments, custom icons, file creator)
|
||||
*/
|
||||
#if defined(WIN3264)
|
||||
if (backup != NULL && overwriting && !append)
|
||||
{
|
||||
if (backup_copy)
|
||||
@@ -5199,10 +5179,6 @@ nofail:
|
||||
|
||||
got_int |= prev_got_int;
|
||||
|
||||
#ifdef MACOS_CLASSIC /* TODO: Is it need for MACOS_X? (Dany) */
|
||||
/* Update machine specific information. */
|
||||
mch_post_buffer_write(buf);
|
||||
#endif
|
||||
#ifdef FEAT_ODB_EDITOR
|
||||
odb_post_buffer_write(buf);
|
||||
#endif
|
||||
@@ -5976,7 +5952,7 @@ get_win_fio_flags(char_u *ptr)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef MACOS_X
|
||||
#ifdef MACOS_CONVERT
|
||||
/*
|
||||
* Check "ptr" for a Carbon supported encoding and return the FIO_ flags
|
||||
* needed for the internal conversion to/from utf-8 or latin1.
|
||||
|
||||
+6
-5
@@ -1893,7 +1893,7 @@ char_avail(void)
|
||||
int retval;
|
||||
|
||||
#ifdef FEAT_EVAL
|
||||
/* When test_disable_char_avail(1) was called pretend there is no
|
||||
/* When test_override("char_avail", 1) was called pretend there is no
|
||||
* typeahead. */
|
||||
if (disable_char_avail_for_testing)
|
||||
return FALSE;
|
||||
@@ -5257,7 +5257,7 @@ check_map(
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(MSWIN) || defined(MACOS)
|
||||
#if defined(MSWIN) || defined(MACOS_X)
|
||||
|
||||
#define VIS_SEL (VISUAL+SELECTMODE) /* abbreviation */
|
||||
|
||||
@@ -5308,7 +5308,7 @@ static struct initmap
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(MACOS)
|
||||
#if defined(MACOS_X)
|
||||
# if !defined(FEAT_GUI_MACVIM)
|
||||
/* Use the Standard MacOS binding. */
|
||||
/* paste, copy and cut */
|
||||
@@ -5332,7 +5332,7 @@ static struct initmap
|
||||
void
|
||||
init_mappings(void)
|
||||
{
|
||||
#if defined(MSWIN) ||defined(MACOS)
|
||||
#if defined(MSWIN) || defined(MACOS_X)
|
||||
int i;
|
||||
|
||||
for (i = 0; i < (int)(sizeof(initmappings) / sizeof(struct initmap)); ++i)
|
||||
@@ -5340,7 +5340,8 @@ init_mappings(void)
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined(MSWIN) || defined(FEAT_CMDWIN) || defined(MACOS) || defined(PROTO)
|
||||
#if defined(MSWIN) || defined(FEAT_CMDWIN) || defined(MACOS_X) \
|
||||
|| defined(PROTO)
|
||||
/*
|
||||
* Add a mapping "map" for mode "mode".
|
||||
* Need to put string in allocated memory, because do_map() will modify it.
|
||||
|
||||
+9
-4
@@ -924,9 +924,13 @@ EXTERN char_u composing_hangul_buffer[5];
|
||||
* "Visual_mode" When State is NORMAL or INSERT.
|
||||
* "finish_op" When State is NORMAL, after typing the operator and before
|
||||
* typing the motion command.
|
||||
* "debug_mode" Debug mode.
|
||||
*/
|
||||
EXTERN int State INIT(= NORMAL); /* This is the current state of the
|
||||
* command interpreter. */
|
||||
#ifdef FEAT_EVAL
|
||||
EXTERN int debug_mode INIT(= FALSE);
|
||||
#endif
|
||||
|
||||
EXTERN int finish_op INIT(= FALSE);/* TRUE while an operator is pending */
|
||||
EXTERN long opcount INIT(= 0); /* count for pending operator */
|
||||
@@ -1425,8 +1429,9 @@ EXTERN char_u e_failed[] INIT(= N_("E472: Command failed"));
|
||||
#if defined(FEAT_GUI) && defined(FEAT_XFONTSET)
|
||||
EXTERN char_u e_fontset[] INIT(= N_("E234: Unknown fontset: %s"));
|
||||
#endif
|
||||
#if defined(FEAT_GUI_X11) || defined(FEAT_GUI_GTK) || defined(MACOS) \
|
||||
|| defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MSWIN)
|
||||
#if defined(FEAT_GUI_X11) || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_MAC) \
|
||||
|| defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MSWIN) \
|
||||
|| defined(FEAT_GUI_MACVIM)
|
||||
EXTERN char_u e_font[] INIT(= N_("E235: Unknown font: %s"));
|
||||
#endif
|
||||
#if defined(FEAT_GUI_X11) && !defined(FEAT_GUI_GTK)
|
||||
@@ -1545,7 +1550,7 @@ EXTERN char_u e_readerrf[] INIT(= N_("E47: Error while reading errorfile"));
|
||||
EXTERN char_u e_sandbox[] INIT(= N_("E48: Not allowed in sandbox"));
|
||||
#endif
|
||||
EXTERN char_u e_secure[] INIT(= N_("E523: Not allowed here"));
|
||||
#if defined(AMIGA) || defined(MACOS) || defined(MSWIN) \
|
||||
#if defined(AMIGA) || defined(MACOS_X) || defined(MSWIN) \
|
||||
|| defined(UNIX) || defined(VMS)
|
||||
EXTERN char_u e_screenmode[] INIT(= N_("E359: Screen mode setting not supported"));
|
||||
#endif
|
||||
@@ -1592,7 +1597,7 @@ EXTERN char_u e_invalidreg[] INIT(= N_("E850: Invalid register name"));
|
||||
#endif
|
||||
EXTERN char_u e_dirnotf[] INIT(= N_("E919: Directory not found in '%s': \"%s\""));
|
||||
|
||||
#ifdef MACOS_X_UNIX
|
||||
#ifdef FEAT_GUI_MAC
|
||||
EXTERN short disallow_gui INIT(= FALSE);
|
||||
#endif
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ static void gui_set_fg_color(char_u *name);
|
||||
static void gui_set_bg_color(char_u *name);
|
||||
static win_T *xy2win(int x, int y);
|
||||
|
||||
#if defined(UNIX) && !defined(MACOS_X) && !defined(__APPLE__)
|
||||
#if defined(UNIX) && !defined(FEAT_GUI_MAC)
|
||||
# define MAY_FORK
|
||||
static void gui_do_fork(void);
|
||||
|
||||
@@ -2454,9 +2454,14 @@ gui_outstr_nowrap(
|
||||
int cl; /* byte length of current char */
|
||||
int comping; /* current char is composing */
|
||||
int scol = col; /* screen column */
|
||||
int curr_wide; /* use 'guifontwide' */
|
||||
int curr_wide = FALSE; /* use 'guifontwide' */
|
||||
int prev_wide = FALSE;
|
||||
int wide_changed;
|
||||
# ifdef WIN3264
|
||||
int sep_comp = FALSE; /* Don't separate composing chars. */
|
||||
# else
|
||||
int sep_comp = TRUE; /* Separate composing chars. */
|
||||
# endif
|
||||
|
||||
/* Break the string at a composing character, it has to be drawn on
|
||||
* top of the previous character. */
|
||||
@@ -2466,21 +2471,24 @@ gui_outstr_nowrap(
|
||||
{
|
||||
c = utf_ptr2char(s + i);
|
||||
cn = utf_char2cells(c);
|
||||
# ifdef FEAT_GUI_MACVIM
|
||||
curr_wide = (cn > 1);
|
||||
# else
|
||||
if (cn > 1
|
||||
# ifdef FEAT_XFONTSET
|
||||
&& fontset == NOFONTSET
|
||||
# endif
|
||||
&& wide_font != NOFONT)
|
||||
curr_wide = TRUE;
|
||||
else
|
||||
curr_wide = FALSE;
|
||||
# endif
|
||||
comping = utf_iscomposing(c);
|
||||
if (!comping) /* count cells from non-composing chars */
|
||||
cells += cn;
|
||||
if (!comping || sep_comp)
|
||||
{
|
||||
# ifdef FEAT_GUI_MACVIM
|
||||
curr_wide = (cn > 1);
|
||||
# else
|
||||
if (cn > 1
|
||||
# ifdef FEAT_XFONTSET
|
||||
&& fontset == NOFONTSET
|
||||
# endif
|
||||
&& wide_font != NOFONT)
|
||||
curr_wide = TRUE;
|
||||
else
|
||||
curr_wide = FALSE;
|
||||
# endif
|
||||
}
|
||||
cl = utf_ptr2len(s + i);
|
||||
if (cl == 0) /* hit end of string */
|
||||
len = i + cl; /* len must be wrong "cannot happen" */
|
||||
@@ -2489,7 +2497,8 @@ gui_outstr_nowrap(
|
||||
|
||||
/* Print the string so far if it's the last character or there is
|
||||
* a composing character. */
|
||||
if (i + cl >= len || (comping && i > start) || wide_changed
|
||||
if (i + cl >= len || (comping && sep_comp && i > start)
|
||||
|| wide_changed
|
||||
# if defined(FEAT_GUI_X11)
|
||||
|| (cn > 1
|
||||
# ifdef FEAT_XFONTSET
|
||||
@@ -2501,7 +2510,7 @@ gui_outstr_nowrap(
|
||||
# endif
|
||||
)
|
||||
{
|
||||
if (comping || wide_changed)
|
||||
if ((comping && sep_comp) || wide_changed)
|
||||
thislen = i - start;
|
||||
else
|
||||
thislen = i - start + cl;
|
||||
@@ -2525,7 +2534,7 @@ gui_outstr_nowrap(
|
||||
cells = 0;
|
||||
/* Adjust to not draw a character which width is changed
|
||||
* against with last one. */
|
||||
if (wide_changed && !comping)
|
||||
if (wide_changed && !(comping && sep_comp))
|
||||
{
|
||||
scol -= cn;
|
||||
cl = 0;
|
||||
@@ -2544,10 +2553,10 @@ gui_outstr_nowrap(
|
||||
# endif
|
||||
}
|
||||
/* Draw a composing char on top of the previous char. */
|
||||
if (comping)
|
||||
if (comping && sep_comp)
|
||||
{
|
||||
# if !defined(FEAT_GUI_MACVIM) && \
|
||||
(defined(__APPLE_CC__) || defined(__MRC__)) && TARGET_API_MAC_CARBON
|
||||
(defined(__APPLE_CC__) && TARGET_API_MAC_CARBON)
|
||||
/* Carbon ATSUI autodraws composing char over previous char */
|
||||
gui_mch_draw_string(gui.row, scol, s + i, cl,
|
||||
draw_flags | DRAW_TRANSP);
|
||||
|
||||
+1
-3
@@ -267,9 +267,7 @@ static struct
|
||||
/* {XK_Help, '%', '1'}, */
|
||||
/* {XK_Undo, '&', '8'}, */
|
||||
/* {XK_BackSpace, 'k', 'b'}, */
|
||||
#ifndef MACOS_X
|
||||
{vk_Delete, 'k', 'b'},
|
||||
#endif
|
||||
/* {vk_Delete, 'k', 'b'}, */
|
||||
{vk_Insert, 'k', 'I'},
|
||||
{vk_FwdDelete, 'k', 'D'},
|
||||
{vk_Home, 'k', 'h'},
|
||||
|
||||
+13
-6
@@ -6295,8 +6295,8 @@ gui_mch_draw_string(
|
||||
|
||||
if (enc_utf8 && n < len && unicodebuf != NULL)
|
||||
{
|
||||
/* Output UTF-8 characters. Caller has already separated
|
||||
* composing characters. */
|
||||
/* Output UTF-8 characters. Composing characters should be
|
||||
* handled here. */
|
||||
int i;
|
||||
int wlen; /* string length in words */
|
||||
int clen; /* string length in characters */
|
||||
@@ -6320,9 +6320,16 @@ gui_mch_draw_string(
|
||||
{
|
||||
unicodebuf[wlen++] = c;
|
||||
}
|
||||
cw = utf_char2cells(c);
|
||||
if (cw > 2) /* don't use 4 for unprintable char */
|
||||
cw = 1;
|
||||
|
||||
if (utf_iscomposing(c))
|
||||
cw = 0;
|
||||
else
|
||||
{
|
||||
cw = utf_char2cells(c);
|
||||
if (cw > 2) /* don't use 4 for unprintable char */
|
||||
cw = 1;
|
||||
}
|
||||
|
||||
if (unicodepdy != NULL)
|
||||
{
|
||||
/* Use unicodepdy to make characters fit as we expect, even
|
||||
@@ -6337,7 +6344,7 @@ gui_mch_draw_string(
|
||||
unicodepdy[wlen - 1] = cw * gui.char_width;
|
||||
}
|
||||
cells += cw;
|
||||
i += utfc_ptr2len_len(text + i, len - i);
|
||||
i += utf_ptr2len_len(text + i, len - i);
|
||||
++clen;
|
||||
}
|
||||
#if defined(FEAT_DIRECTX)
|
||||
|
||||
@@ -74,10 +74,6 @@
|
||||
# undef PY_SSIZE_T_CLEAN
|
||||
#endif
|
||||
|
||||
#if defined(MACOS) && !defined(MACOS_X_UNIX)
|
||||
# include "macglue.h"
|
||||
# include <CodeFragments.h>
|
||||
#endif
|
||||
#undef main /* Defined in python.h - aargh */
|
||||
#undef HAVE_FCNTL_H /* Clash with os_win32.h */
|
||||
|
||||
@@ -956,11 +952,7 @@ Python_Init(void)
|
||||
Py_NoSiteFlag++;
|
||||
#endif
|
||||
|
||||
#if !defined(MACOS) || defined(MACOS_X_UNIX)
|
||||
Py_Initialize();
|
||||
#else
|
||||
PyMac_Initialize();
|
||||
#endif
|
||||
|
||||
#if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02070000
|
||||
/* 'import site' explicitly. */
|
||||
@@ -1032,9 +1024,6 @@ DoPyCommand(const char *cmd, rangeinitializer init_range, runner run, void *arg)
|
||||
#ifndef PY_CAN_RECURSE
|
||||
static int recursive = 0;
|
||||
#endif
|
||||
#if defined(MACOS) && !defined(MACOS_X_UNIX)
|
||||
GrafPtr oldPort;
|
||||
#endif
|
||||
#if defined(HAVE_LOCALE_H) || defined(X_LOCALE)
|
||||
char *saved_locale;
|
||||
#endif
|
||||
@@ -1053,12 +1042,6 @@ DoPyCommand(const char *cmd, rangeinitializer init_range, runner run, void *arg)
|
||||
if (python_end_called)
|
||||
return;
|
||||
|
||||
#if defined(MACOS) && !defined(MACOS_X_UNIX)
|
||||
GetPort(&oldPort);
|
||||
/* Check if the Python library is available */
|
||||
if ((Ptr)PyMac_Initialize == (Ptr)kUnresolvedCFragSymbolAddress)
|
||||
goto theend;
|
||||
#endif
|
||||
if (Python_Init())
|
||||
goto theend;
|
||||
|
||||
@@ -1107,9 +1090,6 @@ DoPyCommand(const char *cmd, rangeinitializer init_range, runner run, void *arg)
|
||||
|
||||
Python_Lock_Vim(); /* enter vim */
|
||||
PythonIO_Flush();
|
||||
#if defined(MACOS) && !defined(MACOS_X_UNIX)
|
||||
SetPort(oldPort);
|
||||
#endif
|
||||
|
||||
theend:
|
||||
#ifndef PY_CAN_RECURSE
|
||||
|
||||
+1
-20
@@ -74,10 +74,6 @@
|
||||
|
||||
#include <Python.h>
|
||||
|
||||
#if defined(MACOS) && !defined(MACOS_X_UNIX)
|
||||
# include "macglue.h"
|
||||
# include <CodeFragments.h>
|
||||
#endif
|
||||
#undef main /* Defined in python.h - aargh */
|
||||
#undef HAVE_FCNTL_H /* Clash with os_win32.h */
|
||||
|
||||
@@ -885,11 +881,8 @@ Python3_Init(void)
|
||||
|
||||
PyImport_AppendInittab("vim", Py3Init_vim);
|
||||
|
||||
#if !defined(MACOS) || defined(MACOS_X_UNIX)
|
||||
Py_Initialize();
|
||||
#else
|
||||
PyMac_Initialize();
|
||||
#endif
|
||||
|
||||
/* Initialise threads, and below save the state using
|
||||
* PyEval_SaveThread. Without the call to PyEval_SaveThread, thread
|
||||
* specific state (such as the system trace hook), will be lost
|
||||
@@ -943,9 +936,6 @@ fail:
|
||||
static void
|
||||
DoPyCommand(const char *cmd, rangeinitializer init_range, runner run, void *arg)
|
||||
{
|
||||
#if defined(MACOS) && !defined(MACOS_X_UNIX)
|
||||
GrafPtr oldPort;
|
||||
#endif
|
||||
#if defined(HAVE_LOCALE_H) || defined(X_LOCALE)
|
||||
char *saved_locale;
|
||||
#endif
|
||||
@@ -956,12 +946,6 @@ DoPyCommand(const char *cmd, rangeinitializer init_range, runner run, void *arg)
|
||||
if (python_end_called)
|
||||
goto theend;
|
||||
|
||||
#if defined(MACOS) && !defined(MACOS_X_UNIX)
|
||||
GetPort(&oldPort);
|
||||
/* Check if the Python library is available */
|
||||
if ((Ptr)PyMac_Initialize == (Ptr)kUnresolvedCFragSymbolAddress)
|
||||
goto theend;
|
||||
#endif
|
||||
if (Python3_Init())
|
||||
goto theend;
|
||||
|
||||
@@ -1006,9 +990,6 @@ DoPyCommand(const char *cmd, rangeinitializer init_range, runner run, void *arg)
|
||||
|
||||
Python_Lock_Vim(); /* enter vim */
|
||||
PythonIO_Flush();
|
||||
#if defined(MACOS) && !defined(MACOS_X_UNIX)
|
||||
SetPort(oldPort);
|
||||
#endif
|
||||
|
||||
theend:
|
||||
return; /* keeps lint happy */
|
||||
|
||||
+9
-5
@@ -136,7 +136,7 @@
|
||||
#undef _
|
||||
|
||||
/* T_DATA defined both by Ruby and Mac header files, hack around it... */
|
||||
#if defined(MACOS_X_UNIX) || defined(macintosh)
|
||||
#if defined(MACOS_X)
|
||||
# define __OPENTRANSPORT__
|
||||
# define __OPENTRANSPORTPROTOCOL__
|
||||
# define __OPENTRANSPORTPROVIDERS__
|
||||
@@ -260,7 +260,8 @@ static void ruby_vim_init(void);
|
||||
# endif
|
||||
# define rb_lastline_get dll_rb_lastline_get
|
||||
# define rb_lastline_set dll_rb_lastline_set
|
||||
# define rb_load_protect dll_rb_load_protect
|
||||
# define rb_protect dll_rb_protect
|
||||
# define rb_load dll_rb_load
|
||||
# ifndef RUBY19_OR_LATER
|
||||
# define rb_num2long dll_rb_num2long
|
||||
# endif
|
||||
@@ -385,7 +386,8 @@ static unsigned long (*dll_rb_num2uint) (VALUE);
|
||||
# endif
|
||||
static VALUE (*dll_rb_lastline_get) (void);
|
||||
static void (*dll_rb_lastline_set) (VALUE);
|
||||
static void (*dll_rb_load_protect) (VALUE, int, int*);
|
||||
static void (*dll_rb_protect) (VALUE (*)(VALUE), int, int*);
|
||||
static void (*dll_rb_load) (VALUE, int);
|
||||
static long (*dll_rb_num2long) (VALUE);
|
||||
static unsigned long (*dll_rb_num2ulong) (VALUE);
|
||||
static VALUE (*dll_rb_obj_alloc) (VALUE);
|
||||
@@ -577,7 +579,8 @@ static struct
|
||||
# endif
|
||||
{"rb_lastline_get", (RUBY_PROC*)&dll_rb_lastline_get},
|
||||
{"rb_lastline_set", (RUBY_PROC*)&dll_rb_lastline_set},
|
||||
{"rb_load_protect", (RUBY_PROC*)&dll_rb_load_protect},
|
||||
{"rb_protect", (RUBY_PROC*)&dll_rb_protect},
|
||||
{"rb_load", (RUBY_PROC*)&dll_rb_load},
|
||||
{"rb_num2long", (RUBY_PROC*)&dll_rb_num2long},
|
||||
{"rb_num2ulong", (RUBY_PROC*)&dll_rb_num2ulong},
|
||||
{"rb_obj_alloc", (RUBY_PROC*)&dll_rb_obj_alloc},
|
||||
@@ -840,7 +843,8 @@ void ex_rubyfile(exarg_T *eap)
|
||||
|
||||
if (ensure_ruby_initialized())
|
||||
{
|
||||
rb_load_protect(rb_str_new2((char *) eap->arg), 0, &state);
|
||||
rb_protect((VALUE (*)(VALUE))rb_load, rb_str_new2((char *)eap->arg),
|
||||
&state);
|
||||
if (state) error_print(state);
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -493,7 +493,7 @@ enum key_extra
|
||||
#define MOD_MASK_2CLICK 0x20 /* use MOD_MASK_MULTI_CLICK */
|
||||
#define MOD_MASK_3CLICK 0x40 /* use MOD_MASK_MULTI_CLICK */
|
||||
#define MOD_MASK_4CLICK 0x60 /* use MOD_MASK_MULTI_CLICK */
|
||||
#ifdef MACOS
|
||||
#ifdef MACOS_X
|
||||
# define MOD_MASK_CMD 0x80
|
||||
#endif
|
||||
|
||||
|
||||
+3
-8
@@ -209,18 +209,13 @@
|
||||
# define mch_lstat(n, p) mch_stat((n), (p))
|
||||
#endif
|
||||
|
||||
#ifdef MACOS_CLASSIC
|
||||
/* MacOS classic doesn't support perm but MacOS X does. */
|
||||
# define mch_open(n, m, p) open((n), (m))
|
||||
#else
|
||||
# ifdef VMS
|
||||
#ifdef VMS
|
||||
/*
|
||||
* It is possible to force some record format with:
|
||||
* # define mch_open(n, m, p) open(vms_fixfilename(n), (m), (p)), "rat=cr", "rfm=stmlf", "mrs=0")
|
||||
* but it is not recommended, because it can destroy indexes etc.
|
||||
*/
|
||||
# define mch_open(n, m, p) open(vms_fixfilename(n), (m), (p))
|
||||
# endif
|
||||
# define mch_open(n, m, p) open(vms_fixfilename(n), (m), (p))
|
||||
#endif
|
||||
|
||||
/* mch_open_rw(): invoke mch_open() with third argument for user R/W. */
|
||||
@@ -266,7 +261,7 @@
|
||||
* PTR2CHAR(): get character from pointer.
|
||||
*/
|
||||
#ifdef FEAT_MBYTE
|
||||
/* Get the length of the character p points to */
|
||||
/* Get the length of the character p points to, including composing chars */
|
||||
# define MB_PTR2LEN(p) (has_mbyte ? (*mb_ptr2len)(p) : 1)
|
||||
/* Advance multi-byte pointer, skip over composing chars. */
|
||||
# define MB_PTR_ADV(p) p += has_mbyte ? (*mb_ptr2len)(p) : 1
|
||||
|
||||
+10
-15
@@ -315,7 +315,7 @@ main
|
||||
params.want_full_screen = FALSE;
|
||||
#endif
|
||||
|
||||
#if defined(FEAT_GUI_MAC) && defined(MACOS_X_UNIX)
|
||||
#if defined(FEAT_GUI_MAC) && defined(MACOS_X_DARWIN)
|
||||
/* When the GUI is started from Finder, need to display messages in a
|
||||
* message box. isatty(2) returns TRUE anyway, thus we need to check the
|
||||
* name to know we're not started from a terminal. */
|
||||
@@ -990,13 +990,6 @@ common_init(mparm_T *paramp)
|
||||
qnx_init(); /* PhAttach() for clipboard, (and gui) */
|
||||
#endif
|
||||
|
||||
#ifdef MAC_OS_CLASSIC
|
||||
/* Prepare for possibly starting GUI sometime */
|
||||
/* Macintosh needs this before any memory is allocated. */
|
||||
gui_prepare(¶mp->argc, paramp->argv);
|
||||
TIME_MSG("GUI prepared");
|
||||
#endif
|
||||
|
||||
/* Init the table of Normal mode commands. */
|
||||
init_normal_cmds();
|
||||
|
||||
@@ -1047,7 +1040,7 @@ common_init(mparm_T *paramp)
|
||||
#ifdef FEAT_SUN_WORKSHOP
|
||||
findYourself(paramp->argv[0]);
|
||||
#endif
|
||||
#if defined(FEAT_GUI) && !defined(MAC_OS_CLASSIC)
|
||||
#if defined(FEAT_GUI)
|
||||
/* Prepare for possibly starting GUI sometime */
|
||||
gui_prepare(¶mp->argc, paramp->argv);
|
||||
TIME_MSG("GUI prepared");
|
||||
@@ -1802,7 +1795,7 @@ parse_command_name(mparm_T *parmp)
|
||||
|
||||
initstr = gettail((char_u *)parmp->argv[0]);
|
||||
|
||||
#ifdef MACOS_X_UNIX
|
||||
#ifdef FEAT_GUI_MAC
|
||||
/* An issue has been seen when launching Vim in such a way that
|
||||
* $PWD/$ARGV[0] or $ARGV[0] is not the absolute path to the
|
||||
* executable or a symbolic link of it. Until this issue is resolved
|
||||
@@ -2703,7 +2696,7 @@ read_stdin(void)
|
||||
#if defined(HAS_SWAP_EXISTS_ACTION)
|
||||
check_swap_exists_action();
|
||||
#endif
|
||||
#if !(defined(AMIGA) || defined(MACOS))
|
||||
#if !(defined(AMIGA) || defined(MACOS_X))
|
||||
/*
|
||||
* Close stdin and dup it from stderr. Required for GPM to work
|
||||
* properly, and for running external commands.
|
||||
@@ -4269,11 +4262,12 @@ eval_client_expr_to_string(char_u *expr)
|
||||
char_u *res;
|
||||
int save_dbl = debug_break_level;
|
||||
int save_ro = redir_off;
|
||||
void *fc;
|
||||
void *fc = NULL;
|
||||
|
||||
/* Evaluate the expression at the toplevel, don't use variables local to
|
||||
* the calling function. */
|
||||
fc = clear_current_funccal();
|
||||
* the calling function. Except when in debug mode. */
|
||||
if (!debug_mode)
|
||||
fc = clear_current_funccal();
|
||||
|
||||
/* Disable debugging, otherwise Vim hangs, waiting for "cont" to be
|
||||
* typed. */
|
||||
@@ -4290,7 +4284,8 @@ eval_client_expr_to_string(char_u *expr)
|
||||
--emsg_silent;
|
||||
if (emsg_silent < 0)
|
||||
emsg_silent = 0;
|
||||
restore_current_funccal(fc);
|
||||
if (fc != NULL)
|
||||
restore_current_funccal(fc);
|
||||
|
||||
/* A client can tell us to redraw, but not to display the cursor, so do
|
||||
* that here. */
|
||||
|
||||
+13
-13
@@ -105,7 +105,10 @@
|
||||
# include <X11/Intrinsic.h>
|
||||
#endif
|
||||
#ifdef X_LOCALE
|
||||
#include <X11/Xlocale.h>
|
||||
# include <X11/Xlocale.h>
|
||||
# if !defined(HAVE_MBLEN) && !defined(mblen)
|
||||
# define mblen _Xmblen
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(FEAT_GUI_GTK) && defined(FEAT_XIM)
|
||||
@@ -415,7 +418,7 @@ enc_alias_table[] =
|
||||
{"euccn", IDX_EUC_CN},
|
||||
{"gb2312", IDX_EUC_CN},
|
||||
{"euctw", IDX_EUC_TW},
|
||||
#if defined(WIN3264) || defined(WIN32UNIX) || defined(MACOS)
|
||||
#if defined(WIN3264) || defined(WIN32UNIX) || defined(MACOS_X)
|
||||
{"japan", IDX_CP932},
|
||||
{"korea", IDX_CP949},
|
||||
{"prc", IDX_CP936},
|
||||
@@ -516,7 +519,7 @@ mb_init(void)
|
||||
int n;
|
||||
int enc_dbcs_new = 0;
|
||||
#if defined(USE_ICONV) && !defined(WIN3264) && !defined(WIN32UNIX) \
|
||||
&& !defined(MACOS)
|
||||
&& !defined(MACOS_CONVERT)
|
||||
# define LEN_FROM_CONV
|
||||
vimconv_T vimconv;
|
||||
char_u *p;
|
||||
@@ -711,7 +714,8 @@ codepage_invalid:
|
||||
* API */
|
||||
n = IsDBCSLeadByteEx(enc_dbcs, (WINBYTE)i) ? 2 : 1;
|
||||
#else
|
||||
# if defined(MACOS) || defined(__amigaos4__) || defined(__ANDROID__)
|
||||
# if defined(__amigaos4__) || defined(__ANDROID__) || \
|
||||
!(defined(HAVE_MBLEN) || defined(X_LOCALE))
|
||||
/*
|
||||
* if mblen() is not available, character which MSB is turned on
|
||||
* are treated as leading byte character. (note : This assumption
|
||||
@@ -720,18 +724,14 @@ codepage_invalid:
|
||||
n = (i & 0x80) ? 2 : 1;
|
||||
# else
|
||||
char buf[MB_MAXBYTES + 1];
|
||||
# ifdef X_LOCALE
|
||||
# ifndef mblen
|
||||
# define mblen _Xmblen
|
||||
# endif
|
||||
# endif
|
||||
|
||||
if (i == NUL) /* just in case mblen() can't handle "" */
|
||||
n = 1;
|
||||
else
|
||||
{
|
||||
buf[0] = i;
|
||||
buf[1] = 0;
|
||||
#ifdef LEN_FROM_CONV
|
||||
# ifdef LEN_FROM_CONV
|
||||
if (vimconv.vc_type != CONV_NONE)
|
||||
{
|
||||
/*
|
||||
@@ -748,7 +748,7 @@ codepage_invalid:
|
||||
n = 2;
|
||||
}
|
||||
else
|
||||
#endif
|
||||
# endif
|
||||
{
|
||||
/*
|
||||
* mblen() should return -1 for invalid (means the leading
|
||||
@@ -918,7 +918,7 @@ dbcs_class(unsigned lead, unsigned trail)
|
||||
unsigned char tb = trail;
|
||||
|
||||
/* convert process code to JIS */
|
||||
# if defined(WIN3264) || defined(WIN32UNIX) || defined(MACOS)
|
||||
# if defined(WIN3264) || defined(WIN32UNIX) || defined(MACOS_X)
|
||||
/* process code is SJIS */
|
||||
if (lb <= 0x9f)
|
||||
lb = (lb - 0x81) * 2 + 0x21;
|
||||
@@ -6612,7 +6612,7 @@ convert_setup_ext(
|
||||
vcp->vc_cpto = to_is_utf8 ? 0 : encname2codepage(to);
|
||||
}
|
||||
#endif
|
||||
#ifdef MACOS_X
|
||||
#ifdef MACOS_CONVERT
|
||||
else if ((from_prop & ENC_MACROMAN) && (to_prop & ENC_LATIN1))
|
||||
{
|
||||
vcp->vc_type = CONV_MAC_LATIN1;
|
||||
|
||||
+3
-4
@@ -2664,11 +2664,10 @@ msg_puts_printf(char_u *str, int maxlen)
|
||||
if (!(silent_mode && p_verbose == 0))
|
||||
{
|
||||
/* NL --> CR NL translation (for Unix, not for "--version") */
|
||||
/* NL --> CR translation (for Mac) */
|
||||
p = &buf[0];
|
||||
if (*s == '\n' && !info_message)
|
||||
*p++ = '\r';
|
||||
#if defined(USE_CR) && !defined(MACOS_X_UNIX)
|
||||
#if defined(USE_CR)
|
||||
else
|
||||
#endif
|
||||
*p++ = *s;
|
||||
@@ -3009,7 +3008,7 @@ mch_errmsg(char *str)
|
||||
* On Mac, when started from Finder, stderr is the console. */
|
||||
if (
|
||||
# ifdef UNIX
|
||||
# ifdef MACOS_X_UNIX
|
||||
# ifdef MACOS_X
|
||||
(isatty(2) && strcmp("/dev/console", ttyname(2)) != 0)
|
||||
# else
|
||||
isatty(2)
|
||||
@@ -3076,7 +3075,7 @@ mch_msg(char *str)
|
||||
* On Mac, when started from Finder, stderr is the console. */
|
||||
if (
|
||||
# ifdef UNIX
|
||||
# ifdef MACOS_X_UNIX
|
||||
# ifdef MACOS_X
|
||||
(isatty(2) && strcmp("/dev/console", ttyname(2)) != 0)
|
||||
# else
|
||||
isatty(2)
|
||||
|
||||
+4
-10
@@ -2313,7 +2313,8 @@ ins_char_bytes(char_u *buf, int charlen)
|
||||
|
||||
/* Copy bytes after the changed character(s). */
|
||||
p = newp + col;
|
||||
mch_memmove(p + newlen, oldp + col + oldlen,
|
||||
if (linelen > col + oldlen)
|
||||
mch_memmove(p + newlen, oldp + col + oldlen,
|
||||
(size_t)(linelen - col - oldlen));
|
||||
|
||||
/* Insert or overwrite the new character. */
|
||||
@@ -4339,12 +4340,8 @@ vim_getenv(char_u *name, int *mustfree)
|
||||
}
|
||||
|
||||
/* remove trailing path separator */
|
||||
#ifndef MACOS_CLASSIC
|
||||
/* With MacOS path (with colons) the final colon is required */
|
||||
/* to avoid confusion between absolute and relative path */
|
||||
if (pend > p && after_pathsep(p, pend))
|
||||
--pend;
|
||||
#endif
|
||||
|
||||
#ifdef MACOS_X
|
||||
if (p == exe_name || p == p_hf)
|
||||
@@ -4504,9 +4501,9 @@ get_env_name(
|
||||
expand_T *xp UNUSED,
|
||||
int idx)
|
||||
{
|
||||
# if defined(AMIGA) || defined(__MRC__) || defined(__SC__)
|
||||
# if defined(AMIGA)
|
||||
/*
|
||||
* No environ[] on the Amiga and on the Mac (using MPW).
|
||||
* No environ[] on the Amiga.
|
||||
*/
|
||||
return NULL;
|
||||
# else
|
||||
@@ -11001,9 +10998,6 @@ gen_expand_wildcards(
|
||||
{
|
||||
char_u *t = backslash_halve_save(p);
|
||||
|
||||
#if defined(MACOS_CLASSIC)
|
||||
slash_to_colon(t);
|
||||
#endif
|
||||
/* When EW_NOTFOUND is used, always add files and dirs. Makes
|
||||
* "vim c:/" work. */
|
||||
if (flags & EW_NOTFOUND)
|
||||
|
||||
+5
-16
@@ -2202,7 +2202,7 @@ static struct modmasktable
|
||||
{MOD_MASK_MULTI_CLICK, MOD_MASK_2CLICK, (char_u)'2'},
|
||||
{MOD_MASK_MULTI_CLICK, MOD_MASK_3CLICK, (char_u)'3'},
|
||||
{MOD_MASK_MULTI_CLICK, MOD_MASK_4CLICK, (char_u)'4'},
|
||||
#ifdef MACOS
|
||||
#ifdef MACOS_X
|
||||
{MOD_MASK_CMD, MOD_MASK_CMD, (char_u)'D'},
|
||||
#endif
|
||||
/* 'A' must be the last one */
|
||||
@@ -2933,7 +2933,7 @@ extract_modifiers(int key, int *modp)
|
||||
{
|
||||
int modifiers = *modp;
|
||||
|
||||
#ifdef MACOS
|
||||
#ifdef MACOS_X
|
||||
/* Command-key really special, no fancynest */
|
||||
if (!(modifiers & MOD_MASK_CMD))
|
||||
#endif
|
||||
@@ -2960,7 +2960,7 @@ extract_modifiers(int key, int *modp)
|
||||
if (key == 0)
|
||||
key = K_ZERO;
|
||||
}
|
||||
#ifdef MACOS
|
||||
#ifdef MACOS_X
|
||||
/* Command-key really special, no fancynest */
|
||||
if (!(modifiers & MOD_MASK_CMD))
|
||||
#endif
|
||||
@@ -5939,10 +5939,7 @@ pathcmp(const char *p, const char *q, int maxlen)
|
||||
#define EXTRASIZE 5 /* increment to add to env. size */
|
||||
|
||||
static int envsize = -1; /* current size of environment */
|
||||
#ifndef MACOS_CLASSIC
|
||||
extern
|
||||
#endif
|
||||
char **environ; /* the global which is your env. */
|
||||
extern char **environ; /* the global which is your env. */
|
||||
|
||||
static int findenv(char *name); /* look for a name in the env. */
|
||||
static int newenv(void); /* copy env. from stack to heap */
|
||||
@@ -6014,19 +6011,14 @@ newenv(void)
|
||||
char **env, *elem;
|
||||
int i, esize;
|
||||
|
||||
#ifdef MACOS
|
||||
/* for Mac a new, empty environment is created */
|
||||
i = 0;
|
||||
#else
|
||||
for (i = 0; environ[i]; i++)
|
||||
;
|
||||
#endif
|
||||
|
||||
esize = i + EXTRASIZE + 1;
|
||||
env = (char **)alloc((unsigned)(esize * sizeof (elem)));
|
||||
if (env == NULL)
|
||||
return -1;
|
||||
|
||||
#ifndef MACOS
|
||||
for (i = 0; environ[i]; i++)
|
||||
{
|
||||
elem = (char *)alloc((unsigned)(strlen(environ[i]) + 1));
|
||||
@@ -6035,7 +6027,6 @@ newenv(void)
|
||||
env[i] = elem;
|
||||
strcpy(elem, environ[i]);
|
||||
}
|
||||
#endif
|
||||
|
||||
env[i] = 0;
|
||||
environ = env;
|
||||
@@ -6099,7 +6090,6 @@ filewritable(char_u *fname)
|
||||
#if defined(UNIX) || defined(VMS)
|
||||
perm = mch_getperm(fname);
|
||||
#endif
|
||||
#ifndef MACOS_CLASSIC /* TODO: get either mch_writable or mch_access */
|
||||
if (
|
||||
# ifdef WIN3264
|
||||
mch_writable(fname) &&
|
||||
@@ -6110,7 +6100,6 @@ filewritable(char_u *fname)
|
||||
# endif
|
||||
mch_access((char *)fname, W_OK) == 0
|
||||
)
|
||||
#endif
|
||||
{
|
||||
++retval;
|
||||
if (mch_isdir(fname))
|
||||
|
||||
+7
-9
@@ -1477,7 +1477,7 @@ static struct vimoption options[] =
|
||||
,
|
||||
#if defined(FEAT_GUI)
|
||||
(char_u *)&p_go, PV_NONE,
|
||||
# if defined(UNIX) && !defined(MACOS)
|
||||
# if defined(UNIX) && !defined(FEAT_GUI_MAC)
|
||||
{(char_u *)"aegimrLtT", (char_u *)0L}
|
||||
# elif defined(FEAT_GUI_MACVIM)
|
||||
{(char_u *)"egmrL", (char_u *)0L}
|
||||
@@ -1749,8 +1749,7 @@ static struct vimoption options[] =
|
||||
{"isprint", "isp", P_STRING|P_VI_DEF|P_RALL|P_COMMA|P_NODUP,
|
||||
(char_u *)&p_isp, PV_NONE,
|
||||
{
|
||||
#if defined(MSWIN) || (defined(MACOS) && !defined(MACOS_X)) \
|
||||
|| defined(VMS)
|
||||
#if defined(MSWIN) || defined(VMS)
|
||||
(char_u *)"@,~-255",
|
||||
#else
|
||||
# ifdef EBCDIC
|
||||
@@ -2065,7 +2064,7 @@ static struct vimoption options[] =
|
||||
#if defined(MSWIN)
|
||||
(char_u *)"popup",
|
||||
#else
|
||||
# if defined(MACOS)
|
||||
# if defined(MACOS_X)
|
||||
(char_u *)"popup_setpos",
|
||||
# else
|
||||
(char_u *)"extend",
|
||||
@@ -2454,7 +2453,7 @@ static struct vimoption options[] =
|
||||
SCRIPTID_INIT},
|
||||
{"scroll", "scr", P_NUM|P_NO_MKRC|P_VI_DEF,
|
||||
(char_u *)VAR_WIN, PV_SCROLL,
|
||||
{(char_u *)12L, (char_u *)0L} SCRIPTID_INIT},
|
||||
{(char_u *)0L, (char_u *)0L} SCRIPTID_INIT},
|
||||
{"scrollbind", "scb", P_BOOL|P_VI_DEF,
|
||||
#ifdef FEAT_SCROLLBIND
|
||||
(char_u *)VAR_WIN, PV_SCBIND,
|
||||
@@ -3772,7 +3771,7 @@ set_init_1(void)
|
||||
options[opt_idx].flags |= P_DEF_ALLOCED;
|
||||
}
|
||||
|
||||
#if defined(MSWIN) || defined(MACOS) || defined(VMS)
|
||||
#if defined(MSWIN) || defined(MACOS_X) || defined(VMS)
|
||||
if (STRCMP(p_enc, "latin1") == 0
|
||||
# ifdef FEAT_MBYTE
|
||||
|| enc_utf8
|
||||
@@ -4027,10 +4026,9 @@ set_init_2(void)
|
||||
int idx;
|
||||
|
||||
/*
|
||||
* 'scroll' defaults to half the window height. Note that this default is
|
||||
* wrong when the window height changes.
|
||||
* 'scroll' defaults to half the window height. The stored default is zero,
|
||||
* which results in the actual value computed from the window height.
|
||||
*/
|
||||
set_number_default("scroll", (long)((long_u)Rows >> 1));
|
||||
idx = findoption((char_u *)"scroll");
|
||||
if (idx >= 0 && !(options[idx].flags & P_WAS_SET))
|
||||
set_option_default(idx, OPT_LOCAL, p_cp);
|
||||
|
||||
+37
-53
@@ -77,7 +77,7 @@
|
||||
*/
|
||||
/* When compiled under MacOS X (including CARBON version)
|
||||
* we use the Unix File path style. Also when UNIX is defined. */
|
||||
# define USE_UNIXFILENAME
|
||||
#define USE_UNIXFILENAME
|
||||
|
||||
|
||||
/*
|
||||
@@ -94,15 +94,10 @@
|
||||
quite fast. Did I forgot to update the
|
||||
comment */
|
||||
|
||||
|
||||
#define USE_FNAME_CASE /* make ":e os_Mac.c" open the file in its
|
||||
original case, as "os_mac.c" */
|
||||
#define BINARY_FILE_IO
|
||||
#define EOL_DEFAULT EOL_MAC
|
||||
#ifndef MACOS_X_UNIX /* I hope that switching these two lines */
|
||||
# define USE_CR /* does what I want -- BNF */
|
||||
# define NO_CONSOLE /* don't include console mode */
|
||||
#endif
|
||||
#define HAVE_AVAIL_MEM
|
||||
|
||||
#ifndef HAVE_CONFIG_H
|
||||
@@ -128,38 +123,38 @@
|
||||
*/
|
||||
|
||||
#ifndef SYS_VIMRC_FILE
|
||||
# define SYS_VIMRC_FILE "$VIM/vimrc"
|
||||
# define SYS_VIMRC_FILE "$VIM/vimrc"
|
||||
#endif
|
||||
#ifndef SYS_GVIMRC_FILE
|
||||
# define SYS_GVIMRC_FILE "$VIM/gvimrc"
|
||||
# define SYS_GVIMRC_FILE "$VIM/gvimrc"
|
||||
#endif
|
||||
#ifndef SYS_MENU_FILE
|
||||
# define SYS_MENU_FILE "$VIMRUNTIME/menu.vim"
|
||||
# define SYS_MENU_FILE "$VIMRUNTIME/menu.vim"
|
||||
#endif
|
||||
#ifndef SYS_OPTWIN_FILE
|
||||
# define SYS_OPTWIN_FILE "$VIMRUNTIME/optwin.vim"
|
||||
# define SYS_OPTWIN_FILE "$VIMRUNTIME/optwin.vim"
|
||||
#endif
|
||||
#ifndef VIM_DEFAULTS_FILE
|
||||
# define VIM_DEFAULTS_FILE "$VIMRUNTIME/defaults.vim"
|
||||
# define VIM_DEFAULTS_FILE "$VIMRUNTIME/defaults.vim"
|
||||
#endif
|
||||
#ifndef EVIM_FILE
|
||||
# define EVIM_FILE "$VIMRUNTIME/evim.vim"
|
||||
# define EVIM_FILE "$VIMRUNTIME/evim.vim"
|
||||
#endif
|
||||
|
||||
#ifdef FEAT_GUI
|
||||
# ifndef USR_GVIMRC_FILE
|
||||
# define USR_GVIMRC_FILE "~/.gvimrc"
|
||||
# define USR_GVIMRC_FILE "~/.gvimrc"
|
||||
# endif
|
||||
# ifndef GVIMRC_FILE
|
||||
# define GVIMRC_FILE "_gvimrc"
|
||||
# endif
|
||||
#endif
|
||||
#ifndef USR_VIMRC_FILE
|
||||
# define USR_VIMRC_FILE "~/.vimrc"
|
||||
# define USR_VIMRC_FILE "~/.vimrc"
|
||||
#endif
|
||||
|
||||
#ifndef USR_EXRC_FILE
|
||||
# define USR_EXRC_FILE "~/.exrc"
|
||||
# define USR_EXRC_FILE "~/.exrc"
|
||||
#endif
|
||||
|
||||
#ifndef VIMRC_FILE
|
||||
@@ -171,7 +166,7 @@
|
||||
#endif
|
||||
|
||||
#ifndef DFLT_HELPFILE
|
||||
# define DFLT_HELPFILE "$VIMRUNTIME/doc/help.txt"
|
||||
# define DFLT_HELPFILE "$VIMRUNTIME/doc/help.txt"
|
||||
#endif
|
||||
|
||||
#ifndef FILETYPE_FILE
|
||||
@@ -194,12 +189,12 @@
|
||||
#endif
|
||||
|
||||
#ifndef SYNTAX_FNAME
|
||||
# define SYNTAX_FNAME "$VIMRUNTIME/syntax/%s.vim"
|
||||
# define SYNTAX_FNAME "$VIMRUNTIME/syntax/%s.vim"
|
||||
#endif
|
||||
|
||||
#ifdef FEAT_VIMINFO
|
||||
# ifndef VIMINFO_FILE
|
||||
# define VIMINFO_FILE "~/.viminfo"
|
||||
# define VIMINFO_FILE "~/.viminfo"
|
||||
# endif
|
||||
#endif /* FEAT_VIMINFO */
|
||||
|
||||
@@ -218,7 +213,7 @@
|
||||
#define DFLT_ERRORFILE "errors.err"
|
||||
|
||||
#ifndef DFLT_RUNTIMEPATH
|
||||
# define DFLT_RUNTIMEPATH "~/.vim,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,~/.vim/after"
|
||||
# define DFLT_RUNTIMEPATH "~/.vim,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,~/.vim/after"
|
||||
#endif
|
||||
|
||||
/*
|
||||
@@ -226,11 +221,6 @@
|
||||
*/
|
||||
#define CMDBUFFSIZE 1024 /* size of the command processing buffer */
|
||||
|
||||
#if !defined(MACOS_X_UNIX)
|
||||
# define MAXPATHL 256 /* Limited by the Pascal Strings */
|
||||
# define BASENAMELEN (32-5-1) /* length of base of filename */
|
||||
#endif
|
||||
|
||||
#ifndef DFLT_MAXMEM
|
||||
# define DFLT_MAXMEM 512 /* use up to 512 Kbyte for buffer */
|
||||
#endif
|
||||
@@ -245,12 +235,8 @@
|
||||
#define mch_rename(src, dst) rename(src, dst)
|
||||
#define mch_remove(x) unlink((char *)(x))
|
||||
#ifndef mch_getenv
|
||||
# if defined(__MRC__) || defined(__SC__)
|
||||
# if defined(__APPLE_CC__)
|
||||
# define mch_getenv(name) ((char_u *)getenv((char *)(name)))
|
||||
# define mch_setenv(name, val, x) setenv((name), (val))
|
||||
# elif defined(__APPLE_CC__)
|
||||
# define mch_getenv(name) ((char_u *)getenv((char *)(name)))
|
||||
/*# define mch_setenv(name, val, x) setenv((name), (val)) */ /* Obsoleted by Dany on Oct 30, 2001 */
|
||||
# define mch_setenv(name, val, x) setenv(name, val, x)
|
||||
# else
|
||||
/* vim_getenv() is in pty.c */
|
||||
@@ -275,33 +261,31 @@
|
||||
* of ./configure for console MacOS X.
|
||||
*/
|
||||
|
||||
#ifdef MACOS_X_UNIX
|
||||
# ifndef SIGPROTOARG
|
||||
# define SIGPROTOARG (int)
|
||||
# endif
|
||||
# ifndef SIGDEFARG
|
||||
# define SIGDEFARG(s) (s) int s UNUSED;
|
||||
# endif
|
||||
# ifndef SIGDUMMYARG
|
||||
# define SIGDUMMYARG 0
|
||||
# endif
|
||||
# undef HAVE_AVAIL_MEM
|
||||
# ifndef HAVE_CONFIG_H
|
||||
# define RETSIGTYPE void
|
||||
# define SIGRETURN return
|
||||
#ifndef SIGPROTOARG
|
||||
# define SIGPROTOARG (int)
|
||||
#endif
|
||||
#ifndef SIGDEFARG
|
||||
# define SIGDEFARG(s) (s) int s UNUSED;
|
||||
#endif
|
||||
#ifndef SIGDUMMYARG
|
||||
# define SIGDUMMYARG 0
|
||||
#endif
|
||||
#undef HAVE_AVAIL_MEM
|
||||
#ifndef HAVE_CONFIG_H
|
||||
# define RETSIGTYPE void
|
||||
# define SIGRETURN return
|
||||
/*# define USE_SYSTEM */ /* Output ship do debugger :(, but ot compile */
|
||||
# define HAVE_SYS_WAIT_H 1 /* Attempt */
|
||||
# define HAVE_TERMIOS_H 1
|
||||
# define SYS_SELECT_WITH_SYS_TIME 1
|
||||
# define HAVE_SELECT 1
|
||||
# define HAVE_SYS_SELECT_H 1
|
||||
# define HAVE_PUTENV
|
||||
# define HAVE_SETENV
|
||||
# define HAVE_RENAME
|
||||
# endif
|
||||
# define HAVE_SYS_WAIT_H 1 /* Attempt */
|
||||
# define HAVE_TERMIOS_H 1
|
||||
# define SYS_SELECT_WITH_SYS_TIME 1
|
||||
# define HAVE_SELECT 1
|
||||
# define HAVE_SYS_SELECT_H 1
|
||||
# define HAVE_PUTENV
|
||||
# define HAVE_SETENV
|
||||
# define HAVE_RENAME
|
||||
#endif
|
||||
|
||||
#if defined(MACOS_X) && !defined(HAVE_CONFIG_H)
|
||||
#if !defined(HAVE_CONFIG_H)
|
||||
# define HAVE_PUTENV
|
||||
#endif
|
||||
|
||||
|
||||
+2
-6
@@ -8,20 +8,16 @@
|
||||
*/
|
||||
|
||||
/*
|
||||
* os_macosx.m -- Mac specific things for Mac OS/X.
|
||||
* os_macosx.m -- Mac specific things for Mac OS X.
|
||||
*/
|
||||
|
||||
#ifndef MACOS_X_UNIX
|
||||
Error: MACOS 9 is no longer supported in Vim 7
|
||||
#endif
|
||||
|
||||
/* Avoid a conflict for the definition of Boolean between Mac header files and
|
||||
* X11 header files. */
|
||||
#define NO_X11_INCLUDES
|
||||
#define BalloonEval int /* used in header files */
|
||||
|
||||
#include "vim.h"
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import <AppKit/AppKit.h>
|
||||
|
||||
|
||||
/*
|
||||
|
||||
@@ -856,10 +856,6 @@ mch_stackcheck(char *p)
|
||||
* completely full.
|
||||
*/
|
||||
|
||||
#if defined(HAVE_AVAILABILITYMACROS_H)
|
||||
# include <AvailabilityMacros.h>
|
||||
#endif
|
||||
|
||||
#ifndef SIGSTKSZ
|
||||
# define SIGSTKSZ 8000 /* just a guess of how much stack is needed... */
|
||||
#endif
|
||||
@@ -879,13 +875,6 @@ init_signal_stack(void)
|
||||
if (signal_stack != NULL)
|
||||
{
|
||||
# ifdef HAVE_SIGALTSTACK
|
||||
# if defined(__APPLE__) && (!defined(MAC_OS_X_VERSION_MAX_ALLOWED) \
|
||||
|| MAC_OS_X_VERSION_MAX_ALLOWED <= 1040)
|
||||
/* missing prototype. Adding it to osdef?.h.in doesn't work, because
|
||||
* "struct sigaltstack" needs to be declared. */
|
||||
extern int sigaltstack(const struct sigaltstack *ss, struct sigaltstack *oss);
|
||||
# endif
|
||||
|
||||
# ifdef HAVE_SS_BASE
|
||||
sigstk.ss_base = signal_stack;
|
||||
# else
|
||||
|
||||
+7
-1
@@ -566,6 +566,7 @@ pum_set_selected(int n, int repeat)
|
||||
&& vim_strchr(p_cot, 'p') != NULL)
|
||||
{
|
||||
win_T *curwin_save = curwin;
|
||||
tabpage_T *curtab_save = curtab;
|
||||
int res = OK;
|
||||
|
||||
/* Open a preview window. 3 lines by default. Prefer
|
||||
@@ -653,8 +654,13 @@ pum_set_selected(int n, int repeat)
|
||||
curwin->w_cursor.lnum = 1;
|
||||
curwin->w_cursor.col = 0;
|
||||
|
||||
if (curwin != curwin_save && win_valid(curwin_save))
|
||||
if ((curwin != curwin_save && win_valid(curwin_save))
|
||||
|| (curtab != curtab_save
|
||||
&& valid_tabpage(curtab_save)))
|
||||
{
|
||||
if (curtab != curtab_save && valid_tabpage(curtab_save))
|
||||
goto_tabpage_tp(curtab_save, FALSE, FALSE);
|
||||
|
||||
/* When the first completion is done and the preview
|
||||
* window is not resized, skip the preview window's
|
||||
* status line redrawing. */
|
||||
|
||||
+7
-3
@@ -213,7 +213,7 @@ void qsort(void *base, size_t elm_count, size_t elm_size, int (*cmp)(const void
|
||||
# endif
|
||||
|
||||
# if defined(FEAT_GUI) || defined(FEAT_JOB_CHANNEL)
|
||||
# if defined(UNIX) || defined(MACOS)
|
||||
# if defined(UNIX) || defined(MACOS_X)
|
||||
# include "pty.pro"
|
||||
# endif
|
||||
# endif
|
||||
@@ -289,8 +289,12 @@ extern char *vim_SelFile(Widget toplevel, char *prompt, char *init_path, int (*s
|
||||
#ifdef MACOS_CONVERT
|
||||
# include "os_mac_conv.pro"
|
||||
#endif
|
||||
#ifdef MACOS_X
|
||||
# include "os_macosx.pro"
|
||||
#if defined(MACOS_X_DARWIN) && defined(FEAT_CLIPBOARD) && !defined(FEAT_GUI)
|
||||
/* functions in os_macosx.m */
|
||||
void clip_mch_lose_selection(VimClipboard *cbd);
|
||||
int clip_mch_own_selection(VimClipboard *cbd);
|
||||
void clip_mch_request_selection(VimClipboard *cbd);
|
||||
void clip_mch_set_selection(VimClipboard *cbd);
|
||||
#endif
|
||||
|
||||
#ifdef __BORLANDC__
|
||||
|
||||
@@ -5,6 +5,8 @@ char_u *reverse_text(char_u *s);
|
||||
void save_re_pat(int idx, char_u *pat, int magic);
|
||||
void save_search_patterns(void);
|
||||
void restore_search_patterns(void);
|
||||
void save_last_search_pattern(void);
|
||||
void restore_last_search_pattern(void);
|
||||
void free_search_patterns(void);
|
||||
int ignorecase(char_u *pat);
|
||||
int ignorecase_opt(char_u *pat, int ic_in, int scs);
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
# include <sys/ptem.h>
|
||||
#endif
|
||||
|
||||
#if !defined(SUN_SYSTEM) && !defined(VMS) && !defined(MACOS)
|
||||
#if !defined(SUN_SYSTEM) && !defined(VMS)
|
||||
# include <sys/ioctl.h>
|
||||
#endif
|
||||
|
||||
@@ -379,21 +379,15 @@ OpenPTY(char **ttyn)
|
||||
{
|
||||
for (d = PTYRANGE1; (p[1] = *d) != '\0'; d++)
|
||||
{
|
||||
#if !defined(MACOS) || defined(USE_CARBONIZED)
|
||||
if ((f = open(PtyName, O_RDWR | O_NOCTTY | O_EXTRA, 0)) == -1)
|
||||
#else
|
||||
if ((f = open(PtyName, O_RDWR | O_NOCTTY | O_EXTRA)) == -1)
|
||||
#endif
|
||||
continue;
|
||||
q[0] = *l;
|
||||
q[1] = *d;
|
||||
#ifndef MACOS
|
||||
if (geteuid() != ROOT_UID && mch_access(TtyName, R_OK | W_OK))
|
||||
{
|
||||
close(f);
|
||||
continue;
|
||||
}
|
||||
#endif
|
||||
#if defined(SUN_SYSTEM) && defined(TIOCGPGRP) && !defined(SUNOS3)
|
||||
/* Hack to ensure that the slave side of the pty is
|
||||
* unused. May not work in anything other than SunOS4.1
|
||||
|
||||
+5
-1
@@ -2123,7 +2123,11 @@ win_update(win_T *wp)
|
||||
|
||||
wp->w_lines[idx].wl_lnum = lnum;
|
||||
wp->w_lines[idx].wl_valid = TRUE;
|
||||
if (row > wp->w_height) /* past end of screen */
|
||||
|
||||
/* Past end of the window or end of the screen. Note that after
|
||||
* resizing wp->w_height may be end up too big. That's a problem
|
||||
* elsewhere, but prevent a crash here. */
|
||||
if (row > wp->w_height || row + wp->w_winrow >= Rows)
|
||||
{
|
||||
/* we may need the size of that too long line later on */
|
||||
if (dollar_vcol == -1)
|
||||
|
||||
+39
-4
@@ -100,11 +100,14 @@ static int lastc_bytelen = 1; /* >1 for multi-byte char */
|
||||
#if defined(FEAT_AUTOCMD) || defined(FEAT_EVAL) || defined(PROTO)
|
||||
/* copy of spats[], for keeping the search patterns while executing autocmds */
|
||||
static struct spat saved_spats[2];
|
||||
static int saved_last_idx = 0;
|
||||
#endif
|
||||
# ifdef FEAT_SEARCH_EXTRA
|
||||
/* copy of spats[RE_SEARCH], for keeping the search patterns while incremental
|
||||
* searching */
|
||||
static struct spat saved_last_search_spat;
|
||||
static int saved_last_idx = 0;
|
||||
static int saved_no_hlsearch = 0;
|
||||
# endif
|
||||
#endif
|
||||
|
||||
static char_u *mr_pattern = NULL; /* pattern used by search_regcomp() */
|
||||
#ifdef FEAT_RIGHTLEFT
|
||||
@@ -333,9 +336,9 @@ restore_search_patterns(void)
|
||||
{
|
||||
vim_free(spats[0].pat);
|
||||
spats[0] = saved_spats[0];
|
||||
#if defined(FEAT_EVAL)
|
||||
# if defined(FEAT_EVAL)
|
||||
set_vv_searchforward();
|
||||
#endif
|
||||
# endif
|
||||
vim_free(spats[1].pat);
|
||||
spats[1] = saved_spats[1];
|
||||
last_idx = saved_last_idx;
|
||||
@@ -364,6 +367,38 @@ free_search_patterns(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef FEAT_SEARCH_EXTRA
|
||||
/*
|
||||
* Save and restore the search pattern for incremental highlight search
|
||||
* feature.
|
||||
*
|
||||
* It's similar but differnt from save_search_patterns() and
|
||||
* restore_search_patterns(), because the search pattern must be restored when
|
||||
* cannceling incremental searching even if it's called inside user functions.
|
||||
*/
|
||||
void
|
||||
save_last_search_pattern(void)
|
||||
{
|
||||
saved_last_search_spat = spats[RE_SEARCH];
|
||||
if (spats[RE_SEARCH].pat != NULL)
|
||||
saved_last_search_spat.pat = vim_strsave(spats[RE_SEARCH].pat);
|
||||
saved_last_idx = last_idx;
|
||||
saved_no_hlsearch = no_hlsearch;
|
||||
}
|
||||
|
||||
void
|
||||
restore_last_search_pattern(void)
|
||||
{
|
||||
vim_free(spats[RE_SEARCH].pat);
|
||||
spats[RE_SEARCH] = saved_last_search_spat;
|
||||
# if defined(FEAT_EVAL)
|
||||
set_vv_searchforward();
|
||||
# endif
|
||||
last_idx = saved_last_idx;
|
||||
SET_NO_HLSEARCH(saved_no_hlsearch);
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Return TRUE when case should be ignored for search pattern "pat".
|
||||
* Uses the 'ignorecase' and 'smartcase' options.
|
||||
|
||||
+1
-1
@@ -4277,7 +4277,7 @@ spell_read_wordfile(spellinfo_T *spin, char_u *fname)
|
||||
flags |= WF_REGION;
|
||||
|
||||
l = *p - '0';
|
||||
if (l > spin->si_region_count)
|
||||
if (l == 0 || l > spin->si_region_count)
|
||||
{
|
||||
smsg((char_u *)_("Invalid region nr in %s line %d: %s"),
|
||||
fname, lnum, p);
|
||||
|
||||
+4
-11
@@ -969,19 +969,12 @@ typedef struct attr_entry
|
||||
# else
|
||||
# if defined(MACOS_X)
|
||||
# include <sys/errno.h>
|
||||
# define EILSEQ ENOENT /* MacOS X does not have EILSEQ */
|
||||
# ifndef EILSEQ
|
||||
# define EILSEQ ENOENT /* Early MacOS X does not have EILSEQ */
|
||||
# endif
|
||||
typedef struct _iconv_t *iconv_t;
|
||||
# else
|
||||
# if defined(MACOS_CLASSIC)
|
||||
typedef struct _iconv_t *iconv_t;
|
||||
# define EINVAL 22
|
||||
# define E2BIG 7
|
||||
# define ENOENT 2
|
||||
# define EFAULT 14
|
||||
# define EILSEQ 123
|
||||
# else
|
||||
# include <errno.h>
|
||||
# endif
|
||||
# include <errno.h>
|
||||
# endif
|
||||
typedef void *iconv_t;
|
||||
# endif
|
||||
|
||||
@@ -2949,6 +2949,25 @@ test_for_static(tagptrs_T *tagp)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/*
|
||||
* Returns the length of a matching tag line.
|
||||
*/
|
||||
static size_t
|
||||
matching_line_len(char_u *lbuf)
|
||||
{
|
||||
char_u *p = lbuf + 1;
|
||||
|
||||
/* does the same thing as parse_match() */
|
||||
p += STRLEN(p) + 2;
|
||||
#ifdef FEAT_EMACS_TAGS
|
||||
if (*p)
|
||||
p += STRLEN(p);
|
||||
else
|
||||
++p;
|
||||
#endif
|
||||
return (p - lbuf) + STRLEN(p);
|
||||
}
|
||||
|
||||
/*
|
||||
* Parse a line from a matching tag. Does not change the line itself.
|
||||
*
|
||||
@@ -3071,7 +3090,7 @@ tag_full_fname(tagptrs_T *tagp)
|
||||
*/
|
||||
static int
|
||||
jumpto_tag(
|
||||
char_u *lbuf, /* line from the tags file for this tag */
|
||||
char_u *lbuf_arg, /* line from the tags file for this tag */
|
||||
int forceit, /* :ta with ! */
|
||||
int keep_help) /* keep help flag (FALSE for cscope) */
|
||||
{
|
||||
@@ -3079,7 +3098,6 @@ jumpto_tag(
|
||||
int save_magic;
|
||||
int save_p_ws, save_p_scs, save_p_ic;
|
||||
linenr_T save_lnum;
|
||||
int csave = 0;
|
||||
char_u *str;
|
||||
char_u *pbuf; /* search pattern buffer */
|
||||
char_u *pbuf_end;
|
||||
@@ -3099,18 +3117,26 @@ jumpto_tag(
|
||||
#ifdef FEAT_FOLDING
|
||||
int old_KeyTyped = KeyTyped; /* getting the file may reset it */
|
||||
#endif
|
||||
size_t len;
|
||||
char_u *lbuf;
|
||||
|
||||
/* Make a copy of the line, it can become invalid when an autocommand calls
|
||||
* back here recursively. */
|
||||
len = matching_line_len(lbuf_arg) + 1;
|
||||
lbuf = alloc((int)len);
|
||||
if (lbuf != NULL)
|
||||
mch_memmove(lbuf, lbuf_arg, len);
|
||||
|
||||
pbuf = alloc(LSIZE);
|
||||
|
||||
/* parse the match line into the tagp structure */
|
||||
if (pbuf == NULL || parse_match(lbuf, &tagp) == FAIL)
|
||||
if (pbuf == NULL || lbuf == NULL || parse_match(lbuf, &tagp) == FAIL)
|
||||
{
|
||||
tagp.fname_end = NULL;
|
||||
goto erret;
|
||||
}
|
||||
|
||||
/* truncate the file name, so it can be used as a string */
|
||||
csave = *tagp.fname_end;
|
||||
*tagp.fname_end = NUL;
|
||||
fname = tagp.fname;
|
||||
|
||||
@@ -3246,7 +3272,10 @@ jumpto_tag(
|
||||
#endif
|
||||
keep_help_flag = curbuf->b_help;
|
||||
}
|
||||
|
||||
if (getfile_result == GETFILE_UNUSED)
|
||||
/* Careful: getfile() may trigger autocommands and call jumpto_tag()
|
||||
* recursively. */
|
||||
getfile_result = getfile(0, fname, NULL, TRUE, (linenr_T)0, forceit);
|
||||
keep_help_flag = FALSE;
|
||||
|
||||
@@ -3441,8 +3470,7 @@ erret:
|
||||
#if defined(FEAT_QUICKFIX)
|
||||
g_do_tagpreview = 0; /* For next time */
|
||||
#endif
|
||||
if (tagp.fname_end != NULL)
|
||||
*tagp.fname_end = csave;
|
||||
vim_free(lbuf);
|
||||
vim_free(pbuf);
|
||||
vim_free(tofree_fname);
|
||||
vim_free(full_fname);
|
||||
|
||||
+2
-2
@@ -2540,7 +2540,7 @@ out_trash(void)
|
||||
void
|
||||
out_char(unsigned c)
|
||||
{
|
||||
#if defined(UNIX) || defined(VMS) || defined(AMIGA) || defined(MACOS_X_UNIX)
|
||||
#if defined(UNIX) || defined(VMS) || defined(AMIGA) || defined(MACOS_X)
|
||||
if (c == '\n') /* turn LF into CR-LF (CRMOD doesn't seem to do this) */
|
||||
out_char('\r');
|
||||
#endif
|
||||
@@ -2560,7 +2560,7 @@ static void out_char_nf(unsigned);
|
||||
static void
|
||||
out_char_nf(unsigned c)
|
||||
{
|
||||
#if defined(UNIX) || defined(VMS) || defined(AMIGA) || defined(MACOS_X_UNIX)
|
||||
#if defined(UNIX) || defined(VMS) || defined(AMIGA) || defined(MACOS_X)
|
||||
if (c == '\n') /* turn LF into CR-LF (CRMOD doesn't seem to do this) */
|
||||
out_char_nf('\r');
|
||||
#endif
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@
|
||||
#include "vim.h"
|
||||
#include "termlib.pro"
|
||||
|
||||
#if !defined(AMIGA) && !defined(VMS) && !defined(MACOS)
|
||||
#if !defined(AMIGA) && !defined(VMS)
|
||||
# include <sgtty.h>
|
||||
#endif
|
||||
|
||||
|
||||
@@ -16,13 +16,9 @@ SCRIPTS_ALL = \
|
||||
test3.out \
|
||||
test14.out \
|
||||
test15.out \
|
||||
test19.out \
|
||||
test20.out \
|
||||
test28.out \
|
||||
test29.out \
|
||||
test36.out \
|
||||
test37.out \
|
||||
test38.out \
|
||||
test39.out \
|
||||
test40.out \
|
||||
test42.out \
|
||||
@@ -31,12 +27,10 @@ SCRIPTS_ALL = \
|
||||
test48.out \
|
||||
test55.out \
|
||||
test64.out \
|
||||
test66.out \
|
||||
test68.out \
|
||||
test69.out \
|
||||
test70.out \
|
||||
test73.out \
|
||||
test79.out \
|
||||
test88.out \
|
||||
test94.out \
|
||||
test95.out \
|
||||
@@ -65,7 +59,6 @@ SCRIPTS_MORE1 = \
|
||||
# Tests that run on most systems, but not on Amiga and DOS/Windows.
|
||||
SCRIPTS_MORE2 = \
|
||||
test12.out \
|
||||
test25.out \
|
||||
test49.out
|
||||
|
||||
|
||||
@@ -73,7 +66,6 @@ SCRIPTS_MORE2 = \
|
||||
SCRIPTS_MORE4 = \
|
||||
test17.out \
|
||||
test30.out \
|
||||
test32.out \
|
||||
test59.out \
|
||||
test72.out \
|
||||
test83.out
|
||||
@@ -129,6 +121,7 @@ NEW_TESTS = test_arabic.res \
|
||||
test_hlsearch.res \
|
||||
test_increment.res \
|
||||
test_increment_dbcs.res \
|
||||
test_ins_complete.res \
|
||||
test_job_fails.res \
|
||||
test_json.res \
|
||||
test_langmap.res \
|
||||
@@ -173,6 +166,7 @@ NEW_TESTS = test_arabic.res \
|
||||
test_substitute.res \
|
||||
test_syntax.res \
|
||||
test_system.res \
|
||||
test_tab.res \
|
||||
test_tcl.res \
|
||||
test_terminal.res \
|
||||
test_terminal_fail.res \
|
||||
|
||||
@@ -14,7 +14,6 @@ include Make_all.mak
|
||||
# test10 'errorformat' is different
|
||||
# test11 "cat" doesn't work properly
|
||||
# test12 can't unlink a swap file
|
||||
# test25 uses symbolic link
|
||||
# test52 only for Win32
|
||||
# test85 no Lua interface
|
||||
# test86, 87 no Python interface
|
||||
|
||||
@@ -13,7 +13,6 @@ default: nongui
|
||||
# test2 "\\tmp" doesn't work.
|
||||
# test10 'errorformat' is different
|
||||
# test12 can't unlink a swap file
|
||||
# test25 uses symbolic link
|
||||
# test49 fails in various ways
|
||||
# test97 \{ and \$ are not escaped characters.
|
||||
|
||||
|
||||
@@ -32,7 +32,6 @@ include Make_all.mak
|
||||
# test2 "\\tmp" doesn't work.
|
||||
# test10 'errorformat' is different
|
||||
# test12 can't unlink a swap file
|
||||
# test25 uses symbolic link
|
||||
# test97 \{ and \$ are not escaped characters
|
||||
|
||||
SCRIPTS = $(SCRIPTS_ALL) $(SCRIPTS_MORE1) $(SCRIPTS_MORE4) $(SCRIPTS_WIN32)
|
||||
|
||||
@@ -75,21 +75,13 @@ VIMPROG = <->vim.exe
|
||||
|
||||
SCRIPT = test1.out test3.out \
|
||||
test14.out test15.out \
|
||||
test19.out test20.out \
|
||||
test28.out test29.out test30.out test32.out \
|
||||
test36.out test37.out \
|
||||
test38.out test39.out test40.out test42.out \
|
||||
test44.out test45.out \
|
||||
test48.out test49.out \
|
||||
test55.out \
|
||||
test64.out \
|
||||
test66.out test68.out test69.out \
|
||||
test72.out \
|
||||
test77a.out test79.out \
|
||||
test88.out \
|
||||
test94.out \
|
||||
test95.out test99.out \
|
||||
test108.out\
|
||||
test29.out test30.out \
|
||||
test36.out test37.out test39.out \
|
||||
test40.out test42.out test44.out test45.out \
|
||||
test48.out test49.out test55.out \
|
||||
test64.out test68.out test69.out \
|
||||
test72.out test77a.out test88.out \
|
||||
test94.out test95.out test99.out test108.out\
|
||||
test_autocmd_option.out \
|
||||
test_breakindent.out \
|
||||
test_changelist.out \
|
||||
@@ -110,10 +102,6 @@ SCRIPT = test1.out test3.out \
|
||||
#
|
||||
# test30: bug, most probably - a problem around mac format
|
||||
#
|
||||
# test32: VMS is not case sensitive and all filenames are lowercase within Vim
|
||||
# (this should be changed in order to preserve the original filename) - should
|
||||
# be fixed. VMS allows just one dot in the filename
|
||||
#
|
||||
# test59: Failed/Hangs - VMS does not support spell files (file names
|
||||
# with too many dots).
|
||||
#
|
||||
@@ -131,7 +119,7 @@ GUI_OPTION = -g
|
||||
.ENDIF
|
||||
|
||||
.IFDEF WANT_UNIX
|
||||
SCRIPT_UNIX = test10.out test12.out test17.out test25.out test27.out test49.out test73.out
|
||||
SCRIPT_UNIX = test10.out test12.out test17.out test27.out test49.out test73.out
|
||||
.ENDIF
|
||||
|
||||
.IFDEF WANT_WIN
|
||||
|
||||
@@ -7,11 +7,10 @@ VimProg ?= ../vim
|
||||
Scripts = test1.out test2.out test3.out test6.out
|
||||
test11.out
|
||||
test12.out test13.out test14.out test15.out test17.out
|
||||
test18.out test19.out test20.out test21.out
|
||||
test25.out test27.out
|
||||
test28.out test29.out test30.out test32.out
|
||||
test18.out test21.out
|
||||
test27.out test29.out test30.out
|
||||
test36.out test37.out
|
||||
test38.out test39.out test40.out test42.out
|
||||
test39.out test40.out test42.out
|
||||
test44.out test45.out test46.out test47.out
|
||||
test48.out test49.out test74.out
|
||||
|
||||
|
||||
+27
-9
@@ -99,6 +99,10 @@ func RunTheTest(test)
|
||||
" Clear any overrides.
|
||||
call test_override('ALL', 0)
|
||||
|
||||
" Some tests wipe out buffers. To be consistent, always wipe out all
|
||||
" buffers.
|
||||
%bwipe!
|
||||
|
||||
if exists("*SetUp")
|
||||
try
|
||||
call SetUp()
|
||||
@@ -109,14 +113,21 @@ func RunTheTest(test)
|
||||
|
||||
call add(s:messages, 'Executing ' . a:test)
|
||||
let s:done += 1
|
||||
try
|
||||
|
||||
if a:test =~ 'Test_nocatch_'
|
||||
" Function handles errors itself. This avoids skipping commands after the
|
||||
" error.
|
||||
exe 'call ' . a:test
|
||||
catch /^\cskipped/
|
||||
call add(s:messages, ' Skipped')
|
||||
call add(s:skipped, 'SKIPPED ' . a:test . ': ' . substitute(v:exception, '^\S*\s\+', '', ''))
|
||||
catch
|
||||
call add(v:errors, 'Caught exception in ' . a:test . ': ' . v:exception . ' @ ' . v:throwpoint)
|
||||
endtry
|
||||
else
|
||||
try
|
||||
exe 'call ' . a:test
|
||||
catch /^\cskipped/
|
||||
call add(s:messages, ' Skipped')
|
||||
call add(s:skipped, 'SKIPPED ' . a:test . ': ' . substitute(v:exception, '^\S*\s\+', '', ''))
|
||||
catch
|
||||
call add(v:errors, 'Caught exception in ' . a:test . ': ' . v:exception . ' @ ' . v:throwpoint)
|
||||
endtry
|
||||
endif
|
||||
|
||||
if exists("*TearDown")
|
||||
try
|
||||
@@ -126,7 +137,14 @@ func RunTheTest(test)
|
||||
endtry
|
||||
endif
|
||||
|
||||
" Close any extra windows and make the current one not modified.
|
||||
" Clear any autocommands
|
||||
au!
|
||||
|
||||
" Close any extra tab pages and windows and make the current one not modified.
|
||||
while tabpagenr('$') > 1
|
||||
quit!
|
||||
endwhile
|
||||
|
||||
while 1
|
||||
let wincount = winnr('$')
|
||||
if wincount == 1
|
||||
@@ -139,7 +157,6 @@ func RunTheTest(test)
|
||||
break
|
||||
endif
|
||||
endwhile
|
||||
set nomodified
|
||||
endfunc
|
||||
|
||||
func AfterTheTest()
|
||||
@@ -233,6 +250,7 @@ let s:flaky = [
|
||||
\ 'Test_quoteplus()',
|
||||
\ 'Test_quotestar()',
|
||||
\ 'Test_reltime()',
|
||||
\ 'Test_terminal_composing_unicode()',
|
||||
\ 'Test_terminal_noblock()',
|
||||
\ 'Test_with_partial_callback()',
|
||||
\ ]
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
Tests for "r<Tab>" with 'smarttab' and 'expandtab' set/not set.
|
||||
Also test that dv_ works correctly
|
||||
|
||||
STARTTEST
|
||||
:so small.vim
|
||||
:set smarttab expandtab ts=8 sw=4
|
||||
:" make sure that backspace works, no matter what termcap is used
|
||||
:set t_kD=x7f t_kb=x08
|
||||
/some
|
||||
r :set noexpandtab
|
||||
/other
|
||||
r
|
||||
:" Test replacing with Tabs and then backspacing to undo it
|
||||
0wR
|
||||
:" Test replacing with Tabs
|
||||
0wR
|
||||
:" Test that copyindent works with expandtab set
|
||||
:set expandtab smartindent copyindent ts=8 sw=8 sts=8
|
||||
o{
|
||||
x:set nosol
|
||||
/Second line/
|
||||
fwdv_:?^start?,$w! test.out
|
||||
:qa!
|
||||
ENDTEST
|
||||
|
||||
start text
|
||||
some test text
|
||||
test text
|
||||
other test text
|
||||
a cde
|
||||
f ghi
|
||||
test text
|
||||
Second line beginning with whitespace
|
||||
@@ -1,10 +0,0 @@
|
||||
start text
|
||||
ome test text
|
||||
test text
|
||||
ther test text
|
||||
a cde
|
||||
hi
|
||||
test text
|
||||
{
|
||||
x
|
||||
with whitespace
|
||||
@@ -1,28 +0,0 @@
|
||||
Tests Blockwise Visual when there are TABs before the text.
|
||||
First test for undo working properly when executing commands from a register.
|
||||
Also test this in an empty buffer.
|
||||
|
||||
STARTTEST
|
||||
:so tiny.vim
|
||||
G0"ay$k@au
|
||||
:new
|
||||
@auY:quit!
|
||||
GP
|
||||
/start here$
|
||||
"by$jjlld
|
||||
/456$
|
||||
jj"bP
|
||||
:/56$/,$-1w! test.out
|
||||
:qa!
|
||||
ENDTEST
|
||||
|
||||
123456
|
||||
234567
|
||||
345678
|
||||
|
||||
test text test tex start here
|
||||
some text
|
||||
test text
|
||||
test text
|
||||
|
||||
OxjAykdd
|
||||
@@ -1,10 +0,0 @@
|
||||
123start here56
|
||||
234start here67
|
||||
345start here78
|
||||
|
||||
test text test tex rt here
|
||||
somext
|
||||
tesext
|
||||
test text
|
||||
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
Test for jumping to a tag with 'hidden' set, with symbolic link in path of tag.
|
||||
This only works for Unix, because of the symbolic link.
|
||||
|
||||
STARTTEST
|
||||
:so small.vim
|
||||
:set hidden
|
||||
:" Create a link from test25.dir to the current directory.
|
||||
:!rm -f test25.dir
|
||||
:!ln -s . test25.dir
|
||||
:" Create tags.text, with the current directory name inserted.
|
||||
/tags line
|
||||
:r !pwd
|
||||
d$/test
|
||||
hP:.w! tags.test
|
||||
:" Try jumping to a tag in the current file, but with a path that contains a
|
||||
:" symbolic link. When wrong, this will give the ATTENTION message. The next
|
||||
:" space will then be eaten by hit-return, instead of moving the cursor to 'd'.
|
||||
:set tags=tags.test
|
||||
G x:.w! test.out
|
||||
:!rm -f test25.dir tags.test
|
||||
:qa!
|
||||
ENDTEST
|
||||
|
||||
tags line:
|
||||
SECTION_OFF /test25.dir/test25.in /^#define SECTION_OFF 3$/
|
||||
|
||||
/*tx.c*/
|
||||
#define SECTION_OFF 3
|
||||
#define NUM_SECTIONS 3
|
||||
|
||||
SECTION_OFF
|
||||
@@ -1 +0,0 @@
|
||||
#efine SECTION_OFF 3
|
||||
Binary file not shown.
@@ -1,2 +0,0 @@
|
||||
sd
|
||||
map __2 asdsecondsdsd0map __5 asd0fifth
|
||||
@@ -1,61 +0,0 @@
|
||||
Test for insert expansion
|
||||
|
||||
:se cpt=.,w
|
||||
* add-expands (word from next line) from other window
|
||||
* add-expands (current buffer first)
|
||||
* Local expansion, ends in an empty line (unless it becomes a global expansion)
|
||||
* starts Local and switches to global add-expansion
|
||||
:se cpt=.,w,i
|
||||
* i-add-expands and switches to local
|
||||
* add-expands lines (it would end in an empty line if it didn't ignored it self)
|
||||
:se cpt=kXtestfile
|
||||
* checks k-expansion, and file expansion (use Xtest11 instead of test11,
|
||||
* because TEST11.OUT may match first on DOS)
|
||||
:se cpt=w
|
||||
* checks make_cyclic in other window
|
||||
:se cpt=u nohid
|
||||
* checks unloaded buffer expansion
|
||||
* checks adding mode abortion
|
||||
:se cpt=t,d
|
||||
* tag expansion, define add-expansion interrupted
|
||||
* t-expansion
|
||||
|
||||
STARTTEST
|
||||
:so small.vim
|
||||
:se nocp viminfo+=nviminfo cpt=.,w ff=unix | $-2,$w!Xtestfile | set ff&
|
||||
:set belloff=all
|
||||
:se cot=
|
||||
nO#include "Xtestfile"
|
||||
ru
|
||||
O
|
||||
|
||||
|
||||
:se cpt=.,w,i
|
||||
kOM
|
||||
|
||||
:se cpt=kXtestfile
|
||||
:w Xtest11.one
|
||||
:w Xtest11.two
|
||||
OIXA
|
||||
:" use CTRL-X CTRL-F to complete Xtest11.one, remove it and then use
|
||||
:" CTRL-X CTRL-F again to verify this doesn't cause trouble.
|
||||
OXddk
|
||||
:se cpt=w
|
||||
OST
|
||||
:se cpt=u nohid
|
||||
oOEN
|
||||
unl
|
||||
:se cpt=t,d def=^\\k* tags=Xtestfile notagbsearch
|
||||
O
|
||||
a
|
||||
:wq! test.out
|
||||
ENDTEST
|
||||
|
||||
start of testfile
|
||||
run1
|
||||
run2
|
||||
end of testfile
|
||||
|
||||
test11 36Gepeto /Tag/
|
||||
asd test11file 36G
|
||||
Makefile to run
|
||||
@@ -1,15 +0,0 @@
|
||||
#include "Xtestfile"
|
||||
run1 run3
|
||||
run3 run3
|
||||
|
||||
Makefile to run3
|
||||
Makefile to run3
|
||||
Makefile to run3
|
||||
Xtest11.two
|
||||
STARTTEST
|
||||
ENDTEST
|
||||
unless
|
||||
test11file 36Gepeto /Tag/ asd
|
||||
asd
|
||||
run1 run2
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
|
||||
Test Virtual replace mode.
|
||||
|
||||
STARTTEST
|
||||
:so small.vim
|
||||
:" make sure that backspace works, no matter what termcap is used
|
||||
:set t_kD=x7f t_kb=x08
|
||||
ggdGa
|
||||
abcdefghi
|
||||
jk lmn
|
||||
opq rst
|
||||
uvwxyz
|
||||
gg:set ai
|
||||
:set bs=2
|
||||
gR0 1
|
||||
A
|
||||
BCDEFGHIJ
|
||||
KL
|
||||
MNO
|
||||
PQRG:ka
|
||||
o0
|
||||
abcdefghi
|
||||
jk lmn
|
||||
opq rst
|
||||
uvwxyz
|
||||
'ajgR0 1
|
||||
A
|
||||
BCDEFGHIJ
|
||||
KL
|
||||
MNO
|
||||
PQR:$
|
||||
iab cdefghi jkl0gRAB......CDEFGHI.Jo:
|
||||
iabcdefghijklmnopqrst0gRAB IJKLMNO QR:wq! test.out
|
||||
ENDTEST
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
1
|
||||
A
|
||||
BCDEFGHIJ
|
||||
KL
|
||||
MNO
|
||||
PQR
|
||||
1
|
||||
abcdefghi
|
||||
jk lmn
|
||||
opq rst
|
||||
uvwxyz
|
||||
AB......CDEFGHI.Jkl
|
||||
AB IJKLMNO QRst
|
||||
@@ -1,33 +0,0 @@
|
||||
|
||||
Test for visual block shift and tab characters.
|
||||
|
||||
STARTTEST
|
||||
:so small.vim
|
||||
/^one
|
||||
fe4jRugvr1:'<,'>w! test.out
|
||||
/^abcdefgh
|
||||
4jI j<<11|D
|
||||
7|a
|
||||
7|a
|
||||
7|a 4k13|4j<
|
||||
:$-5,$w >> test.out
|
||||
:$-4,$s/\s\+//g
|
||||
4kI j<<
|
||||
7|a
|
||||
7|a
|
||||
7|a 4k13|4j3<
|
||||
:$-4,$w >> test.out
|
||||
:qa!
|
||||
ENDTEST
|
||||
|
||||
one two three
|
||||
one two three
|
||||
one two three
|
||||
one two three
|
||||
one two three
|
||||
|
||||
abcdefghijklmnopqrstuvwxyz
|
||||
abcdefghijklmnopqrstuvwxyz
|
||||
abcdefghijklmnopqrstuvwxyz
|
||||
abcdefghijklmnopqrstuvwxyz
|
||||
abcdefghijklmnopqrstuvwxyz
|
||||
@@ -1,16 +0,0 @@
|
||||
on1 two three
|
||||
on1 two three
|
||||
on1 two three
|
||||
on1 two three
|
||||
on1 two three
|
||||
|
||||
abcdefghijklmnopqrstuvwxyz
|
||||
abcdefghij
|
||||
abc defghijklmnopqrstuvwxyz
|
||||
abc defghijklmnopqrstuvwxyz
|
||||
abc defghijklmnopqrstuvwxyz
|
||||
abcdefghijklmnopqrstuvwxyz
|
||||
abcdefghij
|
||||
abc defghijklmnopqrstuvwxyz
|
||||
abc defghijklmnopqrstuvwxyz
|
||||
abc defghijklmnopqrstuvwxyz
|
||||
Binary file not shown.
Binary file not shown.
@@ -41,6 +41,7 @@ source test_popup.vim
|
||||
source test_put.vim
|
||||
source test_recover.vim
|
||||
source test_reltime.vim
|
||||
source test_scroll_opt.vim
|
||||
source test_searchpos.vim
|
||||
source test_set.vim
|
||||
source test_sort.vim
|
||||
|
||||
@@ -253,10 +253,7 @@ func Test_argedit()
|
||||
call assert_equal(['a', 'b', 'a'], argv())
|
||||
call assert_equal('a', expand('%:t'))
|
||||
" When file name case is ignored, an existing buffer with only case
|
||||
" difference is re-used. Make sure they don't exist so the case is
|
||||
" preserved.
|
||||
bwipe! c
|
||||
bwipe! d
|
||||
" difference is re-used.
|
||||
argedit C D
|
||||
call assert_equal('C', expand('%:t'))
|
||||
call assert_equal(['a', 'b', 'a', 'C', 'D'], argv())
|
||||
|
||||
@@ -5,6 +5,7 @@ if !exists("+autochdir")
|
||||
endif
|
||||
|
||||
func Test_set_filename()
|
||||
let cwd = getcwd()
|
||||
call test_autochdir()
|
||||
set acd
|
||||
new
|
||||
@@ -13,5 +14,6 @@ func Test_set_filename()
|
||||
call assert_equal("samples", substitute(getcwd(), '.*/\(\k*\)', '\1', ''))
|
||||
bwipe!
|
||||
set noacd
|
||||
exe 'cd ' . cwd
|
||||
call delete('samples/Xtest')
|
||||
endfunc
|
||||
|
||||
@@ -249,6 +249,23 @@ func Test_augroup_warning()
|
||||
au! VimEnter
|
||||
endfunc
|
||||
|
||||
func Test_BufReadCmdHelp()
|
||||
" This used to cause access to free memory
|
||||
au BufReadCmd * e +h
|
||||
help
|
||||
|
||||
au! BufReadCmd
|
||||
endfunc
|
||||
|
||||
func Test_BufReadCmdHelpJump()
|
||||
" This used to cause access to free memory
|
||||
au BufReadCmd * e +h{
|
||||
" } to fix highlighting
|
||||
call assert_fails('help', 'E434:')
|
||||
|
||||
au! BufReadCmd
|
||||
endfunc
|
||||
|
||||
func Test_augroup_deleted()
|
||||
" This caused a crash before E936 was introduced
|
||||
augroup x
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
" Tests for the getbufinfo(), getwininfo() and gettabinfo() functions
|
||||
|
||||
function Test_getbufwintabinfo()
|
||||
1,$bwipeout
|
||||
edit Xtestfile1
|
||||
edit Xtestfile2
|
||||
let buflist = getbufinfo()
|
||||
|
||||
@@ -365,6 +365,27 @@ func Test_cmdline_complete_user_cmd()
|
||||
delcommand Foo
|
||||
endfunc
|
||||
|
||||
func Test_cmdline_write_alternatefile()
|
||||
new
|
||||
call setline('.', ['one', 'two'])
|
||||
f foo.txt
|
||||
new
|
||||
f #-A
|
||||
call assert_equal('foo.txt-A', expand('%'))
|
||||
f #<-B.txt
|
||||
call assert_equal('foo-B.txt', expand('%'))
|
||||
f %<
|
||||
call assert_equal('foo-B', expand('%'))
|
||||
new
|
||||
call assert_fails('f #<', 'E95')
|
||||
bw!
|
||||
f foo-B.txt
|
||||
f %<-A
|
||||
call assert_equal('foo-B-A', expand('%'))
|
||||
bw!
|
||||
bw!
|
||||
endfunc
|
||||
|
||||
" using a leading backslash here
|
||||
set cpo+=C
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
" Test for user command counts.
|
||||
|
||||
func Test_command_count_0()
|
||||
let bufnr = bufnr('%')
|
||||
set hidden
|
||||
set noswapfile
|
||||
|
||||
@@ -15,17 +16,17 @@ func Test_command_count_0()
|
||||
command! -range=% -addr=buffers RangeBuffersAll :let lines = [<line1>, <line2>]
|
||||
|
||||
.,$RangeLoadedBuffers
|
||||
call assert_equal([1, 1], lines)
|
||||
call assert_equal([bufnr, bufnr], lines)
|
||||
%RangeLoadedBuffers
|
||||
call assert_equal([1, 1], lines)
|
||||
call assert_equal([bufnr, bufnr], lines)
|
||||
RangeLoadedBuffersAll
|
||||
call assert_equal([1, 1], lines)
|
||||
call assert_equal([bufnr, bufnr], lines)
|
||||
.,$RangeBuffers
|
||||
call assert_equal([1, lastbuf], lines)
|
||||
call assert_equal([bufnr, lastbuf], lines)
|
||||
%RangeBuffers
|
||||
call assert_equal([1, lastbuf], lines)
|
||||
call assert_equal([bufnr, lastbuf], lines)
|
||||
RangeBuffersAll
|
||||
call assert_equal([1, lastbuf], lines)
|
||||
call assert_equal([bufnr, lastbuf], lines)
|
||||
|
||||
delcommand RangeLoadedBuffers
|
||||
delcommand RangeLoadedBuffersAll
|
||||
@@ -138,6 +139,7 @@ func Test_command_count_2()
|
||||
endfunc
|
||||
|
||||
func Test_command_count_3()
|
||||
let bufnr = bufnr('%')
|
||||
se nohidden
|
||||
e aaa
|
||||
let buf_aaa = bufnr('%')
|
||||
@@ -145,7 +147,7 @@ func Test_command_count_3()
|
||||
let buf_bbb = bufnr('%')
|
||||
e ccc
|
||||
let buf_ccc = bufnr('%')
|
||||
buf 1
|
||||
exe bufnr . 'buf'
|
||||
call assert_equal([1, 1, 1], [buflisted(buf_aaa), buflisted(buf_bbb), buflisted(buf_ccc)])
|
||||
exe buf_bbb . "," . buf_ccc . "bdelete"
|
||||
call assert_equal([1, 0, 0], [buflisted(buf_aaa), buflisted(buf_bbb), buflisted(buf_ccc)])
|
||||
@@ -155,7 +157,7 @@ endfunc
|
||||
|
||||
func Test_command_count_4()
|
||||
%argd
|
||||
let bufnr = bufnr('$') + 1
|
||||
let bufnr = bufnr('$')
|
||||
arga aa bb cc dd ee ff
|
||||
3argu
|
||||
let args = []
|
||||
@@ -171,6 +173,8 @@ func Test_command_count_4()
|
||||
only!
|
||||
|
||||
exe bufnr . 'buf'
|
||||
bnext
|
||||
let bufnr = bufnr('%')
|
||||
let buffers = []
|
||||
.,$-bufdo call add(buffers, bufnr('%'))
|
||||
call assert_equal([bufnr, bufnr + 1, bufnr + 2, bufnr + 3, bufnr + 4], buffers)
|
||||
|
||||
@@ -215,14 +215,16 @@ endfunc
|
||||
|
||||
func! Test_edit_08()
|
||||
" reset insertmode from i_ctrl-r_=
|
||||
let g:bufnr = bufnr('%')
|
||||
new
|
||||
call setline(1, ['abc'])
|
||||
call cursor(1, 4)
|
||||
call feedkeys(":set im\<cr>ZZZ\<c-r>=setbufvar(1,'&im', 0)\<cr>",'tnix')
|
||||
call feedkeys(":set im\<cr>ZZZ\<c-r>=setbufvar(g:bufnr,'&im', 0)\<cr>",'tnix')
|
||||
call assert_equal(['abZZZc'], getline(1,'$'))
|
||||
call assert_equal([0, 1, 1, 0], getpos('.'))
|
||||
call assert_false(0, '&im')
|
||||
bw!
|
||||
unlet g:bufnr
|
||||
endfunc
|
||||
|
||||
func! Test_edit_09()
|
||||
|
||||
@@ -548,7 +548,7 @@ func Test_script_detection()
|
||||
for file in files
|
||||
call writefile(file, 'Xtest')
|
||||
split Xtest
|
||||
call assert_equal(ft, &filetype)
|
||||
call assert_equal(ft, &filetype, 'for text: ' . string(file))
|
||||
bwipe!
|
||||
endfor
|
||||
endfor
|
||||
|
||||
@@ -50,6 +50,7 @@ endfunc
|
||||
" We don't check much of the contents.
|
||||
func Test_with_syntax()
|
||||
if has('postscript')
|
||||
edit test_hardcopy.vim
|
||||
set printoptions=syntax:y
|
||||
syn on
|
||||
hardcopy > Xhardcopy
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
|
||||
" Test for insert expansion
|
||||
func Test_ins_complete()
|
||||
edit test_ins_complete.vim
|
||||
set ff=unix
|
||||
call writefile(["test11\t36Gepeto\t/Tag/",
|
||||
\ "asd\ttest11file\t36G",
|
||||
\ "Makefile\tto\trun"], 'Xtestfile')
|
||||
call writefile(['', 'start of testfile',
|
||||
\ 'ru',
|
||||
\ 'run1',
|
||||
\ 'run2',
|
||||
\ 'STARTTEST',
|
||||
\ 'ENDTEST',
|
||||
\ 'end of testfile'], 'Xtestdata')
|
||||
set ff&
|
||||
|
||||
enew!
|
||||
edit Xtestdata
|
||||
new
|
||||
call append(0, ['#include "Xtestfile"', ''])
|
||||
call cursor(2, 1)
|
||||
|
||||
set cot=
|
||||
set cpt=.,w
|
||||
" add-expands (word from next line) from other window
|
||||
exe "normal iru\<C-N>\<C-N>\<C-X>\<C-N>\<Esc>\<C-A>"
|
||||
call assert_equal('run1 run3', getline('.'))
|
||||
" add-expands (current buffer first)
|
||||
exe "normal o\<C-P>\<C-X>\<C-N>"
|
||||
call assert_equal('run3 run3', getline('.'))
|
||||
" Local expansion, ends in an empty line (unless it becomes a global
|
||||
" expansion)
|
||||
exe "normal o\<C-X>\<C-P>\<C-P>\<C-P>\<C-P>\<C-P>"
|
||||
call assert_equal('', getline('.'))
|
||||
" starts Local and switches to global add-expansion
|
||||
exe "normal o\<C-X>\<C-P>\<C-P>\<C-X>\<C-X>\<C-N>\<C-X>\<C-N>\<C-N>"
|
||||
call assert_equal('run1 run2', getline('.'))
|
||||
|
||||
set cpt=.,w,i
|
||||
" i-add-expands and switches to local
|
||||
exe "normal OM\<C-N>\<C-X>\<C-N>\<C-X>\<C-N>\<C-X>\<C-X>\<C-X>\<C-P>"
|
||||
call assert_equal("Makefile\tto\trun3", getline('.'))
|
||||
" add-expands lines (it would end in an empty line if it didn't ignored
|
||||
" itself)
|
||||
exe "normal o\<C-X>\<C-L>\<C-X>\<C-L>\<C-P>\<C-P>"
|
||||
call assert_equal("Makefile\tto\trun3", getline('.'))
|
||||
call assert_equal("Makefile\tto\trun3", getline(line('.') - 1))
|
||||
|
||||
set cpt=kXtestfile
|
||||
" checks k-expansion, and file expansion (use Xtest11 instead of test11,
|
||||
" because TEST11.OUT may match first on DOS)
|
||||
write Xtest11.one
|
||||
write Xtest11.two
|
||||
exe "normal o\<C-N>\<Esc>IX\<Esc>A\<C-X>\<C-F>\<C-N>"
|
||||
call assert_equal('Xtest11.two', getline('.'))
|
||||
|
||||
" use CTRL-X CTRL-F to complete Xtest11.one, remove it and then use CTRL-X
|
||||
" CTRL-F again to verify this doesn't cause trouble.
|
||||
exe "normal oXt\<C-X>\<C-F>\<BS>\<BS>\<BS>\<BS>\<BS>\<BS>\<BS>\<BS>\<C-X>\<C-F>"
|
||||
call assert_equal('Xtest11.one', getline('.'))
|
||||
normal ddk
|
||||
|
||||
set cpt=w
|
||||
" checks make_cyclic in other window
|
||||
exe "normal oST\<C-N>\<C-P>\<C-P>\<C-P>\<C-P>"
|
||||
call assert_equal('STARTTEST', getline('.'))
|
||||
|
||||
set cpt=u nohid
|
||||
" checks unloaded buffer expansion
|
||||
only
|
||||
exe "normal oEN\<C-N>"
|
||||
call assert_equal('ENDTEST', getline('.'))
|
||||
" checks adding mode abortion
|
||||
exe "normal ounl\<C-N>\<C-X>\<C-X>\<C-P>"
|
||||
call assert_equal('unless', getline('.'))
|
||||
|
||||
set cpt=t,d def=^\\k* tags=Xtestfile notagbsearch
|
||||
" tag expansion, define add-expansion interrupted
|
||||
exe "normal o\<C-X>\<C-]>\<C-X>\<C-D>\<C-X>\<C-D>\<C-X>\<C-X>\<C-D>\<C-X>\<C-D>\<C-X>\<C-D>\<C-X>\<C-D>"
|
||||
call assert_equal('test11file 36Gepeto /Tag/ asd', getline('.'))
|
||||
" t-expansion
|
||||
exe "normal oa\<C-N>\<Esc>"
|
||||
call assert_equal('asd', getline('.'))
|
||||
|
||||
%bw!
|
||||
call delete('Xtestfile')
|
||||
call delete('Xtest11.one')
|
||||
call delete('Xtest11.two')
|
||||
call delete('Xtestdata')
|
||||
set cpt& cot& def& tags& tagbsearch& hidden&
|
||||
endfunc
|
||||
@@ -78,4 +78,5 @@ func Test_lisp_indent()
|
||||
|
||||
enew!
|
||||
let &cpoptions=save_copt
|
||||
set nolisp
|
||||
endfunc
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
|
||||
func SetUp()
|
||||
let s:topdir = expand('%:h') . '/Xdir'
|
||||
let s:topdir = getcwd() . '/Xdir'
|
||||
exe 'set packpath=' . s:topdir
|
||||
let s:plugdir = s:topdir . '/pack/mine/opt/mytest'
|
||||
endfunc
|
||||
|
||||
@@ -661,4 +661,42 @@ func Test_popup_and_window_resize()
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
func Test_popup_and_preview_autocommand()
|
||||
" This used to crash Vim
|
||||
if !has('python')
|
||||
return
|
||||
endif
|
||||
let h = winheight(0)
|
||||
if h < 15
|
||||
return
|
||||
endif
|
||||
new
|
||||
augroup MyBufAdd
|
||||
au!
|
||||
au BufAdd * nested tab sball
|
||||
augroup END
|
||||
set omnifunc=pythoncomplete#Complete
|
||||
call setline(1, 'import os')
|
||||
" make the line long
|
||||
call setline(2, ' os.')
|
||||
$
|
||||
call feedkeys("A\<C-X>\<C-O>\<C-N>\<C-N>\<C-N>\<enter>\<esc>", 'tx')
|
||||
call assert_equal("import os", getline(1))
|
||||
call assert_match(' os.\(EX_IOERR\|O_CREAT\)$', getline(2))
|
||||
call assert_equal(1, winnr('$'))
|
||||
" previewwindow option is not set
|
||||
call assert_equal(0, &previewwindow)
|
||||
norm! gt
|
||||
call assert_equal(0, &previewwindow)
|
||||
norm! gT
|
||||
call assert_equal(12, tabpagenr('$'))
|
||||
tabonly
|
||||
pclose
|
||||
augroup MyBufAdd
|
||||
au!
|
||||
augroup END
|
||||
augroup! MyBufAdd
|
||||
bw!
|
||||
endfunc
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
||||
@@ -151,7 +151,7 @@ endfunc
|
||||
func XageTests(cchar)
|
||||
call s:setup_commands(a:cchar)
|
||||
|
||||
let list = [{'bufnr': 1, 'lnum': 1}]
|
||||
let list = [{'bufnr': bufnr('%'), 'lnum': 1}]
|
||||
call g:Xsetlist(list)
|
||||
|
||||
" Jumping to a non existent list should return error
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
" Test for reset 'scroll'
|
||||
"
|
||||
|
||||
func Test_reset_scroll()
|
||||
let scr = &l:scroll
|
||||
|
||||
setlocal scroll=1
|
||||
setlocal scroll&
|
||||
call assert_equal(scr, &l:scroll)
|
||||
|
||||
setlocal scroll=1
|
||||
setlocal scroll=0
|
||||
call assert_equal(scr, &l:scroll)
|
||||
|
||||
try
|
||||
execute 'setlocal scroll=' . (winheight(0) + 1)
|
||||
" not reached
|
||||
call assert_false(1)
|
||||
catch
|
||||
call assert_exception('E49:')
|
||||
endtry
|
||||
|
||||
split
|
||||
|
||||
let scr = &l:scroll
|
||||
|
||||
setlocal scroll=1
|
||||
setlocal scroll&
|
||||
call assert_equal(scr, &l:scroll)
|
||||
|
||||
setlocal scroll=1
|
||||
setlocal scroll=0
|
||||
call assert_equal(scr, &l:scroll)
|
||||
|
||||
quit!
|
||||
endfunc
|
||||
@@ -1,5 +1,7 @@
|
||||
" Test for the search command
|
||||
|
||||
source shared.vim
|
||||
|
||||
func Test_search_cmdline()
|
||||
if !exists('+incsearch')
|
||||
return
|
||||
@@ -431,3 +433,118 @@ func Test_search_regexp()
|
||||
set undolevels&
|
||||
enew!
|
||||
endfunc
|
||||
|
||||
func Test_search_cmdline_incsearch_highlight()
|
||||
if !exists('+incsearch')
|
||||
return
|
||||
endif
|
||||
set incsearch hlsearch
|
||||
" need to disable char_avail,
|
||||
" so that expansion of commandline works
|
||||
call test_override("char_avail", 1)
|
||||
new
|
||||
call setline(1, ['aaa 1 the first', ' 2 the second', ' 3 the third'])
|
||||
|
||||
1
|
||||
call feedkeys("/second\<cr>", 'tx')
|
||||
call assert_equal('second', @/)
|
||||
call assert_equal(' 2 the second', getline('.'))
|
||||
|
||||
" Canceling search won't change @/
|
||||
1
|
||||
let @/ = 'last pattern'
|
||||
call feedkeys("/third\<C-c>", 'tx')
|
||||
call assert_equal('last pattern', @/)
|
||||
call feedkeys("/third\<Esc>", 'tx')
|
||||
call assert_equal('last pattern', @/)
|
||||
call feedkeys("/3\<bs>\<bs>", 'tx')
|
||||
call assert_equal('last pattern', @/)
|
||||
call feedkeys("/third\<c-g>\<c-t>\<Esc>", 'tx')
|
||||
call assert_equal('last pattern', @/)
|
||||
|
||||
" clean up
|
||||
set noincsearch nohlsearch
|
||||
bw!
|
||||
endfunc
|
||||
|
||||
func Test_search_cmdline_incsearch_highlight_attr()
|
||||
if !exists('+incsearch') || !has('terminal') || has('gui_running')
|
||||
return
|
||||
endif
|
||||
let h = winheight(0)
|
||||
if h < 3
|
||||
return
|
||||
endif
|
||||
let g:buf = term_start([GetVimProg(), '--clean', '-c', 'set noswapfile'], {'term_rows': 3})
|
||||
|
||||
" Prepare buffer text
|
||||
let lines = ['abb vim vim vi', 'vimvivim']
|
||||
call term_sendkeys(g:buf, 'i' . join(lines, "\n") . "\<esc>gg0")
|
||||
call term_wait(g:buf, 200)
|
||||
call assert_equal(lines[0], term_getline(g:buf, 1))
|
||||
|
||||
" Get attr of normal(a0), incsearch(a1), hlsearch(a2) highlight
|
||||
call term_sendkeys(g:buf, ":set incsearch hlsearch\<cr>")
|
||||
call term_sendkeys(g:buf, '/b')
|
||||
call term_wait(g:buf, 200)
|
||||
let screen_line1 = term_scrape(g:buf, 1)
|
||||
call assert_true(len(screen_line1) > 2)
|
||||
" a0: attr_normal
|
||||
let a0 = screen_line1[0].attr
|
||||
" a1: attr_incsearch
|
||||
let a1 = screen_line1[1].attr
|
||||
" a2: attr_hlsearch
|
||||
let a2 = screen_line1[2].attr
|
||||
call assert_notequal(a0, a1)
|
||||
call assert_notequal(a0, a2)
|
||||
call assert_notequal(a1, a2)
|
||||
call term_sendkeys(g:buf, "\<cr>gg0")
|
||||
|
||||
" Test incremental highlight search
|
||||
call term_sendkeys(g:buf, "/vim")
|
||||
call term_wait(g:buf, 200)
|
||||
" Buffer:
|
||||
" abb vim vim vi
|
||||
" vimvivim
|
||||
" Search: /vim
|
||||
let attr_line1 = [a0,a0,a0,a0,a1,a1,a1,a0,a2,a2,a2,a0,a0,a0]
|
||||
let attr_line2 = [a2,a2,a2,a0,a0,a2,a2,a2]
|
||||
call assert_equal(attr_line1, map(term_scrape(g:buf, 1)[:len(attr_line1)-1], 'v:val.attr'))
|
||||
call assert_equal(attr_line2, map(term_scrape(g:buf, 2)[:len(attr_line2)-1], 'v:val.attr'))
|
||||
|
||||
" Test <C-g>
|
||||
call term_sendkeys(g:buf, "\<C-g>\<C-g>")
|
||||
call term_wait(g:buf, 200)
|
||||
let attr_line1 = [a0,a0,a0,a0,a2,a2,a2,a0,a2,a2,a2,a0,a0,a0]
|
||||
let attr_line2 = [a1,a1,a1,a0,a0,a2,a2,a2]
|
||||
call assert_equal(attr_line1, map(term_scrape(g:buf, 1)[:len(attr_line1)-1], 'v:val.attr'))
|
||||
call assert_equal(attr_line2, map(term_scrape(g:buf, 2)[:len(attr_line2)-1], 'v:val.attr'))
|
||||
|
||||
" Test <C-t>
|
||||
call term_sendkeys(g:buf, "\<C-t>")
|
||||
call term_wait(g:buf, 200)
|
||||
let attr_line1 = [a0,a0,a0,a0,a2,a2,a2,a0,a1,a1,a1,a0,a0,a0]
|
||||
let attr_line2 = [a2,a2,a2,a0,a0,a2,a2,a2]
|
||||
call assert_equal(attr_line1, map(term_scrape(g:buf, 1)[:len(attr_line1)-1], 'v:val.attr'))
|
||||
call assert_equal(attr_line2, map(term_scrape(g:buf, 2)[:len(attr_line2)-1], 'v:val.attr'))
|
||||
|
||||
" Type Enter and a1(incsearch highlight) should become a2(hlsearch highlight)
|
||||
call term_sendkeys(g:buf, "\<cr>")
|
||||
call term_wait(g:buf, 200)
|
||||
let attr_line1 = [a0,a0,a0,a0,a2,a2,a2,a0,a2,a2,a2,a0,a0,a0]
|
||||
let attr_line2 = [a2,a2,a2,a0,a0,a2,a2,a2]
|
||||
call assert_equal(attr_line1, map(term_scrape(g:buf, 1)[:len(attr_line1)-1], 'v:val.attr'))
|
||||
call assert_equal(attr_line2, map(term_scrape(g:buf, 2)[:len(attr_line2)-1], 'v:val.attr'))
|
||||
|
||||
" Test nohlsearch. a2(hlsearch highlight) should become a0(normal highlight)
|
||||
call term_sendkeys(g:buf, ":1\<cr>")
|
||||
call term_sendkeys(g:buf, ":set nohlsearch\<cr>")
|
||||
call term_sendkeys(g:buf, "/vim")
|
||||
call term_wait(g:buf, 200)
|
||||
let attr_line1 = [a0,a0,a0,a0,a1,a1,a1,a0,a0,a0,a0,a0,a0,a0]
|
||||
let attr_line2 = [a0,a0,a0,a0,a0,a0,a0,a0]
|
||||
call assert_equal(attr_line1, map(term_scrape(g:buf, 1)[:len(attr_line1)-1], 'v:val.attr'))
|
||||
call assert_equal(attr_line2, map(term_scrape(g:buf, 2)[:len(attr_line2)-1], 'v:val.attr'))
|
||||
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
@@ -182,7 +182,7 @@ func Test_sign_invalid_commands()
|
||||
call assert_fails('sign define Sign1 xxx', 'E475:')
|
||||
call assert_fails('sign undefine', 'E156:')
|
||||
call assert_fails('sign list xxx', 'E155:')
|
||||
call assert_fails('sign place 1 buffer=', 'E158:')
|
||||
call assert_fails('sign place 1 buffer=999', 'E158:')
|
||||
call assert_fails('sign define Sign2 text=', 'E239:')
|
||||
endfunc
|
||||
|
||||
|
||||
@@ -31,3 +31,33 @@ func Test_source_latin()
|
||||
bwipe!
|
||||
call delete('Xscript')
|
||||
endfunc
|
||||
|
||||
" Test for sourcing a file with CTRL-V's at the end of the line
|
||||
func Test_source_ctrl_v()
|
||||
call writefile(['map __1 afirst',
|
||||
\ 'map __2 asecond',
|
||||
\ 'map __3 athird',
|
||||
\ 'map __4 afourth',
|
||||
\ 'map __5 afifth',
|
||||
\ "map __1 asd\<C-V>",
|
||||
\ "map __2 asd\<C-V>\<C-V>",
|
||||
\ "map __3 asd\<C-V>\<C-V>",
|
||||
\ "map __4 asd\<C-V>\<C-V>\<C-V>",
|
||||
\ "map __5 asd\<C-V>\<C-V>\<C-V>",
|
||||
\ ], 'Xtestfile')
|
||||
source Xtestfile
|
||||
enew!
|
||||
exe "normal __1\<Esc>\<Esc>__2\<Esc>__3\<Esc>\<Esc>__4\<Esc>__5\<Esc>"
|
||||
exe "%s/\<C-J>/0/g"
|
||||
call assert_equal(['sd',
|
||||
\ "map __2 asd\<Esc>secondsd\<Esc>sd0map __5 asd0fifth"],
|
||||
\ getline(1, 2))
|
||||
|
||||
enew!
|
||||
call delete('Xtestfile')
|
||||
unmap __1
|
||||
unmap __2
|
||||
unmap __3
|
||||
unmap __4
|
||||
unmap __5
|
||||
endfunc
|
||||
|
||||
@@ -271,6 +271,15 @@ func Test_zz_sal_and_addition()
|
||||
call assert_equal("elekwint", SecondSpellWord())
|
||||
endfunc
|
||||
|
||||
func Test_region_error()
|
||||
messages clear
|
||||
call writefile(["/regions=usgbnz", "elequint/0"], "Xtest.latin1.add")
|
||||
mkspell! Xtest.latin1.add.spl Xtest.latin1.add
|
||||
call assert_match('Invalid region nr in Xtest.latin1.add line 2: 0', execute('messages'))
|
||||
call delete('Xtest.latin1.add')
|
||||
call delete('Xtest.latin1.add.spl')
|
||||
endfunc
|
||||
|
||||
" Check using z= in new buffer (crash fixed by patch 7.4a.028).
|
||||
func Test_zeq_crash()
|
||||
new
|
||||
|
||||
@@ -312,6 +312,12 @@ func Test_statusline()
|
||||
call assert_equal(sa1, sa3)
|
||||
call assert_equal(sa1, sa4)
|
||||
|
||||
let g:a = ''
|
||||
set statusline=%#Error#{%(\ %{g:a}\ %)}
|
||||
call assert_match('^{}\s*$', s:get_statusline())
|
||||
let g:a = 'X'
|
||||
call assert_match('^{ X }\s*$', s:get_statusline())
|
||||
|
||||
" %%: a percent sign.
|
||||
set statusline=10%%
|
||||
call assert_match('^10%\s*$', s:get_statusline())
|
||||
|
||||
@@ -294,3 +294,209 @@ func Test_sub_replace_10()
|
||||
call assert_equal('aa2a3a', substitute('123', '1\|\ze', 'a', 'g'))
|
||||
call assert_equal('1aaa', substitute('123', '1\zs\|[23]', 'a', 'g'))
|
||||
endfunc
|
||||
|
||||
" Tests for *sub-replace-special* and *sub-replace-expression* on :substitute.
|
||||
|
||||
" Execute a list of :substitute command tests
|
||||
func Run_SubCmd_Tests(tests)
|
||||
enew!
|
||||
for t in a:tests
|
||||
let start = line('.') + 1
|
||||
let end = start + len(t[2]) - 1
|
||||
exe "normal o" . t[0]
|
||||
call cursor(start, 1)
|
||||
exe t[1]
|
||||
call assert_equal(t[2], getline(start, end), t[1])
|
||||
endfor
|
||||
enew!
|
||||
endfunc
|
||||
|
||||
func Test_sub_cmd_1()
|
||||
set magic
|
||||
set cpo&
|
||||
|
||||
" List entry format: [input, cmd, output]
|
||||
let tests = [['A', 's/A/&&/', ['AA']],
|
||||
\ ['B', 's/B/\&/', ['&']],
|
||||
\ ['C123456789', 's/C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/', ['C123456789987654321']],
|
||||
\ ['D', 's/D/d/', ['d']],
|
||||
\ ['E', 's/E/~/', ['d']],
|
||||
\ ['F', 's/F/\~/', ['~']],
|
||||
\ ['G', 's/G/\ugg/', ['Gg']],
|
||||
\ ['H', 's/H/\Uh\Eh/', ['Hh']],
|
||||
\ ['I', 's/I/\lII/', ['iI']],
|
||||
\ ['J', 's/J/\LJ\EJ/', ['jJ']],
|
||||
\ ['K', 's/K/\Uk\ek/', ['Kk']],
|
||||
\ ['lLl', "s/L/\<C-V>\<C-M>/", ["l\<C-V>", 'l']],
|
||||
\ ['mMm', 's/M/\r/', ['m', 'm']],
|
||||
\ ['nNn', "s/N/\\\<C-V>\<C-M>/", ["n\<C-V>", 'n']],
|
||||
\ ['oOo', 's/O/\n/', ["o\no"]],
|
||||
\ ['pPp', 's/P/\b/', ["p\<C-H>p"]],
|
||||
\ ['qQq', 's/Q/\t/', ["q\tq"]],
|
||||
\ ['rRr', 's/R/\\/', ['r\r']],
|
||||
\ ['sSs', 's/S/\c/', ['scs']],
|
||||
\ ['tTt', "s/T/\<C-V>\<C-J>/", ["t\<C-V>\<C-J>t"]],
|
||||
\ ['U', 's/U/\L\uuUu\l\EU/', ['UuuU']],
|
||||
\ ['V', 's/V/\U\lVvV\u\Ev/', ['vVVv']]
|
||||
\ ]
|
||||
call Run_SubCmd_Tests(tests)
|
||||
endfunc
|
||||
|
||||
func Test_sub_cmd_2()
|
||||
set nomagic
|
||||
set cpo&
|
||||
|
||||
" List entry format: [input, cmd, output]
|
||||
let tests = [['A', 's/A/&&/', ['&&']],
|
||||
\ ['B', 's/B/\&/', ['B']],
|
||||
\ ['C123456789', 's/\mC\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/', ['C123456789987654321']],
|
||||
\ ['D', 's/D/d/', ['d']],
|
||||
\ ['E', 's/E/~/', ['~']],
|
||||
\ ['F', 's/F/\~/', ['~']],
|
||||
\ ['G', 's/G/\ugg/', ['Gg']],
|
||||
\ ['H', 's/H/\Uh\Eh/', ['Hh']],
|
||||
\ ['I', 's/I/\lII/', ['iI']],
|
||||
\ ['J', 's/J/\LJ\EJ/', ['jJ']],
|
||||
\ ['K', 's/K/\Uk\ek/', ['Kk']],
|
||||
\ ['lLl', "s/L/\<C-V>\<C-M>/", ["l\<C-V>", 'l']],
|
||||
\ ['mMm', 's/M/\r/', ['m', 'm']],
|
||||
\ ['nNn', "s/N/\\\<C-V>\<C-M>/", ["n\<C-V>", 'n']],
|
||||
\ ['oOo', 's/O/\n/', ["o\no"]],
|
||||
\ ['pPp', 's/P/\b/', ["p\<C-H>p"]],
|
||||
\ ['qQq', 's/Q/\t/', ["q\tq"]],
|
||||
\ ['rRr', 's/R/\\/', ['r\r']],
|
||||
\ ['sSs', 's/S/\c/', ['scs']],
|
||||
\ ['tTt', "s/T/\<C-V>\<C-J>/", ["t\<C-V>\<C-J>t"]],
|
||||
\ ['U', 's/U/\L\uuUu\l\EU/', ['UuuU']],
|
||||
\ ['V', 's/V/\U\lVvV\u\Ev/', ['vVVv']]
|
||||
\ ]
|
||||
call Run_SubCmd_Tests(tests)
|
||||
endfunc
|
||||
|
||||
func Test_sub_cmd_3()
|
||||
set nomagic
|
||||
set cpo&
|
||||
|
||||
" List entry format: [input, cmd, output]
|
||||
let tests = [['aAa', "s/A/\\='\\'/", ['a\a']],
|
||||
\ ['bBb', "s/B/\\='\\\\'/", ['b\\b']],
|
||||
\ ['cCc', "s/C/\\='\<C-V>\<C-M>'/", ["c\<C-V>", 'c']],
|
||||
\ ['dDd', "s/D/\\='\\\<C-V>\<C-M>'/", ["d\\\<C-V>", 'd']],
|
||||
\ ['eEe', "s/E/\\='\\\\\<C-V>\<C-M>'/", ["e\\\\\<C-V>", 'e']],
|
||||
\ ['fFf', "s/F/\\='\r'/", ['f', 'f']],
|
||||
\ ['gGg', "s/G/\\='\<C-V>\<C-J>'/", ["g\<C-V>", 'g']],
|
||||
\ ['hHh', "s/H/\\='\\\<C-V>\<C-J>'/", ["h\\\<C-V>", 'h']],
|
||||
\ ['iIi', "s/I/\\='\\\\\<C-V>\<C-J>'/", ["i\\\\\<C-V>", 'i']],
|
||||
\ ['jJj', "s/J/\\='\n'/", ['j', 'j']],
|
||||
\ ['kKk', 's/K/\="\r"/', ['k', 'k']],
|
||||
\ ['lLl', 's/L/\="\n"/', ['l', 'l']]
|
||||
\ ]
|
||||
call Run_SubCmd_Tests(tests)
|
||||
endfunc
|
||||
|
||||
" Test for submatch() on :substitue.
|
||||
func Test_sub_cmd_4()
|
||||
set magic&
|
||||
set cpo&
|
||||
|
||||
" List entry format: [input, cmd, output]
|
||||
let tests = [ ['aAa', "s/A/\\=substitute(submatch(0), '.', '\\', '')/",
|
||||
\ ['a\a']],
|
||||
\ ['bBb', "s/B/\\=substitute(submatch(0), '.', '\\', '')/",
|
||||
\ ['b\b']],
|
||||
\ ['cCc', "s/C/\\=substitute(submatch(0), '.', '\<C-V>\<C-M>', '')/",
|
||||
\ ["c\<C-V>", 'c']],
|
||||
\ ['dDd', "s/D/\\=substitute(submatch(0), '.', '\\\<C-V>\<C-M>', '')/",
|
||||
\ ["d\<C-V>", 'd']],
|
||||
\ ['eEe', "s/E/\\=substitute(submatch(0), '.', '\\\\\<C-V>\<C-M>', '')/",
|
||||
\ ["e\\\<C-V>", 'e']],
|
||||
\ ['fFf', "s/F/\\=substitute(submatch(0), '.', '\\r', '')/",
|
||||
\ ['f', 'f']],
|
||||
\ ['gGg', 's/G/\=substitute(submatch(0), ".", "\<C-V>\<C-J>", "")/',
|
||||
\ ["g\<C-V>", 'g']],
|
||||
\ ['hHh', 's/H/\=substitute(submatch(0), ".", "\\\<C-V>\<C-J>", "")/',
|
||||
\ ["h\<C-V>", 'h']],
|
||||
\ ['iIi', 's/I/\=substitute(submatch(0), ".", "\\\\\<C-V>\<C-J>", "")/',
|
||||
\ ["i\\\<C-V>", 'i']],
|
||||
\ ['jJj', "s/J/\\=substitute(submatch(0), '.', '\\n', '')/",
|
||||
\ ['j', 'j']],
|
||||
\ ['kKk', "s/K/\\=substitute(submatch(0), '.', '\\r', '')/",
|
||||
\ ['k', 'k']],
|
||||
\ ['lLl', "s/L/\\=substitute(submatch(0), '.', '\\n', '')/",
|
||||
\ ['l', 'l']],
|
||||
\ ]
|
||||
call Run_SubCmd_Tests(tests)
|
||||
endfunc
|
||||
|
||||
func Test_sub_cmd_5()
|
||||
set magic&
|
||||
set cpo&
|
||||
|
||||
" List entry format: [input, cmd, output]
|
||||
let tests = [ ['A123456789', 's/A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\=submatch(0) . submatch(9) . submatch(8) . submatch(7) . submatch(6) . submatch(5) . submatch(4) . submatch(3) . submatch(2) . submatch(1)/', ['A123456789987654321']],
|
||||
\ ['B123456789', 's/B\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\=string([submatch(0, 1), submatch(9, 1), submatch(8, 1), submatch(7, 1), submatch(6, 1), submatch(5, 1), submatch(4, 1), submatch(3, 1), submatch(2, 1), submatch(1, 1)])/', ["[['B123456789'], ['9'], ['8'], ['7'], ['6'], ['5'], ['4'], ['3'], ['2'], ['1']]"]],
|
||||
\ ]
|
||||
call Run_SubCmd_Tests(tests)
|
||||
endfunc
|
||||
|
||||
" Test for *:s%* on :substitute.
|
||||
func Test_sub_cmd_6()
|
||||
set magic&
|
||||
set cpo+=/
|
||||
|
||||
" List entry format: [input, cmd, output]
|
||||
let tests = [ ['A', 's/A/a/', ['a']],
|
||||
\ ['B', 's/B/%/', ['a']],
|
||||
\ ]
|
||||
call Run_SubCmd_Tests(tests)
|
||||
|
||||
set cpo-=/
|
||||
let tests = [ ['C', 's/C/c/', ['c']],
|
||||
\ ['D', 's/D/%/', ['%']],
|
||||
\ ]
|
||||
call Run_SubCmd_Tests(tests)
|
||||
|
||||
set cpo&
|
||||
endfunc
|
||||
|
||||
" Test for :s replacing \n with line break.
|
||||
func Test_sub_cmd_7()
|
||||
set magic&
|
||||
set cpo&
|
||||
|
||||
" List entry format: [input, cmd, output]
|
||||
let tests = [ ["A\<C-V>\<C-M>A", 's/A./\=submatch(0)/', ['A', 'A']],
|
||||
\ ["B\<C-V>\<C-J>B", 's/B./\=submatch(0)/', ['B', 'B']],
|
||||
\ ["C\<C-V>\<C-J>C", 's/C./\=strtrans(string(submatch(0, 1)))/', [strtrans("['C\<C-J>']C")]],
|
||||
\ ["D\<C-V>\<C-J>\nD", 's/D.\nD/\=strtrans(string(submatch(0, 1)))/', [strtrans("['D\<C-J>', 'D']")]],
|
||||
\ ["E\<C-V>\<C-J>\n\<C-V>\<C-J>\n\<C-V>\<C-J>\n\<C-V>\<C-J>\n\<C-V>\<C-J>E", 's/E\_.\{-}E/\=strtrans(string(submatch(0, 1)))/', [strtrans("['E\<C-J>', '\<C-J>', '\<C-J>', '\<C-J>', '\<C-J>E']")]],
|
||||
\ ]
|
||||
call Run_SubCmd_Tests(tests)
|
||||
|
||||
exe "normal oQ\nQ\<Esc>k"
|
||||
call assert_fails('s/Q[^\n]Q/\=submatch(0)."foobar"/', 'E486')
|
||||
enew!
|
||||
endfunc
|
||||
|
||||
func TitleString()
|
||||
let check = 'foo' =~ 'bar'
|
||||
return ""
|
||||
endfunc
|
||||
|
||||
func Test_sub_cmd_8()
|
||||
set titlestring=%{TitleString()}
|
||||
|
||||
enew!
|
||||
call append(0, ['', 'test_one', 'test_two'])
|
||||
call cursor(1,1)
|
||||
/^test_one/s/.*/\="foo\nbar"/
|
||||
call assert_equal('foo', getline(2))
|
||||
call assert_equal('bar', getline(3))
|
||||
call feedkeys(':/^test_two/s/.*/\="foo\nbar"/c', "t")
|
||||
call feedkeys("\<CR>y", "xt")
|
||||
call assert_equal('foo', getline(4))
|
||||
call assert_equal('bar', getline(5))
|
||||
|
||||
enew!
|
||||
set titlestring&
|
||||
endfunc
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
|
||||
" Tests for "r<Tab>" with 'smarttab' and 'expandtab' set/not set.
|
||||
" Also test that dv_ works correctly
|
||||
func Test_smarttab()
|
||||
enew!
|
||||
set smarttab expandtab ts=8 sw=4
|
||||
" make sure that backspace works, no matter what termcap is used
|
||||
exe "set t_kD=\<C-V>x7f t_kb=\<C-V>x08"
|
||||
call append(0, ['start text',
|
||||
\ "\t\tsome test text",
|
||||
\ 'test text',
|
||||
\ "\t\tother test text",
|
||||
\ ' a cde',
|
||||
\ ' f ghi',
|
||||
\ 'test text',
|
||||
\ ' Second line beginning with whitespace'
|
||||
\ ])
|
||||
call cursor(1, 1)
|
||||
exe "normal /some\<CR>"
|
||||
exe "normal r\t"
|
||||
call assert_equal("\t\t ome test text", getline('.'))
|
||||
set noexpandtab
|
||||
exe "normal /other\<CR>"
|
||||
exe "normal r\t"
|
||||
call assert_equal("\t\t ther test text", getline('.'))
|
||||
|
||||
" Test replacing with Tabs and then backspacing to undo it
|
||||
exe "normal j0wR\t\t\t\<BS>\<BS>\<BS>"
|
||||
call assert_equal(" a cde", getline('.'))
|
||||
" Test replacing with Tabs
|
||||
exe "normal j0wR\t\t\t"
|
||||
call assert_equal(" \t\thi", getline('.'))
|
||||
|
||||
" Test that copyindent works with expandtab set
|
||||
set expandtab smartindent copyindent ts=8 sw=8 sts=8
|
||||
exe "normal jo{\<CR>x"
|
||||
call assert_equal('{', getline(line('.') - 1))
|
||||
call assert_equal(' x', getline('.'))
|
||||
set nosol
|
||||
exe "normal /Second line/\<CR>"
|
||||
exe "normal fwdv_"
|
||||
call assert_equal(' with whitespace', getline('.'))
|
||||
enew!
|
||||
set expandtab& smartindent& copyindent& ts& sw& sts&
|
||||
endfunc
|
||||
@@ -475,6 +475,7 @@ endfunc
|
||||
|
||||
func Test_close_on_quitpre()
|
||||
" This once caused a crash
|
||||
edit Xtest
|
||||
new
|
||||
only
|
||||
set bufhidden=delete
|
||||
@@ -489,7 +490,7 @@ func Test_close_on_quitpre()
|
||||
while tabpagenr('$') > 1
|
||||
bwipe!
|
||||
endwhile
|
||||
1b
|
||||
buf Xtest
|
||||
endfunc
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
||||
@@ -137,4 +137,41 @@ function Test_keyword_jump()
|
||||
call delete('Xinclude')
|
||||
endfunction
|
||||
|
||||
" Test for jumping to a tag with 'hidden' set, with symbolic link in path of
|
||||
" tag. This only works for Unix, because of the symbolic link.
|
||||
func Test_tag_symbolic()
|
||||
if !has('unix')
|
||||
return
|
||||
endif
|
||||
set hidden
|
||||
call delete("Xtest.dir", "rf")
|
||||
call system("ln -s . Xtest.dir")
|
||||
" Create a tags file with the current directory name inserted.
|
||||
call writefile([
|
||||
\ "SECTION_OFF " . getcwd() . "/Xtest.dir/Xtest.c /^#define SECTION_OFF 3$/",
|
||||
\ '',
|
||||
\ ], 'Xtags')
|
||||
call writefile(['#define SECTION_OFF 3',
|
||||
\ '#define NUM_SECTIONS 3'], 'Xtest.c')
|
||||
|
||||
" Try jumping to a tag, but with a path that contains a symbolic link. When
|
||||
" wrong, this will give the ATTENTION message. The next space will then be
|
||||
" eaten by hit-return, instead of moving the cursor to 'd'.
|
||||
set tags=Xtags
|
||||
enew!
|
||||
call append(0, 'SECTION_OFF')
|
||||
call cursor(1,1)
|
||||
exe "normal \<C-]> "
|
||||
call assert_equal('Xtest.c', expand('%:t'))
|
||||
call assert_equal(2, col('.'))
|
||||
|
||||
set hidden&
|
||||
set tags&
|
||||
enew!
|
||||
call delete('Xtags')
|
||||
call delete('Xtest.c')
|
||||
call delete("Xtest.dir", "rf")
|
||||
%bwipe!
|
||||
endfunc
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user