mirror of
https://github.com/macvim-dev/macvim.git
synced 2026-05-28 00:21:57 +02:00
Compare commits
27 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 75aa777464 | |||
| 7d882ca4cf | |||
| be0e27b5c8 | |||
| 5f465202e8 | |||
| dfda18a956 | |||
| 77bf482db4 | |||
| 44244c1e5e | |||
| 81a64f5848 | |||
| d760cc0dd8 | |||
| 31794d84eb | |||
| 085e23019e | |||
| 1332cbb7da | |||
| b376c5c67d | |||
| 9c91a1bd48 | |||
| cccd9fabe8 | |||
| 0dbb762a54 | |||
| de59ba33aa | |||
| b8d8fb1d45 | |||
| c4db2743d5 | |||
| a16f472edf | |||
| d94464ee29 | |||
| 8a52ba7918 | |||
| 1d8d9c0bec | |||
| d424747d58 | |||
| 6407b3e80d | |||
| d7464be974 | |||
| 6cc90f1bf1 |
+8
-2
@@ -14,18 +14,24 @@ env:
|
||||
VERSIONER_PYTHON_VERSION=2.7
|
||||
vi_cv_path_python3=/usr/local/bin/python3
|
||||
vi_cv_path_plain_lua=/usr/local/bin/lua
|
||||
vi_cv_dll_name_perl=/System/Library/Perl/5.16/darwin-thread-multi-2level/CORE/libperl.dylib
|
||||
vi_cv_dll_name_python3=/usr/local/Frameworks/Python.framework/Versions/3.5/Python
|
||||
"CONFOPT='--with-features=huge --enable-multibyte --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'"
|
||||
|
||||
sudo: false
|
||||
|
||||
before_install:
|
||||
- brew update
|
||||
- brew update || brew update
|
||||
- brew install python3
|
||||
- brew install lua
|
||||
|
||||
script:
|
||||
- NPROC=$(getconf _NPROCESSORS_ONLN)
|
||||
- ./configure $CONFOPT --enable-fail-if-missing && make -j$NPROC
|
||||
- ./configure $CONFOPT --enable-fail-if-missing
|
||||
- grep -q -- "-DDYNAMIC_PERL_DLL=\\\\\"$vi_cv_dll_name_perl\\\\\"" src/auto/config.mk
|
||||
- grep -q -- "-DDYNAMIC_PYTHON3_DLL=\\\\\"$vi_cv_dll_name_python3\\\\\"" src/auto/config.mk
|
||||
- make -j$NPROC
|
||||
- cat src/auto/config.mk
|
||||
- ./src/vim --version
|
||||
- make test
|
||||
|
||||
|
||||
@@ -584,6 +584,8 @@ RT_UNIX = \
|
||||
runtime/vim32x32.xpm \
|
||||
runtime/vim48x48.png \
|
||||
runtime/vim48x48.xpm \
|
||||
runtime/gvim.desktop \
|
||||
runtime/vim.desktop \
|
||||
|
||||
# Unix and DOS runtime without CR-LF translation
|
||||
RT_UNIX_DOS_BIN = \
|
||||
|
||||
+21
-1
@@ -1,4 +1,4 @@
|
||||
*if_lua.txt* For Vim version 7.4. Last change: 2013 Sep 04
|
||||
*if_lua.txt* For Vim version 7.4. Last change: 2015 Oct 16
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Luis Carvalho
|
||||
@@ -14,6 +14,7 @@ The Lua Interface to Vim *lua* *Lua*
|
||||
6. Buffer userdata |lua-buffer|
|
||||
7. Window userdata |lua-window|
|
||||
8. The luaeval function |lua-luaeval|
|
||||
9. Dynamic loading |lua-dynamic|
|
||||
|
||||
{Vi does not have any of these commands}
|
||||
|
||||
@@ -399,5 +400,24 @@ Examples: >
|
||||
:echo Rand(1,10)
|
||||
|
||||
|
||||
==============================================================================
|
||||
9. Dynamic loading *lua-dynamic*
|
||||
|
||||
On MS-Windows and Unix the Lua library can be loaded dynamically. The
|
||||
|:version| output then includes |+lua/dyn|.
|
||||
|
||||
This means that Vim will search for the Lua DLL or shared library file only
|
||||
when needed. When you don't use the Lua interface you don't need it, thus
|
||||
you can use Vim without this file.
|
||||
|
||||
On MS-Windows to use the Lua interface the Lua DLL must be in your search path.
|
||||
In a console window type "path" to see what directories are used. The version
|
||||
of the DLL must match the Lua version Vim was compiled with.
|
||||
|
||||
On Unix the 'luadll' option can be used to specify the Lua shared library file
|
||||
instead of DYNAMIC_LUA_DLL file what was specified at compile time. The
|
||||
version of the shared library must match the Lua version Vim was compiled with.
|
||||
|
||||
|
||||
==============================================================================
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*if_perl.txt* For Vim version 7.4. Last change: 2013 Oct 05
|
||||
*if_perl.txt* For Vim version 7.4. Last change: 2015 Oct 16
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Sven Verdoolaege
|
||||
@@ -290,5 +290,13 @@ The name of the DLL must match the Perl version Vim was compiled with.
|
||||
Currently the name is "perl512.dll". That is for Perl 5.12. To know for
|
||||
sure edit "gvim.exe" and search for "perl\d*.dll\c".
|
||||
|
||||
|
||||
Unix ~
|
||||
|
||||
The 'perldll' option can be used to specify the Perl shared library file
|
||||
instead of DYNAMIC_PERL_DLL file what was specified at compile time. The
|
||||
version of the shared library must match the Perl version Vim was compiled
|
||||
with.
|
||||
|
||||
==============================================================================
|
||||
vim:tw=78:ts=8:ft=help:norl:
|
||||
|
||||
+14
-8
@@ -1,4 +1,4 @@
|
||||
*if_pyth.txt* For Vim version 7.4. Last change: 2014 Jul 23
|
||||
*if_pyth.txt* For Vim version 7.4. Last change: 2015 Oct 16
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Paul Moore
|
||||
@@ -679,20 +679,26 @@ functions to evaluate Python expressions and pass their values to VimL.
|
||||
==============================================================================
|
||||
9. Dynamic loading *python-dynamic*
|
||||
|
||||
On MS-Windows the Python library can be loaded dynamically. The |:version|
|
||||
output then includes |+python/dyn|.
|
||||
On MS-Windows and Unix the Python library can be loaded dynamically. The
|
||||
|:version| output then includes |+python/dyn| or |+python3/dyn|.
|
||||
|
||||
This means that Vim will search for the Python DLL file only when needed.
|
||||
When you don't use the Python interface you don't need it, thus you can use
|
||||
Vim without this DLL file.
|
||||
This means that Vim will search for the Python DLL or shared library file only
|
||||
when needed. When you don't use the Python interface you don't need it, thus
|
||||
you can use Vim without this file.
|
||||
|
||||
To use the Python interface the Python DLL must be in your search path. In a
|
||||
console window type "path" to see what directories are used.
|
||||
On MS-Windows to use the Python interface the Python DLL must be in your search
|
||||
path. In a console window type "path" to see what directories are used.
|
||||
|
||||
The name of the DLL must match the Python version Vim was compiled with.
|
||||
Currently the name is "python24.dll". That is for Python 2.4. To know for
|
||||
sure edit "gvim.exe" and search for "python\d*.dll\c".
|
||||
|
||||
On Unix the 'pythondll' or 'python3dll' option can be used to specify the
|
||||
Python shared library file instead of DYNAMIC_PYTHON_DLL or
|
||||
DYNAMIC_PYTHON3_DLL file what were specified at compile time. The version of
|
||||
the shared library must match the Python 2.x or Python 3 version Vim was
|
||||
compiled with.
|
||||
|
||||
==============================================================================
|
||||
10. Python 3 *python3*
|
||||
|
||||
|
||||
+10
-1
@@ -1,4 +1,4 @@
|
||||
*if_ruby.txt* For Vim version 7.4. Last change: 2015 Feb 22
|
||||
*if_ruby.txt* For Vim version 7.4. Last change: 2015 Oct 16
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Shugo Maeda
|
||||
@@ -199,6 +199,8 @@ This means that Vim will search for the Ruby DLL file or shared library only
|
||||
when needed. When you don't use the Ruby interface you don't need it, thus
|
||||
you can use Vim even though this library file is not on your system.
|
||||
|
||||
MS-Windows ~
|
||||
|
||||
You need to install the right version of Ruby for this to work. You can find
|
||||
the package to download from:
|
||||
http://www.garbagecollect.jp/ruby/mswin32/en/download/release.html
|
||||
@@ -216,5 +218,12 @@ and comment-out the check for _MSC_VER.
|
||||
You may also need to rename the include directory name to match the version,
|
||||
strangely for Ruby 1.9.3 the directory is called 1.9.1.
|
||||
|
||||
Unix ~
|
||||
|
||||
The 'rubydll' option can be used to specify the Ruby shared library file
|
||||
instead of DYNAMIC_RUBY_DLL file what was specified at compile time. The
|
||||
version of the shared library must match the Ruby version Vim was compiled
|
||||
with.
|
||||
|
||||
==============================================================================
|
||||
vim:tw=78:ts=8:ft=help:norl:
|
||||
|
||||
+58
-4
@@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 7.4. Last change: 2015 Sep 15
|
||||
*options.txt* For Vim version 7.4. Last change: 2015 Nov 01
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1261,7 +1261,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
break if 'linebreak' is on. Only works for ASCII and also for 8-bit
|
||||
characters when 'encoding' is an 8-bit encoding.
|
||||
|
||||
*'breakindent'* *'bri'*
|
||||
*'breakindent'* *'bri'* *'nobreakindent'* *'nobri'*
|
||||
'breakindent' 'bri' boolean (default off)
|
||||
local to window
|
||||
{not in Vi}
|
||||
@@ -3425,7 +3425,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
modeline, see |sandbox-option|. That stops the option from working,
|
||||
since changing the buffer text is not allowed.
|
||||
|
||||
*'fsync'* *'fs'*
|
||||
*'fsync'* *'fs'* *'nofsync'* *'nofs'*
|
||||
'fsync' 'fs' boolean (default on)
|
||||
global
|
||||
{not in Vi}
|
||||
@@ -4776,7 +4776,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
:source $VIMRUNTIME/menu.vim
|
||||
< Warning: This deletes all menus that you defined yourself!
|
||||
|
||||
*'langnoremap'* *'lnr'*
|
||||
*'langnoremap'* *'lnr'* *'nolangnoremap'* *'nolnr'*
|
||||
'langnoremap' 'lnr' boolean (default off)
|
||||
global
|
||||
{not in Vi}
|
||||
@@ -4957,6 +4957,17 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
Note that using the "-u NONE" and "--noplugin" command line arguments
|
||||
reset this option. |-u| |--noplugin|
|
||||
|
||||
*'luadll'*
|
||||
'luadll' string (default empty)
|
||||
global
|
||||
{not in Vi} {only for Unix}
|
||||
{only available when compiled with the |+lua/dyn|
|
||||
feature}
|
||||
Specifies the path of the Lua shared library instead of DYNAMIC_LUA_DLL
|
||||
what was specified at compile time.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
*'macatsui'* *'nomacatsui'*
|
||||
'macatsui' boolean (default on)
|
||||
global
|
||||
@@ -5673,6 +5684,17 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
< Replace the ';' with a ':' or whatever separator is used. Note that
|
||||
this doesn't work when $INCL contains a comma or white space.
|
||||
|
||||
*'perldll'*
|
||||
'perldll' string (default empty)
|
||||
global
|
||||
{not in Vi} {only for Unix}
|
||||
{only available when compiled with the |+perl/dyn|
|
||||
feature}
|
||||
Specifies the path of the Perl shared library instead of
|
||||
DYNAMIC_PERL_DLL what was specified at compile time.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
*'preserveindent'* *'pi'* *'nopreserveindent'* *'nopi'*
|
||||
'preserveindent' 'pi' boolean (default off)
|
||||
local to buffer
|
||||
@@ -5799,6 +5821,27 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
Insert mode completion. When zero as much space as available is used.
|
||||
|ins-completion-menu|.
|
||||
|
||||
*'python3dll'*
|
||||
'python3dll' string (default empty)
|
||||
global
|
||||
{not in Vi} {only for Unix}
|
||||
{only available when compiled with the |+python3/dyn|
|
||||
feature}
|
||||
Specifies the path of the Python 3 shared library instead of
|
||||
DYNAMIC_PYTHON3_DLL what was specified at compile time.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
*'pythondll'*
|
||||
'pythondll' string (default empty)
|
||||
global
|
||||
{not in Vi} {only for Unix}
|
||||
{only available when compiled with the |+python/dyn|
|
||||
feature}
|
||||
Specifies the path of the Python 2.x shared library instead of
|
||||
DYNAMIC_PYTHON_DLL what was specified at compile time.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
*'quoteescape'* *'qe'*
|
||||
'quoteescape' 'qe' string (default "\")
|
||||
@@ -6019,6 +6062,17 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
This is useful for languages such as Hebrew, Arabic and Farsi.
|
||||
The 'rightleft' option must be set for 'rightleftcmd' to take effect.
|
||||
|
||||
*'rubydll'*
|
||||
'rubydll' string (default empty)
|
||||
global
|
||||
{not in Vi} {only for Unix}
|
||||
{only available when compiled with the |+ruby/dyn|
|
||||
feature}
|
||||
Specifies the path of the Ruby shared library instead of
|
||||
DYNAMIC_RUBY_DLL what was specified at compile time.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
*'ruler'* *'ru'* *'noruler'* *'noru'*
|
||||
'ruler' 'ru' boolean (default off)
|
||||
global
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pi_netrw.txt* For Vim version 7.4. Last change: 2015 Oct 30
|
||||
*pi_netrw.txt* For Vim version 7.4. Last change: 2015 Oct 31
|
||||
|
||||
------------------------------------------------
|
||||
NETRW REFERENCE MANUAL by Charles E. Campbell
|
||||
@@ -3438,7 +3438,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
|
||||
You probably want netrw running as in a side window. If so, you
|
||||
will likely find that ":[N]Lexplore" does what you want. The
|
||||
optional "[N]" allows you to select the quantity of columns you
|
||||
wish the Lexplorer window to start with (see |g:netrw_winsize|
|
||||
wish the |:Lexplore|r window to start with (see |g:netrw_winsize|
|
||||
for how this parameter works).
|
||||
|
||||
Previous solution:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*todo.txt* For Vim version 7.4. Last change: 2015 Oct 30
|
||||
*todo.txt* For Vim version 7.4. Last change: 2015 Oct 31
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -222,6 +222,9 @@ Is this right?
|
||||
Patch to have CTRL-A and CTRL-X update the '[ and '] marks.
|
||||
(Yukihiro Nakadaira, 2015 Aug 23)
|
||||
|
||||
On MS-Windows viminfo file is always given the hidden attribute? (raulnac,
|
||||
2015 Oct 30)
|
||||
|
||||
Patch to make getregtype() return the right size for non-linux systems.
|
||||
(Yasuhiro Matsumoto, 2014 Jul 8)
|
||||
Breaks test_eval. Inefficient, can we only compute y_width when needed?
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
" Vim filetype plugin
|
||||
" Language: hog (snort.conf)
|
||||
" Maintainer: . Victor Roemer, <vroemer@badsec.org>.
|
||||
" Last Change: Mar 1, 2013
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:undo_ftplugin = "setl fo< com< cms< def< inc<"
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
setlocal formatoptions=croq
|
||||
setlocal comments=:#
|
||||
setlocal commentstring=\c#\ %s
|
||||
setlocal define=\c^\s\{-}var
|
||||
setlocal include=\c^\s\{-}include
|
||||
|
||||
" Move around configurations
|
||||
let s:hog_keyword_match = '\c^\s*\<\(preprocessor\\|config\\|output\\|include\\|ipvar\\|portvar\\|var\\|dynamicpreprocessor\\|' .
|
||||
\ 'dynamicengine\\|dynamicdetection\\|activate\\|alert\\|drop\\|block\\|dynamic\\|log\\|pass\\|reject\\|sdrop\\|sblock\)\>'
|
||||
|
||||
exec "nnoremap <buffer><silent> ]] :call search('" . s:hog_keyword_match . "', 'W' )<CR>"
|
||||
exec "nnoremap <buffer><silent> [[ :call search('" . s:hog_keyword_match . "', 'bW' )<CR>"
|
||||
|
||||
if exists("loaded_matchit")
|
||||
let b:match_words =
|
||||
\ '^\s*\<\%(preprocessor\|config\|output\|include\|ipvar\|portvar' .
|
||||
\ '\|var\|dynamicpreprocessor\|dynamicengine\|dynamicdetection' .
|
||||
\ '\|activate\|alert\|drop\|block\|dynamic\|log\|pass\|reject' .
|
||||
\ '\|sdrop\|sblock\>\):$,\::\,:;'
|
||||
let b:match_skip = 'r:\\.\{-}$\|^\s*#.\{-}$\|^\s*$'
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
@@ -0,0 +1,80 @@
|
||||
[Desktop Entry]
|
||||
Name=GVim
|
||||
GenericName=Text Editor
|
||||
GenericName[de]=Texteditor
|
||||
Comment=Edit text files
|
||||
Comment[af]=Redigeer tekslêers
|
||||
Comment[am]=የጽሑፍ ፋይሎች ያስተካክሉ
|
||||
Comment[ar]=حرّر ملفات نصية
|
||||
Comment[az]=Mətn fayllarını redaktə edin
|
||||
Comment[be]=Рэдагаваньне тэкставых файлаў
|
||||
Comment[bg]=Редактиране на текстови файлове
|
||||
Comment[bn]=টেক্স্ট ফাইল এডিট করুন
|
||||
Comment[bs]=Izmijeni tekstualne datoteke
|
||||
Comment[ca]=Edita fitxers de text
|
||||
Comment[cs]=Úprava textových souborů
|
||||
Comment[cy]=Golygu ffeiliau testun
|
||||
Comment[da]=Redigér tekstfiler
|
||||
Comment[de]=Textdateien bearbeiten
|
||||
Comment[el]=Επεξεργασία αρχείων κειμένου
|
||||
Comment[en_CA]=Edit text files
|
||||
Comment[en_GB]=Edit text files
|
||||
Comment[es]=Edita archivos de texto
|
||||
Comment[et]=Redigeeri tekstifaile
|
||||
Comment[eu]=Editatu testu-fitxategiak
|
||||
Comment[fa]=ویرایش پروندههای متنی
|
||||
Comment[fi]=Muokkaa tekstitiedostoja
|
||||
Comment[fr]=Édite des fichiers texte
|
||||
Comment[ga]=Eagar comhad Téacs
|
||||
Comment[gu]=લખાણ ફાઇલોમાં ફેરફાર કરો
|
||||
Comment[he]=ערוך קבצי טקסט
|
||||
Comment[hi]=पाठ फ़ाइलें संपादित करें
|
||||
Comment[hr]=Uređivanje tekstualne datoteke
|
||||
Comment[hu]=Szövegfájlok szerkesztése
|
||||
Comment[id]=Edit file teks
|
||||
Comment[it]=Modifica file di testo
|
||||
Comment[ja]=テキストファイルを編集します
|
||||
Comment[kn]=ಪಠ್ಯ ಕಡತಗಳನ್ನು ಸಂಪಾದಿಸು
|
||||
Comment[ko]=텍스트 파일을 편집합니다
|
||||
Comment[lt]=Redaguoti tekstines bylas
|
||||
Comment[lv]=Rediģēt teksta failus
|
||||
Comment[mk]=Уреди текстуални фајлови
|
||||
Comment[ml]=വാചക രചനകള് തിരുത്തുക
|
||||
Comment[mn]=Текст файл боловсруулах
|
||||
Comment[mr]=गद्य फाइल संपादित करा
|
||||
Comment[ms]=Edit fail teks
|
||||
Comment[nb]=Rediger tekstfiler
|
||||
Comment[ne]=पाठ फाइललाई संशोधन गर्नुहोस्
|
||||
Comment[nl]=Tekstbestanden bewerken
|
||||
Comment[nn]=Rediger tekstfiler
|
||||
Comment[no]=Rediger tekstfiler
|
||||
Comment[or]=ପାଠ୍ଯ ଫାଇଲଗୁଡ଼ିକୁ ସମ୍ପାଦନ କରନ୍ତୁ
|
||||
Comment[pa]=ਪਾਠ ਫਾਇਲਾਂ ਸੰਪਾਦਨ
|
||||
Comment[pl]=Edytor plików tekstowych
|
||||
Comment[pt]=Editar ficheiros de texto
|
||||
Comment[pt_BR]=Edite arquivos de texto
|
||||
Comment[ro]=Editare fişiere text
|
||||
Comment[ru]=Редактор текстовых файлов
|
||||
Comment[sk]=Úprava textových súborov
|
||||
Comment[sl]=Urejanje datotek z besedili
|
||||
Comment[sq]=Përpuno files teksti
|
||||
Comment[sr]=Измени текстуалне датотеке
|
||||
Comment[sr@Latn]=Izmeni tekstualne datoteke
|
||||
Comment[sv]=Redigera textfiler
|
||||
Comment[ta]=உரை கோப்புகளை தொகுக்கவும்
|
||||
Comment[th]=แก้ไขแฟ้มข้อความ
|
||||
Comment[tk]=Metin faýllary editle
|
||||
Comment[tr]=Metin dosyalarını düzenle
|
||||
Comment[uk]=Редактор текстових файлів
|
||||
Comment[vi]=Soạn thảo tập tin văn bản
|
||||
Comment[wa]=Asspougnî des fitchîs tecses
|
||||
Comment[zh_CN]=编辑文本文件
|
||||
Comment[zh_TW]=編輯文字檔
|
||||
TryExec=gvim
|
||||
Exec=gvim -f %F
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Icon=gvim
|
||||
Categories=Utility;TextEditor;
|
||||
StartupNotify=true
|
||||
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
|
||||
@@ -0,0 +1,77 @@
|
||||
" Vim indent file
|
||||
" Language: hog (Snort.conf)
|
||||
" Maintainer: Victor Roemer, <vroemer@badsec.org>
|
||||
" Last Change: Mar 7, 2013
|
||||
|
||||
" Only load this indent file when no other was loaded.
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
endif
|
||||
let b:did_indent = 1
|
||||
let b:undo_indent = 'setlocal smartindent< indentexpr< indentkeys<'
|
||||
|
||||
setlocal nosmartindent
|
||||
setlocal indentexpr=GetHogIndent()
|
||||
setlocal indentkeys+=!^F,o,O,0#
|
||||
|
||||
" Only define the function once.
|
||||
if exists("*GetHogIndent")
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
let s:syn_blocks = '\<SnortRuleTypeBody\>'
|
||||
|
||||
function s:IsInBlock(lnum)
|
||||
return synIDattr(synID(a:lnum, 1, 1), 'name') =~ s:syn_blocks
|
||||
endfunction
|
||||
|
||||
function GetHogIndent()
|
||||
let prevlnum = prevnonblank(v:lnum-1)
|
||||
|
||||
" Comment blocks have identical indent
|
||||
if getline(v:lnum) =~ '^\s*#' && getline(prevlnum) =~ '^\s*#'
|
||||
return indent(prevlnum)
|
||||
endif
|
||||
|
||||
" Ignore comment lines when calculating indent
|
||||
while getline(prevlnum) =~ '^\s*#'
|
||||
let prevlnum = prevnonblank(prevlnum-1)
|
||||
if !prevlnum
|
||||
return previndent
|
||||
endif
|
||||
endwhile
|
||||
|
||||
" Continuation of a line that wasn't indented
|
||||
let prevline = getline(prevlnum)
|
||||
if prevline =~ '^\k\+.*\\\s*$'
|
||||
return &sw
|
||||
endif
|
||||
|
||||
" Continuation of a line that was indented
|
||||
if prevline =~ '\k\+.*\\\s*$'
|
||||
return indent(prevlnum)
|
||||
endif
|
||||
|
||||
" Indent the next line if previous line contained a start of a block
|
||||
" definition ('{' or '(').
|
||||
if prevline =~ '^\k\+[^#]*{}\@!\s*$' " TODO || prevline =~ '^\k\+[^#]*()\@!\s*$'
|
||||
return &sw
|
||||
endif
|
||||
|
||||
" Match inside of a block
|
||||
if s:IsInBlock(v:lnum)
|
||||
if prevline =~ "^\k\+.*$"
|
||||
return &sw
|
||||
else
|
||||
return indent(prevlnum)
|
||||
endif
|
||||
endif
|
||||
|
||||
return 0
|
||||
endfunction
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
+186
-336
@@ -1,350 +1,200 @@
|
||||
" Snort syntax file
|
||||
" Language: Snort Configuration File (see: http://www.snort.org)
|
||||
" Maintainer: Phil Wood, cornett@arpa.net
|
||||
" Last Change: $Date: 2004/06/13 17:41:17 $
|
||||
" Filenames: *.hog *.rules snort.conf vision.conf
|
||||
" URL: http://home.lanl.gov/cpw/vim/syntax/hog.vim
|
||||
" Snort Version: 1.8 By Martin Roesch (roesch@clark.net, www.snort.org)
|
||||
" TODO include all 1.8 syntax
|
||||
" Vim syntax file
|
||||
" Language: hog (Snort.conf + .rules)
|
||||
" Maintainer: Victor Roemer, <vroemer@badsec.org>.
|
||||
" Last Change: 2015 Oct 24 -> Rename syntax items from Snort -> Hog
|
||||
" 2012 Oct 24 -> Originalish release
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
if version < 600
|
||||
syntax clear
|
||||
syntax clear
|
||||
elseif exists("b:current_syntax")
|
||||
" For version 6.x: Quit when a syntax file was already loaded
|
||||
finish
|
||||
finish
|
||||
endif
|
||||
|
||||
syn match hogComment +\s\#[^\-:.%#=*].*$+lc=1 contains=hogTodo,hogCommentString
|
||||
syn region hogCommentString contained oneline start='\S\s\+\#+'ms=s+1 end='\#'
|
||||
setlocal iskeyword-=:
|
||||
setlocal iskeyword+=-
|
||||
syn case ignore
|
||||
|
||||
syn match hogJunk "\<\a\+|\s\+$"
|
||||
syn match hogNumber contained "\<\d\+\>"
|
||||
syn region hogText contained oneline start='\S' end=',' skipwhite
|
||||
syn region hogTexts contained oneline start='\S' end=';' skipwhite
|
||||
" Hog ruletype crap
|
||||
syn keyword HogRuleType ruletype nextgroup=HogRuleTypeName skipwhite
|
||||
syn match HogRuleTypeName "[[:alnum:]_]\+" contained nextgroup=HogRuleTypeBody skipwhite
|
||||
syn region HogRuleTypeBody start="{" end="}" contained contains=HogRuleTypeType,HogOutput fold
|
||||
syn keyword HogRuleTypeType type contained
|
||||
|
||||
" Environment Variables
|
||||
" =====================
|
||||
"syn match hogEnvvar contained "[\!]\=\$\I\i*"
|
||||
"syn match hogEnvvar contained "[\!]\=\${\I\i*}"
|
||||
syn match hogEnvvar contained "\$\I\i*"
|
||||
syn match hogEnvvar contained "[\!]\=\${\I\i*}"
|
||||
" Hog Configurables
|
||||
syn keyword HogPreproc preprocessor nextgroup=HogConfigName skipwhite
|
||||
syn keyword HogConfig config nextgroup=HogConfigName skipwhite
|
||||
syn keyword HogOutput output nextgroup=HogConfigName skipwhite
|
||||
syn match HogConfigName "[[:alnum:]_-]\+" contained nextgroup=HogConfigOpts skipwhite
|
||||
syn region HogConfigOpts start=":" skip="\\.\{-}$\|^\s*#.\{-}$\|^\s*$" end="$" fold keepend contained contains=HogSpecial,HogNumber,HogIPAddr,HogVar,HogComment
|
||||
|
||||
" Event filter's and threshold's
|
||||
syn region HogEvFilter start="event_filter\|threshold" skip="\\.\{-}$\|^\s*#.\{-}$\|^\s*$" end="$" fold transparent keepend contains=HogEvFilterKeyword,HogEvFilterOptions,HogComment
|
||||
syn keyword HogEvFilterKeyword skipwhite event_filter threshold
|
||||
syn keyword HogEvFilterOptions skipwhite type nextgroup=HogEvFilterTypes
|
||||
syn keyword HogEvFilterTypes skipwhite limit threshold both contained
|
||||
syn keyword HogEvFilterOptions skipwhite track nextgroup=HogEvFilterTrack
|
||||
syn keyword HogEvFilterTrack skipwhite by_src by_dst contained
|
||||
syn keyword HogEvFilterOptions skipwhite gen_id sig_id count seconds nextgroup=HogNumber
|
||||
|
||||
" Suppressions
|
||||
syn region HogEvFilter start="suppress" skip="\\.\{-}$\|^\s*#.\{-}$\|^\s*$" end="$" fold transparent keepend contains=HogSuppressKeyword,HogComment
|
||||
syn keyword HogSuppressKeyword skipwhite suppress
|
||||
syn keyword HogSuppressOptions skipwhite gen_id sig_id nextgroup=HogNumber
|
||||
syn keyword HogSuppressOptions skipwhite track nextgroup=HogEvFilterTrack
|
||||
syn keyword HogSuppressOptions skipwhite ip nextgroup=HogIPAddr
|
||||
|
||||
" Attribute table
|
||||
syn keyword HogAttribute attribute_table nextgroup=HogAttributeFile
|
||||
syn match HogAttributeFile contained ".*$" contains=HogVar,HogAttributeType,HogComment
|
||||
syn keyword HogAttributeType filename
|
||||
|
||||
" Hog includes
|
||||
syn keyword HogInclude include nextgroup=HogIncludeFile skipwhite
|
||||
syn match HogIncludeFile ".*$" contained contains=HogVar,HogComment
|
||||
|
||||
" Hog dynamic libraries
|
||||
syn keyword HogDylib dynamicpreprocessor dynamicengine dynamicdetection nextgroup=HogDylibFile skipwhite
|
||||
syn match HogDylibFile "\s.*$" contained contains=HogVar,HogDylibType,HogComment
|
||||
syn keyword HogDylibType directory file contained
|
||||
|
||||
" Variable dereferenced with '$'
|
||||
syn match HogVar "\$[[:alnum:]_]\+"
|
||||
|
||||
", Variables declared with 'var'
|
||||
syn keyword HogVarType var nextgroup=HogVarSet skipwhite
|
||||
syn match HogVarSet "[[:alnum:]_]\+" display contained nextgroup=HogVarValue skipwhite
|
||||
syn match HogVarValue ".*$" contained contains=HogString,HogNumber,HogVar,HogComment
|
||||
|
||||
" Variables declared with 'ipvar'
|
||||
syn keyword HogIPVarType ipvar nextgroup=HogIPVarSet skipwhite
|
||||
syn match HogIPVarSet "[[:alnum:]_]\+" display contained nextgroup=HogIPVarList,HogSpecial skipwhite
|
||||
syn region HogIPVarList start="\[" end="]" contains=HogIPVarList,HogIPAddr,HogVar,HogOpNot
|
||||
|
||||
" Variables declared with 'portvar'
|
||||
syn keyword HogPortVarType portvar nextgroup=HogPortVarSet skipwhite
|
||||
syn match HogPortVarSet "[[:alnum:]_]\+" display contained nextgroup=HogPortVarList,HogPort,HogOpRange,HogOpNot,HogSpecial skipwhite
|
||||
syn region HogPortVarList start="\[" end="]" contains=HogPortVarList,HogVar,HogOpNot,HogPort,HogOpRange,HogOpNot
|
||||
syn match HogPort "\<\%(\d\+\|any\)\>" display contains=HogOpRange nextgroup=HogOpRange
|
||||
|
||||
" Generic stuff
|
||||
syn match HogIPAddr contained "\<\%(\d\{1,3}\(\.\d\{1,3}\)\{3}\|any\)\>" nextgroup=HogIPCidr
|
||||
syn match HogIPAddr contained "\<\d\{1,3}\(\.\d\{1,3}\)\{3}\>" nextgroup=HogIPCidr
|
||||
syn match HogIPCidr contained "\/\([0-2][0-9]\=\|3[0-2]\=\)"
|
||||
syn region HogHexEsc contained start='|' end='|' oneline
|
||||
syn region HogString contained start='"' end='"' extend oneline contains=HogHexEsc
|
||||
syn match HogNumber contained display "\<\d\+\>"
|
||||
syn match HogNumber contained display "\<\d\+\>"
|
||||
syn match HogNumber contained display "0x\x\+\>"
|
||||
syn keyword HogSpecial contained true false yes no default all any
|
||||
syn keyword HogSpecialAny contained any
|
||||
syn match HogOpNot "!" contained
|
||||
syn match HogOpRange ":" contained
|
||||
|
||||
" Rules
|
||||
syn keyword HogRuleAction activate alert drop block dynamic log pass reject sdrop sblock skipwhite nextgroup=HogRuleProto,HogRuleBlock
|
||||
syn keyword HogRuleProto ip tcp udp icmp skipwhite contained nextgroup=HogRuleSrcIP
|
||||
syn match HogRuleSrcIP "\S\+" transparent skipwhite contained contains=HogIPVarList,HogIPAddr,HogVar,HogOpNot nextgroup=HogRuleSrcPort
|
||||
syn match HogRuleSrcPort "\S\+" transparent skipwhite contained contains=HogPortVarList,HogVar,HogPort,HogOpRange,HogOpNot nextgroup=HogRuleDir
|
||||
syn match HogRuleDir "->\|<>" skipwhite contained nextgroup=HogRuleDstIP
|
||||
syn match HogRuleDstIP "\S\+" transparent skipwhite contained contains=HogIPVarList,HogIPAddr,HogVar,HogOpNot nextgroup=HogRuleDstPort
|
||||
syn match HogRuleDstPort "\S\+" transparent skipwhite contained contains=HogPortVarList,HogVar,HogPort,HogOpRange,HogOpNot nextgroup=HogRuleBlock
|
||||
syn region HogRuleBlock start="(" end=")" transparent skipwhite contained contains=HogRuleOption,HogComment fold
|
||||
",HogString,HogComment,HogVar,HogOptNot
|
||||
"syn region HogRuleOption start="\<gid\|sid\|rev\|depth\|offset\|distance\|within\>" end="\ze;" skipwhite contained contains=HogNumber
|
||||
syn keyword HogRuleOption skipwhite contained nextgroup=HogRuleSROP msg gid sid rev classtype priority metadata content nocase rawbytes
|
||||
syn keyword HogRuleOption skipwhite contained nextgroup=HogRuleSROP depth offset distance within http_client_body http_cookie http_raw_cookie http_header
|
||||
syn keyword HogRuleOption skipwhite contained nextgroup=HogRuleSROP http_raw_header http_method http_uri http_raw_uri http_stat_code http_stat_msg
|
||||
syn keyword HogRuleOption skipwhite contained nextgroup=HogRuleSROP fast_pattern uricontent urilen isdataat pcre pkt_data file_data base64_decode base64_data
|
||||
syn keyword HogRuleOption skipwhite contained nextgroup=HogRuleSROP byte_test byte_jump byte_extract ftpbounce asn1 cvs dce_iface dce_opnum dce_stub_data
|
||||
syn keyword HogRuleOption skipwhite contained nextgroup=HogRuleSROP sip_method sip_stat_code sip_header sip_body gtp_type gtp_info gtp_version ssl_version
|
||||
syn keyword HogRuleOption skipwhite contained nextgroup=HogRuleSROP ssl_state fragoffset ttl tos id ipopts fragbits dsize flags flow flowbits seq ack window
|
||||
syn keyword HogRuleOption skipwhite contained nextgroup=HogRuleSROP itype icode icmp_id icmp_seq rpc ip_proto sameip stream_reassemble stream_size
|
||||
syn keyword HogRuleOption skipwhite contained nextgroup=HogRuleSROP logto session resp react tag activates activated_by count replace detection_filter
|
||||
syn keyword HogRuleOption skipwhite contained nextgroup=HogRuleSROP threshold reference sd_pattern file_type file_group
|
||||
|
||||
syn region HogRuleSROP start=':' end=";" transparent keepend contained contains=HogRuleChars,HogString,HogNumber
|
||||
syn match HogRuleChars "\%(\k\|\.\|?\|=\|/\|%\|&\)\+" contained
|
||||
syn match HogURLChars "\%(\.\|?\|=\)\+" contained
|
||||
|
||||
" Hog File Type Rules
|
||||
syn match HogFileType /^\s*file.*$/ transparent contains=HogFileTypeOpt,HogFileFROP
|
||||
syn keyword HogFileTypeOpt skipwhite contained nextgroup=HogRuleFROP file type ver category id rev content offset msg group
|
||||
syn region HogFileFROP start=':' end=";" transparent keepend contained contains=NotASemicoln
|
||||
syn match NotASemiColn ".*$" contained
|
||||
|
||||
|
||||
" String handling lifted from vim.vim written by Dr. Charles E. Campbell, Jr.
|
||||
" Try to catch strings, if nothing else matches (therefore it must precede the others!)
|
||||
" vmEscapeBrace handles ["] []"] (ie. stays as string)
|
||||
syn region hogEscapeBrace oneline contained transparent start="[^\\]\(\\\\\)*\[\^\=\]\=" skip="\\\\\|\\\]" end="\]"me=e-1
|
||||
syn match hogPatSep contained "\\[|()]"
|
||||
syn match hogNotPatSep contained "\\\\"
|
||||
syn region hogString oneline start=+[^:a-zA-Z\->!\\]"+hs=e+1 skip=+\\\\\|\\"+ end=+"\s*;+he=s-1 contains=hogEscapeBrace,hogPatSep,hogNotPatSep oneline
|
||||
""syn region hogString oneline start=+[^:a-zA-Z>!\\]'+lc=1 skip=+\\\\\|\\'+ end=+'+ contains=hogEscapeBrace,vimPatSep,hogNotPatSep
|
||||
"syn region hogString oneline start=+=!+lc=1 skip=+\\\\\|\\!+ end=+!+ contains=hogEscapeBrace,hogPatSep,hogNotPatSep
|
||||
"syn region hogString oneline start="=+"lc=1 skip="\\\\\|\\+" end="+" contains=hogEscapeBrace,hogPatSep,hogNotPatSep
|
||||
"syn region hogString oneline start="[^\\]+\s*[^a-zA-Z0-9.]"lc=1 skip="\\\\\|\\+" end="+" contains=hogEscapeBrace,hogPatSep,hogNotPatSep
|
||||
"syn region hogString oneline start="\s/\s*\A"lc=1 skip="\\\\\|\\+" end="/" contains=hogEscapeBrace,hogPatSep,hogNotPatSep
|
||||
"syn match hogString contained +"[^"]*\\$+ skipnl nextgroup=hogStringCont
|
||||
"syn match hogStringCont contained +\(\\\\\|.\)\{-}[^\\]"+
|
||||
" Comments
|
||||
syn keyword HogTodo XXX TODO NOTE contained
|
||||
syn match HogTodo "Step\s\+#\=\d\+" contained
|
||||
syn region HogComment start="#" end="$" contains=HogTodo,@Spell
|
||||
|
||||
syn case match
|
||||
|
||||
" Beginners - Patterns that involve ^
|
||||
"
|
||||
syn match hogLineComment +^[ \t]*#.*$+ contains=hogTodo,hogCommentString,hogCommentTitle
|
||||
syn match hogCommentTitle '#\s*\u\a*\(\s\+\u\a*\)*:'ms=s+1 contained
|
||||
syn keyword hogTodo contained TODO
|
||||
|
||||
" Rule keywords
|
||||
syn match hogARPCOpt contained "\d\+,\*,\*"
|
||||
syn match hogARPCOpt contained "\d\+,\d\+,\*"
|
||||
syn match hogARPCOpt contained "\d\+,\*,\d\+"
|
||||
syn match hogARPCOpt contained "\d\+,\d\+,\d"
|
||||
syn match hogATAGOpt contained "session"
|
||||
syn match hogATAGOpt contained "host"
|
||||
syn match hogATAGOpt contained "dst"
|
||||
syn match hogATAGOpt contained "src"
|
||||
syn match hogATAGOpt contained "seconds"
|
||||
syn match hogATAGOpt contained "packets"
|
||||
syn match hogATAGOpt contained "bytes"
|
||||
syn keyword hogARespOpt contained rst_snd rst_rcv rst_all skipwhite
|
||||
syn keyword hogARespOpt contained icmp_net icmp_host icmp_port icmp_all skipwhite
|
||||
syn keyword hogAReactOpt contained block warn msg skipwhite
|
||||
syn match hogAReactOpt contained "proxy\d\+" skipwhite
|
||||
syn keyword hogAFOpt contained logto content_list skipwhite
|
||||
syn keyword hogAIPOptVal contained eol nop ts sec lsrr lsrre satid ssrr rr skipwhite
|
||||
syn keyword hogARefGrps contained arachnids skipwhite
|
||||
syn keyword hogARefGrps contained bugtraq skipwhite
|
||||
syn keyword hogARefGrps contained cve skipwhite
|
||||
syn keyword hogSessionVal contained printable all skipwhite
|
||||
syn match hogAFlagOpt contained "[0FSRPAUfsrpau21]\+" skipwhite
|
||||
syn match hogAFragOpt contained "[DRMdrm]\+" skipwhite
|
||||
"
|
||||
" Output syslog options
|
||||
" Facilities
|
||||
syn keyword hogSysFac contained LOG_AUTH LOG_AUTHPRIV LOG_DAEMON LOG_LOCAL0
|
||||
syn keyword hogSysFac contained LOG_LOCAL1 LOG_LOCAL2 LOG_LOCAL3 LOG_LOCAL4
|
||||
syn keyword hogSysFac contained LOG_LOCAL5 LOG_LOCAL6 LOG_LOCAL7 LOG_USER
|
||||
" Priorities
|
||||
syn keyword hogSysPri contained LOG_EMERG ALERT LOG_CRIT LOG_ERR
|
||||
syn keyword hogSysPri contained LOG_WARNING LOG_NOTICE LOG_INFO LOG_DEBUG
|
||||
" Options
|
||||
syn keyword hogSysOpt contained LOG_CONS LOG_NDELAY LOG_PERROR
|
||||
syn keyword hogSysOpt contained LOG_PID
|
||||
" RuleTypes
|
||||
syn keyword hogRuleType contained log pass alert activate dynamic
|
||||
|
||||
" Output log_database arguments and parameters
|
||||
" Type of database followed by ,
|
||||
" syn keyword hogDBSQL contained mysql postgresql unixodbc
|
||||
" Parameters param=constant
|
||||
" are just various constants assigned to parameter names
|
||||
|
||||
" Output log_database arguments and parameters
|
||||
" Type of database followed by ,
|
||||
syn keyword hogDBType contained alert log
|
||||
syn keyword hogDBSRV contained mysql postgresql unixodbc
|
||||
" Parameters param=constant
|
||||
" are just various constants assigned to parameter names
|
||||
syn keyword hogDBParam contained dbname host port user password sensor_name
|
||||
|
||||
" Output xml arguments and parameters
|
||||
" xml args
|
||||
syn keyword hogXMLArg contained log alert
|
||||
syn keyword hogXMLParam contained file protocol host port cert key ca server sanitize encoding detail
|
||||
"
|
||||
" hog rule handler '(.*)'
|
||||
syn region hogAOpt contained oneline start="rpc" end=":"me=e-1 nextgroup=hogARPCOptGrp skipwhite
|
||||
syn region hogARPCOptGrp contained oneline start="."hs=s+1 end=";"me=e-1 contains=hogARPCOpt skipwhite
|
||||
|
||||
syn region hogAOpt contained oneline start="tag" end=":"me=e-1 nextgroup=hogATAGOptGrp skipwhite
|
||||
syn region hogATAGOptGrp contained oneline start="."hs=s+1 skip="," end=";"me=e-1 contains=hogATAGOpt,hogNumber skipwhite
|
||||
"
|
||||
syn region hogAOpt contained oneline start="nocase\|sameip" end=";"me=e-1 skipwhite oneline keepend
|
||||
"
|
||||
syn region hogAOpt contained start="resp" end=":"me=e-1 nextgroup=hogARespOpts skipwhite
|
||||
syn region hogARespOpts contained oneline start="." end="[,;]" contains=hogARespOpt skipwhite nextgroup=hogARespOpts
|
||||
"
|
||||
syn region hogAOpt contained start="react" end=":"me=e-1 nextgroup=hogAReactOpts skipwhite
|
||||
syn region hogAReactOpts contained oneline start="." end="[,;]" contains=hogAReactOpt skipwhite nextgroup=hogAReactOpts
|
||||
|
||||
syn region hogAOpt contained oneline start="depth\|seq\|ttl\|ack\|icmp_seq\|activates\|activated_by\|dsize\|icode\|icmp_id\|count\|itype\|tos\|id\|offset" end=":"me=e-1 nextgroup=hogANOptGrp skipwhite
|
||||
syn region hogANOptGrp contained oneline start="."hs=s+1 end=";"me=e-1 contains=hogNumber skipwhite oneline keepend
|
||||
|
||||
syn region hogAOpt contained oneline start="classtype" end=":"me=e-1 nextgroup=hogAFileGrp skipwhite
|
||||
|
||||
syn region hogAOpt contained oneline start="regex\|msg\|content" end=":"me=e-1 nextgroup=hogAStrGrp skipwhite
|
||||
"syn region hogAStrGrp contained oneline start=+:\s*"+hs=s+1 skip="\\;" end=+"\s*;+he=s-1 contains=hogString skipwhite oneline keepend
|
||||
syn region hogAStrGrp contained oneline start=+:\s*"\|:"+hs=s+1 skip="\\;" end=+"\s*;+he=s-1 contains=hogString skipwhite oneline keepend
|
||||
|
||||
syn region hogAOpt contained oneline start="logto\|content-list" end=":"me=e-1 nextgroup=hogAFileGrp skipwhite
|
||||
syn region hogAFileGrp contained oneline start="."hs=s+1 end=";"me=e-1 contains=hogFileName skipwhite
|
||||
|
||||
syn region hogAOpt contained oneline start="reference" end=":"me=e-1 nextgroup=hogARefGrp skipwhite
|
||||
syn region hogARefGrp contained oneline start="."hs=s+1 end=","me=e-1 contains=hogARefGrps nextgroup=hogARefName skipwhite
|
||||
syn region hogARefName contained oneline start="."hs=s+1 end=";"me=e-1 contains=hogString,hogFileName,hogNumber skipwhite
|
||||
|
||||
syn region hogAOpt contained oneline start="flags" end=":"he=s-1 nextgroup=hogAFlagOpt skipwhite oneline keepend
|
||||
|
||||
syn region hogAOpt contained oneline start="fragbits" end=":"he=s-1 nextgroup=hogAFlagOpt skipwhite oneline keepend
|
||||
|
||||
syn region hogAOpt contained oneline start="ipopts" end=":"he=s-1 nextgroup=hogAIPOptVal skipwhite oneline keepend
|
||||
|
||||
"syn region hogAOpt contained oneline start="." end=":"he=s-1 contains=hogAFOpt nextgroup=hogFileName skipwhite
|
||||
|
||||
syn region hogAOpt contained oneline start="session" end=":"he=s-1 nextgroup=hogSessionVal skipwhite
|
||||
|
||||
syn match nothing "$"
|
||||
syn region hogRules oneline contains=nothing start='$' end="$"
|
||||
syn region hogRules oneline contains=hogRule start='('ms=s+1 end=")\s*$" skipwhite
|
||||
syn region hogRule contained oneline start="." skip="\\;" end=";"he=s-1 contains=hogAOpts, skipwhite keepend
|
||||
"syn region hogAOpts contained oneline start="." end="[;]"he=s-1 contains=hogAOpt skipwhite
|
||||
syn region hogAOpts contained oneline start="." end="[;]"me=e-1 contains=hogAOpt skipwhite
|
||||
|
||||
|
||||
" ruletype command
|
||||
syn keyword hogRTypeStart skipwhite ruletype nextgroup=hogRuleName skipwhite
|
||||
syn region hogRuleName contained start="." end="\s" contains=hogFileName nextgroup=hogRTypeRegion
|
||||
" type ruletype sub type
|
||||
syn region hogRtypeRegion contained start="{" end="}" nextgroup=hogRTypeStart
|
||||
syn keyword hogRTypeStart skipwhite type nextgroup=hogRuleTypes skipwhite
|
||||
syn region hogRuleTypes contained start="." end="\s" contains=hogRuleType nextgroup=hogOutStart
|
||||
|
||||
|
||||
" var command
|
||||
syn keyword hogVarStart skipwhite var nextgroup=hogVarIdent skipwhite
|
||||
syn region hogVarIdent contained start="."hs=e+1 end="\s\+"he=s-1 contains=hogEnvvar nextgroup=hogVarRegion skipwhite
|
||||
syn region hogVarRegion contained oneline start="." contains=hogIPaddr,hogEnvvar,hogNumber,hogString,hogFileName end="$"he=s-1 keepend skipwhite
|
||||
|
||||
" config command
|
||||
syn keyword hogConfigStart config skipwhite nextgroup=hogConfigType
|
||||
syn match hogConfigType contained "\<classification\>" nextgroup=hogConfigTypeRegion skipwhite
|
||||
syn region hogConfigTypeRegion contained oneline start=":"ms=s+1 end="$" contains=hogNumber,hogText keepend skipwhite
|
||||
|
||||
|
||||
" include command
|
||||
syn keyword hogIncStart include skipwhite nextgroup=hogIncRegion
|
||||
syn region hogIncRegion contained oneline start="\>" contains=hogFileName,hogEnvvar end="$" keepend
|
||||
|
||||
" preprocessor command
|
||||
" http_decode, minfrag, portscan[-ignorehosts]
|
||||
syn keyword hogPPrStart preprocessor skipwhite nextgroup=hogPPr
|
||||
syn match hogPPr contained "\<spade\>" nextgroup=hogPPrRegion skipwhite
|
||||
syn match hogPPr contained "\<spade-homenet\>" nextgroup=hogPPrRegion skipwhite
|
||||
syn match hogPPr contained "\<spade-threshlearn\>" nextgroup=hogPPrRegion skipwhite
|
||||
syn match hogPPr contained "\<spade-adapt\>" nextgroup=hogPPrRegion skipwhite
|
||||
syn match hogPPr contained "\<spade-adapt2\>" nextgroup=hogPPrRegion skipwhite
|
||||
syn match hogPPr contained "\<spade-adapt3\>" nextgroup=hogPPrRegion skipwhite
|
||||
syn match hogPPr contained "\<spade-survey\>" nextgroup=hogPPrRegion skipwhite
|
||||
syn match hogPPr contained "\<defrag\>" nextgroup=hogPPrRegion skipwhite
|
||||
syn match hogPPr contained "\<telnet_decode\>" nextgroup=hogPPrRegion skipwhite
|
||||
syn match hogPPr contained "\<rpc_decode\>" nextgroup=hogPPrRegion skipwhite
|
||||
syn match hogPPr contained "\<bo\>" nextgroup=hogPPrRegion skipwhite
|
||||
syn match hogPPr contained "\<stream\>" nextgroup=hogStreamRegion skipwhite
|
||||
syn match hogPPr contained "\<stream2\>" nextgroup=hogStreamRegion skipwhite
|
||||
syn match hogPPr contained "\<stream3\>" nextgroup=hogStreamRegion skipwhite
|
||||
syn match hogPPr contained "\<http_decode\>" nextgroup=hogPPrRegion skipwhite
|
||||
syn match hogPPr contained "\<minfrag\>" nextgroup=hogPPrRegion skipwhite
|
||||
syn match hogPPr contained "\<portscan[-ignorehosts]*\>" nextgroup=hogPPrRegion skipwhite
|
||||
syn region hogPPrRegion contained oneline start="$" end="$" keepend
|
||||
syn region hogPPrRegion contained oneline start=":" end="$" contains=hogNumber,hogIPaddr,hogEnvvar,hogFileName keepend
|
||||
syn keyword hogStreamArgs contained timeout ports maxbytes
|
||||
syn region hogStreamRegion contained oneline start=":" end="$" contains=hogStreamArgs,hogNumber
|
||||
|
||||
" output command
|
||||
syn keyword hogOutStart output nextgroup=hogOut skipwhite
|
||||
"
|
||||
" alert_syslog
|
||||
syn match hogOut contained "\<alert_syslog\>" nextgroup=hogSyslogRegion skipwhite
|
||||
syn region hogSyslogRegion contained start=":" end="$" contains=hogSysFac,hogSysPri,hogSysOpt,hogEnvvar oneline skipwhite keepend
|
||||
"
|
||||
" alert_fast (full,smb,unixsock, and tcpdump)
|
||||
syn match hogOut contained "\<alert_fast\|alert_full\|alert_smb\|alert_unixsock\|log_tcpdump\>" nextgroup=hogLogFileRegion skipwhite
|
||||
syn region hogLogFileRegion contained start=":" end="$" contains=hogFileName,hogEnvvar oneline skipwhite keepend
|
||||
"
|
||||
" database
|
||||
syn match hogOut contained "\<database\>" nextgroup=hogDBTypes skipwhite
|
||||
syn region hogDBTypes contained start=":" end="," contains=hogDBType,hogEnvvar nextgroup=hogDBSRVs skipwhite
|
||||
syn region hogDBSRVs contained start="\s\+" end="," contains=hogDBSRV nextgroup=hogDBParams skipwhite
|
||||
syn region hogDBParams contained start="." end="="me=e-1 contains=hogDBParam nextgroup=hogDBValues
|
||||
syn region hogDBValues contained start="." end="\>" contains=hogNumber,hogEnvvar,hogAscii nextgroup=hogDBParams oneline skipwhite
|
||||
syn match hogAscii contained "\<\a\+"
|
||||
"
|
||||
" log_tcpdump
|
||||
syn match hogOut contained "\<log_tcpdump\>" nextgroup=hogLogRegion skipwhite
|
||||
syn region hogLogRegion oneline start=":" skipwhite end="$" contains=hogEnvvar,hogFileName keepend
|
||||
"
|
||||
" xml
|
||||
syn keyword hogXMLTrans contained http https tcp iap
|
||||
syn match hogOut contained "\<xml\>" nextgroup=hogXMLRegion skipwhite
|
||||
syn region hogXMLRegion contained start=":" end="," contains=hogXMLArg,hogEnvvar nextgroup=hogXMLParams skipwhite
|
||||
"syn region hogXMLParams contained start="." end="="me=e-1 contains=hogXMLProto nextgroup=hogXMLProtos
|
||||
"syn region hogXMLProtos contained start="." end="\>" contains=hogXMLTrans nextgroup=hogXMLParams
|
||||
syn region hogXMLParams contained start="." end="="me=e-1 contains=hogXMLParam nextgroup=hogXMLValue
|
||||
syn region hogXMLValue contained start="." end="\>" contains=hogNumber,hogIPaddr,hogEnvvar,hogAscii,hogFileName nextgroup=hogXMLParams oneline skipwhite keepend
|
||||
"
|
||||
" Filename
|
||||
syn match hogFileName contained "[-./[:alnum:]_~]\+"
|
||||
syn match hogFileName contained "[-./[:alnum:]_~]\+"
|
||||
" IP address
|
||||
syn match hogIPaddr "\<\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}\>"
|
||||
syn match hogIPaddr "\<\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}/\d\{1,2}\>"
|
||||
|
||||
syn keyword hogProto tcp TCP ICMP icmp udp UDP
|
||||
|
||||
" hog alert address port pairs
|
||||
" hog IPaddresses
|
||||
syn match hogIPaddrAndPort contained "\<\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}\>" skipwhite nextgroup=hogPort
|
||||
syn match hogIPaddrAndPort contained "\<\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}/\d\{1,2}\>" skipwhite nextgroup=hogPort
|
||||
syn match hogIPaddrAndPort contained "\<any\>" skipwhite nextgroup=hogPort
|
||||
syn match hogIPaddrAndPort contained "\$\I\i*" nextgroup=hogPort skipwhite
|
||||
syn match hogIPaddrAndPort contained "\${\I\i*}" nextgroup=hogPort skipwhite
|
||||
"syn match hogPort contained "[\!]\=[\:]\=\d\+L\=\>" skipwhite
|
||||
syn match hogPort contained "[\:]\=\d\+\>"
|
||||
syn match hogPort contained "[\!]\=\<any\>" skipwhite
|
||||
syn match hogPort contained "[\!]\=\d\+L\=:\d\+L\=\>" skipwhite
|
||||
|
||||
" action commands
|
||||
syn keyword hog7Functions activate skipwhite nextgroup=hogActRegion
|
||||
syn keyword hog7Functions dynamic skipwhite nextgroup=hogActRegion
|
||||
syn keyword hogActStart alert skipwhite nextgroup=hogActRegion
|
||||
syn keyword hogActStart log skipwhite nextgroup=hogActRegion
|
||||
syn keyword hogActStart pass skipwhite nextgroup=hogActRegion
|
||||
|
||||
syn region hogActRegion contained oneline start="tcp\|TCP\|udp\|UDP\|icmp\|ICMP" end="\s\+"me=s-1 nextgroup=hogActSource oneline keepend skipwhite
|
||||
syn region hogActSource contained oneline contains=hogIPaddrAndPort start="\s\+"ms=e+1 end="->\|<>"me=e-2 oneline keepend skipwhite nextgroup=hogActDest
|
||||
syn region hogActDest contained oneline contains=hogIPaddrAndPort start="->\|<>" end="$" oneline keepend
|
||||
syn region hogActDest contained oneline contains=hogIPaddrAndPort start="->\|<>" end="("me=e-1 oneline keepend skipwhite nextgroup=hogRules
|
||||
|
||||
|
||||
" ====================
|
||||
if version >= 508 || !exists("did_hog_syn_inits")
|
||||
if version < 508
|
||||
let did_hog_syn_inits = 1
|
||||
command -nargs=+ HiLink hi link <args>
|
||||
else
|
||||
command -nargs=+ HiLink hi def link <args>
|
||||
endif
|
||||
" The default methods for highlighting. Can be overridden later
|
||||
HiLink hogComment Comment
|
||||
HiLink hogLineComment Comment
|
||||
HiLink hogAscii Constant
|
||||
HiLink hogCommentString Constant
|
||||
HiLink hogFileName Constant
|
||||
HiLink hogIPaddr Constant
|
||||
HiLink hogNotPatSep Constant
|
||||
HiLink hogNumber Constant
|
||||
HiLink hogText Constant
|
||||
HiLink hogString Constant
|
||||
HiLink hogSysFac Constant
|
||||
HiLink hogSysOpt Constant
|
||||
HiLink hogSysPri Constant
|
||||
" HiLink hogAStrGrp Error
|
||||
HiLink hogJunk Error
|
||||
HiLink hogEnvvar Identifier
|
||||
HiLink hogIPaddrAndPort Identifier
|
||||
HiLink hogVarIdent Identifier
|
||||
HiLink hogATAGOpt PreProc
|
||||
HiLink hogAIPOptVal PreProc
|
||||
HiLink hogARespOpt PreProc
|
||||
HiLink hogAReactOpt PreProc
|
||||
HiLink hogAFlagOpt PreProc
|
||||
HiLink hogAFragOpt PreProc
|
||||
HiLink hogCommentTitle PreProc
|
||||
HiLink hogDBType PreProc
|
||||
HiLink hogDBSRV PreProc
|
||||
HiLink hogPort PreProc
|
||||
HiLink hogARefGrps PreProc
|
||||
HiLink hogSessionVal PreProc
|
||||
HiLink hogXMLArg PreProc
|
||||
HiLink hogARPCOpt PreProc
|
||||
HiLink hogPatSep Special
|
||||
HiLink hog7Functions Statement
|
||||
HiLink hogActStart Statement
|
||||
HiLink hogIncStart Statement
|
||||
HiLink hogConfigStart Statement
|
||||
HiLink hogOutStart Statement
|
||||
HiLink hogPPrStart Statement
|
||||
HiLink hogVarStart Statement
|
||||
HiLink hogRTypeStart Statement
|
||||
HiLink hogTodo Todo
|
||||
HiLink hogRuleType Type
|
||||
HiLink hogAFOpt Type
|
||||
HiLink hogANoVal Type
|
||||
HiLink hogAStrOpt Type
|
||||
HiLink hogANOpt Type
|
||||
HiLink hogAOpt Type
|
||||
HiLink hogDBParam Type
|
||||
HiLink hogStreamArgs Type
|
||||
HiLink hogOut Type
|
||||
HiLink hogPPr Type
|
||||
HiLink hogConfigType Type
|
||||
HiLink hogActRegion Type
|
||||
HiLink hogProto Type
|
||||
HiLink hogXMLParam Type
|
||||
HiLink resp Todo
|
||||
HiLink cLabel Label
|
||||
delcommand HiLink
|
||||
if !exists("hog_minlines")
|
||||
let hog_minlines = 100
|
||||
endif
|
||||
exec "syn sync minlines=" . hog_minlines
|
||||
|
||||
hi link HogRuleType Statement
|
||||
hi link HogRuleTypeName Type
|
||||
hi link HogRuleTypeType Keyword
|
||||
|
||||
hi link HogPreproc Statement
|
||||
hi link HogConfig Statement
|
||||
hi link HogOutput Statement
|
||||
hi link HogConfigName Type
|
||||
|
||||
"hi link HogEvFilter
|
||||
hi link HogEvFilterKeyword Statement
|
||||
hi link HogSuppressKeyword Statement
|
||||
hi link HogEvFilterTypes Constant
|
||||
hi link HogEvFilterTrack Constant
|
||||
|
||||
hi link HogAttribute Statement
|
||||
hi link HogAttributeFile String
|
||||
hi link HogAttributeType Statement
|
||||
|
||||
hi link HogInclude Statement
|
||||
hi link HogIncludeFile String
|
||||
|
||||
hi link HogDylib Statement
|
||||
hi link HogDylibType Statement
|
||||
hi link HogDylibFile String
|
||||
|
||||
" Variables
|
||||
" var
|
||||
hi link HogVar Identifier
|
||||
hi link HogVarType Keyword
|
||||
hi link HogVarSet Identifier
|
||||
hi link HogVarValue String
|
||||
" ipvar
|
||||
hi link HogIPVarType Keyword
|
||||
hi link HogIPVarSet Identifier
|
||||
" portvar
|
||||
hi link HogPortVarType Keyword
|
||||
hi link HogPortVarSet Identifier
|
||||
hi link HogPort Constant
|
||||
|
||||
hi link HogTodo Todo
|
||||
hi link HogComment Comment
|
||||
hi link HogString String
|
||||
hi link HogHexEsc PreProc
|
||||
hi link HogNumber Number
|
||||
hi link HogSpecial Constant
|
||||
hi link HogSpecialAny Constant
|
||||
hi link HogIPAddr Constant
|
||||
hi link HogIPCidr Constant
|
||||
hi link HogOpNot Operator
|
||||
hi link HogOpRange Operator
|
||||
|
||||
hi link HogRuleAction Statement
|
||||
hi link HogRuleProto Identifier
|
||||
hi link HogRuleDir Operator
|
||||
hi link HogRuleOption Keyword
|
||||
hi link HogRuleChars String
|
||||
|
||||
hi link HogFileType HogRuleAction
|
||||
hi link HogFileTypeOpt HogRuleOption
|
||||
hi link NotASemiColn HogRuleChars
|
||||
|
||||
let b:current_syntax = "hog"
|
||||
|
||||
" hog: cpw=59
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
[Desktop Entry]
|
||||
Name=Vim
|
||||
GenericName=Text Editor
|
||||
GenericName[de]=Texteditor
|
||||
Comment=Edit text files
|
||||
Comment[af]=Redigeer tekslêers
|
||||
Comment[am]=የጽሑፍ ፋይሎች ያስተካክሉ
|
||||
Comment[ar]=حرّر ملفات نصية
|
||||
Comment[az]=Mətn fayllarını redaktə edin
|
||||
Comment[be]=Рэдагаваньне тэкставых файлаў
|
||||
Comment[bg]=Редактиране на текстови файлове
|
||||
Comment[bn]=টেক্স্ট ফাইল এডিট করুন
|
||||
Comment[bs]=Izmijeni tekstualne datoteke
|
||||
Comment[ca]=Edita fitxers de text
|
||||
Comment[cs]=Úprava textových souborů
|
||||
Comment[cy]=Golygu ffeiliau testun
|
||||
Comment[da]=Redigér tekstfiler
|
||||
Comment[de]=Textdateien bearbeiten
|
||||
Comment[el]=Επεξεργασία αρχείων κειμένου
|
||||
Comment[en_CA]=Edit text files
|
||||
Comment[en_GB]=Edit text files
|
||||
Comment[es]=Edita archivos de texto
|
||||
Comment[et]=Redigeeri tekstifaile
|
||||
Comment[eu]=Editatu testu-fitxategiak
|
||||
Comment[fa]=ویرایش پروندههای متنی
|
||||
Comment[fi]=Muokkaa tekstitiedostoja
|
||||
Comment[fr]=Édite des fichiers texte
|
||||
Comment[ga]=Eagar comhad Téacs
|
||||
Comment[gu]=લખાણ ફાઇલોમાં ફેરફાર કરો
|
||||
Comment[he]=ערוך קבצי טקסט
|
||||
Comment[hi]=पाठ फ़ाइलें संपादित करें
|
||||
Comment[hr]=Uređivanje tekstualne datoteke
|
||||
Comment[hu]=Szövegfájlok szerkesztése
|
||||
Comment[id]=Edit file teks
|
||||
Comment[it]=Modifica file di testo
|
||||
Comment[ja]=テキストファイルを編集します
|
||||
Comment[kn]=ಪಠ್ಯ ಕಡತಗಳನ್ನು ಸಂಪಾದಿಸು
|
||||
Comment[ko]=텍스트 파일을 편집합니다
|
||||
Comment[lt]=Redaguoti tekstines bylas
|
||||
Comment[lv]=Rediģēt teksta failus
|
||||
Comment[mk]=Уреди текстуални фајлови
|
||||
Comment[ml]=വാചക രചനകള് തിരുത്തുക
|
||||
Comment[mn]=Текст файл боловсруулах
|
||||
Comment[mr]=गद्य फाइल संपादित करा
|
||||
Comment[ms]=Edit fail teks
|
||||
Comment[nb]=Rediger tekstfiler
|
||||
Comment[ne]=पाठ फाइललाई संशोधन गर्नुहोस्
|
||||
Comment[nl]=Tekstbestanden bewerken
|
||||
Comment[nn]=Rediger tekstfiler
|
||||
Comment[no]=Rediger tekstfiler
|
||||
Comment[or]=ପାଠ୍ଯ ଫାଇଲଗୁଡ଼ିକୁ ସମ୍ପାଦନ କରନ୍ତୁ
|
||||
Comment[pa]=ਪਾਠ ਫਾਇਲਾਂ ਸੰਪਾਦਨ
|
||||
Comment[pl]=Edytor plików tekstowych
|
||||
Comment[pt]=Editar ficheiros de texto
|
||||
Comment[pt_BR]=Edite arquivos de texto
|
||||
Comment[ro]=Editare fişiere text
|
||||
Comment[ru]=Редактор текстовых файлов
|
||||
Comment[sk]=Úprava textových súborov
|
||||
Comment[sl]=Urejanje datotek z besedili
|
||||
Comment[sq]=Përpuno files teksti
|
||||
Comment[sr]=Измени текстуалне датотеке
|
||||
Comment[sr@Latn]=Izmeni tekstualne datoteke
|
||||
Comment[sv]=Redigera textfiler
|
||||
Comment[ta]=உரை கோப்புகளை தொகுக்கவும்
|
||||
Comment[th]=แก้ไขแฟ้มข้อความ
|
||||
Comment[tk]=Metin faýllary editle
|
||||
Comment[tr]=Metin dosyalarını düzenle
|
||||
Comment[uk]=Редактор текстових файлів
|
||||
Comment[vi]=Soạn thảo tập tin văn bản
|
||||
Comment[wa]=Asspougnî des fitchîs tecses
|
||||
Comment[zh_CN]=编辑文本文件
|
||||
Comment[zh_TW]=編輯文字檔
|
||||
TryExec=vim
|
||||
Exec=vim %F
|
||||
Terminal=true
|
||||
Type=Application
|
||||
Icon=gvim
|
||||
Categories=Utility;TextEditor;
|
||||
StartupNotify=false
|
||||
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
|
||||
@@ -1256,7 +1256,7 @@
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>79</string>
|
||||
<string>81</string>
|
||||
<key>NSMainNibFile</key>
|
||||
<string>MainMenu</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
|
||||
@@ -1993,8 +1993,10 @@ static void netbeansReadCallback(CFSocketRef s,
|
||||
const void *bytes = [data bytes];
|
||||
int idx = *((int*)bytes) + 1;
|
||||
send_tabline_menu_event(idx, TABLINE_MENU_CLOSE);
|
||||
[self redrawScreen];
|
||||
} else if (AddNewTabMsgID == msgid) {
|
||||
send_tabline_menu_event(0, TABLINE_MENU_NEW);
|
||||
[self redrawScreen];
|
||||
} else if (DraggedTabMsgID == msgid) {
|
||||
if (!data) return;
|
||||
const void *bytes = [data bytes];
|
||||
|
||||
+49
-13
@@ -317,7 +317,18 @@ defaultAdvanceForFont(NSFont *font)
|
||||
// NOTE: No need to set point size etc. since this is taken from the
|
||||
// regular font when drawing.
|
||||
[fontWide release];
|
||||
fontWide = [newFont retain];
|
||||
|
||||
// Use 'Apple Color Emoji' font for rendering emoji
|
||||
CGFloat size = [newFont pointSize];
|
||||
NSFontDescriptor *emojiDesc = [NSFontDescriptor
|
||||
fontDescriptorWithName:@"Apple Color Emoji" size:size];
|
||||
NSFontDescriptor *newFontDesc = [newFont fontDescriptor];
|
||||
NSDictionary *attrs = [NSDictionary
|
||||
dictionaryWithObject:[NSArray arrayWithObject:newFontDesc]
|
||||
forKey:NSFontCascadeListAttribute];
|
||||
NSFontDescriptor *desc =
|
||||
[emojiDesc fontDescriptorByAddingAttributes:attrs];
|
||||
fontWide = [[NSFont fontWithDescriptor:desc size:size] retain];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1028,6 +1039,22 @@ lookupFont(NSMutableArray *fontCache, const unichar *chars, UniCharCount count,
|
||||
return newFontRef;
|
||||
}
|
||||
|
||||
static UniCharCount
|
||||
gatherGlyphs(CGGlyph glyphs[], UniCharCount count)
|
||||
{
|
||||
// Gather scattered glyphs that was happended by Surrogate pair chars
|
||||
UniCharCount glyphCount = 0;
|
||||
NSUInteger pos = 0;
|
||||
NSUInteger i;
|
||||
for (i = 0; i < count; ++i) {
|
||||
if (glyphs[i] != 0) {
|
||||
++glyphCount;
|
||||
glyphs[pos++] = glyphs[i];
|
||||
}
|
||||
}
|
||||
return glyphCount;
|
||||
}
|
||||
|
||||
static void
|
||||
ligatureGlyphsForChars(const unichar *chars, CGGlyph *glyphs, CGPoint *positions, UniCharCount *length, CTFontRef font )
|
||||
{
|
||||
@@ -1093,15 +1120,13 @@ recurseDraw(const unichar *chars, CGGlyph *glyphs, CGPoint *positions,
|
||||
{
|
||||
if (CTFontGetGlyphsForCharacters(fontRef, chars, glyphs, length)) {
|
||||
// All chars were mapped to glyphs, so draw all at once and return.
|
||||
length = gatherGlyphs(glyphs, length);
|
||||
if (useLigatures) {
|
||||
memset(glyphs, 0, sizeof(CGGlyph) * length);
|
||||
ligatureGlyphsForChars(chars, glyphs, positions, &length, fontRef);
|
||||
}
|
||||
|
||||
CGFontRef cgFontRef = CTFontCopyGraphicsFont(fontRef, NULL);
|
||||
CGContextSetFont(context, cgFontRef);
|
||||
CGContextShowGlyphsAtPositions(context, glyphs, positions, length);
|
||||
CGFontRelease(cgFontRef);
|
||||
CTFontDrawGlyphs(fontRef, glyphs, positions, length, context);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1113,23 +1138,34 @@ recurseDraw(const unichar *chars, CGGlyph *glyphs, CGPoint *positions,
|
||||
// Draw as many consecutive glyphs as possible in the current font
|
||||
// (if a glyph is 0 that means it does not exist in the current
|
||||
// font).
|
||||
BOOL surrogatePair = NO;
|
||||
while (*g && g < glyphsEnd) {
|
||||
++g;
|
||||
++c;
|
||||
if (CFStringIsSurrogateHighCharacter(*c)) {
|
||||
surrogatePair = YES;
|
||||
g += 2;
|
||||
c += 2;
|
||||
} else {
|
||||
++g;
|
||||
++c;
|
||||
}
|
||||
++p;
|
||||
}
|
||||
|
||||
int count = g-glyphs;
|
||||
CGFontRef cgFontRef = CTFontCopyGraphicsFont(fontRef, NULL);
|
||||
CGContextSetFont(context, cgFontRef);
|
||||
CGContextShowGlyphsAtPositions(context, glyphs, positions, count);
|
||||
CGFontRelease(cgFontRef);
|
||||
if (surrogatePair)
|
||||
count = gatherGlyphs(glyphs, count);
|
||||
CTFontDrawGlyphs(fontRef, glyphs, positions, count, context);
|
||||
} else {
|
||||
// Skip past as many consecutive chars as possible which cannot be
|
||||
// drawn in the current font.
|
||||
while (0 == *g && g < glyphsEnd) {
|
||||
++g;
|
||||
++c;
|
||||
if (CFStringIsSurrogateHighCharacter(*c)) {
|
||||
g += 2;
|
||||
c += 2;
|
||||
} else {
|
||||
++g;
|
||||
++c;
|
||||
}
|
||||
++p;
|
||||
}
|
||||
|
||||
|
||||
+8
-1
@@ -1922,10 +1922,12 @@ test1 \
|
||||
test_autocmd_option \
|
||||
test_autoformat_join \
|
||||
test_breakindent \
|
||||
test_cdo \
|
||||
test_changelist \
|
||||
test_charsearch \
|
||||
test_close_count \
|
||||
test_command_count \
|
||||
test_comparators \
|
||||
test_erasebackword \
|
||||
test_eval \
|
||||
test_fixeol \
|
||||
@@ -2228,6 +2230,7 @@ install-languages: languages $(DEST_LANG) $(DEST_KMAP)
|
||||
ICON48PATH = $(DESTDIR)$(DATADIR)/icons/hicolor/48x48/apps
|
||||
ICON32PATH = $(DESTDIR)$(DATADIR)/icons/locolor/32x32/apps
|
||||
ICON16PATH = $(DESTDIR)$(DATADIR)/icons/locolor/16x16/apps
|
||||
DESKTOPPATH = $(DESTDIR)$(DATADIR)/applications
|
||||
KDEPATH = $(HOME)/.kde/share/icons
|
||||
install-icons:
|
||||
if test -d $(ICON48PATH) -a -w $(ICON48PATH) \
|
||||
@@ -2242,7 +2245,11 @@ install-icons:
|
||||
-a ! -f $(ICON16PATH)/gvim.png; then \
|
||||
$(INSTALL_DATA) $(SCRIPTSOURCE)/vim16x16.png $(ICON16PATH)/gvim.png; \
|
||||
fi
|
||||
|
||||
if test -d $(DESKTOPPATH) -a -w $(DESKTOPPATH); then \
|
||||
$(INSTALL_DATA) $(SCRIPTSOURCE)/vim.desktop \
|
||||
$(SCRIPTSOURCE)/gvim.desktop \
|
||||
$(DESKTOPPATH); \
|
||||
fi
|
||||
|
||||
$(HELPSOURCE)/vim.1 $(MACROSOURCE) $(TOOLSSOURCE):
|
||||
@echo Runtime files not found.
|
||||
|
||||
Vendored
+10
-2
@@ -4301,7 +4301,7 @@ rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
else
|
||||
if test -z "$MACOSX_DEPLOYMENT_TARGET"; then
|
||||
macosx_deployment_target=`/usr/bin/sw_vers -productVersion`
|
||||
macosx_deployment_target=`/usr/bin/sw_vers -productVersion|/usr/bin/sed -e 's/^\([0-9]*\.[0-9]*\).*/\1/'`
|
||||
XCODEFLAGS="$XCODEFLAGS MACOSX_DEPLOYMENT_TARGET=$macosx_deployment_target"
|
||||
fi
|
||||
fi
|
||||
@@ -5755,7 +5755,13 @@ $as_echo ">>> too old; need Perl version 5.003_01 or later <<<" >&6; }
|
||||
if test "$perl_ok" = "yes" -a "X$libperl" != "X"; then
|
||||
$as_echo "#define DYNAMIC_PERL 1" >>confdefs.h
|
||||
|
||||
PERL_CFLAGS="-DDYNAMIC_PERL_DLL=\\\"$libperl\\\" $PERL_CFLAGS"
|
||||
if ${vi_cv_dll_name_perl+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
vi_cv_dll_name_perl="$libperl"
|
||||
fi
|
||||
|
||||
PERL_CFLAGS="-DDYNAMIC_PERL_DLL=\\\"$vi_cv_dll_name_perl\\\" $PERL_CFLAGS"
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -6447,6 +6453,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 "$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;}
|
||||
@@ -6568,6 +6575,7 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
|
||||
conftest.$ac_objext conftest.beam conftest.$ac_ext
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
CFLAGS=$cflags_save
|
||||
LIBS=$libs_save
|
||||
|
||||
+5
-2
@@ -189,7 +189,7 @@ if test "`(uname) 2>/dev/null`" = Darwin; then
|
||||
LDFLAGS="$save_ldflags" ])
|
||||
else
|
||||
if test -z "$MACOSX_DEPLOYMENT_TARGET"; then
|
||||
macosx_deployment_target=`/usr/bin/sw_vers -productVersion`
|
||||
macosx_deployment_target=`/usr/bin/sw_vers -productVersion|/usr/bin/sed -e 's/^\([[0-9]]*\.[[0-9]]*\).*/\1/'`
|
||||
XCODEFLAGS="$XCODEFLAGS MACOSX_DEPLOYMENT_TARGET=$macosx_deployment_target"
|
||||
fi
|
||||
fi
|
||||
@@ -1051,7 +1051,8 @@ if test "$enable_perlinterp" = "yes" -o "$enable_perlinterp" = "dynamic"; then
|
||||
if test "$enable_perlinterp" = "dynamic"; then
|
||||
if test "$perl_ok" = "yes" -a "X$libperl" != "X"; then
|
||||
AC_DEFINE(DYNAMIC_PERL)
|
||||
PERL_CFLAGS="-DDYNAMIC_PERL_DLL=\\\"$libperl\\\" $PERL_CFLAGS"
|
||||
AC_CACHE_VAL(vi_cv_dll_name_perl, [vi_cv_dll_name_perl="$libperl"])
|
||||
PERL_CFLAGS="-DDYNAMIC_PERL_DLL=\\\"$vi_cv_dll_name_perl\\\" $PERL_CFLAGS"
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -1520,6 +1521,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
|
||||
AC_RUN_IFELSE([AC_LANG_SOURCE([
|
||||
#include <dlfcn.h>
|
||||
/* If this program fails, then RTLD_GLOBAL is needed.
|
||||
@@ -1601,6 +1603,7 @@ if test "$python_ok" = yes && test "$python3_ok" = yes; then
|
||||
return !not_needed;
|
||||
}])],
|
||||
[AC_MSG_RESULT(yes);AC_DEFINE(PY3_NO_RTLD_GLOBAL)], [AC_MSG_RESULT(no)])
|
||||
fi
|
||||
|
||||
CFLAGS=$cflags_save
|
||||
LIBS=$libs_save
|
||||
|
||||
+3
-3
@@ -1795,7 +1795,7 @@ write_viminfo(file, forceit)
|
||||
struct stat st_old; /* mch_stat() of existing viminfo file */
|
||||
#endif
|
||||
#ifdef WIN3264
|
||||
long perm = -1;
|
||||
int hidden = FALSE;
|
||||
#endif
|
||||
|
||||
if (no_viminfo())
|
||||
@@ -1858,7 +1858,7 @@ write_viminfo(file, forceit)
|
||||
#endif
|
||||
#ifdef WIN3264
|
||||
/* Get the file attributes of the existing viminfo file. */
|
||||
perm = mch_getperm(fname);
|
||||
hidden = mch_ishidden(fname);
|
||||
#endif
|
||||
|
||||
/*
|
||||
@@ -2033,7 +2033,7 @@ write_viminfo(file, forceit)
|
||||
|
||||
#ifdef WIN3264
|
||||
/* If the viminfo file was hidden then also hide the new file. */
|
||||
if (perm > 0 && (perm & FILE_ATTRIBUTE_HIDDEN))
|
||||
if (hidden)
|
||||
mch_hide(fname);
|
||||
#endif
|
||||
}
|
||||
|
||||
+6
-1
@@ -402,7 +402,12 @@ lua_link_init(char *libname, int verbose)
|
||||
int
|
||||
lua_enabled(int verbose)
|
||||
{
|
||||
return lua_link_init(DYNAMIC_LUA_DLL, verbose) == OK;
|
||||
#ifdef WIN3264
|
||||
char *dll = DYNAMIC_LUA_DLL;
|
||||
#else
|
||||
char *dll = *p_luadll ? (char *)p_luadll : DYNAMIC_LUA_DLL;
|
||||
#endif
|
||||
return lua_link_init(dll, verbose) == OK;
|
||||
}
|
||||
|
||||
#endif /* DYNAMIC_LUA */
|
||||
|
||||
+6
-1
@@ -611,7 +611,12 @@ perl_runtime_link_init(char *libname, int verbose)
|
||||
perl_enabled(verbose)
|
||||
int verbose;
|
||||
{
|
||||
return perl_runtime_link_init(DYNAMIC_PERL_DLL, verbose) == OK;
|
||||
#ifdef WIN3264
|
||||
char *dll = DYNAMIC_PERL_DLL;
|
||||
#else
|
||||
char *dll = *p_perldll ? (char *)p_perldll : DYNAMIC_PERL_DLL;
|
||||
#endif
|
||||
return perl_runtime_link_init(dll, verbose) == OK;
|
||||
}
|
||||
#endif /* DYNAMIC_PERL */
|
||||
|
||||
|
||||
+23
-2
@@ -465,20 +465,41 @@ OutputWritelines(OutputObject *self, PyObject *seq)
|
||||
}
|
||||
|
||||
static PyObject *
|
||||
OutputFlush(PyObject *self UNUSED)
|
||||
AlwaysNone(PyObject *self UNUSED)
|
||||
{
|
||||
/* do nothing */
|
||||
Py_INCREF(Py_None);
|
||||
return Py_None;
|
||||
}
|
||||
|
||||
static PyObject *
|
||||
AlwaysFalse(PyObject *self UNUSED)
|
||||
{
|
||||
/* do nothing */
|
||||
Py_INCREF(Py_False);
|
||||
return Py_False;
|
||||
}
|
||||
|
||||
static PyObject *
|
||||
AlwaysTrue(PyObject *self UNUSED)
|
||||
{
|
||||
/* do nothing */
|
||||
Py_INCREF(Py_True);
|
||||
return Py_True;
|
||||
}
|
||||
|
||||
/***************/
|
||||
|
||||
static struct PyMethodDef OutputMethods[] = {
|
||||
/* name, function, calling, doc */
|
||||
{"write", (PyCFunction)OutputWrite, METH_O, ""},
|
||||
{"writelines", (PyCFunction)OutputWritelines, METH_O, ""},
|
||||
{"flush", (PyCFunction)OutputFlush, METH_NOARGS, ""},
|
||||
{"flush", (PyCFunction)AlwaysNone, METH_NOARGS, ""},
|
||||
{"close", (PyCFunction)AlwaysNone, METH_NOARGS, ""},
|
||||
{"isatty", (PyCFunction)AlwaysFalse, METH_NOARGS, ""},
|
||||
{"readable", (PyCFunction)AlwaysFalse, METH_NOARGS, ""},
|
||||
{"seekable", (PyCFunction)AlwaysFalse, METH_NOARGS, ""},
|
||||
{"writable", (PyCFunction)AlwaysTrue, METH_NOARGS, ""},
|
||||
{"__dir__", (PyCFunction)OutputDir, METH_NOARGS, ""},
|
||||
{ NULL, NULL, 0, NULL}
|
||||
};
|
||||
|
||||
+6
-1
@@ -736,7 +736,12 @@ python_runtime_link_init(char *libname, int verbose)
|
||||
int
|
||||
python_enabled(int verbose)
|
||||
{
|
||||
return python_runtime_link_init(DYNAMIC_PYTHON_DLL, verbose) == OK;
|
||||
#ifdef WIN3264
|
||||
char *dll = DYNAMIC_PYTHON_DLL;
|
||||
#else
|
||||
char *dll = *p_pydll ? (char *)p_pydll : DYNAMIC_PYTHON_DLL;
|
||||
#endif
|
||||
return python_runtime_link_init(dll, verbose) == OK;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
+6
-1
@@ -686,7 +686,12 @@ py3_runtime_link_init(char *libname, int verbose)
|
||||
int
|
||||
python3_enabled(int verbose)
|
||||
{
|
||||
return py3_runtime_link_init(DYNAMIC_PYTHON3_DLL, verbose) == OK;
|
||||
#ifdef WIN3264
|
||||
char *dll = DYNAMIC_PYTHON3_DLL;
|
||||
#else
|
||||
char *dll = *p_py3dll ? (char *)p_py3dll : DYNAMIC_PYTHON3_DLL;
|
||||
#endif
|
||||
return py3_runtime_link_init(dll, verbose) == OK;
|
||||
}
|
||||
|
||||
/* Load the standard Python exceptions - don't import the symbols from the
|
||||
|
||||
+6
-1
@@ -647,7 +647,12 @@ ruby_runtime_link_init(char *libname, int verbose)
|
||||
ruby_enabled(verbose)
|
||||
int verbose;
|
||||
{
|
||||
return ruby_runtime_link_init(DYNAMIC_RUBY_DLL, verbose) == OK;
|
||||
#ifdef WIN3264
|
||||
char *dll = DYNAMIC_RUBY_DLL;
|
||||
#else
|
||||
char *dll = *p_rubydll ? (char *)p_rubydll : DYNAMIC_RUBY_DLL;
|
||||
#endif
|
||||
return ruby_runtime_link_init(dll, verbose) == OK;
|
||||
}
|
||||
#endif /* defined(DYNAMIC_RUBY) || defined(PROTO) */
|
||||
|
||||
|
||||
+5
-7
@@ -1244,8 +1244,10 @@ utf_char2cells(c)
|
||||
static struct interval doublewidth[] =
|
||||
{
|
||||
{0x1100, 0x115f},
|
||||
{0x2329, 0x232a},
|
||||
{0x2e80, 0x2e99},
|
||||
{0x2300, 0x23ff},
|
||||
{0x2700, 0x27bf},
|
||||
{0x2b00, 0x2bff},
|
||||
{0x2e00, 0x2e99},
|
||||
{0x2e9b, 0x2ef3},
|
||||
{0x2f00, 0x2fd5},
|
||||
{0x2ff0, 0x2ffb},
|
||||
@@ -1271,11 +1273,7 @@ utf_char2cells(c)
|
||||
{0xfe68, 0xfe6b},
|
||||
{0xff01, 0xff60},
|
||||
{0xffe0, 0xffe6},
|
||||
{0x1b000, 0x1b001},
|
||||
{0x1f200, 0x1f202},
|
||||
{0x1f210, 0x1f23a},
|
||||
{0x1f240, 0x1f248},
|
||||
{0x1f250, 0x1f251},
|
||||
{0x10000, 0x1fffd},
|
||||
{0x20000, 0x2fffd},
|
||||
{0x30000, 0x3fffd}
|
||||
};
|
||||
|
||||
@@ -1819,6 +1819,11 @@ static struct vimoption
|
||||
{"loadplugins", "lpl", P_BOOL|P_VI_DEF,
|
||||
(char_u *)&p_lpl, PV_NONE,
|
||||
{(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT},
|
||||
#if defined(DYNAMIC_LUA) && !defined(WIN3264)
|
||||
{"luadll", NULL, P_STRING|P_VI_DEF|P_SECURE,
|
||||
(char_u *)&p_luadll, PV_NONE,
|
||||
{(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
|
||||
#endif
|
||||
#ifdef FEAT_GUI_MAC
|
||||
{"macatsui", NULL, P_BOOL|P_VI_DEF|P_RCLR,
|
||||
(char_u *)&p_macatsui, PV_NONE,
|
||||
@@ -2061,6 +2066,11 @@ static struct vimoption
|
||||
# endif
|
||||
#endif
|
||||
(char_u *)0L} SCRIPTID_INIT},
|
||||
#if defined(DYNAMIC_PERL) && !defined(WIN3264)
|
||||
{"perldll", NULL, P_STRING|P_VI_DEF|P_SECURE,
|
||||
(char_u *)&p_perldll, PV_NONE,
|
||||
{(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
|
||||
#endif
|
||||
{"preserveindent", "pi", P_BOOL|P_VI_DEF|P_VIM,
|
||||
(char_u *)&p_pi, PV_PI,
|
||||
{(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
|
||||
@@ -2166,6 +2176,16 @@ static struct vimoption
|
||||
(char_u *)NULL, PV_NONE,
|
||||
#endif
|
||||
{(char_u *)0L, (char_u *)0L} SCRIPTID_INIT},
|
||||
#if defined(DYNAMIC_PYTHON3) && !defined(WIN3264)
|
||||
{"python3dll", NULL, P_STRING|P_VI_DEF|P_SECURE,
|
||||
(char_u *)&p_py3dll, PV_NONE,
|
||||
{(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
|
||||
#endif
|
||||
#if defined(DYNAMIC_PYTHON) && !defined(WIN3264)
|
||||
{"pythondll", NULL, P_STRING|P_VI_DEF|P_SECURE,
|
||||
(char_u *)&p_pydll, PV_NONE,
|
||||
{(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
|
||||
#endif
|
||||
{"quoteescape", "qe", P_STRING|P_ALLOCED|P_VI_DEF,
|
||||
#ifdef FEAT_TEXTOBJ
|
||||
(char_u *)&p_qe, PV_QE,
|
||||
@@ -2239,6 +2259,11 @@ static struct vimoption
|
||||
{(char_u *)NULL, (char_u *)0L}
|
||||
#endif
|
||||
SCRIPTID_INIT},
|
||||
#if defined(DYNAMIC_RUBY) && !defined(WIN3264)
|
||||
{"rubydll", NULL, P_STRING|P_VI_DEF|P_SECURE,
|
||||
(char_u *)&p_rubydll, PV_NONE,
|
||||
{(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
|
||||
#endif
|
||||
{"ruler", "ru", P_BOOL|P_VI_DEF|P_VIM|P_RSTAT,
|
||||
#ifdef FEAT_CMDL_INFO
|
||||
(char_u *)&p_ru, PV_NONE,
|
||||
|
||||
@@ -638,6 +638,9 @@ EXTERN char_u *p_lcs; /* 'listchars' */
|
||||
|
||||
EXTERN int p_lz; /* 'lazyredraw' */
|
||||
EXTERN int p_lpl; /* 'loadplugins' */
|
||||
#if defined(DYNAMIC_LUA) && !defined(WIN3264)
|
||||
EXTERN char_u *p_luadll; /* 'luadll' */
|
||||
#endif
|
||||
#ifdef FEAT_GUI_MAC
|
||||
EXTERN int p_macatsui; /* 'macatsui' */
|
||||
#endif
|
||||
@@ -694,6 +697,15 @@ EXTERN char_u *p_path; /* 'path' */
|
||||
#ifdef FEAT_SEARCHPATH
|
||||
EXTERN char_u *p_cdpath; /* 'cdpath' */
|
||||
#endif
|
||||
#if defined(DYNAMIC_PERL) && !defined(WIN3264)
|
||||
EXTERN char_u *p_perldll; /* 'perldll' */
|
||||
#endif
|
||||
#if defined(DYNAMIC_PYTHON3) && !defined(WIN3264)
|
||||
EXTERN char_u *p_py3dll; /* 'python3dll' */
|
||||
#endif
|
||||
#if defined(DYNAMIC_PYTHON) && !defined(WIN3264)
|
||||
EXTERN char_u *p_pydll; /* 'pythondll' */
|
||||
#endif
|
||||
#ifdef FEAT_RELTIME
|
||||
EXTERN long p_rdt; /* 'redrawtime' */
|
||||
#endif
|
||||
@@ -713,6 +725,9 @@ EXTERN int p_rs; /* 'restorescreen' */
|
||||
EXTERN int p_ari; /* 'allowrevins' */
|
||||
EXTERN int p_ri; /* 'revins' */
|
||||
#endif
|
||||
#if defined(DYNAMIC_RUBY) && !defined(WIN3264)
|
||||
EXTERN char_u *p_rubydll; /* 'rubydll' */
|
||||
#endif
|
||||
#ifdef FEAT_CMDL_INFO
|
||||
EXTERN int p_ru; /* 'ruler' */
|
||||
#endif
|
||||
|
||||
@@ -3097,6 +3097,20 @@ mch_hide(char_u *name)
|
||||
win32_setattrs(name, attrs);
|
||||
}
|
||||
|
||||
/*
|
||||
* Return TRUE if file "name" exists and is hidden.
|
||||
*/
|
||||
int
|
||||
mch_ishidden(char_u *name)
|
||||
{
|
||||
int f = win32_getattrs(name);
|
||||
|
||||
if (f == -1)
|
||||
return FALSE; /* file does not exist at all */
|
||||
|
||||
return (f & FILE_ATTRIBUTE_HIDDEN) != 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* return TRUE if "name" is a directory
|
||||
* return FALSE if "name" is not a directory or upon error
|
||||
|
||||
@@ -1094,8 +1094,20 @@ cb.append(">> OutputSetattr")
|
||||
ee('del sys.stdout.softspace')
|
||||
number_test('sys.stdout.softspace = %s', unsigned=True)
|
||||
number_test('sys.stderr.softspace = %s', unsigned=True)
|
||||
ee('assert sys.stdout.isatty()==False')
|
||||
ee('assert sys.stdout.seekable()==False')
|
||||
ee('sys.stdout.close()')
|
||||
ee('sys.stdout.flush()')
|
||||
ee('assert sys.stderr.isatty()==False')
|
||||
ee('assert sys.stderr.seekable()==False')
|
||||
ee('sys.stderr.close()')
|
||||
ee('sys.stderr.flush()')
|
||||
ee('sys.stdout.attr = None')
|
||||
cb.append(">> OutputWrite")
|
||||
ee('assert sys.stdout.writable()==True')
|
||||
ee('assert sys.stdout.readable()==False')
|
||||
ee('assert sys.stderr.writable()==True')
|
||||
ee('assert sys.stderr.readable()==False')
|
||||
ee('sys.stdout.write(None)')
|
||||
cb.append(">> OutputWriteLines")
|
||||
ee('sys.stdout.writelines(None)')
|
||||
|
||||
+13
-1
@@ -447,7 +447,7 @@ range:__dir__,__members__,append,end,start
|
||||
dictionary:__dir__,__members__,get,has_key,items,keys,locked,pop,popitem,scope,update,values
|
||||
list:__dir__,__members__,extend,locked
|
||||
function:__dir__,__members__,softspace
|
||||
output:__dir__,__members__,flush,softspace,write,writelines
|
||||
output:__dir__,__members__,close,flush,isatty,readable,seekable,softspace,writable,write,writelines
|
||||
{}
|
||||
{'a': 1}
|
||||
{'a': 1}
|
||||
@@ -488,8 +488,20 @@ sys.stderr.softspace = []:TypeError:('expected int(), long() or something suppor
|
||||
sys.stderr.softspace = None:TypeError:('expected int(), long() or something supporting coercing to long(), but got NoneType',)
|
||||
sys.stderr.softspace = -1:ValueError:('number must be greater or equal to zero',)
|
||||
<<< Finished
|
||||
assert sys.stdout.isatty()==False:NOT FAILED
|
||||
assert sys.stdout.seekable()==False:NOT FAILED
|
||||
sys.stdout.close():NOT FAILED
|
||||
sys.stdout.flush():NOT FAILED
|
||||
assert sys.stderr.isatty()==False:NOT FAILED
|
||||
assert sys.stderr.seekable()==False:NOT FAILED
|
||||
sys.stderr.close():NOT FAILED
|
||||
sys.stderr.flush():NOT FAILED
|
||||
sys.stdout.attr = None:AttributeError:('invalid attribute: attr',)
|
||||
>> OutputWrite
|
||||
assert sys.stdout.writable()==True:NOT FAILED
|
||||
assert sys.stdout.readable()==False:NOT FAILED
|
||||
assert sys.stderr.writable()==True:NOT FAILED
|
||||
assert sys.stderr.readable()==False:NOT FAILED
|
||||
sys.stdout.write(None):TypeError:('coercing to Unicode: need string or buffer, NoneType found',)
|
||||
>> OutputWriteLines
|
||||
sys.stdout.writelines(None):TypeError:("'NoneType' object is not iterable",)
|
||||
|
||||
@@ -1071,8 +1071,20 @@ cb.append(">> OutputSetattr")
|
||||
ee('del sys.stdout.softspace')
|
||||
number_test('sys.stdout.softspace = %s', unsigned=True)
|
||||
number_test('sys.stderr.softspace = %s', unsigned=True)
|
||||
ee('assert sys.stdout.isatty()==False')
|
||||
ee('assert sys.stdout.seekable()==False')
|
||||
ee('sys.stdout.close()')
|
||||
ee('sys.stdout.flush()')
|
||||
ee('assert sys.stderr.isatty()==False')
|
||||
ee('assert sys.stderr.seekable()==False')
|
||||
ee('sys.stderr.close()')
|
||||
ee('sys.stderr.flush()')
|
||||
ee('sys.stdout.attr = None')
|
||||
cb.append(">> OutputWrite")
|
||||
ee('assert sys.stdout.writable()==True')
|
||||
ee('assert sys.stdout.readable()==False')
|
||||
ee('assert sys.stderr.writable()==True')
|
||||
ee('assert sys.stderr.readable()==False')
|
||||
ee('sys.stdout.write(None)')
|
||||
cb.append(">> OutputWriteLines")
|
||||
ee('sys.stdout.writelines(None)')
|
||||
|
||||
+130
-118
@@ -65,11 +65,11 @@ l[1](1, 2, 3):(<class 'vim.error'>, error('Vim:E725: Calling dict function witho
|
||||
f(1, 2, 3):(<class 'vim.error'>, error('Vim:E117: Unknown function: New',))
|
||||
[0.0, 0.0]
|
||||
KeyError
|
||||
TypeError
|
||||
TypeError
|
||||
ValueError
|
||||
TypeError
|
||||
TypeError
|
||||
ValueError
|
||||
ValueError
|
||||
ValueError
|
||||
KeyError
|
||||
KeyError
|
||||
d : locked:0;scope:0
|
||||
@@ -447,7 +447,7 @@ range:__dir__,append,end,start
|
||||
dictionary:__dir__,get,has_key,items,keys,locked,pop,popitem,scope,update,values
|
||||
list:__dir__,extend,locked
|
||||
function:__dir__,softspace
|
||||
output:__dir__,flush,softspace,write,writelines
|
||||
output:__dir__,close,flush,isatty,readable,seekable,softspace,writable,write,writelines
|
||||
{}
|
||||
{'a': 1}
|
||||
{'a': 1}
|
||||
@@ -488,8 +488,20 @@ sys.stderr.softspace = []:(<class 'TypeError'>, TypeError('expected int() or som
|
||||
sys.stderr.softspace = None:(<class 'TypeError'>, TypeError('expected int() or something supporting coercing to int(), but got NoneType',))
|
||||
sys.stderr.softspace = -1:(<class 'ValueError'>, ValueError('number must be greater or equal to zero',))
|
||||
<<< Finished
|
||||
assert sys.stdout.isatty()==False:NOT FAILED
|
||||
assert sys.stdout.seekable()==False:NOT FAILED
|
||||
sys.stdout.close():NOT FAILED
|
||||
sys.stdout.flush():NOT FAILED
|
||||
assert sys.stderr.isatty()==False:NOT FAILED
|
||||
assert sys.stderr.seekable()==False:NOT FAILED
|
||||
sys.stderr.close():NOT FAILED
|
||||
sys.stderr.flush():NOT FAILED
|
||||
sys.stdout.attr = None:(<class 'AttributeError'>, AttributeError('invalid attribute: attr',))
|
||||
>> OutputWrite
|
||||
assert sys.stdout.writable()==True:NOT FAILED
|
||||
assert sys.stdout.readable()==False:NOT FAILED
|
||||
assert sys.stderr.writable()==True:NOT FAILED
|
||||
assert sys.stderr.readable()==False:NOT FAILED
|
||||
sys.stdout.write(None):(<class 'TypeError'>, TypeError("Can't convert 'NoneType' object to str implicitly",))
|
||||
>> OutputWriteLines
|
||||
sys.stdout.writelines(None):(<class 'TypeError'>, TypeError("'NoneType' object is not iterable",))
|
||||
@@ -501,30 +513,30 @@ sys.stdout.writelines(FailingIterNext()):(<class 'NotImplementedError'>, NotImpl
|
||||
> VimCommand
|
||||
>>> Testing StringToChars using vim.command(%s)
|
||||
vim.command(1):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
vim.command(b"\0"):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
vim.command("\0"):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
vim.command(b"\0"):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
vim.command("\0"):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
vim.command("", 2):(<class 'TypeError'>, TypeError('command() takes exactly one argument (2 given)',))
|
||||
> VimToPython
|
||||
> VimEval
|
||||
>>> Testing StringToChars using vim.eval(%s)
|
||||
vim.eval(1):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
vim.eval(b"\0"):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
vim.eval("\0"):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
vim.eval(b"\0"):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
vim.eval("\0"):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
vim.eval("", FailingTrue()):(<class 'TypeError'>, TypeError('function takes exactly 1 argument (2 given)',))
|
||||
> VimEvalPy
|
||||
>>> Testing StringToChars using vim.bindeval(%s)
|
||||
vim.bindeval(1):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
vim.bindeval(b"\0"):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
vim.bindeval("\0"):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
vim.bindeval(b"\0"):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
vim.bindeval("\0"):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
vim.eval("", 2):(<class 'TypeError'>, TypeError('function takes exactly 1 argument (2 given)',))
|
||||
> VimStrwidth
|
||||
>>> Testing StringToChars using vim.strwidth(%s)
|
||||
vim.strwidth(1):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
vim.strwidth(b"\0"):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
vim.strwidth("\0"):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
vim.strwidth(b"\0"):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
vim.strwidth("\0"):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
> VimForeachRTP
|
||||
vim.foreach_rtp(None):(<class 'TypeError'>, TypeError("'NoneType' object is not callable",))
|
||||
@@ -541,14 +553,14 @@ vim.options["abcQ"]:(<class 'KeyError'>, KeyError('abcQ',))
|
||||
vim.options[""]:(<class 'ValueError'>, ValueError('empty keys are not allowed',))
|
||||
>>> Testing StringToChars using vim.options[%s]
|
||||
vim.options[1]:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
vim.options[b"\0"]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
vim.options["\0"]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
vim.options[b"\0"]:(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
vim.options["\0"]:(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>> OptionsContains
|
||||
>>> Testing StringToChars using %s in vim.options
|
||||
1 in vim.options:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
b"\0" in vim.options:(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
"\0" in vim.options:(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
b"\0" in vim.options:(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
"\0" in vim.options:(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
> Dictionary
|
||||
>> DictionaryConstructor
|
||||
@@ -563,8 +575,8 @@ d.xxx = True:(<class 'AttributeError'>, AttributeError('cannot set attribute xxx
|
||||
d.get("a", 2, 3):(<class 'TypeError'>, TypeError('function takes at most 2 arguments (3 given)',))
|
||||
>>> Testing StringToChars using d.get(%s)
|
||||
d.get(1):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
d.get(b"\0"):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d.get("\0"):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d.get(b"\0"):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
d.get("\0"):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
d.pop("a"):(<class 'KeyError'>, KeyError('a',))
|
||||
dl.pop("a"):(<class 'vim.error'>, error('dictionary is locked',))
|
||||
@@ -577,23 +589,23 @@ for i in ned: ned["a"] = 1:(<class 'RuntimeError'>, RuntimeError('hashtab change
|
||||
dl["b"] = 1:(<class 'vim.error'>, error('dictionary is locked',))
|
||||
>>> Testing StringToChars using d[%s] = 1
|
||||
d[1] = 1:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
d[b"\0"] = 1:(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d["\0"] = 1:(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d[b"\0"] = 1:(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
d["\0"] = 1:(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using d["a"] = {%s : 1}
|
||||
d["a"] = {1 : 1}:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
d["a"] = {b"\0" : 1}:(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d["a"] = {"\0" : 1}:(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d["a"] = {b"\0" : 1}:(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
d["a"] = {"\0" : 1}:(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using d["a"] = {"abcF" : {%s : 1}}
|
||||
d["a"] = {"abcF" : {1 : 1}}:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
d["a"] = {"abcF" : {b"\0" : 1}}:(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d["a"] = {"abcF" : {"\0" : 1}}:(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d["a"] = {"abcF" : {b"\0" : 1}}:(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
d["a"] = {"abcF" : {"\0" : 1}}:(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using d["a"] = {"abcF" : Mapping({%s : 1})}
|
||||
d["a"] = {"abcF" : Mapping({1 : 1})}:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
d["a"] = {"abcF" : Mapping({b"\0" : 1})}:(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d["a"] = {"abcF" : Mapping({"\0" : 1})}:(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d["a"] = {"abcF" : Mapping({b"\0" : 1})}:(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
d["a"] = {"abcF" : Mapping({"\0" : 1})}:(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing *Iter* using d["a"] = {"abcF" : %s}
|
||||
d["a"] = {"abcF" : FailingIter()}:(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
|
||||
@@ -609,18 +621,18 @@ d["a"] = {"abcF" : FailingNumber()}:(<class 'NotImplementedError'>, NotImplement
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using d["a"] = Mapping({%s : 1})
|
||||
d["a"] = Mapping({1 : 1}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
d["a"] = Mapping({b"\0" : 1}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d["a"] = Mapping({"\0" : 1}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d["a"] = Mapping({b"\0" : 1}):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
d["a"] = Mapping({"\0" : 1}):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using d["a"] = Mapping({"abcG" : {%s : 1}})
|
||||
d["a"] = Mapping({"abcG" : {1 : 1}}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
d["a"] = Mapping({"abcG" : {b"\0" : 1}}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d["a"] = Mapping({"abcG" : {"\0" : 1}}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d["a"] = Mapping({"abcG" : {b"\0" : 1}}):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
d["a"] = Mapping({"abcG" : {"\0" : 1}}):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using d["a"] = Mapping({"abcG" : Mapping({%s : 1})})
|
||||
d["a"] = Mapping({"abcG" : Mapping({1 : 1})}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
d["a"] = Mapping({"abcG" : Mapping({b"\0" : 1})}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d["a"] = Mapping({"abcG" : Mapping({"\0" : 1})}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d["a"] = Mapping({"abcG" : Mapping({b"\0" : 1})}):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
d["a"] = Mapping({"abcG" : Mapping({"\0" : 1})}):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing *Iter* using d["a"] = Mapping({"abcG" : %s})
|
||||
d["a"] = Mapping({"abcG" : FailingIter()}):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
|
||||
@@ -658,18 +670,18 @@ d.update(FailingIterNext()):(<class 'NotImplementedError'>, NotImplementedError(
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using d.update({%s : 1})
|
||||
d.update({1 : 1}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
d.update({b"\0" : 1}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d.update({"\0" : 1}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d.update({b"\0" : 1}):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
d.update({"\0" : 1}):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using d.update({"abcF" : {%s : 1}})
|
||||
d.update({"abcF" : {1 : 1}}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
d.update({"abcF" : {b"\0" : 1}}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d.update({"abcF" : {"\0" : 1}}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d.update({"abcF" : {b"\0" : 1}}):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
d.update({"abcF" : {"\0" : 1}}):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using d.update({"abcF" : Mapping({%s : 1})})
|
||||
d.update({"abcF" : Mapping({1 : 1})}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
d.update({"abcF" : Mapping({b"\0" : 1})}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d.update({"abcF" : Mapping({"\0" : 1})}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d.update({"abcF" : Mapping({b"\0" : 1})}):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
d.update({"abcF" : Mapping({"\0" : 1})}):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing *Iter* using d.update({"abcF" : %s})
|
||||
d.update({"abcF" : FailingIter()}):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
|
||||
@@ -685,18 +697,18 @@ d.update({"abcF" : FailingNumber()}):(<class 'NotImplementedError'>, NotImplemen
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using d.update(Mapping({%s : 1}))
|
||||
d.update(Mapping({1 : 1})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
d.update(Mapping({b"\0" : 1})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d.update(Mapping({"\0" : 1})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d.update(Mapping({b"\0" : 1})):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
d.update(Mapping({"\0" : 1})):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using d.update(Mapping({"abcG" : {%s : 1}}))
|
||||
d.update(Mapping({"abcG" : {1 : 1}})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
d.update(Mapping({"abcG" : {b"\0" : 1}})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d.update(Mapping({"abcG" : {"\0" : 1}})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d.update(Mapping({"abcG" : {b"\0" : 1}})):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
d.update(Mapping({"abcG" : {"\0" : 1}})):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using d.update(Mapping({"abcG" : Mapping({%s : 1})}))
|
||||
d.update(Mapping({"abcG" : Mapping({1 : 1})})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
d.update(Mapping({"abcG" : Mapping({b"\0" : 1})})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d.update(Mapping({"abcG" : Mapping({"\0" : 1})})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d.update(Mapping({"abcG" : Mapping({b"\0" : 1})})):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
d.update(Mapping({"abcG" : Mapping({"\0" : 1})})):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing *Iter* using d.update(Mapping({"abcG" : %s}))
|
||||
d.update(Mapping({"abcG" : FailingIter()})):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
|
||||
@@ -724,23 +736,23 @@ d.update(FailingNumber()):(<class 'TypeError'>, TypeError("'FailingNumber' objec
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using d.update(((%s, 0),))
|
||||
d.update(((1, 0),)):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
d.update(((b"\0", 0),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d.update((("\0", 0),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d.update(((b"\0", 0),)):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
d.update((("\0", 0),)):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using d.update((("a", {%s : 1}),))
|
||||
d.update((("a", {1 : 1}),)):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
d.update((("a", {b"\0" : 1}),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d.update((("a", {"\0" : 1}),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d.update((("a", {b"\0" : 1}),)):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
d.update((("a", {"\0" : 1}),)):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using d.update((("a", {"abcF" : {%s : 1}}),))
|
||||
d.update((("a", {"abcF" : {1 : 1}}),)):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
d.update((("a", {"abcF" : {b"\0" : 1}}),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d.update((("a", {"abcF" : {"\0" : 1}}),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d.update((("a", {"abcF" : {b"\0" : 1}}),)):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
d.update((("a", {"abcF" : {"\0" : 1}}),)):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using d.update((("a", {"abcF" : Mapping({%s : 1})}),))
|
||||
d.update((("a", {"abcF" : Mapping({1 : 1})}),)):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
d.update((("a", {"abcF" : Mapping({b"\0" : 1})}),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d.update((("a", {"abcF" : Mapping({"\0" : 1})}),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d.update((("a", {"abcF" : Mapping({b"\0" : 1})}),)):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
d.update((("a", {"abcF" : Mapping({"\0" : 1})}),)):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing *Iter* using d.update((("a", {"abcF" : %s}),))
|
||||
d.update((("a", {"abcF" : FailingIter()}),)):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
|
||||
@@ -756,18 +768,18 @@ d.update((("a", {"abcF" : FailingNumber()}),)):(<class 'NotImplementedError'>, N
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using d.update((("a", Mapping({%s : 1})),))
|
||||
d.update((("a", Mapping({1 : 1})),)):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
d.update((("a", Mapping({b"\0" : 1})),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d.update((("a", Mapping({"\0" : 1})),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d.update((("a", Mapping({b"\0" : 1})),)):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
d.update((("a", Mapping({"\0" : 1})),)):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using d.update((("a", Mapping({"abcG" : {%s : 1}})),))
|
||||
d.update((("a", Mapping({"abcG" : {1 : 1}})),)):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
d.update((("a", Mapping({"abcG" : {b"\0" : 1}})),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d.update((("a", Mapping({"abcG" : {"\0" : 1}})),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d.update((("a", Mapping({"abcG" : {b"\0" : 1}})),)):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
d.update((("a", Mapping({"abcG" : {"\0" : 1}})),)):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using d.update((("a", Mapping({"abcG" : Mapping({%s : 1})})),))
|
||||
d.update((("a", Mapping({"abcG" : Mapping({1 : 1})})),)):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
d.update((("a", Mapping({"abcG" : Mapping({b"\0" : 1})})),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d.update((("a", Mapping({"abcG" : Mapping({"\0" : 1})})),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
d.update((("a", Mapping({"abcG" : Mapping({b"\0" : 1})})),)):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
d.update((("a", Mapping({"abcG" : Mapping({"\0" : 1})})),)):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing *Iter* using d.update((("a", Mapping({"abcG" : %s})),))
|
||||
d.update((("a", Mapping({"abcG" : FailingIter()})),)):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
|
||||
@@ -807,18 +819,18 @@ vim.List(FailingIterNext()):(<class 'NotImplementedError'>, NotImplementedError(
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using vim.List([{%s : 1}])
|
||||
vim.List([{1 : 1}]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
vim.List([{b"\0" : 1}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
vim.List([{"\0" : 1}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
vim.List([{b"\0" : 1}]):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
vim.List([{"\0" : 1}]):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using vim.List([{"abcF" : {%s : 1}}])
|
||||
vim.List([{"abcF" : {1 : 1}}]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
vim.List([{"abcF" : {b"\0" : 1}}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
vim.List([{"abcF" : {"\0" : 1}}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
vim.List([{"abcF" : {b"\0" : 1}}]):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
vim.List([{"abcF" : {"\0" : 1}}]):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using vim.List([{"abcF" : Mapping({%s : 1})}])
|
||||
vim.List([{"abcF" : Mapping({1 : 1})}]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
vim.List([{"abcF" : Mapping({b"\0" : 1})}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
vim.List([{"abcF" : Mapping({"\0" : 1})}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
vim.List([{"abcF" : Mapping({b"\0" : 1})}]):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
vim.List([{"abcF" : Mapping({"\0" : 1})}]):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing *Iter* using vim.List([{"abcF" : %s}])
|
||||
vim.List([{"abcF" : FailingIter()}]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
|
||||
@@ -834,18 +846,18 @@ vim.List([{"abcF" : FailingNumber()}]):(<class 'NotImplementedError'>, NotImplem
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using vim.List([Mapping({%s : 1})])
|
||||
vim.List([Mapping({1 : 1})]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
vim.List([Mapping({b"\0" : 1})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
vim.List([Mapping({"\0" : 1})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
vim.List([Mapping({b"\0" : 1})]):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
vim.List([Mapping({"\0" : 1})]):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using vim.List([Mapping({"abcG" : {%s : 1}})])
|
||||
vim.List([Mapping({"abcG" : {1 : 1}})]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
vim.List([Mapping({"abcG" : {b"\0" : 1}})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
vim.List([Mapping({"abcG" : {"\0" : 1}})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
vim.List([Mapping({"abcG" : {b"\0" : 1}})]):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
vim.List([Mapping({"abcG" : {"\0" : 1}})]):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using vim.List([Mapping({"abcG" : Mapping({%s : 1})})])
|
||||
vim.List([Mapping({"abcG" : Mapping({1 : 1})})]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
vim.List([Mapping({"abcG" : Mapping({b"\0" : 1})})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
vim.List([Mapping({"abcG" : Mapping({"\0" : 1})})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
vim.List([Mapping({"abcG" : Mapping({b"\0" : 1})})]):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
vim.List([Mapping({"abcG" : Mapping({"\0" : 1})})]):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing *Iter* using vim.List([Mapping({"abcG" : %s})])
|
||||
vim.List([Mapping({"abcG" : FailingIter()})]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
|
||||
@@ -892,18 +904,18 @@ nel[:] = FailingIterNextN(2):(<class 'NotImplementedError'>, NotImplementedError
|
||||
(b'a', b'b', b'c', b'O')
|
||||
>>> Testing StringToChars using l[:] = [{%s : 1}]
|
||||
l[:] = [{1 : 1}]:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
l[:] = [{b"\0" : 1}]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
l[:] = [{"\0" : 1}]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
l[:] = [{b"\0" : 1}]:(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
l[:] = [{"\0" : 1}]:(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using l[:] = [{"abcF" : {%s : 1}}]
|
||||
l[:] = [{"abcF" : {1 : 1}}]:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
l[:] = [{"abcF" : {b"\0" : 1}}]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
l[:] = [{"abcF" : {"\0" : 1}}]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
l[:] = [{"abcF" : {b"\0" : 1}}]:(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
l[:] = [{"abcF" : {"\0" : 1}}]:(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using l[:] = [{"abcF" : Mapping({%s : 1})}]
|
||||
l[:] = [{"abcF" : Mapping({1 : 1})}]:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
l[:] = [{"abcF" : Mapping({b"\0" : 1})}]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
l[:] = [{"abcF" : Mapping({"\0" : 1})}]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
l[:] = [{"abcF" : Mapping({b"\0" : 1})}]:(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
l[:] = [{"abcF" : Mapping({"\0" : 1})}]:(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing *Iter* using l[:] = [{"abcF" : %s}]
|
||||
l[:] = [{"abcF" : FailingIter()}]:(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
|
||||
@@ -919,18 +931,18 @@ l[:] = [{"abcF" : FailingNumber()}]:(<class 'NotImplementedError'>, NotImplement
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using l[:] = [Mapping({%s : 1})]
|
||||
l[:] = [Mapping({1 : 1})]:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
l[:] = [Mapping({b"\0" : 1})]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
l[:] = [Mapping({"\0" : 1})]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
l[:] = [Mapping({b"\0" : 1})]:(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
l[:] = [Mapping({"\0" : 1})]:(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using l[:] = [Mapping({"abcG" : {%s : 1}})]
|
||||
l[:] = [Mapping({"abcG" : {1 : 1}})]:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
l[:] = [Mapping({"abcG" : {b"\0" : 1}})]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
l[:] = [Mapping({"abcG" : {"\0" : 1}})]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
l[:] = [Mapping({"abcG" : {b"\0" : 1}})]:(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
l[:] = [Mapping({"abcG" : {"\0" : 1}})]:(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using l[:] = [Mapping({"abcG" : Mapping({%s : 1})})]
|
||||
l[:] = [Mapping({"abcG" : Mapping({1 : 1})})]:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
l[:] = [Mapping({"abcG" : Mapping({b"\0" : 1})})]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
l[:] = [Mapping({"abcG" : Mapping({"\0" : 1})})]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
l[:] = [Mapping({"abcG" : Mapping({b"\0" : 1})})]:(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
l[:] = [Mapping({"abcG" : Mapping({"\0" : 1})})]:(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing *Iter* using l[:] = [Mapping({"abcG" : %s})]
|
||||
l[:] = [Mapping({"abcG" : FailingIter()})]:(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
|
||||
@@ -963,18 +975,18 @@ l.extend(FailingIterNext()):(<class 'NotImplementedError'>, NotImplementedError(
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using l.extend([{%s : 1}])
|
||||
l.extend([{1 : 1}]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
l.extend([{b"\0" : 1}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
l.extend([{"\0" : 1}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
l.extend([{b"\0" : 1}]):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
l.extend([{"\0" : 1}]):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using l.extend([{"abcF" : {%s : 1}}])
|
||||
l.extend([{"abcF" : {1 : 1}}]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
l.extend([{"abcF" : {b"\0" : 1}}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
l.extend([{"abcF" : {"\0" : 1}}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
l.extend([{"abcF" : {b"\0" : 1}}]):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
l.extend([{"abcF" : {"\0" : 1}}]):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using l.extend([{"abcF" : Mapping({%s : 1})}])
|
||||
l.extend([{"abcF" : Mapping({1 : 1})}]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
l.extend([{"abcF" : Mapping({b"\0" : 1})}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
l.extend([{"abcF" : Mapping({"\0" : 1})}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
l.extend([{"abcF" : Mapping({b"\0" : 1})}]):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
l.extend([{"abcF" : Mapping({"\0" : 1})}]):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing *Iter* using l.extend([{"abcF" : %s}])
|
||||
l.extend([{"abcF" : FailingIter()}]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
|
||||
@@ -990,18 +1002,18 @@ l.extend([{"abcF" : FailingNumber()}]):(<class 'NotImplementedError'>, NotImplem
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using l.extend([Mapping({%s : 1})])
|
||||
l.extend([Mapping({1 : 1})]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
l.extend([Mapping({b"\0" : 1})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
l.extend([Mapping({"\0" : 1})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
l.extend([Mapping({b"\0" : 1})]):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
l.extend([Mapping({"\0" : 1})]):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using l.extend([Mapping({"abcG" : {%s : 1}})])
|
||||
l.extend([Mapping({"abcG" : {1 : 1}})]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
l.extend([Mapping({"abcG" : {b"\0" : 1}})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
l.extend([Mapping({"abcG" : {"\0" : 1}})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
l.extend([Mapping({"abcG" : {b"\0" : 1}})]):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
l.extend([Mapping({"abcG" : {"\0" : 1}})]):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using l.extend([Mapping({"abcG" : Mapping({%s : 1})})])
|
||||
l.extend([Mapping({"abcG" : Mapping({1 : 1})})]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
l.extend([Mapping({"abcG" : Mapping({b"\0" : 1})})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
l.extend([Mapping({"abcG" : Mapping({"\0" : 1})})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
l.extend([Mapping({"abcG" : Mapping({b"\0" : 1})})]):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
l.extend([Mapping({"abcG" : Mapping({"\0" : 1})})]):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing *Iter* using l.extend([Mapping({"abcG" : %s})])
|
||||
l.extend([Mapping({"abcG" : FailingIter()})]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
|
||||
@@ -1039,18 +1051,18 @@ vim.Function("xxx#non#existent#function#xxx"):NOT FAILED
|
||||
>> FunctionCall
|
||||
>>> Testing StringToChars using f({%s : 1})
|
||||
f({1 : 1}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
f({b"\0" : 1}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
f({"\0" : 1}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
f({b"\0" : 1}):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
f({"\0" : 1}):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using f({"abcF" : {%s : 1}})
|
||||
f({"abcF" : {1 : 1}}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
f({"abcF" : {b"\0" : 1}}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
f({"abcF" : {"\0" : 1}}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
f({"abcF" : {b"\0" : 1}}):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
f({"abcF" : {"\0" : 1}}):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using f({"abcF" : Mapping({%s : 1})})
|
||||
f({"abcF" : Mapping({1 : 1})}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
f({"abcF" : Mapping({b"\0" : 1})}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
f({"abcF" : Mapping({"\0" : 1})}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
f({"abcF" : Mapping({b"\0" : 1})}):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
f({"abcF" : Mapping({"\0" : 1})}):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing *Iter* using f({"abcF" : %s})
|
||||
f({"abcF" : FailingIter()}):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
|
||||
@@ -1066,18 +1078,18 @@ f({"abcF" : FailingNumber()}):(<class 'NotImplementedError'>, NotImplementedErro
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using f(Mapping({%s : 1}))
|
||||
f(Mapping({1 : 1})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
f(Mapping({b"\0" : 1})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
f(Mapping({"\0" : 1})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
f(Mapping({b"\0" : 1})):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
f(Mapping({"\0" : 1})):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using f(Mapping({"abcG" : {%s : 1}}))
|
||||
f(Mapping({"abcG" : {1 : 1}})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
f(Mapping({"abcG" : {b"\0" : 1}})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
f(Mapping({"abcG" : {"\0" : 1}})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
f(Mapping({"abcG" : {b"\0" : 1}})):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
f(Mapping({"abcG" : {"\0" : 1}})):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using f(Mapping({"abcG" : Mapping({%s : 1})}))
|
||||
f(Mapping({"abcG" : Mapping({1 : 1})})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
f(Mapping({"abcG" : Mapping({b"\0" : 1})})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
f(Mapping({"abcG" : Mapping({"\0" : 1})})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
f(Mapping({"abcG" : Mapping({b"\0" : 1})})):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
f(Mapping({"abcG" : Mapping({"\0" : 1})})):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing *Iter* using f(Mapping({"abcG" : %s}))
|
||||
f(Mapping({"abcG" : FailingIter()})):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
|
||||
@@ -1105,18 +1117,18 @@ f(FailingNumber()):(<class 'NotImplementedError'>, NotImplementedError('int',))
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using fd(self={%s : 1})
|
||||
fd(self={1 : 1}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
fd(self={b"\0" : 1}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
fd(self={"\0" : 1}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
fd(self={b"\0" : 1}):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
fd(self={"\0" : 1}):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using fd(self={"abcF" : {%s : 1}})
|
||||
fd(self={"abcF" : {1 : 1}}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
fd(self={"abcF" : {b"\0" : 1}}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
fd(self={"abcF" : {"\0" : 1}}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
fd(self={"abcF" : {b"\0" : 1}}):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
fd(self={"abcF" : {"\0" : 1}}):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using fd(self={"abcF" : Mapping({%s : 1})})
|
||||
fd(self={"abcF" : Mapping({1 : 1})}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
fd(self={"abcF" : Mapping({b"\0" : 1})}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
fd(self={"abcF" : Mapping({"\0" : 1})}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
fd(self={"abcF" : Mapping({b"\0" : 1})}):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
fd(self={"abcF" : Mapping({"\0" : 1})}):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing *Iter* using fd(self={"abcF" : %s})
|
||||
fd(self={"abcF" : FailingIter()}):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
|
||||
@@ -1132,18 +1144,18 @@ fd(self={"abcF" : FailingNumber()}):(<class 'NotImplementedError'>, NotImplement
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using fd(self=Mapping({%s : 1}))
|
||||
fd(self=Mapping({1 : 1})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
fd(self=Mapping({b"\0" : 1})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
fd(self=Mapping({"\0" : 1})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
fd(self=Mapping({b"\0" : 1})):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
fd(self=Mapping({"\0" : 1})):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using fd(self=Mapping({"abcG" : {%s : 1}}))
|
||||
fd(self=Mapping({"abcG" : {1 : 1}})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
fd(self=Mapping({"abcG" : {b"\0" : 1}})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
fd(self=Mapping({"abcG" : {"\0" : 1}})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
fd(self=Mapping({"abcG" : {b"\0" : 1}})):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
fd(self=Mapping({"abcG" : {"\0" : 1}})):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing StringToChars using fd(self=Mapping({"abcG" : Mapping({%s : 1})}))
|
||||
fd(self=Mapping({"abcG" : Mapping({1 : 1})})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
|
||||
fd(self=Mapping({"abcG" : Mapping({b"\0" : 1})})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
fd(self=Mapping({"abcG" : Mapping({"\0" : 1})})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
|
||||
fd(self=Mapping({"abcG" : Mapping({b"\0" : 1})})):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
fd(self=Mapping({"abcG" : Mapping({"\0" : 1})})):(<class 'ValueError'>, ValueError('embedded null byte',))
|
||||
<<< Finished
|
||||
>>> Testing *Iter* using fd(self=Mapping({"abcG" : %s}))
|
||||
fd(self=Mapping({"abcG" : FailingIter()})):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
|
||||
|
||||
@@ -756,6 +756,18 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
909,
|
||||
/**/
|
||||
908,
|
||||
/**/
|
||||
907,
|
||||
/**/
|
||||
906,
|
||||
/**/
|
||||
905,
|
||||
/**/
|
||||
904,
|
||||
/**/
|
||||
903,
|
||||
/**/
|
||||
|
||||
Reference in New Issue
Block a user