mirror of
https://github.com/macvim-dev/macvim.git
synced 2026-06-02 11:19:22 +02:00
Compare commits
108 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 41bb32a424 | |||
| 6e8df9e221 | |||
| 2973daafe1 | |||
| a88254f704 | |||
| 01164a6546 | |||
| ea84df8041 | |||
| 4c22a91d20 | |||
| 430dc5d360 | |||
| 8889a5c305 | |||
| d97fbf171e | |||
| f8f8b2eadb | |||
| c20e0d5207 | |||
| 5130f31661 | |||
| 86b21bb3e7 | |||
| b315876efa | |||
| 3e1c617d49 | |||
| b94340c04f | |||
| f45938cc20 | |||
| ffd99f729b | |||
| c8e22b90de | |||
| 7e288d3bc3 | |||
| ae55b64e57 | |||
| e1e0513580 | |||
| 6dc8b4de86 | |||
| 89c394faca | |||
| ba6febd380 | |||
| 48570488f1 | |||
| afc384eafa | |||
| 2e51d9a097 | |||
| af2d20c628 | |||
| d057301b1f | |||
| ef83956e1e | |||
| a6ce1ccf5c | |||
| b9fce6cbf7 | |||
| c3fdf7f80b | |||
| c312b8b87a | |||
| ce15775026 | |||
| 9a91c7a1f9 | |||
| 0e19fc07e7 | |||
| dc1c981294 | |||
| 2a45d64d0a | |||
| ee03b94124 | |||
| cf1ba35fc2 | |||
| 9ad89c6c4f | |||
| ce11de87e2 | |||
| 15993ce921 | |||
| 235dddf1f4 | |||
| f204e05ae9 | |||
| 8d84ff1a3c | |||
| d99388ba85 | |||
| 96b4e927fb | |||
| 6ce6504808 | |||
| 2f40d129bf | |||
| 381aa9a77f | |||
| 4f1982800f | |||
| 2e4cb3b042 | |||
| 66857f4104 | |||
| ca05aa24af | |||
| f8e8c0643b | |||
| 53f0c96239 | |||
| 6b89dbb55f | |||
| 2cefa1e3ce | |||
| 72f2e94815 | |||
| 14363db5ce | |||
| 9a32768aa6 | |||
| 67435d9983 | |||
| fafcf0dd59 | |||
| ff930cad8a | |||
| 87ffb5c1a3 | |||
| 3c0ba7cc6a | |||
| 9373f08fbe | |||
| 6c35158d3c | |||
| dbb801fbab | |||
| 88023813a4 | |||
| 9c391d1df6 | |||
| 50e45d2e95 | |||
| 12e1a00e4b | |||
| f113a44867 | |||
| 5c8c040a4f | |||
| 78e3217645 | |||
| 6daeef1933 | |||
| 059db5c29f | |||
| 44cc4cf72f | |||
| 67418d97b4 | |||
| 8bfe07b708 | |||
| 00ce63dc23 | |||
| 81b07b527e | |||
| a20f83df1d | |||
| 9377df3ecd | |||
| 65e4c4f686 | |||
| b2c8750c4e | |||
| ac8069bb63 | |||
| 6199d43f4b | |||
| 2c33d7bb69 | |||
| 6047e2c722 | |||
| 1d68d9b2bd | |||
| 8065cf2bfb | |||
| 4a6fcf8047 | |||
| 9202162c5c | |||
| 9b69f22e66 | |||
| 18cfa940e2 | |||
| 0ab35b279f | |||
| 4635e11c6b | |||
| 75f69e5a18 | |||
| 631820536e | |||
| 73f4439ca6 | |||
| 54e5dbf58e | |||
| d78f03f860 |
@@ -38,6 +38,7 @@ src/pathdef.c
|
||||
src/Obj*/pathdef.c
|
||||
gvimext.dll
|
||||
gvimext.lib
|
||||
gvim.lib
|
||||
runtime/doc/uganda.nsis.txt
|
||||
|
||||
# Borland C++
|
||||
|
||||
+2
-2
@@ -4,7 +4,7 @@ dist: trusty
|
||||
os:
|
||||
- osx
|
||||
|
||||
osx_image: xcode8
|
||||
osx_image: xcode9.1
|
||||
|
||||
compiler:
|
||||
- clang
|
||||
@@ -20,7 +20,7 @@ env:
|
||||
vi_cv_dll_name_python=/System/Library/Frameworks/Python.framework/Versions/2.7/Python
|
||||
vi_cv_dll_name_python3=/usr/local/Frameworks/Python.framework/Versions/3.6/Python
|
||||
VIMCMD=src/MacVim/build/Release/MacVim.app/Contents/MacOS/Vim
|
||||
"CONFOPT='--with-features=huge --enable-multibyte --enable-terminal --enable-netbeans --with-tlib=ncurses --enable-cscope --enable-perlinterp=dynamic --enable-pythoninterp=dynamic --enable-python3interp=dynamic --enable-rubyinterp=dynamic --enable-luainterp=dynamic --with-lua-prefix=/usr/local --enable-gui=macvim'"
|
||||
"CONFOPT='--with-features=huge --enable-multibyte --enable-terminal --enable-netbeans --with-tlib=ncurses --enable-cscope --enable-perlinterp=dynamic --enable-pythoninterp=dynamic --enable-python3interp=dynamic --enable-rubyinterp=dynamic --with-ruby-command=/usr/bin/ruby --enable-luainterp=dynamic --with-lua-prefix=/usr/local --enable-gui=macvim'"
|
||||
|
||||
sudo: false
|
||||
|
||||
|
||||
@@ -406,6 +406,7 @@ SRC_DOS = \
|
||||
src/msvcsetup.bat \
|
||||
src/msvc2008.bat \
|
||||
src/msvc2010.bat \
|
||||
src/msvc2015.bat \
|
||||
src/dimm.idl \
|
||||
src/dlldata.c \
|
||||
src/dosinst.c \
|
||||
@@ -450,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 \
|
||||
|
||||
@@ -120,28 +120,28 @@ MINOR = 0
|
||||
#
|
||||
# MS-Windows:
|
||||
# - Run make on Unix to update the ".mo" files.
|
||||
# - Get libintl-8.dll, libiconv-2.dll and libgcc_s_sjlj-1.dll. E.g. from
|
||||
# - Get 32 bit libintl-8.dll, libiconv-2.dll and libgcc_s_sjlj-1.dll. E.g. from
|
||||
# https://mlocati.github.io/gettext-iconv-windows/ .
|
||||
# Use the "shared-32.zip file and extract the archive to get the files.
|
||||
# Put them in the top directory, "make dosrt" uses them.
|
||||
# Put them in the gettext32 directory, "make dosrt" uses them.
|
||||
# - Get 64 bit libintl-8.dll and libiconv-2.dll. E.g. from
|
||||
# https://mlocati.github.io/gettext-iconv-windows/ .
|
||||
# Use the "shared-64.zip file and extract the archive to get the files.
|
||||
# Put them in the gettext64 directory, "make dosrt" uses them.
|
||||
# - > make dossrc
|
||||
# > make dosrt
|
||||
# Unpack dist/vim##rt.zip and dist/vim##src.zip on an MS-Windows PC.
|
||||
# This creates the directory vim/vim80 and puts all files in there.
|
||||
# Win32 console version build:
|
||||
# - Set environment for Visual C++ 2008, e.g.:
|
||||
# > src/msvc2008.bat
|
||||
# Or:
|
||||
# > C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat
|
||||
# Or, when using the Visual C++ Toolkit 2003: "msvcsetup.bat" (adjust the
|
||||
# paths when necessary).
|
||||
# For Windows 98/ME the 2003 version is required, but then the executable
|
||||
# won't work on Windows 7 and 64 bit systems.
|
||||
# - > cd src
|
||||
# - See src/INSTALLpc.txt for installing the compiler and SDK.
|
||||
# - Set environment for Visual C++ 2015:
|
||||
# > cd src
|
||||
# > msvc2015.bat
|
||||
# - Build the console binary:
|
||||
# > nmake -f Make_mvc.mak
|
||||
# - Run the tests:
|
||||
# - Run the tests and check the ouput:
|
||||
# > nmake -f Make_mvc.mak testclean
|
||||
# > nmake -f Make_mvc.mak test
|
||||
# - check the output.
|
||||
# - Rename (using ../tools/rename.bat):
|
||||
# vim.exe to vimw32.exe
|
||||
# tee/tee.exe to teew32.exe
|
||||
@@ -152,19 +152,18 @@ MINOR = 0
|
||||
# Win32 GUI version build:
|
||||
# - > cd src
|
||||
# > nmake -f Make_mvc.mak GUI=yes
|
||||
# - Run the tests:
|
||||
# - Run the tests and check the output:
|
||||
# > nmake -f Make_mvc.mak testclean
|
||||
# > nmake -f Make_mvc.mak testgvim
|
||||
# - check the output.
|
||||
# - move "gvim.exe" to here (otherwise the OLE version will overwrite it).
|
||||
# - Move gvim.pdb to here.
|
||||
# - Copy "GvimExt/gvimext.dll" to here.
|
||||
# - Delete vimrun.exe, install.exe and uninstal.exe.
|
||||
# Win32 GUI version with OLE, PERL, Ruby, TCL, PYTHON and dynamic IME:
|
||||
# - Install the interfaces you want, see src/INSTALLpc.txt
|
||||
# Adjust bigvim.bat to match the version of each interface you want.
|
||||
# - Build:
|
||||
# > cd src
|
||||
# Adjust bigvim.bat to match the version of each interface you want.
|
||||
# > bigvim.bat
|
||||
# - Run the tests:
|
||||
# > nmake -f Make_mvc.mak testclean
|
||||
@@ -188,10 +187,11 @@ MINOR = 0
|
||||
# gvimext64.dll in src/GvimExt
|
||||
# VisVim.dll in src/VisVim
|
||||
# Note: VisVim needs to be build with MSVC 5, newer versions don't work.
|
||||
# gvimext64.dll can be obtained from http://code.google.com/p/vim-win3264/
|
||||
# It is part of vim72.zip as vim72/gvimext.dll.
|
||||
# gvimext64.dll can be obtained from:
|
||||
# https://github.com/vim/vim-win32-installer/releases
|
||||
# It is part of gvim_8.0.*_x64.zip as vim/vim80/GvimExt/gvimext64.dll.
|
||||
# - Make sure there is a diff.exe two levels up (get it from a previous Vim
|
||||
# version).
|
||||
# version). Also put winpty32.dll and winpty-agent.exe there.
|
||||
# - go to ../nsis and do:
|
||||
# > makensis gvim.nsi (takes a few minutes).
|
||||
# ignore warning for libwinpthread-1.dll
|
||||
@@ -467,9 +467,13 @@ dosrt_files: dist prepare no_title.vim
|
||||
cp $$i dist/vim/$(VIMRTDIR)/lang/$$n/LC_MESSAGES/vim.mo; \
|
||||
fi \
|
||||
done
|
||||
cp libintl-8.dll dist/vim/$(VIMRTDIR)/
|
||||
cp libiconv-2.dll dist/vim/$(VIMRTDIR)/
|
||||
cp libgcc_s_sjlj-1.dll dist/vim/$(VIMRTDIR)/
|
||||
mkdir dist/vim/$(VIMRTDIR)/gettext32
|
||||
cp gettext32/libintl-8.dll dist/vim/$(VIMRTDIR)/gettext32/
|
||||
cp gettext32/libiconv-2.dll dist/vim/$(VIMRTDIR)/gettext32/
|
||||
cp gettext32/libgcc_s_sjlj-1.dll dist/vim/$(VIMRTDIR)/gettext32/
|
||||
mkdir dist/vim/$(VIMRTDIR)/gettext64
|
||||
cp gettext64/libintl-8.dll dist/vim/$(VIMRTDIR)/gettext64/
|
||||
cp gettext64/libiconv-2.dll dist/vim/$(VIMRTDIR)/gettext64/
|
||||
|
||||
|
||||
# Used before uploading. Don't delete the AAPDIR/sign files!
|
||||
@@ -496,7 +500,10 @@ dosbin_gvim: dist no_title.vim dist/$(COMMENT_GVIM)
|
||||
cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
|
||||
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
|
||||
cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
|
||||
cp gvimext.dll dist/vim/$(VIMRTDIR)/gvimext.dll
|
||||
mkdir dist/vim/$(VIMRTDIR)/GvimExt32
|
||||
cp gvimext.dll dist/vim/$(VIMRTDIR)/GvimExt32/gvimext.dll
|
||||
mkdir dist/vim/$(VIMRTDIR)/GvimExt64
|
||||
cp gvimext64.dll dist/vim/$(VIMRTDIR)/GvimExt64/gvimext.dll
|
||||
cd dist && zip -9 -rD -z gvim$(VERSION).zip vim <$(COMMENT_GVIM)
|
||||
cp gvim.pdb dist/gvim$(VERSION).pdb
|
||||
|
||||
|
||||
+31
-3
@@ -1,5 +1,5 @@
|
||||
This builds a one-click install for Vim for Win32 using the Nullsoft
|
||||
Installation System (NSIS), available at http://www.nullsoft.com/free/nsis/
|
||||
Installation System (NSIS), available at http://nsis.sourceforge.net/
|
||||
|
||||
To build the installable .exe:
|
||||
|
||||
@@ -17,8 +17,14 @@ To build the installable .exe:
|
||||
uninstal.exe,
|
||||
xxd/xxd.exe,
|
||||
|
||||
Then execute tools/rename.bat to rename the executables. (mv command is
|
||||
required.)
|
||||
|
||||
3. Go to the GvimExt directory and build gvimext.dll (or get it from a binary
|
||||
archive).
|
||||
archive). Both 64- and 32-bit versions are needed and should be placed
|
||||
as follows:
|
||||
64-bit: src/GvimExt/gvimext64.dll
|
||||
32-bit: src/GvimExt/gvimext.dll
|
||||
|
||||
4. Go to the VisVim directory and build VisVim.dll (or get it from a binary
|
||||
archive).
|
||||
@@ -27,13 +33,35 @@ To build the installable .exe:
|
||||
get them from a binary archive).
|
||||
|
||||
6. Get a "diff.exe" program and put it in the "../.." directory (above the
|
||||
"vim61" directory, it's the same for all Vim versions).
|
||||
"vim80" directory, it's the same for all Vim versions).
|
||||
You can find one in previous Vim versions or in this archive:
|
||||
http://www.mossbayeng.com/~ron/vim/diffutils.tar.gz
|
||||
Also put winpty32.dll and winpty-agent.exe there.
|
||||
|
||||
7. Do "make uganda.nsis.txt" in runtime/doc. This requires sed, you may have
|
||||
to do this on Unix. Make sure the file is in DOS file format!
|
||||
|
||||
8. Get gettext and iconv DLLs from the following site:
|
||||
https://github.com/mlocati/gettext-iconv-windows/releases
|
||||
Both 64- and 32-bit versions are needed.
|
||||
Download the files gettextX.X.X.X-iconvX.XX-shared-{32,64}.zip, extract
|
||||
DLLs and place them as follows:
|
||||
|
||||
<GETTEXT directory>
|
||||
|
|
||||
+ gettext32/
|
||||
| libintl-8.dll
|
||||
| libiconv-2.dll
|
||||
| libgcc_s_sjlj-1.dll
|
||||
|
|
||||
` gettext64/
|
||||
libintl-8.dll
|
||||
libiconv-2.dll
|
||||
|
||||
The default <GETTEXT directory> is "..", however, you can change it by
|
||||
passing /DGETTEXT=... option to the makensis command.
|
||||
|
||||
|
||||
Install NSIS if you didn't do that already.
|
||||
Also install UPX, if you want a compressed file.
|
||||
|
||||
|
||||
+116
-17
@@ -20,8 +20,15 @@
|
||||
!define VIMTOOLS ..\..
|
||||
!endif
|
||||
|
||||
# Location of gettext.
|
||||
# It must contain two directories: gettext32 and gettext64.
|
||||
# See README.txt for detail.
|
||||
!ifndef GETTEXT
|
||||
!define GETTEXT ${VIMRT}
|
||||
!endif
|
||||
|
||||
# Comment the next line if you don't have UPX.
|
||||
# Get it at http://upx.sourceforge.net
|
||||
# Get it at https://upx.github.io/
|
||||
!define HAVE_UPX
|
||||
|
||||
# comment the next line if you do not want to add Native Language Support
|
||||
@@ -76,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
|
||||
@@ -128,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
|
||||
@@ -328,24 +340,67 @@ Section "Add an Edit-with-Vim context menu entry"
|
||||
SetOutPath $0
|
||||
ClearErrors
|
||||
SetOverwrite try
|
||||
|
||||
${If} ${RunningX64}
|
||||
# Install 64-bit gvimext.dll into the GvimExt64 directory.
|
||||
SetOutPath $0\GvimExt64
|
||||
ClearErrors
|
||||
File /oname=gvimext.dll ${VIMSRC}\GvimExt\gvimext64.dll
|
||||
${Else}
|
||||
File /oname=gvimext.dll ${VIMSRC}\GvimExt\gvimext.dll
|
||||
!ifdef HAVE_NLS
|
||||
File ${GETTEXT}\gettext64\libintl-8.dll
|
||||
File ${GETTEXT}\gettext64\libiconv-2.dll
|
||||
!endif
|
||||
|
||||
IfErrors 0 GvimExt64Done
|
||||
|
||||
# Can't copy gvimext.dll, create it under another name and rename it
|
||||
# on next reboot.
|
||||
GetTempFileName $3 $0\GvimExt64
|
||||
File /oname=$3 ${VIMSRC}\GvimExt\gvimext64.dll
|
||||
Rename /REBOOTOK $3 $0\GvimExt64\gvimext.dll
|
||||
!ifdef HAVE_NLS
|
||||
GetTempFileName $3 $0\GvimExt64
|
||||
File /oname=$3 ${GETTEXT}\gettext64\libintl-8.dll
|
||||
Rename /REBOOTOK $3 $0\GvimExt64\libintl-8.dll
|
||||
GetTempFileName $3 $0\GvimExt64
|
||||
File /oname=$3 ${GETTEXT}\gettext64\libiconv-2.dll
|
||||
Rename /REBOOTOK $3 $0\GvimExt64\libiconv-2.dll
|
||||
!endif
|
||||
${EndIf}
|
||||
IfErrors 0 GvimExtDone
|
||||
|
||||
GvimExt64Done:
|
||||
|
||||
# Install 32-bit gvimext.dll into the GvimExt32 directory.
|
||||
SetOutPath $0\GvimExt32
|
||||
ClearErrors
|
||||
|
||||
File /oname=gvimext.dll ${VIMSRC}\GvimExt\gvimext.dll
|
||||
!ifdef HAVE_NLS
|
||||
File ${GETTEXT}\gettext32\libintl-8.dll
|
||||
File ${GETTEXT}\gettext32\libiconv-2.dll
|
||||
File ${GETTEXT}\gettext32\libgcc_s_sjlj-1.dll
|
||||
!endif
|
||||
|
||||
IfErrors 0 GvimExt32Done
|
||||
|
||||
# Can't copy gvimext.dll, create it under another name and rename it on
|
||||
# next reboot.
|
||||
GetTempFileName $3 $0
|
||||
${If} ${RunningX64}
|
||||
File /oname=$3 ${VIMSRC}\GvimExt\gvimext64.dll
|
||||
${Else}
|
||||
File /oname=$3 ${VIMSRC}\GvimExt\gvimext.dll
|
||||
${EndIf}
|
||||
Rename /REBOOTOK $3 $0\gvimext.dll
|
||||
GetTempFileName $3 $0\GvimExt32
|
||||
File /oname=$3 ${VIMSRC}\GvimExt\gvimext.dll
|
||||
Rename /REBOOTOK $3 $0\GvimExt32\gvimext.dll
|
||||
!ifdef HAVE_NLS
|
||||
GetTempFileName $3 $0\GvimExt32
|
||||
File /oname=$3 ${GETTEXT}\gettext32\libintl-8.dll
|
||||
Rename /REBOOTOK $3 $0\GvimExt32\libintl-8.dll
|
||||
GetTempFileName $3 $0\GvimExt32
|
||||
File /oname=$3 ${GETTEXT}\gettext32\libiconv-2.dll
|
||||
Rename /REBOOTOK $3 $0\GvimExt32\libiconv-2.dll
|
||||
GetTempFileName $3 $0\GvimExt32
|
||||
File /oname=$3 ${GETTEXT}\gettext32\libgcc_s_sjlj-1.dll
|
||||
Rename /REBOOTOK $3 $0\GvimExt32\libgcc_s_sjlj-1.dll
|
||||
!endif
|
||||
|
||||
GvimExtDone:
|
||||
GvimExt32Done:
|
||||
SetOverwrite lastused
|
||||
|
||||
# We don't have a separate entry for the "Open With..." menu, assume
|
||||
@@ -354,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"
|
||||
@@ -394,10 +449,10 @@ SectionEnd
|
||||
File ${VIMRT}\keymap\README.txt
|
||||
File ${VIMRT}\keymap\*.vim
|
||||
SetOutPath $0
|
||||
File ${VIMRT}\libintl-8.dll
|
||||
File ${VIMRT}\libiconv-2.dll
|
||||
File /nonfatal ${VIMRT}\libwinpthread-1.dll
|
||||
File /nonfatal ${VIMRT}\libgcc_s_sjlj-1.dll
|
||||
File ${GETTEXT}\gettext32\libintl-8.dll
|
||||
File ${GETTEXT}\gettext32\libiconv-2.dll
|
||||
#File /nonfatal ${VIMRT}\libwinpthread-1.dll
|
||||
File /nonfatal ${GETTEXT}\gettext32\libgcc_s_sjlj-1.dll
|
||||
SectionEnd
|
||||
!endif
|
||||
|
||||
@@ -412,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
|
||||
@@ -437,6 +531,11 @@ Section Uninstall
|
||||
$\nIt contains the Vim executables and runtime files." IDNO NoRemoveExes
|
||||
|
||||
Delete /REBOOTOK $0\*.dll
|
||||
Delete /REBOOTOK $0\GvimExt32\*.dll
|
||||
${If} ${RunningX64}
|
||||
Delete /REBOOTOK $0\GvimExt64\*.dll
|
||||
${EndIf}
|
||||
|
||||
ClearErrors
|
||||
# Remove everything but *.dll files. Avoids that
|
||||
# a lot remains when gvimext.dll cannot be deleted.
|
||||
|
||||
@@ -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
|
||||
@@ -591,7 +591,7 @@ function ada#Map_Menu (Text, Keys, Command)
|
||||
\" :" . a:Command
|
||||
execute
|
||||
\ "inoremap <buffer>" .
|
||||
\ " <Learder>a" . a:Keys .
|
||||
\ " <Leader>a" . a:Keys .
|
||||
\" <C-O>:" . a:Command
|
||||
endif
|
||||
return
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
" Language: SQL
|
||||
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
|
||||
" Version: 16.0
|
||||
" Last Change: 2015 Dec 29
|
||||
" Last Change: 2017 Oct 15
|
||||
" Homepage: http://www.vim.org/scripts/script.php?script_id=1572
|
||||
" Usage: For detailed help
|
||||
" ":help sql.txt"
|
||||
@@ -860,7 +860,7 @@ function! s:SQLCGetColumns(table_name, list_type)
|
||||
|
||||
" Start characterwise visual mode
|
||||
" Advance right one character
|
||||
" Search foward until one of the following:
|
||||
" Search forward until one of the following:
|
||||
" 1. Another select/update/delete statement
|
||||
" 2. A ; at the end of a line (the delimiter)
|
||||
" 3. The end of the file (incase no delimiter)
|
||||
|
||||
+17
-1
@@ -1,4 +1,4 @@
|
||||
*autocmd.txt* For Vim version 8.0. Last change: 2017 Jul 14
|
||||
*autocmd.txt* For Vim version 8.0. Last change: 2017 Oct 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -492,6 +492,22 @@ CmdUndefined When a user command is used but it isn't
|
||||
command is defined. An alternative is to
|
||||
always define the user command and have it
|
||||
invoke an autoloaded function. See |autoload|.
|
||||
*CmdlineEnter*
|
||||
CmdlineEnter After moving the cursor to the command line,
|
||||
where the user can type a command or search
|
||||
string.
|
||||
<afile> is set to a single character,
|
||||
indicating the type of command-line.
|
||||
|cmdwin-char|
|
||||
*CmdlineLeave*
|
||||
CmdlineLeave Before leaving the command line.
|
||||
Also when abandoning the command line, after
|
||||
typing CTRL-C or <Esc>.
|
||||
When the commands result in an error the
|
||||
command line is still executed.
|
||||
<afile> is set to a single character,
|
||||
indicating the type of command-line.
|
||||
|cmdwin-char|
|
||||
*CmdwinEnter*
|
||||
CmdwinEnter After entering the command-line window.
|
||||
Useful for setting options specifically for
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*cmdline.txt* For Vim version 8.0. Last change: 2017 Sep 17
|
||||
*cmdline.txt* For Vim version 8.0. Last change: 2017 Oct 19
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -839,7 +839,8 @@ Note: these are typed literally, they are not special keys!
|
||||
<cfile> is replaced with the path name under the cursor (like what
|
||||
|gf| uses)
|
||||
<afile> When executing autocommands, is replaced with the file name
|
||||
for a file read or write.
|
||||
of the buffer being manipulated, or the file for a read or
|
||||
write.
|
||||
<abuf> When executing autocommands, is replaced with the currently
|
||||
effective buffer number (for ":r file" and ":so file" it is
|
||||
the current buffer, the file being read/sourced is not in a
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*diff.txt* For Vim version 8.0. Last change: 2017 Sep 26
|
||||
*diff.txt* For Vim version 8.0. Last change: 2017 Oct 03
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -326,7 +326,7 @@ g:diff_translations to zero: >
|
||||
|
||||
let g:diff_translations = 0
|
||||
<
|
||||
After setting this variable, Reload the syntax script: >
|
||||
After setting this variable, reload the syntax script: >
|
||||
|
||||
set syntax=diff
|
||||
<
|
||||
|
||||
+50
-25
@@ -1,4 +1,4 @@
|
||||
*eval.txt* For Vim version 8.0. Last change: 2017 Sep 17
|
||||
*eval.txt* For Vim version 8.0. Last change: 2017 Oct 28
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -120,9 +120,8 @@ To test for a non-empty string, use empty(): >
|
||||
Function arguments often behave slightly different from |TRUE|: If the
|
||||
argument is present and it evaluates to a non-zero Number, |v:true| or a
|
||||
non-empty String, then the value is considered to be TRUE.
|
||||
Note that " " and "0" are also non-empty strings, thus cause the mode to be
|
||||
cleared. A List, Dictionary or Float is not a Number or String, thus
|
||||
evaluates to FALSE.
|
||||
Note that " " and "0" are also non-empty strings, thus considered to be TRUE.
|
||||
A List, Dictionary or Float is not a Number or String, thus evaluate to FALSE.
|
||||
|
||||
*E745* *E728* *E703* *E729* *E730* *E731* *E908* *E910* *E913*
|
||||
List, Dictionary, Funcref, Job and Channel types are not automatically
|
||||
@@ -815,14 +814,15 @@ Examples:
|
||||
"abc" == "Abc" evaluates to 1 if 'ignorecase' is set, 0 otherwise
|
||||
|
||||
*E691* *E692*
|
||||
A |List| can only be compared with a |List| and only "equal", "not equal" and
|
||||
"is" can be used. This compares the values of the list, recursively.
|
||||
Ignoring case means case is ignored when comparing item values.
|
||||
A |List| can only be compared with a |List| and only "equal", "not equal",
|
||||
"is" and "isnot" can be used. This compares the values of the list,
|
||||
recursively. Ignoring case means case is ignored when comparing item values.
|
||||
|
||||
*E735* *E736*
|
||||
A |Dictionary| can only be compared with a |Dictionary| and only "equal", "not
|
||||
equal" and "is" can be used. This compares the key/values of the |Dictionary|
|
||||
recursively. Ignoring case means case is ignored when comparing item values.
|
||||
equal", "is" and "isnot" can be used. This compares the key/values of the
|
||||
|Dictionary| recursively. Ignoring case means case is ignored when comparing
|
||||
item values.
|
||||
|
||||
*E694*
|
||||
A |Funcref| can only be compared with a |Funcref| and only "equal", "not
|
||||
@@ -1912,11 +1912,16 @@ v:termstyleresp The escape sequence returned by the terminal for the |t_RS|
|
||||
termcap entry. This is used to find out what the shape of the
|
||||
cursor is. This is used by |term_getcursor()|.
|
||||
|
||||
*v:termrgbresp*
|
||||
v:termrgbresp The escape sequence returned by the terminal for the |t_RB|
|
||||
*v:termrbgresp*
|
||||
v:termrbgresp The escape sequence returned by the terminal for the |t_RB|
|
||||
termcap entry. This is used to find out what the terminal
|
||||
background color is, see 'background'.
|
||||
|
||||
*v:termrfgresp*
|
||||
v:termrfgresp The escape sequence returned by the terminal for the |t_RF|
|
||||
termcap entry. This is used to find out what the terminal
|
||||
foreground color is.
|
||||
|
||||
*v:termu7resp*
|
||||
v:termu7resp The escape sequence returned by the terminal for the |t_u7|
|
||||
termcap entry. This is used to find out what the terminal
|
||||
@@ -2316,7 +2321,7 @@ searchpos({pattern} [, {flags} [, {stopline} [, {timeout}]]])
|
||||
server2client({clientid}, {string})
|
||||
Number send reply string
|
||||
serverlist() String get a list of available servers
|
||||
setbufline( {expr}, {lnum}, {line})
|
||||
setbufline({expr}, {lnum}, {line})
|
||||
Number set line {lnum} to {line} in buffer
|
||||
{expr}
|
||||
setbufvar({expr}, {varname}, {val})
|
||||
@@ -2945,6 +2950,9 @@ ch_evalraw({handle}, {string} [, {options}]) *ch_evalraw()*
|
||||
correct contents. Also does not add a newline for a channel
|
||||
in NL mode, the caller must do that. The NL in the response
|
||||
is removed.
|
||||
Note that Vim does not know when the text received on a raw
|
||||
channel is complete, it may only return the first part and you
|
||||
need to use ch_readraw() to fetch the rest.
|
||||
See |channel-use|.
|
||||
|
||||
{only available when compiled with the |+channel| feature}
|
||||
@@ -6458,6 +6466,12 @@ remote_expr({server}, {string} [, {idvar} [, {timeout}]])
|
||||
{only available when compiled with the |+clientserver| feature}
|
||||
Note: Any errors will cause a local error message to be issued
|
||||
and the result will be the empty string.
|
||||
|
||||
Variables will be evaluated in the global namespace,
|
||||
independent of a function currently being activel. Except
|
||||
when in debug mode, then local function variables and
|
||||
arguments can be evaluated.
|
||||
|
||||
Examples: >
|
||||
:echo remote_expr("gvim", "2+2")
|
||||
:echo remote_expr("gvim1", "b:current_syntax")
|
||||
@@ -6779,6 +6793,7 @@ searchpair({start}, {middle}, {end} [, {flags} [, {skip}
|
||||
When {skip} is omitted or empty, every match is accepted.
|
||||
When evaluating {skip} causes an error the search is aborted
|
||||
and -1 returned.
|
||||
{skip} can be a string, a lambda, a funcref or a partial.
|
||||
|
||||
For {stopline} and {timeout} see |search()|.
|
||||
|
||||
@@ -8148,6 +8163,11 @@ term_setsize({buf}, {expr}) *term_setsize()*
|
||||
term_start({cmd}, {options}) *term_start()*
|
||||
Open a terminal window and run {cmd} in it.
|
||||
|
||||
{cmd} can be a string or a List, like with |job_start()|. The
|
||||
string "NONE" can be used to open a terminal window without
|
||||
starting a job, the pty of the terminal can be used by a
|
||||
command like gdb.
|
||||
|
||||
Returns the buffer number of the terminal window. If {cmd}
|
||||
cannot be executed the window does open and shows an error
|
||||
message.
|
||||
@@ -8874,9 +8894,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|
|
||||
@@ -8900,6 +8919,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.
|
||||
@@ -9052,13 +9073,16 @@ See |:verbose-cmd| for more information.
|
||||
|
||||
*E124* *E125* *E853* *E884*
|
||||
:fu[nction][!] {name}([arguments]) [range] [abort] [dict] [closure]
|
||||
Define a new function by the name {name}. The name
|
||||
must be made of alphanumeric characters and '_', and
|
||||
must start with a capital or "s:" (see above). Note
|
||||
that using "b:" or "g:" is not allowed. (since patch
|
||||
7.4.260 E884 is given if the function name has a colon
|
||||
in the name, e.g. for "foo:bar()". Before that patch
|
||||
no error was given).
|
||||
Define a new function by the name {name}. The body of
|
||||
the function follows in the next lines, until the
|
||||
matching |:endfunction|.
|
||||
|
||||
The name must be made of alphanumeric characters and
|
||||
'_', and must start with a capital or "s:" (see
|
||||
above). Note that using "b:" or "g:" is not allowed.
|
||||
(since patch 7.4.260 E884 is given if the function
|
||||
name has a colon in the name, e.g. for "foo:bar()".
|
||||
Before that patch no error was given).
|
||||
|
||||
{name} can also be a |Dictionary| entry that is a
|
||||
|Funcref|: >
|
||||
@@ -9194,9 +9218,10 @@ to the number of named arguments. When using "...", the number of arguments
|
||||
may be larger.
|
||||
|
||||
It is also possible to define a function without any arguments. You must
|
||||
still supply the () then. The body of the function follows in the next lines,
|
||||
until the matching |:endfunction|. It is allowed to define another function
|
||||
inside a function body.
|
||||
still supply the () then.
|
||||
|
||||
It is allowed to define another function inside a function
|
||||
body.
|
||||
|
||||
*local-variables*
|
||||
Inside a function local variables can be used. These will disappear when the
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*filetype.txt* For Vim version 8.0. Last change: 2017 Mar 28
|
||||
*filetype.txt* For Vim version 8.0. Last change: 2017 Oct 10
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -43,7 +43,7 @@ Detail: The ":filetype on" command will load one of these files:
|
||||
BufNewFile and BufRead events. If the file type is not found by the
|
||||
name, the file $VIMRUNTIME/scripts.vim is used to detect it from the
|
||||
contents of the file.
|
||||
When the GUI is running or will start soon, the menu.vim script is
|
||||
When the GUI is running or will start soon, the |menu.vim| script is
|
||||
also sourced. See |'go-M'| about avoiding that.
|
||||
|
||||
To add your own file types, see |new-filetype| below. To search for help on a
|
||||
@@ -607,6 +607,7 @@ Works on:
|
||||
- Linux
|
||||
- Mac OS
|
||||
- FreeBSD
|
||||
- OpenBSD
|
||||
- Cygwin
|
||||
- Win 10 under Bash
|
||||
|
||||
@@ -620,6 +621,10 @@ For bash,zsh,ksh or dash by adding to the config file (.bashrc,.zshrc, ...)
|
||||
|
||||
export MANPAGER="env MAN_PN=1 vim -M +MANPAGER -"
|
||||
|
||||
On OpenBSD:
|
||||
|
||||
export MANPAGER="env MAN_PN=1 vim -M +MANPAGER"
|
||||
|
||||
For (t)csh by adding to the config file
|
||||
|
||||
setenv MANPAGER "env MAN_PN=1 vim -M +MANPAGER -"
|
||||
|
||||
@@ -199,7 +199,7 @@ COMMANDS *rust-commands*
|
||||
|g:rust_playpen_url| is the base URL to the playpen, by default
|
||||
"https://play.rust-lang.org/".
|
||||
|
||||
|g:rust_shortener_url| is the base URL for the shorterner, by
|
||||
|g:rust_shortener_url| is the base URL for the shortener, by
|
||||
default "https://is.gd/"
|
||||
|
||||
:RustFmt *:RustFmt*
|
||||
|
||||
+6
-1
@@ -482,6 +482,7 @@ menus and menu items. They are most useful for things that you can't remember
|
||||
what the key sequence was.
|
||||
|
||||
For creating menus in a different language, see |:menutrans|.
|
||||
If you don't want to use menus at all, see |'go-M'|.
|
||||
|
||||
*menu.vim*
|
||||
The default menus are read from the file "$VIMRUNTIME/menu.vim". See
|
||||
@@ -498,7 +499,11 @@ in the menu (which can take a bit of time to load). If you want to have all
|
||||
filetypes already present at startup, add: >
|
||||
:let do_syntax_sel_menu = 1
|
||||
|
||||
<
|
||||
Note that the menu.vim is sourced when `:syntax on` or `:filetype on` is
|
||||
executed or after your .vimrc file is sourced. This means that the 'encoding'
|
||||
option and the language of messages (`:language messages`) must be set before
|
||||
that (if you want to change them).
|
||||
|
||||
*console-menus*
|
||||
Although this documentation is in the GUI section, you can actually use menus
|
||||
in console mode too. You will have to load |menu.vim| explicitly then, it is
|
||||
|
||||
+3
-33
@@ -1,4 +1,4 @@
|
||||
*gui_w32.txt* For Vim version 8.0. Last change: 2014 Dec 20
|
||||
*gui_w32.txt* For Vim version 8.0. Last change: 2017 Oct 27
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -382,38 +382,8 @@ Note that a menu that starts with ']' will not be displayed.
|
||||
==============================================================================
|
||||
7. Command line arguments *gui-w32-cmdargs*
|
||||
|
||||
Analysis of a command line into parameters is not standardised in MS Windows.
|
||||
Gvim has to provide logic to analyse a command line. This logic is likely to
|
||||
be different from the default logic provided by a compilation system used to
|
||||
build vim. The differences relate to unusual double quote (") usage.
|
||||
The arguments "C:\My Music\freude.txt" and "+/Sch\"iller" are handled in the
|
||||
same way. The argument "+/Sch""iller" may be handled different by gvim and
|
||||
vim, depending what it was compiled with.
|
||||
|
||||
The rules are:
|
||||
a) A parameter is a sequence of graphic characters.
|
||||
b) Parameters are separated by white space.
|
||||
c) A parameter can be enclosed in double quotes to include white space.
|
||||
d) A sequence of zero or more backslashes (\) and a double quote (")
|
||||
is special. The effective number of backslashes is halved, rounded
|
||||
down. An even number of backslashes reverses the acceptability of
|
||||
spaces and tabs, an odd number of backslashes produces a literal
|
||||
double quote.
|
||||
|
||||
So:
|
||||
" is a special double quote
|
||||
\" is a literal double quote
|
||||
\\" is a literal backslash and a special double quote
|
||||
\\\" is a literal backslash and a literal double quote
|
||||
\\\\" is 2 literal backslashes and a special double quote
|
||||
\\\\\" is 2 literal backslashes and a literal double quote
|
||||
etc.
|
||||
|
||||
Example: >
|
||||
gvim "C:\My Music\freude" +"set ignorecase" +/"\"foo\\" +\"bar\\\"
|
||||
|
||||
opens "C:\My Music\freude" and executes the line mode commands: >
|
||||
set ignorecase; /"foo\ and /bar\"
|
||||
Command line arguments behave the same way as with the console application,
|
||||
see |win32-cmdargs|.
|
||||
|
||||
==============================================================================
|
||||
8. Various *gui-w32-various*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*help.txt* For Vim version 8.0. Last change: 2016 Sep 12
|
||||
*help.txt* For Vim version 8.0. Last change: 2017 Oct 28
|
||||
|
||||
VIM - main help file
|
||||
k
|
||||
@@ -142,6 +142,7 @@ Special issues ~
|
||||
|print.txt| printing
|
||||
|remote.txt| using Vim as a server or client
|
||||
|term.txt| using different terminals and mice
|
||||
|terminal.txt| Terminal window support
|
||||
|digraph.txt| list of available digraphs
|
||||
|mbyte.txt| multi-byte text support
|
||||
|mlang.txt| non-English language support
|
||||
@@ -150,6 +151,7 @@ Special issues ~
|
||||
|hebrew.txt| Hebrew language support and editing
|
||||
|russian.txt| Russian language support and editing
|
||||
|ft_ada.txt| Ada (the programming language) support
|
||||
|ft_rust.txt| Filetype plugin for Rust
|
||||
|ft_sql.txt| about the SQL filetype plugin
|
||||
|hangulin.txt| Hangul (Korean) input mode
|
||||
|rileft.txt| right-to-left editing mode
|
||||
@@ -203,6 +205,7 @@ Standard plugins ~
|
||||
|pi_logipat.txt| Logical operators on patterns
|
||||
|pi_netrw.txt| Reading and writing files over a network
|
||||
|pi_paren.txt| Highlight matching parens
|
||||
|pi_spec.txt| Filetype plugin to work with rpm spec files
|
||||
|pi_tar.txt| Tar file explorer
|
||||
|pi_vimball.txt| Create a self-installing Vim script
|
||||
|pi_zip.txt| Zip archive explorer
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*if_mzsch.txt* For Vim version 8.0. Last change: 2016 Jan 24
|
||||
*if_mzsch.txt* For Vim version 8.0. Last change: 2017 Oct 08
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Sergey Khorev
|
||||
@@ -278,12 +278,15 @@ When you don't use the MzScheme interface you don't need them, thus you can
|
||||
use Vim without these DLL files.
|
||||
NOTE: Newer version of MzScheme (Racket) require earlier (trampolined)
|
||||
initialisation via scheme_main_setup. So Vim always loads the MzScheme DLL at
|
||||
startup if possible.
|
||||
startup if possible. This may make Vim startup slower.
|
||||
|
||||
To use the MzScheme interface the MzScheme DLLs must be in your search path.
|
||||
In a console window type "path" to see what directories are used.
|
||||
|
||||
The names of the DLLs must match the MzScheme version Vim was compiled with.
|
||||
On MS-Windows the options 'mzschemedll' and 'mzschemegcdll' are used for the
|
||||
name of the library to load. The initial value is specified at build time.
|
||||
|
||||
The version of the DLL must match the MzScheme version Vim was compiled with.
|
||||
For MzScheme version 209 they will be "libmzsch209_000.dll" and
|
||||
"libmzgc209_000.dll". To know for sure look at the output of the ":version"
|
||||
command, look for -DDYNAMIC_MZSCH_DLL="something" and
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*message.txt* For Vim version 8.0. Last change: 2017 Mar 25
|
||||
*message.txt* For Vim version 8.0. Last change: 2017 Oct 14
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -463,12 +463,6 @@ changed. To avoid the message reset the 'warn' option.
|
||||
Something inside Vim went wrong and resulted in a NULL pointer. If you know
|
||||
how to reproduce this problem, please report it. |bugs|
|
||||
|
||||
*E172* >
|
||||
Only one file name allowed
|
||||
|
||||
The ":edit" command only accepts one file name. When you want to specify
|
||||
several files for editing use ":next" |:next|.
|
||||
|
||||
*E41* *E82* *E83* *E342* >
|
||||
Out of memory!
|
||||
Out of memory! (allocating {number} bytes)
|
||||
@@ -645,6 +639,9 @@ starts. It can be fixed in one of these ways:
|
||||
- Just write the file again the next day. Or set your clock to the next day,
|
||||
write the file twice and set the clock back.
|
||||
|
||||
If you get W11 all the time, you may need to disable "Acronis Active
|
||||
Protection" or register vim as a trusted service/application.
|
||||
|
||||
*W12* >
|
||||
Warning: File "{filename}" has changed and the buffer was changed in Vim as well
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*motion.txt* For Vim version 8.0. Last change: 2017 Mar 12
|
||||
*motion.txt* For Vim version 8.0. Last change: 2017 Oct 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1317,7 +1317,10 @@ the current line is included. You can then use "%" to go to the matching line.
|
||||
H To line [count] from top (Home) of window (default:
|
||||
first line on the window) on the first non-blank
|
||||
character |linewise|. See also 'startofline' option.
|
||||
Cursor is adjusted for 'scrolloff' option.
|
||||
Cursor is adjusted for 'scrolloff' option, unless an
|
||||
operator is pending, in which case the text may
|
||||
scroll. E.g. "yH" yanks from the first visible line
|
||||
until the cursor line (inclusive).
|
||||
|
||||
*M*
|
||||
M To Middle line of window, on the first non-blank
|
||||
@@ -1327,7 +1330,10 @@ M To Middle line of window, on the first non-blank
|
||||
L To line [count] from bottom of window (default: Last
|
||||
line on the window) on the first non-blank character
|
||||
|linewise|. See also 'startofline' option.
|
||||
Cursor is adjusted for 'scrolloff' option.
|
||||
Cursor is adjusted for 'scrolloff' option, unless an
|
||||
operator is pending, in which case the text may
|
||||
scroll. E.g. "yL" yanks from the cursor to the last
|
||||
visible line.
|
||||
|
||||
<LeftMouse> Moves to the position on the screen where the mouse
|
||||
click is |exclusive|. See also |<LeftMouse>|. If the
|
||||
|
||||
+42
-5
@@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 8.0. Last change: 2017 Sep 24
|
||||
*options.txt* For Vim version 8.0. Last change: 2017 Nov 02
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -891,7 +891,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
'background' is not dark/light, 'background' will be set and the
|
||||
screen is redrawn. This may have side effects, make t_BG empty in
|
||||
your .vimrc if you suspect this problem. The response to |t_RB| can
|
||||
be found in |v:termrgbresp|.
|
||||
be found in |v:termrbgresp|.
|
||||
|
||||
When starting the GUI, the default value for 'background' will be
|
||||
"light". When the value is not set in the .gvimrc, and Vim detects
|
||||
@@ -4018,7 +4018,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
that this flag must be added in the .vimrc file, before
|
||||
switching on syntax or filetype recognition (when the |gvimrc|
|
||||
file is sourced the system menu has already been loaded; the
|
||||
":syntax on" and ":filetype on" commands load the menu too).
|
||||
`:syntax on` and `:filetype on` commands load the menu too).
|
||||
*'go-g'*
|
||||
'g' Grey menu items: Make menu items that are not active grey. If
|
||||
'g' is not included inactive menu items are not shown at all.
|
||||
@@ -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
|
||||
@@ -5279,7 +5289,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
:au FileType c,cpp,java set mps+==:;
|
||||
|
||||
< For a more advanced way of using "%", see the matchit.vim plugin in
|
||||
the $VIMRUNTIME/macros directory. |add-local-help|
|
||||
the $VIMRUNTIME/pack/dist/opt/matchit directory. |add-local-help|
|
||||
|
||||
*'matchtime'* *'mat'*
|
||||
'matchtime' 'mat' number (default 5)
|
||||
@@ -5630,6 +5640,33 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
time in msec between two mouse clicks for the second click to be
|
||||
recognized as a multi click.
|
||||
|
||||
*'mzschemedll'*
|
||||
'mzschemedll' string (default depends on the build)
|
||||
global
|
||||
{not in Vi}
|
||||
{only available when compiled with the |+mzscheme/dyn|
|
||||
feature}
|
||||
Specifies the name of the MzScheme shared library. The default is
|
||||
DYNAMIC_MZSCH_DLL which was specified at compile time.
|
||||
Environment variables are expanded |:set_env|.
|
||||
The value must be set in the |vimrc| script or ealier. In the
|
||||
startup, before the |load-plugins| step.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
*'mzschemegcdll'*
|
||||
'mzschemegcdll' string (default depends on the build)
|
||||
global
|
||||
{not in Vi}
|
||||
{only available when compiled with the |+mzscheme/dyn|
|
||||
feature}
|
||||
Specifies the name of the MzScheme GC shared library. The default is
|
||||
DYNAMIC_MZGC_DLL which was specified at compile time.
|
||||
The value can be equal to 'mzschemedll' if it includes the GC code.
|
||||
Environment variables are expanded |:set_env|.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
*'mzquantum'* *'mzq'*
|
||||
'mzquantum' 'mzq' number (default 100)
|
||||
global
|
||||
|
||||
@@ -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:
|
||||
|
||||
|
||||
@@ -81,10 +81,45 @@ The directory of the Vim executable is appended to $PATH. This is mostly to
|
||||
make "!xxd" work, as it is in the Tools menu. And it also means that when
|
||||
executable() returns 1 the executable can actually be executed.
|
||||
|
||||
Quotes in file names *win32-quotes*
|
||||
Command line arguments *win32-cmdargs*
|
||||
|
||||
Quotes inside a file name (or any other command line argument) can be escaped
|
||||
with a backslash. E.g. >
|
||||
Analysis of a command line into parameters is not standardised in MS Windows.
|
||||
Vim and gvim used to use different logic to parse it (before 7.4.432), and the
|
||||
logic was also depended on what it was compiled with. Now Vim and gvim both
|
||||
use the CommandLineToArgvW() Win32 API, so they behave in the same way.
|
||||
|
||||
The basic rules are: *win32-backslashes*
|
||||
a) A parameter is a sequence of graphic characters.
|
||||
b) Parameters are separated by white space.
|
||||
c) A parameter can be enclosed in double quotes to include white space.
|
||||
d) A sequence of zero or more backslashes (\) and a double quote (")
|
||||
is special. The effective number of backslashes is halved, rounded
|
||||
down. An even number of backslashes reverses the acceptability of
|
||||
spaces and tabs, an odd number of backslashes produces a literal
|
||||
double quote.
|
||||
|
||||
So:
|
||||
" is a special double quote
|
||||
\" is a literal double quote
|
||||
\\" is a literal backslash and a special double quote
|
||||
\\\" is a literal backslash and a literal double quote
|
||||
\\\\" is 2 literal backslashes and a special double quote
|
||||
\\\\\" is 2 literal backslashes and a literal double quote
|
||||
etc.
|
||||
|
||||
Example: >
|
||||
vim "C:\My Music\freude" +"set ignorecase" +/"\"foo\\" +\"bar\\\"
|
||||
|
||||
opens "C:\My Music\freude" and executes the line mode commands: >
|
||||
set ignorecase; /"foo\ and /bar\"
|
||||
|
||||
These rules are also described in the reference of the CommandLineToArgvW API:
|
||||
https://msdn.microsoft.com/en-us/library/windows/desktop/bb776391.aspx
|
||||
|
||||
*win32-quotes*
|
||||
There are additional rules for quotes (which are not well documented).
|
||||
As described above, quotes inside a file name (or any other command line
|
||||
argument) can be escaped with a backslash. E.g. >
|
||||
vim -c "echo 'foo\"bar'"
|
||||
|
||||
Alternatively use three quotes to get one: >
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*quickref.txt* For Vim version 8.0. Last change: 2017 Sep 10
|
||||
*quickref.txt* For Vim version 8.0. Last change: 2017 Oct 19
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -784,6 +784,8 @@ Short explanation of each option: *option-list*
|
||||
'listchars' 'lcs' characters for displaying in list mode
|
||||
'loadplugins' 'lpl' load plugin scripts when starting up
|
||||
'luadll' name of the Lua dynamic library
|
||||
'mzschemedll' name of the MzScheme dynamic library
|
||||
'mzschemegcdll' name of the MzScheme dynamic library for GC
|
||||
'macatsui' Mac GUI: use ATSUI text drawing
|
||||
'macligatures' display ligatures (MacVim GUI only)
|
||||
'macmeta' 'mmta' use option as meta key (MacVim GUI only)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*spell.txt* For Vim version 8.0. Last change: 2016 Jan 08
|
||||
*spell.txt* For Vim version 8.0. Last change: 2017 Oct 26
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -723,7 +723,7 @@ Additionally the following items are recognized:
|
||||
= Case must match exactly.
|
||||
? Rare word.
|
||||
! Bad (wrong) word.
|
||||
digit A region in which the word is valid. If no regions are
|
||||
1 to 9 A region in which the word is valid. If no regions are
|
||||
specified the word is valid in all regions.
|
||||
|
||||
Example:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*starting.txt* For Vim version 8.0. Last change: 2017 Jul 15
|
||||
*starting.txt* For Vim version 8.0. Last change: 2017 Oct 24
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -874,6 +874,9 @@ accordingly. Vim proceeds in this order:
|
||||
(*) Using this file or environment variable will cause 'compatible' to be
|
||||
off by default. See |compatible-default|.
|
||||
|
||||
Note: When using the |mzscheme| interface, it is initialzed after loading
|
||||
the vimrc file. Changing 'mzschemedll' later has no effect.
|
||||
|
||||
4. Load the plugin scripts. *load-plugins*
|
||||
This does the same as the command: >
|
||||
:runtime! plugin/**/*.vim
|
||||
@@ -1045,7 +1048,7 @@ details. NOTE: this is done since Vim 8.0, not in Vim 7.4. (it was added in
|
||||
patch 7.4.2111 to be exact).
|
||||
|
||||
This should work well for new Vim users. If you create your own .vimrc, it is
|
||||
recommended to add this line somewhere near the top: >
|
||||
recommended to add these lines somewhere near the top: >
|
||||
unlet! skip_defaults_vim
|
||||
source $VIMRUNTIME/defaults.vim
|
||||
Then Vim works like before you had a .vimrc. Copying $VIMRUNTIME/vimrc_example
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*syntax.txt* For Vim version 8.0. Last change: 2017 Aug 12
|
||||
*syntax.txt* For Vim version 8.0. Last change: 2017 Sep 30
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -61,10 +61,12 @@ fine. If it doesn't, try setting the VIM environment variable to the
|
||||
directory where the Vim stuff is located. For example, if your syntax files
|
||||
are in the "/usr/vim/vim50/syntax" directory, set $VIMRUNTIME to
|
||||
"/usr/vim/vim50". You must do this in the shell, before starting Vim.
|
||||
This command also sources the |menu.vim| script when the GUI is running or
|
||||
will start soon. See |'go-M'| about avoiding that.
|
||||
|
||||
*:syn-on* *:syntax-on*
|
||||
The ":syntax enable" command will keep your current color settings. This
|
||||
allows using ":highlight" commands to set your preferred colors before or
|
||||
The `:syntax enable` command will keep your current color settings. This
|
||||
allows using `:highlight` commands to set your preferred colors before or
|
||||
after using this command. If you want Vim to overrule your settings with the
|
||||
defaults, use: >
|
||||
:syntax on
|
||||
@@ -810,12 +812,9 @@ See |mysyntaxfile-add| for installing script languages permanently.
|
||||
|
||||
APACHE *apache.vim* *ft-apache-syntax*
|
||||
|
||||
The apache syntax file provides syntax highlighting depending on Apache HTTP
|
||||
server version, by default for 1.3.x. Set "apache_version" to Apache version
|
||||
(as a string) to get highlighting for another version. Example: >
|
||||
The apache syntax file provides syntax highlighting for Apache HTTP server
|
||||
version 2.2.3.
|
||||
|
||||
:let apache_version = "2.0"
|
||||
<
|
||||
|
||||
*asm.vim* *asmh8300.vim* *nasm.vim* *masm.vim* *asm68k*
|
||||
ASSEMBLY *ft-asm-syntax* *ft-asmh8300-syntax* *ft-nasm-syntax*
|
||||
|
||||
+12
-2
@@ -489,6 +489,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
'msm' options.txt /*'msm'*
|
||||
'mzq' options.txt /*'mzq'*
|
||||
'mzquantum' options.txt /*'mzquantum'*
|
||||
'mzschemedll' options.txt /*'mzschemedll'*
|
||||
'mzschemegcdll' options.txt /*'mzschemegcdll'*
|
||||
'nf' options.txt /*'nf'*
|
||||
'noacd' options.txt /*'noacd'*
|
||||
'noai' options.txt /*'noai'*
|
||||
@@ -996,6 +998,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
't_PS' term.txt /*'t_PS'*
|
||||
't_RB' term.txt /*'t_RB'*
|
||||
't_RC' term.txt /*'t_RC'*
|
||||
't_RF' term.txt /*'t_RF'*
|
||||
't_RI' term.txt /*'t_RI'*
|
||||
't_RS' term.txt /*'t_RS'*
|
||||
't_RV' term.txt /*'t_RV'*
|
||||
@@ -3708,6 +3711,8 @@ Cmd-event autocmd.txt /*Cmd-event*
|
||||
CmdUndefined autocmd.txt /*CmdUndefined*
|
||||
Cmdline cmdline.txt /*Cmdline*
|
||||
Cmdline-mode cmdline.txt /*Cmdline-mode*
|
||||
CmdlineEnter autocmd.txt /*CmdlineEnter*
|
||||
CmdlineLeave autocmd.txt /*CmdlineLeave*
|
||||
CmdwinEnter autocmd.txt /*CmdwinEnter*
|
||||
CmdwinLeave autocmd.txt /*CmdwinLeave*
|
||||
ColorScheme autocmd.txt /*ColorScheme*
|
||||
@@ -3811,7 +3816,6 @@ E169 message.txt /*E169*
|
||||
E17 message.txt /*E17*
|
||||
E170 eval.txt /*E170*
|
||||
E171 eval.txt /*E171*
|
||||
E172 message.txt /*E172*
|
||||
E173 message.txt /*E173*
|
||||
E174 map.txt /*E174*
|
||||
E175 map.txt /*E175*
|
||||
@@ -6586,6 +6590,7 @@ ga various.txt /*ga*
|
||||
garbagecollect() eval.txt /*garbagecollect()*
|
||||
gd pattern.txt /*gd*
|
||||
gdb debug.txt /*gdb*
|
||||
gdb-version terminal.txt /*gdb-version*
|
||||
ge motion.txt /*ge*
|
||||
get() eval.txt /*get()*
|
||||
get-ms-debuggers debug.txt /*get-ms-debuggers*
|
||||
@@ -7900,6 +7905,7 @@ option-summary options.txt /*option-summary*
|
||||
option-window options.txt /*option-window*
|
||||
options options.txt /*options*
|
||||
options-changed version5.txt /*options-changed*
|
||||
options-in-terminal terminal.txt /*options-in-terminal*
|
||||
options.txt options.txt /*options.txt*
|
||||
optwin options.txt /*optwin*
|
||||
or() eval.txt /*or()*
|
||||
@@ -8718,6 +8724,7 @@ t_PE term.txt /*t_PE*
|
||||
t_PS term.txt /*t_PS*
|
||||
t_RB term.txt /*t_RB*
|
||||
t_RC term.txt /*t_RC*
|
||||
t_RF term.txt /*t_RF*
|
||||
t_RI term.txt /*t_RI*
|
||||
t_RS term.txt /*t_RS*
|
||||
t_RV term.txt /*t_RV*
|
||||
@@ -9215,8 +9222,9 @@ v:t_none eval.txt /*v:t_none*
|
||||
v:t_number eval.txt /*v:t_number*
|
||||
v:t_string eval.txt /*v:t_string*
|
||||
v:termblinkresp eval.txt /*v:termblinkresp*
|
||||
v:termrbgresp eval.txt /*v:termrbgresp*
|
||||
v:termresponse eval.txt /*v:termresponse*
|
||||
v:termrgbresp eval.txt /*v:termrgbresp*
|
||||
v:termrfgresp eval.txt /*v:termrfgresp*
|
||||
v:termstyleresp eval.txt /*v:termstyleresp*
|
||||
v:termu7resp eval.txt /*v:termu7resp*
|
||||
v:testing eval.txt /*v:testing*
|
||||
@@ -9502,6 +9510,8 @@ wildmenumode() eval.txt /*wildmenumode()*
|
||||
win32 os_win32.txt /*win32*
|
||||
win32-!start gui_w32.txt /*win32-!start*
|
||||
win32-PATH os_win32.txt /*win32-PATH*
|
||||
win32-backslashes os_win32.txt /*win32-backslashes*
|
||||
win32-cmdargs os_win32.txt /*win32-cmdargs*
|
||||
win32-colors gui_w32.txt /*win32-colors*
|
||||
win32-compiling os_win32.txt /*win32-compiling*
|
||||
win32-curdir os_win32.txt /*win32-curdir*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*tagsrch.txt* For Vim version 8.0. Last change: 2016 Sep 20
|
||||
*tagsrch.txt* For Vim version 8.0. Last change: 2017 Oct 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -195,6 +195,7 @@ the same entry.
|
||||
information in the tags file(s).
|
||||
When [ident] is not given, the last tag name from the
|
||||
tag stack is used.
|
||||
See |tag-!| for [!].
|
||||
With a '>' in the first column is indicated which is
|
||||
the current position in the list (if there is one).
|
||||
[ident] can be a regexp pattern, see |tag-regexp|.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*term.txt* For Vim version 8.0. Last change: 2017 Aug 28
|
||||
*term.txt* For Vim version 8.0. Last change: 2017 Oct 14
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -327,6 +327,7 @@ Added by Vim (there are no standard codes for these):
|
||||
|xterm-8bit| |v:termresponse| |'ttymouse'| |xterm-codes|
|
||||
t_u7 request cursor position (for xterm) *t_u7* *'t_u7'*
|
||||
see |'ambiwidth'|
|
||||
t_RF request terminal foreground color *t_RF* *'t_RF'*
|
||||
t_RB request terminal background color *t_RB* *'t_RB'*
|
||||
t_8f set foreground color (R, G, B) *t_8f* *'t_8f'*
|
||||
|xterm-true-color|
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*terminal.txt* For Vim version 8.0. Last change: 2017 Sep 26
|
||||
*terminal.txt* For Vim version 8.0. Last change: 2017 Oct 29
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -84,7 +84,7 @@ These are defined like any mapping, but apply only when typing keys that are
|
||||
sent to the job running in the terminal. For example, to make Escape switch
|
||||
to Terminal-Normal mode: >
|
||||
tnoremap <Esc> <C-W>N
|
||||
|
||||
< *options-in-terminal*
|
||||
After opening the terminal window and setting 'buftype' to "terminal" the
|
||||
BufWinEnter autocommand event is triggered. This makes it possible to set
|
||||
options specifically for the window and buffer. Example: >
|
||||
@@ -472,8 +472,11 @@ Customizing ~
|
||||
To change the name of the gdb command, set the "termdebugger" variable before
|
||||
invoking `:Termdebug`: >
|
||||
let termdebugger = "mygdb"
|
||||
< *gdb-version*
|
||||
Only debuggers fully compatible with gdb will work. Vim uses the GDB/MI
|
||||
interface. This probably requires gdb version 7.12.
|
||||
interface. This probably requires gdb version 7.12. if you get this error:
|
||||
Undefined command: "new-ui". Try "help".~
|
||||
Then your gdb is too old.
|
||||
|
||||
The color of the signs can be adjusted with these highlight groups:
|
||||
- debugPC the current position
|
||||
|
||||
+55
-55
@@ -1,4 +1,4 @@
|
||||
*todo.txt* For Vim version 8.0. Last change: 2017 Sep 27
|
||||
*todo.txt* For Vim version 8.0. Last change: 2017 Nov 02
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -7,9 +7,9 @@
|
||||
TODO list for Vim *todo*
|
||||
|
||||
This is a veeeery long list of known bugs, current work and desired
|
||||
improvements. To make it a little bit accessible, the items are grouped by
|
||||
subject. In the first column of the line a classification is used to be able
|
||||
to look for "the next thing to do":
|
||||
improvements. To make it a little bit accessible, the older items are grouped
|
||||
by subject. In the first column of the line a classification is used to be
|
||||
able to look for "the next thing to do":
|
||||
|
||||
Priority classification:
|
||||
9 next point release
|
||||
@@ -35,14 +35,6 @@ entered there will not be repeated below, unless there is extra information.
|
||||
*known-bugs*
|
||||
-------------------- Known bugs and current work -----------------------
|
||||
|
||||
MS-Windows build and installer improvements:
|
||||
- Switch to VC2015 for building. (Ken Takata, 2017 Sep 21)
|
||||
Check resulting binary on XP.
|
||||
- Patch to install 32 and 64 bit Gvimext and related dll files. (Ken Takata,
|
||||
2017 Sep 23, #2144)
|
||||
|
||||
:term hangs in Athena and Motif. (Kazunobu Kuriyama, 2017 Sep 17)
|
||||
|
||||
Universal solution to detect if t_RS is working, using cursor position.
|
||||
Koichi Iwamoto, #2126
|
||||
|
||||
@@ -154,49 +146,38 @@ Suggested by Hiroki Kokubun:
|
||||
- [hybrid](https://github.com/w0ng/vim-hybrid)
|
||||
Include solarized color scheme?
|
||||
|
||||
Compiler warnings (geeknik, 2017 Oct 26):
|
||||
- signed integer overflow in do_sub() (#2249)
|
||||
- signed integer overflow in get_address() (#2248)
|
||||
- signed integer overflow in getdecchrs() (#2254)
|
||||
- signed integer overflow in nfa_regatom() (#2251)
|
||||
- undefined left shift in get_string_tv() (#2250)
|
||||
|
||||
Patch to recognize neumutt temp files. (Teubel György, 2017 Oct 31, #2269)
|
||||
|
||||
When starting with --clean packages under "start" are not loaded. Make this
|
||||
work: :packadd START {name} similar to :runtime START name
|
||||
|
||||
When using :packadd files under "later" are not used, which is inconsistent
|
||||
with packages under "start". (xtal8, #1994)
|
||||
|
||||
Patch to test autocommand effects. (James McCoy, 2017 Oct 31, #2271)
|
||||
|
||||
After 8.0.0962 pasting leaves the cursor in another position. (Ken Takata,
|
||||
2017 Aug 23, #2015) Also (zdm, 2017 Aug 23)
|
||||
|
||||
Patch to fix popup menu drawing when changing the window size. (Ozaki Kiichi,
|
||||
2017 Sep 17, #2110)
|
||||
|
||||
Patch to fix cursor highlighting with match. (Ozaki Kiichi, 2017 Sep 17,
|
||||
#2111)
|
||||
|
||||
Patch for not profiling the first line of a script. (Lemonboy, 2017 Sep 17,
|
||||
#2103)
|
||||
|
||||
Mac Terminal.app: ctermbg=15 gives light grey instead of white.
|
||||
ctermbg=256 breaks clearing till end of the line. Both work fine in xterm.
|
||||
|
||||
Patch to avoid `rb_load_protect` as a workaround not to crash (#2147)
|
||||
|
||||
Patch for drag&drop reordering of GUI tab pages reordering.
|
||||
(Ken Takata, 2013 Nov 22, second one, also by Masamichi Abe)
|
||||
Now on Git: https://gist.github.com/nocd5/165286495c782b815b94
|
||||
Update 2016 Aug 10.
|
||||
|
||||
Using ":hi" causes a redraw, but a redraw may update the status line, which
|
||||
may trigger a ":hi" command.
|
||||
|
||||
Last line not in profile if it is a continuation line. (LemonBoy, 2017 Sep 17,
|
||||
#2112)
|
||||
fold at end of the buffer behaves inconsistently. (James McCoy, 2017 Oct 9)
|
||||
|
||||
With foldmethod=syntax and nofoldenable comment highlighting isn't removed.
|
||||
(Marcin Szewczyk, 2017 Apr 26)
|
||||
|
||||
Patch to make Mac features more clear and add "macdarwin". (Kazunobu Kuriyama,
|
||||
2017 Sep 5)
|
||||
|
||||
Using 'wildignore' also applies to literally entered file name. Also with
|
||||
:drop (remote commands).
|
||||
|
||||
"gvim --remote" from a directory with non-word characters changes the current
|
||||
directory (Paulo Marcel Coelho Arabic, 2017 Oct 30, #2266)
|
||||
Also see #1689.
|
||||
|
||||
ml_get error when using a Python. (Yggdroot, 2017 Jun 1, #1737)
|
||||
Lemonboy can reproduce (2017 Jun 5)
|
||||
|
||||
@@ -204,17 +185,25 @@ ml_get errors with buggy script. (Dominique, 2017 Apr 30)
|
||||
|
||||
Error in emsg with buggy script. (Dominique, 2017 Apr 30)
|
||||
|
||||
Patch to make ":set scroll&" work properly. (Ozaki Kiichi, 2017 Sep 17, #2104)
|
||||
When a timer is running and typing CTRL-R on the command line, it is not
|
||||
redrawn properly. (xtal8, 2017 Oct 23, #2241)
|
||||
|
||||
mswin.vim should not map CTRL-F in the console (#2093)
|
||||
Patch from Christian, 2017 Sep 15.
|
||||
Installer patch from Ken Takata, link on #2093.
|
||||
Patch for manpager plugin. (Lcd, 2017 Oct 12)
|
||||
Asked maintainer.
|
||||
|
||||
Default install on MS-Windows should source defaults.vim.
|
||||
Ask whether to use Windows or Vim key behavior?
|
||||
|
||||
When using command line window, CmdlineLeave is triggered without
|
||||
CmdlineEnter. (xtal8, 2017 Oct 30, #2263)
|
||||
Add some way to get the nested state. Although CmdwinEnter is obviously
|
||||
always nested.
|
||||
|
||||
matchit hasn't been maintained for a long time. #955.
|
||||
|
||||
MS-Windows: buffer completetion doesn't work when using backslash (or slash)
|
||||
for a path separator. (xtal8, #2201)
|
||||
|
||||
Test runtime files.
|
||||
Start with filetype detection: testdir/test_filetype.vim
|
||||
|
||||
@@ -236,6 +225,17 @@ line breaks. (Ken Takata, 2017 Aug 22)
|
||||
This example in the help does not work (Andy Wokula, 2017 Aug 20):
|
||||
augroup mine | au! BufRead | augroup END
|
||||
|
||||
24 bit color support in MS-Windows console, using vcon. (Nobuhiro Takasaki,
|
||||
2017 Oct 1, #2060). Should not set 'tgc' automatically.
|
||||
|
||||
Patch to change GUI behavior: instead of changing the window size change the
|
||||
lines/columns when menu/toolbar/etc. is added/removed. (Ychin, 2016 Mar 20,
|
||||
#703)
|
||||
|
||||
Patch to skip globpath() for color schemes, keymaps and compiler settings.
|
||||
So that loading menus is faster. (Ken Takata, 2017 Oct 23)
|
||||
Update to expand the menus in a CursorHold autocmd. (2017 Oct 25)
|
||||
|
||||
Memory leaks in test_channel? (or is it because of fork())
|
||||
Memory leak in test_arabic.
|
||||
Using uninitialized value in test_crypt.
|
||||
@@ -244,7 +244,7 @@ Patch to make gM move to middle of line. (Yasuhiro Matsumoto, Sep 8, #2070)
|
||||
|
||||
Include Haiku port. (Adrien Destugues, Siarzhuk Zharski, 2013 Oct 24)
|
||||
It can replace the BeOS code, which is likely not used anymore.
|
||||
Now on github: #1856.
|
||||
Now on github: #1856. Updated Oct 2017
|
||||
Got permission to include this under the Vim license.
|
||||
|
||||
Refactored HTML indent file. (Michael Lee, #1821)
|
||||
@@ -252,6 +252,8 @@ Refactored HTML indent file. (Michael Lee, #1821)
|
||||
Test_writefile_fails_conversion failure on Solaris because if different iconv
|
||||
behavior. Skip when "uname" returns "SunOS"? (Pavel Heimlich, #1872)
|
||||
|
||||
'tagrelative' is broken in specific situation. (xaizek, 2017 Oct 19, #2221)
|
||||
|
||||
All functions are global, which makes functions like get() and len() awkward.
|
||||
For the future use the ~get() and ~len() syntax, e.g.:
|
||||
mylist~get(idx)
|
||||
@@ -269,6 +271,9 @@ The ++ options for the :edit command are also useful on the Vim command line.
|
||||
Overlong utf-8 sequence is displayed wrong. (Harm te Hennepe, 2017 Sep 14,
|
||||
#2089) Patch with possible solution by Björn Linse.
|
||||
|
||||
The change list index is local to a buffer, but it doesn't make sense using it
|
||||
for another buffer. (lacygoll) Copy w_changelistidx to wininfo_S and back.
|
||||
|
||||
X11: Putting more than about 262040 characters of text on the clipboard and
|
||||
pasting it in another Vim doesn't work. (Dominique Pelle, 2008 Aug 21-23)
|
||||
clip_x11_request_selection_cb() is called with zero value and length.
|
||||
@@ -292,6 +297,12 @@ terminal.c and then CTRL-N twice.
|
||||
Should do current file first and not split it up when more results are found.
|
||||
(Also #1890)
|
||||
|
||||
Patch from Christian Brabandt to preserve upper case marks when wiping out a
|
||||
buffer. (2013 Dec 9)
|
||||
Also fixes #2166?
|
||||
|
||||
Patch to add argument to :cquit. (Thinca, 2014 Oct 12)
|
||||
|
||||
Python: After "import vim" error messages only show the first line of the
|
||||
stack trace. (Yggdroot, 2017 Jul 28, #1887)
|
||||
|
||||
@@ -406,10 +417,6 @@ Error in test_startup_utf8 on Solaris. (Danek Duvall, 2016 Aug 17)
|
||||
|
||||
Completion for :!cmd shows each match twice. #1435
|
||||
|
||||
Patch to change GUI behavior: instead of changing the window size change the
|
||||
lines/columns when menu/toolbar/etc. is added/removed. (Ychin, 2016 Mar 20,
|
||||
#703)
|
||||
|
||||
GTK: When adding a timer from 'balloonexpr' it won't fire, because
|
||||
g_main_context_iteration() doesn't return. Need to trigger an event when the
|
||||
timer expires.
|
||||
@@ -1035,8 +1042,6 @@ Jun 8)
|
||||
Bug: Autocompleting ":tag/pat" replaces "/pat" with a match but does not
|
||||
insert a space. (Micha Mos, 2014 Nov 7)
|
||||
|
||||
Patch to add argument to :cquit. (Thinca, 2014 Oct 12)
|
||||
|
||||
No error for missing endwhile. (ZyX, 2014 Mar 20)
|
||||
|
||||
Patch to make extend() fail early when it might fail at some point.
|
||||
@@ -1182,9 +1187,6 @@ When evaluating expression in backticks, autoload doesn't work.
|
||||
Using <nr>ifoobar<esc> can slow down Vim. Patch by Christian Brabandt, 2013
|
||||
Dec 13.
|
||||
|
||||
Patch from Christian Brabandt to preserve upper case marks when wiping out a
|
||||
buffer. (2013 Dec 9)
|
||||
|
||||
GTK: problem with 'L' in 'guioptions' changing the window width.
|
||||
(Aaron Cornelius, 2012 Feb 6)
|
||||
|
||||
@@ -1458,8 +1460,6 @@ Vim using lots of memory when joining lines. (John Little, 2010 Dec 3)
|
||||
BT regexp engine: After trying a \@> match and failing, submatches are not
|
||||
cleared. See test64.
|
||||
|
||||
Changes to manpage plugin. (Elias Toivanen, 2011 Jul 25)
|
||||
|
||||
Patch to make "z=" work when 'spell' is off. Does this have nasty side
|
||||
effects? (Christian Brabandt, 2012 Aug 5, Update 2013 Aug 12)
|
||||
Would also need to do this for spellbadword() and spellsuggest().
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_41.txt* For Vim version 8.0. Last change: 2017 Aug 22
|
||||
*usr_41.txt* For Vim version 8.0. Last change: 2017 Oct 15
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -889,7 +889,7 @@ GUI: *gui-functions*
|
||||
|
||||
Vim server: *server-functions*
|
||||
serverlist() return the list of server names
|
||||
remote_startserve() run a server
|
||||
remote_startserver() run a server
|
||||
remote_send() send command characters to a Vim server
|
||||
remote_expr() evaluate an expression in a Vim server
|
||||
server2client() send a reply to a client of a Vim server
|
||||
|
||||
@@ -11778,7 +11778,7 @@ Files: src/os_unix.c
|
||||
Patch 7.4.1915
|
||||
Problem: The effect of the PopupMenu autocommand isn't directly visible.
|
||||
Solution: Call gui_update_menus() before displaying the popup menu. (Shane
|
||||
Harper, closs #855)
|
||||
Harper, closes #855)
|
||||
Files: src/menu.c
|
||||
|
||||
Patch 7.4.1916 (after 7.4.1906)
|
||||
@@ -15398,7 +15398,7 @@ Files: src/testdir/test_undo.vim, src/undo.c
|
||||
Patch 8.0.0150
|
||||
Problem: When the pattern of :filter does not have a separator then
|
||||
completion of the command fails.
|
||||
Solution: Skip over the pattern. (Ozaki Kiichi, clodes #1299)
|
||||
Solution: Skip over the pattern. (Ozaki Kiichi, closes #1299)
|
||||
Files: src/ex_docmd.c, src/testdir/test_filter_cmd.vim
|
||||
|
||||
Patch 8.0.0151
|
||||
|
||||
+19
-6
@@ -1,7 +1,7 @@
|
||||
" Vim support file to detect file types
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2017 Aug 11
|
||||
" Last Change: 2017 Nov 02
|
||||
|
||||
" Listen very carefully, I will say this only once
|
||||
if exists("did_load_filetypes")
|
||||
@@ -292,14 +292,14 @@ au BufNewFile,BufRead *.bst setf bst
|
||||
|
||||
" BIND configuration
|
||||
" sudoedit uses namedXXXX.conf
|
||||
au BufNewFile,BufRead named*.conf,rndc*.conf setf named
|
||||
au BufNewFile,BufRead named*.conf,rndc*.conf,rndc*.key setf named
|
||||
|
||||
" BIND zone
|
||||
au BufNewFile,BufRead named.root setf bindzone
|
||||
au BufNewFile,BufRead *.db call s:BindzoneCheck('')
|
||||
|
||||
func! s:BindzoneCheck(default)
|
||||
if getline(1).getline(2).getline(3).getline(4) =~ '^; <<>> DiG [0-9.]\+ <<>>\|BIND.*named\|$ORIGIN\|$TTL\|IN\s\+SOA'
|
||||
if getline(1).getline(2).getline(3).getline(4) =~ '^; <<>> DiG [0-9.]\+.* <<>>\|$ORIGIN\|$TTL\|IN\s\+SOA'
|
||||
setf bindzone
|
||||
elseif a:default != ''
|
||||
exe 'setf ' . a:default
|
||||
@@ -1155,8 +1155,8 @@ au BufNewFile,BufRead *.m4
|
||||
" MaGic Point
|
||||
au BufNewFile,BufRead *.mgp setf mgp
|
||||
|
||||
" Mail (for Elm, trn, mutt, muttng, rn, slrn)
|
||||
au BufNewFile,BufRead snd.\d\+,.letter,.letter.\d\+,.followup,.article,.article.\d\+,pico.\d\+,mutt{ng,}-*-\w\+,mutt[[:alnum:]_-]\\\{6\},ae\d\+.txt,/tmp/SLRN[0-9A-Z.]\+,*.eml setf mail
|
||||
" Mail (for Elm, trn, mutt, muttng, rn, slrn, neomutt)
|
||||
au BufNewFile,BufRead snd.\d\+,.letter,.letter.\d\+,.followup,.article,.article.\d\+,pico.\d\+,mutt{ng,}-*-\w\+,mutt[[:alnum:]_-]\\\{6\},neomutt-*-\w\+,neomutt[[:alnum:]_-]\\\{6\},ae\d\+.txt,/tmp/SLRN[0-9A-Z.]\+,*.eml setf mail
|
||||
|
||||
" Mail aliases
|
||||
au BufNewFile,BufRead */etc/mail/aliases,*/etc/aliases setf mailaliases
|
||||
@@ -1354,6 +1354,9 @@ au BufNewFile,BufRead */etc/nanorc,*.nanorc setf nanorc
|
||||
" Natural
|
||||
au BufNewFile,BufRead *.NS[ACGLMNPS] setf natural
|
||||
|
||||
" Noemutt setup file
|
||||
au BufNewFile,BufRead Neomuttrc setf neomuttrc
|
||||
|
||||
" Netrc
|
||||
au BufNewFile,BufRead .netrc setf netrc
|
||||
|
||||
@@ -1445,6 +1448,9 @@ au BufNewFile,BufRead *.dpr setf pascal
|
||||
" PDF
|
||||
au BufNewFile,BufRead *.pdf setf pdf
|
||||
|
||||
" PCMK - HAE - crm configure edit
|
||||
au BufNewFile,BufRead *.pcmk setf pcmk
|
||||
|
||||
" Perl
|
||||
if has("fname_case")
|
||||
au BufNewFile,BufRead *.pl,*.PL call s:FTpl()
|
||||
@@ -2437,6 +2443,9 @@ au BufNewFile,BufRead *.wbt setf winbatch
|
||||
" WSML
|
||||
au BufNewFile,BufRead *.wsml setf wsml
|
||||
|
||||
" WPL
|
||||
au BufNewFile,BufRead *.wpl setf xml
|
||||
|
||||
" WvDial
|
||||
au BufNewFile,BufRead wvdial.conf,.wvdialrc setf wvdial
|
||||
|
||||
@@ -2717,7 +2726,7 @@ au BufNewFile,BufRead [mM]akefile* call s:StarSetf('make')
|
||||
au BufNewFile,BufRead [rR]akefile* call s:StarSetf('ruby')
|
||||
|
||||
" Mail (also matches muttrc.vim, so this is below the other checks)
|
||||
au BufNewFile,BufRead mutt[[:alnum:]._-]\\\{6\} setf mail
|
||||
au BufNewFile,BufRead {neo,}mutt[[:alnum:]._-]\\\{6\} setf mail
|
||||
|
||||
au BufNewFile,BufRead reportbug-* call s:StarSetf('mail')
|
||||
|
||||
@@ -2732,6 +2741,10 @@ au BufNewFile,BufRead */etc/modprobe.* call s:StarSetf('modconf')
|
||||
au BufNewFile,BufRead .mutt{ng,}rc*,*/.mutt{ng,}/mutt{ng,}rc* call s:StarSetf('muttrc')
|
||||
au BufNewFile,BufRead mutt{ng,}rc*,Mutt{ng,}rc* call s:StarSetf('muttrc')
|
||||
|
||||
" Neomutt setup file
|
||||
au BufNewFile,BufRead .neomuttrc*,*/.neomutt/neomuttrc* call s:StarSetf('neomuttrc')
|
||||
au BufNewFile,BufRead neomuttrc*,Neomuttrc* call s:StarSetf('neomuttrc')
|
||||
|
||||
" Nroff macros
|
||||
au BufNewFile,BufRead tmac.* call s:StarSetf('nroff')
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: C
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2016 Jun 12
|
||||
" Last Change: 2017 Sep 28
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
@@ -35,8 +35,8 @@ if has("vms")
|
||||
endif
|
||||
|
||||
" When the matchit plugin is loaded, this makes the % command skip parens and
|
||||
" braces in comments.
|
||||
let b:match_words = &matchpairs . ',^\s*#\s*if\(\|def\|ndef\)\>:^\s*#\s*elif\>:^\s*#\s*else\>:^\s*#\s*endif\>'
|
||||
" braces in comments properly.
|
||||
let b:match_words = '^\s*#\s*if\(\|def\|ndef\)\>:^\s*#\s*elif\>:^\s*#\s*else\>:^\s*#\s*endif\>'
|
||||
let b:match_skip = 's:comment\|string\|character\|special'
|
||||
|
||||
" Win32 can filter files in the browse dialog
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: gdb
|
||||
" Maintainer: Michaël Peeters <NOSPAMm.vim@noekeon.org>
|
||||
" Last Changed: 26 Oct 2017
|
||||
|
||||
if exists("b:did_ftplugin") | finish | endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal commentstring=#%s
|
||||
|
||||
" Undo the stuff we changed.
|
||||
let b:undo_ftplugin = "setlocal cms<"
|
||||
@@ -0,0 +1,23 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: NeoMutt RC File
|
||||
" Previous Maintainer: Guillaume Brogi <gui-gui@netcourrier.com>
|
||||
" Latest Revision: 2017-09-17
|
||||
" Original version copied from ftplugin/muttrc.vim
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
let b:undo_ftplugin = "setl com< cms< inc< fo<"
|
||||
|
||||
setlocal comments=:# commentstring=#\ %s
|
||||
setlocal formatoptions-=t formatoptions+=croql
|
||||
|
||||
let &l:include = '^\s*source\>'
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
@@ -1,9 +1,10 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: python
|
||||
" Maintainer: James Sully <sullyj3@gmail.com>
|
||||
" Maintainer: Tom Picton <tom@tompicton.co.uk>
|
||||
" Previous Maintainer: James Sully <sullyj3@gmail.com>
|
||||
" Previous Maintainer: Johannes Zellner <johannes@zellner.org>
|
||||
" Last Change: Tue, 09 October 2016
|
||||
" https://github.com/sullyj3/vim-ftplugin-python
|
||||
" Last Change: Fri, 20 October 2017
|
||||
" https://github.com/tpict/vim-ftplugin-python
|
||||
|
||||
if exists("b:did_ftplugin") | finish | endif
|
||||
let b:did_ftplugin = 1
|
||||
@@ -24,31 +25,51 @@ set wildignore+=*.pyc
|
||||
|
||||
let b:next_toplevel='\v%$\|^(class\|def\|async def)>'
|
||||
let b:prev_toplevel='\v^(class\|def\|async def)>'
|
||||
let b:next_endtoplevel='\v%$\|\S.*\n+(def\|class)'
|
||||
let b:prev_endtoplevel='\v\S.*\n+(def\|class)'
|
||||
let b:next='\v%$\|^\s*(class\|def\|async def)>'
|
||||
let b:prev='\v^\s*(class\|def\|async def)>'
|
||||
let b:next_end='\v\S\n*(%$\|^\s*(class\|def\|async def)\|^\S)'
|
||||
let b:prev_end='\v\S\n*(^\s*(class\|def\|async def)\|^\S)'
|
||||
|
||||
execute "nnoremap <silent> <buffer> ]] :call <SID>Python_jump('n', '". b:next_toplevel."', 'W')<cr>"
|
||||
execute "nnoremap <silent> <buffer> [[ :call <SID>Python_jump('n', '". b:prev_toplevel."', 'Wb')<cr>"
|
||||
execute "nnoremap <silent> <buffer> ][ :call <SID>Python_jump('n', '". b:next_endtoplevel."', 'W', 0)<cr>"
|
||||
execute "nnoremap <silent> <buffer> [] :call <SID>Python_jump('n', '". b:prev_endtoplevel."', 'Wb', 0)<cr>"
|
||||
execute "nnoremap <silent> <buffer> ]m :call <SID>Python_jump('n', '". b:next."', 'W')<cr>"
|
||||
execute "nnoremap <silent> <buffer> [m :call <SID>Python_jump('n', '". b:prev."', 'Wb')<cr>"
|
||||
execute "nnoremap <silent> <buffer> ]M :call <SID>Python_jump('n', '". b:next_end."', 'W', 0)<cr>"
|
||||
execute "nnoremap <silent> <buffer> [M :call <SID>Python_jump('n', '". b:prev_end."', 'Wb', 0)<cr>"
|
||||
|
||||
execute "onoremap <silent> <buffer> ]] :call <SID>Python_jump('o', '". b:next_toplevel."', 'W')<cr>"
|
||||
execute "onoremap <silent> <buffer> [[ :call <SID>Python_jump('o', '". b:prev_toplevel."', 'Wb')<cr>"
|
||||
execute "onoremap <silent> <buffer> ][ :call <SID>Python_jump('n', '". b:next_endtoplevel."', 'W', 0)<cr>"
|
||||
execute "onoremap <silent> <buffer> [] :call <SID>Python_jump('n', '". b:prev_endtoplevel."', 'Wb', 0)<cr>"
|
||||
execute "onoremap <silent> <buffer> ]m :call <SID>Python_jump('o', '". b:next."', 'W')<cr>"
|
||||
execute "onoremap <silent> <buffer> [m :call <SID>Python_jump('o', '". b:prev."', 'Wb')<cr>"
|
||||
execute "onoremap <silent> <buffer> ]M :call <SID>Python_jump('o', '". b:next_end."', 'W', 0)<cr>"
|
||||
execute "onoremap <silent> <buffer> [M :call <SID>Python_jump('o', '". b:prev_end."', 'Wb', 0)<cr>"
|
||||
|
||||
execute "xnoremap <silent> <buffer> ]] :call <SID>Python_jump('x', '". b:next_toplevel."', 'W')<cr>"
|
||||
execute "xnoremap <silent> <buffer> [[ :call <SID>Python_jump('x', '". b:prev_toplevel."', 'Wb')<cr>"
|
||||
execute "xnoremap <silent> <buffer> ][ :call <SID>Python_jump('n', '". b:next_endtoplevel."', 'W', 0)<cr>"
|
||||
execute "xnoremap <silent> <buffer> [] :call <SID>Python_jump('n', '". b:prev_endtoplevel."', 'Wb', 0)<cr>"
|
||||
execute "xnoremap <silent> <buffer> ]m :call <SID>Python_jump('x', '". b:next."', 'W')<cr>"
|
||||
execute "xnoremap <silent> <buffer> [m :call <SID>Python_jump('x', '". b:prev."', 'Wb')<cr>"
|
||||
execute "xnoremap <silent> <buffer> ]M :call <SID>Python_jump('x', '". b:next_end."', 'W', 0)<cr>"
|
||||
execute "xnoremap <silent> <buffer> [M :call <SID>Python_jump('x', '". b:prev_end."', 'Wb', 0)<cr>"
|
||||
|
||||
if !exists('*<SID>Python_jump')
|
||||
fun! <SID>Python_jump(mode, motion, flags) range
|
||||
fun! <SID>Python_jump(mode, motion, flags, ...) range
|
||||
let l:startofline = (a:0 >= 1) ? a:1 : 1
|
||||
|
||||
if a:mode == 'x'
|
||||
normal! gv
|
||||
endif
|
||||
|
||||
normal! 0
|
||||
if l:startofline == 1
|
||||
normal! 0
|
||||
endif
|
||||
|
||||
let cnt = v:count1
|
||||
mark '
|
||||
@@ -57,7 +78,9 @@ if !exists('*<SID>Python_jump')
|
||||
let cnt = cnt - 1
|
||||
endwhile
|
||||
|
||||
normal! ^
|
||||
if l:startofline == 1
|
||||
normal! ^
|
||||
endif
|
||||
endfun
|
||||
endif
|
||||
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
" Vim indent file
|
||||
" Language: gitolite configuration
|
||||
" URL: https://github.com/tmatilai/gitolite.vim
|
||||
" Maintainer: Teemu Matilainen <teemu.matilainen@iki.fi>
|
||||
" Last Change: 2017 Jun 13
|
||||
" URL: https://github.com/sitaramc/gitolite/blob/master/contrib/vim/indent/gitolite.vim
|
||||
" (https://raw.githubusercontent.com/sitaramc/gitolite/master/contrib/vim/indent/gitolite.vim)
|
||||
" Maintainer: Sitaram Chamarty <sitaramc@gmail.com>
|
||||
" (former Maintainer: Teemu Matilainen <teemu.matilainen@iki.fi>)
|
||||
" Last Change: 2017 Oct 05
|
||||
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
@@ -30,6 +32,8 @@ function! GetGitoliteIndent()
|
||||
return shiftwidth()
|
||||
elseif cline =~ '^\s*config\s'
|
||||
return shiftwidth()
|
||||
elseif cline =~ '^\s*option\s'
|
||||
return shiftwidth()
|
||||
elseif pline =~ '^\s*repo\s' && cline =~ '^\s*\(#.*\)\?$'
|
||||
return shiftwidth()
|
||||
elseif cline =~ '^\s*#'
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
" VHDL indent ('93 syntax)
|
||||
" Language: VHDL
|
||||
" Maintainer: Gerald Lai <laigera+vim?gmail.com>
|
||||
" Version: 1.60
|
||||
" Last Change: 2017 Jun 13
|
||||
" Version: 1.62
|
||||
" Last Change: 2017 Oct 17
|
||||
" URL: http://www.vim.org/scripts/script.php?script_id=1450
|
||||
|
||||
" only load this indent file when no other was loaded
|
||||
@@ -412,11 +412,12 @@ function GetVHDLindent()
|
||||
|
||||
" ****************************************************************************************
|
||||
" indent: maintain indent of previous opening statement
|
||||
" keywords: without "procedure", "generic", "map", "port" + ":" but not ":=" + eventually ;$
|
||||
" keywords: without "procedure", "generic", "map", "port" + ":" but not ":=" + "in", "out", "inout", "buffer", "linkage", variable & ":="
|
||||
" where: start of current line
|
||||
if curs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=].*;.*$'
|
||||
if curs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=]\@=\s*\%(\%(in\|out\|inout\|buffer\|linkage\)\>\|\w\+\s\+:=\)'
|
||||
return ind2
|
||||
endif
|
||||
|
||||
" ****************************************************************************************
|
||||
" indent: maintain indent of previous opening statement, corner case which
|
||||
" does not end in ;, but is part of a mapping
|
||||
@@ -424,10 +425,10 @@ function GetVHDLindent()
|
||||
" prevline without "procedure", "generic", "map", "port" + ":" but not ":=" + eventually ;$
|
||||
" where: start of current line
|
||||
if curs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=].*[^;].*$'
|
||||
if prevs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=].*;.*$'
|
||||
return ind2
|
||||
endif
|
||||
endif
|
||||
if prevs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=].*;.*$'
|
||||
return ind2
|
||||
endif
|
||||
endif
|
||||
|
||||
" return leftover filtered indent
|
||||
return ind
|
||||
|
||||
+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'
|
||||
|
||||
+7
-1
@@ -1,7 +1,7 @@
|
||||
" These commands create the option window.
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2017 Sep 10
|
||||
" Last Change: 2017 Oct 19
|
||||
|
||||
" If there already is an option window, jump to that one.
|
||||
let buf = bufnr('option-window')
|
||||
@@ -1387,6 +1387,12 @@ if exists("&tcldll")
|
||||
call append("$", "tcldll\tname of the Tcl dynamic library")
|
||||
call <SID>OptionG("tcldll", &tcldll)
|
||||
endif
|
||||
if exists("&mzschemedll")
|
||||
call append("$", "mzschemedll\tname of the Tcl dynamic library")
|
||||
call <SID>OptionG("mzschemedll", &mzschemedll)
|
||||
call append("$", "mzschemegcdll\tname of the Tcl GC dynamic library")
|
||||
call <SID>OptionG("mzschemegcdll", &mzschemegcdll)
|
||||
endif
|
||||
|
||||
set cpo&vim
|
||||
|
||||
|
||||
@@ -95,6 +95,7 @@ func s:StartDebug(cmd)
|
||||
let s:gdbwin = win_getid(winnr())
|
||||
|
||||
" Connect gdb to the communication pty, using the GDB/MI interface
|
||||
" If you get an error "undefined command" your GDB is too old.
|
||||
call term_sendkeys(gdbbuf, 'new-ui mi ' . commpty . "\r")
|
||||
|
||||
" Sign used to highlight the line where the program has stopped.
|
||||
@@ -299,6 +300,7 @@ func s:HandleCursor(msg)
|
||||
endif
|
||||
endif
|
||||
exe lnum
|
||||
exe 'sign unplace ' . s:pc_id
|
||||
exe 'sign place ' . s:pc_id . ' line=' . lnum . ' name=debugPC file=' . fname
|
||||
setlocal signcolumn=yes
|
||||
endif
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
" Vim plugin for showing matching parens
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2016 Feb 16
|
||||
" Last Change: 2017 Sep 30
|
||||
|
||||
" Exit quickly when:
|
||||
" - this plugin was already loaded (or disabled)
|
||||
@@ -186,9 +186,23 @@ function! s:Highlight_Matching_Pair()
|
||||
endfunction
|
||||
|
||||
" Define commands that will disable and enable the plugin.
|
||||
command! NoMatchParen windo silent! call matchdelete(3) | unlet! g:loaded_matchparen |
|
||||
\ au! matchparen
|
||||
command! DoMatchParen runtime plugin/matchparen.vim | windo doau CursorMoved
|
||||
command! DoMatchParen call s:DoMatchParen()
|
||||
command! NoMatchParen call s:NoMatchParen()
|
||||
|
||||
func! s:NoMatchParen()
|
||||
let w = winnr()
|
||||
noau windo silent! call matchdelete(3)
|
||||
unlet! g:loaded_matchparen
|
||||
exe "noau ". w . "wincmd w"
|
||||
au! matchparen
|
||||
endfunc
|
||||
|
||||
func! s:DoMatchParen()
|
||||
runtime plugin/matchparen.vim
|
||||
let w = winnr()
|
||||
silent windo doau CursorMoved
|
||||
exe "noau ". w . "wincmd w"
|
||||
endfunc
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
+1
-1
@@ -324,7 +324,7 @@ else
|
||||
set ft=sindacmp
|
||||
|
||||
" DNS zone files
|
||||
elseif s:line1.s:line2.s:line3.s:line4 =~# '^; <<>> DiG [0-9.]\+ <<>>\|BIND.*named\|$ORIGIN\|$TTL\|IN\s\+SOA'
|
||||
elseif s:line1.s:line2.s:line3.s:line4 =~# '^; <<>> DiG [0-9.]\+.* <<>>\|$ORIGIN\|$TTL\|IN\s\+SOA'
|
||||
set ft=bindzone
|
||||
|
||||
" BAAN
|
||||
|
||||
+8
-7
@@ -2,7 +2,7 @@
|
||||
" This file is normally sourced from menu.vim.
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2014 Aug 13
|
||||
" Last Change: 2017 Oct 28
|
||||
|
||||
" Define the SetSyn function, used for the Syntax menu entries.
|
||||
" Set 'filetype' and also 'syntax' if it is manually selected.
|
||||
@@ -351,12 +351,13 @@ an 50.70.510 &Syntax.M.Muttrc :cal SetSyn("muttrc")<CR>
|
||||
an 50.80.100 &Syntax.NO.Nanorc :cal SetSyn("nanorc")<CR>
|
||||
an 50.80.110 &Syntax.NO.Nastran\ input/DMAP :cal SetSyn("nastran")<CR>
|
||||
an 50.80.120 &Syntax.NO.Natural :cal SetSyn("natural")<CR>
|
||||
an 50.80.130 &Syntax.NO.Netrc :cal SetSyn("netrc")<CR>
|
||||
an 50.80.140 &Syntax.NO.Ninja :cal SetSyn("ninja")<CR>
|
||||
an 50.80.150 &Syntax.NO.Novell\ NCF\ batch :cal SetSyn("ncf")<CR>
|
||||
an 50.80.160 &Syntax.NO.Not\ Quite\ C\ (LEGO) :cal SetSyn("nqc")<CR>
|
||||
an 50.80.170 &Syntax.NO.Nroff :cal SetSyn("nroff")<CR>
|
||||
an 50.80.180 &Syntax.NO.NSIS\ script :cal SetSyn("nsis")<CR>
|
||||
an 50.80.130 &Syntax.NO.Neomuttrc :cal SetSyn("neomuttrc")<CR>
|
||||
an 50.80.140 &Syntax.NO.Netrc :cal SetSyn("netrc")<CR>
|
||||
an 50.80.150 &Syntax.NO.Ninja :cal SetSyn("ninja")<CR>
|
||||
an 50.80.160 &Syntax.NO.Novell\ NCF\ batch :cal SetSyn("ncf")<CR>
|
||||
an 50.80.170 &Syntax.NO.Not\ Quite\ C\ (LEGO) :cal SetSyn("nqc")<CR>
|
||||
an 50.80.180 &Syntax.NO.Nroff :cal SetSyn("nroff")<CR>
|
||||
an 50.80.190 &Syntax.NO.NSIS\ script :cal SetSyn("nsis")<CR>
|
||||
an 50.80.200 &Syntax.NO.Obj\ 3D\ wavefront :cal SetSyn("obj")<CR>
|
||||
an 50.80.210 &Syntax.NO.Objective\ C :cal SetSyn("objc")<CR>
|
||||
an 50.80.220 &Syntax.NO.Objective\ C++ :cal SetSyn("objcpp")<CR>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
" Language: BibTeX (bibliographic database format for (La)TeX)
|
||||
" Maintainer: Bernd Feige <Bernd.Feige@gmx.net>
|
||||
" Filenames: *.bib
|
||||
" Last Change: 2016 Sep 12
|
||||
" Last Change: 2017 Sep 29
|
||||
|
||||
" Thanks to those who pointed out problems with this file or supplied fixes!
|
||||
|
||||
@@ -81,16 +81,18 @@ syn match bibUnescapedSpecial contained /[^\\][%&]/hs=s+1
|
||||
syn match bibKey contained /\s*[^ \t}="]\+,/hs=s,he=e-1 nextgroup=bibField
|
||||
syn match bibVariable contained /[^{}," \t=]/
|
||||
syn region bibComment start=/./ end=/^\s*@/me=e-1 contains=@bibCommentContents nextgroup=bibEntry
|
||||
syn region bibMath contained start=/\$/ end=/\$/ skip=/\(\\\$\)/
|
||||
syn region bibMath contained start=/\(\\\)\@<!\$/ end=/\$/ skip=/\(\\\$\)/
|
||||
syn region bibQuote contained start=/"/ end=/"/ skip=/\(\\"\)/ contains=@bibVarContents
|
||||
syn region bibBrace contained start=/{/ end=/}/ skip=/\(\\[{}]\)/ contains=@bibVarContents
|
||||
syn region bibParen contained start=/(/ end=/)/ skip=/\(\\[()]\)/ contains=@bibVarContents
|
||||
syn region bibField contained start="\S\+\s*=\s*" end=/[}),]/me=e-1 contains=bibEntryKw,bibNSEntryKw,bibBrace,bibParen,bibQuote,bibVariable
|
||||
syn region bibEntryData contained start=/[{(]/ms=e+1 end=/[})]/me=e-1 contains=bibKey,bibField
|
||||
syn region bibEntryData contained start=/[{(]/ms=e+1 end=/[})]/me=e-1 contains=bibKey,bibField,bibComment3
|
||||
" Actually, 5.8 <= Vim < 6.0 would ignore the `fold' keyword anyway, but Vim<5.8 would produce
|
||||
" an error, so we explicitly distinguish versions with and without folding functionality:
|
||||
syn region bibEntry start=/@\S\+\s*[{(]/ end=/^\s*[})]/ transparent fold contains=bibType,bibEntryData nextgroup=bibComment
|
||||
syn region bibComment2 start=/@Comment\s*[{(]/ end=/^\s*[})]/me=e-1 contains=@bibCommentContents nextgroup=bibEntry
|
||||
" biblatex style comments inside a bibEntry
|
||||
syn match bibComment3 "%.*"
|
||||
|
||||
" Synchronization
|
||||
" ===============
|
||||
@@ -111,6 +113,7 @@ hi def link bibVariable Constant
|
||||
hi def link bibUnescapedSpecial Error
|
||||
hi def link bibComment Comment
|
||||
hi def link bibComment2 Comment
|
||||
hi def link bibComment3 Comment
|
||||
|
||||
let b:current_syntax = "bib"
|
||||
|
||||
|
||||
+68
-60
@@ -1,8 +1,10 @@
|
||||
" Vim syntax file
|
||||
" Language: gitolite configuration
|
||||
" URL: https://github.com/tmatilai/gitolite.vim
|
||||
" Maintainer: Teemu Matilainen <teemu.matilainen@iki.fi>
|
||||
" Last Change: 2011-12-25
|
||||
" URL: https://github.com/sitaramc/gitolite/blob/master/contrib/vim/syntax/gitolite.vim
|
||||
" (https://raw.githubusercontent.com/sitaramc/gitolite/master/contrib/vim/syntax/gitolite.vim)
|
||||
" Maintainer: Sitaram Chamarty <sitaramc@gmail.com>
|
||||
" (former Maintainer: Teemu Matilainen <teemu.matilainen@iki.fi>)
|
||||
" Last Change: 2017 Oct 05
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
@@ -11,74 +13,80 @@ endif
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" Comment
|
||||
syn match gitoliteComment "\(^\|\s\)#.*" contains=gitoliteTodo
|
||||
syn keyword gitoliteTodo TODO FIXME XXX NOT contained
|
||||
" this seems to be the best way, for now.
|
||||
syntax sync fromstart
|
||||
|
||||
" Groups, users and repos
|
||||
syn match gitoliteGroupDef "\(^\s*\)\@<=@[^=]\{-1,}\(\s*=\)\@=" contains=gitoliteSpaceError,gitoliteUserError nextgroup=gitoliteGroupDefSep
|
||||
syn match gitoliteGroupDefSep "\s*=" contained nextgroup=gitoliteRepoLine
|
||||
syn match gitoliteRepoDef "^\s*repo\s" nextgroup=gitoliteRepoLine
|
||||
" ---- common stuff
|
||||
|
||||
syn match gitoliteRepoLine ".*" contained transparent contains=gitoliteGroup,gitoliteWildRepo,gitoliteCreator,gitoliteExtCmdHelper,gitoliteRepoError,gitoliteComment
|
||||
syn match gitoliteUserLine ".*" contained transparent contains=gitoliteGroup,gitolitePreProc,gitoliteUserError,gitoliteComment
|
||||
syn match gitoliteGroup '@\S\+'
|
||||
|
||||
syn match gitoliteWildRepo "[ \t=]\@<=[^ \t]*[\\^$|()[\]*?{},][^ \t]*" contained contains=gitoliteCreator,gitoliteRepoError
|
||||
syn match gitoliteGroup "[ \t=]\@<=@[^ \t]\+" contained contains=gitoliteUserError
|
||||
syn match gitoliteComment '#.*' contains=gitoliteTodo
|
||||
syn keyword gitoliteTodo TODO FIXME XXX NOT contained
|
||||
|
||||
syn keyword gitoliteCreator CREATER CREATOR contained
|
||||
syn keyword gitolitePreProc CREATER CREATOR READERS WRITERS contained
|
||||
" ---- main section
|
||||
|
||||
syn match gitoliteExtCmdHelper "[ \t=]\@<=EXTCMD/" contained nextgroup=gitoliteExtCmd
|
||||
syn match gitoliteExtCmd "rsync\(\s\|$\)" contained
|
||||
" catch template-data syntax appearing outside template-data section
|
||||
syn match gitoliteRepoError '^\s*repo.*='
|
||||
syn match gitoliteRepoError '^\s*\S\+\s*=' " this gets overridden later when first word is a perm, don't worry
|
||||
|
||||
" Illegal characters
|
||||
syn match gitoliteRepoError "[^ \t0-9a-zA-Z._@+/\\^$|()[\]*?{},-]\+" contained
|
||||
syn match gitoliteUserError "[^ \t0-9a-zA-Z._@+-]\+" contained
|
||||
syn match gitoliteSpaceError "\s\+" contained
|
||||
" normal gitolite group and repo lines
|
||||
syn match gitoliteGroupLine '^\s*@\S\+\s*=\s*\S.*$' contains=gitoliteGroup,gitoliteComment
|
||||
syn match gitoliteRepoLine '^\s*repo\s\+[^=]*$' contains=gitoliteRepo,gitoliteGroup,gitoliteComment
|
||||
syn keyword gitoliteRepo repo contained
|
||||
|
||||
" Permission
|
||||
syn match gitoliteKeyword "^\s*\(C\|R\|RW\|RW+\|RWC\|RW+C\|RWD\|RW+D\|RWCD\|RW+CD\)[ \t=]\@=" nextgroup=gitoliteRefex
|
||||
syn match gitoliteKeyword "^\s*-[ \t=]\@=" nextgroup=gitoliteDenyRefex
|
||||
syn match gitoliteRefex "[^=]*="he=e-1 contained contains=gitoliteSpecialRefex,gitoliteGroup nextgroup=gitoliteUserLine
|
||||
syn match gitoliteDenyRefex "[^=]*="he=e-1 contained contains=gitoliteSpecialRefex,gitoliteGroup nextgroup=gitoliteDenyUsers
|
||||
syn match gitoliteSpecialRefex "\sNAME/"he=e-1 contained
|
||||
syn match gitoliteSpecialRefex "/USER/"hs=s+1,he=e-1 contained
|
||||
syn match gitoliteDenyUsers ".*" contained contains=gitoliteUserError,gitoliteComment
|
||||
syn keyword gitoliteSpecialRepo CREATOR
|
||||
|
||||
" Configuration
|
||||
syn match gitoliteKeyword "^\s*config\s\+" nextgroup=gitoliteConfVariable
|
||||
syn match gitoliteConfVariable "[^=]*" contained
|
||||
" normal gitolite rule lines
|
||||
syn match gitoliteRuleLine '^\s*\(-\|C\|R\|RW+\?C\?D\?\)\s[^#]*' contains=gitoliteRule,gitoliteCreateRule,gitoliteDenyRule,gitoliteRefex,gitoliteUsers,gitoliteGroup
|
||||
syn match gitoliteRule '\(^\s*\)\@<=\(-\|C\|R\|RW+\?C\?D\?\)\s\@=' contained
|
||||
syn match gitoliteRefex '\(^\s*\(-\|R\|RW+\?C\?D\?\)\s\+\)\@<=\S.\{-}\(\s*=\)\@=' contains=gitoliteSpecialRefex
|
||||
syn match gitoliteSpecialRefex 'NAME/'
|
||||
syn match gitoliteSpecialRefex '/USER/'
|
||||
syn match gitoliteCreateRule '\(^\s*C\s.*=\s*\)\@<=\S[^#]*[^# ]' contained contains=gitoliteGroup
|
||||
syn match gitoliteDenyRule '\(^\s*-\s.*=\s*\)\@<=\S[^#]*[^# ]' contained
|
||||
|
||||
" Include
|
||||
syn match gitoliteInclude "^\s*\(include\|subconf\)\s"
|
||||
" normal gitolite config (and similar) lines
|
||||
syn match gitoliteConfigLine '^\s*\(config\|option\|include\|subconf\)\s[^#]*' contains=gitoliteConfigKW,gitoliteConfigKey,gitoliteConfigVal,gitoliteComment
|
||||
syn keyword gitoliteConfigKW config option include subconf contained
|
||||
syn match gitoliteConfigKey '\(\(config\|option\)\s\+\)\@<=[^ =]*' contained
|
||||
syn match gitoliteConfigVal '\(=\s*\)\@<=\S.*' contained
|
||||
|
||||
" String
|
||||
syn region gitoliteString start=+"+ end=+"+ oneline
|
||||
" ---- template-data section
|
||||
|
||||
" Define the default highlighting
|
||||
hi def link gitoliteComment Comment
|
||||
hi def link gitoliteTodo Todo
|
||||
hi def link gitoliteGroupDef gitoliteGroup
|
||||
hi def link gitoliteGroup Identifier
|
||||
hi def link gitoliteWildRepo Special
|
||||
hi def link gitoliteRepoError gitoliteError
|
||||
hi def link gitoliteUserError gitoliteError
|
||||
hi def link gitoliteSpaceError gitoliteError
|
||||
hi def link gitoliteError Error
|
||||
hi def link gitoliteCreator gitolitePreProc
|
||||
hi def link gitolitePreProc PreProc
|
||||
hi def link gitoliteExtCmdHelper PreProc
|
||||
hi def link gitoliteExtCmd Special
|
||||
hi def link gitoliteRepoDef Type
|
||||
hi def link gitoliteKeyword Keyword
|
||||
hi def link gitoliteRefex String
|
||||
hi def link gitoliteDenyRefex gitoliteRefex
|
||||
hi def link gitoliteSpecialRefex PreProc
|
||||
hi def link gitoliteDenyUsers WarningMsg
|
||||
hi def link gitoliteConfVariable Identifier
|
||||
hi def link gitoliteInclude Include
|
||||
hi def link gitoliteString String
|
||||
syn region gitoliteTemplateLine matchgroup=PreProc start='^=begin template-data$' end='^=end$' contains=gitoliteTplRepoLine,gitoliteTplRoleLine,gitoliteGroup,gitoliteComment,gitoliteTplError
|
||||
|
||||
syn match gitoliteTplRepoLine '^\s*repo\s\+\S.*=.*' contained contains=gitoliteTplRepo,gitoliteTplTemplates,gitoliteGroup
|
||||
syn keyword gitoliteTplRepo repo contained
|
||||
syn match gitoliteTplTemplates '\(=\s*\)\@<=\S.*' contained contains=gitoliteGroup,gitoliteComment
|
||||
|
||||
syn match gitoliteTplRoleLine '^\s*\S\+\s*=\s*.*' contained contains=gitoliteTplRole,gitoliteGroup,gitoliteComment
|
||||
syn match gitoliteTplRole '\S\+\s*='he=e-1 contained
|
||||
|
||||
" catch normal gitolite rules appearing in template-data section
|
||||
syn match gitoliteTplError '^\s*repo[^=]*$' contained
|
||||
syn match gitoliteTplError '^\s*\(-\|R\|RW+\?C\?D\?\)\s'he=e-1 contained
|
||||
syn match gitoliteTplError '^\s*\(config\|option\|include\|subconf\)\s'he=e-1 contained
|
||||
syn match gitoliteTplError '^\s*@\S\+\s*=' contained contains=NONE
|
||||
|
||||
hi def link gitoliteGroup Identifier
|
||||
hi def link gitoliteComment Comment
|
||||
hi def link gitoliteTodo ToDo
|
||||
hi def link gitoliteRepoError Error
|
||||
hi def link gitoliteGroupLine PreProc
|
||||
hi def link gitoliteRepo Keyword
|
||||
hi def link gitoliteSpecialRepo PreProc
|
||||
hi def link gitoliteRule Keyword
|
||||
hi def link gitoliteCreateRule PreProc
|
||||
hi def link gitoliteDenyRule WarningMsg
|
||||
hi def link gitoliteRefex Constant
|
||||
hi def link gitoliteSpecialRefex PreProc
|
||||
hi def link gitoliteConfigKW Keyword
|
||||
hi def link gitoliteConfigKey Identifier
|
||||
hi def link gitoliteConfigVal String
|
||||
hi def link gitoliteTplRepo Keyword
|
||||
hi def link gitoliteTplTemplates Constant
|
||||
hi def link gitoliteTplRole Constant
|
||||
hi def link gitoliteTplError Error
|
||||
|
||||
let b:current_syntax = "gitolite"
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: Vim help file
|
||||
" Maintainer: Bram Moolenaar (Bram@vim.org)
|
||||
" Last Change: 2017 Jun 13
|
||||
" Last Change: 2017 Oct 19
|
||||
|
||||
" Quit when a (custom) syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
@@ -60,6 +60,7 @@ syn match helpSpecial "\<N\>"
|
||||
syn match helpSpecial "\<N\.$"me=e-1
|
||||
syn match helpSpecial "\<N\.\s"me=e-2
|
||||
syn match helpSpecial "(N\>"ms=s+1
|
||||
|
||||
syn match helpSpecial "\[N]"
|
||||
" avoid highlighting N N in help.txt
|
||||
syn match helpSpecial "N N"he=s+1
|
||||
@@ -85,6 +86,9 @@ syn match helpSpecial "\[arguments]"
|
||||
syn match helpSpecial "\[ident]"
|
||||
syn match helpSpecial "\[addr]"
|
||||
syn match helpSpecial "\[group]"
|
||||
" Don't highlight [converted] and others that do not have a tag
|
||||
syn match helpNormal "\[\(readonly\|fifo\|socket\|converted\|crypted\)]"
|
||||
|
||||
syn match helpSpecial "CTRL-."
|
||||
syn match helpSpecial "CTRL-Break"
|
||||
syn match helpSpecial "CTRL-PageUp"
|
||||
|
||||
+13
-4
@@ -3,8 +3,9 @@
|
||||
" Maintainer: Jorge Maldonado Ventura <jorgesumle@freakspot.net>
|
||||
" Previous Maintainer: Claudio Fleiner <claudio@fleiner.com>
|
||||
" Repository: https://notabug.org/jorgesumle/vim-html-syntax
|
||||
" Last Change: 2017 Jan 21
|
||||
" included patch from Jorge Maldonado Ventura
|
||||
" Last Change: 2017 Sep 30
|
||||
" included patch from Christian Brabandt to make use of the strikethrough attributes
|
||||
"
|
||||
|
||||
" Please check :help html.vim for some comments and a description of the options
|
||||
|
||||
@@ -45,13 +46,13 @@ syn keyword htmlTagName contained cite code dd dfn dir div dl dt font
|
||||
syn keyword htmlTagName contained form hr html img
|
||||
syn keyword htmlTagName contained input isindex kbd li link map menu
|
||||
syn keyword htmlTagName contained meta ol option param pre p samp span
|
||||
syn keyword htmlTagName contained select small strike sub sup
|
||||
syn keyword htmlTagName contained select small sub sup
|
||||
syn keyword htmlTagName contained table td textarea th tr tt ul var xmp
|
||||
syn match htmlTagName contained "\<\(b\|i\|u\|h[1-6]\|em\|strong\|head\|body\|title\)\>"
|
||||
|
||||
" new html 4.0 tags
|
||||
syn keyword htmlTagName contained abbr acronym bdo button col label
|
||||
syn keyword htmlTagName contained colgroup del fieldset iframe ins legend
|
||||
syn keyword htmlTagName contained colgroup fieldset iframe ins legend
|
||||
syn keyword htmlTagName contained object optgroup q s tbody tfoot thead
|
||||
|
||||
" new html 5 tags
|
||||
@@ -135,6 +136,9 @@ if !exists("html_no_rendering")
|
||||
" rendering
|
||||
syn cluster htmlTop contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript,@htmlPreproc
|
||||
|
||||
syn region htmlStrike start="<del\>" end="</del>"me=e-6 contains=@htmlTop
|
||||
syn region htmlStrike start="<strike\>" end="</strike>"me=e-9 contains=@htmlTop
|
||||
|
||||
syn region htmlBold start="<b\>" end="</b>"me=e-4 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic
|
||||
syn region htmlBold start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic
|
||||
syn region htmlBoldUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlBoldUnderlineItalic
|
||||
@@ -268,6 +272,11 @@ if !exists("html_no_rendering")
|
||||
hi def htmlUnderline term=underline cterm=underline gui=underline
|
||||
hi def htmlUnderlineItalic term=italic,underline cterm=italic,underline gui=italic,underline
|
||||
hi def htmlItalic term=italic cterm=italic gui=italic
|
||||
if v:version > 800 || v:version == 800 && has("patch1038")
|
||||
hi def htmlStrike term=strikethrough cterm=strikethrough gui=strikethrough
|
||||
else
|
||||
hi def htmlStrike term=underline cterm=underline gui=underline
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -6,8 +6,8 @@
|
||||
" Contributor: Leonard Ehrenfried <leonard.ehrenfried@web.de>
|
||||
" Contributor: Karsten Hopp <karsten@redhat.com>
|
||||
" Originally: 2009-07-09
|
||||
" Last Change: 2016 Dec 28
|
||||
" SSH Version: 7.4p1
|
||||
" Last Change: 2017 Oct 25
|
||||
" SSH Version: 7.6p1
|
||||
"
|
||||
|
||||
" Setup
|
||||
@@ -224,7 +224,6 @@ syn keyword sshdconfigKeyword TrustedUserCAKeys
|
||||
syn keyword sshdconfigKeyword UseDNS
|
||||
syn keyword sshdconfigKeyword UseLogin
|
||||
syn keyword sshdconfigKeyword UsePAM
|
||||
syn keyword sshdconfigKeyword UsePrivilegeSeparation
|
||||
syn keyword sshdconfigKeyword VersionAddendum
|
||||
syn keyword sshdconfigKeyword X11DisplayOffset
|
||||
syn keyword sshdconfigKeyword X11Forwarding
|
||||
|
||||
@@ -455,8 +455,8 @@ de Inser
|
||||
|
||||
4. Mova o cursor até o primeiro erro.
|
||||
|
||||
5. Digite c$ para tornar o resto da linha igual à segunda e pressione
|
||||
<ESC>.
|
||||
5. Digite c$ e digite o resto da segunda para torná-las iguais e
|
||||
pressione <ESC>.
|
||||
|
||||
---> O fim desta linha precisa de ajuda para ficar igual à segunda.
|
||||
---> O fim desta linha precisa ser corrigido usando o comando c$.
|
||||
|
||||
@@ -455,8 +455,8 @@ de Inserção.
|
||||
|
||||
4. Mova o cursor até o primeiro erro.
|
||||
|
||||
5. Digite c$ para tornar o resto da linha igual à segunda e pressione
|
||||
<ESC>.
|
||||
5. Digite c$ e digite o resto da segunda linha para torná-las iguais e
|
||||
pressione <ESC>.
|
||||
|
||||
---> O fim desta linha precisa de ajuda para ficar igual à segunda.
|
||||
---> O fim desta linha precisa ser corrigido usando o comando c$.
|
||||
|
||||
@@ -51,14 +51,17 @@ olelibsdll = ole32.lib uuid.lib oleaut32.lib user32.lib gdi32.lib advapi32.lib
|
||||
# include CPUARG
|
||||
cflags = $(cflags) $(CPUARG)
|
||||
|
||||
SUBSYSTEM = console
|
||||
!if "$(SUBSYSTEM_VER)" != ""
|
||||
SUBSYSTEM = $(SUBSYSTEM),$(SUBSYSTEM_VER)
|
||||
!endif
|
||||
|
||||
all: gvimext.dll
|
||||
|
||||
gvimext.dll: gvimext.obj \
|
||||
gvimext.res
|
||||
# $(implib) /NOLOGO -machine:$(CPU) -def:gvimext.def $** -out:gvimext.lib
|
||||
# $(link) $(dlllflags) -base:0x1C000000 -out:$*.dll $** $(olelibsdll) shell32.lib gvimext.lib comctl32.lib gvimext.exp
|
||||
$(link) $(lflags) -dll -def:gvimext.def -base:0x1C000000 -out:$*.dll $** $(olelibsdll) shell32.lib comctl32.lib
|
||||
if exist $*.dll.manifest mt -nologo -manifest $*.dll.manifest -outputresource:$*.dll;2
|
||||
$(link) $(lflags) -dll -def:gvimext.def -base:0x1C000000 -out:$*.dll $** $(olelibsdll) shell32.lib comctl32.lib -subsystem:$(SUBSYSTEM)
|
||||
if exist $*.dll.manifest mt -nologo -manifest $*.dll.manifest -outputresource:$*.dll;2
|
||||
|
||||
gvimext.obj: gvimext.h
|
||||
|
||||
|
||||
+15
-52
@@ -38,7 +38,7 @@ STGMEDIUM medium;
|
||||
HRESULT hres = 0;
|
||||
UINT cbFiles = 0;
|
||||
|
||||
/* The buffers size used to be MAX_PATH (256 bytes), but that's not always
|
||||
/* The buffers size used to be MAX_PATH (260 bytes), but that's not always
|
||||
* enough */
|
||||
#define BUFSIZE 1100
|
||||
|
||||
@@ -203,7 +203,7 @@ dyn_libintl_init(char *dir)
|
||||
if (hLibintlDLL)
|
||||
return 1;
|
||||
|
||||
// Load gettext library from the Vim runtime directory.
|
||||
// Load gettext library from $VIMRUNTIME\GvimExt{64,32} directory.
|
||||
// Add the directory to $PATH temporarily.
|
||||
len = GetEnvironmentVariableW(L"PATH", NULL, 0);
|
||||
len2 = MAX_PATH + 1 + len;
|
||||
@@ -212,7 +212,11 @@ dyn_libintl_init(char *dir)
|
||||
if (buf != NULL && buf2 != NULL)
|
||||
{
|
||||
GetEnvironmentVariableW(L"PATH", buf, len);
|
||||
_snwprintf(buf2, len2, L"%S;%s", dir, buf);
|
||||
#ifdef _WIN64
|
||||
_snwprintf(buf2, len2, L"%S\\GvimExt64;%s", dir, buf);
|
||||
#else
|
||||
_snwprintf(buf2, len2, L"%S\\GvimExt32;%s", dir, buf);
|
||||
#endif
|
||||
SetEnvironmentVariableW(L"PATH", buf2);
|
||||
hLibintlDLL = LoadLibrary(GETTEXT_DLL);
|
||||
#ifdef GETTEXT_DLL_ALT
|
||||
@@ -883,37 +887,7 @@ BOOL CShellExt::LoadMenuIcon()
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
#ifdef WIN32
|
||||
// This symbol is not defined in older versions of the SDK or Visual C++.
|
||||
|
||||
#ifndef VER_PLATFORM_WIN32_WINDOWS
|
||||
# define VER_PLATFORM_WIN32_WINDOWS 1
|
||||
#endif
|
||||
|
||||
static DWORD g_PlatformId;
|
||||
|
||||
//
|
||||
// Set g_PlatformId to VER_PLATFORM_WIN32_NT (NT) or
|
||||
// VER_PLATFORM_WIN32_WINDOWS (Win95).
|
||||
//
|
||||
static void
|
||||
PlatformId(void)
|
||||
{
|
||||
static int done = FALSE;
|
||||
|
||||
if (!done)
|
||||
{
|
||||
OSVERSIONINFO ovi;
|
||||
|
||||
ovi.dwOSVersionInfoSize = sizeof(ovi);
|
||||
GetVersionEx(&ovi);
|
||||
|
||||
g_PlatformId = ovi.dwPlatformId;
|
||||
done = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
# ifndef __BORLANDC__
|
||||
#ifndef __BORLANDC__
|
||||
static char *
|
||||
searchpath(char *name)
|
||||
{
|
||||
@@ -922,28 +896,17 @@ searchpath(char *name)
|
||||
|
||||
// There appears to be a bug in FindExecutableA() on Windows NT.
|
||||
// Use FindExecutableW() instead...
|
||||
PlatformId();
|
||||
if (g_PlatformId == VER_PLATFORM_WIN32_NT)
|
||||
MultiByteToWideChar(CP_ACP, 0, (LPCSTR)name, -1,
|
||||
(LPWSTR)widename, BUFSIZE);
|
||||
if (FindExecutableW((LPCWSTR)widename, (LPCWSTR)"",
|
||||
(LPWSTR)location) > (HINSTANCE)32)
|
||||
{
|
||||
MultiByteToWideChar(CP_ACP, 0, (LPCTSTR)name, -1,
|
||||
(LPWSTR)widename, BUFSIZE);
|
||||
if (FindExecutableW((LPCWSTR)widename, (LPCWSTR)"",
|
||||
(LPWSTR)location) > (HINSTANCE)32)
|
||||
{
|
||||
WideCharToMultiByte(CP_ACP, 0, (LPWSTR)location, -1,
|
||||
(LPSTR)widename, 2 * BUFSIZE, NULL, NULL);
|
||||
return widename;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (FindExecutableA((LPCTSTR)name, (LPCTSTR)"",
|
||||
(LPTSTR)location) > (HINSTANCE)32)
|
||||
return location;
|
||||
WideCharToMultiByte(CP_ACP, 0, (LPWSTR)location, -1,
|
||||
(LPSTR)widename, 2 * BUFSIZE, NULL, NULL);
|
||||
return widename;
|
||||
}
|
||||
return (char *)"";
|
||||
}
|
||||
# endif
|
||||
#endif
|
||||
|
||||
STDMETHODIMP CShellExt::InvokeGvim(HWND hParent,
|
||||
|
||||
+118
-72
@@ -3,9 +3,9 @@ INSTALLpc.txt - Installation of Vim on PC
|
||||
This file contains instructions for compiling Vim. If you already have an
|
||||
executable version of Vim, you don't need this.
|
||||
|
||||
More information can be found here: (Very stale now.)
|
||||
|
||||
http://mywebpage.netscape.com/sharppeople/vim/howto/
|
||||
You can find the lastest here: https://github.com/vim/vim-win32-installer
|
||||
This page also has links to install support for interfaces such as Perl,
|
||||
Python, Lua, etc.
|
||||
|
||||
The file "feature.h" can be edited to match your preferences. You can skip
|
||||
this, then you will get the default behavior as is documented, which should
|
||||
@@ -15,6 +15,10 @@ This document assumes that you are building Vim for Win32 or later (Windows
|
||||
XP/2003/Vista/7/8/10). There are also instructions for pre-XP systems, but
|
||||
they might no longer work.
|
||||
|
||||
The recommended way is to build a 32 bit Vim, also on 64 bit systems. You can
|
||||
build a 64 bit Vim if you like, the executable will be bigger and Vim wan't be
|
||||
any faster, but you can edit files larger than 2 Gbyte.
|
||||
|
||||
|
||||
Contents:
|
||||
1. Microsoft Visual C++
|
||||
@@ -24,7 +28,7 @@ Contents:
|
||||
5. Cross compiling for Win32 from a Linux machine
|
||||
6. Building with Python support
|
||||
7. Building with Python3 support
|
||||
8. Building with MzScheme/Racket support
|
||||
8. Building with Racket or MzScheme support
|
||||
9. Building with Lua support
|
||||
10. Building with Perl support
|
||||
11. Building with Ruby support
|
||||
@@ -36,13 +40,20 @@ Contents:
|
||||
16. Installing after building from sources
|
||||
|
||||
|
||||
The currently preferred method is using the free Visual C++ Toolkit 2008
|
||||
|msvc-2008-express|, the produced binary runs on most MS-Windows systems.
|
||||
The currently recommended way (that means it has been verified to work) is
|
||||
using the "Visual Studio Community 2015" installation. This includes the SDK
|
||||
needed to target Windows XP. But not older Windows versions (95, 97), see
|
||||
|msvc-2008-express| below for that
|
||||
|
||||
|
||||
1. Microsoft Visual C++
|
||||
=======================
|
||||
|
||||
We do not provide download links, since Microsoft keeps changing them. You
|
||||
can search for "Visual Studio Community 2015", for example. You will need to
|
||||
create a Microsoft account (it's free).
|
||||
|
||||
|
||||
Visual Studio
|
||||
-------------
|
||||
|
||||
@@ -50,9 +61,8 @@ Building with Visual Studio (VS 98, VS .NET, VS .NET 2003, VS 2005, VS 2008,
|
||||
VS2010, VS2012, VS2013 and VS2015) is straightforward. (These instructions
|
||||
should also work for VS 4 and VS 5.)
|
||||
|
||||
Using VS C++ 2008 Express is recommended, the binaries built with that run on
|
||||
nearly all platforms. Binaries from later versions may not run on Windows 95
|
||||
or XP.
|
||||
Using VS C++ 2008 Express is recommended if you need the binary to run on
|
||||
Windows 95 or 97, see |msvc-2008-express| below.
|
||||
|
||||
To build Vim from the command line with MSVC, use Make_mvc.mak.
|
||||
Visual Studio installed a batch file called vcvars32.bat, which you must
|
||||
@@ -117,8 +127,8 @@ To set the environment execute the msvc2010.bat script. You can then build
|
||||
Vim with Make_mvc.mak.
|
||||
|
||||
|
||||
Targeting Windows XP with new MSVC *new-msvc-windows-xp*
|
||||
----------------------------------
|
||||
Targeting Windows XP with MSVC 2012 and later *new-msvc-windows-xp*
|
||||
---------------------------------------------
|
||||
|
||||
Beginning with Visual C++ 2012, Microsoft changed the behavior of LINK.EXE
|
||||
so that it targets Windows 6.0 (Vista) by default. In order to override
|
||||
@@ -127,16 +137,28 @@ follows:
|
||||
LINK ... /subsystem:console,5.01
|
||||
|
||||
Make_mvc.mak now supports a macro SUBSYSTEM_VER to pass the Windows version.
|
||||
Use lines like follows to target Windows XP (assuming using Visual C++ 2012
|
||||
under 64-bit Windows):
|
||||
Use lines like follows to target Windows XP x86 (assuming using Visual C++
|
||||
2012 under 64-bit Windows):
|
||||
set WinSdk71=%ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.1A
|
||||
set SDK_INCLUDE_DIR=%WinSdk71%\Include
|
||||
set INCLUDE=%WinSdk71%\Include;%INCLUDE%
|
||||
set LIB=%WinSdk71%\Lib;%LIB%
|
||||
set PATH=%WinSdk71%\Bin;%PATH%
|
||||
set CL=/D_USING_V110_SDK71_
|
||||
nmake -f Make_mvc.mak ... WINVER=0x0501 SUBSYSTEM_VER=5.01
|
||||
|
||||
To target Windows XP x64 instead of x86, you need to change the settings of
|
||||
LIB and SUBSYSTEM_VER:
|
||||
...
|
||||
set LIB=%WinSdk71%\Lib\x64;%LIB%
|
||||
...
|
||||
nmake -f Make_mvc.mak ... WINVER=0x0501 SUBSYSTEM_VER=5.02
|
||||
|
||||
If you use Visual C++ 2015 (either Express or Community Edition), executing
|
||||
msvc2015.bat will set them automatically. For x86 builds run this without
|
||||
options:
|
||||
msvc2015
|
||||
For x64 builds run this with the "x86_amd64" option:
|
||||
msvc2015 x86_amd64
|
||||
|
||||
The following Visual C++ team blog can serve as a reference page:
|
||||
http://blogs.msdn.com/b/vcblog/archive/2012/10/08/windows-xp-targeting-with-c-in-visual-studio-2012.aspx
|
||||
|
||||
@@ -188,10 +210,10 @@ Now you can build Vim with Make_mvc.mak.
|
||||
|
||||
Getting the Windows Platform SDK *ms-platform-sdk*
|
||||
|
||||
You will also need a copy of the Windows Platform SDK from
|
||||
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
|
||||
Specifically, you need the Windows Core SDK subset of the Platform SDK,
|
||||
which contains the Windows headers and libraries.
|
||||
You will also need a copy of the Windows Platform SDK. Specifically, you need
|
||||
the Windows Core SDK subset of the Platform SDK, which contains the Windows
|
||||
headers and libraries. You need to search for it, Microsoft keeps changing
|
||||
the URL.
|
||||
|
||||
|
||||
Getting the .NET Framework 1.1 Runtime *dotnet-1.1-redist*
|
||||
@@ -432,10 +454,61 @@ E.g. When using MSVC (as one line):
|
||||
PYTHON3=C:\Python34 DYNAMIC_PYTHON3=yes PYTHON3_VER=34
|
||||
|
||||
|
||||
8. Building with MzScheme/Racket support
|
||||
8. Building with Racket or MzScheme support
|
||||
========================================
|
||||
|
||||
1) Building with MzScheme support
|
||||
1) Building with Racket support (newest)
|
||||
|
||||
MzScheme and PLT Scheme names have been rebranded as Racket. Vim with Racket
|
||||
support can be built with either MSVC or MinGW (or Cygwin).
|
||||
Get it from https://download.racket-lang.org/
|
||||
|
||||
Copy lib/libracket{version}.dll to your Windows system directory. The system
|
||||
directory depends on your Windows bitness and Vim bitness:
|
||||
32-bit Vim on 32-bit Windows: C:\Windows\System32
|
||||
32-bit Vim on 64-bit Windows: C:\Windows\SysWOW64
|
||||
64-bit Vim on 64-bit Windows: C:\Windows\System32
|
||||
|
||||
For building you need to set the following variables:
|
||||
|
||||
MZSCHEME: Where Racket is installed.
|
||||
E.g. C:\Program Files (x86)\Racket
|
||||
DYNAMIC_MZSCHEME: Whether dynamic linking is used. Usually, set to yes.
|
||||
MZSCHEME_VER: Racket DLL version which is used for the file name.
|
||||
See below for a list of MZSCHEME_VER.
|
||||
The DLL can be found under the lib directory. E.g.
|
||||
C:\Program Files (x86)\Racket\lib\libracket3m_XXXXXX.dll
|
||||
MZSCHEME_COLLECTS: (Optional) Path of the collects directory used at
|
||||
runtime. Default: $(MZSCHEME)\collects
|
||||
User can override this with the PLTCOLLECTS environment
|
||||
variable.
|
||||
|
||||
List of MZSCHEME_VER (incomplete):
|
||||
|
||||
Racket ver. | MZSCHEME_VER
|
||||
==========================
|
||||
6.3 | 3m_9z0ds0
|
||||
6.6 | 3m_a0solc
|
||||
6.8 | 3m_a1zjsw
|
||||
6.10 | 3m_a36fs8
|
||||
|
||||
|
||||
E.g. When using MSVC (as one line):
|
||||
|
||||
nmake -f Make_mvc.mak
|
||||
MZSCHEME="C:\Program Files (x86)\Racket" DYNAMIC_MZSCHEME=yes
|
||||
MZSCHEME_VER=3m_9z0ds0
|
||||
|
||||
Or when using MinGW (as one line):
|
||||
|
||||
mingw32-make -f Make_ming.mak
|
||||
MZSCHEME='C:/Program\ Files\ (x86)/Racket' DYNAMIC_MZSCHEME=yes
|
||||
MZSCHEME_VER=3m_9z0ds0
|
||||
|
||||
Spaces should be escaped with '\'.
|
||||
|
||||
|
||||
2) Building with MzScheme support (older)
|
||||
|
||||
(written by Sergey Khorev <sergey.khorev@gmail.com>)
|
||||
|
||||
@@ -470,40 +543,6 @@ After a successful build, these dlls can be freely removed, leaving them in
|
||||
%WINDOWS%\System32 only.
|
||||
|
||||
|
||||
2) Building with Racket support
|
||||
|
||||
MzScheme and PLT Scheme names have been rebranded as Racket. Vim with Racket
|
||||
(https://racket-lang.org/) support can be built with either MSVC or MinGW (or
|
||||
Cygwin).
|
||||
|
||||
You need to set the following variables:
|
||||
|
||||
MZSCHEME: Where Racket is installed.
|
||||
E.g. C:\Program Files (x86)\Racket
|
||||
DYNAMIC_MZSCHEME: Whether dynamic linking is used. Usually, set to yes.
|
||||
MZSCHEME_VER: Racket DLL version which is used for the file name.
|
||||
E.g. 3m_9z0ds0 for Racket 6.3.
|
||||
The DLL can be found under the lib directory. E.g.
|
||||
C:\Program Files (x86)\Racket\lib\libracket3m_XXXXXX.dll
|
||||
MZSCHEME_COLLECTS: (Optional) Path of the collects directory used at
|
||||
runtime. Default: $(MZSCHEME)\collects
|
||||
User can override this with the PLTCOLLECTS environment
|
||||
variable.
|
||||
|
||||
E.g. When using MSVC (as one line):
|
||||
|
||||
nmake -f Make_mvc.mak
|
||||
MZSCHEME="C:\Program Files (x86)\Racket" DYNAMIC_MZSCHEME=yes
|
||||
MZSCHEME_VER=3m_9z0ds0
|
||||
|
||||
Or when using MinGW (as one line):
|
||||
|
||||
mingw32-make -f Make_ming.mak
|
||||
MZSCHEME='C:/Program\ Files\ (x86)/Racket' DYNAMIC_MZSCHEME=yes
|
||||
MZSCHEME_VER=3m_9z0ds0
|
||||
|
||||
Spaces should be escaped with '\'.
|
||||
|
||||
|
||||
9. Building with Lua support
|
||||
============================
|
||||
@@ -550,7 +589,7 @@ E.g. When using MSVC (as one line):
|
||||
|
||||
Or when using MinGW (as one line):
|
||||
|
||||
mingw32-make -f Make_mingw.mak
|
||||
mingw32-make -f Make_ming.mak
|
||||
LUA=C:\projects\lua53 DYNAMIC_LUA=yes LUA_VER=53
|
||||
|
||||
|
||||
@@ -582,7 +621,7 @@ E.g. When using MSVC (as one line):
|
||||
|
||||
Or when using MinGW (as one line):
|
||||
|
||||
mingw32-make -f Make_mingw.mak
|
||||
mingw32-make -f Make_ming.mak
|
||||
PERL=C:\Perl DYNAMIC_PERL=yes PERL_VER=522
|
||||
|
||||
|
||||
@@ -591,7 +630,7 @@ Or when using MinGW (as one line):
|
||||
|
||||
Vim with Ruby support can be built with either MSVC or MinGW (or Cygwin).
|
||||
Ruby doesn't provide the official Windows binaries. The most widely used
|
||||
Windows binaries might be RubyInstaller.
|
||||
Windows binaries might be RubyInstaller. Currently Ruby 2.4 is recommended.
|
||||
|
||||
http://rubyinstaller.org/
|
||||
|
||||
@@ -602,11 +641,11 @@ you need some tricks described below.
|
||||
|
||||
When building, you need to set the following variables at least:
|
||||
|
||||
RUBY: Where ruby is installed. E.g. C:\Ruby22
|
||||
RUBY: Where ruby is installed. E.g. C:\Ruby24
|
||||
DYNAMIC_RUBY: Whether dynamic linking is used. Usually, set to yes.
|
||||
RUBY_VER: Ruby version. E.g. 22 for Ruby 2.2.X.
|
||||
RUBY_VER: Ruby version. E.g. 24 for Ruby 2.4.X.
|
||||
RUBY_API_VER_LONG: Ruby API version in a long format.
|
||||
E.g. 2.2.0 for Ruby 2.2.X.
|
||||
E.g. 2.4.0 for Ruby 2.4.X.
|
||||
|
||||
Ruby version vs. Ruby API version:
|
||||
|
||||
@@ -631,33 +670,34 @@ config.h and Ruby's DLL name. Here are the steps for working around them:
|
||||
1) Download and Install RubyInstaller.
|
||||
You can install RubyInstaller with the default options and directory.
|
||||
E.g.:
|
||||
C:\Ruby22 (32-bit) or C:\Ruby22-x64 (64-bit)
|
||||
C:\Ruby24 (32-bit) or C:\Ruby24-x64 (64-bit)
|
||||
|
||||
Ruby 2.2.X is used in this example.
|
||||
Ruby 2.4.X is used in this example.
|
||||
|
||||
2) Download Ruby 2.2.X's source code and generate config.h:
|
||||
2) Download Ruby 2.4.X's source code and generate config.h:
|
||||
|
||||
cd C:\projects
|
||||
git clone https://github.com/ruby/ruby.git -b ruby_2_2
|
||||
git clone https://github.com/ruby/ruby.git -b ruby_2_4
|
||||
cd ruby
|
||||
win32\configure.bat
|
||||
nmake .config.h.time
|
||||
|
||||
Note that ruby_2_2 is the branch name for Ruby 2.2.X's source code.
|
||||
Note that ruby_2_4 is the branch name for Ruby 2.4.X's source code.
|
||||
There is no need to build whole Ruby, just config.h is needed.
|
||||
If you use 32-bit MSVC10, the config.h is generated in the
|
||||
.ext\include\i386-mswin32_100 directory.
|
||||
.ext\include\i386-mswin32_140 directory.
|
||||
|
||||
3) Install the generated config.h.
|
||||
|
||||
xcopy /s .ext\include C:\Ruby22\include\ruby-2.2.0
|
||||
xcopy /s .ext\include E:\Ruby24\include\ruby-2.4.0
|
||||
|
||||
Note that 2.2.0 is Ruby API version of Ruby 2.2.X.
|
||||
Note that 2.4.0 is Ruby API version of Ruby 2.4.X.
|
||||
You may need to close the console and reopen it to pick up the new $PATH.
|
||||
|
||||
4) Build Vim. Note that you need to adjust some variables (as one line):
|
||||
|
||||
nmake -f Make_mvc.mak
|
||||
RUBY=C:\Ruby22 DYNAMIC_RUBY=yes RUBY_VER=22 RUBY_API_VER_LONG=2.2.0
|
||||
RUBY=C:\Ruby24 DYNAMIC_RUBY=yes RUBY_VER=24 RUBY_API_VER_LONG=2.4.0
|
||||
RUBY_MSVCRT_NAME=msvcrt
|
||||
WINVER=0x501
|
||||
|
||||
@@ -688,6 +728,7 @@ You can use binaries from ActiveState (ActiveTcl).
|
||||
|
||||
http://www.activestate.com/activetcl
|
||||
|
||||
For MSVC 2015 use version 8.6.6 or later.
|
||||
When building, you need to set the following variables:
|
||||
|
||||
TCL: Where tcl is installed. E.g. C:\Tcl86
|
||||
@@ -695,6 +736,11 @@ When building, you need to set the following variables:
|
||||
TCL_VER: Tcl version in a short format. E.g. 86 for Tcl 8.6.X.
|
||||
TCL_VER_LONG: Tcl version in a long format. E.g. 8.6 for Tcl 8.6.X.
|
||||
|
||||
Sometimes the Tcl dll name changes. E.g. ActiveTcl 8.6.4 comes with tcl86.dll,
|
||||
but ActiveTcl 8.6.6 comes with tcl86t.dll. You can set the dll name by setting
|
||||
the TCL_DLL variable:
|
||||
TCL_DLL=tcl86t.dll
|
||||
|
||||
E.g. When using MSVC (as one line):
|
||||
|
||||
nmake -f Make_mvc.mak
|
||||
@@ -702,7 +748,7 @@ E.g. When using MSVC (as one line):
|
||||
|
||||
Or when using MinGW (as one line):
|
||||
|
||||
mingw32-make -f Make_mingw.mak
|
||||
mingw32-make -f Make_ming.mak
|
||||
TCL=C:\Tcl86 DYNAMIC_TCL=yes TCL_VER=86 TCL_VER_LONG=8.6
|
||||
|
||||
|
||||
@@ -719,7 +765,7 @@ E.g. When using MSVC:
|
||||
|
||||
Or when using MinGW (as one line):
|
||||
|
||||
mingw32-make -f Make_mingw.mak TERMINAL=yes
|
||||
mingw32-make -f Make_ming.mak TERMINAL=yes
|
||||
|
||||
|
||||
14. Windows 3.1x
|
||||
|
||||
@@ -1255,7 +1255,7 @@
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>138</string>
|
||||
<string>141</string>
|
||||
<key>NSAppTransportSecurity</key>
|
||||
<dict>
|
||||
<key>NSAllowsArbitraryLoads</key>
|
||||
|
||||
@@ -991,7 +991,7 @@ static NSString *MMWideCharacterAttributeName = @"MMWideChar";
|
||||
attributes:dict];
|
||||
|
||||
[backingStore release];
|
||||
backingStore = [[NSMutableAttributedString alloc] init];
|
||||
backingStore = [[NSTextStorage alloc] init];
|
||||
for (i=0; i<maxRows; ++i) {
|
||||
#if MM_USE_ROW_CACHE
|
||||
rowCache[i].length = actualColumns + 1;
|
||||
|
||||
@@ -333,7 +333,7 @@ gui_mch_update(void)
|
||||
static CFAbsoluteTime lastTime = 0;
|
||||
|
||||
CFAbsoluteTime nowTime = CFAbsoluteTimeGetCurrent();
|
||||
if (nowTime - lastTime > 0.2) {
|
||||
if (nowTime - lastTime > 1.0 / 30) {
|
||||
[[MMBackend sharedInstance] update];
|
||||
lastTime = nowTime;
|
||||
}
|
||||
@@ -2301,7 +2301,7 @@ gui_macvim_add_channel(channel_T *channel, ch_part_T part)
|
||||
0,
|
||||
dispatch_get_main_queue());
|
||||
dispatch_source_set_event_handler(s, ^{
|
||||
channel_read(channel, part, "gui_macvim_add_channel");
|
||||
channel_may_read(channel, part, "gui_macvim_add_channel");
|
||||
});
|
||||
dispatch_resume(s);
|
||||
return s;
|
||||
|
||||
+3
-3
@@ -28,10 +28,10 @@ endif
|
||||
" MacVim uses Homebrew python3 if installed, next try to use python.org binary
|
||||
if exists("&pythonthreedll") && exists("&pythonthreehome") &&
|
||||
\ !filereadable(&pythonthreedll)
|
||||
if filereadable("/Library/Frameworks/Python.framework/Versions/3.5/Python")
|
||||
if filereadable("/Library/Frameworks/Python.framework/Versions/3.6/Python")
|
||||
" https://www.python.org/downloads/mac-osx/
|
||||
set pythonthreedll=/Library/Frameworks/Python.framework/Versions/3.5/Python
|
||||
set pythonthreehome=/Library/Frameworks/Python.framework/Versions/3.5
|
||||
set pythonthreedll=/Library/Frameworks/Python.framework/Versions/3.6/Python
|
||||
set pythonthreehome=/Library/Frameworks/Python.framework/Versions/3.6
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
@@ -47,6 +47,7 @@ FEATURES=HUGE
|
||||
# Set to yes to cross-compile from unix; no=native Windows (and Cygwin).
|
||||
CROSS=no
|
||||
# Set to path to iconv.h and libiconv.a to enable using 'iconv.dll'.
|
||||
# Use "yes" when the path does not need to be define.
|
||||
#ICONV="."
|
||||
ICONV=yes
|
||||
GETTEXT=yes
|
||||
@@ -74,7 +75,11 @@ else
|
||||
CHANNEL=$(GUI)
|
||||
endif
|
||||
# Set to yes to enable terminal support.
|
||||
ifeq (HUGE, $(FEATURES))
|
||||
TERMINAL=yes
|
||||
else
|
||||
TERMINAL=no
|
||||
endif
|
||||
|
||||
ifndef CTAGS
|
||||
# this assumes ctags is Exuberant ctags
|
||||
|
||||
+22
-7
@@ -37,7 +37,7 @@
|
||||
# is yes)
|
||||
# Global IME support: GIME=yes (requires GUI=yes)
|
||||
#
|
||||
# Terminal support: TERMINAL=yes (default is no)
|
||||
# Terminal support: TERMINAL=yes (default is yes)
|
||||
#
|
||||
# Lua interface:
|
||||
# LUA=[Path to Lua directory]
|
||||
@@ -361,6 +361,14 @@ CSCOPE_OBJ = $(OBJDIR)/if_cscope.obj
|
||||
CSCOPE_DEFS = -DFEAT_CSCOPE
|
||||
!endif
|
||||
|
||||
!ifndef TERMINAL
|
||||
!if "$(FEATURES)"=="HUGE"
|
||||
TERMINAL = yes
|
||||
!else
|
||||
TERMINAL = no
|
||||
!endif
|
||||
!endif
|
||||
|
||||
!if "$(TERMINAL)" == "yes"
|
||||
TERM_OBJ = \
|
||||
$(OBJDIR)/terminal.obj \
|
||||
@@ -587,7 +595,7 @@ CPUARG = /arch:AVX2
|
||||
! endif
|
||||
!endif
|
||||
|
||||
# Pass CPUARG to GVimExt, to avoid using version-dependent defaults
|
||||
# Pass CPUARG to GvimExt, to avoid using version-dependent defaults
|
||||
MAKEFLAGS_GVIMEXT = $(MAKEFLAGS_GVIMEXT) CPUARG="$(CPUARG)"
|
||||
|
||||
|
||||
@@ -789,9 +797,14 @@ SUBSYSTEM = console
|
||||
CUI_INCL = iscygpty.h
|
||||
CUI_OBJ = $(OUTDIR)\iscygpty.obj
|
||||
!endif
|
||||
SUBSYSTEM_TOOLS = console
|
||||
|
||||
!if "$(SUBSYSTEM_VER)" != ""
|
||||
SUBSYSTEM = $(SUBSYSTEM),$(SUBSYSTEM_VER)
|
||||
SUBSYSTEM_TOOLS = $(SUBSYSTEM_TOOLS),$(SUBSYSTEM_VER)
|
||||
# Pass SUBSYSTEM_VER to GvimExt and other tools
|
||||
MAKEFLAGS_GVIMEXT = $(MAKEFLAGS_GVIMEXT) SUBSYSTEM_VER=$(SUBSYSTEM_VER)
|
||||
MAKEFLAGS_TOOLS = $(MAKEFLAGS_TOOLS) SUBSYSTEM_VER=$(SUBSYSTEM_VER)
|
||||
!endif
|
||||
|
||||
!if "$(GUI)" == "yes" && "$(DIRECTX)" == "yes"
|
||||
@@ -1186,24 +1199,26 @@ $(OUTDIR):
|
||||
|
||||
install.exe: dosinst.c
|
||||
$(CC) /nologo -DNDEBUG -DWIN32 dosinst.c kernel32.lib shell32.lib \
|
||||
user32.lib ole32.lib advapi32.lib uuid.lib
|
||||
user32.lib ole32.lib advapi32.lib uuid.lib \
|
||||
-link -subsystem:$(SUBSYSTEM_TOOLS)
|
||||
- if exist install.exe del install.exe
|
||||
ren dosinst.exe install.exe
|
||||
|
||||
uninstal.exe: uninstal.c
|
||||
$(CC) /nologo -DNDEBUG -DWIN32 uninstal.c shell32.lib advapi32.lib
|
||||
$(CC) /nologo -DNDEBUG -DWIN32 uninstal.c shell32.lib advapi32.lib \
|
||||
-link -subsystem:$(SUBSYSTEM_TOOLS)
|
||||
|
||||
vimrun.exe: vimrun.c
|
||||
$(CC) /nologo -DNDEBUG vimrun.c
|
||||
$(CC) /nologo -DNDEBUG vimrun.c -link -subsystem:$(SUBSYSTEM_TOOLS)
|
||||
|
||||
xxd/xxd.exe: xxd/xxd.c
|
||||
cd xxd
|
||||
$(MAKE) /NOLOGO -f Make_mvc.mak
|
||||
$(MAKE) /NOLOGO -f Make_mvc.mak $(MAKEFLAGS_TOOLS)
|
||||
cd ..
|
||||
|
||||
tee/tee.exe: tee/tee.c
|
||||
cd tee
|
||||
$(MAKE) /NOLOGO -f Make_mvc.mak
|
||||
$(MAKE) /NOLOGO -f Make_mvc.mak $(MAKEFLAGS_TOOLS)
|
||||
cd ..
|
||||
|
||||
GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
|
||||
|
||||
+22
-17
@@ -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.
|
||||
@@ -2105,9 +2108,9 @@ run_memfile_test: $(MEMFILE_TEST_TARGET)
|
||||
run_message_test: $(MESSAGE_TEST_TARGET)
|
||||
$(VALGRIND) ./$(MESSAGE_TEST_TARGET) || exit 1; echo $* passed;
|
||||
|
||||
# Run individual OLD style test, assuming that Vim was already compiled.
|
||||
# Run individual OLD style test.
|
||||
# These do not depend on the executable, compile it when needed.
|
||||
test1 \
|
||||
test_autoformat_join \
|
||||
test_changelist \
|
||||
test_close_count \
|
||||
test_erasebackword \
|
||||
@@ -2117,20 +2120,18 @@ test1 \
|
||||
test_listchars \
|
||||
test_search_mbyte \
|
||||
test_wordcount \
|
||||
test3 test4 test5 test7 test8 \
|
||||
test11 test12 test14 test15 test17 test19 \
|
||||
test20 test25 test28 test29 \
|
||||
test30 test31 test32 test34 test36 test37 test38 test39 \
|
||||
test40 test42 test44 test45 test48 test49 \
|
||||
test50 test52 test54 test55 test59 \
|
||||
test60 test64 test66 test68 test69 \
|
||||
test70 test72 test73 test77 test78 test79 \
|
||||
test83 test85 test86 test87 test88 \
|
||||
test94 test95 test99 \
|
||||
test108:
|
||||
test3 test11 test14 test15 test17 \
|
||||
test29 test30 test36 test37 test39 \
|
||||
test42 test44 test48 test49 \
|
||||
test50 test52 test55 test59 \
|
||||
test64 test68 test69 \
|
||||
test70 test72 test73 \
|
||||
test85 test86 test87 test88 \
|
||||
test94 test95 test99 test108:
|
||||
cd testdir; rm -f $@.out; $(MAKE) -f Makefile $@.out VIMPROG=../$(VIMTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE)
|
||||
|
||||
# Run individual NEW style test, assuming that Vim was already compiled.
|
||||
# Run individual NEW style test.
|
||||
# These do not depend on the executable, compile it when needed.
|
||||
test_arglist \
|
||||
test_arabic \
|
||||
test_assert \
|
||||
@@ -2166,6 +2167,7 @@ test_arglist \
|
||||
test_ex_z \
|
||||
test_exec_while_if \
|
||||
test_execute_func \
|
||||
test_exists \
|
||||
test_exists_autocmd \
|
||||
test_expand \
|
||||
test_expand_dllpath \
|
||||
@@ -2204,6 +2206,7 @@ test_arglist \
|
||||
test_hlsearch \
|
||||
test_increment \
|
||||
test_increment_dbcs \
|
||||
test_ins_complete \
|
||||
test_job_fails \
|
||||
test_join \
|
||||
test_json \
|
||||
@@ -2257,6 +2260,7 @@ test_arglist \
|
||||
test_reltime \
|
||||
test_retab \
|
||||
test_ruby \
|
||||
test_scroll_opt \
|
||||
test_scrollbind \
|
||||
test_search \
|
||||
test_searchpos \
|
||||
@@ -2296,6 +2300,7 @@ test_arglist \
|
||||
test_virtualedit \
|
||||
test_visual \
|
||||
test_winbar \
|
||||
test_winbuf_close \
|
||||
test_window_cmd \
|
||||
test_window_id \
|
||||
test_windows_home \
|
||||
|
||||
Vendored
+64
-39
@@ -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
|
||||
@@ -7284,10 +7286,10 @@ $as_echo "$rubyhdrdir" >&6; }
|
||||
$as_echo "#define FEAT_RUBY 1" >>confdefs.h
|
||||
|
||||
if test "$enable_rubyinterp" = "dynamic"; then
|
||||
libruby=`$vi_cv_path_ruby -r rbconfig -e "puts $ruby_rbconfig::CONFIG['LIBRUBY_SO']"`
|
||||
libruby_soname=`$vi_cv_path_ruby -r rbconfig -e "puts $ruby_rbconfig::CONFIG['LIBRUBY_ALIASES'].split[0]"`
|
||||
$as_echo "#define DYNAMIC_RUBY 1" >>confdefs.h
|
||||
|
||||
RUBY_CFLAGS="-DDYNAMIC_RUBY_DLL=\\\"$libruby\\\" -DDYNAMIC_RUBY_VER=$rubyversion $RUBY_CFLAGS"
|
||||
RUBY_CFLAGS="-DDYNAMIC_RUBY_DLL=\\\"$libruby_soname\\\" -DDYNAMIC_RUBY_VER=$rubyversion $RUBY_CFLAGS"
|
||||
RUBY_LIBS=
|
||||
fi
|
||||
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
|
||||
@@ -11662,7 +11664,7 @@ fi
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking what tgetent() returns for an unknown terminal" >&5
|
||||
$as_echo_n "checking what tgetent() returns for an unknown terminal... " >&6; }
|
||||
if ${vim_cv_tgent+:} false; then :
|
||||
if ${vim_cv_tgetent+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
|
||||
@@ -11688,11 +11690,11 @@ main()
|
||||
_ACEOF
|
||||
if ac_fn_c_try_run "$LINENO"; then :
|
||||
|
||||
vim_cv_tgent=zero
|
||||
vim_cv_tgetent=zero
|
||||
|
||||
else
|
||||
|
||||
vim_cv_tgent=non-zero
|
||||
vim_cv_tgetent=non-zero
|
||||
|
||||
fi
|
||||
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
|
||||
@@ -11701,10 +11703,10 @@ fi
|
||||
|
||||
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $vim_cv_tgent" >&5
|
||||
$as_echo "$vim_cv_tgent" >&6; }
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $vim_cv_tgetent" >&5
|
||||
$as_echo "$vim_cv_tgetent" >&6; }
|
||||
|
||||
if test "x$vim_cv_tgent" = "xzero" ; then
|
||||
if test "x$vim_cv_tgetent" = "xzero" ; then
|
||||
$as_echo "#define TGETENT_ZERO_ERR 0" >>confdefs.h
|
||||
|
||||
fi
|
||||
@@ -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; }
|
||||
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
:: command to build big Vim with OLE, Perl, Python, Ruby and Tcl
|
||||
:: command to build big Vim with OLE, Lua, Perl, Python, Racket, Ruby and Tcl
|
||||
SET VCDIR="C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\"
|
||||
SET TOOLDIR=E:\
|
||||
%VCDIR%nmake -f Make_mvc.mak GUI=yes OLE=yes PERL=%TOOLDIR%perl524 DYNAMIC_PERL=yes PERL_VER=524 PYTHON=%TOOLDIR%python27 DYNAMIC_PYTHON=yes PYTHON_VER=27 PYTHON3=%TOOLDIR%python35 DYNAMIC_PYTHON3=yes PYTHON3_VER=35 RUBY=%TOOLDIR%ruby22 DYNAMIC_RUBY=yes RUBY_VER=22 RUBY_API_VER_LONG=2.2.0 RUBY_MSVCRT_NAME=msvcrt TCL=%TOOLDIR%tcl TCL_VER=86 TCL_VER_LONG=8.6 DYNAMIC_TCL=yes %1 IME=yes CSCOPE=yes DIRECTX=yes
|
||||
%VCDIR%nmake -f Make_mvc.mak GUI=yes OLE=yes LUA=%TOOLDIR%lua53 DYNAMIC_LUA=yes LUA_VER=53 PERL=%TOOLDIR%perl524 DYNAMIC_PERL=yes PERL_VER=524 PYTHON=%TOOLDIR%python27 DYNAMIC_PYTHON=yes PYTHON_VER=27 PYTHON3=%TOOLDIR%python35 DYNAMIC_PYTHON3=yes PYTHON3_VER=35 MZSCHEME=%TOOLDIR%Racket DYNAMIC_MZSCHEME=yes MZSCHEME_VER=3m_a36fs8 RUBY=%TOOLDIR%ruby24 DYNAMIC_RUBY=yes RUBY_VER=24 RUBY_API_VER_LONG=2.4.0 RUBY_MSVCRT_NAME=msvcrt TCL=%TOOLDIR%ActiveTcl TCL_VER=86 TCL_VER_LONG=8.6 DYNAMIC_TCL=yes TCL_DLL=tcl86t.dll %1 IME=yes CSCOPE=yes DIRECTX=yes
|
||||
|
||||
|
||||
+24
-4
@@ -841,6 +841,8 @@ free_buffer(buf_T *buf)
|
||||
++buf_free_count;
|
||||
free_buffer_stuff(buf, TRUE);
|
||||
#ifdef FEAT_EVAL
|
||||
/* b:changedtick uses an item in buf_T, remove it now */
|
||||
dictitem_remove(buf->b_vars, (dictitem_T *)&buf->b_ct_di);
|
||||
unref_var_dict(buf->b_vars);
|
||||
#endif
|
||||
#ifdef FEAT_LUA
|
||||
@@ -3891,6 +3893,8 @@ build_stl_str_hl(
|
||||
int width;
|
||||
int itemcnt;
|
||||
int curitem;
|
||||
int group_end_userhl;
|
||||
int group_start_userhl;
|
||||
int groupitem[STL_MAX_ITEM];
|
||||
int groupdepth;
|
||||
struct stl_item
|
||||
@@ -4031,11 +4035,25 @@ build_stl_str_hl(
|
||||
if (curitem > groupitem[groupdepth] + 1
|
||||
&& item[groupitem[groupdepth]].minwid == 0)
|
||||
{
|
||||
/* remove group if all items are empty */
|
||||
for (n = groupitem[groupdepth] + 1; n < curitem; n++)
|
||||
if (item[n].type == Normal || item[n].type == Highlight)
|
||||
/* remove group if all items are empty and highlight group
|
||||
* doesn't change */
|
||||
group_start_userhl = group_end_userhl = 0;
|
||||
for (n = groupitem[groupdepth] - 1; n >= 0; n--)
|
||||
{
|
||||
if (item[n].type == Highlight)
|
||||
{
|
||||
group_start_userhl = group_end_userhl = item[n].minwid;
|
||||
break;
|
||||
if (n == curitem)
|
||||
}
|
||||
}
|
||||
for (n = groupitem[groupdepth] + 1; n < curitem; n++)
|
||||
{
|
||||
if (item[n].type == Normal)
|
||||
break;
|
||||
if (item[n].type == Highlight)
|
||||
group_end_userhl = item[n].minwid;
|
||||
}
|
||||
if (n == curitem && group_start_userhl == group_end_userhl)
|
||||
{
|
||||
p = t;
|
||||
l = 0;
|
||||
@@ -4322,6 +4340,7 @@ build_stl_str_hl(
|
||||
|
||||
case STL_OFFSET_X:
|
||||
base = 'X';
|
||||
/* FALLTHROUGH */
|
||||
case STL_OFFSET:
|
||||
#ifdef FEAT_BYTEOFF
|
||||
l = ml_find_line_or_offset(wp->w_buffer, wp->w_cursor.lnum, NULL);
|
||||
@@ -4333,6 +4352,7 @@ build_stl_str_hl(
|
||||
|
||||
case STL_BYTEVAL_X:
|
||||
base = 'X';
|
||||
/* FALLTHROUGH */
|
||||
case STL_BYTEVAL:
|
||||
num = byteval;
|
||||
if (num == NL)
|
||||
|
||||
+16
-6
@@ -54,9 +54,7 @@
|
||||
# define fd_close(sd) close(sd)
|
||||
#endif
|
||||
|
||||
#ifndef FEAT_GUI_MACVIM
|
||||
static void channel_read(channel_T *channel, ch_part_T part, char *func);
|
||||
#endif
|
||||
|
||||
/* Whether a redraw is needed for appending a line to a buffer. */
|
||||
static int channel_need_redraw = FALSE;
|
||||
@@ -3271,11 +3269,7 @@ channel_close_now(channel_T *channel)
|
||||
* "part" is PART_SOCK, PART_OUT or PART_ERR.
|
||||
* The data is put in the read queue. No callbacks are invoked here.
|
||||
*/
|
||||
#ifndef FEAT_GUI_MACVIM
|
||||
static void
|
||||
#else
|
||||
void
|
||||
#endif
|
||||
channel_read(channel_T *channel, ch_part_T part, char *func)
|
||||
{
|
||||
static char_u *buf = NULL;
|
||||
@@ -3561,6 +3555,22 @@ theend:
|
||||
free_job_options(&opt);
|
||||
}
|
||||
|
||||
# ifdef FEAT_GUI_MACVIM
|
||||
/*
|
||||
* Read from channel "channel" in dispatch event handler.
|
||||
* Channel may be already read out elsewhere before the handler invoked
|
||||
* after an event arrived, so should be checked again.
|
||||
*/
|
||||
void
|
||||
channel_may_read(channel_T *channel, ch_part_T part, char *func)
|
||||
{
|
||||
sock_T fd = channel->ch_part[part].ch_fd;
|
||||
|
||||
if (fd != INVALID_FD && channel_wait(channel, fd, 0) == CW_READY)
|
||||
channel_read(channel, part, func);
|
||||
}
|
||||
# endif
|
||||
|
||||
# if defined(WIN32) || defined(FEAT_GUI_X11) || defined(FEAT_GUI_GTK) \
|
||||
|| defined(PROTO)
|
||||
/*
|
||||
|
||||
+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
|
||||
|
||||
+63
-43
@@ -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
|
||||
@@ -1966,9 +1968,9 @@ if test "$enable_rubyinterp" = "yes" -o "$enable_rubyinterp" = "dynamic"; then
|
||||
|
||||
AC_DEFINE(FEAT_RUBY)
|
||||
if test "$enable_rubyinterp" = "dynamic"; then
|
||||
libruby=`$vi_cv_path_ruby -r rbconfig -e "puts $ruby_rbconfig::CONFIG[['LIBRUBY_SO']]"`
|
||||
libruby_soname=`$vi_cv_path_ruby -r rbconfig -e "puts $ruby_rbconfig::CONFIG[['LIBRUBY_ALIASES']].split[[0]]"`
|
||||
AC_DEFINE(DYNAMIC_RUBY)
|
||||
RUBY_CFLAGS="-DDYNAMIC_RUBY_DLL=\\\"$libruby\\\" -DDYNAMIC_RUBY_VER=$rubyversion $RUBY_CFLAGS"
|
||||
RUBY_CFLAGS="-DDYNAMIC_RUBY_DLL=\\\"$libruby_soname\\\" -DDYNAMIC_RUBY_VER=$rubyversion $RUBY_CFLAGS"
|
||||
RUBY_LIBS=
|
||||
fi
|
||||
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
|
||||
@@ -3471,7 +3473,7 @@ if test "x$vim_cv_terminfo" = "xyes" ; then
|
||||
AC_DEFINE(TERMINFO)
|
||||
fi
|
||||
|
||||
AC_CACHE_CHECK([what tgetent() returns for an unknown terminal], [vim_cv_tgent],
|
||||
AC_CACHE_CHECK([what tgetent() returns for an unknown terminal], [vim_cv_tgetent],
|
||||
[
|
||||
AC_RUN_IFELSE([AC_LANG_SOURCE([[
|
||||
#include "confdefs.h"
|
||||
@@ -3485,15 +3487,15 @@ AC_CACHE_CHECK([what tgetent() returns for an unknown terminal], [vim_cv_tgent],
|
||||
main()
|
||||
{char s[10000]; int res = tgetent(s, "thisterminaldoesnotexist"); exit(res != 0); }
|
||||
]])],[
|
||||
vim_cv_tgent=zero
|
||||
vim_cv_tgetent=zero
|
||||
],[
|
||||
vim_cv_tgent=non-zero
|
||||
vim_cv_tgetent=non-zero
|
||||
],[
|
||||
AC_MSG_ERROR(failed to compile test program.)
|
||||
])
|
||||
])
|
||||
|
||||
if test "x$vim_cv_tgent" = "xzero" ; then
|
||||
if test "x$vim_cv_tgetent" = "xzero" ; then
|
||||
AC_DEFINE(TGETENT_ZERO_ERR, 0)
|
||||
fi
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
+107
-94
@@ -19,6 +19,9 @@
|
||||
#define DOSINST
|
||||
#include "dosinst.h"
|
||||
|
||||
#define GVIMEXT64_PATH "GvimExt64\\gvimext.dll"
|
||||
#define GVIMEXT32_PATH "GvimExt32\\gvimext.dll"
|
||||
|
||||
/* Macro to do an error check I was typing over and over */
|
||||
#define CHECK_REG_ERROR(code) if (code != ERROR_SUCCESS) { printf("%ld error number: %ld\n", (long)__LINE__, (long)code); return 1; }
|
||||
|
||||
@@ -75,23 +78,25 @@ char *(remap_choices[]) =
|
||||
{
|
||||
"\nChoose:",
|
||||
"Do not remap keys for Windows behavior",
|
||||
"Remap a few keys for Windows behavior (<C-V>, <C-C>, etc)",
|
||||
"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
|
||||
@@ -152,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)
|
||||
@@ -359,7 +363,6 @@ find_bat_exe(int check_bat_only)
|
||||
mch_chdir(installdir);
|
||||
}
|
||||
|
||||
#ifdef WIN3264
|
||||
/*
|
||||
* Get the value of $VIMRUNTIME or $VIM and write it in $TEMP/vimini.ini, so
|
||||
* that NSIS can read it.
|
||||
@@ -612,7 +615,6 @@ uninstall_check(int skip_question)
|
||||
|
||||
return foundone;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Find out information about the system.
|
||||
@@ -1175,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)
|
||||
{
|
||||
@@ -1324,12 +1328,12 @@ init_vimrc_choices(void)
|
||||
++choice_count;
|
||||
}
|
||||
|
||||
#if defined(WIN3264)
|
||||
static LONG
|
||||
reg_create_key(
|
||||
HKEY root,
|
||||
const char *subkey,
|
||||
PHKEY phKey)
|
||||
PHKEY phKey,
|
||||
DWORD flag)
|
||||
{
|
||||
DWORD disp;
|
||||
|
||||
@@ -1337,7 +1341,7 @@ reg_create_key(
|
||||
return RegCreateKeyEx(
|
||||
root, subkey,
|
||||
0, NULL, REG_OPTION_NON_VOLATILE,
|
||||
KEY_WOW64_64KEY | KEY_WRITE,
|
||||
flag | KEY_WRITE,
|
||||
NULL, phKey, &disp);
|
||||
}
|
||||
|
||||
@@ -1356,10 +1360,11 @@ reg_create_key_and_value(
|
||||
HKEY hRootKey,
|
||||
const char *subkey,
|
||||
const char *value_name,
|
||||
const char *data)
|
||||
const char *data,
|
||||
DWORD flag)
|
||||
{
|
||||
HKEY hKey;
|
||||
LONG lRet = reg_create_key(hRootKey, subkey, &hKey);
|
||||
LONG lRet = reg_create_key(hRootKey, subkey, &hKey, flag);
|
||||
|
||||
if (ERROR_SUCCESS == lRet)
|
||||
{
|
||||
@@ -1375,21 +1380,22 @@ register_inproc_server(
|
||||
const char *clsid,
|
||||
const char *extname,
|
||||
const char *module,
|
||||
const char *threading_model)
|
||||
const char *threading_model,
|
||||
DWORD flag)
|
||||
{
|
||||
CHAR subkey[BUFSIZE];
|
||||
LONG lRet;
|
||||
|
||||
sprintf(subkey, "CLSID\\%s", clsid);
|
||||
lRet = reg_create_key_and_value(hRootKey, subkey, NULL, extname);
|
||||
lRet = reg_create_key_and_value(hRootKey, subkey, NULL, extname, flag);
|
||||
if (ERROR_SUCCESS == lRet)
|
||||
{
|
||||
sprintf(subkey, "CLSID\\%s\\InProcServer32", clsid);
|
||||
lRet = reg_create_key_and_value(hRootKey, subkey, NULL, module);
|
||||
lRet = reg_create_key_and_value(hRootKey, subkey, NULL, module, flag);
|
||||
if (ERROR_SUCCESS == lRet)
|
||||
{
|
||||
lRet = reg_create_key_and_value(hRootKey, subkey,
|
||||
"ThreadingModel", threading_model);
|
||||
"ThreadingModel", threading_model, flag);
|
||||
}
|
||||
}
|
||||
return lRet;
|
||||
@@ -1400,13 +1406,15 @@ register_shellex(
|
||||
HKEY hRootKey,
|
||||
const char *clsid,
|
||||
const char *name,
|
||||
const char *exe_path)
|
||||
const char *exe_path,
|
||||
DWORD flag)
|
||||
{
|
||||
LONG lRet = reg_create_key_and_value(
|
||||
hRootKey,
|
||||
"*\\shellex\\ContextMenuHandlers\\gvim",
|
||||
NULL,
|
||||
clsid);
|
||||
clsid,
|
||||
flag);
|
||||
|
||||
if (ERROR_SUCCESS == lRet)
|
||||
{
|
||||
@@ -1414,7 +1422,8 @@ register_shellex(
|
||||
HKEY_LOCAL_MACHINE,
|
||||
"Software\\Microsoft\\Windows\\CurrentVersion\\Shell Extensions\\Approved",
|
||||
clsid,
|
||||
name);
|
||||
name,
|
||||
flag);
|
||||
|
||||
if (ERROR_SUCCESS == lRet)
|
||||
{
|
||||
@@ -1422,7 +1431,8 @@ register_shellex(
|
||||
HKEY_LOCAL_MACHINE,
|
||||
"Software\\Vim\\Gvim",
|
||||
"path",
|
||||
exe_path);
|
||||
exe_path,
|
||||
flag);
|
||||
}
|
||||
}
|
||||
return lRet;
|
||||
@@ -1431,7 +1441,8 @@ register_shellex(
|
||||
static LONG
|
||||
register_openwith(
|
||||
HKEY hRootKey,
|
||||
const char *exe_path)
|
||||
const char *exe_path,
|
||||
DWORD flag)
|
||||
{
|
||||
char exe_cmd[BUFSIZE];
|
||||
LONG lRet;
|
||||
@@ -1441,7 +1452,8 @@ register_openwith(
|
||||
hRootKey,
|
||||
"Applications\\gvim.exe\\shell\\edit\\command",
|
||||
NULL,
|
||||
exe_cmd);
|
||||
exe_cmd,
|
||||
flag);
|
||||
|
||||
if (ERROR_SUCCESS == lRet)
|
||||
{
|
||||
@@ -1455,7 +1467,7 @@ register_openwith(
|
||||
for (i = 0; ERROR_SUCCESS == lRet
|
||||
&& i < sizeof(openwith) / sizeof(openwith[0]); i++)
|
||||
{
|
||||
lRet = reg_create_key_and_value(hRootKey, openwith[i], NULL, "");
|
||||
lRet = reg_create_key_and_value(hRootKey, openwith[i], NULL, "", flag);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1470,14 +1482,13 @@ register_uninstall(
|
||||
const char *uninstall_string)
|
||||
{
|
||||
LONG lRet = reg_create_key_and_value(hRootKey, appname,
|
||||
"DisplayName", display_name);
|
||||
"DisplayName", display_name, KEY_WOW64_64KEY);
|
||||
|
||||
if (ERROR_SUCCESS == lRet)
|
||||
lRet = reg_create_key_and_value(hRootKey, appname,
|
||||
"UninstallString", uninstall_string);
|
||||
"UninstallString", uninstall_string, KEY_WOW64_64KEY);
|
||||
return lRet;
|
||||
}
|
||||
#endif /* WIN3264 */
|
||||
|
||||
/*
|
||||
* Add some entries to the registry:
|
||||
@@ -1489,7 +1500,6 @@ register_uninstall(
|
||||
static int
|
||||
install_registry(void)
|
||||
{
|
||||
#ifdef WIN3264
|
||||
LONG lRet = ERROR_SUCCESS;
|
||||
const char *vim_ext_ThreadingModel = "Apartment";
|
||||
const char *vim_ext_name = "Vim Shell Extension";
|
||||
@@ -1497,40 +1507,59 @@ install_registry(void)
|
||||
char vim_exe_path[BUFSIZE];
|
||||
char display_name[BUFSIZE];
|
||||
char uninstall_string[BUFSIZE];
|
||||
int i;
|
||||
int loop_count = is_64bit_os() ? 2 : 1;
|
||||
DWORD flag;
|
||||
|
||||
sprintf(vim_exe_path, "%s\\gvim.exe", installdir);
|
||||
|
||||
if (install_popup)
|
||||
{
|
||||
char bufg[BUFSIZE];
|
||||
struct stat st;
|
||||
|
||||
if (stat("gvimext.dll", &st) >= 0)
|
||||
sprintf(bufg, "%s\\gvimext.dll", installdir);
|
||||
else
|
||||
/* gvimext.dll is in gvimext subdir */
|
||||
sprintf(bufg, "%s\\gvimext\\gvimext.dll", installdir);
|
||||
|
||||
printf("Creating \"Edit with Vim\" popup menu entry\n");
|
||||
|
||||
lRet = register_inproc_server(
|
||||
HKEY_CLASSES_ROOT, vim_ext_clsid, vim_ext_name,
|
||||
bufg, vim_ext_ThreadingModel);
|
||||
if (ERROR_SUCCESS != lRet)
|
||||
return FAIL;
|
||||
lRet = register_shellex(
|
||||
HKEY_CLASSES_ROOT, vim_ext_clsid, vim_ext_name, vim_exe_path);
|
||||
if (ERROR_SUCCESS != lRet)
|
||||
return FAIL;
|
||||
for (i = 0; i < loop_count; i++)
|
||||
{
|
||||
if (i == 0)
|
||||
{
|
||||
sprintf(bufg, "%s\\" GVIMEXT32_PATH, installdir);
|
||||
flag = KEY_WOW64_32KEY;
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf(bufg, "%s\\" GVIMEXT64_PATH, installdir);
|
||||
flag = KEY_WOW64_64KEY;
|
||||
}
|
||||
|
||||
lRet = register_inproc_server(
|
||||
HKEY_CLASSES_ROOT, vim_ext_clsid, vim_ext_name,
|
||||
bufg, vim_ext_ThreadingModel, flag);
|
||||
if (ERROR_SUCCESS != lRet)
|
||||
return FAIL;
|
||||
lRet = register_shellex(
|
||||
HKEY_CLASSES_ROOT, vim_ext_clsid, vim_ext_name,
|
||||
vim_exe_path, flag);
|
||||
if (ERROR_SUCCESS != lRet)
|
||||
return FAIL;
|
||||
}
|
||||
}
|
||||
|
||||
if (install_openwith)
|
||||
{
|
||||
printf("Creating \"Open with ...\" list entry\n");
|
||||
|
||||
lRet = register_openwith(HKEY_CLASSES_ROOT, vim_exe_path);
|
||||
if (ERROR_SUCCESS != lRet)
|
||||
return FAIL;
|
||||
for (i = 0; i < loop_count; i++)
|
||||
{
|
||||
if (i == 0)
|
||||
flag = KEY_WOW64_32KEY;
|
||||
else
|
||||
flag = KEY_WOW64_64KEY;
|
||||
|
||||
lRet = register_openwith(HKEY_CLASSES_ROOT, vim_exe_path, flag);
|
||||
if (ERROR_SUCCESS != lRet)
|
||||
return FAIL;
|
||||
}
|
||||
}
|
||||
|
||||
printf("Creating an uninstall entry\n");
|
||||
@@ -1554,7 +1583,6 @@ install_registry(void)
|
||||
uninstall_string);
|
||||
if (ERROR_SUCCESS != lRet)
|
||||
return FAIL;
|
||||
#endif /* WIN3264 */
|
||||
|
||||
return OK;
|
||||
}
|
||||
@@ -1584,12 +1612,8 @@ init_popup_choice(void)
|
||||
struct stat st;
|
||||
|
||||
if (has_gvim
|
||||
&& (stat("gvimext.dll", &st) >= 0
|
||||
|| stat("gvimext/gvimext.dll", &st) >= 0)
|
||||
#ifndef WIN3264
|
||||
&& searchpath("regedit.exe") != NULL
|
||||
#endif
|
||||
)
|
||||
&& (stat(GVIMEXT32_PATH, &st) >= 0
|
||||
|| stat(GVIMEXT64_PATH, &st) >= 0))
|
||||
{
|
||||
choices[choice_count].changefunc = change_popup_choice;
|
||||
choices[choice_count].installfunc = NULL;
|
||||
@@ -1623,11 +1647,7 @@ change_openwith_choice(int idx)
|
||||
static void
|
||||
init_openwith_choice(void)
|
||||
{
|
||||
if (has_gvim
|
||||
#ifndef WIN3264
|
||||
&& searchpath("regedit.exe") != NULL
|
||||
#endif
|
||||
)
|
||||
if (has_gvim)
|
||||
{
|
||||
choices[choice_count].changefunc = change_openwith_choice;
|
||||
choices[choice_count].installfunc = NULL;
|
||||
@@ -1639,7 +1659,6 @@ init_openwith_choice(void)
|
||||
add_dummy_choice();
|
||||
}
|
||||
|
||||
#ifdef WIN3264
|
||||
/* create_shortcut
|
||||
*
|
||||
* Create a shell link.
|
||||
@@ -1935,21 +1954,16 @@ toggle_shortcut_choice(int idx)
|
||||
alloc_text(idx, "Create a desktop icon for %s", arg);
|
||||
}
|
||||
}
|
||||
#endif /* WIN3264 */
|
||||
|
||||
static void
|
||||
init_startmenu_choice(void)
|
||||
{
|
||||
#ifdef WIN3264
|
||||
/* Start menu */
|
||||
choices[choice_count].changefunc = toggle_startmenu_choice;
|
||||
choices[choice_count].installfunc = NULL;
|
||||
choices[choice_count].active = 1;
|
||||
toggle_startmenu_choice(choice_count); /* set the text */
|
||||
++choice_count;
|
||||
#else
|
||||
add_dummy_choice();
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1958,7 +1972,6 @@ init_startmenu_choice(void)
|
||||
static void
|
||||
init_shortcut_choices(void)
|
||||
{
|
||||
#ifdef WIN3264
|
||||
/* Shortcut to gvim */
|
||||
choices[choice_count].text = NULL;
|
||||
choices[choice_count].arg = 0;
|
||||
@@ -1985,14 +1998,8 @@ init_shortcut_choices(void)
|
||||
choices[choice_count].installfunc = install_shortcut_gview;
|
||||
toggle_shortcut_choice(choice_count);
|
||||
++choice_count;
|
||||
#else
|
||||
add_dummy_choice();
|
||||
add_dummy_choice();
|
||||
add_dummy_choice();
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef WIN3264
|
||||
/*
|
||||
* Attempt to register OLE for Vim.
|
||||
*/
|
||||
@@ -2004,16 +2011,9 @@ install_OLE_register(void)
|
||||
printf("\n--- Attempting to register Vim with OLE ---\n");
|
||||
printf("(There is no message whether this works or not.)\n");
|
||||
|
||||
#ifndef __CYGWIN__
|
||||
sprintf(register_command_string, "\"%s\\gvim.exe\" -silent -register", installdir);
|
||||
#else
|
||||
/* handle this differently for Cygwin which sometimes has trouble with
|
||||
* Windows-style pathnames here. */
|
||||
sprintf(register_command_string, "./gvim.exe -silent -register");
|
||||
#endif
|
||||
system(register_command_string);
|
||||
}
|
||||
#endif /* WIN3264 */
|
||||
|
||||
/*
|
||||
* Remove the last part of directory "path[]" to get its parent, and put the
|
||||
@@ -2208,23 +2208,23 @@ 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");
|
||||
printf(" Add Vim to the \"Open With...\" context menu list\n");
|
||||
#ifdef WIN3264
|
||||
printf("-add-start-menu");
|
||||
printf(" Add Vim to the start menu\n");
|
||||
printf("-install-icons");
|
||||
printf(" Create icons for gVim executables on the desktop\n");
|
||||
#endif
|
||||
printf("-create-directories [vim|home]\n");
|
||||
printf(" Create runtime directories to drop plugins into; in the $VIM\n");
|
||||
printf(" or $HOME directory\n");
|
||||
#ifdef WIN3264
|
||||
printf("-register-OLE");
|
||||
printf(" Ignored\n");
|
||||
#endif
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
@@ -2267,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();
|
||||
@@ -2308,12 +2330,10 @@ command_line_setup_choices(int argc, char **argv)
|
||||
else /* No choice specified, default to vim directory */
|
||||
vimfiles_dir_choice = (int)vimfiles_dir_vim;
|
||||
}
|
||||
#ifdef WIN3264
|
||||
else if (strcmp(argv[i], "-register-OLE") == 0)
|
||||
{
|
||||
/* This is always done when gvim is found */
|
||||
}
|
||||
#endif
|
||||
else /* Unknown switch */
|
||||
{
|
||||
printf("Got unknown argument argv[%d] = %s\n", i, argv[i]);
|
||||
@@ -2433,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);
|
||||
@@ -2471,11 +2490,9 @@ install(void)
|
||||
|| !interactive)
|
||||
install_registry();
|
||||
|
||||
#ifdef WIN3264
|
||||
/* Register gvim with OLE. */
|
||||
if (has_gvim)
|
||||
install_OLE_register();
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -2511,7 +2528,6 @@ main(int argc, char **argv)
|
||||
/* Initialize this program. */
|
||||
do_inits(argv);
|
||||
|
||||
#ifdef WIN3264
|
||||
if (argc > 1 && strcmp(argv[1], "-uninstall-check") == 0)
|
||||
{
|
||||
/* Only check for already installed Vims. Used by NSIS installer. */
|
||||
@@ -2527,7 +2543,6 @@ main(int argc, char **argv)
|
||||
sleep(3);
|
||||
exit(0);
|
||||
}
|
||||
#endif
|
||||
|
||||
printf("This program sets up the installation of Vim "
|
||||
VIM_VERSION_MEDIUM "\n\n");
|
||||
@@ -2535,11 +2550,9 @@ main(int argc, char **argv)
|
||||
/* Check if the user unpacked the archives properly. */
|
||||
check_unpack();
|
||||
|
||||
#ifdef WIN3264
|
||||
/* Check for already installed Vims. */
|
||||
if (interactive)
|
||||
uninstall_check(0);
|
||||
#endif
|
||||
|
||||
/* Find out information about the system. */
|
||||
inspect_system();
|
||||
|
||||
+35
-160
@@ -26,19 +26,10 @@
|
||||
# include "vimio.h"
|
||||
# include <ctype.h>
|
||||
|
||||
# ifndef __CYGWIN__
|
||||
# include <direct.h>
|
||||
# endif
|
||||
# include <direct.h>
|
||||
|
||||
# if defined(_WIN64) || defined(WIN32)
|
||||
# define WIN3264
|
||||
# include <windows.h>
|
||||
# include <shlobj.h>
|
||||
# else
|
||||
# include <dir.h>
|
||||
# include <bios.h>
|
||||
# include <dos.h>
|
||||
# endif
|
||||
# include <windows.h>
|
||||
# include <shlobj.h>
|
||||
#endif
|
||||
|
||||
#ifdef UNIX_LINT
|
||||
@@ -56,7 +47,7 @@ char *searchpath(char *name);
|
||||
#if defined(UNIX_LINT)
|
||||
# define vim_mkdir(x, y) mkdir((char *)(x), y)
|
||||
#else
|
||||
# if defined(WIN3264) && !defined(__BORLANDC__)
|
||||
# ifndef __BORLANDC__
|
||||
# define vim_mkdir(x, y) _mkdir((char *)(x))
|
||||
# else
|
||||
# define vim_mkdir(x, y) mkdir((char *)(x))
|
||||
@@ -88,6 +79,9 @@ char *searchpath(char *name);
|
||||
# ifndef KEY_WOW64_64KEY
|
||||
# define KEY_WOW64_64KEY 0x0100
|
||||
# endif
|
||||
# ifndef KEY_WOW64_32KEY
|
||||
# define KEY_WOW64_32KEY 0x0200
|
||||
# endif
|
||||
|
||||
#define VIM_STARTMENU "Programs\\Vim " VIM_VERSION_SHORT
|
||||
|
||||
@@ -134,40 +128,32 @@ myexit(int n)
|
||||
exit(n);
|
||||
}
|
||||
|
||||
#ifdef WIN3264
|
||||
/* This symbol is not defined in older versions of the SDK or Visual C++ */
|
||||
|
||||
#ifndef VER_PLATFORM_WIN32_WINDOWS
|
||||
# define VER_PLATFORM_WIN32_WINDOWS 1
|
||||
#endif
|
||||
|
||||
static DWORD g_PlatformId;
|
||||
|
||||
typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS)(HANDLE, PBOOL);
|
||||
/*
|
||||
* Set g_PlatformId to VER_PLATFORM_WIN32_NT (NT) or
|
||||
* VER_PLATFORM_WIN32_WINDOWS (Win95).
|
||||
* Check if this is a 64-bit OS.
|
||||
*/
|
||||
static void
|
||||
PlatformId(void)
|
||||
static BOOL
|
||||
is_64bit_os(void)
|
||||
{
|
||||
static int done = FALSE;
|
||||
#ifdef _WIN64
|
||||
return TRUE;
|
||||
#else
|
||||
BOOL bIsWow64 = FALSE;
|
||||
LPFN_ISWOW64PROCESS pIsWow64Process;
|
||||
|
||||
if (!done)
|
||||
{
|
||||
OSVERSIONINFO ovi;
|
||||
|
||||
ovi.dwOSVersionInfoSize = sizeof(ovi);
|
||||
GetVersionEx(&ovi);
|
||||
|
||||
g_PlatformId = ovi.dwPlatformId;
|
||||
done = TRUE;
|
||||
}
|
||||
pIsWow64Process = (LPFN_ISWOW64PROCESS)GetProcAddress(
|
||||
GetModuleHandle("kernel32"), "IsWow64Process");
|
||||
if (pIsWow64Process != NULL)
|
||||
pIsWow64Process(GetCurrentProcess(), &bIsWow64);
|
||||
return bIsWow64;
|
||||
#endif
|
||||
}
|
||||
|
||||
# ifdef __BORLANDC__
|
||||
#ifdef __BORLANDC__
|
||||
/* Borland defines its own searchpath() in dir.h */
|
||||
# include <dir.h>
|
||||
# else
|
||||
# include <dir.h>
|
||||
#else
|
||||
static char *
|
||||
searchpath(char *name)
|
||||
{
|
||||
@@ -176,28 +162,17 @@ searchpath(char *name)
|
||||
|
||||
/* There appears to be a bug in FindExecutableA() on Windows NT.
|
||||
* Use FindExecutableW() instead... */
|
||||
PlatformId();
|
||||
if (g_PlatformId == VER_PLATFORM_WIN32_NT)
|
||||
MultiByteToWideChar(CP_ACP, 0, (LPCTSTR)name, -1,
|
||||
(LPWSTR)widename, BUFSIZE);
|
||||
if (FindExecutableW((LPCWSTR)widename, (LPCWSTR)"",
|
||||
(LPWSTR)location) > (HINSTANCE)32)
|
||||
{
|
||||
MultiByteToWideChar(CP_ACP, 0, (LPCTSTR)name, -1,
|
||||
(LPWSTR)widename, BUFSIZE);
|
||||
if (FindExecutableW((LPCWSTR)widename, (LPCWSTR)"",
|
||||
(LPWSTR)location) > (HINSTANCE)32)
|
||||
{
|
||||
WideCharToMultiByte(CP_ACP, 0, (LPWSTR)location, -1,
|
||||
(LPSTR)widename, 2 * BUFSIZE, NULL, NULL);
|
||||
return widename;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (FindExecutableA((LPCTSTR)name, (LPCTSTR)"",
|
||||
(LPTSTR)location) > (HINSTANCE)32)
|
||||
return location;
|
||||
WideCharToMultiByte(CP_ACP, 0, (LPWSTR)location, -1,
|
||||
(LPSTR)widename, 2 * BUFSIZE, NULL, NULL);
|
||||
return widename;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
@@ -217,7 +192,6 @@ searchpath_save(char *name)
|
||||
return s;
|
||||
}
|
||||
|
||||
#ifdef WIN3264
|
||||
|
||||
#ifndef CSIDL_COMMON_PROGRAMS
|
||||
# define CSIDL_COMMON_PROGRAMS 0x0017
|
||||
@@ -355,7 +329,6 @@ retry:
|
||||
|
||||
return OK;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* List of targets. The first one (index zero) is used for the default path
|
||||
@@ -406,10 +379,8 @@ char *(icon_link_names[ICON_COUNT]) =
|
||||
"gVim Easy " VIM_VERSION_SHORT ".lnk",
|
||||
"gVim Read only " VIM_VERSION_SHORT ".lnk"};
|
||||
|
||||
/* This is only used for dosinst.c when WIN3264 is defined and for uninstal.c
|
||||
* when not being able to directly access registry entries. */
|
||||
#if (defined(DOSINST) && defined(WIN3264)) \
|
||||
|| (!defined(DOSINST) && !defined(WIN3264))
|
||||
/* This is only used for dosinst.c. */
|
||||
#if defined(DOSINST)
|
||||
/*
|
||||
* Run an external command and wait for it to finish.
|
||||
*/
|
||||
@@ -464,24 +435,9 @@ add_pathsep(char *name)
|
||||
int
|
||||
change_drive(int drive)
|
||||
{
|
||||
#ifdef WIN3264
|
||||
char temp[3] = "-:";
|
||||
temp[0] = (char)(drive + 'A' - 1);
|
||||
return !SetCurrentDirectory(temp);
|
||||
#else
|
||||
# ifndef UNIX_LINT
|
||||
union REGS regs;
|
||||
|
||||
regs.h.ah = 0x0e;
|
||||
regs.h.dl = drive - 1;
|
||||
intdos(®s, ®s); /* set default drive */
|
||||
regs.h.ah = 0x19;
|
||||
intdos(®s, ®s); /* get default drive */
|
||||
if (regs.h.al == drive - 1)
|
||||
return 0;
|
||||
# endif
|
||||
return -1;
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -507,7 +463,7 @@ mch_chdir(char *path)
|
||||
/*
|
||||
* Expand the executable name into a full path name.
|
||||
*/
|
||||
#if defined(__BORLANDC__) && !defined(WIN3264)
|
||||
#if defined(__BORLANDC__)
|
||||
|
||||
/* Only Borland C++ has this. */
|
||||
# define my_fullpath(b, n, l) _fullpath(b, n, l)
|
||||
@@ -516,92 +472,11 @@ mch_chdir(char *path)
|
||||
static char *
|
||||
my_fullpath(char *buf, char *fname, int len)
|
||||
{
|
||||
# ifdef WIN3264
|
||||
/* Only GetModuleFileName() will get the long file name path.
|
||||
* GetFullPathName() may still use the short (FAT) name. */
|
||||
DWORD len_read = GetModuleFileName(NULL, buf, (size_t)len);
|
||||
|
||||
return (len_read > 0 && len_read < (DWORD)len) ? buf : NULL;
|
||||
# else
|
||||
char olddir[BUFSIZE];
|
||||
char *p, *q;
|
||||
int c;
|
||||
char *retval = buf;
|
||||
|
||||
if (strchr(fname, ':') != NULL) /* already expanded */
|
||||
{
|
||||
strncpy(buf, fname, len);
|
||||
}
|
||||
else
|
||||
{
|
||||
*buf = NUL;
|
||||
/*
|
||||
* change to the directory for a moment,
|
||||
* and then do the getwd() (and get back to where we were).
|
||||
* This will get the correct path name with "../" things.
|
||||
*/
|
||||
p = strrchr(fname, '/');
|
||||
q = strrchr(fname, '\\');
|
||||
if (q != NULL && (p == NULL || q > p))
|
||||
p = q;
|
||||
q = strrchr(fname, ':');
|
||||
if (q != NULL && (p == NULL || q > p))
|
||||
p = q;
|
||||
if (p != NULL)
|
||||
{
|
||||
if (getcwd(olddir, BUFSIZE) == NULL)
|
||||
{
|
||||
p = NULL; /* can't get current dir: don't chdir */
|
||||
retval = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (p == fname) /* /fname */
|
||||
q = p + 1; /* -> / */
|
||||
else if (q + 1 == p) /* ... c:\foo */
|
||||
q = p + 1; /* -> c:\ */
|
||||
else /* but c:\foo\bar */
|
||||
q = p; /* -> c:\foo */
|
||||
|
||||
c = *q; /* truncate at start of fname */
|
||||
*q = NUL;
|
||||
if (mch_chdir(fname)) /* change to the directory */
|
||||
retval = NULL;
|
||||
else
|
||||
{
|
||||
fname = q;
|
||||
if (c == '\\') /* if we cut the name at a */
|
||||
fname++; /* '\', don't add it again */
|
||||
}
|
||||
*q = c;
|
||||
}
|
||||
}
|
||||
if (getcwd(buf, len) == NULL)
|
||||
{
|
||||
retval = NULL;
|
||||
*buf = NUL;
|
||||
}
|
||||
/*
|
||||
* Concatenate the file name to the path.
|
||||
*/
|
||||
if (strlen(buf) + strlen(fname) >= len - 1)
|
||||
{
|
||||
printf("ERROR: File name too long!\n");
|
||||
myexit(1);
|
||||
}
|
||||
add_pathsep(buf);
|
||||
strcat(buf, fname);
|
||||
if (p)
|
||||
mch_chdir(olddir);
|
||||
}
|
||||
|
||||
/* Replace forward slashes with backslashes, required for the path to a
|
||||
* command. */
|
||||
while ((p = strchr(buf, '/')) != NULL)
|
||||
*p = '\\';
|
||||
|
||||
return retval;
|
||||
# endif
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
+6
-3
@@ -984,7 +984,7 @@ edit(
|
||||
case ESC: /* End input mode */
|
||||
if (echeck_abbr(ESC + ABBR_OFF))
|
||||
break;
|
||||
/*FALLTHROUGH*/
|
||||
/* FALLTHROUGH */
|
||||
|
||||
case Ctrl_C: /* End input mode */
|
||||
#ifdef FEAT_CMDWIN
|
||||
@@ -5788,13 +5788,16 @@ quote_meta(char_u *dest, char_u *src, int len)
|
||||
if (ctrl_x_mode == CTRL_X_DICTIONARY
|
||||
|| ctrl_x_mode == CTRL_X_THESAURUS)
|
||||
break;
|
||||
/* FALLTHROUGH */
|
||||
case '~':
|
||||
if (!p_magic) /* quote these only if magic is set */
|
||||
break;
|
||||
/* FALLTHROUGH */
|
||||
case '\\':
|
||||
if (ctrl_x_mode == CTRL_X_DICTIONARY
|
||||
|| ctrl_x_mode == CTRL_X_THESAURUS)
|
||||
break;
|
||||
/* FALLTHROUGH */
|
||||
case '^': /* currently it's not needed. */
|
||||
case '$':
|
||||
m++;
|
||||
@@ -5988,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;
|
||||
@@ -8767,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:
|
||||
|
||||
+76
-37
@@ -187,7 +187,8 @@ static struct vimvar
|
||||
{VV_NAME("t_none", VAR_NUMBER), VV_RO},
|
||||
{VV_NAME("t_job", VAR_NUMBER), VV_RO},
|
||||
{VV_NAME("t_channel", VAR_NUMBER), VV_RO},
|
||||
{VV_NAME("termrgbresp", VAR_STRING), VV_RO},
|
||||
{VV_NAME("termrfgresp", VAR_STRING), VV_RO},
|
||||
{VV_NAME("termrbgresp", VAR_STRING), VV_RO},
|
||||
{VV_NAME("termu7resp", VAR_STRING), VV_RO},
|
||||
{VV_NAME("termstyleresp", VAR_STRING), VV_RO},
|
||||
{VV_NAME("termblinkresp", VAR_STRING), VV_RO},
|
||||
@@ -695,6 +696,70 @@ eval_to_bool(
|
||||
return (int)retval;
|
||||
}
|
||||
|
||||
static int
|
||||
eval_expr_typval(typval_T *expr, typval_T *argv, int argc, typval_T *rettv)
|
||||
{
|
||||
char_u *s;
|
||||
int dummy;
|
||||
char_u buf[NUMBUFLEN];
|
||||
|
||||
if (expr->v_type == VAR_FUNC)
|
||||
{
|
||||
s = expr->vval.v_string;
|
||||
if (s == NULL || *s == NUL)
|
||||
return FAIL;
|
||||
if (call_func(s, (int)STRLEN(s), rettv, argc, argv, NULL,
|
||||
0L, 0L, &dummy, TRUE, NULL, NULL) == FAIL)
|
||||
return FAIL;
|
||||
}
|
||||
else if (expr->v_type == VAR_PARTIAL)
|
||||
{
|
||||
partial_T *partial = expr->vval.v_partial;
|
||||
|
||||
s = partial_name(partial);
|
||||
if (s == NULL || *s == NUL)
|
||||
return FAIL;
|
||||
if (call_func(s, (int)STRLEN(s), rettv, argc, argv, NULL,
|
||||
0L, 0L, &dummy, TRUE, partial, NULL) == FAIL)
|
||||
return FAIL;
|
||||
}
|
||||
else
|
||||
{
|
||||
s = get_tv_string_buf_chk(expr, buf);
|
||||
if (s == NULL)
|
||||
return FAIL;
|
||||
s = skipwhite(s);
|
||||
if (eval1(&s, rettv, TRUE) == FAIL)
|
||||
return FAIL;
|
||||
if (*s != NUL) /* check for trailing chars after expr */
|
||||
{
|
||||
EMSG2(_(e_invexpr2), s);
|
||||
return FAIL;
|
||||
}
|
||||
}
|
||||
return OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* Like eval_to_bool() but using a typval_T instead of a string.
|
||||
* Works for string, funcref and partial.
|
||||
*/
|
||||
int
|
||||
eval_expr_to_bool(typval_T *expr, int *error)
|
||||
{
|
||||
typval_T rettv;
|
||||
int res;
|
||||
|
||||
if (eval_expr_typval(expr, NULL, 0, &rettv) == FAIL)
|
||||
{
|
||||
*error = TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
res = (get_tv_number_chk(&rettv, error) != 0);
|
||||
clear_tv(&rettv);
|
||||
return res;
|
||||
}
|
||||
|
||||
/*
|
||||
* Top level evaluation function, returning a string. If "skip" is TRUE,
|
||||
* only parsing to "nextcmd" is done, without reporting errors. Return
|
||||
@@ -991,8 +1056,13 @@ call_vim_function(
|
||||
if (str_arg_only)
|
||||
len = 0;
|
||||
else
|
||||
/* Recognize a number argument, the others must be strings. */
|
||||
{
|
||||
/* Recognize a number argument, the others must be strings. A dash
|
||||
* is a string too. */
|
||||
vim_str2nr(argv[i], NULL, &len, STR2NR_ALL, &n, NULL, 0);
|
||||
if (len == 1 && *argv[i] == '-')
|
||||
len = 0;
|
||||
}
|
||||
if (len != 0 && len == (int)STRLEN(argv[i]))
|
||||
{
|
||||
argvars[i].v_type = VAR_NUMBER;
|
||||
@@ -6994,7 +7064,7 @@ free_tv(typval_T *varp)
|
||||
{
|
||||
case VAR_FUNC:
|
||||
func_unref(varp->vval.v_string);
|
||||
/*FALLTHROUGH*/
|
||||
/* FALLTHROUGH */
|
||||
case VAR_STRING:
|
||||
vim_free(varp->vval.v_string);
|
||||
break;
|
||||
@@ -7039,7 +7109,7 @@ clear_tv(typval_T *varp)
|
||||
{
|
||||
case VAR_FUNC:
|
||||
func_unref(varp->vval.v_string);
|
||||
/*FALLTHROUGH*/
|
||||
/* FALLTHROUGH */
|
||||
case VAR_STRING:
|
||||
vim_free(varp->vval.v_string);
|
||||
varp->vval.v_string = NULL;
|
||||
@@ -9970,44 +10040,13 @@ filter_map_one(typval_T *tv, typval_T *expr, int map, int *remp)
|
||||
{
|
||||
typval_T rettv;
|
||||
typval_T argv[3];
|
||||
char_u buf[NUMBUFLEN];
|
||||
char_u *s;
|
||||
int retval = FAIL;
|
||||
int dummy;
|
||||
|
||||
copy_tv(tv, &vimvars[VV_VAL].vv_tv);
|
||||
argv[0] = vimvars[VV_KEY].vv_tv;
|
||||
argv[1] = vimvars[VV_VAL].vv_tv;
|
||||
if (expr->v_type == VAR_FUNC)
|
||||
{
|
||||
s = expr->vval.v_string;
|
||||
if (call_func(s, (int)STRLEN(s), &rettv, 2, argv, NULL,
|
||||
0L, 0L, &dummy, TRUE, NULL, NULL) == FAIL)
|
||||
goto theend;
|
||||
}
|
||||
else if (expr->v_type == VAR_PARTIAL)
|
||||
{
|
||||
partial_T *partial = expr->vval.v_partial;
|
||||
|
||||
s = partial_name(partial);
|
||||
if (call_func(s, (int)STRLEN(s), &rettv, 2, argv, NULL,
|
||||
0L, 0L, &dummy, TRUE, partial, NULL) == FAIL)
|
||||
goto theend;
|
||||
}
|
||||
else
|
||||
{
|
||||
s = get_tv_string_buf_chk(expr, buf);
|
||||
if (s == NULL)
|
||||
goto theend;
|
||||
s = skipwhite(s);
|
||||
if (eval1(&s, &rettv, TRUE) == FAIL)
|
||||
goto theend;
|
||||
if (*s != NUL) /* check for trailing chars after expr */
|
||||
{
|
||||
EMSG2(_(e_invexpr2), s);
|
||||
goto theend;
|
||||
}
|
||||
}
|
||||
if (eval_expr_typval(expr, argv, 2, &rettv) == FAIL)
|
||||
goto theend;
|
||||
if (map)
|
||||
{
|
||||
/* map(): replace the list item value */
|
||||
|
||||
+30
-18
@@ -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",
|
||||
@@ -9559,13 +9558,12 @@ f_searchdecl(typval_T *argvars, typval_T *rettv)
|
||||
searchpair_cmn(typval_T *argvars, pos_T *match_pos)
|
||||
{
|
||||
char_u *spat, *mpat, *epat;
|
||||
char_u *skip;
|
||||
typval_T *skip;
|
||||
int save_p_ws = p_ws;
|
||||
int dir;
|
||||
int flags = 0;
|
||||
char_u nbuf1[NUMBUFLEN];
|
||||
char_u nbuf2[NUMBUFLEN];
|
||||
char_u nbuf3[NUMBUFLEN];
|
||||
int retval = 0; /* default: FAIL */
|
||||
long lnum_stop = 0;
|
||||
long time_limit = 0;
|
||||
@@ -9599,10 +9597,16 @@ searchpair_cmn(typval_T *argvars, pos_T *match_pos)
|
||||
/* Optional fifth argument: skip expression */
|
||||
if (argvars[3].v_type == VAR_UNKNOWN
|
||||
|| argvars[4].v_type == VAR_UNKNOWN)
|
||||
skip = (char_u *)"";
|
||||
skip = NULL;
|
||||
else
|
||||
{
|
||||
skip = get_tv_string_buf_chk(&argvars[4], nbuf3);
|
||||
skip = &argvars[4];
|
||||
if (skip->v_type != VAR_FUNC && skip->v_type != VAR_PARTIAL
|
||||
&& skip->v_type != VAR_STRING)
|
||||
{
|
||||
/* Type error */
|
||||
goto theend;
|
||||
}
|
||||
if (argvars[5].v_type != VAR_UNKNOWN)
|
||||
{
|
||||
lnum_stop = (long)get_tv_number_chk(&argvars[5], NULL);
|
||||
@@ -9618,8 +9622,6 @@ searchpair_cmn(typval_T *argvars, pos_T *match_pos)
|
||||
#endif
|
||||
}
|
||||
}
|
||||
if (skip == NULL)
|
||||
goto theend; /* type error */
|
||||
|
||||
retval = do_searchpair(spat, mpat, epat, dir, skip, flags,
|
||||
match_pos, lnum_stop, time_limit);
|
||||
@@ -9673,7 +9675,7 @@ do_searchpair(
|
||||
char_u *mpat, /* middle pattern */
|
||||
char_u *epat, /* end pattern */
|
||||
int dir, /* BACKWARD or FORWARD */
|
||||
char_u *skip, /* skip expression */
|
||||
typval_T *skip, /* skip expression */
|
||||
int flags, /* SP_SETPCMARK and other SP_ values */
|
||||
pos_T *match_pos,
|
||||
linenr_T lnum_stop, /* stop at this line if not zero */
|
||||
@@ -9690,6 +9692,7 @@ do_searchpair(
|
||||
int n;
|
||||
int r;
|
||||
int nest = 1;
|
||||
int use_skip = FALSE;
|
||||
int err;
|
||||
int options = SEARCH_KEEP;
|
||||
proftime_T tm;
|
||||
@@ -9718,6 +9721,14 @@ do_searchpair(
|
||||
if (flags & SP_START)
|
||||
options |= SEARCH_START;
|
||||
|
||||
if (skip != NULL)
|
||||
{
|
||||
/* Empty string means to not use the skip expression. */
|
||||
if (skip->v_type == VAR_STRING || skip->v_type == VAR_FUNC)
|
||||
use_skip = skip->vval.v_string != NULL
|
||||
&& *skip->vval.v_string != NUL;
|
||||
}
|
||||
|
||||
save_cursor = curwin->w_cursor;
|
||||
pos = curwin->w_cursor;
|
||||
CLEAR_POS(&firstpos);
|
||||
@@ -9749,11 +9760,12 @@ do_searchpair(
|
||||
options &= ~SEARCH_START;
|
||||
|
||||
/* If the skip pattern matches, ignore this match. */
|
||||
if (*skip != NUL)
|
||||
if (use_skip)
|
||||
{
|
||||
save_pos = curwin->w_cursor;
|
||||
curwin->w_cursor = pos;
|
||||
r = eval_to_bool(skip, &err, NULL, FALSE);
|
||||
err = FALSE;
|
||||
r = eval_expr_to_bool(skip, &err);
|
||||
curwin->w_cursor = save_pos;
|
||||
if (err)
|
||||
{
|
||||
|
||||
+2
-1
@@ -3002,6 +3002,7 @@ ex_file(exarg_T *eap)
|
||||
/* print full file name if :cd used */
|
||||
if (!shortmess(SHM_FILEINFO))
|
||||
fileinfo(FALSE, FALSE, eap->forceit);
|
||||
redraw_tabline = TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -3400,7 +3401,7 @@ do_wqall(exarg_T *eap)
|
||||
|
||||
FOR_ALL_BUFFERS(buf)
|
||||
{
|
||||
if (bufIsChanged(buf))
|
||||
if (bufIsChanged(buf) && !bt_dontwrite(buf))
|
||||
{
|
||||
/*
|
||||
* Check if there is a reason the buffer cannot be written:
|
||||
|
||||
+32
-27
@@ -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;
|
||||
@@ -1714,7 +1716,7 @@ script_do_profile(scriptitem_T *si)
|
||||
}
|
||||
|
||||
/*
|
||||
* save time when starting to invoke another script or function.
|
||||
* Save time when starting to invoke another script or function.
|
||||
*/
|
||||
void
|
||||
script_prof_save(
|
||||
@@ -1805,12 +1807,14 @@ script_dump_profile(FILE *fd)
|
||||
fprintf(fd, "Cannot open file!\n");
|
||||
else
|
||||
{
|
||||
for (i = 0; i < si->sn_prl_ga.ga_len; ++i)
|
||||
/* Keep going till the end of file, so that trailing
|
||||
* continuation lines are listed. */
|
||||
for (i = 0; ; ++i)
|
||||
{
|
||||
if (vim_fgets(IObuff, IOSIZE, sfd))
|
||||
break;
|
||||
pp = &PRL_ITEM(si, i);
|
||||
if (pp->snp_count > 0)
|
||||
if (i < si->sn_prl_ga.ga_len
|
||||
&& (pp = &PRL_ITEM(si, i))->snp_count > 0)
|
||||
{
|
||||
fprintf(fd, "%5d ", pp->snp_count);
|
||||
if (profile_equal(&pp->sn_prl_total, &pp->sn_prl_self))
|
||||
@@ -4307,27 +4311,6 @@ do_source(
|
||||
save_sourcing_lnum = sourcing_lnum;
|
||||
sourcing_lnum = 0;
|
||||
|
||||
#ifdef FEAT_MBYTE
|
||||
cookie.conv.vc_type = CONV_NONE; /* no conversion */
|
||||
|
||||
/* Read the first line so we can check for a UTF-8 BOM. */
|
||||
firstline = getsourceline(0, (void *)&cookie, 0);
|
||||
if (firstline != NULL && STRLEN(firstline) >= 3 && firstline[0] == 0xef
|
||||
&& firstline[1] == 0xbb && firstline[2] == 0xbf)
|
||||
{
|
||||
/* Found BOM; setup conversion, skip over BOM and recode the line. */
|
||||
convert_setup(&cookie.conv, (char_u *)"utf-8", p_enc);
|
||||
p = string_convert(&cookie.conv, firstline + 3, NULL);
|
||||
if (p == NULL)
|
||||
p = vim_strsave(firstline + 3);
|
||||
if (p != NULL)
|
||||
{
|
||||
vim_free(firstline);
|
||||
firstline = p;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef STARTUPTIME
|
||||
if (time_fd != NULL)
|
||||
time_push(&tv_rel, &tv_start);
|
||||
@@ -4420,6 +4403,27 @@ do_source(
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef FEAT_MBYTE
|
||||
cookie.conv.vc_type = CONV_NONE; /* no conversion */
|
||||
|
||||
/* Read the first line so we can check for a UTF-8 BOM. */
|
||||
firstline = getsourceline(0, (void *)&cookie, 0);
|
||||
if (firstline != NULL && STRLEN(firstline) >= 3 && firstline[0] == 0xef
|
||||
&& firstline[1] == 0xbb && firstline[2] == 0xbf)
|
||||
{
|
||||
/* Found BOM; setup conversion, skip over BOM and recode the line. */
|
||||
convert_setup(&cookie.conv, (char_u *)"utf-8", p_enc);
|
||||
p = string_convert(&cookie.conv, firstline + 3, NULL);
|
||||
if (p == NULL)
|
||||
p = vim_strsave(firstline + 3);
|
||||
if (p != NULL)
|
||||
{
|
||||
vim_free(firstline);
|
||||
firstline = p;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Call do_cmdline, which will call getsourceline() to get the lines.
|
||||
*/
|
||||
@@ -4902,7 +4906,8 @@ script_line_start(void)
|
||||
{
|
||||
/* Grow the array before starting the timer, so that the time spent
|
||||
* here isn't counted. */
|
||||
(void)ga_grow(&si->sn_prl_ga, (int)(sourcing_lnum - si->sn_prl_ga.ga_len));
|
||||
(void)ga_grow(&si->sn_prl_ga,
|
||||
(int)(sourcing_lnum - si->sn_prl_ga.ga_len));
|
||||
si->sn_prl_idx = sourcing_lnum - 1;
|
||||
while (si->sn_prl_ga.ga_len <= si->sn_prl_idx
|
||||
&& si->sn_prl_ga.ga_len < si->sn_prl_ga.ga_maxlen)
|
||||
@@ -4937,7 +4942,7 @@ script_line_exec(void)
|
||||
}
|
||||
|
||||
/*
|
||||
* Called when done with a function line.
|
||||
* Called when done with a script line.
|
||||
*/
|
||||
void
|
||||
script_line_end(void)
|
||||
|
||||
+19
-31
@@ -4122,7 +4122,7 @@ set_one_cmd_context(
|
||||
case CMD_bunload:
|
||||
while ((xp->xp_pattern = vim_strchr(arg, ' ')) != NULL)
|
||||
arg = xp->xp_pattern + 1;
|
||||
/*FALLTHROUGH*/
|
||||
/* FALLTHROUGH */
|
||||
case CMD_buffer:
|
||||
case CMD_sbuffer:
|
||||
case CMD_checktime:
|
||||
@@ -5102,29 +5102,6 @@ expand_filename(
|
||||
{
|
||||
if (n == 2)
|
||||
{
|
||||
#ifdef UNIX
|
||||
/*
|
||||
* Only for Unix we check for more than one file name.
|
||||
* For other systems spaces are considered to be part
|
||||
* of the file name.
|
||||
* Only check here if there is no wildcard, otherwise
|
||||
* ExpandOne() will check for errors. This allows
|
||||
* ":e `ls ve*.c`" on Unix.
|
||||
*/
|
||||
if (!has_wildcards)
|
||||
for (p = eap->arg; *p; ++p)
|
||||
{
|
||||
/* skip escaped characters */
|
||||
if (p[1] && (*p == '\\' || *p == Ctrl_V))
|
||||
++p;
|
||||
else if (VIM_ISWHITE(*p))
|
||||
{
|
||||
*errormsgp = (char_u *)_("E172: Only one file name allowed");
|
||||
return FAIL;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Halve the number of backslashes (this is Vi compatible).
|
||||
* For Unix and OS/2, when wildcards are expanded, this is
|
||||
@@ -7264,10 +7241,14 @@ ex_quit(exarg_T *eap)
|
||||
wp = curwin;
|
||||
|
||||
#ifdef FEAT_AUTOCMD
|
||||
apply_autocmds(EVENT_QUITPRE, NULL, NULL, FALSE, curbuf);
|
||||
/* Refuse to quit when locked or when the buffer in the last window is
|
||||
* being closed (can only happen in autocommands). */
|
||||
if (curbuf_locked() || !win_valid(wp)
|
||||
/* Refuse to quit when locked. */
|
||||
if (curbuf_locked())
|
||||
return;
|
||||
apply_autocmds(EVENT_QUITPRE, NULL, NULL, FALSE, wp->w_buffer);
|
||||
/* Bail out when autocommands closed the window.
|
||||
* Refuse to quit when the buffer in the last window is being closed (can
|
||||
* only happen in autocommands). */
|
||||
if (!win_valid(wp)
|
||||
|| (wp->w_buffer->b_nwindows == 1 && wp->w_buffer->b_locked > 0))
|
||||
return;
|
||||
#endif
|
||||
@@ -7281,8 +7262,8 @@ ex_quit(exarg_T *eap)
|
||||
*/
|
||||
if (check_more(FALSE, eap->forceit) == OK && only_one_window())
|
||||
exiting = TRUE;
|
||||
if ((!buf_hide(curbuf)
|
||||
&& check_changed(curbuf, (p_awa ? CCGD_AW : 0)
|
||||
if ((!buf_hide(wp->w_buffer)
|
||||
&& check_changed(wp->w_buffer, (p_awa ? CCGD_AW : 0)
|
||||
| (eap->forceit ? CCGD_FORCEIT : 0)
|
||||
| CCGD_EXCMD))
|
||||
|| check_more(TRUE, eap->forceit) == FAIL
|
||||
@@ -7301,6 +7282,7 @@ ex_quit(exarg_T *eap)
|
||||
*/
|
||||
if (only_one_window() && (ONE_WINDOW || eap->addr_count == 0))
|
||||
getout(0);
|
||||
not_exiting();
|
||||
#ifdef FEAT_GUI
|
||||
need_mouse_correct = TRUE;
|
||||
#endif
|
||||
@@ -7839,6 +7821,7 @@ ex_exit(exarg_T *eap)
|
||||
{
|
||||
if (only_one_window()) /* quit last window, exit Vim */
|
||||
getout(0);
|
||||
not_exiting();
|
||||
# ifdef FEAT_GUI
|
||||
need_mouse_correct = TRUE;
|
||||
# endif
|
||||
@@ -10759,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)
|
||||
{
|
||||
@@ -10784,6 +10770,8 @@ eval_vars(
|
||||
}
|
||||
else
|
||||
{
|
||||
if (i == 0 && src[1] == '<' && *usedlen > 1)
|
||||
*usedlen = 1;
|
||||
buf = buflist_findnr(i);
|
||||
if (buf == NULL)
|
||||
{
|
||||
|
||||
+69
-24
@@ -145,6 +145,33 @@ sort_func_compare(const void *s1, const void *s2);
|
||||
static void set_search_match(pos_T *t);
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef FEAT_AUTOCMD
|
||||
static void
|
||||
trigger_cmd_autocmd(int typechar, int evt)
|
||||
{
|
||||
char_u typestr[2];
|
||||
|
||||
typestr[0] = typechar;
|
||||
typestr[1] = NUL;
|
||||
apply_autocmds(evt, typestr, typestr, FALSE, curbuf);
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Abandon the command line.
|
||||
*/
|
||||
static void
|
||||
abandon_cmdline(void)
|
||||
{
|
||||
vim_free(ccline.cmdbuff);
|
||||
ccline.cmdbuff = NULL;
|
||||
if (msg_scrolled == 0)
|
||||
compute_cmdrow();
|
||||
MSG("");
|
||||
redraw_cmdline = TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
* getcmdline() - accept a command line starting with firstc.
|
||||
*
|
||||
@@ -222,6 +249,9 @@ getcmdline(
|
||||
* custom status line may invoke ":normal". */
|
||||
struct cmdline_info save_ccline;
|
||||
#endif
|
||||
#ifdef FEAT_AUTOCMD
|
||||
int cmdline_type;
|
||||
#endif
|
||||
|
||||
#ifdef FEAT_EVAL
|
||||
if (firstc == -1)
|
||||
@@ -349,6 +379,12 @@ getcmdline(
|
||||
* terminal mode set to cooked. Need to set raw mode here then. */
|
||||
settmode(TMODE_RAW);
|
||||
|
||||
#ifdef FEAT_AUTOCMD
|
||||
/* Trigger CmdlineEnter autocommands. */
|
||||
cmdline_type = firstc == NUL ? '-' : firstc;
|
||||
trigger_cmd_autocmd(cmdline_type, EVENT_CMDLINEENTER);
|
||||
#endif
|
||||
|
||||
#ifdef FEAT_CMDHIST
|
||||
init_history();
|
||||
hiscnt = hislen; /* set hiscnt to impossible history value */
|
||||
@@ -1535,9 +1571,8 @@ getcmdline(
|
||||
break;
|
||||
goto cmdline_not_changed;
|
||||
}
|
||||
/* FALLTHROUGH */
|
||||
|
||||
#ifdef FEAT_CMDHIST
|
||||
/* FALLTHROUGH */
|
||||
case K_UP:
|
||||
case K_DOWN:
|
||||
case K_S_UP:
|
||||
@@ -1688,20 +1723,27 @@ getcmdline(
|
||||
if (p_is && !cmd_silent && (firstc == '/' || firstc == '?'))
|
||||
{
|
||||
pos_T t;
|
||||
int search_flags = SEARCH_KEEP + SEARCH_NOOF
|
||||
+ SEARCH_PEEK;
|
||||
int search_flags = SEARCH_NOOF;
|
||||
|
||||
if (char_avail())
|
||||
continue;
|
||||
if (ccline.cmdlen == 0)
|
||||
goto cmdline_not_changed;
|
||||
|
||||
save_last_search_pattern();
|
||||
cursor_off();
|
||||
out_flush();
|
||||
if (c == Ctrl_G)
|
||||
{
|
||||
t = match_end;
|
||||
if (LT_POS(match_start, match_end))
|
||||
/* start searching at the end of the match
|
||||
* not at the beginning of the next column */
|
||||
(void)decl(&t);
|
||||
search_flags += SEARCH_COL;
|
||||
}
|
||||
else
|
||||
t = match_start;
|
||||
if (!p_hls)
|
||||
search_flags += SEARCH_KEEP;
|
||||
++emsg_off;
|
||||
i = searchit(curwin, curbuf, &t,
|
||||
c == Ctrl_G ? FORWARD : BACKWARD,
|
||||
@@ -1753,6 +1795,7 @@ getcmdline(
|
||||
# endif
|
||||
old_botline = curwin->w_botline;
|
||||
update_screen(NOT_VALID);
|
||||
restore_last_search_pattern();
|
||||
redrawcmdline();
|
||||
}
|
||||
else
|
||||
@@ -1910,12 +1953,18 @@ 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 */
|
||||
redraw_all_later(SOME_VALID);
|
||||
}
|
||||
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 */
|
||||
@@ -1923,8 +1972,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
|
||||
@@ -1981,6 +2032,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)
|
||||
@@ -2046,7 +2098,7 @@ returncmd:
|
||||
curwin->w_botline = old_botline;
|
||||
highlight_match = FALSE;
|
||||
validate_cursor(); /* needed for TAB */
|
||||
redraw_later(SOME_VALID);
|
||||
redraw_all_later(SOME_VALID);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -2069,15 +2121,8 @@ returncmd:
|
||||
}
|
||||
#endif
|
||||
|
||||
if (gotesc) /* abandon command line */
|
||||
{
|
||||
vim_free(ccline.cmdbuff);
|
||||
ccline.cmdbuff = NULL;
|
||||
if (msg_scrolled == 0)
|
||||
compute_cmdrow();
|
||||
MSG("");
|
||||
redraw_cmdline = TRUE;
|
||||
}
|
||||
if (gotesc)
|
||||
abandon_cmdline();
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -2093,6 +2138,11 @@ returncmd:
|
||||
if (some_key_typed)
|
||||
need_wait_return = FALSE;
|
||||
|
||||
#ifdef FEAT_AUTOCMD
|
||||
/* Trigger CmdlineLeave autocommands. */
|
||||
trigger_cmd_autocmd(cmdline_type, EVENT_CMDLINELEAVE);
|
||||
#endif
|
||||
|
||||
State = save_State;
|
||||
#ifdef USE_IM_CONTROL
|
||||
if (b_im_ptr != NULL && *b_im_ptr != B_IMODE_LMAP)
|
||||
@@ -6848,9 +6898,6 @@ open_cmdwin(void)
|
||||
linenr_T lnum;
|
||||
int histtype;
|
||||
garray_T winsizes;
|
||||
#ifdef FEAT_AUTOCMD
|
||||
char_u typestr[2];
|
||||
#endif
|
||||
int save_restart_edit = restart_edit;
|
||||
int save_State = State;
|
||||
int save_exmode = exmode_active;
|
||||
@@ -6979,9 +7026,7 @@ open_cmdwin(void)
|
||||
|
||||
# ifdef FEAT_AUTOCMD
|
||||
/* Trigger CmdwinEnter autocommands. */
|
||||
typestr[0] = cmdwin_type;
|
||||
typestr[1] = NUL;
|
||||
apply_autocmds(EVENT_CMDWINENTER, typestr, typestr, FALSE, curbuf);
|
||||
trigger_cmd_autocmd(cmdwin_type, EVENT_CMDWINENTER);
|
||||
if (restart_edit != 0) /* autocmd with ":startinsert" */
|
||||
stuffcharReadbuff(K_NOP);
|
||||
# endif
|
||||
@@ -7004,7 +7049,7 @@ open_cmdwin(void)
|
||||
# endif
|
||||
|
||||
/* Trigger CmdwinLeave autocommands. */
|
||||
apply_autocmds(EVENT_CMDWINLEAVE, typestr, typestr, FALSE, curbuf);
|
||||
trigger_cmd_autocmd(cmdwin_type, EVENT_CMDWINLEAVE);
|
||||
|
||||
# ifdef FEAT_FOLDING
|
||||
/* Restore KeyTyped in case it is modified by autocommands */
|
||||
|
||||
+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
|
||||
|
||||
|
||||
+15
-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.
|
||||
@@ -7769,6 +7745,8 @@ static struct event_name
|
||||
{"BufWritePost", EVENT_BUFWRITEPOST},
|
||||
{"BufWritePre", EVENT_BUFWRITEPRE},
|
||||
{"BufWriteCmd", EVENT_BUFWRITECMD},
|
||||
{"CmdlineEnter", EVENT_CMDLINEENTER},
|
||||
{"CmdlineLeave", EVENT_CMDLINELEAVE},
|
||||
{"CmdwinEnter", EVENT_CMDWINENTER},
|
||||
{"CmdwinLeave", EVENT_CMDWINLEAVE},
|
||||
{"CmdUndefined", EVENT_CMDUNDEFINED},
|
||||
|
||||
+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);
|
||||
|
||||
+30
-1
@@ -3567,8 +3567,29 @@ on_select_tab(
|
||||
gpointer data UNUSED)
|
||||
{
|
||||
if (!ignore_tabline_evt)
|
||||
{
|
||||
send_tabline_event(idx + 1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Handle reordering the tabs (using D&D).
|
||||
*/
|
||||
static void
|
||||
on_tab_reordered(
|
||||
GtkNotebook *notebook UNUSED,
|
||||
# if GTK_CHECK_VERSION(3,0,0)
|
||||
gpointer *page UNUSED,
|
||||
# else
|
||||
GtkNotebookPage *page UNUSED,
|
||||
# endif
|
||||
gint idx,
|
||||
gpointer data UNUSED)
|
||||
{
|
||||
if (!ignore_tabline_evt)
|
||||
{
|
||||
if ((tabpage_index(curtab) - 1) < idx)
|
||||
tabpage_move(idx + 1);
|
||||
else
|
||||
tabpage_move(idx);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3658,6 +3679,9 @@ gui_mch_update_tabline(void)
|
||||
page,
|
||||
event_box,
|
||||
nr++);
|
||||
gtk_notebook_set_tab_reorderable(GTK_NOTEBOOK(gui.tabline),
|
||||
page,
|
||||
TRUE);
|
||||
}
|
||||
|
||||
event_box = gtk_notebook_get_tab_label(GTK_NOTEBOOK(gui.tabline), page);
|
||||
@@ -4093,14 +4117,19 @@ gui_mch_init(void)
|
||||
# endif
|
||||
gtk_container_add(GTK_CONTAINER(event_box), label);
|
||||
gtk_notebook_set_tab_label(GTK_NOTEBOOK(gui.tabline), page, event_box);
|
||||
gtk_notebook_set_tab_reorderable(GTK_NOTEBOOK(gui.tabline), page, TRUE);
|
||||
}
|
||||
|
||||
# if GTK_CHECK_VERSION(3,0,0)
|
||||
g_signal_connect(G_OBJECT(gui.tabline), "switch-page",
|
||||
G_CALLBACK(on_select_tab), NULL);
|
||||
g_signal_connect(G_OBJECT(gui.tabline), "page-reordered",
|
||||
G_CALLBACK(on_tab_reordered), NULL);
|
||||
# else
|
||||
gtk_signal_connect(GTK_OBJECT(gui.tabline), "switch_page",
|
||||
GTK_SIGNAL_FUNC(on_select_tab), NULL);
|
||||
gtk_signal_connect(GTK_OBJECT(gui.tabline), "page-reordered",
|
||||
GTK_SIGNAL_FUNC(on_tab_reordered), NULL);
|
||||
# endif
|
||||
|
||||
/* Create a popup menu for the tab line and connect it. */
|
||||
|
||||
+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'},
|
||||
|
||||
+139
-9
@@ -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)
|
||||
@@ -7567,6 +7574,26 @@ nCopyAnsiToWideChar(
|
||||
|
||||
|
||||
#ifdef FEAT_TEAROFF
|
||||
/*
|
||||
* Lookup menu handle from "menu_id".
|
||||
*/
|
||||
static HMENU
|
||||
tearoff_lookup_menuhandle(
|
||||
vimmenu_T *menu,
|
||||
WORD menu_id)
|
||||
{
|
||||
for ( ; menu != NULL; menu = menu->next)
|
||||
{
|
||||
if (menu->modes == 0) /* this menu has just been deleted */
|
||||
continue;
|
||||
if (menu_is_separator(menu->dname))
|
||||
continue;
|
||||
if ((WORD)((long_u)(menu->submenu_id) | (DWORD)0x8000) == menu_id)
|
||||
return menu->submenu_id;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* The callback function for all the modeless dialogs that make up the
|
||||
* "tearoff menus" Very simple - forward button presses (to fool Vim into
|
||||
@@ -7580,7 +7607,10 @@ tearoff_callback(
|
||||
LPARAM lParam)
|
||||
{
|
||||
if (message == WM_INITDIALOG)
|
||||
{
|
||||
SetWindowLongPtr(hwnd, DWLP_USER, (LONG_PTR)lParam);
|
||||
return (TRUE);
|
||||
}
|
||||
|
||||
/* May show the mouse pointer again. */
|
||||
HandleMouseHide(message, lParam);
|
||||
@@ -7594,8 +7624,11 @@ tearoff_callback(
|
||||
|
||||
if (GetCursorPos(&mp) && GetWindowRect(hwnd, &rect))
|
||||
{
|
||||
vimmenu_T *menu;
|
||||
|
||||
menu = (vimmenu_T*)GetWindowLongPtr(hwnd, DWLP_USER);
|
||||
(void)TrackPopupMenu(
|
||||
(HMENU)(long_u)(LOWORD(wParam) ^ 0x8000),
|
||||
tearoff_lookup_menuhandle(menu, LOWORD(wParam)),
|
||||
TPM_LEFTALIGN | TPM_LEFTBUTTON,
|
||||
(int)rect.right - 8,
|
||||
(int)mp.y,
|
||||
@@ -7707,6 +7740,7 @@ gui_mch_tearoff(
|
||||
WORD dlgwidth;
|
||||
WORD menuID;
|
||||
vimmenu_T *pmenu;
|
||||
vimmenu_T *top_menu;
|
||||
vimmenu_T *the_menu = menu;
|
||||
HWND hwnd;
|
||||
HDC hdc;
|
||||
@@ -7885,6 +7919,7 @@ gui_mch_tearoff(
|
||||
menu = menu->children->next;
|
||||
else
|
||||
menu = menu->children;
|
||||
top_menu = menu;
|
||||
for ( ; menu != NULL; menu = menu->next)
|
||||
{
|
||||
if (menu->modes == 0) /* this menu has just been deleted */
|
||||
@@ -7995,11 +8030,12 @@ gui_mch_tearoff(
|
||||
|
||||
|
||||
/* show modelessly */
|
||||
the_menu->tearoff_handle = CreateDialogIndirect(
|
||||
the_menu->tearoff_handle = CreateDialogIndirectParam(
|
||||
s_hinst,
|
||||
(LPDLGTEMPLATE)pdlgtemplate,
|
||||
s_hwnd,
|
||||
(DLGPROC)tearoff_callback);
|
||||
(DLGPROC)tearoff_callback,
|
||||
(LPARAM)top_menu);
|
||||
|
||||
LocalFree(LocalHandle(pdlgtemplate));
|
||||
SelectFont(hdc, oldFont);
|
||||
@@ -8151,6 +8187,34 @@ initialise_tabline(void)
|
||||
# endif
|
||||
}
|
||||
|
||||
/*
|
||||
* Get tabpage_T from POINT.
|
||||
*/
|
||||
static tabpage_T *
|
||||
GetTabFromPoint(
|
||||
HWND hWnd,
|
||||
POINT pt)
|
||||
{
|
||||
tabpage_T *ptp = NULL;
|
||||
|
||||
if (gui_mch_showing_tabline())
|
||||
{
|
||||
TCHITTESTINFO htinfo;
|
||||
htinfo.pt = pt;
|
||||
/* ignore if a window under cusor is not tabcontrol. */
|
||||
if (s_tabhwnd == hWnd)
|
||||
{
|
||||
int idx = TabCtrl_HitTest(s_tabhwnd, &htinfo);
|
||||
if (idx != -1)
|
||||
ptp = find_tabpage(idx + 1);
|
||||
}
|
||||
}
|
||||
return ptp;
|
||||
}
|
||||
|
||||
static POINT s_pt = {0, 0};
|
||||
static HCURSOR s_hCursor = NULL;
|
||||
|
||||
static LRESULT CALLBACK
|
||||
tabline_wndproc(
|
||||
HWND hwnd,
|
||||
@@ -8158,7 +8222,73 @@ tabline_wndproc(
|
||||
WPARAM wParam,
|
||||
LPARAM lParam)
|
||||
{
|
||||
POINT pt;
|
||||
tabpage_T *tp;
|
||||
RECT rect;
|
||||
int nCenter;
|
||||
int idx0;
|
||||
int idx1;
|
||||
|
||||
HandleMouseHide(uMsg, lParam);
|
||||
|
||||
switch (uMsg)
|
||||
{
|
||||
case WM_LBUTTONDOWN:
|
||||
{
|
||||
s_pt.x = GET_X_LPARAM(lParam);
|
||||
s_pt.y = GET_Y_LPARAM(lParam);
|
||||
SetCapture(hwnd);
|
||||
s_hCursor = GetCursor(); /* backup default cursor */
|
||||
break;
|
||||
}
|
||||
case WM_MOUSEMOVE:
|
||||
if (GetCapture() == hwnd
|
||||
&& ((wParam & MK_LBUTTON)) != 0)
|
||||
{
|
||||
pt.x = GET_X_LPARAM(lParam);
|
||||
pt.y = s_pt.y;
|
||||
if (abs(pt.x - s_pt.x) > GetSystemMetrics(SM_CXDRAG))
|
||||
{
|
||||
SetCursor(LoadCursor(NULL, IDC_SIZEWE));
|
||||
|
||||
tp = GetTabFromPoint(hwnd, pt);
|
||||
if (tp != NULL)
|
||||
{
|
||||
idx0 = tabpage_index(curtab) - 1;
|
||||
idx1 = tabpage_index(tp) - 1;
|
||||
|
||||
TabCtrl_GetItemRect(hwnd, idx1, &rect);
|
||||
nCenter = rect.left + (rect.right - rect.left) / 2;
|
||||
|
||||
/* Check if the mouse cursor goes over the center of
|
||||
* the next tab to prevent "flickering". */
|
||||
if ((idx0 < idx1) && (nCenter < pt.x))
|
||||
{
|
||||
tabpage_move(idx1 + 1);
|
||||
update_screen(0);
|
||||
}
|
||||
else if ((idx1 < idx0) && (pt.x < nCenter))
|
||||
{
|
||||
tabpage_move(idx1);
|
||||
update_screen(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case WM_LBUTTONUP:
|
||||
{
|
||||
if (GetCapture() == hwnd)
|
||||
{
|
||||
SetCursor(s_hCursor);
|
||||
ReleaseCapture();
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return CallWindowProc(s_tabline_wndproc, hwnd, uMsg, wParam, lParam);
|
||||
}
|
||||
#endif
|
||||
|
||||
+1
-1
@@ -757,7 +757,7 @@ mzscheme_runtime_link_init(char *sch_dll, char *gc_dll, int verbose)
|
||||
mzscheme_enabled(int verbose)
|
||||
{
|
||||
return mzscheme_runtime_link_init(
|
||||
DYNAMIC_MZSCH_DLL, DYNAMIC_MZGC_DLL, verbose) == OK;
|
||||
(char *)p_mzschemedll, (char *)p_mzschemegcdll, verbose) == OK;
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
@@ -1101,6 +1101,7 @@ perl_to_vim(SV *sv, typval_T *rettv)
|
||||
rettv->vval.v_number = SvIV(sv);
|
||||
break;
|
||||
}
|
||||
/* FALLTHROUGH */
|
||||
case SVt_PV: /* string */
|
||||
{
|
||||
size_t len = 0;
|
||||
|
||||
@@ -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
|
||||
|
||||
+26
-30
@@ -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. */
|
||||
@@ -419,6 +419,19 @@ main
|
||||
debug_break_level = params.use_debug_break_level;
|
||||
#endif
|
||||
|
||||
/* Reset 'loadplugins' for "-u NONE" before "--cmd" arguments.
|
||||
* Allows for setting 'loadplugins' there. */
|
||||
if (params.use_vimrc != NULL
|
||||
&& (STRCMP(params.use_vimrc, "NONE") == 0
|
||||
|| STRCMP(params.use_vimrc, "DEFAULTS") == 0))
|
||||
p_lpl = FALSE;
|
||||
|
||||
/* Execute --cmd arguments. */
|
||||
exe_pre_commands(¶ms);
|
||||
|
||||
/* Source startup scripts. */
|
||||
source_startup_scripts(¶ms);
|
||||
|
||||
#ifdef FEAT_GUI_MACVIM
|
||||
gui_macvim_release_autoreleasepool(autoreleasePool);
|
||||
#endif
|
||||
@@ -429,6 +442,7 @@ main
|
||||
* initialisation via scheme_main_setup.
|
||||
* Implement this by initialising it as early as possible
|
||||
* and splitting off remaining Vim main into vim_main2().
|
||||
* Do source startup scripts, so that 'mzschemedll' can be set.
|
||||
*/
|
||||
return mzscheme_main();
|
||||
#else
|
||||
@@ -450,19 +464,6 @@ vim_main2(void)
|
||||
#ifdef FEAT_GUI_MACVIM
|
||||
void *autoreleasePool = gui_macvim_new_autoreleasepool();
|
||||
#endif
|
||||
/* Reset 'loadplugins' for "-u NONE" before "--cmd" arguments.
|
||||
* Allows for setting 'loadplugins' there. */
|
||||
if (params.use_vimrc != NULL
|
||||
&& (STRCMP(params.use_vimrc, "NONE") == 0
|
||||
|| STRCMP(params.use_vimrc, "DEFAULTS") == 0))
|
||||
p_lpl = FALSE;
|
||||
|
||||
/* Execute --cmd arguments. */
|
||||
exe_pre_commands(¶ms);
|
||||
|
||||
/* Source startup scripts. */
|
||||
source_startup_scripts(¶ms);
|
||||
|
||||
#ifdef FEAT_EVAL
|
||||
/*
|
||||
* Read all the plugin files.
|
||||
@@ -989,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();
|
||||
|
||||
@@ -1046,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");
|
||||
@@ -1801,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
|
||||
@@ -2311,7 +2305,7 @@ command_line_scan(mparm_T *parmp)
|
||||
argv_idx = -1;
|
||||
break;
|
||||
}
|
||||
/*FALLTHROUGH*/
|
||||
/* FALLTHROUGH */
|
||||
case 'S': /* "-S {file}" execute Vim script */
|
||||
case 'i': /* "-i {viminfo}" use for viminfo */
|
||||
#ifndef FEAT_DIFF
|
||||
@@ -2469,7 +2463,7 @@ scripterror:
|
||||
argv_idx = -1;
|
||||
break;
|
||||
}
|
||||
/*FALLTHROUGH*/
|
||||
/* FALLTHROUGH */
|
||||
case 'W': /* "-W {scriptout}" overwrite script file */
|
||||
if (scriptout != NULL)
|
||||
goto scripterror;
|
||||
@@ -2702,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.
|
||||
@@ -4268,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. */
|
||||
@@ -4289,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. */
|
||||
|
||||
+15
-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;
|
||||
@@ -1402,6 +1402,8 @@ static struct interval ambiguous[] =
|
||||
int
|
||||
utf_uint2cells(UINT32_T c)
|
||||
{
|
||||
if (c >= 0x100 && utf_iscomposing((int)c))
|
||||
return 0;
|
||||
return utf_char2cells((int)c);
|
||||
}
|
||||
#endif
|
||||
@@ -6610,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;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user