mirror of
https://github.com/macvim-dev/macvim.git
synced 2026-06-11 15:37:29 +02:00
Merge remote-tracking branch 'vim/master'
This commit is contained in:
@@ -114,6 +114,7 @@ SRC_ALL = \
|
||||
src/netbeans.c \
|
||||
src/normal.c \
|
||||
src/nv_cmdidxs.h \
|
||||
src/nv_cmds.h \
|
||||
src/ops.c \
|
||||
src/option.c \
|
||||
src/option.h \
|
||||
@@ -444,6 +445,7 @@ SRC_UNIX = \
|
||||
src/configure \
|
||||
src/configure.ac \
|
||||
src/create_cmdidxs.vim \
|
||||
src/create_nvcmdidxs.c \
|
||||
src/create_nvcmdidxs.vim \
|
||||
src/gui_at_fs.c \
|
||||
src/gui_at_sb.c \
|
||||
@@ -661,10 +663,7 @@ SRC_HAIKU = \
|
||||
# source files for the Mac (also in the extra archive)
|
||||
SRC_MAC = \
|
||||
src/INSTALLmac.txt \
|
||||
src/dehqx.py \
|
||||
src/os_mac_rsrc/*.icns \
|
||||
src/os_mac.h \
|
||||
src/os_mac.rsr.hqx \
|
||||
src/os_mac_conv.c \
|
||||
src/os_macosx.m \
|
||||
src/proto/os_mac_conv.pro \
|
||||
@@ -702,7 +701,6 @@ SRC_EXTRA = \
|
||||
$(SRC_QNX) \
|
||||
$(SRC_VMS) \
|
||||
README_os390.txt \
|
||||
src/infplist.xml \
|
||||
src/link.390 \
|
||||
src/os_vms_fix.com \
|
||||
src/toolbar.phi \
|
||||
|
||||
@@ -4,13 +4,13 @@ vim9script noclear
|
||||
# Language: C
|
||||
# Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
# Rewritten in Vim9 script by github user lacygoill
|
||||
# Last Change: 2021 Dec 27
|
||||
# Last Change: 2022 Jan 31
|
||||
|
||||
var prepended: string
|
||||
var grepCache: dict<list<dict<any>>>
|
||||
|
||||
# This function is used for the 'omnifunc' option.
|
||||
def ccomplete#Complete(findstart: bool, abase: string): any # {{{1
|
||||
export def Complete(findstart: bool, abase: string): any # {{{1
|
||||
if findstart
|
||||
# Locate the start of the item, including ".", "->" and "[...]".
|
||||
var line: string = getline('.')
|
||||
@@ -202,7 +202,7 @@ def ccomplete#Complete(findstart: bool, abase: string): any # {{{1
|
||||
|| !v['static']
|
||||
|| bufnr('%') == bufnr(v['filename']))
|
||||
|
||||
res = extendnew(res, tags->map((_, v: dict<any>) => Tag2item(v)))
|
||||
res = res->extend(tags->map((_, v: dict<any>) => Tag2item(v)))
|
||||
endif
|
||||
|
||||
if len(res) == 0
|
||||
@@ -216,9 +216,9 @@ def ccomplete#Complete(findstart: bool, abase: string): any # {{{1
|
||||
for i: number in len(diclist)->range()
|
||||
# New ctags has the "typeref" field. Patched version has "typename".
|
||||
if diclist[i]->has_key('typename')
|
||||
res = extendnew(res, diclist[i]['typename']->StructMembers(items[1 :], true))
|
||||
res = res->extend(diclist[i]['typename']->StructMembers(items[1 :], true))
|
||||
elseif diclist[i]->has_key('typeref')
|
||||
res = extendnew(res, diclist[i]['typeref']->StructMembers(items[1 :], true))
|
||||
res = res->extend(diclist[i]['typeref']->StructMembers(items[1 :], true))
|
||||
endif
|
||||
|
||||
# For a variable use the command, which must be a search pattern that
|
||||
@@ -227,7 +227,7 @@ def ccomplete#Complete(findstart: bool, abase: string): any # {{{1
|
||||
var line: string = diclist[i]['cmd']
|
||||
if line[: 1] == '/^'
|
||||
var col: number = line->charidx(match(line, '\<' .. items[0] .. '\>'))
|
||||
res = extendnew(res, line[2 : col - 1]->Nextitem(items[1 :], 0, true))
|
||||
res = res->extend(line[2 : col - 1]->Nextitem(items[1 :], 0, true))
|
||||
endif
|
||||
endif
|
||||
endfor
|
||||
@@ -256,11 +256,10 @@ def ccomplete#Complete(findstart: bool, abase: string): any # {{{1
|
||||
enddef
|
||||
|
||||
def GetAddition( # {{{1
|
||||
line: string,
|
||||
match: string,
|
||||
memarg: list<dict<any>>,
|
||||
bracket: bool
|
||||
): string
|
||||
line: string,
|
||||
match: string,
|
||||
memarg: list<dict<any>>,
|
||||
bracket: bool): string
|
||||
# Guess if the item is an array.
|
||||
if bracket && match(line, match .. '\s*\[') > 0
|
||||
return '['
|
||||
@@ -403,10 +402,9 @@ def Tagline2item(val: dict<any>, brackets: string): dict<string> # {{{1
|
||||
enddef
|
||||
|
||||
def Tagcmd2extra( # {{{1
|
||||
cmd: string,
|
||||
name: string,
|
||||
fname: string
|
||||
): string
|
||||
cmd: string,
|
||||
name: string,
|
||||
fname: string): string
|
||||
# Turn a command from a tag line to something that is useful in the menu
|
||||
var x: string
|
||||
if cmd =~ '^/^'
|
||||
@@ -427,11 +425,10 @@ def Tagcmd2extra( # {{{1
|
||||
enddef
|
||||
|
||||
def Nextitem( # {{{1
|
||||
lead: string,
|
||||
items: list<string>,
|
||||
depth: number,
|
||||
all: bool
|
||||
): list<dict<string>>
|
||||
lead: string,
|
||||
items: list<string>,
|
||||
depth: number,
|
||||
all: bool): list<dict<string>>
|
||||
# Find composing type in "lead" and match items[0] with it.
|
||||
# Repeat this recursively for items[1], if it's there.
|
||||
# When resolving typedefs "depth" is used to avoid infinite recursion.
|
||||
@@ -473,11 +470,11 @@ def Nextitem( # {{{1
|
||||
|
||||
# New ctags has the "typeref" field. Patched version has "typename".
|
||||
if item->has_key('typeref')
|
||||
res = extendnew(res, item['typeref']->StructMembers(items, all))
|
||||
res = res->extend(item['typeref']->StructMembers(items, all))
|
||||
continue
|
||||
endif
|
||||
if item->has_key('typename')
|
||||
res = extendnew(res, item['typename']->StructMembers(items, all))
|
||||
res = res->extend(item['typename']->StructMembers(items, all))
|
||||
continue
|
||||
endif
|
||||
|
||||
@@ -511,11 +508,11 @@ def Nextitem( # {{{1
|
||||
endif
|
||||
endfor
|
||||
if name != ''
|
||||
res = extendnew(res, StructMembers(cmdtokens[0] .. ':' .. name, items, all))
|
||||
res = res->extend(StructMembers(cmdtokens[0] .. ':' .. name, items, all))
|
||||
endif
|
||||
elseif depth < 10
|
||||
# Could be "typedef other_T some_T".
|
||||
res = extendnew(res, cmdtokens[0]->Nextitem(items, depth + 1, all))
|
||||
res = res->extend(cmdtokens[0]->Nextitem(items, depth + 1, all))
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
@@ -529,10 +526,9 @@ def Nextitem( # {{{1
|
||||
enddef
|
||||
|
||||
def StructMembers( # {{{1
|
||||
atypename: string,
|
||||
items: list<string>,
|
||||
all: bool
|
||||
): list<dict<string>>
|
||||
atypename: string,
|
||||
items: list<string>,
|
||||
all: bool): list<dict<string>>
|
||||
|
||||
# Search for members of structure "typename" in tags files.
|
||||
# Return a list with resulting matches.
|
||||
@@ -641,10 +637,9 @@ def StructMembers( # {{{1
|
||||
enddef
|
||||
|
||||
def SearchMembers( # {{{1
|
||||
matches: list<dict<any>>,
|
||||
items: list<string>,
|
||||
all: bool
|
||||
): list<dict<string>>
|
||||
matches: list<dict<any>>,
|
||||
items: list<string>,
|
||||
all: bool): list<dict<string>>
|
||||
|
||||
# For matching members, find matches for following items.
|
||||
# When "all" is true find all, otherwise just return 1 if there is any member.
|
||||
@@ -674,7 +669,7 @@ def SearchMembers( # {{{1
|
||||
endif
|
||||
|
||||
if typename != ''
|
||||
res = extendnew(res, StructMembers(typename, items, all))
|
||||
res = res->extend(StructMembers(typename, items, all))
|
||||
else
|
||||
# Use the search command (the declaration itself).
|
||||
var sb: number = line->match('\t\zs/^')
|
||||
@@ -683,7 +678,7 @@ def SearchMembers( # {{{1
|
||||
var e: number = line
|
||||
->charidx(match(line, '\<' .. matches[i]['match'] .. '\>', sb))
|
||||
if e > 0
|
||||
res = extendnew(res, line[s : e - 1]->Nextitem(items, 0, all))
|
||||
res = res->extend(line[s : e - 1]->Nextitem(items, 0, all))
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
Vendored
+20
-2
@@ -1,7 +1,7 @@
|
||||
" Vim functions for file type detection
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2022 Jan 28
|
||||
" Last Change: 2022 Jan 31
|
||||
|
||||
" These functions are moved here from runtime/filetype.vim to make startup
|
||||
" faster.
|
||||
@@ -67,6 +67,9 @@ func dist#ft#FTasmsyntax()
|
||||
endif
|
||||
endfunc
|
||||
|
||||
let s:ft_visual_basic_content = '\cVB_Name\|Begin VB\.\(Form\|MDIForm\|UserControl\)'
|
||||
|
||||
" See FTfrm() for Visual Basic form file detection
|
||||
func dist#ft#FTbas()
|
||||
if exists("g:filetype_bas")
|
||||
exe "setf " . g:filetype_bas
|
||||
@@ -86,7 +89,7 @@ func dist#ft#FTbas()
|
||||
setf freebasic
|
||||
elseif match(lines, qb64_preproc) > -1
|
||||
setf qb64
|
||||
elseif match(lines, '\cVB_Name\|Begin VB\.\(Form\|MDIForm\|UserControl\)') > -1
|
||||
elseif match(lines, s:ft_visual_basic_content) > -1
|
||||
setf vb
|
||||
else
|
||||
setf basic
|
||||
@@ -235,6 +238,21 @@ func dist#ft#FTe()
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func dist#ft#FTfrm()
|
||||
if exists("g:filetype_frm")
|
||||
exe "setf " . g:filetype_frm
|
||||
return
|
||||
endif
|
||||
|
||||
let lines = getline(1, min([line("$"), 5]))
|
||||
|
||||
if match(lines, s:ft_visual_basic_content) > -1
|
||||
setf vb
|
||||
else
|
||||
setf form
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" Distinguish between Forth and F#.
|
||||
" Provided by Doug Kearns.
|
||||
func dist#ft#FTfs()
|
||||
|
||||
@@ -292,7 +292,6 @@ inputrestore() Number restore typeahead
|
||||
inputsave() Number save and clear typeahead
|
||||
inputsecret({prompt} [, {text}]) String like input() but hiding the text
|
||||
insert({object}, {item} [, {idx}]) List insert {item} in {object} [before {idx}]
|
||||
internal_get_nv_cmdchar({idx}) Number command character at this index
|
||||
interrupt() none interrupt script execution
|
||||
invert({expr}) Number bitwise invert
|
||||
isdirectory({directory}) Number |TRUE| if {directory} is a directory
|
||||
@@ -655,8 +654,6 @@ test_null_string() String null value for testing
|
||||
test_option_not_set({name}) none reset flag indicating option was set
|
||||
test_override({expr}, {val}) none test with Vim internal overrides
|
||||
test_refcount({expr}) Number get the reference count of {expr}
|
||||
test_scrollbar({which}, {value}, {dragging})
|
||||
none scroll in the GUI for testing
|
||||
test_setmouse({row}, {col}) none set the mouse position for testing
|
||||
test_settime({expr}) none set current time for testing
|
||||
test_srand_seed([seed]) none set seed for testing srand()
|
||||
@@ -4618,11 +4615,6 @@ insert({object}, {item} [, {idx}]) *insert()*
|
||||
|
||||
Can also be used as a |method|: >
|
||||
mylist->insert(item)
|
||||
<
|
||||
*internal_get_nv_cmdchar()*
|
||||
internal_get_nv_cmdchar({idx})
|
||||
Return the normal/visual mode command character at the
|
||||
specified index. To be used only during the Vim build process.
|
||||
|
||||
interrupt() *interrupt()*
|
||||
Interrupt script execution. It works more or less like the
|
||||
|
||||
+10
-1
@@ -1,4 +1,4 @@
|
||||
*indent.txt* For Vim version 8.2. Last change: 2019 Dec 07
|
||||
*indent.txt* For Vim version 8.2. Last change: 2022 Jan 31
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -778,6 +778,15 @@ You can set the indent for the first line after <script> and <style>
|
||||
"auto" auto indent (same indent as the blocktag)
|
||||
"inc" auto indent + one indent step
|
||||
|
||||
You can set the indent for attributes after an open <tag line: >
|
||||
|
||||
:let g:html_indent_attribute = 1
|
||||
<
|
||||
VALUE MEANING ~
|
||||
1 auto indent, one indent step more than <tag
|
||||
2 auto indent, two indent steps (default)
|
||||
> 2 auto indent, more indent steps
|
||||
|
||||
Many tags increase the indent for what follows per default (see "Add Indent
|
||||
Tags" in the script). You can add further tags with: >
|
||||
|
||||
|
||||
@@ -256,6 +256,8 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
|
||||
Interfaces, such as Python, Ruby and Lua, are also disabled,
|
||||
since they could be used to execute shell commands. Perl uses
|
||||
the Safe module.
|
||||
For Unix restricted mode is used when the last part of $SHELL
|
||||
is "nologin" or "false".
|
||||
Note that the user may still find a loophole to execute a
|
||||
shell command, it has only been made difficult.
|
||||
|
||||
|
||||
+1
-5
@@ -7873,7 +7873,6 @@ interactive-functions usr_41.txt /*interactive-functions*
|
||||
interfaces-5.2 version5.txt /*interfaces-5.2*
|
||||
internal-variables eval.txt /*internal-variables*
|
||||
internal-wordlist spell.txt /*internal-wordlist*
|
||||
internal_get_nv_cmdchar() builtin.txt /*internal_get_nv_cmdchar()*
|
||||
internet intro.txt /*internet*
|
||||
interrupt() builtin.txt /*interrupt()*
|
||||
intro intro.txt /*intro*
|
||||
@@ -10066,10 +10065,7 @@ test_feedinput() testing.txt /*test_feedinput()*
|
||||
test_garbagecollect_now() testing.txt /*test_garbagecollect_now()*
|
||||
test_garbagecollect_soon() testing.txt /*test_garbagecollect_soon()*
|
||||
test_getvalue() testing.txt /*test_getvalue()*
|
||||
test_gui_drop_files() testing.txt /*test_gui_drop_files()*
|
||||
test_gui_mouse_event() testing.txt /*test_gui_mouse_event()*
|
||||
test_gui_tabline_event() testing.txt /*test_gui_tabline_event()*
|
||||
test_gui_tabmenu_event() testing.txt /*test_gui_tabmenu_event()*
|
||||
test_gui_event() testing.txt /*test_gui_event()*
|
||||
test_ignore_error() testing.txt /*test_ignore_error()*
|
||||
test_null_blob() testing.txt /*test_null_blob()*
|
||||
test_null_channel() testing.txt /*test_null_channel()*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*todo.txt* For Vim version 8.2. Last change: 2022 Jan 29
|
||||
*todo.txt* For Vim version 8.2. Last change: 2022 Jan 31
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -38,19 +38,16 @@ browser use: https://github.com/vim/vim/issues/1234
|
||||
*known-bugs*
|
||||
-------------------- Known bugs and current work -----------------------
|
||||
|
||||
Only find a global function from Vim9 script when using "g:" ? #9637
|
||||
|
||||
Disallow defining a script#Func() in Vim9 script.
|
||||
|
||||
Cannot use command modifier for "import 'name.vim' as vim9"
|
||||
|
||||
range() returns list<number>, but it's OK if map() changes the type.
|
||||
#9665 Change internal_func_ret_type() to return current and declared type?
|
||||
|
||||
When making a copy of a list or dict, do not keep the type? #9644
|
||||
With deepcopy() all, with copy() this still fails:
|
||||
var l: list<list<number>> = [[1], [2]]
|
||||
l->copy()[0][0] = 'x'
|
||||
|
||||
Remove EBCDIC support?
|
||||
|
||||
Once Vim9 is stable:
|
||||
- Add all the error numbers in a good place in documentation.
|
||||
done until E1145
|
||||
|
||||
@@ -1110,7 +1110,6 @@ Testing: *test-functions*
|
||||
assert_nobeep() assert that a command does not cause a beep
|
||||
assert_fails() assert that a command fails
|
||||
assert_report() report a test failure
|
||||
internal_get_nv_cmdchar() normal/visual command character at an index
|
||||
test_alloc_fail() make memory allocation fail
|
||||
test_autochdir() enable 'autochdir' during startup
|
||||
test_override() test with Vim internal overrides
|
||||
@@ -1131,7 +1130,6 @@ Testing: *test-functions*
|
||||
test_setmouse() set the mouse position
|
||||
test_feedinput() add key sequence to input buffer
|
||||
test_option_not_set() reset flag indicating option was set
|
||||
test_scrollbar() simulate scrollbar movement in the GUI
|
||||
test_refcount() return an expression's reference count
|
||||
test_srand_seed() set the seed value for srand()
|
||||
test_unknown() return a value with unknown type
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*vim9.txt* For Vim version 8.2. Last change: 2022 Jan 29
|
||||
*vim9.txt* For Vim version 8.2. Last change: 2022 Jan 30
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -372,13 +372,12 @@ Global variables must be prefixed with "g:", also at the script level. >
|
||||
g:global = 'value'
|
||||
var Funcref = g:ThatFunction
|
||||
|
||||
Global functions must be prefixed with "g:" when defining them, but can be
|
||||
called without "g:". >
|
||||
Global functions must be prefixed with "g:": >
|
||||
vim9script
|
||||
def g:GlobalFunc(): string
|
||||
return 'text'
|
||||
enddef
|
||||
echo GlobalFunc()
|
||||
echo g:GlobalFunc()
|
||||
The "g:" prefix is not needed for auto-load functions.
|
||||
|
||||
*vim9-function-defined-later*
|
||||
@@ -1334,10 +1333,10 @@ variable was declared in a legacy function.
|
||||
When a type has been declared this is attached to a list or string. When
|
||||
later some expression attempts to change the type an error will be given: >
|
||||
var ll: list<number> = [1, 2, 3]
|
||||
ll->extend('x') # Error, 'x' is not a number
|
||||
ll->extend(['x']) # Error, 'x' is not a number
|
||||
|
||||
If the type is inferred then the type is allowed to change: >
|
||||
[1, 2, 3]->extend('x') # result: [1, 2, 3, 'x']
|
||||
[1, 2, 3]->extend(['x']) # result: [1, 2, 3, 'x']
|
||||
|
||||
|
||||
Stricter type checking ~
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim support file to detect file types
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2022 Jan 29
|
||||
" Last Change: 2022 Jan 31
|
||||
|
||||
" Listen very carefully, I will say this only once
|
||||
if exists("did_load_filetypes")
|
||||
@@ -2051,7 +2051,7 @@ au BufRead,BufNewFile *.hw,*.module,*.pkg
|
||||
\ endif
|
||||
|
||||
" Visual Basic (also uses *.bas) or FORM
|
||||
au BufNewFile,BufRead *.frm call dist#ft#FTVB("form")
|
||||
au BufNewFile,BufRead *.frm call dist#ft#FTfrm()
|
||||
|
||||
" SaxBasic is close to Visual Basic
|
||||
au BufNewFile,BufRead *.sba setf vb
|
||||
|
||||
+12
-3
@@ -1,7 +1,7 @@
|
||||
" Vim indent script for HTML
|
||||
" Maintainer: Bram Moolenaar
|
||||
" Original Author: Andy Wokula <anwoku@yahoo.de>
|
||||
" Last Change: 2021 Jun 13
|
||||
" Last Change: 2022 Jan 31
|
||||
" Version: 1.0 "{{{
|
||||
" Description: HTML indent script with cached state for faster indenting on a
|
||||
" range of lines.
|
||||
@@ -149,6 +149,15 @@ func HtmlIndent_CheckUserSettings()
|
||||
let b:html_indent_line_limit = 200
|
||||
endif
|
||||
endif
|
||||
|
||||
if exists('b:html_indent_attribute')
|
||||
let b:hi_attr_indent = b:html_indent_attribute
|
||||
elseif exists('g:html_indent_attribute')
|
||||
let b:hi_attr_indent = g:html_indent_attribute
|
||||
else
|
||||
let b:hi_attr_indent = 2
|
||||
endif
|
||||
|
||||
endfunc "}}}
|
||||
|
||||
" Init Script Vars
|
||||
@@ -946,11 +955,11 @@ func s:InsideTag(foundHtmlString)
|
||||
let idx = match(text, '<' . s:tagname . '\s\+\zs\w')
|
||||
endif
|
||||
if idx == -1
|
||||
" after just "<tag" indent two levels more
|
||||
" after just "<tag" indent two levels more by default
|
||||
let idx = match(text, '<' . s:tagname . '$')
|
||||
if idx >= 0
|
||||
call cursor(lnum, idx + 1)
|
||||
return virtcol('.') - 1 + shiftwidth() * 2
|
||||
return virtcol('.') - 1 + shiftwidth() * b:hi_attr_indent
|
||||
endif
|
||||
endif
|
||||
if idx > 0
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" vim: set ft=html sw=4 :
|
||||
" vim: set ft=html sw=4 ts=8 :
|
||||
|
||||
|
||||
" START_INDENT
|
||||
@@ -41,6 +41,11 @@ dd text
|
||||
dt text
|
||||
</dt>
|
||||
</dl>
|
||||
<div
|
||||
class="test"
|
||||
style="color: yellow">
|
||||
text
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -50,6 +55,7 @@ dt text
|
||||
% START_INDENT
|
||||
% INDENT_EXE let g:html_indent_style1 = "inc"
|
||||
% INDENT_EXE let g:html_indent_script1 = "zero"
|
||||
% INDENT_EXE let g:html_indent_attribute = 1
|
||||
% INDENT_EXE call HtmlIndent_CheckUserSettings()
|
||||
<html>
|
||||
<body>
|
||||
@@ -61,6 +67,11 @@ div#d2 { color: green; }
|
||||
var v1 = "v1";
|
||||
var v2 = "v2";
|
||||
</script>
|
||||
<div
|
||||
class="test"
|
||||
style="color: yellow">
|
||||
text
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
% END_INDENT
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" vim: set ft=html sw=4 :
|
||||
" vim: set ft=html sw=4 ts=8 :
|
||||
|
||||
|
||||
" START_INDENT
|
||||
@@ -41,6 +41,11 @@ div#d2 { color: green; }
|
||||
dt text
|
||||
</dt>
|
||||
</dl>
|
||||
<div
|
||||
class="test"
|
||||
style="color: yellow">
|
||||
text
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -50,6 +55,7 @@ div#d2 { color: green; }
|
||||
% START_INDENT
|
||||
% INDENT_EXE let g:html_indent_style1 = "inc"
|
||||
% INDENT_EXE let g:html_indent_script1 = "zero"
|
||||
% INDENT_EXE let g:html_indent_attribute = 1
|
||||
% INDENT_EXE call HtmlIndent_CheckUserSettings()
|
||||
<html>
|
||||
<body>
|
||||
@@ -61,6 +67,11 @@ div#d2 { color: green; }
|
||||
var v1 = "v1";
|
||||
var v2 = "v2";
|
||||
</script>
|
||||
<div
|
||||
class="test"
|
||||
style="color: yellow">
|
||||
text
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
% END_INDENT
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: Vim 8.2 script
|
||||
" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||
" Last Change: January 11, 2022
|
||||
" Version: 8.2-24
|
||||
" Last Change: January 30, 2022
|
||||
" Version: 8.2-26
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_VIM
|
||||
" Automatically generated keyword lists: {{{1
|
||||
|
||||
@@ -78,11 +78,11 @@ syn match vimHLGroup contained "Conceal"
|
||||
syn case match
|
||||
|
||||
" Function Names {{{2
|
||||
syn keyword vimFuncName contained abs argc assert_equal assert_match atan browse bufloaded byteidx charclass chdir ch_log ch_sendexpr col copy debugbreak diff_hlID empty execute expandcmd filter floor foldlevel function getchangelist getcmdline getcursorcharpos getftime getmarklist getreg gettagstack getwinvar has_key histget hlset input inputsecret isinf job_info join keys line2byte listener_flush luaeval mapset matchdelete matchstr mkdir or popup_clear popup_filter_yesno popup_hide popup_notification prevnonblank prompt_setprompt prop_list prop_type_get pyeval readdir reg_recording remote_foreground remove round screencol searchcount server2client setcharpos setfperm setqflist setwinvar sign_getdefined sign_undefine sinh sound_playevent split str2list strdisplaywidth strlen strwidth synconcealed system tagfiles term_dumpdiff term_getattr term_getsize term_list term_setkill test_alloc_fail test_getvalue test_null_channel test_null_partial test_scrollbar test_void timer_stopall trunc uniq winbufnr win_getid win_id2win winnr win_splitmove
|
||||
syn keyword vimFuncName contained acos argidx assert_equalfile assert_nobeep atan2 browsedir bufname byteidxcomp charcol ch_evalexpr ch_logfile ch_sendraw complete cos deepcopy digraph_get environ exepath extend finddir fmod foldtext garbagecollect getchar getcmdpos getcwd getftype getmatches getreginfo gettext glob haslocaldir histnr hostname inputdialog insert islocked job_setoptions js_decode len lispindent listener_remove map match matchend matchstrpos mode pathshorten popup_close popup_findinfo popup_list popup_setoptions printf prop_add prop_remove prop_type_list pyxeval readdirex reltime remote_peek rename rubyeval screenpos searchdecl serverlist setcharsearch setline setreg sha256 sign_getplaced sign_unplace slice sound_playfile sqrt str2nr strftime strpart submatch synID systemlist taglist term_dumpload term_getcursor term_getstatus term_scrape term_setrestore test_autochdir test_gui_drop_files test_null_dict test_null_string test_setmouse timer_info tolower type values wincol win_gettype winlayout winrestcmd winwidth
|
||||
syn keyword vimFuncName contained add arglistid assert_exception assert_notequal balloon_gettext bufadd bufnr call charidx ch_evalraw ch_open ch_setoptions complete_add cosh delete digraph_getlist escape exists extendnew findfile fnameescape foldtextresult get getcharmod getcmdtype getenv getimstatus getmousepos getregtype getwininfo glob2regpat hasmapto hlexists iconv inputlist interrupt isnan job_start js_encode libcall list2blob localtime maparg matchadd matchfuzzy max mzeval perleval popup_create popup_findpreview popup_locate popup_settext prompt_getprompt prop_add_list prop_type_add pum_getpos rand readfile reltimefloat remote_read repeat screenattr screenrow searchpair setbufline setcmdpos setloclist settabvar shellescape sign_jump sign_unplacelist sort sound_stop srand strcharlen strgetchar strptime substitute synIDattr tabpagebuflist tan term_dumpwrite term_getjob term_gettitle term_sendkeys term_setsize test_feedinput test_gui_mouse_event test_null_function test_option_not_set test_settime timer_pause toupper typename virtcol windowsversion win_gotoid winline winrestview wordcount
|
||||
syn keyword vimFuncName contained and argv assert_fails assert_notmatch balloon_show bufexists bufwinid ceil ch_canread ch_getbufnr ch_read ch_status complete_check count deletebufline digraph_set eval exists_compiled feedkeys flatten fnamemodify foreground getbufinfo getcharpos getcmdwintype getfontname getjumplist getpid gettabinfo getwinpos globpath histadd hlget indent inputrestore invert items job_status json_decode libcallnr list2str log mapcheck matchaddpos matchfuzzypos menu_info nextnonblank popup_atcursor popup_dialog popup_getoptions popup_menu popup_show prompt_setcallback prop_clear prop_type_change pumvisible range reduce reltimestr remote_send resolve screenchar screenstring searchpairpos setbufvar setcursorcharpos setmatches settabwinvar shiftwidth sign_place simplify sound_clear spellbadword state strcharpart stridx strridx swapinfo synIDtrans tabpagenr tanh term_getaltscreen term_getline term_gettty term_setansicolors term_start test_garbagecollect_now test_ignore_error test_null_job test_override test_srand_seed timer_start tr undofile visualmode win_execute winheight win_move_separator winsaveview writefile
|
||||
syn keyword vimFuncName contained append asin assert_false assert_report balloon_split buflisted bufwinnr changenr ch_close ch_getjob ch_readblob cindent complete_info cscope_connection did_filetype digraph_setlist eventhandler exp filereadable flattennew foldclosed fullcommand getbufline getcharsearch getcompletion getfperm getline getpos gettabvar getwinposx has histdel hlID index inputsave isdirectory job_getchannel job_stop json_encode line listener_add log10 mapnew matcharg matchlist min nr2char popup_beval popup_filter_menu popup_getpos popup_move pow prompt_setinterrupt prop_find prop_type_delete py3eval readblob reg_executing remote_expr remote_startserver reverse screenchars search searchpos setcellwidths setenv setpos settagstack sign_define sign_placelist sin soundfold spellsuggest str2float strchars string strtrans swapname synstack tabpagewinnr tempname term_getansicolors term_getscrolled terminalprops term_setapi term_wait test_garbagecollect_soon test_null_blob test_null_list test_refcount test_unknown timer_stop trim undotree wildmenumode win_findbuf win_id2tabwin win_move_statusline win_screenpos xor
|
||||
syn keyword vimFuncName contained abs argc assert_equal assert_match atan browse bufloaded byteidx charclass chdir ch_log ch_sendexpr col copy debugbreak diff_hlID empty execute expandcmd filter floor foldlevel function getchangelist getcmdline getcursorcharpos getftime getmarklist getreg gettagstack getwinvar has_key histget hlset input inputsecret isdirectory job_getchannel job_stop json_encode line listener_add log10 mapnew matcharg matchlist min nr2char popup_beval popup_filter_menu popup_getpos popup_move pow prompt_setinterrupt prop_find prop_type_delete py3eval readblob reg_executing remote_expr remote_startserver reverse screenchars search searchpos setcellwidths setenv setpos settagstack sign_define sign_placelist sin soundfold spellsuggest str2float strchars string strtrans swapname synstack tabpagewinnr tempname term_getansicolors term_getscrolled terminalprops term_setapi term_wait test_garbagecollect_soon test_null_channel test_null_partial test_scrollbar test_void timer_stopall trunc uniq winbufnr win_getid win_id2win winnr win_splitmove
|
||||
syn keyword vimFuncName contained acos argidx assert_equalfile assert_nobeep atan2 browsedir bufname byteidxcomp charcol ch_evalexpr ch_logfile ch_sendraw complete cos deepcopy digraph_get environ exepath extend finddir fmod foldtext garbagecollect getchar getcmdpos getcwd getftype getmatches getreginfo gettext glob haslocaldir histnr hostname inputdialog insert isinf job_info join keys line2byte listener_flush luaeval mapset matchdelete matchstr mkdir or popup_clear popup_filter_yesno popup_hide popup_notification prevnonblank prompt_setprompt prop_list prop_type_get pyeval readdir reg_recording remote_foreground remove round screencol searchcount server2client setcharpos setfperm setqflist setwinvar sign_getdefined sign_undefine sinh sound_playevent split str2list strdisplaywidth strlen strwidth synconcealed system tagfiles term_dumpdiff term_getattr term_getsize term_list term_setkill test_alloc_fail test_getvalue test_null_dict test_null_string test_setmouse timer_info tolower type values wincol win_gettype winlayout winrestcmd winwidth
|
||||
syn keyword vimFuncName contained add arglistid assert_exception assert_notequal balloon_gettext bufadd bufnr call charidx ch_evalraw ch_open ch_setoptions complete_add cosh delete digraph_getlist escape exists extendnew findfile fnameescape foldtextresult get getcharmod getcmdtype getenv getimstatus getmousepos getregtype getwininfo glob2regpat hasmapto hlexists iconv inputlist internal_get_nv_cmdchar islocked job_setoptions js_decode len lispindent listener_remove map match matchend matchstrpos mode pathshorten popup_close popup_findinfo popup_list popup_setoptions printf prop_add prop_remove prop_type_list pyxeval readdirex reltime remote_peek rename rubyeval screenpos searchdecl serverlist setcharsearch setline setreg sha256 sign_getplaced sign_unplace slice sound_playfile sqrt str2nr strftime strpart submatch synID systemlist taglist term_dumpload term_getcursor term_getstatus term_scrape term_setrestore test_autochdir test_gui_event test_null_function test_option_not_set test_settime timer_pause toupper typename virtcol windowsversion win_gotoid winline winrestview wordcount
|
||||
syn keyword vimFuncName contained and argv assert_fails assert_notmatch balloon_show bufexists bufwinid ceil ch_canread ch_getbufnr ch_read ch_status complete_check count deletebufline digraph_set eval exists_compiled feedkeys flatten fnamemodify foreground getbufinfo getcharpos getcmdwintype getfontname getjumplist getpid gettabinfo getwinpos globpath histadd hlget indent inputrestore interrupt isnan job_start js_encode libcall list2blob localtime maparg matchadd matchfuzzy max mzeval perleval popup_create popup_findpreview popup_locate popup_settext prompt_getprompt prop_add_list prop_type_add pum_getpos rand readfile reltimefloat remote_read repeat screenattr screenrow searchpair setbufline setcmdpos setloclist settabvar shellescape sign_jump sign_unplacelist sort sound_stop srand strcharlen strgetchar strptime substitute synIDattr tabpagebuflist tan term_dumpwrite term_getjob term_gettitle term_sendkeys term_setsize test_feedinput test_ignore_error test_null_job test_override test_srand_seed timer_start tr undofile visualmode win_execute winheight win_move_separator winsaveview writefile
|
||||
syn keyword vimFuncName contained append asin assert_false assert_report balloon_split buflisted bufwinnr changenr ch_close ch_getjob ch_readblob cindent complete_info cscope_connection did_filetype digraph_setlist eventhandler exp filereadable flattennew foldclosed fullcommand getbufline getcharsearch getcompletion getfperm getline getpos gettabvar getwinposx has histdel hlID index inputsave invert items job_status json_decode libcallnr list2str log mapcheck matchaddpos matchfuzzypos menu_info nextnonblank popup_atcursor popup_dialog popup_getoptions popup_menu popup_show prompt_setcallback prop_clear prop_type_change pumvisible range reduce reltimestr remote_send resolve screenchar screenstring searchpairpos setbufvar setcursorcharpos setmatches settabwinvar shiftwidth sign_place simplify sound_clear spellbadword state strcharpart stridx strridx swapinfo synIDtrans tabpagenr tanh term_getaltscreen term_getline term_gettty term_setansicolors term_start test_garbagecollect_now test_null_blob test_null_list test_refcount test_unknown timer_stop trim undotree wildmenumode win_findbuf win_id2tabwin win_move_statusline win_screenpos xor
|
||||
syn keyword vimFuncName contained appendbufline assert_beeps assert_inrange assert_true blob2list bufload byte2line char2nr ch_close_in ch_info ch_readraw clearmatches confirm cursor diff_filler echoraw executable expand filewritable float2nr foldclosedend funcref getbufvar getcharstr getcurpos getfsize getloclist getqflist gettabwinvar getwinposy
|
||||
|
||||
"--- syntax here and above generated by mkvimvim ---
|
||||
|
||||
+13
-9
@@ -466,6 +466,8 @@ RUBY_PLATFORM = i586-mswin32
|
||||
RUBY_PLATFORM = i386-mingw32
|
||||
else ifneq ($(wildcard $(RUBY)/lib/ruby/$(RUBY_API_VER_LONG)/x64-mingw32),)
|
||||
RUBY_PLATFORM = x64-mingw32
|
||||
else ifneq ($(wildcard $(RUBY)/lib/ruby/$(RUBY_API_VER_LONG)/x64-mingw-ucrt),)
|
||||
RUBY_PLATFORM = x64-mingw-ucrt
|
||||
else
|
||||
RUBY_PLATFORM = i386-mswin32
|
||||
endif
|
||||
@@ -479,7 +481,9 @@ RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_API_VER)
|
||||
# Base name of msvcrXX.dll which is used by ruby's dll.
|
||||
RUBY_MSVCRT_NAME = msvcrt
|
||||
endif
|
||||
ifeq ($(ARCH),x86-64)
|
||||
ifeq ($(RUBY_PLATFORM),x64-mingw-ucrt)
|
||||
RUBY_INSTALL_NAME = x64-ucrt-ruby$(RUBY_API_VER)
|
||||
else ifeq ($(ARCH),x86-64)
|
||||
RUBY_INSTALL_NAME = x64-$(RUBY_MSVCRT_NAME)-ruby$(RUBY_API_VER)
|
||||
else
|
||||
RUBY_INSTALL_NAME = $(RUBY_MSVCRT_NAME)-ruby$(RUBY_API_VER)
|
||||
@@ -1145,17 +1149,17 @@ endif
|
||||
# If this fails because you don't have Vim yet, first build and install Vim
|
||||
# without changes.
|
||||
cmdidxs: ex_cmds.h
|
||||
vim --clean -X --not-a-term -u create_cmdidxs.vim
|
||||
vim --clean -N -X --not-a-term -u create_cmdidxs.vim -c quit
|
||||
|
||||
# Run vim script to generate the normal/visual mode command lookup table.
|
||||
# This only needs to be run when a new normal/visual mode command has been
|
||||
# added. If this fails because you don't have Vim yet:
|
||||
# - change nv_cmds[] in normal.c to add the new normal/visual mode command.
|
||||
# - build Vim
|
||||
# - run "make nvcmdidxs" using the new Vim to generate nv_cmdidxs.h
|
||||
# - rebuild Vim to use the newly generated nv_cmdidxs.h file.
|
||||
nvcmdidxs: normal.c
|
||||
./$(TARGET) --clean -X --not-a-term -u create_nvcmdidxs.vim
|
||||
# - change nv_cmds[] in nv_cmds.h to add the new normal/visual mode command.
|
||||
# - run "make nvcmdidxs" to generate nv_cmdidxs.h
|
||||
nvcmdidxs: nv_cmds.h
|
||||
$(CC) $(CFLAGS) -o create_nvcmdidxs.exe create_nvcmdidxs.c $(LIB)
|
||||
vim --clean -N -X --not-a-term -u create_nvcmdidxs.vim -c quit
|
||||
-$(DEL) create_nvcmdidxs.exe
|
||||
|
||||
###########################################################################
|
||||
INCL = vim.h alloc.h ascii.h ex_cmds.h feature.h errors.h globals.h \
|
||||
@@ -1219,7 +1223,7 @@ $(OUTDIR)/hardcopy.o: hardcopy.c $(INCL) version.h
|
||||
|
||||
$(OUTDIR)/misc1.o: misc1.c $(INCL) version.h
|
||||
|
||||
$(OUTDIR)/normal.o: normal.c $(INCL) nv_cmdidxs.h
|
||||
$(OUTDIR)/normal.o: normal.c $(INCL) nv_cmdidxs.h nv_cmds.h
|
||||
|
||||
$(OUTDIR)/netbeans.o: netbeans.c $(INCL) version.h
|
||||
|
||||
|
||||
+12
-8
@@ -1186,7 +1186,11 @@ RUBY_MSVCRT_NAME = $(MSVCRT_NAME)
|
||||
! if "$(CPU)" == "i386"
|
||||
RUBY_INSTALL_NAME = $(RUBY_MSVCRT_NAME)-ruby$(RUBY_API_VER)
|
||||
! else # CPU
|
||||
! if EXIST($(RUBY)/lib/ruby/$(RUBY_API_VER_LONG)/x64-mingw-ucrt)
|
||||
RUBY_INSTALL_NAME = x64-ucrt-ruby$(RUBY_API_VER)
|
||||
! else
|
||||
RUBY_INSTALL_NAME = x64-$(RUBY_MSVCRT_NAME)-ruby$(RUBY_API_VER)
|
||||
! endif
|
||||
! endif # CPU
|
||||
! endif # RUBY_INSTALL_NAME
|
||||
|
||||
@@ -1444,17 +1448,17 @@ clean: testclean
|
||||
# If this fails because you don't have Vim yet, first build and install Vim
|
||||
# without changes.
|
||||
cmdidxs: ex_cmds.h
|
||||
vim --clean -X --not-a-term -u create_cmdidxs.vim
|
||||
vim --clean -N -X --not-a-term -u create_cmdidxs.vim -c quit
|
||||
|
||||
# Run vim script to generate the normal/visual mode command lookup table.
|
||||
# This only needs to be run when a new normal/visual mode command has been
|
||||
# added. If this fails because you don't have Vim yet:
|
||||
# - change nv_cmds[] in normal.c to add the new normal/visual mode command.
|
||||
# - build Vim
|
||||
# - run "make nvcmdidxs" using the new Vim to generate nv_cmdidxs.h
|
||||
# - rebuild Vim to use the newly generated nv_cmdidxs.h file.
|
||||
nvcmdidxs: normal.c
|
||||
.\$(VIM) --clean -X --not-a-term -u create_nvcmdidxs.vim
|
||||
# - change nv_cmds[] in nv_cmds.h to add the new normal/visual mode command.
|
||||
# - run "make nvcmdidxs" to generate nv_cmdidxs.h
|
||||
nvcmdidxs: nv_cmds.h
|
||||
$(CC) /nologo -I. -Iproto -DNDEBUG create_nvcmdidxs.c -link -subsystem:$(SUBSYSTEM_TOOLS)
|
||||
vim --clean -N -X --not-a-term -u create_nvcmdidxs.vim -c quit
|
||||
-del create_nvcmdidxs.exe
|
||||
|
||||
test:
|
||||
cd testdir
|
||||
@@ -1719,7 +1723,7 @@ $(OUTDIR)/netbeans.obj: $(OUTDIR) netbeans.c $(NBDEBUG_SRC) $(INCL) version.h
|
||||
|
||||
$(OUTDIR)/channel.obj: $(OUTDIR) channel.c $(INCL)
|
||||
|
||||
$(OUTDIR)/normal.obj: $(OUTDIR) normal.c $(INCL) nv_cmdidxs.h
|
||||
$(OUTDIR)/normal.obj: $(OUTDIR) normal.c $(INCL) nv_cmdidxs.h nv_cmds.h
|
||||
|
||||
$(OUTDIR)/option.obj: $(OUTDIR) option.c $(INCL) optiondefs.h
|
||||
|
||||
|
||||
+1
-1
@@ -977,7 +977,7 @@ mbyte.obj : mbyte.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
normal.obj : normal.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
errors.h globals.h nv_cmdidxs.h
|
||||
errors.h globals.h nv_cmdidxs.h nv_cmds.h
|
||||
ops.obj : ops.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h termdefs.h macros.h structs.h regexp.h gui.h beval.h \
|
||||
[.proto]gui_beval.pro option.h ex_cmds.h proto.h errors.h globals.h
|
||||
|
||||
+12
-18
@@ -2070,9 +2070,6 @@ PRO_AUTO = \
|
||||
$(ALL_GUI_PRO) \
|
||||
$(TCL_PRO)
|
||||
|
||||
# Resources used for the Mac are in one directory.
|
||||
RSRC_DIR = os_mac_rsrc
|
||||
|
||||
PRO_MANUAL = os_amiga.pro os_win32.pro \
|
||||
os_mswin.pro winclip.pro os_vms.pro $(PERL_PRO)
|
||||
|
||||
@@ -2158,19 +2155,21 @@ autoconf:
|
||||
# This only needs to be run when a command name has been added or changed.
|
||||
# If this fails because you don't have Vim yet, first build and install Vim
|
||||
# without changes.
|
||||
# This requires a "vim" executable with the +eval feature.
|
||||
cmdidxs: ex_cmds.h
|
||||
vim --clean -X --not-a-term -u create_cmdidxs.vim
|
||||
vim --clean -N -X --not-a-term -u create_cmdidxs.vim -c quit
|
||||
|
||||
# Run vim script to generate the normal/visual mode command lookup table.
|
||||
# This only needs to be run when a new normal/visual mode command has been
|
||||
# added. If this fails because you don't have Vim yet:
|
||||
# - change nv_cmds[] in normal.c to add the new normal/visual mode command.
|
||||
# - build Vim
|
||||
# - run "make nvcmdidxs" using the new Vim to generate nv_cmdidxs.h
|
||||
# - rebuild Vim to use the newly generated nv_cmdidxs.h file.
|
||||
nvcmdidxs: normal.c
|
||||
./$(VIMTARGET) --clean -X --not-a-term -u create_nvcmdidxs.vim
|
||||
|
||||
# added.
|
||||
# This requires a "vim" executable with the +eval feature.
|
||||
# If this fails because you don't have Vim yet:
|
||||
# - change nv_cmds[] in nv_cmds.h to add the new normal/visual mode command.
|
||||
# - run "make nvcmdidxs" to generate nv_cmdidxs.h
|
||||
nvcmdidxs: auto/config.mk nv_cmds.h
|
||||
$(CC) -I$(srcdir) $(ALL_CFLAGS) create_nvcmdidxs.c -o create_nvcmdidxs
|
||||
vim --clean -N -X --not-a-term -u create_nvcmdidxs.vim -c quit
|
||||
-rm -f create_nvcmdidxs
|
||||
|
||||
# The normal command to compile a .c file to its .o file.
|
||||
# Without or with ALL_CFLAGS.
|
||||
@@ -3014,11 +3013,6 @@ shadow: runtime pixmaps
|
||||
cd $(SHADOWDIR)/xxd; ln -s ../../xxd/*.[ch] ../../xxd/Make* .
|
||||
$(MKDIR_P) $(SHADOWDIR)/xdiff
|
||||
cd $(SHADOWDIR)/xdiff; ln -s ../../xdiff/*.[ch] .
|
||||
if test -d $(RSRC_DIR); then \
|
||||
cd $(SHADOWDIR); \
|
||||
ln -s ../infplist.xml .; \
|
||||
ln -s ../$(RSRC_DIR) ../os_mac.rsr.hqx ../dehqx.py .; \
|
||||
fi
|
||||
$(MKDIR_P) $(SHADOWDIR)/testdir
|
||||
cd $(SHADOWDIR)/testdir; ln -s ../../testdir/Makefile \
|
||||
../../testdir/Make_all.mak \
|
||||
@@ -4087,7 +4081,7 @@ objects/move.o: move.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
objects/normal.o: normal.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h termdefs.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h errors.h nv_cmdidxs.h
|
||||
proto.h globals.h errors.h nv_cmdidxs.h nv_cmds.h
|
||||
objects/ops.o: ops.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h termdefs.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
|
||||
+2
-2
@@ -969,9 +969,9 @@ do_arg_all(
|
||||
old_curwin = curwin;
|
||||
old_curtab = curtab;
|
||||
|
||||
# ifdef FEAT_GUI
|
||||
#ifdef FEAT_GUI
|
||||
need_mouse_correct = TRUE;
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// Try closing all windows that are not in the argument list.
|
||||
// Also close windows that are not full width;
|
||||
|
||||
-94
@@ -8,14 +8,8 @@
|
||||
|
||||
/*
|
||||
* Definitions of various common control characters.
|
||||
* For EBCDIC we have to use different values.
|
||||
*/
|
||||
|
||||
#ifndef EBCDIC
|
||||
|
||||
// IF_EB(ASCII_constant, EBCDIC_constant)
|
||||
#define IF_EB(a, b) a
|
||||
|
||||
#define CharOrd(x) ((x) < 'a' ? (x) - 'A' : (x) - 'a')
|
||||
#define CharOrdLow(x) ((x) - 'a')
|
||||
#define CharOrdUp(x) ((x) - 'A')
|
||||
@@ -77,94 +71,6 @@
|
||||
#define Ctrl_HAT 30 // ^
|
||||
#define Ctrl__ 31
|
||||
|
||||
#else
|
||||
|
||||
// EBCDIC
|
||||
|
||||
// IF_EB(ASCII_constant, EBCDIC_constant)
|
||||
#define IF_EB(a, b) b
|
||||
|
||||
/*
|
||||
* Finding the position in the alphabet is not straightforward in EBCDIC.
|
||||
* There are gaps in the code table.
|
||||
* 'a' + 1 == 'b', but: 'i' + 7 == 'j' and 'r' + 8 == 's'
|
||||
*/
|
||||
#define CharOrd__(c) ((c) < ('j' - 'a') ? (c) : ((c) < ('s' - 'a') ? (c) - 7 : (c) - 7 - 8))
|
||||
#define CharOrdLow(x) (CharOrd__((x) - 'a'))
|
||||
#define CharOrdUp(x) (CharOrd__((x) - 'A'))
|
||||
#define CharOrd(x) (isupper(x) ? CharOrdUp(x) : CharOrdLow(x))
|
||||
|
||||
#define EBCDIC_CHAR_ADD_(x) ((x) < 0?'a':(x)>25?'z':"abcdefghijklmnopqrstuvwxyz"[x])
|
||||
#define EBCDIC_CHAR_ADD(c,s) (isupper(c) ? toupper(EBCDIC_CHAR_ADD_(CharOrdUp(c)+(s))) : EBCDIC_CHAR_ADD_(CharOrdLow(c)+(s)))
|
||||
|
||||
#define R13_(c) ("abcdefghijklmnopqrstuvwxyz"[((c) + 13) % 26])
|
||||
#define ROT13(c, a) (isupper(c) ? toupper(R13_(CharOrdUp(c))) : R13_(CharOrdLow(c)))
|
||||
|
||||
#define NUL '\000'
|
||||
#define BELL '\x2f'
|
||||
#define BS '\x16'
|
||||
#define TAB '\x05'
|
||||
#define NL '\x15'
|
||||
#define NL_STR (char_u *)"\x15"
|
||||
#define FF '\x0C'
|
||||
#define CAR '\x0D'
|
||||
#define ESC '\x27'
|
||||
#define ESC_STR (char_u *)"\x27"
|
||||
#define ESC_STR_nc "\x27"
|
||||
#define DEL 0x07
|
||||
#define DEL_STR (char_u *)"\007"
|
||||
|
||||
#define POUND 0xB1
|
||||
|
||||
#define CTRL_F_STR "\056"
|
||||
#define CTRL_H_STR "\026"
|
||||
#define CTRL_V_STR "\062"
|
||||
|
||||
#define Ctrl_AT 0x00 // @
|
||||
#define Ctrl_A 0x01
|
||||
#define Ctrl_B 0x02
|
||||
#define Ctrl_C 0x03
|
||||
#define Ctrl_D 0x37
|
||||
#define Ctrl_E 0x2D
|
||||
#define Ctrl_F 0x2E
|
||||
#define Ctrl_G 0x2F
|
||||
#define Ctrl_H 0x16
|
||||
#define Ctrl_I 0x05
|
||||
#define Ctrl_J 0x15
|
||||
#define Ctrl_K 0x0B
|
||||
#define Ctrl_L 0x0C
|
||||
#define Ctrl_M 0x0D
|
||||
#define Ctrl_N 0x0E
|
||||
#define Ctrl_O 0x0F
|
||||
#define Ctrl_P 0x10
|
||||
#define Ctrl_Q 0x11
|
||||
#define Ctrl_R 0x12
|
||||
#define Ctrl_S 0x13
|
||||
#define Ctrl_T 0x3C
|
||||
#define Ctrl_U 0x3D
|
||||
#define Ctrl_V 0x32
|
||||
#define Ctrl_W 0x26
|
||||
#define Ctrl_X 0x18
|
||||
#define Ctrl_Y 0x19
|
||||
#define Ctrl_Z 0x3F
|
||||
// CTRL- [ Left Square Bracket == ESC
|
||||
#define Ctrl_RSB 0x1D // ] Right Square Bracket
|
||||
#define Ctrl_BSL 0x1C // \ BackSLash
|
||||
#define Ctrl_HAT 0x1E // ^
|
||||
#define Ctrl__ 0x1F
|
||||
|
||||
#define Ctrl_chr(x) (CtrlTable[(x)])
|
||||
extern char CtrlTable[];
|
||||
|
||||
#define CtrlChar(x) ((x < ' ') ? CtrlCharTable[(x)] : 0)
|
||||
extern char CtrlCharTable[];
|
||||
|
||||
#define MetaChar(x) ((x < ' ') ? MetaCharTable[(x)] : 0)
|
||||
extern char MetaCharTable[];
|
||||
|
||||
#endif // defined EBCDIC
|
||||
|
||||
// TODO: EBCDIC Code page dependent (here 1047)
|
||||
#define CSI 0x9b // Control Sequence Introducer
|
||||
#define CSI_STR "\233"
|
||||
#define DCS 0x90 // Device Control String
|
||||
|
||||
+10
-4
@@ -1710,6 +1710,7 @@ set_curbuf(buf_T *buf, int action)
|
||||
#endif
|
||||
bufref_T newbufref;
|
||||
bufref_T prevbufref;
|
||||
int valid;
|
||||
|
||||
setpcmark();
|
||||
if ((cmdmod.cmod_flags & CMOD_KEEPALT) == 0)
|
||||
@@ -1767,13 +1768,19 @@ set_curbuf(buf_T *buf, int action)
|
||||
// An autocommand may have deleted "buf", already entered it (e.g., when
|
||||
// it did ":bunload") or aborted the script processing.
|
||||
// If curwin->w_buffer is null, enter_buffer() will make it valid again
|
||||
if ((buf_valid(buf) && buf != curbuf
|
||||
valid = buf_valid(buf);
|
||||
if ((valid && buf != curbuf
|
||||
#ifdef FEAT_EVAL
|
||||
&& !aborting()
|
||||
#endif
|
||||
) || curwin->w_buffer == NULL)
|
||||
{
|
||||
enter_buffer(buf);
|
||||
// If the buffer is not valid but curwin->w_buffer is NULL we must
|
||||
// enter some buffer. Using the last one is hopefully OK.
|
||||
if (!valid)
|
||||
enter_buffer(lastbuf);
|
||||
else
|
||||
enter_buffer(buf);
|
||||
#ifdef FEAT_SYN_HL
|
||||
if (old_tw != curbuf->b_p_tw)
|
||||
check_colorcolumn(curwin);
|
||||
@@ -2292,8 +2299,7 @@ free_buf_options(
|
||||
clear_string_option(&buf->b_p_vsts);
|
||||
vim_free(buf->b_p_vsts_nopaste);
|
||||
buf->b_p_vsts_nopaste = NULL;
|
||||
vim_free(buf->b_p_vsts_array);
|
||||
buf->b_p_vsts_array = NULL;
|
||||
VIM_CLEAR(buf->b_p_vsts_array);
|
||||
clear_string_option(&buf->b_p_vts);
|
||||
VIM_CLEAR(buf->b_p_vts_array);
|
||||
#endif
|
||||
|
||||
+2
-2
@@ -1638,9 +1638,9 @@ open_line(
|
||||
#ifdef FEAT_CINDENT
|
||||
// May do indenting after opening a new line.
|
||||
do_cindent = !p_paste && (curbuf->b_p_cin
|
||||
# ifdef FEAT_EVAL
|
||||
# ifdef FEAT_EVAL
|
||||
|| *curbuf->b_p_inde != NUL
|
||||
# endif
|
||||
# endif
|
||||
)
|
||||
&& in_cinkeys(dir == FORWARD
|
||||
? KEY_OPEN_FORW
|
||||
|
||||
+3
-104
@@ -87,18 +87,11 @@ buf_init_chartab(
|
||||
* Set the default size for printable characters:
|
||||
* From <Space> to '~' is 1 (printable), others are 2 (not printable).
|
||||
* This also inits all 'isident' and 'isfname' flags to FALSE.
|
||||
*
|
||||
* EBCDIC: all chars below ' ' are not printable, all others are
|
||||
* printable.
|
||||
*/
|
||||
c = 0;
|
||||
while (c < ' ')
|
||||
g_chartab[c++] = (dy_flags & DY_UHEX) ? 4 : 2;
|
||||
#ifdef EBCDIC
|
||||
while (c < 255)
|
||||
#else
|
||||
while (c <= '~')
|
||||
#endif
|
||||
g_chartab[c++] = 1 + CT_PRINT_CHAR;
|
||||
while (c < 256)
|
||||
{
|
||||
@@ -221,10 +214,7 @@ buf_init_chartab(
|
||||
}
|
||||
else if (i == 1) // (re)set printable
|
||||
{
|
||||
if ((c < ' '
|
||||
#ifndef EBCDIC
|
||||
|| c > '~'
|
||||
#endif
|
||||
if ((c < ' ' || c > '~'
|
||||
// For double-byte we keep the cell width, so
|
||||
// that we can detect it from the first byte.
|
||||
) && !(enc_dbcs && MB_BYTE2LEN(c) == 2))
|
||||
@@ -519,13 +509,8 @@ transchar_buf(buf_T *buf, int c)
|
||||
c = K_SECOND(c);
|
||||
}
|
||||
|
||||
if ((!chartab_initialized && (
|
||||
#ifdef EBCDIC
|
||||
(c >= 64 && c < 255)
|
||||
#else
|
||||
(c >= ' ' && c <= '~')
|
||||
#endif
|
||||
)) || (c < 256 && vim_isprintc_strict(c)))
|
||||
if ((!chartab_initialized && ((c >= ' ' && c <= '~')))
|
||||
|| (c < 256 && vim_isprintc_strict(c)))
|
||||
{
|
||||
// printable character
|
||||
transchar_charbuf[i] = c;
|
||||
@@ -567,56 +552,26 @@ transchar_nonprint(buf_T *buf, char_u *charbuf, int c)
|
||||
if (dy_flags & DY_UHEX) // 'display' has "uhex"
|
||||
transchar_hex(charbuf, c);
|
||||
|
||||
#ifdef EBCDIC
|
||||
// For EBCDIC only the characters 0-63 and 255 are not printable
|
||||
else if (CtrlChar(c) != 0 || c == DEL)
|
||||
#else
|
||||
else if (c <= 0x7f) // 0x00 - 0x1f and 0x7f
|
||||
#endif
|
||||
{
|
||||
charbuf[0] = '^';
|
||||
#ifdef EBCDIC
|
||||
if (c == DEL)
|
||||
charbuf[1] = '?'; // DEL displayed as ^?
|
||||
else
|
||||
charbuf[1] = CtrlChar(c);
|
||||
#else
|
||||
charbuf[1] = c ^ 0x40; // DEL displayed as ^?
|
||||
#endif
|
||||
|
||||
charbuf[2] = NUL;
|
||||
}
|
||||
else if (enc_utf8 && c >= 0x80)
|
||||
{
|
||||
transchar_hex(charbuf, c);
|
||||
}
|
||||
#ifndef EBCDIC
|
||||
else if (c >= ' ' + 0x80 && c <= '~' + 0x80) // 0xa0 - 0xfe
|
||||
{
|
||||
charbuf[0] = '|';
|
||||
charbuf[1] = c - 0x80;
|
||||
charbuf[2] = NUL;
|
||||
}
|
||||
#else
|
||||
else if (c < 64)
|
||||
{
|
||||
charbuf[0] = '~';
|
||||
charbuf[1] = MetaChar(c);
|
||||
charbuf[2] = NUL;
|
||||
}
|
||||
#endif
|
||||
else // 0x80 - 0x9f and 0xff
|
||||
{
|
||||
/*
|
||||
* TODO: EBCDIC I don't know what to do with this chars, so I display
|
||||
* them as '~?' for now
|
||||
*/
|
||||
charbuf[0] = '~';
|
||||
#ifdef EBCDIC
|
||||
charbuf[1] = '?'; // 0xff displayed as ~?
|
||||
#else
|
||||
charbuf[1] = (c - 0x80) ^ 0x40; // 0xff displayed as ~?
|
||||
#endif
|
||||
charbuf[2] = NUL;
|
||||
}
|
||||
}
|
||||
@@ -2134,59 +2089,3 @@ backslash_halve_save(char_u *p)
|
||||
backslash_halve(res);
|
||||
return res;
|
||||
}
|
||||
|
||||
#if (defined(EBCDIC) && defined(FEAT_POSTSCRIPT)) || defined(PROTO)
|
||||
/*
|
||||
* Table for EBCDIC to ASCII conversion unashamedly taken from xxd.c!
|
||||
* The first 64 entries have been added to map control characters defined in
|
||||
* ascii.h
|
||||
*/
|
||||
static char_u ebcdic2ascii_tab[256] =
|
||||
{
|
||||
0000, 0001, 0002, 0003, 0004, 0011, 0006, 0177,
|
||||
0010, 0011, 0012, 0013, 0014, 0015, 0016, 0017,
|
||||
0020, 0021, 0022, 0023, 0024, 0012, 0010, 0027,
|
||||
0030, 0031, 0032, 0033, 0033, 0035, 0036, 0037,
|
||||
0040, 0041, 0042, 0043, 0044, 0045, 0046, 0047,
|
||||
0050, 0051, 0052, 0053, 0054, 0055, 0056, 0057,
|
||||
0060, 0061, 0062, 0063, 0064, 0065, 0066, 0067,
|
||||
0070, 0071, 0072, 0073, 0074, 0075, 0076, 0077,
|
||||
0040, 0240, 0241, 0242, 0243, 0244, 0245, 0246,
|
||||
0247, 0250, 0325, 0056, 0074, 0050, 0053, 0174,
|
||||
0046, 0251, 0252, 0253, 0254, 0255, 0256, 0257,
|
||||
0260, 0261, 0041, 0044, 0052, 0051, 0073, 0176,
|
||||
0055, 0057, 0262, 0263, 0264, 0265, 0266, 0267,
|
||||
0270, 0271, 0313, 0054, 0045, 0137, 0076, 0077,
|
||||
0272, 0273, 0274, 0275, 0276, 0277, 0300, 0301,
|
||||
0302, 0140, 0072, 0043, 0100, 0047, 0075, 0042,
|
||||
0303, 0141, 0142, 0143, 0144, 0145, 0146, 0147,
|
||||
0150, 0151, 0304, 0305, 0306, 0307, 0310, 0311,
|
||||
0312, 0152, 0153, 0154, 0155, 0156, 0157, 0160,
|
||||
0161, 0162, 0136, 0314, 0315, 0316, 0317, 0320,
|
||||
0321, 0345, 0163, 0164, 0165, 0166, 0167, 0170,
|
||||
0171, 0172, 0322, 0323, 0324, 0133, 0326, 0327,
|
||||
0330, 0331, 0332, 0333, 0334, 0335, 0336, 0337,
|
||||
0340, 0341, 0342, 0343, 0344, 0135, 0346, 0347,
|
||||
0173, 0101, 0102, 0103, 0104, 0105, 0106, 0107,
|
||||
0110, 0111, 0350, 0351, 0352, 0353, 0354, 0355,
|
||||
0175, 0112, 0113, 0114, 0115, 0116, 0117, 0120,
|
||||
0121, 0122, 0356, 0357, 0360, 0361, 0362, 0363,
|
||||
0134, 0237, 0123, 0124, 0125, 0126, 0127, 0130,
|
||||
0131, 0132, 0364, 0365, 0366, 0367, 0370, 0371,
|
||||
0060, 0061, 0062, 0063, 0064, 0065, 0066, 0067,
|
||||
0070, 0071, 0372, 0373, 0374, 0375, 0376, 0377
|
||||
};
|
||||
|
||||
/*
|
||||
* Convert a buffer worth of characters from EBCDIC to ASCII. Only useful if
|
||||
* wanting 7-bit ASCII characters out the other end.
|
||||
*/
|
||||
void
|
||||
ebcdic2ascii(char_u *buffer, int len)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < len; i++)
|
||||
buffer[i] = ebcdic2ascii_tab[buffer[i]];
|
||||
}
|
||||
#endif
|
||||
|
||||
+1
-7
@@ -3946,13 +3946,7 @@ in_cinkeys(
|
||||
try_match_word = FALSE;
|
||||
|
||||
// does it look like a control character?
|
||||
if (*look == '^'
|
||||
#ifdef EBCDIC
|
||||
&& (Ctrl_chr(look[1]) != 0)
|
||||
#else
|
||||
&& look[1] >= '?' && look[1] <= '_'
|
||||
#endif
|
||||
)
|
||||
if (*look == '^' && look[1] >= '?' && look[1] <= '_')
|
||||
{
|
||||
if (try_match && keytyped == Ctrl_chr(look[1]))
|
||||
return TRUE;
|
||||
|
||||
+3
-3
@@ -2002,11 +2002,11 @@ ExpandFromContext(
|
||||
#ifdef BACKSLASH_IN_FILENAME
|
||||
if (p_csl[0] != NUL && (options & WILD_IGNORE_COMPLETESLASH) == 0)
|
||||
{
|
||||
int i;
|
||||
int j;
|
||||
|
||||
for (i = 0; i < *num_file; ++i)
|
||||
for (j = 0; j < *num_file; ++j)
|
||||
{
|
||||
char_u *ptr = (*file)[i];
|
||||
char_u *ptr = (*file)[j];
|
||||
|
||||
while (*ptr != NUL)
|
||||
{
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
/* vi:set ts=8 sts=4 sw=4 noet:
|
||||
*
|
||||
* VIM - Vi IMproved by Bram Moolenaar et al.
|
||||
*
|
||||
* Do ":help uganda" in Vim to read copying and usage conditions.
|
||||
* Do ":help credits" in Vim to see a list of people who contributed.
|
||||
* See README.txt for an overview of the Vim source code.
|
||||
*/
|
||||
|
||||
/*
|
||||
* create_nvcmdidxs.c: helper program for `make nvcmdidxs`
|
||||
*
|
||||
* This outputs the list of command characters from the nv_cmds table in
|
||||
* decimal form, one per line.
|
||||
*/
|
||||
|
||||
#include "vim.h"
|
||||
|
||||
// Declare nv_cmds[].
|
||||
#include "nv_cmds.h"
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
size_t i;
|
||||
|
||||
for (i = 0; i < NV_CMDS_SIZE; i++)
|
||||
{
|
||||
int cmdchar = nv_cmds[i];
|
||||
|
||||
// Special keys are negative, use the negated value for sorting.
|
||||
if (cmdchar < 0)
|
||||
cmdchar = -cmdchar;
|
||||
printf("%d\n", cmdchar);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
+49
-61
@@ -1,72 +1,60 @@
|
||||
vim9script
|
||||
" This script generates the table nv_cmd_idx[] which contains the index in
|
||||
" nv_cmds[] table (normal.c) for each of the command character supported in
|
||||
" normal/visual mode.
|
||||
" This is used to speed up the command lookup in nv_cmds[].
|
||||
"
|
||||
" Script should be run using "make nvcmdidxs", every time the nv_cmds[] table
|
||||
" in src/nv_cmds.h changes.
|
||||
"
|
||||
" This is written in legacy Vim script so that it can be run by a slightly
|
||||
" older Vim version.
|
||||
|
||||
# This script generates the table nv_cmd_idx[] which contains the index in
|
||||
# nv_cmds[] table (normal.c) for each of the command character supported in
|
||||
# normal/visual mode.
|
||||
# This is used to speed up the command lookup in nv_cmds[].
|
||||
#
|
||||
# Script should be run using "make nvcmdidxs", every time the nv_cmds[] table
|
||||
# in src/normal.c changes.
|
||||
" Generate the table of normal/visual mode command characters and their
|
||||
" corresponding index.
|
||||
let cmd = 'create_nvcmdidxs'
|
||||
if has('unix')
|
||||
let cmd = './' .. cmd
|
||||
endif
|
||||
let nv_cmdtbl = systemlist(cmd)->map({i, ch -> {'idx': i, 'cmdchar': ch}})
|
||||
|
||||
def Create_nvcmdidxs_table()
|
||||
var nv_cmdtbl: list<dict<number>> = []
|
||||
" sort the table by the command character
|
||||
call sort(nv_cmdtbl, {a, b -> a.cmdchar - b.cmdchar})
|
||||
|
||||
# Generate the table of normal/visual mode command characters and their
|
||||
# corresponding index.
|
||||
var idx: number = 0
|
||||
var ch: number
|
||||
while true
|
||||
ch = internal_get_nv_cmdchar(idx)
|
||||
if ch == -1
|
||||
break
|
||||
endif
|
||||
add(nv_cmdtbl, {idx: idx, cmdchar: ch})
|
||||
idx += 1
|
||||
endwhile
|
||||
" Compute the highest index upto which the command character can be directly
|
||||
" used as an index.
|
||||
let nv_max_linear = 0
|
||||
for i in range(nv_cmdtbl->len())
|
||||
if i != nv_cmdtbl[i].cmdchar
|
||||
let nv_max_linear = i - 1
|
||||
break
|
||||
endif
|
||||
endfor
|
||||
|
||||
# sort the table by the command character
|
||||
sort(nv_cmdtbl, (a, b) => a.cmdchar - b.cmdchar)
|
||||
" Generate a header file with the table
|
||||
let output =<< trim END
|
||||
/*
|
||||
* Automatically generated code by the create_nvcmdidxs.vim script.
|
||||
*
|
||||
* Table giving the index in nv_cmds[] to lookup based on
|
||||
* the command character.
|
||||
*/
|
||||
|
||||
# Compute the highest index upto which the command character can be directly
|
||||
# used as an index.
|
||||
var nv_max_linear: number = 0
|
||||
for i in range(nv_cmdtbl->len())
|
||||
if i != nv_cmdtbl[i].cmdchar
|
||||
nv_max_linear = i - 1
|
||||
break
|
||||
endif
|
||||
endfor
|
||||
// nv_cmd_idx[<normal mode command character>] => nv_cmds[] index
|
||||
static const unsigned short nv_cmd_idx[] =
|
||||
{
|
||||
END
|
||||
|
||||
# Generate a header file with the table
|
||||
var output: list<string> =<< trim END
|
||||
/*
|
||||
* Automatically generated code by the create_nvcmdidxs.vim script.
|
||||
*
|
||||
* Table giving the index in nv_cmds[] to lookup based on
|
||||
* the command character.
|
||||
*/
|
||||
" Add each command character in comment and the corresponding index
|
||||
let output += nv_cmdtbl->map({_, v ->
|
||||
\ printf(' /* %5d */ %3d,', v.cmdchar, v.idx)})
|
||||
|
||||
// nv_cmd_idx[<normal mode command character>] => nv_cmds[] index
|
||||
static const unsigned short nv_cmd_idx[] =
|
||||
{
|
||||
END
|
||||
let output += ['};', '',
|
||||
\ '// The highest index for which',
|
||||
\ '// nv_cmds[idx].cmd_char == nv_cmd_idx[nv_cmds[idx].cmd_char]']
|
||||
|
||||
# Add each command character in comment and the corresponding index
|
||||
var tbl: list<string> = mapnew(nv_cmdtbl, (k, v) =>
|
||||
' /* ' .. printf('%5d', v.cmdchar) .. ' */ ' ..
|
||||
printf('%3d', v.idx) .. ','
|
||||
)
|
||||
output += tbl
|
||||
let output += ['static const int nv_max_linear = ' .. nv_max_linear .. ';']
|
||||
|
||||
output += [ '};', '',
|
||||
'// The highest index for which',
|
||||
'// nv_cmds[idx].cmd_char == nv_cmd_idx[nv_cmds[idx].cmd_char]']
|
||||
output += ['static const int nv_max_linear = ' .. nv_max_linear .. ';']
|
||||
|
||||
writefile(output, "nv_cmdidxs.h")
|
||||
enddef
|
||||
|
||||
Create_nvcmdidxs_table()
|
||||
call writefile(output, "nv_cmdidxs.h")
|
||||
quit
|
||||
|
||||
# vim: shiftwidth=2 sts=2 expandtab
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
# Python script to get both the data and resource fork from a BinHex encoded
|
||||
# file.
|
||||
# Author: MURAOKA Taro <koron.kaoriya@gmail.com>
|
||||
# Last Change: 2018 Mar 27
|
||||
#
|
||||
# Copyright (C) 2003,12 MURAOKA Taro <koron.kaoriya@gmail.com>
|
||||
# THIS FILE IS DISTRIBUTED UNDER THE VIM LICENSE.
|
||||
|
||||
import sys
|
||||
import binhex
|
||||
|
||||
input = sys.argv[1]
|
||||
conv = binhex.HexBin(input)
|
||||
info = conv.FInfo
|
||||
out = conv.FName
|
||||
out_data = out
|
||||
out_rsrc = out + '.rsrcfork'
|
||||
|
||||
# This uses the print statement on Python 2, print function on Python 3.
|
||||
#print('out_rsrc=' + out_rsrc)
|
||||
print('In file: ' + input)
|
||||
|
||||
outfile = open(out_data, 'wb')
|
||||
print(' Out data fork: ' + out_data)
|
||||
while 1:
|
||||
d = conv.read(128000)
|
||||
if not d: break
|
||||
outfile.write(d)
|
||||
outfile.close()
|
||||
conv.close_data()
|
||||
|
||||
d = conv.read_rsrc(128000)
|
||||
if d:
|
||||
print(' Out rsrc fork: ' + out_rsrc)
|
||||
outfile = open(out_rsrc, 'wb')
|
||||
outfile.write(d)
|
||||
while 1:
|
||||
d = conv.read_rsrc(128000)
|
||||
if not d: break
|
||||
outfile.write(d)
|
||||
outfile.close()
|
||||
|
||||
conv.close()
|
||||
|
||||
# vim:set ts=8 sts=4 sw=4 et:
|
||||
+7
-5
@@ -284,11 +284,11 @@ dictitem_free(dictitem_T *item)
|
||||
/*
|
||||
* Make a copy of dict "d". Shallow if "deep" is FALSE.
|
||||
* The refcount of the new dict is set to 1.
|
||||
* See item_copy() for "copyID".
|
||||
* See item_copy() for "top" and "copyID".
|
||||
* Returns NULL when out of memory.
|
||||
*/
|
||||
dict_T *
|
||||
dict_copy(dict_T *orig, int deep, int copyID)
|
||||
dict_copy(dict_T *orig, int deep, int top, int copyID)
|
||||
{
|
||||
dict_T *copy;
|
||||
dictitem_T *di;
|
||||
@@ -306,6 +306,8 @@ dict_copy(dict_T *orig, int deep, int copyID)
|
||||
orig->dv_copyID = copyID;
|
||||
orig->dv_copydict = copy;
|
||||
}
|
||||
copy->dv_type = alloc_type(top || deep ? &t_dict_any : orig->dv_type);
|
||||
|
||||
todo = (int)orig->dv_hashtab.ht_used;
|
||||
for (hi = orig->dv_hashtab.ht_array; todo > 0 && !got_int; ++hi)
|
||||
{
|
||||
@@ -318,8 +320,8 @@ dict_copy(dict_T *orig, int deep, int copyID)
|
||||
break;
|
||||
if (deep)
|
||||
{
|
||||
if (item_copy(&HI2DI(hi)->di_tv, &di->di_tv, deep,
|
||||
copyID) == FAIL)
|
||||
if (item_copy(&HI2DI(hi)->di_tv, &di->di_tv,
|
||||
deep, FALSE, copyID) == FAIL)
|
||||
{
|
||||
vim_free(di);
|
||||
break;
|
||||
@@ -1239,7 +1241,7 @@ dict_extend_func(
|
||||
{
|
||||
if (is_new)
|
||||
{
|
||||
d1 = dict_copy(d1, FALSE, get_copyID());
|
||||
d1 = dict_copy(d1, FALSE, TRUE, get_copyID());
|
||||
if (d1 == NULL)
|
||||
return;
|
||||
}
|
||||
|
||||
+3
-116
@@ -138,119 +138,7 @@ static digr_T digraphdefault[] =
|
||||
};
|
||||
|
||||
#else // !HPUX_DIGRAPHS
|
||||
|
||||
# ifdef EBCDIC
|
||||
|
||||
/*
|
||||
* EBCDIC - ISO digraphs
|
||||
* TODO: EBCDIC Table is Code-Page 1047
|
||||
*/
|
||||
{{'a', '^', 66}, // â
|
||||
{'a', '"', 67}, // ä
|
||||
{'a', '`', 68}, // à
|
||||
{'a', '\'', 69}, // á
|
||||
{'a', '~', 70}, // ã
|
||||
{'a', '@', 71}, // å
|
||||
{'a', 'a', 71}, // å
|
||||
{'c', ',', 72}, // ç
|
||||
{'n', '~', 73}, // ñ
|
||||
{'c', '|', 74}, // ¢
|
||||
{'e', '\'', 81}, // é
|
||||
{'e', '^', 82}, // ê
|
||||
{'e', '"', 83}, // ë
|
||||
{'e', '`', 84}, // è
|
||||
{'i', '\'', 85}, // í
|
||||
{'i', '^', 86}, // î
|
||||
{'i', '"', 87}, // ï
|
||||
{'i', '`', 88}, // ì
|
||||
{'s', 's', 89}, // ß
|
||||
{'A', '^', 98}, // Â
|
||||
{'A', '"', 99}, // Ä
|
||||
{'A', '`', 100}, // À
|
||||
{'A', '\'', 101}, // Á
|
||||
{'A', '~', 102}, // Ã
|
||||
{'A', '@', 103}, // Å
|
||||
{'A', 'A', 103}, // Å
|
||||
{'C', ',', 104}, // Ç
|
||||
{'N', '~', 105}, // Ñ
|
||||
{'|', '|', 106}, // ¦
|
||||
{'o', '/', 112}, // ø
|
||||
{'E', '\'', 113}, // É
|
||||
{'E', '^', 114}, // Ê
|
||||
{'E', '"', 115}, // Ë
|
||||
{'E', '`', 116}, // È
|
||||
{'I', '\'', 117}, // Í
|
||||
{'I', '^', 118}, // Î
|
||||
{'I', '"', 119}, // Ï
|
||||
{'I', '`', 120}, // Ì
|
||||
{'O', '/', 128}, // 0/ XX
|
||||
{'<', '<', 138}, // «
|
||||
{'>', '>', 139}, // »
|
||||
{'d', '-', 140}, // ð
|
||||
{'y', '\'', 141}, // ý
|
||||
{'i', 'p', 142}, // þ
|
||||
{'+', '-', 143}, // ±
|
||||
{'~', 'o', 144}, // °
|
||||
{'a', '-', 154}, // ª
|
||||
{'o', '-', 155}, // º
|
||||
{'a', 'e', 156}, // æ
|
||||
{',', ',', 157}, // , XX
|
||||
{'A', 'E', 158}, // Æ
|
||||
{'o', 'x', 159}, // ¤ - currency symbol in ISO 8859-1
|
||||
{'e', '=', 159}, // ¤ - euro symbol in ISO 8859-15
|
||||
{'E', 'u', 159}, // ¤ - euro symbol in ISO 8859-15
|
||||
{'j', 'u', 160}, // µ
|
||||
{'y', '"', 167}, // x XX
|
||||
{'~', '!', 170}, // ¡
|
||||
{'~', '?', 171}, // ¿
|
||||
{'D', '-', 172}, // Ð
|
||||
{'I', 'p', 174}, // Þ
|
||||
{'r', 'O', 175}, // ®
|
||||
{'-', ',', 176}, // ¬
|
||||
{'$', '$', 177}, // £
|
||||
{'Y', '-', 178}, // ¥
|
||||
{'~', '.', 179}, // ·
|
||||
{'c', 'O', 180}, // ©
|
||||
{'p', 'a', 181}, // §
|
||||
{'p', 'p', 182}, // ¶
|
||||
{'1', '4', 183}, // ¼
|
||||
{'1', '2', 184}, // ½
|
||||
{'3', '4', 185}, // ¾
|
||||
{'Y', '\'', 186}, // Ý
|
||||
{'"', '"', 187}, // ¨
|
||||
{'-', '=', 188}, // ¯
|
||||
{'\'', '\'', 190}, // ´
|
||||
{'O', 'E', 191}, // × - OE in ISO 8859-15
|
||||
{'/', '\\', 191}, // × - multiplication symbol in ISO 8859-1
|
||||
{'-', '-', 202}, //
|
||||
{'o', '^', 203}, // ô
|
||||
{'o', '"', 204}, // ö
|
||||
{'o', '`', 205}, // ò
|
||||
{'o', '\'', 206}, // ó
|
||||
{'o', '~', 207}, // õ
|
||||
{'1', '1', 218}, // ¹
|
||||
{'u', '^', 219}, // û
|
||||
{'u', '"', 220}, // ü
|
||||
{'u', '`', 221}, // ù
|
||||
{'u', '\'', 222}, // ú
|
||||
{':', '-', 225}, // ÷ - division symbol in ISO 8859-1
|
||||
{'o', 'e', 225}, // ÷ - oe in ISO 8859-15
|
||||
{'2', '2', 234}, // ²
|
||||
{'O', '^', 235}, // Ô
|
||||
{'O', '"', 236}, // Ö
|
||||
{'O', '`', 237}, // Ò
|
||||
{'O', '\'', 238}, // Ó
|
||||
{'O', '~', 239}, // Õ
|
||||
{'3', '3', 250}, // ³
|
||||
{'U', '^', 251}, // Û
|
||||
{'U', '"', 252}, // Ü
|
||||
{'U', '`', 253}, // Ù
|
||||
{'U', '\'', 254}, // Ú
|
||||
{NUL, NUL, NUL}
|
||||
};
|
||||
|
||||
# else // EBCDIC
|
||||
# ifdef OLD_DIGRAPHS
|
||||
# ifdef OLD_DIGRAPHS
|
||||
|
||||
/*
|
||||
* digraphs compatible with Vim 5.x
|
||||
@@ -357,7 +245,7 @@ static digr_T digraphdefault[] =
|
||||
{'y', '"', 255}, // x XX
|
||||
{NUL, NUL, NUL}
|
||||
};
|
||||
# else // OLD_DIGRAPHS
|
||||
# else // OLD_DIGRAPHS
|
||||
|
||||
/*
|
||||
* digraphs for Unicode from RFC1345
|
||||
@@ -1761,8 +1649,7 @@ static digr_T digraphdefault[] =
|
||||
{NUL, NUL, NUL}
|
||||
};
|
||||
|
||||
# endif // OLD_DIGRAPHS
|
||||
# endif // EBCDIC
|
||||
# endif // OLD_DIGRAPHS
|
||||
#endif // !HPUX_DIGRAPHS
|
||||
|
||||
/*
|
||||
|
||||
+7
-7
@@ -2554,17 +2554,17 @@ win_update(win_T *wp)
|
||||
// See the version that was fixed.
|
||||
if (use_vtp() && get_conpty_fix_type() < 1)
|
||||
{
|
||||
int i;
|
||||
int k;
|
||||
|
||||
for (i = 0; i < Rows; ++i)
|
||||
for (k = 0; k < Rows; ++k)
|
||||
if (enc_utf8)
|
||||
if ((*mb_off2cells)(LineOffset[i] + Columns - 2,
|
||||
LineOffset[i] + screen_Columns) > 1)
|
||||
screen_draw_rectangle(i, Columns - 2, 1, 2, FALSE);
|
||||
if ((*mb_off2cells)(LineOffset[k] + Columns - 2,
|
||||
LineOffset[k] + screen_Columns) > 1)
|
||||
screen_draw_rectangle(k, Columns - 2, 1, 2, FALSE);
|
||||
else
|
||||
screen_draw_rectangle(i, Columns - 1, 1, 1, FALSE);
|
||||
screen_draw_rectangle(k, Columns - 1, 1, 1, FALSE);
|
||||
else
|
||||
screen_char(LineOffset[i] + Columns - 1, i, Columns - 1);
|
||||
screen_char(LineOffset[k] + Columns - 1, k, Columns - 1);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
+4
-18
@@ -2061,11 +2061,7 @@ insert_special(
|
||||
* stop and defer processing to the "normal" mechanism.
|
||||
* '0' and '^' are special, because they can be followed by CTRL-D.
|
||||
*/
|
||||
#ifdef EBCDIC
|
||||
# define ISSPECIAL(c) ((c) < ' ' || (c) == '0' || (c) == '^')
|
||||
#else
|
||||
# define ISSPECIAL(c) ((c) < ' ' || (c) >= DEL || (c) == '0' || (c) == '^')
|
||||
#endif
|
||||
#define ISSPECIAL(c) ((c) < ' ' || (c) >= DEL || (c) == '0' || (c) == '^')
|
||||
|
||||
/*
|
||||
* "flags": INSCHAR_FORMAT - force formatting
|
||||
@@ -2935,9 +2931,8 @@ stuff_inserted(
|
||||
stuffReadbuff(ptr);
|
||||
// a trailing "0" is inserted as "<C-V>048", "^" as "<C-V>^"
|
||||
if (last)
|
||||
stuffReadbuff((char_u *)(last == '0'
|
||||
? IF_EB("\026\060\064\070", CTRL_V_STR "xf0")
|
||||
: IF_EB("\026^", CTRL_V_STR "^")));
|
||||
stuffReadbuff(
|
||||
(char_u *)(last == '0' ? "\026\060\064\070" : "\026^"));
|
||||
}
|
||||
while (--count > 0);
|
||||
|
||||
@@ -3325,15 +3320,11 @@ hkmap(int c)
|
||||
return ' '; // \"a --> ' ' -- / --
|
||||
else if (c == 252)
|
||||
return ' '; // \"u --> ' ' -- / --
|
||||
#ifdef EBCDIC
|
||||
else if (islower(c))
|
||||
#else
|
||||
// NOTE: islower() does not do the right thing for us on Linux so we
|
||||
// do this the same was as 5.7 and previous, so it works correctly on
|
||||
// all systems. Specifically, the e.g. Delete and Arrow keys are
|
||||
// munged and won't work if e.g. searching for Hebrew text.
|
||||
else if (c >= 'a' && c <= 'z')
|
||||
#endif
|
||||
return (int)(map[CharOrdLow(c)] + p_aleph);
|
||||
else
|
||||
return c;
|
||||
@@ -3355,12 +3346,7 @@ hkmap(int c)
|
||||
default: {
|
||||
static char str[] = "zqbcxlsjphmkwonu ydafe rig";
|
||||
|
||||
#ifdef EBCDIC
|
||||
// see note about islower() above
|
||||
if (!islower(c))
|
||||
#else
|
||||
if (c < 'a' || c > 'z')
|
||||
#endif
|
||||
return c;
|
||||
c = str[CharOrdLow(c)];
|
||||
break;
|
||||
@@ -4233,7 +4219,7 @@ ins_bs(
|
||||
}
|
||||
else
|
||||
want_vcol = tabstop_start(want_vcol, get_sts_value(),
|
||||
curbuf->b_p_vsts_array);
|
||||
curbuf->b_p_vsts_array);
|
||||
#else
|
||||
if (p_sta && in_indent)
|
||||
ts = (int)get_sw_value(curbuf);
|
||||
|
||||
+2
-3
@@ -2814,7 +2814,8 @@ EXTERN char e_cannot_assign_to_argument[]
|
||||
INIT(= N_("E1090: Cannot assign to argument %s"));
|
||||
EXTERN char e_function_is_not_compiled_str[]
|
||||
INIT(= N_("E1091: Function is not compiled: %s"));
|
||||
// E1092 unused
|
||||
EXTERN char e_cannot_nest_redir[]
|
||||
INIT(= N_("E1092: Cannot nest :redir"));
|
||||
EXTERN char e_expected_nr_items_but_got_nr[]
|
||||
INIT(= N_("E1093: Expected %d items but got %d"));
|
||||
EXTERN char e_import_can_only_be_used_in_script[]
|
||||
@@ -3017,8 +3018,6 @@ EXTERN char e_cannot_use_range_with_assignment_operator_str[]
|
||||
#ifdef FEAT_EVAL
|
||||
EXTERN char e_blob_not_set[]
|
||||
INIT(= N_("E1184: Blob not set"));
|
||||
EXTERN char e_cannot_nest_redir[]
|
||||
INIT(= N_("E1185: Cannot nest :redir"));
|
||||
EXTERN char e_missing_redir_end[]
|
||||
INIT(= N_("E1185: Missing :redir END"));
|
||||
EXTERN char e_expression_does_not_result_in_value_str[]
|
||||
|
||||
+6
-9
@@ -111,13 +111,6 @@ eval_init(void)
|
||||
{
|
||||
evalvars_init();
|
||||
func_init();
|
||||
|
||||
#ifdef EBCDIC
|
||||
/*
|
||||
* Sort the function table, to enable binary search.
|
||||
*/
|
||||
sortFunctions();
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined(EXITFREE) || defined(PROTO)
|
||||
@@ -6167,6 +6160,7 @@ handle_subscript(
|
||||
/*
|
||||
* Make a copy of an item.
|
||||
* Lists and Dictionaries are also copied. A deep copy if "deep" is set.
|
||||
* "top" is TRUE for the toplevel of copy().
|
||||
* For deepcopy() "copyID" is zero for a full copy or the ID for when a
|
||||
* reference to an already copied list/dict can be used.
|
||||
* Returns FAIL or OK.
|
||||
@@ -6176,6 +6170,7 @@ item_copy(
|
||||
typval_T *from,
|
||||
typval_T *to,
|
||||
int deep,
|
||||
int top,
|
||||
int copyID)
|
||||
{
|
||||
static int recurse = 0;
|
||||
@@ -6214,7 +6209,8 @@ item_copy(
|
||||
++to->vval.v_list->lv_refcount;
|
||||
}
|
||||
else
|
||||
to->vval.v_list = list_copy(from->vval.v_list, deep, copyID);
|
||||
to->vval.v_list = list_copy(from->vval.v_list,
|
||||
deep, top, copyID);
|
||||
if (to->vval.v_list == NULL)
|
||||
ret = FAIL;
|
||||
break;
|
||||
@@ -6233,7 +6229,8 @@ item_copy(
|
||||
++to->vval.v_dict->dv_refcount;
|
||||
}
|
||||
else
|
||||
to->vval.v_dict = dict_copy(from->vval.v_dict, deep, copyID);
|
||||
to->vval.v_dict = dict_copy(from->vval.v_dict,
|
||||
deep, top, copyID);
|
||||
if (to->vval.v_dict == NULL)
|
||||
ret = FAIL;
|
||||
break;
|
||||
|
||||
+187
-87
@@ -933,7 +933,6 @@ static argcheck_T arg3_string_any_string[] = {arg_string, NULL, arg_string};
|
||||
static argcheck_T arg3_string_bool_bool[] = {arg_string, arg_bool, arg_bool};
|
||||
static argcheck_T arg3_string_bool_dict[] = {arg_string, arg_bool, arg_dict_any};
|
||||
static argcheck_T arg3_string_number_bool[] = {arg_string, arg_number, arg_bool};
|
||||
static argcheck_T arg3_string_number_number[] = {arg_string, arg_number, arg_number};
|
||||
static argcheck_T arg3_string_string_bool[] = {arg_string, arg_string, arg_bool};
|
||||
static argcheck_T arg3_string_string_dict[] = {arg_string, arg_string, arg_dict_any};
|
||||
static argcheck_T arg3_string_string_number[] = {arg_string, arg_string, arg_number};
|
||||
@@ -993,127 +992,236 @@ static argcheck_T arg24_match_func[] = {arg_string_or_list_any, arg_string, arg_
|
||||
* Note that "argtypes" is NULL if "argcount" is zero.
|
||||
*/
|
||||
static type_T *
|
||||
ret_void(int argcount UNUSED, type2_T *argtypes UNUSED)
|
||||
ret_void(int argcount UNUSED,
|
||||
type2_T *argtypes UNUSED,
|
||||
type_T **decl_type UNUSED)
|
||||
{
|
||||
return &t_void;
|
||||
}
|
||||
static type_T *
|
||||
ret_any(int argcount UNUSED, type2_T *argtypes UNUSED)
|
||||
ret_any(int argcount UNUSED,
|
||||
type2_T *argtypes UNUSED,
|
||||
type_T **decl_type UNUSED)
|
||||
{
|
||||
return &t_any;
|
||||
}
|
||||
static type_T *
|
||||
ret_bool(int argcount UNUSED, type2_T *argtypes UNUSED)
|
||||
ret_bool(int argcount UNUSED,
|
||||
type2_T *argtypes UNUSED,
|
||||
type_T **decl_type UNUSED)
|
||||
{
|
||||
return &t_bool;
|
||||
}
|
||||
static type_T *
|
||||
ret_number_bool(int argcount UNUSED, type2_T *argtypes UNUSED)
|
||||
ret_number_bool(int argcount UNUSED,
|
||||
type2_T *argtypes UNUSED,
|
||||
type_T **decl_type UNUSED)
|
||||
{
|
||||
return &t_number_bool;
|
||||
}
|
||||
static type_T *
|
||||
ret_number(int argcount UNUSED, type2_T *argtypes UNUSED)
|
||||
ret_number(int argcount UNUSED,
|
||||
type2_T *argtypes UNUSED,
|
||||
type_T **decl_type UNUSED)
|
||||
{
|
||||
return &t_number;
|
||||
}
|
||||
static type_T *
|
||||
ret_float(int argcount UNUSED, type2_T *argtypes UNUSED)
|
||||
ret_float(int argcount UNUSED,
|
||||
type2_T *argtypes UNUSED,
|
||||
type_T **decl_type UNUSED)
|
||||
{
|
||||
return &t_float;
|
||||
}
|
||||
static type_T *
|
||||
ret_string(int argcount UNUSED, type2_T *argtypes UNUSED)
|
||||
ret_string(int argcount UNUSED,
|
||||
type2_T *argtypes UNUSED,
|
||||
type_T **decl_type UNUSED)
|
||||
{
|
||||
return &t_string;
|
||||
}
|
||||
static type_T *
|
||||
ret_list_any(int argcount UNUSED, type2_T *argtypes UNUSED)
|
||||
ret_list_any(int argcount UNUSED,
|
||||
type2_T *argtypes UNUSED,
|
||||
type_T **decl_type UNUSED)
|
||||
{
|
||||
return &t_list_any;
|
||||
}
|
||||
static type_T *
|
||||
ret_list_number(int argcount UNUSED, type2_T *argtypes UNUSED)
|
||||
ret_list_number(int argcount UNUSED,
|
||||
type2_T *argtypes UNUSED,
|
||||
type_T **decl_type UNUSED)
|
||||
{
|
||||
return &t_list_number;
|
||||
}
|
||||
static type_T *
|
||||
ret_list_string(int argcount UNUSED, type2_T *argtypes UNUSED)
|
||||
ret_range(int argcount UNUSED,
|
||||
type2_T *argtypes UNUSED,
|
||||
type_T **decl_type)
|
||||
{
|
||||
// returning a list<number>, but it's not declared as such
|
||||
*decl_type = &t_list_any;
|
||||
return &t_list_number;
|
||||
}
|
||||
static type_T *
|
||||
ret_list_string(int argcount UNUSED,
|
||||
type2_T *argtypes UNUSED,
|
||||
type_T **decl_type UNUSED)
|
||||
{
|
||||
return &t_list_string;
|
||||
}
|
||||
static type_T *
|
||||
ret_list_dict_any(int argcount UNUSED, type2_T *argtypes UNUSED)
|
||||
ret_list_dict_any(int argcount UNUSED,
|
||||
type2_T *argtypes UNUSED,
|
||||
type_T **decl_type UNUSED)
|
||||
{
|
||||
return &t_list_dict_any;
|
||||
}
|
||||
static type_T *
|
||||
ret_list_items(int argcount UNUSED, type2_T *argtypes UNUSED)
|
||||
ret_list_items(int argcount UNUSED,
|
||||
type2_T *argtypes UNUSED,
|
||||
type_T **decl_type UNUSED)
|
||||
{
|
||||
return &t_list_list_any;
|
||||
}
|
||||
|
||||
static type_T *
|
||||
ret_list_string_items(int argcount UNUSED, type2_T *argtypes UNUSED)
|
||||
ret_list_string_items(int argcount UNUSED,
|
||||
type2_T *argtypes UNUSED,
|
||||
type_T **decl_type UNUSED)
|
||||
{
|
||||
return &t_list_list_string;
|
||||
}
|
||||
static type_T *
|
||||
ret_dict_any(int argcount UNUSED, type2_T *argtypes UNUSED)
|
||||
ret_dict_any(int argcount UNUSED,
|
||||
type2_T *argtypes UNUSED,
|
||||
type_T **decl_type UNUSED)
|
||||
{
|
||||
return &t_dict_any;
|
||||
}
|
||||
static type_T *
|
||||
ret_job_info(int argcount, type2_T *argtypes UNUSED)
|
||||
ret_job_info(int argcount,
|
||||
type2_T *argtypes UNUSED,
|
||||
type_T **decl_type UNUSED)
|
||||
{
|
||||
if (argcount == 0)
|
||||
return &t_list_job;
|
||||
return &t_dict_any;
|
||||
}
|
||||
static type_T *
|
||||
ret_dict_number(int argcount UNUSED, type2_T *argtypes UNUSED)
|
||||
ret_dict_number(int argcount UNUSED,
|
||||
type2_T *argtypes UNUSED,
|
||||
type_T **decl_type UNUSED)
|
||||
{
|
||||
return &t_dict_number;
|
||||
}
|
||||
static type_T *
|
||||
ret_dict_string(int argcount UNUSED, type2_T *argtypes UNUSED)
|
||||
ret_dict_string(int argcount UNUSED,
|
||||
type2_T *argtypes UNUSED,
|
||||
type_T **decl_type UNUSED)
|
||||
{
|
||||
return &t_dict_string;
|
||||
}
|
||||
static type_T *
|
||||
ret_blob(int argcount UNUSED, type2_T *argtypes UNUSED)
|
||||
ret_blob(int argcount UNUSED,
|
||||
type2_T *argtypes UNUSED,
|
||||
type_T **decl_type UNUSED)
|
||||
{
|
||||
return &t_blob;
|
||||
}
|
||||
static type_T *
|
||||
ret_func_any(int argcount UNUSED, type2_T *argtypes UNUSED)
|
||||
ret_func_any(int argcount UNUSED,
|
||||
type2_T *argtypes UNUSED,
|
||||
type_T **decl_type UNUSED)
|
||||
{
|
||||
return &t_func_any;
|
||||
}
|
||||
static type_T *
|
||||
ret_func_unknown(int argcount UNUSED, type2_T *argtypes UNUSED)
|
||||
ret_func_unknown(int argcount UNUSED,
|
||||
type2_T *argtypes UNUSED,
|
||||
type_T **decl_type UNUSED)
|
||||
{
|
||||
return &t_func_unknown;
|
||||
}
|
||||
static type_T *
|
||||
ret_channel(int argcount UNUSED, type2_T *argtypes UNUSED)
|
||||
ret_channel(int argcount UNUSED,
|
||||
type2_T *argtypes UNUSED,
|
||||
type_T **decl_type UNUSED)
|
||||
{
|
||||
return &t_channel;
|
||||
}
|
||||
static type_T *
|
||||
ret_job(int argcount UNUSED, type2_T *argtypes UNUSED)
|
||||
ret_job(int argcount UNUSED,
|
||||
type2_T *argtypes UNUSED,
|
||||
type_T **decl_type UNUSED)
|
||||
{
|
||||
return &t_job;
|
||||
}
|
||||
static type_T *
|
||||
ret_first_arg(int argcount, type2_T *argtypes)
|
||||
ret_first_arg(int argcount,
|
||||
type2_T *argtypes,
|
||||
type_T **decl_type)
|
||||
{
|
||||
if (argcount > 0)
|
||||
{
|
||||
*decl_type = argtypes[0].type_decl;
|
||||
return argtypes[0].type_curr;
|
||||
}
|
||||
return &t_void;
|
||||
}
|
||||
static type_T *
|
||||
ret_repeat(int argcount, type2_T *argtypes)
|
||||
ret_copy(int argcount,
|
||||
type2_T *argtypes,
|
||||
type_T **decl_type)
|
||||
{
|
||||
if (argcount > 0)
|
||||
{
|
||||
if (argtypes[0].type_decl != NULL)
|
||||
{
|
||||
if (argtypes[0].type_decl->tt_type == VAR_LIST)
|
||||
*decl_type = &t_list_any;
|
||||
else if (argtypes[0].type_decl->tt_type == VAR_DICT)
|
||||
*decl_type = &t_dict_any;
|
||||
else
|
||||
*decl_type = argtypes[0].type_decl;
|
||||
}
|
||||
if (argtypes[0].type_curr != NULL)
|
||||
{
|
||||
if (argtypes[0].type_curr->tt_type == VAR_LIST)
|
||||
return &t_list_any;
|
||||
else if (argtypes[0].type_curr->tt_type == VAR_DICT)
|
||||
return &t_dict_any;
|
||||
}
|
||||
return argtypes[0].type_curr;
|
||||
}
|
||||
return &t_void;
|
||||
}
|
||||
static type_T *
|
||||
ret_extend(int argcount,
|
||||
type2_T *argtypes,
|
||||
type_T **decl_type)
|
||||
{
|
||||
if (argcount > 0)
|
||||
{
|
||||
*decl_type = argtypes[0].type_decl;
|
||||
// if the second argument has a different current type then the current
|
||||
// type is "any"
|
||||
if (argcount > 1 && !equal_type(argtypes[0].type_curr,
|
||||
argtypes[1].type_curr, 0))
|
||||
{
|
||||
if (argtypes[0].type_curr->tt_type == VAR_LIST)
|
||||
return &t_list_any;
|
||||
if (argtypes[0].type_curr->tt_type == VAR_DICT)
|
||||
return &t_dict_any;
|
||||
}
|
||||
return argtypes[0].type_curr;
|
||||
}
|
||||
return &t_void;
|
||||
}
|
||||
static type_T *
|
||||
ret_repeat(int argcount,
|
||||
type2_T *argtypes,
|
||||
type_T **decl_type UNUSED)
|
||||
{
|
||||
if (argcount == 0)
|
||||
return &t_any;
|
||||
@@ -1123,7 +1231,9 @@ ret_repeat(int argcount, type2_T *argtypes)
|
||||
}
|
||||
// for map(): returns first argument but item type may differ
|
||||
static type_T *
|
||||
ret_first_cont(int argcount, type2_T *argtypes)
|
||||
ret_first_cont(int argcount,
|
||||
type2_T *argtypes,
|
||||
type_T **decl_type UNUSED)
|
||||
{
|
||||
if (argcount > 0)
|
||||
{
|
||||
@@ -1138,13 +1248,17 @@ ret_first_cont(int argcount, type2_T *argtypes)
|
||||
}
|
||||
// for getline()
|
||||
static type_T *
|
||||
ret_getline(int argcount, type2_T *argtypes UNUSED)
|
||||
ret_getline(int argcount,
|
||||
type2_T *argtypes UNUSED,
|
||||
type_T **decl_type UNUSED)
|
||||
{
|
||||
return argcount == 1 ? &t_string : &t_list_string;
|
||||
}
|
||||
// for finddir()
|
||||
static type_T *
|
||||
ret_finddir(int argcount, type2_T *argtypes UNUSED)
|
||||
ret_finddir(int argcount,
|
||||
type2_T *argtypes UNUSED,
|
||||
type_T **decl_type UNUSED)
|
||||
{
|
||||
if (argcount < 3)
|
||||
return &t_string;
|
||||
@@ -1157,7 +1271,9 @@ ret_finddir(int argcount, type2_T *argtypes UNUSED)
|
||||
* one.
|
||||
*/
|
||||
static type_T *
|
||||
ret_list_or_dict_0(int argcount, type2_T *argtypes UNUSED)
|
||||
ret_list_or_dict_0(int argcount,
|
||||
type2_T *argtypes UNUSED,
|
||||
type_T **decl_type UNUSED)
|
||||
{
|
||||
if (argcount > 0)
|
||||
return &t_dict_any;
|
||||
@@ -1169,7 +1285,9 @@ ret_list_or_dict_0(int argcount, type2_T *argtypes UNUSED)
|
||||
* are two.
|
||||
*/
|
||||
static type_T *
|
||||
ret_list_or_dict_1(int argcount, type2_T *argtypes UNUSED)
|
||||
ret_list_or_dict_1(int argcount,
|
||||
type2_T *argtypes UNUSED,
|
||||
type_T **decl_type UNUSED)
|
||||
{
|
||||
if (argcount > 1)
|
||||
return &t_dict_any;
|
||||
@@ -1177,7 +1295,9 @@ ret_list_or_dict_1(int argcount, type2_T *argtypes UNUSED)
|
||||
}
|
||||
|
||||
static type_T *
|
||||
ret_argv(int argcount, type2_T *argtypes UNUSED)
|
||||
ret_argv(int argcount,
|
||||
type2_T *argtypes UNUSED,
|
||||
type_T **decl_type UNUSED)
|
||||
{
|
||||
// argv() returns list of strings
|
||||
if (argcount == 0)
|
||||
@@ -1188,13 +1308,20 @@ ret_argv(int argcount, type2_T *argtypes UNUSED)
|
||||
}
|
||||
|
||||
static type_T *
|
||||
ret_remove(int argcount, type2_T *argtypes)
|
||||
ret_remove(int argcount,
|
||||
type2_T *argtypes,
|
||||
type_T **decl_type UNUSED)
|
||||
{
|
||||
if (argcount > 0)
|
||||
{
|
||||
if (argtypes[0].type_curr->tt_type == VAR_LIST
|
||||
|| argtypes[0].type_curr->tt_type == VAR_DICT)
|
||||
{
|
||||
if (argtypes[0].type_curr->tt_type
|
||||
== argtypes[0].type_decl->tt_type)
|
||||
*decl_type = argtypes[0].type_decl->tt_member;
|
||||
return argtypes[0].type_curr->tt_member;
|
||||
}
|
||||
if (argtypes[0].type_curr->tt_type == VAR_BLOB)
|
||||
return &t_number;
|
||||
}
|
||||
@@ -1202,7 +1329,9 @@ ret_remove(int argcount, type2_T *argtypes)
|
||||
}
|
||||
|
||||
static type_T *
|
||||
ret_getreg(int argcount, type2_T *argtypes UNUSED)
|
||||
ret_getreg(int argcount,
|
||||
type2_T *argtypes UNUSED,
|
||||
type_T **decl_type UNUSED)
|
||||
{
|
||||
// Assume that if the third argument is passed it's non-zero
|
||||
if (argcount == 3)
|
||||
@@ -1211,7 +1340,9 @@ ret_getreg(int argcount, type2_T *argtypes UNUSED)
|
||||
}
|
||||
|
||||
static type_T *
|
||||
ret_maparg(int argcount, type2_T *argtypes UNUSED)
|
||||
ret_maparg(int argcount,
|
||||
type2_T *argtypes UNUSED,
|
||||
type_T **decl_type UNUSED)
|
||||
{
|
||||
// Assume that if the fourth argument is passed it's non-zero
|
||||
if (argcount == 4)
|
||||
@@ -1230,7 +1361,8 @@ typedef struct
|
||||
char f_max_argc; // maximal number of arguments
|
||||
char f_argtype; // for method: FEARG_ values
|
||||
argcheck_T *f_argcheck; // list of functions to check argument types
|
||||
type_T *(*f_retfunc)(int argcount, type2_T *argtypes);
|
||||
type_T *(*f_retfunc)(int argcount, type2_T *argtypes,
|
||||
type_T **decl_type);
|
||||
// return type function
|
||||
void (*f_func)(typval_T *args, typval_T *rvar);
|
||||
// implementation of function
|
||||
@@ -1466,7 +1598,7 @@ static funcentry_T global_functions[] =
|
||||
{"confirm", 1, 4, FEARG_1, arg4_string_string_number_string,
|
||||
ret_number, f_confirm},
|
||||
{"copy", 1, 1, FEARG_1, NULL,
|
||||
ret_first_arg, f_copy},
|
||||
ret_copy, f_copy},
|
||||
{"cos", 1, 1, FEARG_1, arg1_float_or_nr,
|
||||
ret_float, FLOAT_FUNC(f_cos)},
|
||||
{"cosh", 1, 1, FEARG_1, arg1_float_or_nr,
|
||||
@@ -1486,7 +1618,7 @@ static funcentry_T global_functions[] =
|
||||
#endif
|
||||
},
|
||||
{"deepcopy", 1, 2, FEARG_1, arg12_deepcopy,
|
||||
ret_first_arg, f_deepcopy},
|
||||
ret_copy, f_deepcopy},
|
||||
{"delete", 1, 2, FEARG_1, arg2_string,
|
||||
ret_number_bool, f_delete},
|
||||
{"deletebufline", 2, 3, FEARG_1, arg3_buffer_lnum_lnum,
|
||||
@@ -1534,7 +1666,7 @@ static funcentry_T global_functions[] =
|
||||
{"expandcmd", 1, 1, FEARG_1, arg1_string,
|
||||
ret_string, f_expandcmd},
|
||||
{"extend", 2, 3, FEARG_1, arg23_extend,
|
||||
ret_first_arg, f_extend},
|
||||
ret_extend, f_extend},
|
||||
{"extendnew", 2, 3, FEARG_1, arg23_extendnew,
|
||||
ret_first_cont, f_extendnew},
|
||||
{"feedkeys", 1, 2, FEARG_1, arg2_string,
|
||||
@@ -1735,8 +1867,6 @@ static funcentry_T global_functions[] =
|
||||
ret_string, f_inputsecret},
|
||||
{"insert", 2, 3, FEARG_1, arg23_insert,
|
||||
ret_first_arg, f_insert},
|
||||
{"internal_get_nv_cmdchar", 1, 1, FEARG_1, arg1_number,
|
||||
ret_number, f_internal_get_nv_cmdchar},
|
||||
{"interrupt", 0, 0, 0, NULL,
|
||||
ret_void, f_interrupt},
|
||||
{"invert", 1, 1, FEARG_1, arg1_number,
|
||||
@@ -1994,7 +2124,7 @@ static funcentry_T global_functions[] =
|
||||
{"rand", 0, 1, FEARG_1, arg1_list_number,
|
||||
ret_number, f_rand},
|
||||
{"range", 1, 3, FEARG_1, arg3_number,
|
||||
ret_list_number, f_range},
|
||||
ret_range, f_range},
|
||||
{"readblob", 1, 1, FEARG_1, arg1_string,
|
||||
ret_blob, f_readblob},
|
||||
{"readdir", 1, 3, FEARG_1, arg3_string_any_dict,
|
||||
@@ -2361,14 +2491,6 @@ static funcentry_T global_functions[] =
|
||||
ret_void, f_test_override},
|
||||
{"test_refcount", 1, 1, FEARG_1, NULL,
|
||||
ret_number, f_test_refcount},
|
||||
{"test_scrollbar", 3, 3, FEARG_2, arg3_string_number_number,
|
||||
ret_void,
|
||||
#ifdef FEAT_GUI
|
||||
f_test_scrollbar
|
||||
#else
|
||||
NULL
|
||||
#endif
|
||||
},
|
||||
{"test_setmouse", 2, 2, 0, arg2_number,
|
||||
ret_void, f_test_setmouse},
|
||||
{"test_settime", 1, 1, FEARG_1, arg1_number,
|
||||
@@ -2469,33 +2591,6 @@ static funcentry_T global_functions[] =
|
||||
ret_number, f_xor},
|
||||
};
|
||||
|
||||
#if defined(EBCDIC) || defined(PROTO)
|
||||
/*
|
||||
* Compare funcentry_T by function name.
|
||||
*/
|
||||
static int
|
||||
compare_func_name(const void *s1, const void *s2)
|
||||
{
|
||||
funcentry_T *p1 = (funcentry_T *)s1;
|
||||
funcentry_T *p2 = (funcentry_T *)s2;
|
||||
|
||||
return STRCMP(p1->f_name, p2->f_name);
|
||||
}
|
||||
|
||||
/*
|
||||
* Sort the function table by function name.
|
||||
* The sorting of the table above is ASCII dependent.
|
||||
* On machines using EBCDIC we have to sort it.
|
||||
*/
|
||||
void
|
||||
sortFunctions(void)
|
||||
{
|
||||
size_t funcCnt = ARRAY_LENGTH(global_functions);
|
||||
|
||||
qsort(global_functions, funcCnt, sizeof(funcentry_T), compare_func_name);
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Function given to ExpandGeneric() to obtain the list of internal
|
||||
* or user defined function names.
|
||||
@@ -2660,14 +2755,25 @@ internal_func_get_argcount(int idx, int *argcount, int *min_argcount)
|
||||
|
||||
/*
|
||||
* Call the "f_retfunc" function to obtain the return type of function "idx".
|
||||
* "decl_type" is set to the declared type.
|
||||
* "argtypes" is the list of argument types or NULL when there are no
|
||||
* arguments.
|
||||
* "argcount" may be less than the actual count when only getting the type.
|
||||
*/
|
||||
type_T *
|
||||
internal_func_ret_type(int idx, int argcount, type2_T *argtypes)
|
||||
internal_func_ret_type(
|
||||
int idx,
|
||||
int argcount,
|
||||
type2_T *argtypes,
|
||||
type_T **decl_type)
|
||||
{
|
||||
return global_functions[idx].f_retfunc(argcount, argtypes);
|
||||
type_T *ret;
|
||||
|
||||
*decl_type = NULL;
|
||||
ret = global_functions[idx].f_retfunc(argcount, argtypes, decl_type);
|
||||
if (*decl_type == NULL)
|
||||
*decl_type = ret;
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -3218,7 +3324,7 @@ f_confirm(typval_T *argvars UNUSED, typval_T *rettv UNUSED)
|
||||
static void
|
||||
f_copy(typval_T *argvars, typval_T *rettv)
|
||||
{
|
||||
item_copy(&argvars[0], rettv, FALSE, 0);
|
||||
item_copy(&argvars[0], rettv, FALSE, TRUE, 0);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -3360,7 +3466,7 @@ f_deepcopy(typval_T *argvars, typval_T *rettv)
|
||||
else
|
||||
{
|
||||
copyID = get_copyID();
|
||||
item_copy(&argvars[0], rettv, TRUE, noref == 0 ? copyID : 0);
|
||||
item_copy(&argvars[0], rettv, TRUE, TRUE, noref == 0 ? copyID : 0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5103,13 +5209,7 @@ f_has(typval_T *argvars, typval_T *rettv)
|
||||
0
|
||||
#endif
|
||||
},
|
||||
{"ebcdic",
|
||||
#ifdef EBCDIC
|
||||
1
|
||||
#else
|
||||
0
|
||||
#endif
|
||||
},
|
||||
{"ebcdic", 0 },
|
||||
{"fname_case",
|
||||
#ifndef CASE_INSENSITIVE_FILENAME
|
||||
1
|
||||
|
||||
+1
-18
@@ -3697,24 +3697,7 @@ set_var_const(
|
||||
free_tv_arg = FALSE;
|
||||
|
||||
if (vim9script && type != NULL)
|
||||
{
|
||||
if (type->tt_type == VAR_DICT && dest_tv->vval.v_dict != NULL)
|
||||
{
|
||||
if (dest_tv->vval.v_dict->dv_type != type)
|
||||
{
|
||||
free_type(dest_tv->vval.v_dict->dv_type);
|
||||
dest_tv->vval.v_dict->dv_type = alloc_type(type);
|
||||
}
|
||||
}
|
||||
else if (type->tt_type == VAR_LIST && dest_tv->vval.v_list != NULL)
|
||||
{
|
||||
if (dest_tv->vval.v_list->lv_type != type)
|
||||
{
|
||||
free_type(dest_tv->vval.v_list->lv_type);
|
||||
dest_tv->vval.v_list->lv_type = alloc_type(type);
|
||||
}
|
||||
}
|
||||
}
|
||||
set_tv_type(dest_tv, type);
|
||||
|
||||
// ":const var = value" locks the value
|
||||
// ":final var = value" locks "var"
|
||||
|
||||
+4
-10
@@ -61,23 +61,17 @@ do_ascii(exarg_T *eap UNUSED)
|
||||
cval = NL; // NL is stored as CR
|
||||
else
|
||||
cval = c;
|
||||
if (vim_isprintc_strict(c) && (c < ' '
|
||||
#ifndef EBCDIC
|
||||
|| c > '~'
|
||||
#endif
|
||||
))
|
||||
if (vim_isprintc_strict(c) && (c < ' ' || c > '~'))
|
||||
{
|
||||
transchar_nonprint(curbuf, buf3, c);
|
||||
vim_snprintf(buf1, sizeof(buf1), " <%s>", (char *)buf3);
|
||||
}
|
||||
else
|
||||
buf1[0] = NUL;
|
||||
#ifndef EBCDIC
|
||||
if (c >= 0x80)
|
||||
vim_snprintf(buf2, sizeof(buf2), " <M-%s>",
|
||||
(char *)transchar(c & 0x7f));
|
||||
else
|
||||
#endif
|
||||
buf2[0] = NUL;
|
||||
#ifdef FEAT_DIGRAPHS
|
||||
dig = get_digraph_for_char(cval);
|
||||
@@ -105,9 +99,9 @@ do_ascii(exarg_T *eap UNUSED)
|
||||
IObuff[len++] = ' ';
|
||||
IObuff[len++] = '<';
|
||||
if (enc_utf8 && utf_iscomposing(c)
|
||||
# ifdef USE_GUI
|
||||
#ifdef USE_GUI
|
||||
&& !gui.in_use
|
||||
# endif
|
||||
#endif
|
||||
)
|
||||
IObuff[len++] = ' '; // draw composing char on top of a space
|
||||
len += (*mb_char2bytes)(c, IObuff + len);
|
||||
@@ -1506,7 +1500,7 @@ do_shell(
|
||||
}
|
||||
else if (term_console)
|
||||
{
|
||||
OUT_STR(IF_EB("\033[0 q", ESC_STR "[0 q")); // get window size
|
||||
OUT_STR("\033[0 q"); // get window size
|
||||
if (got_int && msg_silent == 0)
|
||||
redraw_later_clear(); // if got_int is TRUE, redraw needed
|
||||
else
|
||||
|
||||
+25
-30
@@ -2715,7 +2715,7 @@ ex_range_without_command(exarg_T *eap)
|
||||
/*
|
||||
* Check for an Ex command with optional tail.
|
||||
* If there is a match advance "pp" to the argument and return TRUE.
|
||||
* If "noparen" is TRUE do not recognize the command followed by "(".
|
||||
* If "noparen" is TRUE do not recognize the command followed by "(" or ".".
|
||||
*/
|
||||
static int
|
||||
checkforcmd_opt(
|
||||
@@ -2729,8 +2729,8 @@ checkforcmd_opt(
|
||||
for (i = 0; cmd[i] != NUL; ++i)
|
||||
if (((char_u *)cmd)[i] != (*pp)[i])
|
||||
break;
|
||||
if (i >= len && !isalpha((*pp)[i])
|
||||
&& (*pp)[i] != '_' && (!noparen || (*pp)[i] != '('))
|
||||
if (i >= len && !isalpha((*pp)[i]) && (*pp)[i] != '_'
|
||||
&& (!noparen || ((*pp)[i] != '(' && (*pp)[i] != '.')))
|
||||
{
|
||||
*pp = skipwhite(*pp + i);
|
||||
return TRUE;
|
||||
@@ -2752,7 +2752,7 @@ checkforcmd(
|
||||
}
|
||||
|
||||
/*
|
||||
* Check for an Ex command with optional tail, not followed by "(".
|
||||
* Check for an Ex command with optional tail, not followed by "(" or ".".
|
||||
* If there is a match advance "pp" to the argument and return TRUE.
|
||||
*/
|
||||
int
|
||||
@@ -7366,7 +7366,8 @@ changedir_func(
|
||||
{
|
||||
char_u *pdir = NULL;
|
||||
int dir_differs;
|
||||
int retval = FALSE;
|
||||
char_u *acmd_fname;
|
||||
char_u **pp;
|
||||
|
||||
if (new_dir == NULL || allbuf_locked())
|
||||
return FALSE;
|
||||
@@ -7423,38 +7424,32 @@ changedir_func(
|
||||
{
|
||||
emsg(_(e_command_failed));
|
||||
vim_free(pdir);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (scope == CDSCOPE_WINDOW)
|
||||
pp = &curwin->w_prevdir;
|
||||
else if (scope == CDSCOPE_TABPAGE)
|
||||
pp = &curtab->tp_prevdir;
|
||||
else
|
||||
pp = &prev_dir;
|
||||
vim_free(*pp);
|
||||
*pp = pdir;
|
||||
|
||||
post_chdir(scope);
|
||||
|
||||
if (dir_differs)
|
||||
{
|
||||
char_u *acmd_fname;
|
||||
char_u **pp;
|
||||
|
||||
if (scope == CDSCOPE_WINDOW)
|
||||
pp = &curwin->w_prevdir;
|
||||
acmd_fname = (char_u *)"window";
|
||||
else if (scope == CDSCOPE_TABPAGE)
|
||||
pp = &curtab->tp_prevdir;
|
||||
acmd_fname = (char_u *)"tabpage";
|
||||
else
|
||||
pp = &prev_dir;
|
||||
vim_free(*pp);
|
||||
*pp = pdir;
|
||||
|
||||
post_chdir(scope);
|
||||
|
||||
if (dir_differs)
|
||||
{
|
||||
if (scope == CDSCOPE_WINDOW)
|
||||
acmd_fname = (char_u *)"window";
|
||||
else if (scope == CDSCOPE_TABPAGE)
|
||||
acmd_fname = (char_u *)"tabpage";
|
||||
else
|
||||
acmd_fname = (char_u *)"global";
|
||||
apply_autocmds(EVENT_DIRCHANGED, acmd_fname, new_dir, FALSE,
|
||||
curbuf);
|
||||
}
|
||||
retval = TRUE;
|
||||
acmd_fname = (char_u *)"global";
|
||||
apply_autocmds(EVENT_DIRCHANGED, acmd_fname, new_dir, FALSE,
|
||||
curbuf);
|
||||
}
|
||||
|
||||
return retval;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
+4
-18
@@ -222,20 +222,16 @@
|
||||
|
||||
/*
|
||||
* +rightleft Right-to-left editing/typing support.
|
||||
*
|
||||
* Disabled for EBCDIC as it requires multibyte.
|
||||
*/
|
||||
#if defined(FEAT_BIG) && !defined(DISABLE_RIGHTLEFT) && !defined(EBCDIC)
|
||||
#if defined(FEAT_BIG) && !defined(DISABLE_RIGHTLEFT)
|
||||
# define FEAT_RIGHTLEFT
|
||||
#endif
|
||||
|
||||
/*
|
||||
* +arabic Arabic keymap and shaping support.
|
||||
* Requires FEAT_RIGHTLEFT
|
||||
*
|
||||
* Disabled for EBCDIC as it requires multibyte.
|
||||
*/
|
||||
#if defined(FEAT_BIG) && !defined(DISABLE_ARABIC) && !defined(EBCDIC)
|
||||
#if defined(FEAT_BIG) && !defined(DISABLE_ARABIC)
|
||||
# define FEAT_ARABIC
|
||||
#endif
|
||||
#ifdef FEAT_ARABIC
|
||||
@@ -254,16 +250,8 @@
|
||||
|
||||
/*
|
||||
* +tag_binary Can use a binary search for the tags file.
|
||||
*
|
||||
* Disabled for EBCDIC:
|
||||
* On z/OS Unix we have the problem that /bin/sort sorts ASCII instead of
|
||||
* EBCDIC. With this binary search doesn't work, as VIM expects a tag file
|
||||
* sorted by character values. I'm not sure how to fix this. Should we really
|
||||
* do a EBCDIC to ASCII conversion for this??
|
||||
*/
|
||||
#if !defined(EBCDIC)
|
||||
# define FEAT_TAG_BINS
|
||||
#endif
|
||||
#define FEAT_TAG_BINS
|
||||
|
||||
/*
|
||||
* +cscope Unix only: Cscope support.
|
||||
@@ -416,10 +404,8 @@
|
||||
|
||||
/*
|
||||
* +spell spell checking
|
||||
*
|
||||
* Disabled for EBCDIC: * Doesn't work (SIGSEGV).
|
||||
*/
|
||||
#if (defined(FEAT_NORMAL) || defined(PROTO)) && !defined(EBCDIC)
|
||||
#if (defined(FEAT_NORMAL) || defined(PROTO))
|
||||
# define FEAT_SPELL
|
||||
#endif
|
||||
|
||||
|
||||
+4
-13
@@ -372,12 +372,12 @@ repeat:
|
||||
{
|
||||
if (GetLongPathNameW(wfname, buf, _MAX_PATH))
|
||||
{
|
||||
char_u *p = utf16_to_enc(buf, NULL);
|
||||
char_u *q = utf16_to_enc(buf, NULL);
|
||||
|
||||
if (p != NULL)
|
||||
if (q != NULL)
|
||||
{
|
||||
vim_free(*bufp); // free any allocated file name
|
||||
*bufp = *fnamep = p;
|
||||
*bufp = *fnamep = q;
|
||||
}
|
||||
}
|
||||
vim_free(wfname);
|
||||
@@ -2208,16 +2208,7 @@ f_tempname(typval_T *argvars UNUSED, typval_T *rettv)
|
||||
else if (x == '9')
|
||||
x = 'A';
|
||||
else
|
||||
{
|
||||
#ifdef EBCDIC
|
||||
if (x == 'I')
|
||||
x = 'J';
|
||||
else if (x == 'R')
|
||||
x = 'S';
|
||||
else
|
||||
#endif
|
||||
++x;
|
||||
}
|
||||
++x;
|
||||
} while (x == 'I' || x == 'O');
|
||||
}
|
||||
|
||||
|
||||
@@ -489,7 +489,6 @@ vim_findfile_init(
|
||||
* The octet after a '**' is used as a (binary) counter.
|
||||
* So '**3' is transposed to '**^C' ('^C' is ASCII value 3)
|
||||
* or '**76' is transposed to '**N'( 'N' is ASCII value 76).
|
||||
* For EBCDIC you get different character values.
|
||||
* If no restrict is given after '**' the default is used.
|
||||
* Due to this technique the path looks awful if you print it as a
|
||||
* string.
|
||||
|
||||
+9
-21
@@ -571,11 +571,7 @@ AppendToRedobuffLit(
|
||||
// Put a string of normal characters in the redo buffer (that's
|
||||
// faster).
|
||||
start = s;
|
||||
while (*s >= ' '
|
||||
#ifndef EBCDIC
|
||||
&& *s < DEL // EBCDIC: all chars above space are normal
|
||||
#endif
|
||||
&& (len < 0 || s - str < len))
|
||||
while (*s >= ' ' && *s < DEL && (len < 0 || s - str < len))
|
||||
++s;
|
||||
|
||||
// Don't put '0' or '^' as last character, just in case a CTRL-D is
|
||||
@@ -597,13 +593,9 @@ AppendToRedobuffLit(
|
||||
if (c < ' ' || c == DEL || (*s == NUL && (c == '0' || c == '^')))
|
||||
add_char_buff(&redobuff, Ctrl_V);
|
||||
|
||||
// CTRL-V '0' must be inserted as CTRL-V 048 (EBCDIC: xf0)
|
||||
// CTRL-V '0' must be inserted as CTRL-V 048
|
||||
if (*s == NUL && c == '0')
|
||||
#ifdef EBCDIC
|
||||
add_buff(&redobuff, (char_u *)"xf0", 3L);
|
||||
#else
|
||||
add_buff(&redobuff, (char_u *)"048", 3L);
|
||||
#endif
|
||||
else
|
||||
add_char_buff(&redobuff, c);
|
||||
}
|
||||
@@ -721,11 +713,7 @@ stuffescaped(char_u *arg, int literally)
|
||||
// stuff K_SPECIAL to get the effect of a special key when "literally"
|
||||
// is TRUE.
|
||||
start = arg;
|
||||
while ((*arg >= ' '
|
||||
#ifndef EBCDIC
|
||||
&& *arg < DEL // EBCDIC: chars above space are normal
|
||||
#endif
|
||||
)
|
||||
while ((*arg >= ' ' && *arg < DEL)
|
||||
|| (*arg == K_SPECIAL && !literally))
|
||||
++arg;
|
||||
if (arg > start)
|
||||
@@ -1780,16 +1768,16 @@ vgetc(void)
|
||||
c == K_TEAROFF)
|
||||
{
|
||||
char_u name[200];
|
||||
int i;
|
||||
int j;
|
||||
|
||||
// get menu path, it ends with a <CR>
|
||||
for (i = 0; (c = vgetorpeek(TRUE)) != '\r'; )
|
||||
for (j = 0; (c = vgetorpeek(TRUE)) != '\r'; )
|
||||
{
|
||||
name[i] = c;
|
||||
if (i < 199)
|
||||
++i;
|
||||
name[j] = c;
|
||||
if (j < 199)
|
||||
++j;
|
||||
}
|
||||
name[i] = NUL;
|
||||
name[j] = NUL;
|
||||
gui_make_tearoff(name);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -292,11 +292,11 @@ gui_do_fork(void)
|
||||
}
|
||||
// Child
|
||||
|
||||
#ifdef FEAT_GUI_GTK
|
||||
# ifdef FEAT_GUI_GTK
|
||||
// Call gtk_init_check() here after fork(). See gui_init_check().
|
||||
if (gui_mch_init_check() != OK)
|
||||
getout_preserve_modified(1);
|
||||
#endif
|
||||
# endif
|
||||
|
||||
# if defined(HAVE_SETSID) || defined(HAVE_SETPGID)
|
||||
/*
|
||||
@@ -348,11 +348,11 @@ gui_do_fork(void)
|
||||
gui_read_child_pipe(int fd)
|
||||
{
|
||||
long bytes_read;
|
||||
#define READ_BUFFER_SIZE 10
|
||||
# define READ_BUFFER_SIZE 10
|
||||
char buffer[READ_BUFFER_SIZE];
|
||||
|
||||
bytes_read = read_eintr(fd, buffer, READ_BUFFER_SIZE - 1);
|
||||
#undef READ_BUFFER_SIZE
|
||||
# undef READ_BUFFER_SIZE
|
||||
close(fd);
|
||||
if (bytes_read < 0)
|
||||
return GUI_CHILD_IO_ERROR;
|
||||
@@ -459,7 +459,7 @@ gui_init_check(void)
|
||||
gui.scrollbar_width = gui.scrollbar_height = SB_DEFAULT_WIDTH;
|
||||
gui.prev_wrap = -1;
|
||||
|
||||
# ifdef FEAT_GUI_GTK
|
||||
#ifdef FEAT_GUI_GTK
|
||||
CLEAR_FIELD(gui.ligatures_map);
|
||||
#endif
|
||||
|
||||
@@ -1456,7 +1456,7 @@ gui_position_components(int total_width UNUSED)
|
||||
text_area_y += gui.menu_height;
|
||||
#endif
|
||||
|
||||
# if defined(FEAT_GUI_TABLINE) && (defined(FEAT_GUI_MSWIN) \
|
||||
#if defined(FEAT_GUI_TABLINE) && (defined(FEAT_GUI_MSWIN) \
|
||||
|| defined(FEAT_GUI_MOTIF))
|
||||
if (gui_has_tabline())
|
||||
text_area_y += gui.tabline_height;
|
||||
@@ -1474,7 +1474,7 @@ gui_position_components(int total_width UNUSED)
|
||||
}
|
||||
#endif
|
||||
|
||||
# if defined(FEAT_GUI_TABLINE) && defined(FEAT_GUI_HAIKU)
|
||||
#if defined(FEAT_GUI_TABLINE) && defined(FEAT_GUI_HAIKU)
|
||||
gui_mch_set_tabline_pos(0, text_area_y,
|
||||
gui.menu_width, gui.tabline_height);
|
||||
if (gui_has_tabline())
|
||||
@@ -1866,7 +1866,7 @@ gui_clear_block(
|
||||
void
|
||||
gui_update_cursor_later(void)
|
||||
{
|
||||
OUT_STR(IF_EB("\033|s", ESC_STR "|s"));
|
||||
OUT_STR("\033|s");
|
||||
}
|
||||
|
||||
void
|
||||
@@ -1993,12 +1993,7 @@ gui_write(
|
||||
len -= (int)(++p - s);
|
||||
s = p;
|
||||
}
|
||||
else if (
|
||||
#ifdef EBCDIC
|
||||
CtrlChar(s[0]) != 0 // Ctrl character
|
||||
#else
|
||||
s[0] < 0x20 // Ctrl character
|
||||
#endif
|
||||
else if (s[0] < 0x20 // Ctrl character
|
||||
#ifdef FEAT_SIGN_ICONS
|
||||
&& s[0] != SIGN_BYTE
|
||||
# ifdef FEAT_NETBEANS_INTG
|
||||
@@ -2041,11 +2036,7 @@ gui_write(
|
||||
{
|
||||
p = s;
|
||||
while (len > 0 && (
|
||||
#ifdef EBCDIC
|
||||
CtrlChar(*p) == 0
|
||||
#else
|
||||
*p >= 0x20
|
||||
#endif
|
||||
#ifdef FEAT_SIGN_ICONS
|
||||
|| *p == SIGN_BYTE
|
||||
# ifdef FEAT_NETBEANS_INTG
|
||||
@@ -5296,10 +5287,10 @@ gui_update_screen(void)
|
||||
{
|
||||
if (has_cursormoved())
|
||||
apply_autocmds(EVENT_CURSORMOVED, NULL, NULL, FALSE, curbuf);
|
||||
#ifdef FEAT_PROP_POPUP
|
||||
# ifdef FEAT_PROP_POPUP
|
||||
if (popup_visible)
|
||||
popup_check_cursor_pos();
|
||||
#endif
|
||||
# endif
|
||||
# ifdef FEAT_CONCEAL
|
||||
if (curwin->w_p_cole > 0)
|
||||
{
|
||||
|
||||
@@ -1259,10 +1259,6 @@ gui_mch_add_menu_item(vimmenu_T *menu, int idx)
|
||||
XmString label;
|
||||
vimmenu_T *parent = menu->parent;
|
||||
|
||||
# ifdef EBCDIC
|
||||
menu->mnemonic = 0;
|
||||
# endif
|
||||
|
||||
# if (XmVersion <= 1002)
|
||||
// Don't add Popup menu items when the popup menu isn't used.
|
||||
if (menu_is_child_of_popup(menu) && !mouse_model_popup())
|
||||
|
||||
+22
-37
@@ -517,7 +517,7 @@ static int s_getting_focus = FALSE;
|
||||
static int s_x_pending;
|
||||
static int s_y_pending;
|
||||
static UINT s_kFlags_pending;
|
||||
static UINT s_wait_timer = 0; // Timer for get char from user
|
||||
static UINT_PTR s_wait_timer = 0; // Timer for get char from user
|
||||
static int s_timed_out = FALSE;
|
||||
static int dead_key = 0; // 0: no dead key, 1: dead key pressed
|
||||
static UINT surrogate_pending_ch = 0; // 0: no surrogate pending,
|
||||
@@ -526,7 +526,7 @@ static UINT surrogate_pending_ch = 0; // 0: no surrogate pending,
|
||||
#ifdef FEAT_BEVAL_GUI
|
||||
// balloon-eval WM_NOTIFY_HANDLER
|
||||
static void Handle_WM_Notify(HWND hwnd, LPNMHDR pnmh);
|
||||
static void TrackUserActivity(UINT uMsg);
|
||||
static void track_user_activity(UINT uMsg);
|
||||
#endif
|
||||
|
||||
/*
|
||||
@@ -584,7 +584,7 @@ static int blink_state = BLINK_NONE;
|
||||
static long_u blink_waittime = 700;
|
||||
static long_u blink_ontime = 400;
|
||||
static long_u blink_offtime = 250;
|
||||
static UINT blink_timer = 0;
|
||||
static UINT_PTR blink_timer = 0;
|
||||
|
||||
int
|
||||
gui_mch_is_blinking(void)
|
||||
@@ -610,7 +610,7 @@ gui_mch_set_blinking(long wait, long on, long off)
|
||||
_OnBlinkTimer(
|
||||
HWND hwnd,
|
||||
UINT uMsg UNUSED,
|
||||
UINT idEvent,
|
||||
UINT_PTR idEvent,
|
||||
DWORD dwTime UNUSED)
|
||||
{
|
||||
MSG msg;
|
||||
@@ -629,15 +629,13 @@ _OnBlinkTimer(
|
||||
{
|
||||
gui_undraw_cursor();
|
||||
blink_state = BLINK_OFF;
|
||||
blink_timer = (UINT) SetTimer(NULL, 0, (UINT)blink_offtime,
|
||||
(TIMERPROC)_OnBlinkTimer);
|
||||
blink_timer = SetTimer(NULL, 0, (UINT)blink_offtime, _OnBlinkTimer);
|
||||
}
|
||||
else
|
||||
{
|
||||
gui_update_cursor(TRUE, FALSE);
|
||||
blink_state = BLINK_ON;
|
||||
blink_timer = (UINT) SetTimer(NULL, 0, (UINT)blink_ontime,
|
||||
(TIMERPROC)_OnBlinkTimer);
|
||||
blink_timer = SetTimer(NULL, 0, (UINT)blink_ontime, _OnBlinkTimer);
|
||||
}
|
||||
gui_mch_flush();
|
||||
}
|
||||
@@ -684,8 +682,7 @@ gui_mch_start_blink(void)
|
||||
// Only switch blinking on if none of the times is zero
|
||||
if (blink_waittime && blink_ontime && blink_offtime && gui.in_focus)
|
||||
{
|
||||
blink_timer = (UINT)SetTimer(NULL, 0, (UINT)blink_waittime,
|
||||
(TIMERPROC)_OnBlinkTimer);
|
||||
blink_timer = SetTimer(NULL, 0, (UINT)blink_waittime, _OnBlinkTimer);
|
||||
blink_state = BLINK_ON;
|
||||
gui_update_cursor(TRUE, FALSE);
|
||||
gui_mch_flush();
|
||||
@@ -700,7 +697,7 @@ gui_mch_start_blink(void)
|
||||
_OnTimer(
|
||||
HWND hwnd,
|
||||
UINT uMsg UNUSED,
|
||||
UINT idEvent,
|
||||
UINT_PTR idEvent,
|
||||
DWORD dwTime UNUSED)
|
||||
{
|
||||
MSG msg;
|
||||
@@ -1257,7 +1254,7 @@ _TextAreaWndProc(
|
||||
s_lParam = lParam;
|
||||
|
||||
#ifdef FEAT_BEVAL_GUI
|
||||
TrackUserActivity(uMsg);
|
||||
track_user_activity(uMsg);
|
||||
#endif
|
||||
|
||||
switch (uMsg)
|
||||
@@ -2117,8 +2114,8 @@ gui_mch_wait_for_chars(int wtime)
|
||||
return FAIL;
|
||||
|
||||
// When called with "wtime" zero, just want one msec.
|
||||
s_wait_timer = (UINT)SetTimer(NULL, 0, (UINT)(wtime == 0 ? 1 : wtime),
|
||||
(TIMERPROC)_OnTimer);
|
||||
s_wait_timer = SetTimer(NULL, 0, (UINT)(wtime == 0 ? 1 : wtime),
|
||||
_OnTimer);
|
||||
}
|
||||
|
||||
allow_scrollbar = TRUE;
|
||||
@@ -3892,8 +3889,8 @@ _OnScroll(
|
||||
# define BEVAL_TEXT_LEN MAXPATHL
|
||||
|
||||
static BalloonEval *cur_beval = NULL;
|
||||
static UINT_PTR BevalTimerId = 0;
|
||||
static DWORD LastActivity = 0;
|
||||
static UINT_PTR beval_timer_id = 0;
|
||||
static DWORD last_user_activity = 0;
|
||||
#endif // defined(FEAT_BEVAL_GUI)
|
||||
|
||||
|
||||
@@ -8238,10 +8235,10 @@ delete_tooltip(BalloonEval *beval)
|
||||
}
|
||||
|
||||
static VOID CALLBACK
|
||||
BevalTimerProc(
|
||||
beval_timer_proc(
|
||||
HWND hwnd UNUSED,
|
||||
UINT uMsg UNUSED,
|
||||
UINT_PTR idEvent UNUSED,
|
||||
UINT_PTR idEvent UNUSED,
|
||||
DWORD dwTime)
|
||||
{
|
||||
POINT pt;
|
||||
@@ -8259,8 +8256,8 @@ BevalTimerProc(
|
||||
if (!PtInRect(&rect, pt))
|
||||
return;
|
||||
|
||||
if (LastActivity > 0
|
||||
&& (dwTime - LastActivity) >= (DWORD)p_bdlay
|
||||
if (last_user_activity > 0
|
||||
&& (dwTime - last_user_activity) >= (DWORD)p_bdlay
|
||||
&& (cur_beval->showState != ShS_PENDING
|
||||
|| abs(cur_beval->x - pt.x) > 3
|
||||
|| abs(cur_beval->y - pt.y) > 3))
|
||||
@@ -8271,8 +8268,6 @@ BevalTimerProc(
|
||||
cur_beval->x = pt.x;
|
||||
cur_beval->y = pt.y;
|
||||
|
||||
// TRACE0("BevalTimerProc: sending request");
|
||||
|
||||
if (cur_beval->msgCB != NULL)
|
||||
(*cur_beval->msgCB)(cur_beval, 0);
|
||||
}
|
||||
@@ -8281,20 +8276,16 @@ BevalTimerProc(
|
||||
void
|
||||
gui_mch_disable_beval_area(BalloonEval *beval UNUSED)
|
||||
{
|
||||
// TRACE0("gui_mch_disable_beval_area {{{");
|
||||
KillTimer(s_textArea, BevalTimerId);
|
||||
// TRACE0("gui_mch_disable_beval_area }}}");
|
||||
KillTimer(s_textArea, beval_timer_id);
|
||||
}
|
||||
|
||||
void
|
||||
gui_mch_enable_beval_area(BalloonEval *beval)
|
||||
{
|
||||
// TRACE0("gui_mch_enable_beval_area |||");
|
||||
if (beval == NULL)
|
||||
return;
|
||||
// TRACE0("gui_mch_enable_beval_area {{{");
|
||||
BevalTimerId = SetTimer(s_textArea, 0, (UINT)(p_bdlay / 2), BevalTimerProc);
|
||||
// TRACE0("gui_mch_enable_beval_area }}}");
|
||||
beval_timer_id = SetTimer(s_textArea, 0, (UINT)(p_bdlay / 2),
|
||||
beval_timer_proc);
|
||||
}
|
||||
|
||||
void
|
||||
@@ -8311,7 +8302,6 @@ gui_mch_post_balloon(BalloonEval *beval, char_u *mesg)
|
||||
return;
|
||||
}
|
||||
|
||||
// TRACE0("gui_mch_post_balloon {{{");
|
||||
if (beval->showState == ShS_SHOWING)
|
||||
return;
|
||||
GetCursorPos(&pt);
|
||||
@@ -8324,7 +8314,6 @@ gui_mch_post_balloon(BalloonEval *beval, char_u *mesg)
|
||||
beval->showState = ShS_SHOWING;
|
||||
make_tooltip(beval, (char *)mesg, pt);
|
||||
}
|
||||
// TRACE0("gui_mch_post_balloon }}}");
|
||||
}
|
||||
|
||||
BalloonEval *
|
||||
@@ -8373,14 +8362,10 @@ Handle_WM_Notify(HWND hwnd UNUSED, LPNMHDR pnmh)
|
||||
switch (pnmh->code)
|
||||
{
|
||||
case TTN_SHOW:
|
||||
// TRACE0("TTN_SHOW {{{");
|
||||
// TRACE0("TTN_SHOW }}}");
|
||||
break;
|
||||
case TTN_POP: // Before tooltip disappear
|
||||
// TRACE0("TTN_POP {{{");
|
||||
delete_tooltip(cur_beval);
|
||||
gui_mch_enable_beval_area(cur_beval);
|
||||
// TRACE0("TTN_POP }}}");
|
||||
|
||||
cur_beval->showState = ShS_NEUTRAL;
|
||||
break;
|
||||
@@ -8405,11 +8390,11 @@ Handle_WM_Notify(HWND hwnd UNUSED, LPNMHDR pnmh)
|
||||
}
|
||||
|
||||
static void
|
||||
TrackUserActivity(UINT uMsg)
|
||||
track_user_activity(UINT uMsg)
|
||||
{
|
||||
if ((uMsg >= WM_MOUSEFIRST && uMsg <= WM_MOUSELAST)
|
||||
|| (uMsg >= WM_KEYFIRST && uMsg <= WM_KEYLAST))
|
||||
LastActivity = GetTickCount();
|
||||
last_user_activity = GetTickCount();
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
+11
-21
@@ -1419,9 +1419,6 @@ prt_write_file(char_u *buffer)
|
||||
static void
|
||||
prt_write_file_len(char_u *buffer, int bytes)
|
||||
{
|
||||
#ifdef EBCDIC
|
||||
ebcdic2ascii(buffer, bytes);
|
||||
#endif
|
||||
prt_write_file_raw_len(buffer, bytes);
|
||||
}
|
||||
|
||||
@@ -1626,8 +1623,6 @@ prt_flush_buffer(void)
|
||||
prt_write_string("ul\n");
|
||||
}
|
||||
// Draw the text
|
||||
// Note: we write text out raw - EBCDIC conversion is handled in the
|
||||
// PostScript world via the font encoding vector.
|
||||
if (prt_out_mbyte)
|
||||
prt_write_string("<");
|
||||
else
|
||||
@@ -3119,7 +3114,7 @@ mch_print_end(prt_settings_T *psettings)
|
||||
|
||||
// Write CTRL-D to close serial communication link if used.
|
||||
// NOTHING MUST BE WRITTEN AFTER THIS!
|
||||
prt_write_file((char_u *)IF_EB("\004", "\067"));
|
||||
prt_write_file((char_u *)"\004");
|
||||
|
||||
if (!prt_file_error && psettings->outfile == NULL
|
||||
&& !got_int && !psettings->user_abort)
|
||||
@@ -3379,26 +3374,21 @@ mch_print_text_out(char_u *textp, int len UNUSED)
|
||||
{
|
||||
// Convert non-printing characters to either their escape or octal
|
||||
// sequence, ensures PS sent over a serial line does not interfere
|
||||
// with the comms protocol. Note: For EBCDIC we need to write out
|
||||
// the escape sequences as ASCII codes!
|
||||
// Note 2: Char codes < 32 are identical in EBCDIC and ASCII AFAIK!
|
||||
ga_append(&prt_ps_buffer, IF_EB('\\', 0134));
|
||||
// with the comms protocol.
|
||||
ga_append(&prt_ps_buffer, '\\');
|
||||
switch (ch)
|
||||
{
|
||||
case BS: ga_append(&prt_ps_buffer, IF_EB('b', 0142)); break;
|
||||
case TAB: ga_append(&prt_ps_buffer, IF_EB('t', 0164)); break;
|
||||
case NL: ga_append(&prt_ps_buffer, IF_EB('n', 0156)); break;
|
||||
case FF: ga_append(&prt_ps_buffer, IF_EB('f', 0146)); break;
|
||||
case CAR: ga_append(&prt_ps_buffer, IF_EB('r', 0162)); break;
|
||||
case '(': ga_append(&prt_ps_buffer, IF_EB('(', 0050)); break;
|
||||
case ')': ga_append(&prt_ps_buffer, IF_EB(')', 0051)); break;
|
||||
case '\\': ga_append(&prt_ps_buffer, IF_EB('\\', 0134)); break;
|
||||
case BS: ga_append(&prt_ps_buffer, 'b'); break;
|
||||
case TAB: ga_append(&prt_ps_buffer, 't'); break;
|
||||
case NL: ga_append(&prt_ps_buffer, 'n'); break;
|
||||
case FF: ga_append(&prt_ps_buffer, 'f'); break;
|
||||
case CAR: ga_append(&prt_ps_buffer, 'r'); break;
|
||||
case '(': ga_append(&prt_ps_buffer, '('); break;
|
||||
case ')': ga_append(&prt_ps_buffer, ')'); break;
|
||||
case '\\': ga_append(&prt_ps_buffer, '\\'); break;
|
||||
|
||||
default:
|
||||
sprintf((char *)ch_buff, "%03o", (unsigned int)ch);
|
||||
#ifdef EBCDIC
|
||||
ebcdic2ascii(ch_buff, 3);
|
||||
#endif
|
||||
ga_append(&prt_ps_buffer, ch_buff[0]);
|
||||
ga_append(&prt_ps_buffer, ch_buff[1]);
|
||||
ga_append(&prt_ps_buffer, ch_buff[2]);
|
||||
|
||||
+2
-2
@@ -189,13 +189,13 @@ hash_lookup(hashtab_T *ht, char_u *key, hash_T hash)
|
||||
void
|
||||
hash_debug_results(void)
|
||||
{
|
||||
#ifdef HT_DEBUG
|
||||
# ifdef HT_DEBUG
|
||||
fprintf(stderr, "\r\n\r\n\r\n\r\n");
|
||||
fprintf(stderr, "Number of hashtable lookups: %ld\r\n", hash_count_lookup);
|
||||
fprintf(stderr, "Number of perturb loops: %ld\r\n", hash_count_perturb);
|
||||
fprintf(stderr, "Percentage of perturb loops: %ld%%\r\n",
|
||||
hash_count_perturb * 100 / hash_count_lookup);
|
||||
#endif
|
||||
# endif
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
+1
-10
@@ -481,11 +481,7 @@ find_help_tags(
|
||||
d += 5;
|
||||
if (*s < ' ')
|
||||
{
|
||||
#ifdef EBCDIC
|
||||
*d++ = CtrlChar(*s);
|
||||
#else
|
||||
*d++ = *s + '@';
|
||||
#endif
|
||||
if (d[-1] == '\\')
|
||||
*d++ = '\\'; // double a backslash
|
||||
}
|
||||
@@ -651,12 +647,7 @@ prepare_help_buffer(void)
|
||||
// Accept all ASCII chars for keywords, except ' ', '*', '"', '|', and
|
||||
// latin1 word characters (for translated help files).
|
||||
// Only set it when needed, buf_init_chartab() is some work.
|
||||
p =
|
||||
#ifdef EBCDIC
|
||||
(char_u *)"65-255,^*,^|,^\"";
|
||||
#else
|
||||
(char_u *)"!-~,^*,^|,^\",192-255";
|
||||
#endif
|
||||
p = (char_u *)"!-~,^*,^|,^\",192-255";
|
||||
if (STRCMP(curbuf->b_p_isk, p) != 0)
|
||||
{
|
||||
set_string_option_direct((char_u *)"isk", -1, p, OPT_FREE|OPT_LOCAL, 0);
|
||||
|
||||
+2
-2
@@ -2173,7 +2173,7 @@ f_indent(typval_T *argvars, typval_T *rettv)
|
||||
void
|
||||
f_lispindent(typval_T *argvars UNUSED, typval_T *rettv)
|
||||
{
|
||||
#ifdef FEAT_LISP
|
||||
# ifdef FEAT_LISP
|
||||
pos_T pos;
|
||||
linenr_T lnum;
|
||||
|
||||
@@ -2191,7 +2191,7 @@ f_lispindent(typval_T *argvars UNUSED, typval_T *rettv)
|
||||
else if (in_vim9script())
|
||||
semsg(_(e_invalid_line_number_nr), lnum);
|
||||
else
|
||||
#endif
|
||||
# endif
|
||||
rettv->vval.v_number = -1;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1,74 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- vim:set ts=2 sts=2 sw=2 tw=0: -->
|
||||
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
|
||||
<plist version="0.9">
|
||||
<dict>
|
||||
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.vim.Vim-APP_VER</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>APP_EXE</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>APP_NAME</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>APP_VER</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>APP_VER</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>VIM!</string>
|
||||
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CSResourcesFileMapped</key>
|
||||
<true/>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>app.icns</string>
|
||||
|
||||
<key>CFBundleDocumentTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleTypeExtensions</key>
|
||||
<array>
|
||||
<string>txt</string>
|
||||
<string>text</string>
|
||||
</array>
|
||||
<key>CFBundleTypeMIMETypes</key>
|
||||
<array>
|
||||
<string>text/plain</string>
|
||||
</array>
|
||||
<key>CFBundleTypeIconFile</key>
|
||||
<string>doc-txt.icns</string>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>Text File</string>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Editor</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleTypeExtensions</key>
|
||||
<array>
|
||||
<string>*</string>
|
||||
</array>
|
||||
<key>CFBundleTypeMIMETypes</key>
|
||||
<array>
|
||||
<string>text/*</string>
|
||||
</array>
|
||||
<key>CFBundleTypeIconFile</key>
|
||||
<string>doc.icns</string>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>File</string>
|
||||
<key>CFBundleTypeOSTypes</key>
|
||||
<array>
|
||||
<string>****</string>
|
||||
</array>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Editor</string>
|
||||
</dict>
|
||||
</array>
|
||||
|
||||
</dict>
|
||||
</plist>
|
||||
+3
-4
@@ -150,9 +150,7 @@
|
||||
*/
|
||||
enum key_extra
|
||||
{
|
||||
KE_NAME = 3 // name of this terminal entry
|
||||
|
||||
, KE_S_UP = 4 // shift-up
|
||||
KE_S_UP = 4 // shift-up
|
||||
, KE_S_DOWN = 5 // shift-down
|
||||
|
||||
, KE_S_F1 = 6 // shifted function keys
|
||||
@@ -253,7 +251,8 @@ enum key_extra
|
||||
, KE_CSI = 81 // CSI typed directly
|
||||
, KE_SNR = 82 // <SNR>
|
||||
, KE_PLUG = 83 // <Plug>
|
||||
, KE_CMDWIN = 84 // open command-line window from Command-line Mode
|
||||
, KE_CMDWIN = 84 // open command-line window from Command-line
|
||||
// Mode
|
||||
|
||||
, KE_C_LEFT = 85 // control-left
|
||||
, KE_C_RIGHT = 86 // control-right
|
||||
|
||||
+13
-8
@@ -1015,7 +1015,7 @@ flatten_common(typval_T *argvars, typval_T *rettv, int make_copy)
|
||||
|
||||
if (make_copy)
|
||||
{
|
||||
l = list_copy(l, TRUE, get_copyID());
|
||||
l = list_copy(l, TRUE, TRUE, get_copyID());
|
||||
rettv->vval.v_list = l;
|
||||
if (l == NULL)
|
||||
return;
|
||||
@@ -1102,7 +1102,7 @@ list_concat(list_T *l1, list_T *l2, typval_T *tv)
|
||||
if (l1 == NULL)
|
||||
l = list_alloc();
|
||||
else
|
||||
l = list_copy(l1, FALSE, 0);
|
||||
l = list_copy(l1, FALSE, TRUE, 0);
|
||||
if (l == NULL)
|
||||
return FAIL;
|
||||
tv->v_type = VAR_LIST;
|
||||
@@ -1200,11 +1200,11 @@ list_slice_or_index(
|
||||
/*
|
||||
* Make a copy of list "orig". Shallow if "deep" is FALSE.
|
||||
* The refcount of the new list is set to 1.
|
||||
* See item_copy() for "copyID".
|
||||
* See item_copy() for "top" and "copyID".
|
||||
* Returns NULL when out of memory.
|
||||
*/
|
||||
list_T *
|
||||
list_copy(list_T *orig, int deep, int copyID)
|
||||
list_copy(list_T *orig, int deep, int top, int copyID)
|
||||
{
|
||||
list_T *copy;
|
||||
listitem_T *item;
|
||||
@@ -1216,7 +1216,11 @@ list_copy(list_T *orig, int deep, int copyID)
|
||||
copy = list_alloc();
|
||||
if (copy != NULL)
|
||||
{
|
||||
copy->lv_type = alloc_type(orig->lv_type);
|
||||
if (orig->lv_type == NULL)
|
||||
copy->lv_type = NULL;
|
||||
else
|
||||
copy->lv_type = alloc_type(top || deep
|
||||
? &t_list_any: orig->lv_type);
|
||||
if (copyID != 0)
|
||||
{
|
||||
// Do this before adding the items, because one of the items may
|
||||
@@ -1233,7 +1237,8 @@ list_copy(list_T *orig, int deep, int copyID)
|
||||
break;
|
||||
if (deep)
|
||||
{
|
||||
if (item_copy(&item->li_tv, &ni->li_tv, deep, copyID) == FAIL)
|
||||
if (item_copy(&item->li_tv, &ni->li_tv,
|
||||
deep, FALSE, copyID) == FAIL)
|
||||
{
|
||||
vim_free(ni);
|
||||
break;
|
||||
@@ -2701,11 +2706,11 @@ list_extend_func(
|
||||
}
|
||||
l2 = argvars[1].vval.v_list;
|
||||
if ((is_new || !value_check_lock(l1->lv_lock, arg_errmsg, TRUE))
|
||||
&& l2 != NULL)
|
||||
&& l2 != NULL)
|
||||
{
|
||||
if (is_new)
|
||||
{
|
||||
l1 = list_copy(l1, FALSE, get_copyID());
|
||||
l1 = list_copy(l1, FALSE, TRUE, get_copyID());
|
||||
if (l1 == NULL)
|
||||
return;
|
||||
}
|
||||
|
||||
+6
-18
@@ -77,13 +77,8 @@
|
||||
#endif
|
||||
|
||||
// toupper() and tolower() for ASCII only and ignore the current locale.
|
||||
#ifdef EBCDIC
|
||||
# define TOUPPER_ASC(c) (islower(c) ? toupper(c) : (c))
|
||||
# define TOLOWER_ASC(c) (isupper(c) ? tolower(c) : (c))
|
||||
#else
|
||||
# define TOUPPER_ASC(c) (((c) < 'a' || (c) > 'z') ? (c) : (c) - ('a' - 'A'))
|
||||
# define TOLOWER_ASC(c) (((c) < 'A' || (c) > 'Z') ? (c) : (c) + ('a' - 'A'))
|
||||
#endif
|
||||
#define TOUPPER_ASC(c) (((c) < 'a' || (c) > 'z') ? (c) : (c) - ('a' - 'A'))
|
||||
#define TOLOWER_ASC(c) (((c) < 'A' || (c) > 'Z') ? (c) : (c) + ('a' - 'A'))
|
||||
|
||||
/*
|
||||
* MB_ISLOWER() and MB_ISUPPER() are to be used on multi-byte characters. But
|
||||
@@ -102,17 +97,10 @@
|
||||
|
||||
// Like isalpha() but reject non-ASCII characters. Can't be used with a
|
||||
// special key (negative value).
|
||||
#ifdef EBCDIC
|
||||
# define ASCII_ISALPHA(c) isalpha(c)
|
||||
# define ASCII_ISALNUM(c) isalnum(c)
|
||||
# define ASCII_ISLOWER(c) islower(c)
|
||||
# define ASCII_ISUPPER(c) isupper(c)
|
||||
#else
|
||||
# define ASCII_ISLOWER(c) ((unsigned)(c) - 'a' < 26)
|
||||
# define ASCII_ISUPPER(c) ((unsigned)(c) - 'A' < 26)
|
||||
# define ASCII_ISALPHA(c) (ASCII_ISUPPER(c) || ASCII_ISLOWER(c))
|
||||
# define ASCII_ISALNUM(c) (ASCII_ISALPHA(c) || VIM_ISDIGIT(c))
|
||||
#endif
|
||||
#define ASCII_ISLOWER(c) ((unsigned)(c) - 'a' < 26)
|
||||
#define ASCII_ISUPPER(c) ((unsigned)(c) - 'A' < 26)
|
||||
#define ASCII_ISALPHA(c) (ASCII_ISUPPER(c) || ASCII_ISLOWER(c))
|
||||
#define ASCII_ISALNUM(c) (ASCII_ISALPHA(c) || VIM_ISDIGIT(c))
|
||||
|
||||
// Returns empty string if it is NULL.
|
||||
#define EMPTY_IF_NULL(x) ((x) ? (x) : (char_u *)"")
|
||||
|
||||
@@ -2018,7 +2018,7 @@ put_escstr(FILE *fd, char_u *strstart, int what)
|
||||
{
|
||||
if (what == 2)
|
||||
{
|
||||
if (fprintf(fd, IF_EB("\\\026\n", "\\" CTRL_V_STR "\n")) < 0)
|
||||
if (fprintf(fd, "\\\026\n") < 0)
|
||||
return FAIL;
|
||||
}
|
||||
else
|
||||
|
||||
+1
-4
@@ -310,12 +310,9 @@ getmark_buf_fnum(
|
||||
// to crash.
|
||||
if (c < 0)
|
||||
return posp;
|
||||
#ifndef EBCDIC
|
||||
if (c > '~') // check for islower()/isupper()
|
||||
;
|
||||
else
|
||||
#endif
|
||||
if (c == '\'' || c == '`') // previous context mark
|
||||
else if (c == '\'' || c == '`') // previous context mark
|
||||
{
|
||||
pos_copy = curwin->w_pcmark; // need to make a copy because
|
||||
posp = &pos_copy; // w_pcmark may be changed soon
|
||||
|
||||
+1
-1
@@ -678,7 +678,7 @@ add_menu_path(
|
||||
}
|
||||
}
|
||||
|
||||
# if defined(FEAT_GUI_MSWIN) & defined(FEAT_TEAROFF)
|
||||
# if defined(FEAT_GUI_MSWIN) && defined(FEAT_TEAROFF)
|
||||
// When adding a new submenu, may add a tearoff item
|
||||
if ( addtearoff
|
||||
&& *next_name
|
||||
|
||||
+8
-23
@@ -1208,11 +1208,7 @@ get_special_key_name(int c, int modifiers)
|
||||
}
|
||||
if (table_idx < 0 && !vim_isprintc(c) && c < ' ')
|
||||
{
|
||||
#ifdef EBCDIC
|
||||
c = CtrlChar(c);
|
||||
#else
|
||||
c += '@';
|
||||
#endif
|
||||
modifiers |= MOD_MASK_CTRL;
|
||||
}
|
||||
}
|
||||
@@ -1567,16 +1563,7 @@ extract_modifiers(int key, int *modp, int simplify, int *did_simplify)
|
||||
key = TOUPPER_ASC(key);
|
||||
|
||||
if (simplify && (modifiers & MOD_MASK_CTRL)
|
||||
#ifdef EBCDIC
|
||||
// TODO: EBCDIC Better use:
|
||||
// && (Ctrl_chr(key) || key == '?')
|
||||
// ???
|
||||
&& strchr("?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_", key)
|
||||
!= NULL
|
||||
#else
|
||||
&& ((key >= '?' && key <= '_') || ASCII_ISALPHA(key))
|
||||
#endif
|
||||
)
|
||||
&& ((key >= '?' && key <= '_') || ASCII_ISALPHA(key)))
|
||||
{
|
||||
key = Ctrl_chr(key);
|
||||
modifiers &= ~MOD_MASK_CTRL;
|
||||
@@ -1923,7 +1910,6 @@ vim_chdirfile(char_u *fname, char *trigger_autocmd)
|
||||
{
|
||||
char_u old_dir[MAXPATHL];
|
||||
char_u new_dir[MAXPATHL];
|
||||
int res;
|
||||
|
||||
if (mch_dirname(old_dir, MAXPATHL) != OK)
|
||||
*old_dir = NUL;
|
||||
@@ -1933,16 +1919,15 @@ vim_chdirfile(char_u *fname, char *trigger_autocmd)
|
||||
|
||||
if (pathcmp((char *)old_dir, (char *)new_dir, -1) == 0)
|
||||
// nothing to do
|
||||
res = OK;
|
||||
else
|
||||
{
|
||||
res = mch_chdir((char *)new_dir) == 0 ? OK : FAIL;
|
||||
return OK;
|
||||
|
||||
if (res == OK && trigger_autocmd != NULL)
|
||||
apply_autocmds(EVENT_DIRCHANGED, (char_u *)trigger_autocmd,
|
||||
if (mch_chdir((char *)new_dir) != 0)
|
||||
return FAIL;
|
||||
|
||||
if (trigger_autocmd != NULL)
|
||||
apply_autocmds(EVENT_DIRCHANGED, (char_u *)trigger_autocmd,
|
||||
new_dir, FALSE, curbuf);
|
||||
}
|
||||
return res;
|
||||
return OK;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
+5
-324
@@ -1,6 +1,6 @@
|
||||
/* vi:set ts=8 sts=4 sw=4 noet:
|
||||
*
|
||||
* VIM - Vi IMproved by Bram Moolenaar
|
||||
* VIM - Vi IMproved by Bram Moolenaar et al.
|
||||
*
|
||||
* Do ":help uganda" in Vim to read copying and usage conditions.
|
||||
* Do ":help credits" in Vim to see a list of people who contributed.
|
||||
@@ -127,320 +127,13 @@ static void nv_drop(cmdarg_T *cap);
|
||||
#endif
|
||||
static void nv_cursorhold(cmdarg_T *cap);
|
||||
|
||||
#ifdef FEAT_GUI
|
||||
#define NV_VER_SCROLLBAR nv_ver_scrollbar
|
||||
#define NV_HOR_SCROLLBAR nv_hor_scrollbar
|
||||
#else
|
||||
#define NV_VER_SCROLLBAR nv_error
|
||||
#define NV_HOR_SCROLLBAR nv_error
|
||||
#endif
|
||||
|
||||
#ifdef FEAT_GUI_TABLINE
|
||||
#define NV_TABLINE nv_tabline
|
||||
#define NV_TABMENU nv_tabmenu
|
||||
#else
|
||||
#define NV_TABLINE nv_error
|
||||
#define NV_TABMENU nv_error
|
||||
#endif
|
||||
|
||||
#ifdef FEAT_NETBEANS_INTG
|
||||
#define NV_NBCMD nv_nbcmd
|
||||
#else
|
||||
#define NV_NBCMD nv_error
|
||||
#endif
|
||||
|
||||
#ifdef FEAT_DND
|
||||
#define NV_DROP nv_drop
|
||||
#else
|
||||
#define NV_DROP nv_error
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Function to be called for a Normal or Visual mode command.
|
||||
* The argument is a cmdarg_T.
|
||||
*/
|
||||
typedef void (*nv_func_T)(cmdarg_T *cap);
|
||||
|
||||
// Values for cmd_flags.
|
||||
#define NV_NCH 0x01 // may need to get a second char
|
||||
#define NV_NCH_NOP (0x02|NV_NCH) // get second char when no operator pending
|
||||
#define NV_NCH_ALW (0x04|NV_NCH) // always get a second char
|
||||
#define NV_LANG 0x08 // second char needs language adjustment
|
||||
|
||||
#define NV_SS 0x10 // may start selection
|
||||
#define NV_SSS 0x20 // may start selection with shift modifier
|
||||
#define NV_STS 0x40 // may stop selection without shift modif.
|
||||
#define NV_RL 0x80 // 'rightleft' modifies command
|
||||
#define NV_KEEPREG 0x100 // don't clear regname
|
||||
#define NV_NCW 0x200 // not allowed in command-line window
|
||||
|
||||
/*
|
||||
* Generally speaking, every Normal mode command should either clear any
|
||||
* pending operator (with *clearop*()), or set the motion type variable
|
||||
* oap->motion_type.
|
||||
*
|
||||
* When a cursor motion command is made, it is marked as being a character or
|
||||
* line oriented motion. Then, if an operator is in effect, the operation
|
||||
* becomes character or line oriented accordingly.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This table contains one entry for every Normal or Visual mode command.
|
||||
* The order doesn't matter, this will be sorted by the create_nvcmdidx.vim
|
||||
* script to generate the nv_cmd_idx[] lookup table.
|
||||
* It is faster when all keys from zero to '~' are present.
|
||||
*
|
||||
* After changing the "nv_cmds" table:
|
||||
* 1. Build Vim with "make"
|
||||
* 2. Run "make nvcmdidxs" to re-generate the nv_cmdidxs.h file.
|
||||
* 3. Build Vim with "make" to use the newly generated index table.
|
||||
*/
|
||||
static const struct nv_cmd
|
||||
{
|
||||
int cmd_char; // (first) command character
|
||||
nv_func_T cmd_func; // function for this command
|
||||
short_u cmd_flags; // NV_ flags
|
||||
short cmd_arg; // value for ca.arg
|
||||
} nv_cmds[] =
|
||||
{
|
||||
{NUL, nv_error, 0, 0},
|
||||
{Ctrl_A, nv_addsub, 0, 0},
|
||||
{Ctrl_B, nv_page, NV_STS, BACKWARD},
|
||||
{Ctrl_C, nv_esc, 0, TRUE},
|
||||
{Ctrl_D, nv_halfpage, 0, 0},
|
||||
{Ctrl_E, nv_scroll_line, 0, TRUE},
|
||||
{Ctrl_F, nv_page, NV_STS, FORWARD},
|
||||
{Ctrl_G, nv_ctrlg, 0, 0},
|
||||
{Ctrl_H, nv_ctrlh, 0, 0},
|
||||
{Ctrl_I, nv_pcmark, 0, 0},
|
||||
{NL, nv_down, 0, FALSE},
|
||||
{Ctrl_K, nv_error, 0, 0},
|
||||
{Ctrl_L, nv_clear, 0, 0},
|
||||
{CAR, nv_down, 0, TRUE},
|
||||
{Ctrl_N, nv_down, NV_STS, FALSE},
|
||||
{Ctrl_O, nv_ctrlo, 0, 0},
|
||||
{Ctrl_P, nv_up, NV_STS, FALSE},
|
||||
{Ctrl_Q, nv_visual, 0, FALSE},
|
||||
{Ctrl_R, nv_redo_or_register, 0, 0},
|
||||
{Ctrl_S, nv_ignore, 0, 0},
|
||||
{Ctrl_T, nv_tagpop, NV_NCW, 0},
|
||||
{Ctrl_U, nv_halfpage, 0, 0},
|
||||
{Ctrl_V, nv_visual, 0, FALSE},
|
||||
{Ctrl_W, nv_window, 0, 0},
|
||||
{Ctrl_X, nv_addsub, 0, 0},
|
||||
{Ctrl_Y, nv_scroll_line, 0, FALSE},
|
||||
{Ctrl_Z, nv_suspend, 0, 0},
|
||||
{ESC, nv_esc, 0, FALSE},
|
||||
{Ctrl_BSL, nv_normal, NV_NCH_ALW, 0},
|
||||
{Ctrl_RSB, nv_ident, NV_NCW, 0},
|
||||
{Ctrl_HAT, nv_hat, NV_NCW, 0},
|
||||
{Ctrl__, nv_error, 0, 0},
|
||||
{' ', nv_right, 0, 0},
|
||||
{'!', nv_operator, 0, 0},
|
||||
{'"', nv_regname, NV_NCH_NOP|NV_KEEPREG, 0},
|
||||
{'#', nv_ident, 0, 0},
|
||||
{'$', nv_dollar, 0, 0},
|
||||
{'%', nv_percent, 0, 0},
|
||||
{'&', nv_optrans, 0, 0},
|
||||
{'\'', nv_gomark, NV_NCH_ALW, TRUE},
|
||||
{'(', nv_brace, 0, BACKWARD},
|
||||
{')', nv_brace, 0, FORWARD},
|
||||
{'*', nv_ident, 0, 0},
|
||||
{'+', nv_down, 0, TRUE},
|
||||
{',', nv_csearch, 0, TRUE},
|
||||
{'-', nv_up, 0, TRUE},
|
||||
{'.', nv_dot, NV_KEEPREG, 0},
|
||||
{'/', nv_search, 0, FALSE},
|
||||
{'0', nv_beginline, 0, 0},
|
||||
{'1', nv_ignore, 0, 0},
|
||||
{'2', nv_ignore, 0, 0},
|
||||
{'3', nv_ignore, 0, 0},
|
||||
{'4', nv_ignore, 0, 0},
|
||||
{'5', nv_ignore, 0, 0},
|
||||
{'6', nv_ignore, 0, 0},
|
||||
{'7', nv_ignore, 0, 0},
|
||||
{'8', nv_ignore, 0, 0},
|
||||
{'9', nv_ignore, 0, 0},
|
||||
{':', nv_colon, 0, 0},
|
||||
{';', nv_csearch, 0, FALSE},
|
||||
{'<', nv_operator, NV_RL, 0},
|
||||
{'=', nv_operator, 0, 0},
|
||||
{'>', nv_operator, NV_RL, 0},
|
||||
{'?', nv_search, 0, FALSE},
|
||||
{'@', nv_at, NV_NCH_NOP, FALSE},
|
||||
{'A', nv_edit, 0, 0},
|
||||
{'B', nv_bck_word, 0, 1},
|
||||
{'C', nv_abbrev, NV_KEEPREG, 0},
|
||||
{'D', nv_abbrev, NV_KEEPREG, 0},
|
||||
{'E', nv_wordcmd, 0, TRUE},
|
||||
{'F', nv_csearch, NV_NCH_ALW|NV_LANG, BACKWARD},
|
||||
{'G', nv_goto, 0, TRUE},
|
||||
{'H', nv_scroll, 0, 0},
|
||||
{'I', nv_edit, 0, 0},
|
||||
{'J', nv_join, 0, 0},
|
||||
{'K', nv_ident, 0, 0},
|
||||
{'L', nv_scroll, 0, 0},
|
||||
{'M', nv_scroll, 0, 0},
|
||||
{'N', nv_next, 0, SEARCH_REV},
|
||||
{'O', nv_open, 0, 0},
|
||||
{'P', nv_put, 0, 0},
|
||||
{'Q', nv_exmode, NV_NCW, 0},
|
||||
{'R', nv_Replace, 0, FALSE},
|
||||
{'S', nv_subst, NV_KEEPREG, 0},
|
||||
{'T', nv_csearch, NV_NCH_ALW|NV_LANG, BACKWARD},
|
||||
{'U', nv_Undo, 0, 0},
|
||||
{'V', nv_visual, 0, FALSE},
|
||||
{'W', nv_wordcmd, 0, TRUE},
|
||||
{'X', nv_abbrev, NV_KEEPREG, 0},
|
||||
{'Y', nv_abbrev, NV_KEEPREG, 0},
|
||||
{'Z', nv_Zet, NV_NCH_NOP|NV_NCW, 0},
|
||||
{'[', nv_brackets, NV_NCH_ALW, BACKWARD},
|
||||
{'\\', nv_error, 0, 0},
|
||||
{']', nv_brackets, NV_NCH_ALW, FORWARD},
|
||||
{'^', nv_beginline, 0, BL_WHITE | BL_FIX},
|
||||
{'_', nv_lineop, 0, 0},
|
||||
{'`', nv_gomark, NV_NCH_ALW, FALSE},
|
||||
{'a', nv_edit, NV_NCH, 0},
|
||||
{'b', nv_bck_word, 0, 0},
|
||||
{'c', nv_operator, 0, 0},
|
||||
{'d', nv_operator, 0, 0},
|
||||
{'e', nv_wordcmd, 0, FALSE},
|
||||
{'f', nv_csearch, NV_NCH_ALW|NV_LANG, FORWARD},
|
||||
{'g', nv_g_cmd, NV_NCH_ALW, FALSE},
|
||||
{'h', nv_left, NV_RL, 0},
|
||||
{'i', nv_edit, NV_NCH, 0},
|
||||
{'j', nv_down, 0, FALSE},
|
||||
{'k', nv_up, 0, FALSE},
|
||||
{'l', nv_right, NV_RL, 0},
|
||||
{'m', nv_mark, NV_NCH_NOP, 0},
|
||||
{'n', nv_next, 0, 0},
|
||||
{'o', nv_open, 0, 0},
|
||||
{'p', nv_put, 0, 0},
|
||||
{'q', nv_record, NV_NCH, 0},
|
||||
{'r', nv_replace, NV_NCH_NOP|NV_LANG, 0},
|
||||
{'s', nv_subst, NV_KEEPREG, 0},
|
||||
{'t', nv_csearch, NV_NCH_ALW|NV_LANG, FORWARD},
|
||||
{'u', nv_undo, 0, 0},
|
||||
{'v', nv_visual, 0, FALSE},
|
||||
{'w', nv_wordcmd, 0, FALSE},
|
||||
{'x', nv_abbrev, NV_KEEPREG, 0},
|
||||
{'y', nv_operator, 0, 0},
|
||||
{'z', nv_zet, NV_NCH_ALW, 0},
|
||||
{'{', nv_findpar, 0, BACKWARD},
|
||||
{'|', nv_pipe, 0, 0},
|
||||
{'}', nv_findpar, 0, FORWARD},
|
||||
{'~', nv_tilde, 0, 0},
|
||||
|
||||
// pound sign
|
||||
{POUND, nv_ident, 0, 0},
|
||||
{K_MOUSEUP, nv_mousescroll, 0, MSCR_UP},
|
||||
{K_MOUSEDOWN, nv_mousescroll, 0, MSCR_DOWN},
|
||||
{K_MOUSELEFT, nv_mousescroll, 0, MSCR_LEFT},
|
||||
{K_MOUSERIGHT, nv_mousescroll, 0, MSCR_RIGHT},
|
||||
{K_LEFTMOUSE, nv_mouse, 0, 0},
|
||||
{K_LEFTMOUSE_NM, nv_mouse, 0, 0},
|
||||
{K_LEFTDRAG, nv_mouse, 0, 0},
|
||||
{K_LEFTRELEASE, nv_mouse, 0, 0},
|
||||
{K_LEFTRELEASE_NM, nv_mouse, 0, 0},
|
||||
{K_MOUSEMOVE, nv_mouse, 0, 0},
|
||||
{K_MIDDLEMOUSE, nv_mouse, 0, 0},
|
||||
{K_MIDDLEDRAG, nv_mouse, 0, 0},
|
||||
{K_MIDDLERELEASE, nv_mouse, 0, 0},
|
||||
{K_RIGHTMOUSE, nv_mouse, 0, 0},
|
||||
{K_RIGHTDRAG, nv_mouse, 0, 0},
|
||||
{K_RIGHTRELEASE, nv_mouse, 0, 0},
|
||||
{K_X1MOUSE, nv_mouse, 0, 0},
|
||||
{K_X1DRAG, nv_mouse, 0, 0},
|
||||
{K_X1RELEASE, nv_mouse, 0, 0},
|
||||
{K_X2MOUSE, nv_mouse, 0, 0},
|
||||
{K_X2DRAG, nv_mouse, 0, 0},
|
||||
{K_X2RELEASE, nv_mouse, 0, 0},
|
||||
{K_IGNORE, nv_ignore, NV_KEEPREG, 0},
|
||||
{K_NOP, nv_nop, 0, 0},
|
||||
{K_INS, nv_edit, 0, 0},
|
||||
{K_KINS, nv_edit, 0, 0},
|
||||
{K_BS, nv_ctrlh, 0, 0},
|
||||
{K_UP, nv_up, NV_SSS|NV_STS, FALSE},
|
||||
{K_S_UP, nv_page, NV_SS, BACKWARD},
|
||||
{K_DOWN, nv_down, NV_SSS|NV_STS, FALSE},
|
||||
{K_S_DOWN, nv_page, NV_SS, FORWARD},
|
||||
{K_LEFT, nv_left, NV_SSS|NV_STS|NV_RL, 0},
|
||||
{K_S_LEFT, nv_bck_word, NV_SS|NV_RL, 0},
|
||||
{K_C_LEFT, nv_bck_word, NV_SSS|NV_RL|NV_STS, 1},
|
||||
{K_RIGHT, nv_right, NV_SSS|NV_STS|NV_RL, 0},
|
||||
{K_S_RIGHT, nv_wordcmd, NV_SS|NV_RL, FALSE},
|
||||
{K_C_RIGHT, nv_wordcmd, NV_SSS|NV_RL|NV_STS, TRUE},
|
||||
{K_PAGEUP, nv_page, NV_SSS|NV_STS, BACKWARD},
|
||||
{K_KPAGEUP, nv_page, NV_SSS|NV_STS, BACKWARD},
|
||||
{K_PAGEDOWN, nv_page, NV_SSS|NV_STS, FORWARD},
|
||||
{K_KPAGEDOWN, nv_page, NV_SSS|NV_STS, FORWARD},
|
||||
{K_END, nv_end, NV_SSS|NV_STS, FALSE},
|
||||
{K_KEND, nv_end, NV_SSS|NV_STS, FALSE},
|
||||
{K_S_END, nv_end, NV_SS, FALSE},
|
||||
{K_C_END, nv_end, NV_SSS|NV_STS, TRUE},
|
||||
{K_HOME, nv_home, NV_SSS|NV_STS, 0},
|
||||
{K_KHOME, nv_home, NV_SSS|NV_STS, 0},
|
||||
{K_S_HOME, nv_home, NV_SS, 0},
|
||||
{K_C_HOME, nv_goto, NV_SSS|NV_STS, FALSE},
|
||||
{K_DEL, nv_abbrev, 0, 0},
|
||||
{K_KDEL, nv_abbrev, 0, 0},
|
||||
{K_UNDO, nv_kundo, 0, 0},
|
||||
{K_HELP, nv_help, NV_NCW, 0},
|
||||
{K_F1, nv_help, NV_NCW, 0},
|
||||
{K_XF1, nv_help, NV_NCW, 0},
|
||||
{K_SELECT, nv_select, 0, 0},
|
||||
{K_VER_SCROLLBAR, NV_VER_SCROLLBAR, 0, 0},
|
||||
{K_HOR_SCROLLBAR, NV_HOR_SCROLLBAR, 0, 0},
|
||||
{K_TABLINE, NV_TABLINE, 0, 0},
|
||||
{K_TABMENU, NV_TABMENU, 0, 0},
|
||||
{K_F21, NV_NBCMD, NV_NCH_ALW, 0},
|
||||
{K_DROP, NV_DROP, NV_STS, 0},
|
||||
{K_CURSORHOLD, nv_cursorhold, NV_KEEPREG, 0},
|
||||
{K_PS, nv_edit, 0, 0},
|
||||
{K_COMMAND, nv_colon, 0, 0},
|
||||
{K_SCRIPT_COMMAND, nv_colon, 0, 0},
|
||||
};
|
||||
|
||||
// Number of commands in nv_cmds[].
|
||||
#define NV_CMDS_SIZE ARRAY_LENGTH(nv_cmds)
|
||||
// Declare nv_cmds[].
|
||||
#define DO_DECLARE_NVCMD
|
||||
#include "nv_cmds.h"
|
||||
|
||||
// Include the lookuptable generated by create_nvcmdidx.vim.
|
||||
#include "nv_cmdidxs.h"
|
||||
|
||||
#if defined(FEAT_EVAL) || defined(PROTO)
|
||||
/*
|
||||
* Return the command character for the given command index. This function is
|
||||
* used to auto-generate nv_cmd_idx[].
|
||||
*/
|
||||
void
|
||||
f_internal_get_nv_cmdchar(typval_T *argvars, typval_T *rettv)
|
||||
{
|
||||
int idx;
|
||||
int cmd_char;
|
||||
|
||||
rettv->v_type = VAR_NUMBER;
|
||||
rettv->vval.v_number = -1;
|
||||
|
||||
if (check_for_number_arg(argvars, 0) == FAIL)
|
||||
return;
|
||||
|
||||
idx = tv_get_number(&argvars[0]);
|
||||
if (idx < 0 || idx >= (int)NV_CMDS_SIZE)
|
||||
return;
|
||||
|
||||
cmd_char = nv_cmds[idx].cmd_char;
|
||||
|
||||
// We use the absolute value of the character. Special keys have a
|
||||
// negative value, but are sorted on their absolute value.
|
||||
if (cmd_char < 0)
|
||||
cmd_char = -cmd_char;
|
||||
|
||||
rettv->vval.v_number = cmd_char;
|
||||
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Search for a command in the commands table.
|
||||
* Returns -1 for invalid command.
|
||||
@@ -4745,13 +4438,7 @@ nv_brackets(cmdarg_T *cap)
|
||||
// fwd bwd fwd bwd fwd bwd
|
||||
// identifier "]i" "[i" "]I" "[I" "]^I" "[^I"
|
||||
// define "]d" "[d" "]D" "[D" "]^D" "[^D"
|
||||
if (vim_strchr((char_u *)
|
||||
# ifdef EBCDIC
|
||||
"iI\005dD\067",
|
||||
# else
|
||||
"iI\011dD\004",
|
||||
# endif
|
||||
cap->nchar) != NULL)
|
||||
if (vim_strchr((char_u *)"iI\011dD\004", cap->nchar) != NULL)
|
||||
{
|
||||
char_u *ptr;
|
||||
int len;
|
||||
@@ -6244,12 +5931,6 @@ nv_g_cmd(cmdarg_T *cap)
|
||||
case 'h':
|
||||
case 'H':
|
||||
case Ctrl_H:
|
||||
# ifdef EBCDIC
|
||||
// EBCDIC: 'v'-'h' != '^v'-'^h'
|
||||
if (cap->nchar == Ctrl_H)
|
||||
cap->cmdchar = Ctrl_V;
|
||||
else
|
||||
# endif
|
||||
cap->cmdchar = cap->nchar + ('v' - 'h');
|
||||
cap->arg = TRUE;
|
||||
nv_visual(cap);
|
||||
|
||||
+310
@@ -0,0 +1,310 @@
|
||||
/* vi:set ts=8 sts=4 sw=4 noet:
|
||||
*
|
||||
* VIM - Vi IMproved by Bram Moolenaar et al.
|
||||
*
|
||||
* Do ":help uganda" in Vim to read copying and usage conditions.
|
||||
* Do ":help credits" in Vim to see a list of people who contributed.
|
||||
* See README.txt for an overview of the Vim source code.
|
||||
*/
|
||||
/*
|
||||
* This file defines the Normal mode commands.
|
||||
*/
|
||||
|
||||
/*
|
||||
* When adding a Normal/Visual mode command:
|
||||
* 1. Add an entry in the table `nv_cmds[]` below.
|
||||
* 2. Run "make nvcmdidxs" to re-generate nv_cmdidxs.h.
|
||||
* 3. Add an entry in the index for Normal/Visual commands at
|
||||
* ":help normal-index" and ":help visual-index" .
|
||||
* 4. Add documentation in ../doc/xxx.txt. Add a tag for both the short and
|
||||
* long name of the command.
|
||||
*/
|
||||
|
||||
#ifdef DO_DECLARE_NVCMD
|
||||
|
||||
/*
|
||||
* Used when building Vim.
|
||||
*/
|
||||
# define NVCMD(a, b, c, d) {a, b, c, d}
|
||||
|
||||
#ifdef FEAT_GUI
|
||||
#define NV_VER_SCROLLBAR nv_ver_scrollbar
|
||||
#define NV_HOR_SCROLLBAR nv_hor_scrollbar
|
||||
#else
|
||||
#define NV_VER_SCROLLBAR nv_error
|
||||
#define NV_HOR_SCROLLBAR nv_error
|
||||
#endif
|
||||
|
||||
#ifdef FEAT_GUI_TABLINE
|
||||
#define NV_TABLINE nv_tabline
|
||||
#define NV_TABMENU nv_tabmenu
|
||||
#else
|
||||
#define NV_TABLINE nv_error
|
||||
#define NV_TABMENU nv_error
|
||||
#endif
|
||||
|
||||
#ifdef FEAT_NETBEANS_INTG
|
||||
#define NV_NBCMD nv_nbcmd
|
||||
#else
|
||||
#define NV_NBCMD nv_error
|
||||
#endif
|
||||
|
||||
#ifdef FEAT_DND
|
||||
#define NV_DROP nv_drop
|
||||
#else
|
||||
#define NV_DROP nv_error
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Function to be called for a Normal or Visual mode command.
|
||||
* The argument is a cmdarg_T.
|
||||
*/
|
||||
typedef void (*nv_func_T)(cmdarg_T *cap);
|
||||
|
||||
// Values for cmd_flags.
|
||||
#define NV_NCH 0x01 // may need to get a second char
|
||||
#define NV_NCH_NOP (0x02|NV_NCH) // get second char when no operator pending
|
||||
#define NV_NCH_ALW (0x04|NV_NCH) // always get a second char
|
||||
#define NV_LANG 0x08 // second char needs language adjustment
|
||||
|
||||
#define NV_SS 0x10 // may start selection
|
||||
#define NV_SSS 0x20 // may start selection with shift modifier
|
||||
#define NV_STS 0x40 // may stop selection without shift modif.
|
||||
#define NV_RL 0x80 // 'rightleft' modifies command
|
||||
#define NV_KEEPREG 0x100 // don't clear regname
|
||||
#define NV_NCW 0x200 // not allowed in command-line window
|
||||
|
||||
/*
|
||||
* Generally speaking, every Normal mode command should either clear any
|
||||
* pending operator (with *clearop*()), or set the motion type variable
|
||||
* oap->motion_type.
|
||||
*
|
||||
* When a cursor motion command is made, it is marked as being a character or
|
||||
* line oriented motion. Then, if an operator is in effect, the operation
|
||||
* becomes character or line oriented accordingly.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This table contains one entry for every Normal or Visual mode command.
|
||||
* The order doesn't matter, this will be sorted by the create_nvcmdidx.vim
|
||||
* script to generate the nv_cmd_idx[] lookup table.
|
||||
* It is faster when all keys from zero to '~' are present.
|
||||
*/
|
||||
static const struct nv_cmd
|
||||
{
|
||||
int cmd_char; // (first) command character
|
||||
nv_func_T cmd_func; // function for this command
|
||||
short_u cmd_flags; // NV_ flags
|
||||
short cmd_arg; // value for ca.arg
|
||||
} nv_cmds[] =
|
||||
|
||||
#else // DO_DECLARE_NVCMD
|
||||
|
||||
/*
|
||||
* Used when creating nv_cmdidxs.h.
|
||||
*/
|
||||
# define NVCMD(a, b, c, d) a
|
||||
static const int nv_cmds[] =
|
||||
|
||||
#endif // DO_DECLARE_NVCMD
|
||||
{
|
||||
NVCMD(NUL, nv_error, 0, 0),
|
||||
NVCMD(Ctrl_A, nv_addsub, 0, 0),
|
||||
NVCMD(Ctrl_B, nv_page, NV_STS, BACKWARD),
|
||||
NVCMD(Ctrl_C, nv_esc, 0, TRUE),
|
||||
NVCMD(Ctrl_D, nv_halfpage, 0, 0),
|
||||
NVCMD(Ctrl_E, nv_scroll_line, 0, TRUE),
|
||||
NVCMD(Ctrl_F, nv_page, NV_STS, FORWARD),
|
||||
NVCMD(Ctrl_G, nv_ctrlg, 0, 0),
|
||||
NVCMD(Ctrl_H, nv_ctrlh, 0, 0),
|
||||
NVCMD(Ctrl_I, nv_pcmark, 0, 0),
|
||||
NVCMD(NL, nv_down, 0, FALSE),
|
||||
NVCMD(Ctrl_K, nv_error, 0, 0),
|
||||
NVCMD(Ctrl_L, nv_clear, 0, 0),
|
||||
NVCMD(CAR, nv_down, 0, TRUE),
|
||||
NVCMD(Ctrl_N, nv_down, NV_STS, FALSE),
|
||||
NVCMD(Ctrl_O, nv_ctrlo, 0, 0),
|
||||
NVCMD(Ctrl_P, nv_up, NV_STS, FALSE),
|
||||
NVCMD(Ctrl_Q, nv_visual, 0, FALSE),
|
||||
NVCMD(Ctrl_R, nv_redo_or_register, 0, 0),
|
||||
NVCMD(Ctrl_S, nv_ignore, 0, 0),
|
||||
NVCMD(Ctrl_T, nv_tagpop, NV_NCW, 0),
|
||||
NVCMD(Ctrl_U, nv_halfpage, 0, 0),
|
||||
NVCMD(Ctrl_V, nv_visual, 0, FALSE),
|
||||
NVCMD(Ctrl_W, nv_window, 0, 0),
|
||||
NVCMD(Ctrl_X, nv_addsub, 0, 0),
|
||||
NVCMD(Ctrl_Y, nv_scroll_line, 0, FALSE),
|
||||
NVCMD(Ctrl_Z, nv_suspend, 0, 0),
|
||||
NVCMD(ESC, nv_esc, 0, FALSE),
|
||||
NVCMD(Ctrl_BSL, nv_normal, NV_NCH_ALW, 0),
|
||||
NVCMD(Ctrl_RSB, nv_ident, NV_NCW, 0),
|
||||
NVCMD(Ctrl_HAT, nv_hat, NV_NCW, 0),
|
||||
NVCMD(Ctrl__, nv_error, 0, 0),
|
||||
NVCMD(' ', nv_right, 0, 0),
|
||||
NVCMD('!', nv_operator, 0, 0),
|
||||
NVCMD('"', nv_regname, NV_NCH_NOP|NV_KEEPREG, 0),
|
||||
NVCMD('#', nv_ident, 0, 0),
|
||||
NVCMD('$', nv_dollar, 0, 0),
|
||||
NVCMD('%', nv_percent, 0, 0),
|
||||
NVCMD('&', nv_optrans, 0, 0),
|
||||
NVCMD('\'', nv_gomark, NV_NCH_ALW, TRUE),
|
||||
NVCMD('(', nv_brace, 0, BACKWARD),
|
||||
NVCMD(')', nv_brace, 0, FORWARD),
|
||||
NVCMD('*', nv_ident, 0, 0),
|
||||
NVCMD('+', nv_down, 0, TRUE),
|
||||
NVCMD(',', nv_csearch, 0, TRUE),
|
||||
NVCMD('-', nv_up, 0, TRUE),
|
||||
NVCMD('.', nv_dot, NV_KEEPREG, 0),
|
||||
NVCMD('/', nv_search, 0, FALSE),
|
||||
NVCMD('0', nv_beginline, 0, 0),
|
||||
NVCMD('1', nv_ignore, 0, 0),
|
||||
NVCMD('2', nv_ignore, 0, 0),
|
||||
NVCMD('3', nv_ignore, 0, 0),
|
||||
NVCMD('4', nv_ignore, 0, 0),
|
||||
NVCMD('5', nv_ignore, 0, 0),
|
||||
NVCMD('6', nv_ignore, 0, 0),
|
||||
NVCMD('7', nv_ignore, 0, 0),
|
||||
NVCMD('8', nv_ignore, 0, 0),
|
||||
NVCMD('9', nv_ignore, 0, 0),
|
||||
NVCMD(':', nv_colon, 0, 0),
|
||||
NVCMD(';', nv_csearch, 0, FALSE),
|
||||
NVCMD('<', nv_operator, NV_RL, 0),
|
||||
NVCMD('=', nv_operator, 0, 0),
|
||||
NVCMD('>', nv_operator, NV_RL, 0),
|
||||
NVCMD('?', nv_search, 0, FALSE),
|
||||
NVCMD('@', nv_at, NV_NCH_NOP, FALSE),
|
||||
NVCMD('A', nv_edit, 0, 0),
|
||||
NVCMD('B', nv_bck_word, 0, 1),
|
||||
NVCMD('C', nv_abbrev, NV_KEEPREG, 0),
|
||||
NVCMD('D', nv_abbrev, NV_KEEPREG, 0),
|
||||
NVCMD('E', nv_wordcmd, 0, TRUE),
|
||||
NVCMD('F', nv_csearch, NV_NCH_ALW|NV_LANG, BACKWARD),
|
||||
NVCMD('G', nv_goto, 0, TRUE),
|
||||
NVCMD('H', nv_scroll, 0, 0),
|
||||
NVCMD('I', nv_edit, 0, 0),
|
||||
NVCMD('J', nv_join, 0, 0),
|
||||
NVCMD('K', nv_ident, 0, 0),
|
||||
NVCMD('L', nv_scroll, 0, 0),
|
||||
NVCMD('M', nv_scroll, 0, 0),
|
||||
NVCMD('N', nv_next, 0, SEARCH_REV),
|
||||
NVCMD('O', nv_open, 0, 0),
|
||||
NVCMD('P', nv_put, 0, 0),
|
||||
NVCMD('Q', nv_exmode, NV_NCW, 0),
|
||||
NVCMD('R', nv_Replace, 0, FALSE),
|
||||
NVCMD('S', nv_subst, NV_KEEPREG, 0),
|
||||
NVCMD('T', nv_csearch, NV_NCH_ALW|NV_LANG, BACKWARD),
|
||||
NVCMD('U', nv_Undo, 0, 0),
|
||||
NVCMD('V', nv_visual, 0, FALSE),
|
||||
NVCMD('W', nv_wordcmd, 0, TRUE),
|
||||
NVCMD('X', nv_abbrev, NV_KEEPREG, 0),
|
||||
NVCMD('Y', nv_abbrev, NV_KEEPREG, 0),
|
||||
NVCMD('Z', nv_Zet, NV_NCH_NOP|NV_NCW, 0),
|
||||
NVCMD('[', nv_brackets, NV_NCH_ALW, BACKWARD),
|
||||
NVCMD('\\', nv_error, 0, 0),
|
||||
NVCMD(']', nv_brackets, NV_NCH_ALW, FORWARD),
|
||||
NVCMD('^', nv_beginline, 0, BL_WHITE | BL_FIX),
|
||||
NVCMD('_', nv_lineop, 0, 0),
|
||||
NVCMD('`', nv_gomark, NV_NCH_ALW, FALSE),
|
||||
NVCMD('a', nv_edit, NV_NCH, 0),
|
||||
NVCMD('b', nv_bck_word, 0, 0),
|
||||
NVCMD('c', nv_operator, 0, 0),
|
||||
NVCMD('d', nv_operator, 0, 0),
|
||||
NVCMD('e', nv_wordcmd, 0, FALSE),
|
||||
NVCMD('f', nv_csearch, NV_NCH_ALW|NV_LANG, FORWARD),
|
||||
NVCMD('g', nv_g_cmd, NV_NCH_ALW, FALSE),
|
||||
NVCMD('h', nv_left, NV_RL, 0),
|
||||
NVCMD('i', nv_edit, NV_NCH, 0),
|
||||
NVCMD('j', nv_down, 0, FALSE),
|
||||
NVCMD('k', nv_up, 0, FALSE),
|
||||
NVCMD('l', nv_right, NV_RL, 0),
|
||||
NVCMD('m', nv_mark, NV_NCH_NOP, 0),
|
||||
NVCMD('n', nv_next, 0, 0),
|
||||
NVCMD('o', nv_open, 0, 0),
|
||||
NVCMD('p', nv_put, 0, 0),
|
||||
NVCMD('q', nv_record, NV_NCH, 0),
|
||||
NVCMD('r', nv_replace, NV_NCH_NOP|NV_LANG, 0),
|
||||
NVCMD('s', nv_subst, NV_KEEPREG, 0),
|
||||
NVCMD('t', nv_csearch, NV_NCH_ALW|NV_LANG, FORWARD),
|
||||
NVCMD('u', nv_undo, 0, 0),
|
||||
NVCMD('v', nv_visual, 0, FALSE),
|
||||
NVCMD('w', nv_wordcmd, 0, FALSE),
|
||||
NVCMD('x', nv_abbrev, NV_KEEPREG, 0),
|
||||
NVCMD('y', nv_operator, 0, 0),
|
||||
NVCMD('z', nv_zet, NV_NCH_ALW, 0),
|
||||
NVCMD('{', nv_findpar, 0, BACKWARD),
|
||||
NVCMD('|', nv_pipe, 0, 0),
|
||||
NVCMD('}', nv_findpar, 0, FORWARD),
|
||||
NVCMD('~', nv_tilde, 0, 0),
|
||||
|
||||
// pound sign
|
||||
NVCMD(POUND, nv_ident, 0, 0),
|
||||
NVCMD(K_MOUSEUP, nv_mousescroll, 0, MSCR_UP),
|
||||
NVCMD(K_MOUSEDOWN, nv_mousescroll, 0, MSCR_DOWN),
|
||||
NVCMD(K_MOUSELEFT, nv_mousescroll, 0, MSCR_LEFT),
|
||||
NVCMD(K_MOUSERIGHT, nv_mousescroll, 0, MSCR_RIGHT),
|
||||
NVCMD(K_LEFTMOUSE, nv_mouse, 0, 0),
|
||||
NVCMD(K_LEFTMOUSE_NM, nv_mouse, 0, 0),
|
||||
NVCMD(K_LEFTDRAG, nv_mouse, 0, 0),
|
||||
NVCMD(K_LEFTRELEASE, nv_mouse, 0, 0),
|
||||
NVCMD(K_LEFTRELEASE_NM, nv_mouse, 0, 0),
|
||||
NVCMD(K_MOUSEMOVE, nv_mouse, 0, 0),
|
||||
NVCMD(K_MIDDLEMOUSE, nv_mouse, 0, 0),
|
||||
NVCMD(K_MIDDLEDRAG, nv_mouse, 0, 0),
|
||||
NVCMD(K_MIDDLERELEASE, nv_mouse, 0, 0),
|
||||
NVCMD(K_RIGHTMOUSE, nv_mouse, 0, 0),
|
||||
NVCMD(K_RIGHTDRAG, nv_mouse, 0, 0),
|
||||
NVCMD(K_RIGHTRELEASE, nv_mouse, 0, 0),
|
||||
NVCMD(K_X1MOUSE, nv_mouse, 0, 0),
|
||||
NVCMD(K_X1DRAG, nv_mouse, 0, 0),
|
||||
NVCMD(K_X1RELEASE, nv_mouse, 0, 0),
|
||||
NVCMD(K_X2MOUSE, nv_mouse, 0, 0),
|
||||
NVCMD(K_X2DRAG, nv_mouse, 0, 0),
|
||||
NVCMD(K_X2RELEASE, nv_mouse, 0, 0),
|
||||
NVCMD(K_IGNORE, nv_ignore, NV_KEEPREG, 0),
|
||||
NVCMD(K_NOP, nv_nop, 0, 0),
|
||||
NVCMD(K_INS, nv_edit, 0, 0),
|
||||
NVCMD(K_KINS, nv_edit, 0, 0),
|
||||
NVCMD(K_BS, nv_ctrlh, 0, 0),
|
||||
NVCMD(K_UP, nv_up, NV_SSS|NV_STS, FALSE),
|
||||
NVCMD(K_S_UP, nv_page, NV_SS, BACKWARD),
|
||||
NVCMD(K_DOWN, nv_down, NV_SSS|NV_STS, FALSE),
|
||||
NVCMD(K_S_DOWN, nv_page, NV_SS, FORWARD),
|
||||
NVCMD(K_LEFT, nv_left, NV_SSS|NV_STS|NV_RL, 0),
|
||||
NVCMD(K_S_LEFT, nv_bck_word, NV_SS|NV_RL, 0),
|
||||
NVCMD(K_C_LEFT, nv_bck_word, NV_SSS|NV_RL|NV_STS, 1),
|
||||
NVCMD(K_RIGHT, nv_right, NV_SSS|NV_STS|NV_RL, 0),
|
||||
NVCMD(K_S_RIGHT, nv_wordcmd, NV_SS|NV_RL, FALSE),
|
||||
NVCMD(K_C_RIGHT, nv_wordcmd, NV_SSS|NV_RL|NV_STS, TRUE),
|
||||
NVCMD(K_PAGEUP, nv_page, NV_SSS|NV_STS, BACKWARD),
|
||||
NVCMD(K_KPAGEUP, nv_page, NV_SSS|NV_STS, BACKWARD),
|
||||
NVCMD(K_PAGEDOWN, nv_page, NV_SSS|NV_STS, FORWARD),
|
||||
NVCMD(K_KPAGEDOWN, nv_page, NV_SSS|NV_STS, FORWARD),
|
||||
NVCMD(K_END, nv_end, NV_SSS|NV_STS, FALSE),
|
||||
NVCMD(K_KEND, nv_end, NV_SSS|NV_STS, FALSE),
|
||||
NVCMD(K_S_END, nv_end, NV_SS, FALSE),
|
||||
NVCMD(K_C_END, nv_end, NV_SSS|NV_STS, TRUE),
|
||||
NVCMD(K_HOME, nv_home, NV_SSS|NV_STS, 0),
|
||||
NVCMD(K_KHOME, nv_home, NV_SSS|NV_STS, 0),
|
||||
NVCMD(K_S_HOME, nv_home, NV_SS, 0),
|
||||
NVCMD(K_C_HOME, nv_goto, NV_SSS|NV_STS, FALSE),
|
||||
NVCMD(K_DEL, nv_abbrev, 0, 0),
|
||||
NVCMD(K_KDEL, nv_abbrev, 0, 0),
|
||||
NVCMD(K_UNDO, nv_kundo, 0, 0),
|
||||
NVCMD(K_HELP, nv_help, NV_NCW, 0),
|
||||
NVCMD(K_F1, nv_help, NV_NCW, 0),
|
||||
NVCMD(K_XF1, nv_help, NV_NCW, 0),
|
||||
NVCMD(K_SELECT, nv_select, 0, 0),
|
||||
NVCMD(K_VER_SCROLLBAR, NV_VER_SCROLLBAR, 0, 0),
|
||||
NVCMD(K_HOR_SCROLLBAR, NV_HOR_SCROLLBAR, 0, 0),
|
||||
NVCMD(K_TABLINE, NV_TABLINE, 0, 0),
|
||||
NVCMD(K_TABMENU, NV_TABMENU, 0, 0),
|
||||
NVCMD(K_F21, NV_NBCMD, NV_NCH_ALW, 0),
|
||||
NVCMD(K_DROP, NV_DROP, NV_STS, 0),
|
||||
NVCMD(K_CURSORHOLD, nv_cursorhold, NV_KEEPREG, 0),
|
||||
NVCMD(K_PS, nv_edit, 0, 0),
|
||||
NVCMD(K_COMMAND, nv_colon, 0, 0),
|
||||
NVCMD(K_SCRIPT_COMMAND, nv_colon, 0, 0),
|
||||
};
|
||||
|
||||
// Number of commands in nv_cmds[].
|
||||
#define NV_CMDS_SIZE ARRAY_LENGTH(nv_cmds)
|
||||
@@ -2674,11 +2674,7 @@ do_addsub(
|
||||
firstdigit = 'a';
|
||||
}
|
||||
else
|
||||
#ifdef EBCDIC
|
||||
firstdigit = EBCDIC_CHAR_ADD(firstdigit, -Prenum1);
|
||||
#else
|
||||
firstdigit -= Prenum1;
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -2690,11 +2686,7 @@ do_addsub(
|
||||
firstdigit = 'z';
|
||||
}
|
||||
else
|
||||
#ifdef EBCDIC
|
||||
firstdigit = EBCDIC_CHAR_ADD(firstdigit, Prenum1);
|
||||
#else
|
||||
firstdigit += Prenum1;
|
||||
#endif
|
||||
}
|
||||
curwin->w_cursor.col = col;
|
||||
if (!did_change)
|
||||
@@ -3675,9 +3667,9 @@ do_pending_operator(cmdarg_T *cap, int old_col, int gui_yank)
|
||||
curbuf->b_visual.vi_mode = VIsual_mode;
|
||||
restore_visual_mode();
|
||||
curbuf->b_visual.vi_curswant = curwin->w_curswant;
|
||||
# ifdef FEAT_EVAL
|
||||
#ifdef FEAT_EVAL
|
||||
curbuf->b_visual_mode_eval = VIsual_mode;
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
// In Select mode, a linewise selection is operated upon like a
|
||||
|
||||
+14
-11
@@ -269,7 +269,7 @@ set_init_1(int clean_arg)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(FEAT_POSTSCRIPT) && (defined(MSWIN) || defined(VMS) || defined(EBCDIC) || defined(MAC) || defined(hpux))
|
||||
#if defined(FEAT_POSTSCRIPT) && (defined(MSWIN) || defined(VMS) || defined(MAC) || defined(hpux))
|
||||
// Set print encoding on platforms that don't default to latin1
|
||||
set_string_default("penc",
|
||||
# if defined(MSWIN)
|
||||
@@ -278,14 +278,10 @@ set_init_1(int clean_arg)
|
||||
# ifdef VMS
|
||||
(char_u *)"dec-mcs"
|
||||
# else
|
||||
# ifdef EBCDIC
|
||||
(char_u *)"ebcdic-uk"
|
||||
# else
|
||||
# ifdef MAC
|
||||
# ifdef MAC
|
||||
(char_u *)"mac-roman"
|
||||
# else // HPUX
|
||||
# else // HPUX
|
||||
(char_u *)"hp-roman8"
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
@@ -314,6 +310,17 @@ set_init_1(int clean_arg)
|
||||
*/
|
||||
set_options_default(0);
|
||||
|
||||
#ifdef UNIX
|
||||
// Force restricted-mode on for "nologin" or "false" $SHELL
|
||||
p = get_isolated_shell_name();
|
||||
if (p != NULL)
|
||||
{
|
||||
if (fnamecmp(p, "nologin") == 0 || fnamecmp(p, "false") == 0)
|
||||
restricted = TRUE;
|
||||
vim_free(p);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CLEAN_RUNTIMEPATH
|
||||
if (clean_arg)
|
||||
{
|
||||
@@ -4028,11 +4035,7 @@ findoption(char_u *arg)
|
||||
/*
|
||||
* Check for name starting with an illegal character.
|
||||
*/
|
||||
#ifdef EBCDIC
|
||||
if (!islower(arg[0]))
|
||||
#else
|
||||
if (arg[0] < 'a' || arg[0] > 'z')
|
||||
#endif
|
||||
return -1;
|
||||
|
||||
is_term_opt = (arg[0] == 't' && arg[1] == '_');
|
||||
|
||||
@@ -89,11 +89,7 @@ typedef enum {
|
||||
# ifdef VMS
|
||||
# define DFLT_EFM "%A%p^,%C%%CC-%t-%m,%Cat line number %l in file %f,%f|%l| %m"
|
||||
# else // Unix, probably
|
||||
# ifdef EBCDIC
|
||||
#define DFLT_EFM "%*[^ ] %*[^ ] %f:%l%*[ ]%m,%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory %*[`']%f',%X%*\\a[%*\\d]: Leaving directory %*[`']%f',%DMaking %*\\a in %f,%f|%l| %m"
|
||||
# else
|
||||
#define DFLT_EFM "%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%-G%f:%l: (Each undeclared identifier is reported only once,%-G%f:%l: for each function it appears in.),%-GIn file included from %f:%l:%c:,%-GIn file included from %f:%l:%c\\,,%-GIn file included from %f:%l:%c,%-GIn file included from %f:%l,%-G%*[ ]from %f:%l:%c,%-G%*[ ]from %f:%l:,%-G%*[ ]from %f:%l\\,,%-G%*[ ]from %f:%l,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory %*[`']%f',%X%*\\a[%*\\d]: Leaving directory %*[`']%f',%D%*\\a: Entering directory %*[`']%f',%X%*\\a: Leaving directory %*[`']%f',%DMaking %*\\a in %f,%f|%l| %m"
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
|
||||
+2
-28
@@ -1522,11 +1522,7 @@ static struct vimoption options[] =
|
||||
# ifdef VMS
|
||||
(char_u *)"@,48-57,/,.,-,_,+,,,#,$,%,<,>,[,],:,;,~",
|
||||
# else // UNIX et al.
|
||||
# ifdef EBCDIC
|
||||
(char_u *)"@,240-249,/,.,-,_,+,,,#,$,%,~,=",
|
||||
# else
|
||||
(char_u *)"@,48-57,/,.,-,_,+,,,#,$,%,~,=",
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
@@ -1537,34 +1533,17 @@ static struct vimoption options[] =
|
||||
#if defined(MSWIN)
|
||||
(char_u *)"@,48-57,_,128-167,224-235",
|
||||
#else
|
||||
# ifdef EBCDIC
|
||||
// TODO: EBCDIC Check this! @ == isalpha()
|
||||
(char_u *)"@,240-249,_,66-73,81-89,98-105,"
|
||||
"112-120,128,140-142,156,158,172,"
|
||||
"174,186,191,203-207,219-225,235-239,"
|
||||
"251-254",
|
||||
# else
|
||||
(char_u *)"@,48-57,_,192-255",
|
||||
# endif
|
||||
#endif
|
||||
(char_u *)0L} SCTX_INIT},
|
||||
{"iskeyword", "isk", P_STRING|P_ALLOCED|P_VIM|P_COMMA|P_NODUP,
|
||||
(char_u *)&p_isk, PV_ISK,
|
||||
{
|
||||
#ifdef EBCDIC
|
||||
(char_u *)"@,240-249,_",
|
||||
// TODO: EBCDIC Check this! @ == isalpha()
|
||||
(char_u *)"@,240-249,_,66-73,81-89,98-105,"
|
||||
"112-120,128,140-142,156,158,172,"
|
||||
"174,186,191,203-207,219-225,235-239,"
|
||||
"251-254",
|
||||
#else
|
||||
(char_u *)"@,48-57,_",
|
||||
# if defined(MSWIN)
|
||||
#if defined(MSWIN)
|
||||
(char_u *)"@,48-57,_,128-167,224-235"
|
||||
# else
|
||||
#else
|
||||
ISK_LATIN1
|
||||
# endif
|
||||
#endif
|
||||
} SCTX_INIT},
|
||||
{"isprint", "isp", P_STRING|P_VI_DEF|P_RALL|P_COMMA|P_NODUP,
|
||||
@@ -1573,12 +1552,7 @@ static struct vimoption options[] =
|
||||
#if defined(MSWIN) || defined(VMS)
|
||||
(char_u *)"@,~-255",
|
||||
#else
|
||||
# ifdef EBCDIC
|
||||
// all chars above 63 are printable
|
||||
(char_u *)"63-255",
|
||||
# else
|
||||
ISP_LATIN1,
|
||||
# endif
|
||||
#endif
|
||||
(char_u *)0L} SCTX_INIT},
|
||||
{"joinspaces", "js", P_BOOL|P_VI_DEF|P_VIM,
|
||||
|
||||
@@ -1,659 +0,0 @@
|
||||
(This file must be converted with BinHex 4.0)
|
||||
|
||||
:$'GeD9pYB@-ZFR0bB`"58e*$8P0&4!%!!!!!!!!!HUUk%`!!!!!"!!!!GJX!!(8
|
||||
,!!!%R`!!$Ed,Eh0IGc-bC'aX,Q-#!!!!9%9B9%0A588"!2rr#hCTE9"33bjbFh*
|
||||
MFLe%EfYeE@9ZG'9PEL"%BA4PER8!!(*cFQ058d9%!3lrrrrr!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!X3N1a!!!!!!!!%'-!!!!!!!!!!!4!!!!$Ed,Eh0IGc-bCAKP,Q-#!!!
|
||||
!9%9B9%0A588"!2rrrrm!!!!!$NN!!!!!$hi!!%)!!!!!!!!!!!!!!,#`81D`X&$
|
||||
Q!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'6Y!!%!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!3!!!!!#a@58dK!!!!!8C548B!!J!!!)!!!3#"!!)!JNP$6L-!!J!!!))!!3#
|
||||
$!!)!!!!!!!G"8&"-!!!!!!!!"e4&@&3!!3!!!!!(+LSU+J!#!!!!!J!!!2rrrrr
|
||||
rrrrrrrm!!!!!!!$m$!`-$!`-$!`2m!!!!!!!m-$!`-E!`-$!cpm!!!!!!2`-$!`
|
||||
-$!`-$!r0m!!!!!$`aX$'aXCJB-$2$0m!!!!!r!B-"JB'"JB-$rrrm!!!!2$!B'$
|
||||
'aXE'`-$!c[!!!!$m$'aX"JB'"J`-$!l`!!!!m-$'`-E'aXE!`-$1m!!!!2`-$!`
|
||||
-$!`-$!`-$[!!!!$``-$!`-$!`-$!`-l`!!!!r!`-$!`-$!`-$!`1m!!!!2$!`-$
|
||||
!`-$!`-$!c[!!!!$m$!`-$!`-$!`-$!l`!!!!m-$!`-$!`-$!`-$1m!!!!2`-CJB
|
||||
-$!`-$!`-$[!!!!$`aXCJ`-$!`-$!`-l`!!!!r!`-$!`-$!`-$!`1m!!!!2$!`-$
|
||||
!`-$!`-$!c[!!!!$m$!`-$!`-$!`-$!l`!!!!m-$!`-$!`-$!`-$1m!!!!2`-$!`
|
||||
-$!`-$!`-$[!!!!$``-$!`-$!`-$!`-l`!!!!r!`-$!`-$!`-$!`1m!!!!2$!CXE
|
||||
!`-$!`-$!c[!!!!$m"JCX$!`-$!`-$!l`!!!!m-$!`-$!`-$!`-$1m!!!!2`-$!`
|
||||
-$!`-$!`-$[!!!!$``-$!`-$!`-$!`-l`!!!!r!`-$!`-$!`-$!`1m!!!!2lZlZl
|
||||
ZlZlZlZlZl[!!!!$rrrrrrrrrrrrrrrr`!!!!!J$rrrrrrrrrrrrrrrrrrrr`m!!
|
||||
!!!!!!!!!!!!!!!!!m2!!!!!!!!!!!!!!!!!!!2$`!!!!!!!!!!!!!!!!!!$`m!!
|
||||
!!!!!!!!2rrr`!!!!m2!!CJB!!!!!mJ)#$`!!!2$`"JCJ!!!!$b!J)#$`!!$`m!!
|
||||
!!!!!!2)2mJ)#$`!!m2!!!!!!!!$rrGmJ)#$`!2$`!!!!!!rr![rrrrm#$rrrm!!
|
||||
!!!!!$b![m#!J)#$fEr!!!!!!$Ghb!J)#!J)#pQr`!!!!!!!0hb!J)#!J)2C[m!!
|
||||
!!!!!!0hr!J)#!J,fEr!!CJB!!!!0hIrrrrmJpQr`"JCJ!!!!!0hGhGhGrrC[m!!
|
||||
!!!!!!!!!hGhGhGhIrr!!!!!!!!!!!!!!!!hGhI$`!!!!!!!!!!!!!!!!!!$`m!!
|
||||
!!!!!!!!!!!!'CQCJm2!!!!!!!!!!!!!!"QCQB2$`!!!!!!!'!!!!!!CQCQ$`m!!
|
||||
!!!!!!!!!!!!'CQCJm2!'B'!!B'B!CJB!"QCQB2$`"Q"J!'!'!'"JB!CQCQ$`m!!
|
||||
!"JB!"J"JB'!'CQCJm2!!!!B'!!B!B'"J"QCQB2$`"Q!'"J!'!'"JB!CQCQ$`m!C
|
||||
J!'!!"Q"JB'!'CQCJm2!!!!!!!!!!!!!!"QCQB2$`!!!!!!!!!!!!!!!!!!$`rrr
|
||||
rrrrrrrrrrrrrrrrrm!!!!J!!$rrrrrrrrrrrrrrrrr!!!2!!!!!!!!!!!!!!!!!
|
||||
2!!m!c-c-c-c-c-c-c-c-c[!2$-lZlZlZlZlZlZlZl-l`$`cZrrrrrrrrrrrrrq$
|
||||
1m!m-lrL2Mrrrrrrrrrr`c[!2$1q2L2rrrrrrrrrrm-l`$`c[rrrrrrrrrrrrrr$
|
||||
1m!m-lrrrrrrrrrrrrrr`c[!2$1rrrrrrrrrrrrrrm-l`$`c[rrrrrrrrrrrrrr$
|
||||
1m!m-lrL2Mrrrrrrrrrr`c[!2$1q2L2rrrrrrrrrrm-l`$`c[rrrrrrrrrrrrrr$
|
||||
1m!m-lrrrrrrrrrriL)M`c[!2$1rrrrrirrrrq)L)m-l`$`c[rrrrrrrrrrL)L2$
|
||||
1m!m-liq2q2MiMiriL)M`c[!2$1rrMrMiq2Miq)L)m-l`$`c[riq2q2Miq2L)L2$
|
||||
1m!m-liq)rrMiq2MiL)M`c[!2$1rrrrrrrrrrrrrrm-l`$`cZrrrrrrrrrrrrr`$
|
||||
1m!m-`!!!!!!!!!!!!!!-c[!2$-c-c-c-c-c-c-c-c1l`!2lZlZlZlZlZlZlZlZl
|
||||
[!!!2c1c1c1c1c1c1c1c1m!!!rmlXlXlXlXlXlXlXl[m!$rc1c1c1c1c1c1c1c1c
|
||||
1m2rmlXlXlXlXlXlXlXlXl[rrrrrrrrrrrrrrrrrrrrrr$rrrrrrrrrrrrrrrrrr
|
||||
rm!!!!J!!!!$rrrrrrrrrrrrrm!!!!!!!r!`-$!`-$!`-$2m!!!!!!2$!`-$!`-$
|
||||
!`-$qm!!!!!$m$!`-$!`-$!`-rHm!!!!!m-$!`-$!`-$!`2cHm!!!!2`-$!`-$!`
|
||||
-$!crrrm!rrrrrrrrrrrrrm$!`-$2$mc-c-c-c-c-c-cm$!`-$rcGhGhGhGhGhGh
|
||||
Glm$!`-rmhZlZlZlZlZlZlHm-$!`2r0lrrrrrrrq)Mmh[d-$!crcHMiq2L2MrL)r
|
||||
0lmd-$!rmhSq2Miq2MiL2cHrF`-$2r0k)riq2Miq)Mmh[c3`-$rcHrrrrrrrrrrr
|
||||
0lpc!`-rmh[rrrrrrrrrrcHr0$!`2r0liMirrrrrrrmh[h-$!crcHMiMrrrrrrrr
|
||||
0lmd-$!rmh[rrrrrrrrrrcHrF`-$2r0lrrrrrrrrrrmh[c3`-$rcHq)q2rrrrrrr
|
||||
0lpc!`-rmhSq)rrrrrrrrcHr0$!`2r0lrrrrrrrrrrmh[h-$!crcHc-c-c-c-c-c
|
||||
0lmd-$!rmhGhGhGhGhGhGhHrF`-$2$qlZlZlZlZlZlZlpc3`-$`$rrrrrrrrrrrr
|
||||
rh0$!`-m!!!$pcFh0cFh0cFd-$!`2!!!!r0cFh0cFh0c3`-$!c`!!!2`-$!`-$!`
|
||||
-$!`-$!m!!!$``-$!`-$!`-$!`-$2!!!!rrrrrrrrrrrrrrrrr`!!"!!!!!!!rrr
|
||||
rrrrrrrrrrrrrrrrrrrrrrrm!!!!!!!!!!!!!!!$rpIAepIAepIAepIAepIAepIA
|
||||
errm!!!!!!!!!!!!!!2repIAepIAepHcepIAepIAepIArq[m!!!!!!!!!!!!!rrA
|
||||
epIAepIAepIAepIAepIAepIrhq[m!!!!!!!!!!!$rpIAXpIAel2AXpHcXpHcepIA
|
||||
errAhq[m!!!!!!!!!!2repHcepIAXpHcel2AXpHcepIArrrrrrrm!!!!!!!!!rrA
|
||||
epHcel2Ael2AXpHcel2AepIAepIAlr`!!!!!!!!$rpIAel2AXpIAXpHcel2AXpIA
|
||||
epIAepI[r!!!!!!!!!2repIAel2AepHcel2AXpHcepIAepIAeqrm!!!!!!!!!rrA
|
||||
epIAepIAepIAepIAepIAepIAepIAlr`!!!!!!!!$rpIAepIAepIAepIAepIAepIA
|
||||
epIAepI[r!!!!!!!!!2repIAepIAepIAepIAepIAepIAepIAeqrm!!!!!!!!!rrA
|
||||
epIAepIAepIAepIAepIAepIAepIAlr`!!!!!!!!$rpIAepIAepIAepIAepIAepIA
|
||||
epIAepI[r!!!!!!!!!2repIAepIAepIAepIAepIAepIAepIAeqrm!!!!!!!!!rrA
|
||||
epHcXpHcepIAepIAepIAepIAepIAlr`!!!!!!!!$rpIAXpHcXpIAepIAepIAepIA
|
||||
epIAepI[r!!!!!!!!!2repIAepIAepIAepIAepIAepIAepIAeqrm!!!!!!!!!rrA
|
||||
epIAepIAepIAepIAepIAepIAepIAlr`!!!!!!!!$rpIAepIAepIAepIAepIAepIA
|
||||
epIAepI[r!!!!!!!!!2repIAepIAepIAepIAepIAepIAepIAeqrm!!!!!!!!!rrA
|
||||
epIAepIAepIAepIAepIAepIAepIAlr`!!!!!!!!$rpIAepIAepIAepIAepIAepIA
|
||||
epIAepI[r!!!!!!!!!2repIAepIAepIAepIAepIAepIAepIAeqrm!!!!!!!!!rrA
|
||||
epHcXpHcepIAepIAepIAepIAepIAlr`!!!!!!!!$rpIAXpHcXpIAepIAepIAepIA
|
||||
epIAepI[r!!!!!!!!!2repIAepIAepIAepIAepIAepIAepIAeqrm!!!!!!!!!rrA
|
||||
epIAepIAepIAepIAepIAepIAepIAlr`!!!!!!!!$rpIAepIAepIAepIAepIAepIA
|
||||
epIAepI[r!!!!!!!!!2repIAepIAepIAepIAepIAepIAepIAeqrm!!!!!!!!!rr[
|
||||
lqr[lqr[lqr[lqr[lqr[lqr[lqr[lr`!!!!!!!!$rrrrrrrrrrrrrrrrrrrrrrrr
|
||||
rrrrrrrrr!!!!!!!%!2rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrm!rdK
|
||||
)5%K)5%K)5%K)5%K)5%K)5%K)5%K)5%K)5%K)r`$r5%K)5%K)5%K)5%K)5%K)5%K
|
||||
)5%K)5%K)5%K)5%Mr!2p)5%K)5%K)5%K)5%K)5%K)5%K)5%K)5%K)5%K)52m!rdK
|
||||
)5%K)5%K)5%K)5%K)5%Mrrrrrrrp)5%K)5%K)r`$r5%K)l1a)l%K)5%K)5%K)r`J
|
||||
)#!J)#2p)5%K)5%Mr!2p)51a)l1a)5%K)5%K)52m)#!J)#!J)#2p)5%K)52m!rdK
|
||||
)5%K)5%K)5%K)5%Mr#!Mrr`J)#!J)#2p)5%K)r`$r5%K)5%K)5%K)5%K)52rrrhp
|
||||
rr`J)#!J)#2p)5%Mr!2p)5%K)5%K)5%K)rrrr#!Mrrrrrrrrrr`J)#2rrrrrrrdK
|
||||
)5%K)5%K)5%K)52m)#!Mrr`J)#!J)#!J)#2rXl2rr5%K)5%K)5%K)5(prIrm)#!J
|
||||
)#!J)#!J)#!J)rqcXrrp)5%K)5%K)5%K)5%KrIrm)#!J)#!J)#!J)#!Mrl1crrdK
|
||||
)5%K)5%K)5%K)5%KrIrrr#!J)#!J)#!J)#2rXl2rr5%K)l1a)l%K)5%K)5%KrIhr
|
||||
rrrrrrrrrr`J)rqcXrrp)51a)l1a)5%K)5%K)5%KrIhprIhprIhprrrrrl1crrdK
|
||||
)5%K)5%K)5%K)5%K)5%K)IhprIhprIhprIhrrrrrr5%K)5%K)5%K)5%K)5%K)5%K
|
||||
)5%K)5%K)IhprIhrr!2p)5%K)5%K)5%K)5%K)5%K)5%K)5%K)5%K)5%K)52m!rdK
|
||||
)5%K)5%K)5%K)5%K)5%K)5%K)5%MXl1cXl1a)r`$r5%K)5%K)5%K)5%K)5%K)5%K
|
||||
)5%K)51cXl1cXl%Mr!2p)5%K)5%K)5%K)5%MX5%K)5%K)5%K)l1cXl1cX52m!rdK
|
||||
)5%K)5%K)5%K)5%K)5%K)5%K)5%MXl1cXl1a)r`$r5%MXl%MX5%K)l%MXl%K)l1a
|
||||
)l%K)51cXl1cXl%Mr!2p)51cX51a)5%MX5%MX5%MX51a)l%K)l1cXl1cX52m!rdK
|
||||
)5%K)51a)l%K)51a)51a)l%MX5%MXl1cXl1a)r`$r5%K)5%K)l%MX5%K)l%K)l%M
|
||||
X51a)51cXl1cXl%Mr!2p)51cX5%MX51a)5%MX5%MX51a)l%K)l1cXl1cX52m!rdK
|
||||
)l1a)5%MX5%K)51cX51a)l%MX5%MXl1cXl1a)r`$r5%K)5%K)5%K)5%K)5%K)5%K
|
||||
)5%K)51cXl1cXl%Mr!2p)5%K)5%K)5%K)5%K)5%K)5%K)5%K)5%K)5%K)52m!rrr
|
||||
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr`!!!!3!!!!!rrrrrrrrrrrrrrr
|
||||
rrrrrrrrrrrrrrrrrrrm!!!!!!2repIAepIAepIAepIAepIAepIAepIAepIAepIm
|
||||
!!!$rpIAiq2Miq2Miq2Miq2Miq2Miq2Miq2Miq2Mir2m!!2req2Mmr2cmr2cmr2c
|
||||
mr2cmr2cmr2cmr2cmq2Mmr`!!rrAir2crrrrrrrrrrrrrrrrrrrrrrrrrrrceq2c
|
||||
r!!$rpIMmrrrMirrMrrrrrrrrrrrrrrrrrrrrrrAir2m!!2req2crirrMirrrrrr
|
||||
rrrrrrrrrrrrrrrrrpIMmr`!!rrAir2rrrrrrrrrrrrrrrrrrrrrrrrrrrrreq2c
|
||||
r!!$rpIMmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrAir2m!!2req2crrrrrrrrrrrr
|
||||
rrrrrrrrrrrrrrrrrpIMmr`!!rrAir2rrrrrrrrrrrrrrrrrrrrrrrrrrrrreq2c
|
||||
r!!$rpIMmrrrMirrMrrrrrrrrrrrrrrrrrrrrrrAir2m!!2req2crirrMirrrrrr
|
||||
rrrrrrrrrrrrrrrrrpIMmr`!!rrAir2rrrrrrrrrrrrrrrrrrrrrrrrrrrrreq2c
|
||||
r!!$rpIMmrrrrrrrrrrrrrrrrrrrrrq2Miq2MrrAir2m!!2req2crrrrrrrrrrq2
|
||||
rrrrrrrrriq2Miq2rpIMmr`!!rrAir2rrrrrrrrrrrrrrrrrrrrrMiq2Mirreq2c
|
||||
r!!$rpIMmrq2rirrrirrMrq2Mrq2rrq2Miq2MrrAir2m!!2req2crrrrMrrrMrq2
|
||||
rirrMrq2riq2Miq2rpIMmr`!!rrAir2rrrq2rirrrirrMrq2rirrMiq2Mirreq2c
|
||||
r!!$rpIMmrq2riq2rrrrMrq2rirrMrq2Miq2MrrAir2m!!2req2crrrrrrrrrrrr
|
||||
rrrrrrrrrrrrrrrrrpIMmr`!!rrAir2crrrrrrrrrrrrrrrrrrrrrrrrrrrAeq2c
|
||||
r!!$rpIMipIAepIAepIAepIAepIAepIAepIAepIMir2m!!2req2Miq2Miq2Miq2M
|
||||
iq2Miq2Miq2Miq2Miq2cmr`!!!2rmr2cmr2cmr2cmr2cmr2cmr2cmr2cmr2cmr2m
|
||||
!!!!!!2rhpr[hpr[hpr[hpr[hpr[hpr[hpr[hpr[r!!!!!!$rrrIlqrIlqrIlqrI
|
||||
lqrIlqrIlqrIlqrIlqrrr!!!!rrrhpr[hpr[hpr[hpr[hpr[hpr[hpr[hpr[hpr[
|
||||
r!2rrrrIlqrIlqrIlqrIlqrIlqrIlqrIlqrIlqrIlqrrrrrrrrrrrrrrrrrrrrrr
|
||||
rrrrrrrrrrrrrrrrrrrrrrrm!rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
|
||||
r!!!!"!!!!!!!!!$rrrrrrrrrrrrrrrrrrrrrrrrrrrm!!!!!!!!!!!!!!2rfp[E
|
||||
fp[Efp[Efp[Efp[Efp[Efrrm!!!!!!!!!!!!!rrEfp[Efp[Efp[Efp[Efp[Efp[E
|
||||
rr2m!!!!!!!!!!!$rp[Efp[Efp[Efp[Efp[Efp[Efp[rjr2m!!!!!!!!!!2rfp[E
|
||||
fp[Efp[Efp[Efp[Efp[EfrrMjr2m!!!!!!!!!rrEfp[Efp[Efp[Efp[Efp[Efp[E
|
||||
rrrrrrrm!!2rrrrrrrrrrrrrrrrrrrrrrrrrrp[Efp[Efp[Efr`$r+bXV+bXV+bX
|
||||
V+bXV+bXV+bXV+b[rp[Efp[Efp[Errb[jqIRjqIRjqIRjqIRjqIRjqIRjqIcrp[E
|
||||
fp[Efp[rr+rRmr2cmr2cmr2cmr2cmr2cmr2cjr2rfp[Efp[EfrrmVqIcrrrrrrrr
|
||||
rrrrrrrrMiq2r+rRmrrMfp[Efp[Errb[jr12rirrMrq2Mrq2rrq2MirmVqIcrq2M
|
||||
fp[Efp[rr+rRmirrMrq2rirrMrq2riq2Mrb[jr2riq2Efp[EfrrmVqIcMirrrirr
|
||||
Mrq2rirrMiq2r+rRmrrMip[Efp[Errb[jr2rrrrrrrrrrrrrrrrrrrrmVqIcrq2M
|
||||
fp[Efp[rr+rRmrrrrrrrrrrrrrrrrrrrrrb[jr2riq2Efp[EfrrmVqIcriq2rirr
|
||||
rrrrrrrrrrrrr+rRmrrMip[Efp[Errb[jr12riq2rrrrrrrrrrrrrrrmVqIcrq2M
|
||||
fp[Efp[rr+rRmrrrrrrrrrrrrrrrrrrrrrb[jr2riq2Efp[EfrrmVqIcrrrrrrrr
|
||||
rrrrrrrrrrrrr+rRmrrMip[Efp[Errb[jr2rMirrMrrrrrrrrrrrrrrmVqIcrq2M
|
||||
fp[Efp[rr+rRmirrMirrrrrrrrrrrrrrrrb[jr2riq2Efp[EfrrmVqIcrrrrrrrr
|
||||
rrrrrrrrrrrrr+rRmrrMip[Efp[Errb[jr#XV+bXV+bXV+bXV+bXV+bXVqIcrq2M
|
||||
fp[Efp[rr+rRjqIRjqIRjqIRjqIRjqIRjqIRjr2riq2Efp[Efr`$rr2cmr2cmr2c
|
||||
mr2cmr2cmr2cmr2crq2Mip[Efp[Er!!$rrrrrrrrrrrrrrrrrrrrrrrrrrrMiq2M
|
||||
fp[Efp[m!!!!!!!$rq2Miq2Miq2Miq2Miq2Miq2Mip[Efp[Efr`!!!!!!!2riq2M
|
||||
iq2Miq2Miq2Miq2Miq2Efp[Efp[Er!!!!!!!!rrEfp[Efp[Efp[Efp[Efp[Efp[E
|
||||
fp[Efp[m!!!!!!!$rp[Efp[Efp[Efp[Efp[Efp[Efp[Efp[Efr`!!!!!!!2rrrrr
|
||||
rrrrrrrrrrrrrrrrrrrrrrrrrrrrr!!!"!2rrrrk!!!!#J!!!!S!!!!+!!(i#M3#
|
||||
"!TB"!)+!!Q"#J!13!#+!(2mIJ!4J$i!#!!q!!3!2J!$!$id!2mq@!!!rJ!!!$i!
|
||||
!!!+!!!!#J!!"qS!!!IU!"!(kJ!!"qTSXdIUD*+RkJ85TqS&%UIUC4+RkQ)DTqS!
|
||||
!!IU!!!!#rrrrr[rrrrlrrrrqrrrrr[rrrrlrrrrqrrrrr[rrrrlrrrrqrrrrr[r
|
||||
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr[rrrrlrrrrqrrrrr[r
|
||||
rrrlrrrrqrrrrr[rrrrlrrrrqrrrrr[rrrrlrrrrqrrrrr[rrrrlrrrrq!!!"!!r
|
||||
rr`!)!!'!#!3"3!J!!5!*&D%3#494q!LP8!J)T9!)#%93#!J!!!J)!!!)#!!!#!J
|
||||
!!!J)!!!)#!!!#!M3!!J*B!!)#!!!#!J!!!J)!!!)#!!!#!J!!!J)!!!)#!!!#!M
|
||||
3!!J*B!!)#!!!#!J!!!J)!!!)#!!!#!J!!!J2rrri$rrr!!rrri!2rrr!$rrri!r
|
||||
rrr!2rrri$rrrq!rrrrJ2rrri$rrrq!rrrrJ2rrri$rrrq!rrrrJ2rrri$rrrq!r
|
||||
rrrJ2rrri$rrrq!rrrrJ2rrri$rrrq!rrrrJ2rrri$rrrq!rrrrJ2rrri$rrrq!r
|
||||
rrrJ2rrri$rrrq!rrrrJ!!!%!(rrrq#!!!!4!!!!#4rrriNJ!!"*)!!!55D!!%NV
|
||||
!!"*)!!!55!!!%NJ!!"**S!!55X!!%NJ!!"*)!!I55!3(dNJ!"p*+PDI55*9AdNL
|
||||
P9p*+a9I55!!!%NJ!!"*(rrrL3!!!!M!!!!`Irrri0YYY['5555EYYYY[rrrrrhr
|
||||
rrriIrrri2rrrr(rrrrjrrrrqIrrrrRrrrrjrrrrqIrrrrRrrrrjrrrrqIrrrrRr
|
||||
rrrjrrrrqIrrrrRrrrrjrrrrqIrrrrRrrrrjrrrrqIrrrrRrrrrjrrrrqIrrrrRr
|
||||
rrrjrrrrq2rrrr"rrrrJrrrrmIrrrr[rrrrrrrrrrIrrrrJ!!!3!$rrrJ!J!!-!)
|
||||
!!#J#!!!N!J!!)J)!!$mrrr`"3!!#!Crrq3'J!!8"S!$P!DUdj3'UUZ8"V+VP!D!
|
||||
!"3'J!!8"TS!&!DX!"3'J!!8"S!!&!DD!"3'V!!8"S!!&!D!!"3'IrrN"3!!#!6r
|
||||
rr!%#!!!"!J!!!3)!!!%#!!!"!rrrr`2rrq!$rrr`!rrrq!2rrr`$rrrq!rrrrcr
|
||||
rrrprrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
|
||||
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrprrrrr2rrrr`2rrrm$rrrr!rrrr`2
|
||||
rrrm$rrrr!!!!32rrJ!'8!DJ"J!'!!C3"U!'!!B#"J!'UXBUjT+Q!!Irrrrrrrrr
|
||||
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrm!!!"!Ir"!'%S89"j!!N!#5J*8!N!
|
||||
#3!*9BP9b9A**8N!#Irjrm(riIrarrRrqIrjrrRrqIrjrrRrqIrjrrRrqIrjrrJ!
|
||||
!!%"rrS!"RrQP"DS&S!@U[DUpT+fJ"CrjJ!&rrM9@DUYrrhrqrrrrrrrrrrrrrrr
|
||||
rrrrrrrrrrrrrrhrq2rjrrhrr!!!!3"ri%!`3#RrrJ!QIbD!TTUQV+D!TS#QIbB!
|
||||
*Ir%3!4rr(rJIr"rqIrrrrrrrrrrrrrrrrrrrrrrrrrprrarr(rm!!!#!rrrrrrr
|
||||
rrrrmc-c-c-c-crc2cmc-c-c2r2cmc-c-c-rmc-c-c-c-crc-c-c-c-c2r-r2c-c
|
||||
-c-rmr2c-c-c-crc-c-c-c-c2r-c-c2c-c-rmc-c-c-c-crcmr2cmrmc2r-cmr2c
|
||||
rr-rmr-r-r2cmcrc-c-c-c-c2rrrrrrrrrrm!!!#!$rrrrrrr!!!2$!`-$!r`!!r
|
||||
!B'$!cmm!$`B'$!`2rr!2`-$!`-$1m!m-$!`-$!l`$m"JB-$!c[!2"JB-$!`1m!r
|
||||
!`-$!`-l`$``-$!`-$[!2aXE'aQ$1m!m'"JB'CJl`$m"JaXCQc[!2$!`-$!`1m!r
|
||||
ZlZlZlZl`$rrrrrrrrr!!!!#!$rrrrrrrrr$mc-c-c-c-crcZlZlZlZl[r1q2Mrr
|
||||
rr1rmk2Mrrrrmlrc[rrrrrrc[r1Miq2L)r1rmk2Miq)Mmlrc[MrMiq2c[r1rrrrr
|
||||
rr1rml-c-c-c-lrlZlZlZlZl[$rrrrrrrrr!!rXl1cXl1m!rXl1cXl1cr$rrrrrr
|
||||
rrrm!!!#!!!rrrrrrm!!!$``-$!cr!!!2`-$!`2h`$rrrrrrrrrrmc-c-c-c`crc
|
||||
GhGhGh[`2r0rrrrrHm-rmhrL2Mplm$rcIMiMrh[$2r0rrrrrHr!rmhrrrrpl`crc
|
||||
GhGhGh[`2r1lZlZlZm-m2rrrrrrm-$`!2`-$!`-$2!!rrrrrrrrm!!!%!rrrrrrr
|
||||
rrrrrrrrrrrrrrrmU+LSU+LSU+LSU+LSU+[rr+LVr+[mU+LSU+LSU+LVrrbVr+[m
|
||||
U+LSU+LSU+LSUrrmU+LSU+LSU+LSU+LSU+[rr+LSU+LSU+LSU+LSU+LVrrbSUrbV
|
||||
r+LSU+LSU+LSUrrmUrbVr+LSU+LSU+LSU+[rr+LSU+LSU+LSU+LSU+LVrrbSU+LS
|
||||
U+LVr+LSU+LSUrrmU+LSU+LSU+LSU+LSU+[rr+[mUrbVr+[mUrrmU+LVrrbSU+[m
|
||||
UrbVr+[rrrbSUrrmUrbSUrbSUrbVr+[mU+[rr+LSU+LSU+LSU+LSU+LVrrrrrrrr
|
||||
rrrrrrrrrrrrrr`!!!3!!rrrrrrrrrrrrrrm!!!!!!2repIAepIAepIArr`!!!!$
|
||||
rpIAXpHcepIAerrIr!!!!rrAXpHcepIAepIrrrrm!!2repIAepIAepIAepI[r!!$
|
||||
rpIAepIAepIAepIAlr`!!rrAel2AXpIAepIAeqrm!!2rel2AXpIAepIAepI[r!!$
|
||||
rpIAepIAepIAepIAlr`!!rrAepIAepIAepIAeqrm!!2rel2AXpHcel1cepI[r!!$
|
||||
rpHcel2AXpHcXl2Alr`!!rrAel2Ael2AXl1ceqrm!!2repIAepIAepIAepI[r!!$
|
||||
rqr[lqr[lqr[lqr[lr`!!rrrrrrrrrrrrrrrrrrm!!!!"!!$rrrrrrrrrrrrrrrr
|
||||
rr`$rp[Efp[Efp[Efp[Efp[ErrrElqr[lqr[lqr[lqr[lrrrfqrrMrq2rrrrrrrr
|
||||
fqrrrp[[Mrq2rrrrrrrrrp[[rrrElrrrrrrrrrrrrrrElrrrfqq2rirrMrq2Mirr
|
||||
fqrrrp[[Mrq2rirrMiq2rp[[rrrElrq2rrq2rirrMrrElrrrfqrrrrrrrrrrrrrr
|
||||
fqrrrp[[fp[Efp[Efp[Efp[[rrr[lqr[lqr[lqr[lqr[lr`$rrrrrrrrrrrrrrrr
|
||||
rr`!!!2rlp[[fqrElp[[fqrm!!2rlp[[fqrElp[[fqrErr`$rrrrrrrrrrrrrrrr
|
||||
rrrm!!!%!!!!!rrrrrrrrrrrrr`!!!!!!!2mV+bXV+bXV+rrr!!!!!!$r+bXV+bX
|
||||
V+b[rqrm!!2rrrrrrrrrrrrrrrrrrrrmV+bXV+bXV+bXV+rmV+rrr+rVkq[Vkq[V
|
||||
kq[cr+b[rrb[krrrrrrrrrrVmrbXVrrmVq[rriq2rirrkr2mV+rrr+rVrirrMirr
|
||||
rq[cr+b[rrb[krrrrrrrrrrVmrbXVrrmVq[rrrrrrrrrkr2mV+rrr+rVkq[Vkq[V
|
||||
kq[cr+b[rrb[mr2cmr2cmr2cmrbXVr`$rrrrrrrrrrrrrrbXV+rm!!!$r+bXV+bX
|
||||
V+bXV+b[r!!!!rrrrrrrrrrrrrrrrr`!!!"SC9QPY)$8Z-b`J)%eKBdp6)(*PE'9
|
||||
KFf8J-J!!!!`!+!!S!43"S`#!998!!!!L!!%!!!!!!-N")3$G!9X%!Np,!!!!!!!
|
||||
8!#3!Y`&CL!*H-!!!!!,rr`!!!"B!!!!!!!!!E3!D!)%!9!3'3R9dG'pZ!!!!%J!
|
||||
!!!!!!!!0!"F!,3!hS!)!J!!!!"`!!!!!!!!!$3"1!'B"CSJ,8h4KG'PM)&4PH(3
|
||||
!!!!!&3!S!#J"%!'R!!!"!!%!!!!!!!#!!!!!!"8!43"-!'S!G`!&!3!"!!!!!!!
|
||||
!J3!!!!!9!*8!J!%P!1`!"3%!!3!!!!!!!))!!!!!&3!Z!#B!D3"d!!8"!!%!!!!
|
||||
!!!#$!!!!!"8!13!m!-B"Z3!!!3!"!!!!!!!!K!!!!!%!!!'!!!!#3!!IrDri)!2
|
||||
3"#!"m!)3!rJ'#!rm#JJ(q"3)$r!S#!IJ8!J2`+!)"i&`'!m"q#J'!raB$![qZ!!
|
||||
ArlJ),rpB!&rq+!$rr"J"2rJ)!6r`#!2rq!J')L3)!c!##"jc0!JZCQ3)IQCN#,c
|
||||
-b!6-6-3$Kr-i!!2!!!!"J!!!!B!!!!2!!"rrlrJrrrrm2rrrrKrrrri2rrrq$rr
|
||||
rr!rrrrJ2rrr`$rrri!rrrr!Irrri2rrrr(rrrrlrrrrrrrrrrhrrrrirrrrm(rr
|
||||
rq!rrrr!2rrri$rrrr!rrrri2rrrm$rrrr!rrrr`2rrri"mrrr!1(mcJ!!m!!!!'
|
||||
!!!!!!J!!!!!!!!!!$r!!!!!!!!!!!!!!!!!!!2L2!!!!!!!!!!!2rrrrrrq*Q2$
|
||||
rrrrrm!!!m!!!!!!!qCQ2!!!!!!m!!2$-c-c-c-qCR`c-c-c-m!!2c-c-c-cIQCR
|
||||
mc-c-cI!!!2h-c-cGqCQCRpc-c0h`!!$`c-c-hjQCQI$-c-hI!!!!m-c-c0qCQCm
|
||||
!c-cGm!!!!2$-c-cIQCR`$-c0h`!!!!$`c-c-hjQI!-c-hI!!!!!!m-c-c0qCm!c
|
||||
-cGp[!!!!$r$-c-cIR`$-c0hjP[!!!2M`c-c-hr!-c-hIQCP[!!q*m-c-c0m!c-c
|
||||
GqCQCP[$iQI$-c-c3$-c0hjQCQCP[q*R`c-c-d-c-hIQCQCQCE`q*m-c-c0c-cGq
|
||||
CQCQCP[!!q2$-c-c-c2rjQCQCQ@m!!!r`c-c-c-r-qCQCQCE`!!!!m-c-c-c2c2Q
|
||||
CQCP[!!!!!2$-c-c-hrqIrjrrrr!!!!$`c-c-cIc-r-cmc2c2!!!!m-c-c0hrc2r
|
||||
-c-c-c2!!!2$-c-hIr-rrc'E-rmm!!!$`c-cGqIc2r-Emcrc2!!!!m-c0hjRmcrc
|
||||
2r-rmc`!!!2$-hIqIc2r-rmcrc2!!!!!2cGm!rmc2c2r-rmc2!!!!!2r`!!rrp[m
|
||||
!r`$rm!!!!!!!!!!!pQm!!!!!!!!!!!!!!!!!!!r`!!!!!!!!!!!!!%!q[%(#3--
|
||||
KaL1-)4`L2Q!ri2jKI#(+)N%R95p9'P8"UMqmIrjrrcrq2r`rr(rqrrrrrRrm2ri
|
||||
rrcrr2rmEr`'U!!!!J!$rrrM`rrm!$`!!$jm!!2!2c-c0rmc-h`$mc0qI$-h`!2c
|
||||
-hr$-h`!!r-cI$-hr!!Mmc0$-hjR`LIc-$-hjQCrjr-c-rjQCB!rmc-r2rjm!!2c
|
||||
-crr-r2!!r-cmcmc-c`$mcIr2cmr2!2cIRmr2cmm!$r$mcmr2c`!!!!r`m2$`!!!
|
||||
%!!!!!!$rrrrrrrrrrrrrrrrrrrrrrrrr!!!!!!!!!!!!!!!!!2repIAepIAepIA
|
||||
epIAepIAepIrr!!!!!!!!!!!!!!!!rrAepIAepIAepIAepIAepIAerb[r!!!!!!!
|
||||
!!!!!!!$rpIAepIAepIAepIAepIAepIAr+b[r!!!!!!!!!!!!!2repIAepIAepIA
|
||||
epIAepIAepImV+b[r!!!!!!!!!!!!rrAepIAepIAepIAepIAepIAerbXV+b[r!!!
|
||||
!!!!!!!$rpIAepIAepIAepIAepIAepIArrrrrrrrr!!!!!!!!!2repIAepIAepIA
|
||||
epIAepIAepIAepIAepIm!!!!!!!!!rrAepIAepIAepIAepIAepIAepIAepIAer`!
|
||||
!!!!!!!$rpIAerrrrpIrrrrArrrrerrrerrrepIAr!!!!!!!!!2repIAepIAepIA
|
||||
epIAepIAepIAepIAepIm!!!!!!!!!rrAepIAepIAepIAepIAepIAepIAepIAer`!
|
||||
!!!!!!!$rpIAerrrrpIrrrrrerrrrrrArrrrepIAr!!!!!!!!!2repIAepIAepIA
|
||||
epIAepIAepIAepIAepIm!!!!!!2rrrrrrpIrerrrrrrAepIAepIAepIAepIAer`!
|
||||
!!!$r!!!!!!$rpIm!!!!!rrAerrArrrrerrrepIAr!!!!!2mVprFVprRrrb[hpb[
|
||||
krrAepIAepIAepIAepIm!!!!!!2rh+rIjrrAr!2FVq[repIAepIAepIAepIAer`!
|
||||
!!!!!rb[hprVrr`$h+rVrpIAepIAepIAepIAepIAr!!!!!!$rprIhqIm!pb[krrr
|
||||
epIAepIAepIAepIAepIm!!!!!!2mVpb[k!#[hq[repIAepIAepIAepIAepIAer`!
|
||||
!!!!!rrFVp`$hprRrpIAepIAepIAepIAepIAepIAr!!!!!!$rprFVpb[rrrAepIA
|
||||
epIAepIAepIAepIAepIm!!!!!!2mVprFVrb[rrrrerrAepIAepIAepIAepIAer`!
|
||||
!!!!!rrFVprIrrrmVprmVrrAepIAepIAepIAepIAr!!!!!!$r+rIhrrFVrrFVprF
|
||||
VrrAepIAepIAepIAepIm!!!!!!2rh+rVrrrIrprmVrrIrpIAepIAepIAepIAer`!
|
||||
!!!!!rb[kr`$r+rmVrrIr+rrepIAepIAepIAepIAr!!!!!!!!rrrerb[hrrIr+rr
|
||||
hrrAepIAepIAepIAepIm!!!!!!!!!rrAerrrerrArpIrepIAepIAepIAepIAer`!
|
||||
!!!!!!!$rpIAepIAepIAepIAepIAepIAepIAepIAr!!!!!!!!!2rrrrrrrrrrrrr
|
||||
rrrrrrrrrrrrrrrrrrrm!!!!!!!%!$rrq!!J!!`!)!!+!#!!#3!J!!L!)!!)3#!!
|
||||
$q!J!!!J)!!!)#1lYL!J!!!J)!!!)#1plL!J!!!Jq[!!)38*GL%$$!!JK4J!))i`
|
||||
!##%F!!JL-!!))#!!##$!!!JKG!!))FS!##*"!!JR93!),98!#"T9!!J*UJ!)#!!
|
||||
!#!rrrrJ2rri!$rrr!!rrri!2rrr!$rrri!rrrr!2rrri$rrrq!rrrrJ2rrri$rr
|
||||
rq!rrrrJ2rrri$rrrq$rrrrKrrrriIrrrq$rrrrJrrrri2rrrq$rrrrJrrrri2rr
|
||||
rq$rrrrJrrrri2rrrq$rrrrJrrrri(rrrq!rrrrJ2rrri$rrrq!!!!J!!!2rrrrr
|
||||
rrrrrrr!!!!!!!!$m$!`-$!`-$!cr!!!!!!!!m-$!`-$!`-$!r2!!!!!!!2`-$!`
|
||||
-$!`-$2c2!!!!!!$``-$!`-$!`-$mc2!!!!!!r!`-$!`-$!`-r-c2!!!!!2$!`-$
|
||||
!`-$!`2rrrr!!!!$m$!`-$!`-$!`-$!c`!!!!m-$!`-$!`-$!`-$!m!!!!2`-rrc
|
||||
rr2rmr`rm$2!!!!$``-$!`-$!`-$!`-$`!!!!r!`-$!`-$!`-$!`-m!!!!2$!rr$
|
||||
rrmrrm2r``2!!!!$m$!`-$!`-$!`-$!c`!!$rrr$`rrr!`-$!`-$!m!!2!!!2$`!
|
||||
!r!m2r`rm$2!!$mc-cIr-c0r!`-$!`-$`!!$mc0m2$-hm$!`-$!`-m!!!r-cIm-c
|
||||
I`-$!`-$!`2!!!2c-h`c0r``-$!`-$!c`!!$mc0$-hm$!`-$!`-$!m!!!r-`-cI`
|
||||
-$!`-$!`-$2!!!2c-c2r!`-$!`-$!`-$`!!$mc-r2r`m-$!`-$!`-m!!!r-c2rmc
|
||||
mm-$!`-$!`2!!!2c-r-r-c-m-$!`-$!c`!!$mcIr2cmr2`-$!`-$!m!!!r0m2cmr
|
||||
2c``-$!`-$2!!!!r`r-r2cmr!`-$!`-$`!!!!r!rmr2cm$!`-$!`-m!!!!2$!`-$
|
||||
!`-$!`-$!`2!!!!$rrrrrrrrrrrrrrrr`!!!!!)!!rrrrrrm!!!$`!!!!$r!!!2!
|
||||
!!!!2c`!!m!!!!!rrm!$`!!!!!!$`!2!2$r$r!2!!m!!!!!!!m!$r!2m2$`$`$mc
|
||||
rc2!!!2!2c2r-m2m!m!r-r-m!!!$`$mr-m!m2!2!2c-m!!!!!m!r-m!!!!!$`$mm
|
||||
!!!!!!2!!rrrrrrrrm!!!!%!rm#!B)"3J(L!#*E)J!M056)*-XNN#8P*%!NJ#8!)
|
||||
rrMr`2rJrr$rq2rirrMrq2rjrrRrqIrjrrRrqIrjrrMrq!!!%!!!!!!!!!!!!!!!
|
||||
!!!!!!2rr!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$rZERr!!!!!!!!!!!
|
||||
!!!!!!!!!!!$rrrrrrrrrrrrrrlRPjVRr!2rrrrrrrrrrr`!!!!!!r`!!!!!!!!!
|
||||
!!!!!rqAQjERr!!!!!!!!!!!!r`!!!!$r!#[hpb[h+rIh+rFVrqAQjIm!+rIh+rF
|
||||
VprFVr`!!!!$rprFVprIh+rIh+rVrjZAQjIrhpb[hprIh+rVr!!!!!!$rqIIh+rI
|
||||
h+rVkrqAQjHEQjIrjprFVpb[kqIm!!!!!!2m!+rIh+rIhqIrPjZAQjHAr!2FVprF
|
||||
Vq[Rr!!!!!!!!r`$h+rIhpb[krqEPjZAQr`!!prFVprVjr`!!!!!!!!$r!2Ihpb[
|
||||
hprRrjHEPj[m!!#[h+rIkqIm!!!!!!!!!!2m!+rIhpb[hq[rPjHEr!!$hpb[hq[R
|
||||
r!!!!!!!!!!!!r`$hprFVprIjrqAQr`!!+rFVprVjrqrr!!!!!!!!!2rr!#[h+rI
|
||||
h+rVrj[m!!2IhprIjq[rPjZrr!!!!!!$rZIm!pb[hprIhqIrr!!$h+rFVqIVrjZA
|
||||
QjHrr!!!!rlRPr`$hpb[h+rIkr`!!+rIhprVjrqAPjZAQjHrr!2qjjHEr!#[hpb[
|
||||
hprN!!2Ihpb[kqIrQjHEPjZAQjHrrrlRQjIm!pb[hprFVqJ!Vpb[hq[RrjHEPjZA
|
||||
QjHEQm2m!rlRQr`!VprIh+rIjprFVprVjrqAQjHEPjZAQjHrr!!!!rlRr!2Ih+rI
|
||||
hprFVprIrrrrPjZAQjHEPjZA[r`!!!!!!rrm!pb[hpb[h+rIhrrFVrqEPjZAQjHE
|
||||
Plrm!!!!!!!!!r`$hpb[hpb[hpb[r+rIrjHEPjZAQjHrr!!!!!!!!!!$r!#[hpb[
|
||||
hprFVq[rrrqArrrrPrrrrrrrr!!!!!!!!!2m!pb[hpb[hprVr+rFVrb[hprmVpb[
|
||||
r+rIr!!!!!!!!r`$hprFVprIjqIrrprIrrrFVprFVprIhpb[r!!!!!!$r!#[hprF
|
||||
Vq[Vrrb[hrrrr+rI`lrFVrrmVr`!!!!!!!2m!pb[h+rVjrqArpb[rrb[hm2rh+rr
|
||||
rprIr!!!!!!!!r`$hpb[kq[rPj[rhprrrprIrrb[hrrmVprm!!!!!!!$r!#[hq[R
|
||||
rrqErpb[rrrFVrrmVprrr+rIr!!!!!!!!!!$rprRkr`!!rrmVprIr+rIrrrIhrrr
|
||||
h+rIr!!!!!!!!!!$rrrm!!!!!rrrrrqrrr`!!rrm!!2rrr`!!!!!!!!!!!!!!!!!
|
||||
!!!!!rqr`r`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!rrm!!!!!!!!!!!!
|
||||
!!!!!!!!!!!3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!rrrrrrre!!$rrrrr!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!2m!!!!!!2m!r`!!!!$r!!!!!!!!!!!!!!!!!!!!!!!!rb[hpb[
|
||||
hqIrr+rIh+rVr!!!!!!!!!!!!!!!!!!!!!!!!rrFVprRrpIm!pb[kr`!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!$r+rIhq[rr!2FVq[m!!!!!!!!!!!!!!!!!!!!!!!!!!2rhprI
|
||||
jr`$h+rVr!!!!!!!!!!!!!!!!!!!!!!!!!!!!rb[h+rS!+rIkr`!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!$rpb[h!2IhqIm!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!2rhpb[
|
||||
h+rIrp3$r!2m!!2m!r`!!!!!!!2m!!!!!!!!!rb[hpb[hr`!!!2rrrrrrrrrrrrr
|
||||
rrrrrr`!!!!!!!!$rpb[hprm!!!!!!!!!!!!!!2m!!!!!!!!!!!!!!!!!!2mVprI
|
||||
r!!$rr`!!rrrrrrre!!$rrrrr!!!!!!!!!!!!rrFVr`!!!2m!!2m!!!!!!2m!!!!
|
||||
!!!$r!!!!!!!!!!$r+rm!!!!!rrm!!!!!!!!!!!!!!2Ih+rVr!!!!!!!!!!$r!!!
|
||||
!!!$r!!!!rrrr!!$rr`!!pb[kr`!!!!!!!!!!!!!!!!!!!2m!!2m!!!$rr`!!r`!
|
||||
Vq[m!!!!!!!!!!!!!!!!!!!!!rrm!!2m!r`$r!!$r!2Vr!!!!!!!!!!!!!!!!!!!
|
||||
!!!$r!!!!r`$rr`!!r`!!r`!!!!!!!!!!!!!!!!!!!!!!!2rrr`$r!2m!!2m!!2m
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!2m!!!$r!!$rp3!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!r`!!r`!!!!!!!2rr!!$rr`!!!!!!!!!!!!!!!!!!!!$r!2m!!!!!!!$
|
||||
rprIrrrIhr`!!!!!!!!!!!!!!!!!!!!$r!!!!!!!!!2rhprrrprIr!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!rrIhrrIhr`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$
|
||||
rprrhprm!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!2rhprIr!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!rrIhr`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$
|
||||
rprm!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$r!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!3!!!2rrrrrrZIm!rrrrr`!!!2m
|
||||
!!!!!!2rPr`!!!!$r!!$r+rIh+rIjrrmVprFVq[m!!2rh+rIjrqAr!2FVq[m!!!$
|
||||
r+rIhq[rr!2FVq[m!!!!!rrIhprRr!2FVq[rr!!!!ZImVpb[k!#[hq[rPj[m!ZHA
|
||||
rpb[h!2IhqIrPjZAPrrrQrrIh+rFVrrrPjZAQl`!!rrmVprFVrb[rrrrQr`!!!!$
|
||||
rpb[hprrrrb[hrb[r!!!!rb[hprrh+rrh+rIh+rm!!2rh+rVrrrIrprmVrrIr!!$
|
||||
r+rVrjImVrb[rprmVr`!!!2rr!2mVprrhrb[rprm!!!!!!!!!rrm!r`$r!2m!!!!
|
||||
"!!!!rrrrrrrrrrrrr`!!!!!!!2repIAepIAepIrr!!!!!!$rpIAepIAepIAr+rm
|
||||
!!!!!rrAepIAepIAerrrrr`!!!2repIAepIAepIAepIm!!!$rpIArpIrrpIrrpIA
|
||||
r!!!!rrAepIAepIAepIAer`!!!2rrpIArrrArpIrepIm!!2rhprrrprIrpIAepIA
|
||||
r!!$rprIrrrIhrrArrrAer`!!rrIhrrIhrrAepIAepIm!!2rhrrIhrrAerrArpIA
|
||||
r!!$rprIhrrAepIAepIAer`!!rrIhrrAepIAepIAepIm!!2rhrrAepIAepIAepIA
|
||||
r!!!!rrrrrrrrrrrrrrrrr`!!!!%#!!S!!!!!!"3"@J!S!E`%"%CTEQ3!!!!!!$!
|
||||
"@3"%!EX%"e*PF'aKBf9M!!!!!!"0!9S!B3'm"!j5CA"XB@0P)#BJ4QPZC!!!!!!
|
||||
!D3&D!(d"[!3,8Q9`E'&MC5""E'bQ!!!!!!"h!&)!L3#m"3Y*Cfj[FQ8J3f&cCAF
|
||||
!!!!!!(J!a!#+!5i&"P*PCf9iF!!!!!!!M`"5!+%![!8,4@jdDA*P)&G[FQ4%!!!
|
||||
!!!!8!&8!0J%l%!P&C'Pd)&4PH(5m!!!!!!"#!&8!C!%l%!P&C'Pd)&4PH(4D!!!
|
||||
!!!!6!#d!)`"5L!9'D@jN1UB!!!!!!%3!&J"8!&+)#&*PF'aKBf8k!!!!&3"&!#)
|
||||
!m!(Y!!3"!!%!!!!!!!#&!!!!!1J!!!!!!1J!!J!"#%GKFQCTC@aN!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!,%1([G#4!!!!!![fJa3HA4SEfiJ-5ie,M%!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#rEX@T1)J"
|
||||
h!&B"qJ'$rrrrr`!!!!!!!!!!!!!!!!!!!!!!!!!8T8aKEQGeB@GPFbp6Bh*TF(4
|
||||
TEQF!!3!%!!![fJ!#!#T(BA*QD@9XC$UP6'&ZCh9KCf9c,e0MFQP`G'PZCcT3HA4
|
||||
SEfiJ-5ie,M(rr`!!!!!!%&4&@&4dG(Kd!+J`-6Ja!!!!!!)!!!!!!!!!!!!!!!!
|
||||
!!!!!!!$rrrrrm!!!!!!!!!!!!!!!m!!!!2m!!!!!!!!!!!!!!2$r!!$`m!!!!!!
|
||||
!!!!!!!$Xrq!!rrm!!!!!!!!!!!!!c`r`!!!2!!!!!!!!!!!!!1rrrJ!!$q!!!!!
|
||||
!!!!!!!$`!2m!!!rJ!!!!!!!!!!!2rJlrm!!2i!!!!!!!!!!!!-!!!!!!$1!!!!!
|
||||
!!!!!!!$`-`!`!2rr`!!!!!!!!!!!m1-!-`$q$r!!!!!!!!!!!2!1-c-`rrr!!!!
|
||||
!!!!!!!$`!!!c!2i2m!!!!!!!!!!!m!!!-!$q$r!!!!!!!!!!!2rrrmrmrrr!!!!
|
||||
!!!!!!!!!$ZlZlXc-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%!!!!!!$rJ!!!J-!!!,#J!!#`m!!!@"!!
|
||||
!2JB!!#-'!!"MKJ!!!!)!!#b2!!!XcB!!*qm!!#$0J!!JMB!!2fm!!!I`!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!2q!!!$r`!!!rq!!!2r`!!$rm!!!rrJ!!2ri!!(rq!!!rrJ!
|
||||
!2rq!!$rrJ!!rri!!2rq!!$rrJ!!rri!!"rm!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!3$rrm!
|
||||
!J!"!!)!!3!#!!%!!J!"!!)!!3!#!!%!!J!"!!)!!3!#!!%!!J!"!!)!!3!#!!%!
|
||||
!J!"!!)!!3!#!!%!!J!"!!2rr`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!2rr`!$rrm!!rrr!!2rr`!$rrm!
|
||||
!rrr!!2rr`!$rrm!!rrr!!2rr`!$rrm!!rrr!!2rr`!$rrm!!rrr!!2rr`!$rrm!
|
||||
!rrr!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!#!2rrrrrrrrrrr`!!!!!!!!$`!!!!!!!!!!m!!!!!!!!
|
||||
!m!!!!!!!!!!2!!!!!!!!!2!!!!!!!!!!$`!!!!!!!!$`!!!!!!!!!!m!!!!!!!!
|
||||
!m!!!!!!!!!!2!!!!!!!!!2!!!!!!!!!!$`!!!!!!!!$`!!!!!!!!!!m!!!!!!!!
|
||||
!m!!!!!!!!!!2!!!!!!!!!2!!!!!!!!!!$`!!!!!!!!$`!!!!!!!!!!m!!!!!!!!
|
||||
!m!!!!!!!!!!2!!!!!!!!!2!!!!!!!!!!$`!!!!!!!!$`!!!!!!!!!!m!!!!!!!!
|
||||
!m!!!!!!!!!!2!!!!!!!!!2!!!!!!!!!!$`!!!!!!!!$`!!!!!!!!!!m!!!!!!!!
|
||||
!rrrrrrrrrrrr!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!#!!!!!!!!!!!!!!!!!!!!!!!!!+!!!!#J!!!!!!!!!!!!!!Skrrrk1[!!!!!
|
||||
!!!!!!!#M-kc-Sc1Z!!!!!!!!!!!!#M-kbM-krJ!!!!!!!!!!!!qM-k-cS2i!!!!
|
||||
!!!!!!!!2bM-c1X$q!!!!!!!!!!!!$mbM-cc!rJ!!!!!!!!!!!!r+-c-c`2i!!!!
|
||||
!!!!!!!!2Sc1M-k$q!!!!!!!!!!!!#M-kbM-krJ!!!!!!!!!!!+-cV-bM-ki!!!!
|
||||
!!!!!!!!+1Xc-bM-k!!!!!!!!!!!!$kc-c-bMVJ!!!!!!!!!!!!m!!!!!b[i!!!!
|
||||
!!!!!!!!2rrrrrrrq!!!!!!!!!!!!!!$ZlZlZlJ!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"!!!!!!!)#!!
|
||||
!(ri!!$iq!!!IIJ!!(rS!!"Ib!!!6iJ!!&r)!!"rk!!!IIJ!!2Mi!!"`I!!!B$J!
|
||||
!%!B!!"rq!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!J)!!!IrJ!!2rm!!"rr!!!Ir`!
|
||||
!(rm!!"rr!!!Ir`!!(rm!!"rr!!!rr`!!(rm!!"rr!!!Ir`!!(rm!!!2r!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!2rrr
|
||||
rrr!!!!!!!!!!!!!!$`!!!!$q!!!!!!!!!!!!!!m2rrrrrrrr!!!!!!!!!!!2!!$
|
||||
`!!!!$`!!!!!!!!!!$`rrm2rrr`rJ!!!!!!!!!!m!!2!!!!!2i!!!!!!!!!!2$rr
|
||||
`rrrr$q!!!!!!!!!!$`!!m!!!!!rJ!!!!!!!!!!m2m2$rrrm2i!!!!!!!!!!2!!$
|
||||
`!!!!$q!!!!!!!!!!$rrrm2m!!!rJ!!!!!!!!!!$Zl[!!!!!2i!!!!!!!!!!!!!$
|
||||
rrrrrrq!!!!!!!!!!!!!!!1lZlZlJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%
|
||||
!!!!!!!!!!!"ri!!!3$!!!&rr!!"#!3!!A[f!!%)"J!"HrB!!3J'!!&VpJ!"#!B!
|
||||
!IX'!!$i"J!!$ri!!!2q!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(rJ!!"rm!!
|
||||
!Irm!!(rr!!"rri!!Irq!!(rrJ!"rri!!Irq!!(rrJ!"rri!!2rq!!!2rJ!!!ri!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!3!'q!!!#33!!!J#!!!*$3!!"[X!!"rrJ!!`H-!
|
||||
!B(M!!0ai`!#FH-!!R(M!!-"i`!"JH-!!2rr!!"rr`!!!H!!!!(J!!!!i!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!Ei!!!2r!!!$ri!!!rr!!!'q`!!(rq!!$rr`!"rrm!!rrr!!2rr`!$rrm!
|
||||
!rrr!!(rr`!!rrm!!(rr!!!"i!!!!H!!!!$J!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#!!!!$r$rrr!
|
||||
!!!!!!!!!!!!!!2!2!!!2!!!!!!!!!!!!!!$`!!!!!2!!!!!!!!!!!!!!m!m!!2m
|
||||
2!!!!!!!!!!!!!!r`rrr3r`!!!!!!!!!!!!%F`Frr`Fr3!!!!!!!!!!!G%4%Irp%
|
||||
4r3!!!!!!!!!"d4%4(rr4%Id!!!!!!!!!(4cF%4rrd4(p!!!!!!!!!"%Gr4%Irp%
|
||||
4r3!!!!!!!!$4(0`4(rr4%Id!!!!!!!!!ha%4%4rrd4(p!!!!!!!!!!ha%4%Irp%
|
||||
4r3!!!!!!!!!!hrrrrrrIrrd!!!!!!!!!!!hGhGrrhGhG!!!!!!!!!!!!!!!2rp!
|
||||
!!!!!!!!!!!!!!!!!$rr3!!!!!!!!!!!!!!!!!!$Gd!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!$rrrrrrrrrrrm!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!2m
|
||||
!!!!!!!!!rrm!!!!!!!!!!!!!!!!!!!!!!!!!!!!!r`$rr`!!!!$r!2m!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!$j+rrrq3!!!2rrrrm!!!!!!!!!!!!!!!!!!!!!!!!!!#[
|
||||
r!2rr!!!!!!!!r`!!!!!!!!!!!!!!!!!!!!!!!!!!qIrrrrrj!!!!!!$rq3!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!$r!!!!rrm!!!!!!2rj!!!!!!!!!!!!!!!!!!!!!!!!rrr
|
||||
j!2Rrrrm!!!!!rrN!!!!!!!!!!!!!!!!!!!!!!!!!+`!!!!!!!!!!!!!Vq3!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!$r!0MB!!$B!!!!rrrrrbX!!!!!!!!!!!!!!!!!!!!!!2m
|
||||
!qGJ!!0MB!!$rr!$rr`!!!!!!!!!!!!!!!!!!!!!!r`!!qGMBf0MB!2rrrrmV!!!
|
||||
!!!!!!!!!!!!!!!!!!!$r!!!!!!$Bf!!!rr`!rrm!!!!!!!!!!!!!!!!!!!!!!2m
|
||||
!!!!!!0J!!!$rr!$rr`!!!!!!!!!!!!!!!!!!!!!!rrrrrrrr+rrr+rrrrrmV!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!$jqIRjqIRj+bXV+`!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!3
|
||||
!rrrrrrrrrrrrrrrrrrrrrrrr!!!!!!!!!!!!!!!!!!$r!!!!!!!!!!!!!!!!!!!
|
||||
!!2m!!!!!!!!!!!!!!!!!!2m!!!!!!!!!!!!!!!!!!!!!r`!!!!!!!!!!!!!!!!!
|
||||
!r`!!!!!!!!!!!!!!!!!!!!$r!!!!!!!!!!!!!!!!!!$r!!!!!!!!!!!!!!!!!!!
|
||||
!!2m!!!!!!!!!!!!!!!!!!2m!!!!!!!!!!!!!!!!!!!!!r`!!!!!!!!!!!!!!!!!
|
||||
!r`!!!!!!!!!!!!!!!!!!!!$r!!!!!!!!!!!!!!!!!!$r!!!!!!!!!!!!!!!!!!!
|
||||
!!2m!!!!!!!!!!!!!!!!!!2m!!!!!!!!!!!!!!!!!!!!!r`!!!!!!!!!!!!!!!!!
|
||||
!r`!!!!!!!!!!!!!!!!!!!!$r!!!!!!!!!!!!!!!!!!$r!!!!!!!!!!!!!!!!!!!
|
||||
!!2m!!!!!!!!!!!!!!!!!!2m!!!!!!!!!!!!!!!!!!!!!r`!!!!!!!!!!!!!!!!!
|
||||
!r`!!!!!!!!!!!!!!!!!!!!$r!!!!!!!!!!!!!!!!!!$r!!!!!!!!!!!!!!!!!!!
|
||||
!!2m!!!!!!!!!!!!!!!!!!2m!!!!!!!!!!!!!!!!!!!!!r`!!!!!!!!!!!!!!!!!
|
||||
!r`!!!!!!!!!!!!!!!!!!!!$r!!!!!!!!!!!!!!!!!!$r!!!!!!!!!!!!!!!!!!!
|
||||
!!2m!!!!!!!!!!!!!!!!!!2rrrrrrrrrrrrrrrrrrrrrrr`!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!$F!!!!!!!!!0`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!h#2Errrrrrr
|
||||
E)pcr!!!!!!!!!!!!!!!!!!!!!!!!!0XM)b2E+bXVfb-M)p[j!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!0`M)b2F+p`M)b2FrrN!!!!!!!!!!!!!!!!!!!!!!!!!rp`M)b2F)b-
|
||||
Mh!$rq3!!!!!!!!!!!!!!!!!!!!!!!!$r+p`M)b-M)p`V!2rj!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!2mV+p`M)b2E+bX!rrN!!!!!!!!!!!!!!!!!!!!!!!!!rb[F)b-M)b2
|
||||
E+`$rq3!!!!!!!!!!!!!!!!!!!!!!!!$rfb-M)p`M)b2F!2rj!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!0XM)b2F+p`M)b2FrrN!!!!!!!!!!!!!!!!!!!!!!!$F)b-MfbXV+pX
|
||||
M)b2Eq3!!!!!!!!!!!!!!!!!!!!!!!!$F)p`V+bXV+p`M)b2F!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!2rF+bXV+bXV+p`MfrN!!!!!!!!!!!!!!!!!!!!!!!!!r`!!!!!!!!!
|
||||
!+p[rq3!!!!!!!!!!!!!!!!!!!!!!!!$rrrrrrrrrrrrrrrrj!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!2RjqIRjqIRjqIN!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!rrrrrrrrrrrrr`!!!!!!!!!!!!!!!!!!!!!!!!!!!!$r!!!!!!!
|
||||
!!!$rq3!!!!!!!!!!!!!!!!!!!!!!!!!!!2m!rrrrrrrrrrrrrrrrr`!!!!!!!!!
|
||||
!!!!!!!!!!!!!r`!!!!$r!!!!!!!!!!$r!!!!!!!!!!!!!!!!!!!!!!$r!2rrrrm
|
||||
!rrrrrrrr!2rj!!!!!!!!!!!!!!!!!!!!!2m!!!!!r`!!!!!!!!!!rrN!!!!!!!!
|
||||
!!!!!!!!!!!!!r`$rrrrr!2rrrrrrr`$rq3!!!!!!!!!!!!!!!!!!!!$r!!!!!2m
|
||||
!!!!!!!!!!2rj!!!!!!!!!!!!!!!!!!!!!2m!rrm!r`$rrrrrrrm!rrN!!!!!!!!
|
||||
!!!!!!!!!!!!!r`!!!!$r!!!!!!!!!!$rq3!!!!!!!!!!!!!!!!!!!!$rrrrrrrm
|
||||
!rrm!!!!!!2rj!!!!!!!!!!!!!!!!!!!!!!$jqIRjr`!!!!!!!!!!rrN!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!$rrrrrrrrrrrrrq3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!qIRjqIRjqIRj!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!3!!!!!!!$rr`$rrrrrr`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!r`!!r`!!!!!!r`!!!!!!!!!!!!!!!!!!!!!!!!!!!!$r!!!!!!!!!!!!r`!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!2m!!2m!!!!!rrm!r`!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!2rr!2rrrrrj!2rr!!!!!!!!!!!!!!!!!!!!!!!!!!%"+bX"+rrrrbX"+rqI!!!
|
||||
!!!!!!!!!!!!!!!!!!!!"q38&"38&rrrrq38&"Irj!!!!!!!!!!!!!!!!!!!!!IN
|
||||
&"38&"3Arrrrj"38&rrN!!!!!!!!!!!!!!!!!!!(j"5[j+`8&"IrrrrN&"3Arq3!
|
||||
!!!!!!!!!!!!!!!!!!38&qIrj"38&rrrrq38&"Irj!!!!!!!!!!!!!!!!!!$j"38
|
||||
Vq5X&"3Arrrrj"38&rrN!!!!!!!!!!!!!!!!!!2Rr"38&"38&"IrrrrN&"3Arq3!
|
||||
!!!!!!!!!!!!!!!!!!2Rr"38&"38&rrrrq38&"Irj!!!!!!!!!!!!!!!!!!!!!2R
|
||||
rrrrrrrrrrrrjrrrrrrN!!!!!!!!!!!!!!!!!!!!!!2RjqIRjqIrrrrRjqIRjq3!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!rrrrq3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!$rrrrj!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$jqIN!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!J!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!2!!!2i!!!!!!!!!!!!!!!$q!!$q!!!!!!!!!!!!!!!!$`!2i!!!!!!!!!!!!
|
||||
!!!!!rJ$q!!!!!!!!!!!!!!!!!!m2i!!!!!!!!!!!!!!!!!!2lq!!!!!!!!!!!!!
|
||||
!!!!!!2i!!!!!!!!!!!!!!!!!!!rri!!!!!!!!!!!!!!!!!lq!2i!!!!!!!!!!!!
|
||||
!!!$rrJ$rm!!!!!!!!!!!!!!2l[i!rJm!!!!!!!!!!!!!$`$q!2i2i!!!!!!!!!!
|
||||
!!!m!rJ$q$q!!!!!!!!!!!!!!rqi!$ri!!!!!!!!!!!!!!1i!!!lJ!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!3!!!!!!""!!!!33!!!#)!!!!L!!!!&!!!!"3!!
|
||||
!!)!!!!(!!!!#)!!!$MJ!!")N!!!5*!!!%L3!!!`B!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!%'!!!"KJ!!!)`!!!$-!!!!@!!!!(J!!!!`!!!!H!!!!F`!!!21!!
|
||||
!(c`!!"mq!!!I2J!!$a`!!!`B!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"!!!!!!!!!!!
|
||||
!!2q!!!#"J!!!JB!!!i'!!!1"J!"rcB!!Iqf!!(rKJ!"r`B!!!i'!!!1"J!!!Ki!
|
||||
!!*q!!!$rJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!ri!!!2q!!!$rJ!!$ri!
|
||||
!!rq!!(rrJ!"rri!!Irq!!(rrJ!!$ri!!!rq!!!$rJ!!!ri!!!2q!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!rrrrrr!!!!!!!!!!!!!!!2!!!!r`!!!!!!!!!!!!!!$`!!!2m!!!!!!!!!!!!!$
|
||||
rm!!!$r!!!!!!!!!!!!!!mr!!!!r`!!!!!!!!!!rrrr-r!2m2m!!!!!!!!!!2-c-
|
||||
c-r$r$r!!!!!!!!!!$c-c-c2`!!r`!!!!!!!!!!rrrr-r!!!2m!!!!!!!!!!!!!$
|
||||
cm!!!$r!!!!!!!!!!!!!!rr!!!!r`!!!!!!!!!!!!!!$`!!rrm!!!!!!!!!!!!!!
|
||||
!m!rrrr!!!!!!!!!!!!!!!2rrrrr`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)
|
||||
!!!!!!!!!!!!!!!!!!!!!!!rrrrrr!!!!!!!!!!!!!!!2!!!!$r!!!!!!!!!!!!!
|
||||
!$`!!!!r2!!!!!!!!!!!!!!m!!!!2rr!!!!!!!!!!!!!2!!!!!!$`!!!!!!!!!!!
|
||||
!$`!!!!rrm!!!!!!!!!!!!!m!!!$mc-m!!!!!!!!!!!!2!!!2`!c-m!!!!!!!!!!
|
||||
!$`!!$m$-c2!!!!!!!!!!!!m!!!r-c-c`!!!!!!!!!!!2!!!2c-$-m!!!!!!!!!!
|
||||
!$`!!!2c-cm!!!!!!!!!!!!m!!!!2rrcr!!!!!!!!!!!2!!!!!!$`rr!!!!!!!!!
|
||||
!$rrrrrrrm!r`!!!!!!!!!!!!hGhGhGd!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%!!!!!!(r!!!"!B!!
|
||||
!3&!!!%"i!!"!#!!!3(J!!%#%!!""!J!!33)!!%%#!!""!J!!3)3!!%"l!!"!#i!
|
||||
!IrQ!!!US!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Im!!!(rJ!!"rm!!!IrJ!!(ri!!"rq!!
|
||||
!Ir`!!(rq!!"rrJ!!Iri!!(rq!!"rrJ!!Irm!!(rlJ!"rqB!!$r`!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!r`!
|
||||
!!!!!rrN!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$rq3!!!!$rq3!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!$r!!!!rrN!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!2r
|
||||
j!!$rq3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!2m!rrN!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!rrRrq3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!rrN!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!2rrrrN!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!2Rrq3!!rrN!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$rrrr
|
||||
j!!$rrrm!!!!!!!!!!!!!!!!!!!!!!!!!!!!!rrRjrrN!!2rj!2m!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!$r!!$rq3!!rrN!rrN!!!!!!!!!!!!!!!!!!!!!!!!!!2m!!2r
|
||||
j!!$rq3$rq3!!!!!!!!!!!!!!!!!!!!!!!!!!!2rrqIN!!!$rrrN!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!qIN!!!!!!2Rj!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!2rrrrrrrrrrr`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!r`!!!!!!!2rr!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!$r!!!!!!!!rrm!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!$rrrm!!!!!!!$rr`!!!!!!!!!!!!!!!!!!!!!!!!!!!2rBr`!!!!!!!2rr!!!
|
||||
!!!!!!!!!!!!!!!!!!2rrrrrrrpMBr`!!rrm!rrm!!!!!!!!!!!!!!!!!!!!!rpM
|
||||
Bf0MBf0MBr`$rr`$rr`!!!!!!!!!!!!!!!!!!!!$rf0MBf0MBf0Mr!!!!!2rr!!!
|
||||
!!!!!!!!!!!!!!!!!!2rrrrrrrpMBr`!!!!!!rrm!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!$rf2m!!!!!!!$rr`!!!!!!!!!!!!!!!!!!!!!!!!!!!2rrr`!!!!!!!2rr!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!$r!!!!!2rrrrm!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!2m!!2rrrrrrr`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!rrrrrrrrrrrr!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!3
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!rrrrrrrrrrrr!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!$r!!!!!!!!!2rr!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!2m!!!!!!!!!rb[r!!!!!!!!!!!!!!!!!!!!!!!!!!!!r`!!!!!!!!$rrrrr!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!$r!!!!!!!!!!!!!2m!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!2m!!!!!!!!!rrrrr`!!!!!!!!!!!!!!!!!!!!!!!!!!r`!!!!!!!2mVprFVr`!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!$r!!!!!!$r+`!!prFVr`!!!!!!!!!!!!!!!!!!!!!
|
||||
!!2m!!!!!!2rh!2FVprIr!!!!!!!!!!!!!!!!!!!!!!!!r`!!!!!!rrIh+rIh+rm
|
||||
!!!!!!!!!!!!!!!!!!!!!!!$r!!!!!!$rpb[h!#[hr`!!!!!!!!!!!!!!!!!!!!!
|
||||
!!2m!!!!!!!$rprIhprmV!!!!!!!!!!!!!!!!!!!!!!!!r`!!!!!!!!$rrrrr+rr
|
||||
r!!!!!!!!!!!!!!!!!!!!!!$r!!!!!!!!!!!!!2m!rrrr!!!!!!!!!!!!!!!!!!!
|
||||
!!2rrrrrrrrrrrrrrr`!!rrm!!!!!!!!!!!!!!!!!!!!!!!!!q[RkqIVjq[Rkq3!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!3!!!(B,!!"e#`!!"*m,65PN"2i!!!!F"&S!$8*
|
||||
14%`!!!"b4P*&4J!#!(jTBf`d!!d!SQPME$J!$J&+5801)`!0!IjTBh-M!!8#TQP
|
||||
MFc3!"3,ZD@0c1!!&!cC@58dK!!!$IN&-8P3!!!1+4%P86!!&!jC%6%p(!!8$hQ&
|
||||
XDA-!!!3Q4e@h53!!"$)!J2rr!!!!!!!!!!!!J2rr!!!!-!!!!!!!JIrr!!!!1`!
|
||||
!!!!!J[rr!!!!4J!!!!!%DIrr!!!!83!!!!!%D2rr!!!#93!!!!!!J2rr!!!%@3!
|
||||
!!!!!JIrr!!!'A3!!!!!!J[rr!!!Ph!!!!!!!Jrrr!!!YX!!!!!!!KIrr!!!mU`!
|
||||
!!!!!K[rr!!"!Y`!!!!!!Krrr!!"#Z`!!!!!!L2rr!!"&``!!!!!!LIrr!!"*c`Y
|
||||
0*f3!L[rr!!"Ij`Y0*ZJ!Lrrr!!"Mm`Y0)q3!M2rr!!"Pp`Y0*c`%DIrr!!!)B3Y
|
||||
0*q!%D2rr!!!-C3Y0*m!!J2rr!!!3D3Y0*m`!JIrr!!!8E3Y0*lJ!J[rr!!!`I!Y
|
||||
0*mJ!Jrrr!!!SU!Y0*m3!K2rr!!!dJ!Y0*l`!KIrr!!",d`Y0)$!!KJ!d!!"2e`Y
|
||||
0*l!!K`!V!!"6f`Y0*k`!L!!p!!"Ah`Y0*kJ!LIrr!!"Ei`Y0*k3!L[rr!!"Sr`Y
|
||||
0(ZJ!Lrrr!!"Y!`Y0*d`!M2rr!!"a"`Y0(Z3%D2rr!!!BF3Y0#ZJ%DIrr!!!CG3Y
|
||||
0+!J!J2rr!!!DH3Y0+"3!JIrr!!!EI3Y0+$`!J[rr!!!Nf!Y0+!`!Jrrr!!!XV!Y
|
||||
0+"!!KIrr!!!qV`!!!!!!K[rr!!!rX`Y0+4J!Krrr!!"%[`Y0+"J!L2rr!!"(a`Y
|
||||
0+!3!LIrr!!")b`Y0*hJ!L[rr!!"Kk`Y0*Z!!Lrrr!!"Ll`Y0)r3!M2rr!!"Rq`Y
|
||||
0*#`%D2rr!!!FJ3Y0+#3%DIrr!!!Fa3Y0+#`!J2rr!!!G#3Y0+'3!JIrr!!!G63Y
|
||||
0+#!!J[rr!!!Ri!Y-+X3!Jrrr!!!`1!Y0+$!%D2rr!!!GN3Y0)X3%DIrr!!!H&3Y
|
||||
0(P`!J2rr!!!HQ3Y0*!3!JIrr!!!I(3Y0*`3!J[rr!!!S*!Y0(Q`!Jrrr!!![Y!Y
|
||||
0(P!%D2rr!!!IS3Y0)P`%DIrr!!!JT3Y0)P!!J2rr!!!KU3Y0)Q!!JIrr!!!LV3Y
|
||||
0(i!!J[rr!!!iK!Y0)P3!Jrrr!!!jL!Y0)Q3!!!!!!!!MX3!!!!!!J2rr!!!Mc`!
|
||||
!!!!!J2rr!!!Mh`!!!!!!JIrr!!!N"3!!!!!!J[rr!!!N#`!!!!!!Jrrr!!!N*3!
|
||||
!!!!!K2rr!!!N1`!!!!!!KIrr!!!kM!!!!!!!J2rr!!!N@`!!!!!!J3!2!!!NG!!
|
||||
!!!!!JJ!8!!!NM3!!!!!!J`!F!!!NTJ!!!!!!K!!K!!!N[`!!!!!!K3!Q!!!lNJ!
|
||||
!!!!!jIrr!!!lU`!!!!!S!Irr!!!mP`!!!!!16hGZCA)JFQ9cEh9bBf8%6@&TEJG
|
||||
#GA4dEfjc"%PMEfi%9'9iG!4'D@jN#(4LAf0XEh0P#(4LAf*XB@jV"h4LAf0[F(R
|
||||
VL!:
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
+21
-153
@@ -3779,10 +3779,7 @@ mch_setmouse(int on)
|
||||
#ifdef FEAT_MOUSE_URXVT
|
||||
if (ttym_flags == TTYM_URXVT)
|
||||
{
|
||||
out_str_nf((char_u *)
|
||||
(on
|
||||
? IF_EB("\033[?1015h", ESC_STR "[?1015h")
|
||||
: IF_EB("\033[?1015l", ESC_STR "[?1015l")));
|
||||
out_str_nf((char_u *)(on ? "\033[?1015h" : "\033[?1015l"));
|
||||
mouse_ison = on;
|
||||
}
|
||||
#endif
|
||||
@@ -3790,10 +3787,7 @@ mch_setmouse(int on)
|
||||
if (ttym_flags == TTYM_SGR)
|
||||
{
|
||||
// SGR mode supports columns above 223
|
||||
out_str_nf((char_u *)
|
||||
(on
|
||||
? IF_EB("\033[?1006h", ESC_STR "[?1006h")
|
||||
: IF_EB("\033[?1006l", ESC_STR "[?1006l")));
|
||||
out_str_nf((char_u *)(on ? "\033[?1006h" : "\033[?1006l"));
|
||||
mouse_ison = on;
|
||||
}
|
||||
|
||||
@@ -3803,8 +3797,7 @@ mch_setmouse(int on)
|
||||
bevalterm_ison = (p_bevalterm && on);
|
||||
if (xterm_mouse_vers > 1 && !bevalterm_ison)
|
||||
// disable mouse movement events, enabling is below
|
||||
out_str_nf((char_u *)
|
||||
(IF_EB("\033[?1003l", ESC_STR "[?1003l")));
|
||||
out_str_nf((char_u *)("\033[?1003l"));
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -3815,16 +3808,13 @@ mch_setmouse(int on)
|
||||
(xterm_mouse_vers > 1
|
||||
? (
|
||||
#ifdef FEAT_BEVAL_TERM
|
||||
bevalterm_ison
|
||||
? IF_EB("\033[?1003h", ESC_STR "[?1003h") :
|
||||
bevalterm_ison ? "\033[?1003h" :
|
||||
#endif
|
||||
IF_EB("\033[?1002h", ESC_STR "[?1002h"))
|
||||
: IF_EB("\033[?1000h", ESC_STR "[?1000h")));
|
||||
"\033[?1002h")
|
||||
: "\033[?1000h"));
|
||||
else // disable mouse events, could probably always send the same
|
||||
out_str_nf((char_u *)
|
||||
(xterm_mouse_vers > 1
|
||||
? IF_EB("\033[?1002l", ESC_STR "[?1002l")
|
||||
: IF_EB("\033[?1000l", ESC_STR "[?1000l")));
|
||||
(xterm_mouse_vers > 1 ? "\033[?1002l" : "\033[?1000l"));
|
||||
mouse_ison = on;
|
||||
}
|
||||
|
||||
@@ -3892,18 +3882,15 @@ mch_setmouse(int on)
|
||||
// 5 = Windows UP Arrow
|
||||
# ifdef JSBTERM_MOUSE_NONADVANCED
|
||||
// Disables full feedback of pointer movements
|
||||
out_str_nf((char_u *)IF_EB("\033[0~ZwLMRK1Q\033\\",
|
||||
ESC_STR "[0~ZwLMRK1Q" ESC_STR "\\"));
|
||||
out_str_nf((char_u *)"\033[0~ZwLMRK1Q\033\\");
|
||||
# else
|
||||
out_str_nf((char_u *)IF_EB("\033[0~ZwLMRK+1Q\033\\",
|
||||
ESC_STR "[0~ZwLMRK+1Q" ESC_STR "\\"));
|
||||
out_str_nf((char_u *)"\033[0~ZwLMRK+1Q\033\\");
|
||||
# endif
|
||||
mouse_ison = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
out_str_nf((char_u *)IF_EB("\033[0~ZwQ\033\\",
|
||||
ESC_STR "[0~ZwQ" ESC_STR "\\"));
|
||||
out_str_nf((char_u *)"\033[0~ZwQ\033\\");
|
||||
mouse_ison = FALSE;
|
||||
}
|
||||
}
|
||||
@@ -3949,8 +3936,7 @@ check_mouse_termcode(void)
|
||||
)
|
||||
{
|
||||
set_mouse_termcode(KS_MOUSE, (char_u *)(term_is_8bit(T_NAME)
|
||||
? IF_EB("\233M", CSI_STR "M")
|
||||
: IF_EB("\033[M", ESC_STR "[M")));
|
||||
? "\233M" : "\033[M"));
|
||||
if (*p_mouse != NUL)
|
||||
{
|
||||
// force mouse off and maybe on to send possibly new mouse
|
||||
@@ -3969,8 +3955,7 @@ check_mouse_termcode(void)
|
||||
&& !gui.in_use
|
||||
# endif
|
||||
)
|
||||
set_mouse_termcode(KS_GPM_MOUSE,
|
||||
(char_u *)IF_EB("\033MG", ESC_STR "MG"));
|
||||
set_mouse_termcode(KS_GPM_MOUSE, (char_u *)"\033MG");
|
||||
else
|
||||
del_mouse_termcode(KS_GPM_MOUSE);
|
||||
# endif
|
||||
@@ -3981,7 +3966,7 @@ check_mouse_termcode(void)
|
||||
&& !gui.in_use
|
||||
# endif
|
||||
)
|
||||
set_mouse_termcode(KS_MOUSE, (char_u *)IF_EB("\033MS", ESC_STR "MS"));
|
||||
set_mouse_termcode(KS_MOUSE, (char_u *)"\033MS");
|
||||
# endif
|
||||
|
||||
# ifdef FEAT_MOUSE_JSB
|
||||
@@ -3991,8 +3976,7 @@ check_mouse_termcode(void)
|
||||
&& !gui.in_use
|
||||
# endif
|
||||
)
|
||||
set_mouse_termcode(KS_JSBTERM_MOUSE,
|
||||
(char_u *)IF_EB("\033[0~zw", ESC_STR "[0~zw"));
|
||||
set_mouse_termcode(KS_JSBTERM_MOUSE, (char_u *)"\033[0~zw");
|
||||
else
|
||||
del_mouse_termcode(KS_JSBTERM_MOUSE);
|
||||
# endif
|
||||
@@ -4005,8 +3989,7 @@ check_mouse_termcode(void)
|
||||
&& !gui.in_use
|
||||
# endif
|
||||
)
|
||||
set_mouse_termcode(KS_NETTERM_MOUSE,
|
||||
(char_u *)IF_EB("\033}", ESC_STR "}"));
|
||||
set_mouse_termcode(KS_NETTERM_MOUSE, (char_u *)"\033}");
|
||||
else
|
||||
del_mouse_termcode(KS_NETTERM_MOUSE);
|
||||
# endif
|
||||
@@ -4019,7 +4002,7 @@ check_mouse_termcode(void)
|
||||
# endif
|
||||
)
|
||||
set_mouse_termcode(KS_DEC_MOUSE, (char_u *)(term_is_8bit(T_NAME)
|
||||
? IF_EB("\233", CSI_STR) : IF_EB("\033[", ESC_STR "[")));
|
||||
? "\233" : "\033["));
|
||||
else
|
||||
del_mouse_termcode(KS_DEC_MOUSE);
|
||||
# endif
|
||||
@@ -4030,8 +4013,7 @@ check_mouse_termcode(void)
|
||||
&& !gui.in_use
|
||||
# endif
|
||||
)
|
||||
set_mouse_termcode(KS_PTERM_MOUSE,
|
||||
(char_u *) IF_EB("\033[", ESC_STR "["));
|
||||
set_mouse_termcode(KS_PTERM_MOUSE, (char_u *)"\033[");
|
||||
else
|
||||
del_mouse_termcode(KS_PTERM_MOUSE);
|
||||
# endif
|
||||
@@ -4043,8 +4025,7 @@ check_mouse_termcode(void)
|
||||
)
|
||||
{
|
||||
set_mouse_termcode(KS_URXVT_MOUSE, (char_u *)(term_is_8bit(T_NAME)
|
||||
? IF_EB("\233*M", CSI_STR "*M")
|
||||
: IF_EB("\033[*M", ESC_STR "[*M")));
|
||||
? "\233*M" : "\033[*M"));
|
||||
|
||||
if (*p_mouse != NUL)
|
||||
{
|
||||
@@ -4062,12 +4043,10 @@ check_mouse_termcode(void)
|
||||
)
|
||||
{
|
||||
set_mouse_termcode(KS_SGR_MOUSE, (char_u *)(term_is_8bit(T_NAME)
|
||||
? IF_EB("\233<*M", CSI_STR "<*M")
|
||||
: IF_EB("\033[<*M", ESC_STR "[<*M")));
|
||||
? "\233<*M" : "\033[<*M"));
|
||||
|
||||
set_mouse_termcode(KS_SGR_MOUSE_RELEASE, (char_u *)(term_is_8bit(T_NAME)
|
||||
? IF_EB("\233<*m", CSI_STR "<*m")
|
||||
: IF_EB("\033[<*m", ESC_STR "[<*m")));
|
||||
? "\233<*m" : "\033[<*m"));
|
||||
|
||||
if (*p_mouse != NUL)
|
||||
{
|
||||
@@ -6126,7 +6105,7 @@ WaitForCharOrMouse(long msec, int *interrupted, int ignore_input)
|
||||
{
|
||||
WantQueryMouse = FALSE;
|
||||
if (!no_query_mouse_for_testing)
|
||||
mch_write((char_u *)IF_EB("\033[1'|", ESC_STR "[1'|"), 5);
|
||||
mch_write((char_u *)"\033[1'|", 5);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -8229,114 +8208,3 @@ xsmp_close(void)
|
||||
}
|
||||
}
|
||||
#endif // USE_XSMP
|
||||
|
||||
|
||||
#ifdef EBCDIC
|
||||
// Translate character to its CTRL- value
|
||||
char CtrlTable[] =
|
||||
{
|
||||
/* 00 - 5E */
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* ^ */ 0x1E,
|
||||
/* - */ 0x1F,
|
||||
/* 61 - 6C */
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* _ */ 0x1F,
|
||||
/* 6E - 80 */
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* a */ 0x01,
|
||||
/* b */ 0x02,
|
||||
/* c */ 0x03,
|
||||
/* d */ 0x37,
|
||||
/* e */ 0x2D,
|
||||
/* f */ 0x2E,
|
||||
/* g */ 0x2F,
|
||||
/* h */ 0x16,
|
||||
/* i */ 0x05,
|
||||
/* 8A - 90 */
|
||||
0, 0, 0, 0, 0, 0, 0,
|
||||
/* j */ 0x15,
|
||||
/* k */ 0x0B,
|
||||
/* l */ 0x0C,
|
||||
/* m */ 0x0D,
|
||||
/* n */ 0x0E,
|
||||
/* o */ 0x0F,
|
||||
/* p */ 0x10,
|
||||
/* q */ 0x11,
|
||||
/* r */ 0x12,
|
||||
/* 9A - A1 */
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* s */ 0x13,
|
||||
/* t */ 0x3C,
|
||||
/* u */ 0x3D,
|
||||
/* v */ 0x32,
|
||||
/* w */ 0x26,
|
||||
/* x */ 0x18,
|
||||
/* y */ 0x19,
|
||||
/* z */ 0x3F,
|
||||
/* AA - AC */
|
||||
0, 0, 0,
|
||||
/* [ */ 0x27,
|
||||
/* AE - BC */
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* ] */ 0x1D,
|
||||
/* BE - C0 */ 0, 0, 0,
|
||||
/* A */ 0x01,
|
||||
/* B */ 0x02,
|
||||
/* C */ 0x03,
|
||||
/* D */ 0x37,
|
||||
/* E */ 0x2D,
|
||||
/* F */ 0x2E,
|
||||
/* G */ 0x2F,
|
||||
/* H */ 0x16,
|
||||
/* I */ 0x05,
|
||||
/* CA - D0 */ 0, 0, 0, 0, 0, 0, 0,
|
||||
/* J */ 0x15,
|
||||
/* K */ 0x0B,
|
||||
/* L */ 0x0C,
|
||||
/* M */ 0x0D,
|
||||
/* N */ 0x0E,
|
||||
/* O */ 0x0F,
|
||||
/* P */ 0x10,
|
||||
/* Q */ 0x11,
|
||||
/* R */ 0x12,
|
||||
/* DA - DF */ 0, 0, 0, 0, 0, 0,
|
||||
/* \ */ 0x1C,
|
||||
/* E1 */ 0,
|
||||
/* S */ 0x13,
|
||||
/* T */ 0x3C,
|
||||
/* U */ 0x3D,
|
||||
/* V */ 0x32,
|
||||
/* W */ 0x26,
|
||||
/* X */ 0x18,
|
||||
/* Y */ 0x19,
|
||||
/* Z */ 0x3F,
|
||||
/* EA - FF*/ 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
};
|
||||
|
||||
char MetaCharTable[]=
|
||||
{// 0 1 2 3 4 5 6 7 8 9 A B C D E F
|
||||
0, 0, 0, 0,'\\', 0,'F', 0,'W','M','N', 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0,']', 0, 0,'G', 0, 0,'R','O', 0, 0, 0, 0,
|
||||
'@','A','B','C','D','E', 0, 0,'H','I','J','K','L', 0, 0, 0,
|
||||
'P','Q', 0,'S','T','U','V', 0,'X','Y','Z','[', 0, 0,'^', 0
|
||||
};
|
||||
|
||||
|
||||
// TODO: Use characters NOT numbers!!!
|
||||
char CtrlCharTable[]=
|
||||
{// 0 1 2 3 4 5 6 7 8 9 A B C D E F
|
||||
124,193,194,195, 0,201, 0, 0, 0, 0, 0,210,211,212,213,214,
|
||||
215,216,217,226, 0,209,200, 0,231,232, 0, 0,224,189, 95,109,
|
||||
0, 0, 0, 0, 0, 0,230,173, 0, 0, 0, 0, 0,197,198,199,
|
||||
0, 0,229, 0, 0, 0, 0,196, 0, 0, 0, 0,227,228, 0,233,
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
+13
-13
@@ -241,11 +241,11 @@ static char_u *exe_path = NULL;
|
||||
|
||||
static BOOL win8_or_later = FALSE;
|
||||
|
||||
# if defined(__GNUC__) && !defined(__MINGW32__) && !defined(__CYGWIN__)
|
||||
# define UChar UnicodeChar
|
||||
# else
|
||||
# define UChar uChar.UnicodeChar
|
||||
# endif
|
||||
#if defined(__GNUC__) && !defined(__MINGW32__) && !defined(__CYGWIN__)
|
||||
# define UChar UnicodeChar
|
||||
#else
|
||||
# define UChar uChar.UnicodeChar
|
||||
#endif
|
||||
|
||||
#if !defined(FEAT_GUI_MSWIN) || defined(VIMDLL)
|
||||
// Dynamic loading for portability
|
||||
@@ -452,7 +452,7 @@ wait_for_single_object(
|
||||
HANDLE hHandle,
|
||||
DWORD dwMilliseconds)
|
||||
{
|
||||
if (read_console_input(NULL, NULL, -2, NULL))
|
||||
if (read_console_input(NULL, NULL, (DWORD)-2, NULL))
|
||||
return WAIT_OBJECT_0;
|
||||
return WaitForSingleObject(hHandle, dwMilliseconds);
|
||||
}
|
||||
@@ -724,7 +724,7 @@ dyn_libintl_init(void)
|
||||
for (i = 0; libintl_entry[i].name != NULL
|
||||
&& libintl_entry[i].ptr != NULL; ++i)
|
||||
{
|
||||
if ((*libintl_entry[i].ptr = (FARPROC)GetProcAddress(hLibintlDLL,
|
||||
if ((*libintl_entry[i].ptr = GetProcAddress(hLibintlDLL,
|
||||
libintl_entry[i].name)) == NULL)
|
||||
{
|
||||
dyn_libintl_end();
|
||||
@@ -2077,13 +2077,13 @@ theend:
|
||||
buf[len++] = typeahead[0];
|
||||
mch_memmove(typeahead, typeahead + 1, --typeaheadlen);
|
||||
}
|
||||
# ifdef FEAT_JOB_CHANNEL
|
||||
# ifdef FEAT_JOB_CHANNEL
|
||||
if (len > 0)
|
||||
{
|
||||
buf[len] = NUL;
|
||||
ch_log(NULL, "raw key input: \"%s\"", buf);
|
||||
}
|
||||
# endif
|
||||
# endif
|
||||
return len;
|
||||
|
||||
#else // FEAT_GUI_MSWIN
|
||||
@@ -7874,12 +7874,12 @@ vtp_sgr_bulk(
|
||||
vtp_sgr_bulks(1, args);
|
||||
}
|
||||
|
||||
#define FAST256(x) \
|
||||
# define FAST256(x) \
|
||||
if ((*p-- = "0123456789"[(n = x % 10)]) \
|
||||
&& x >= 10 && (*p-- = "0123456789"[((m = x % 100) - n) / 10]) \
|
||||
&& x >= 100 && (*p-- = "012"[((x & 0xff) - m) / 100]));
|
||||
|
||||
#define FAST256CASE(x) \
|
||||
# define FAST256CASE(x) \
|
||||
case x: \
|
||||
FAST256(newargs[x - 1]);
|
||||
|
||||
@@ -7888,8 +7888,8 @@ vtp_sgr_bulks(
|
||||
int argc,
|
||||
int *args)
|
||||
{
|
||||
#define MAXSGR 16
|
||||
#define SGRBUFSIZE 2 + 4 * MAXSGR + 1 // '\033[' + SGR + 'm'
|
||||
# define MAXSGR 16
|
||||
# define SGRBUFSIZE 2 + 4 * MAXSGR + 1 // '\033[' + SGR + 'm'
|
||||
char_u buf[SGRBUFSIZE];
|
||||
char_u *p;
|
||||
int in, out;
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ void dict_free_items(int copyID);
|
||||
dictitem_T *dictitem_alloc(char_u *key);
|
||||
void dictitem_remove(dict_T *dict, dictitem_T *item);
|
||||
void dictitem_free(dictitem_T *item);
|
||||
dict_T *dict_copy(dict_T *orig, int deep, int copyID);
|
||||
dict_T *dict_copy(dict_T *orig, int deep, int top, int copyID);
|
||||
int dict_wrong_func_name(dict_T *d, typval_T *tv, char_u *name);
|
||||
int dict_add(dict_T *d, dictitem_T *item);
|
||||
int dict_add_number(dict_T *d, char *key, varnumber_T nr);
|
||||
|
||||
+1
-1
@@ -69,7 +69,7 @@ int eval_isnamec(int c);
|
||||
int eval_isnamec1(int c);
|
||||
int eval_isdictc(int c);
|
||||
int handle_subscript(char_u **arg, char_u *name_start, typval_T *rettv, evalarg_T *evalarg, int verbose);
|
||||
int item_copy(typval_T *from, typval_T *to, int deep, int copyID);
|
||||
int item_copy(typval_T *from, typval_T *to, int deep, int top, int copyID);
|
||||
void echo_one(typval_T *rettv, int with_space, int *atstart, int *needclr);
|
||||
void ex_echo(exarg_T *eap);
|
||||
void ex_echohl(exarg_T *eap);
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
/* evalfunc.c */
|
||||
void sortFunctions(void);
|
||||
char_u *get_function_name(expand_T *xp, int idx);
|
||||
char_u *get_expr_name(expand_T *xp, int idx);
|
||||
int find_internal_func(char_u *name);
|
||||
@@ -7,7 +6,7 @@ int has_internal_func(char_u *name);
|
||||
char *internal_func_name(int idx);
|
||||
int internal_func_check_arg_types(type2_T *types, int idx, int argcount, cctx_T *cctx);
|
||||
void internal_func_get_argcount(int idx, int *argcount, int *min_argcount);
|
||||
type_T *internal_func_ret_type(int idx, int argcount, type2_T *argtypes);
|
||||
type_T *internal_func_ret_type(int idx, int argcount, type2_T *argtypes, type_T **decl_type);
|
||||
int internal_func_is_map(int idx);
|
||||
int check_internal_func(int idx, int argcount);
|
||||
int call_internal_func(char_u *name, int argcount, typval_T *argvars, typval_T *rettv);
|
||||
|
||||
+1
-1
@@ -39,7 +39,7 @@ int list_extend(list_T *l1, list_T *l2, listitem_T *bef);
|
||||
int list_concat(list_T *l1, list_T *l2, typval_T *tv);
|
||||
list_T *list_slice(list_T *ol, long n1, long n2);
|
||||
int list_slice_or_index(list_T *list, int range, varnumber_T n1_arg, varnumber_T n2_arg, int exclusive, typval_T *rettv, int verbose);
|
||||
list_T *list_copy(list_T *orig, int deep, int copyID);
|
||||
list_T *list_copy(list_T *orig, int deep, int top, int copyID);
|
||||
void vimlist_remove(list_T *l, listitem_T *item, listitem_T *item2);
|
||||
char_u *list2string(typval_T *tv, int copyID, int restore_copyID);
|
||||
int list_join(garray_T *gap, list_T *l, char_u *sep, int echo_style, int restore_copyID, int copyID);
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
/* normal.c */
|
||||
void f_internal_get_nv_cmdchar(typval_T *argvars, typval_T *rettv);
|
||||
void normal_cmd(oparg_T *oap, int toplevel);
|
||||
void check_visual_highlight(void);
|
||||
void end_visual_mode(void);
|
||||
|
||||
@@ -32,7 +32,6 @@ void f_test_null_partial(typval_T *argvars, typval_T *rettv);
|
||||
void f_test_null_string(typval_T *argvars, typval_T *rettv);
|
||||
void f_test_unknown(typval_T *argvars, typval_T *rettv);
|
||||
void f_test_void(typval_T *argvars, typval_T *rettv);
|
||||
void f_test_scrollbar(typval_T *argvars, typval_T *rettv);
|
||||
void f_test_setmouse(typval_T *argvars, typval_T *rettv);
|
||||
void f_test_gui_event(typval_T *argvars, typval_T *rettv);
|
||||
void f_test_settime(typval_T *argvars, typval_T *rettv);
|
||||
|
||||
@@ -4,6 +4,7 @@ int arg_exists(char_u *name, size_t len, int *idxp, type_T **type, int *gen_load
|
||||
int script_is_vim9(void);
|
||||
int script_var_exists(char_u *name, size_t len, cctx_T *cctx);
|
||||
int check_defined(char_u *p, size_t len, cctx_T *cctx, int is_arg);
|
||||
int need_type_where(type_T *actual, type_T *expected, int offset, where_T where, cctx_T *cctx, int silent, int actual_is_const);
|
||||
int need_type(type_T *actual, type_T *expected, int offset, int arg_idx, cctx_T *cctx, int silent, int actual_is_const);
|
||||
lvar_T *reserve_local(cctx_T *cctx, char_u *name, size_t len, int isConst, type_T *type);
|
||||
int get_script_item_idx(int sid, char_u *name, int check_writable, cctx_T *cctx);
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
void clear_type_list(garray_T *gap);
|
||||
type_T *alloc_type(type_T *type);
|
||||
void free_type(type_T *type);
|
||||
void set_tv_type(typval_T *tv, type_T *type);
|
||||
type_T *get_list_type(type_T *member_type, garray_T *type_gap);
|
||||
type_T *get_dict_type(type_T *member_type, garray_T *type_gap);
|
||||
type_T *alloc_func_type(type_T *ret_type, int argcount, garray_T *type_gap);
|
||||
@@ -25,6 +26,7 @@ int push_type_stack(cctx_T *cctx, type_T *type);
|
||||
int push_type_stack2(cctx_T *cctx, type_T *type, type_T *decl_type);
|
||||
void set_type_on_stack(cctx_T *cctx, type_T *type, int offset);
|
||||
type_T *get_type_on_stack(cctx_T *cctx, int offset);
|
||||
type_T *get_decl_type_on_stack(cctx_T *cctx, int offset);
|
||||
type_T *get_member_type_from_stack(int count, int skip, type_T **decl_type, cctx_T *cctx);
|
||||
char *vartype_name(vartype_T type);
|
||||
char *type_name(type_T *type, char **tofree);
|
||||
|
||||
+1
-45
@@ -231,21 +231,11 @@ init_class_tab(void)
|
||||
class_tab[i] = RI_DIGIT + RI_HEX + RI_WORD;
|
||||
else if (i >= 'a' && i <= 'f')
|
||||
class_tab[i] = RI_HEX + RI_WORD + RI_HEAD + RI_ALPHA + RI_LOWER;
|
||||
#ifdef EBCDIC
|
||||
else if ((i >= 'g' && i <= 'i') || (i >= 'j' && i <= 'r')
|
||||
|| (i >= 's' && i <= 'z'))
|
||||
#else
|
||||
else if (i >= 'g' && i <= 'z')
|
||||
#endif
|
||||
class_tab[i] = RI_WORD + RI_HEAD + RI_ALPHA + RI_LOWER;
|
||||
else if (i >= 'A' && i <= 'F')
|
||||
class_tab[i] = RI_HEX + RI_WORD + RI_HEAD + RI_ALPHA + RI_UPPER;
|
||||
#ifdef EBCDIC
|
||||
else if ((i >= 'G' && i <= 'I') || ( i >= 'J' && i <= 'R')
|
||||
|| (i >= 'S' && i <= 'Z'))
|
||||
#else
|
||||
else if (i >= 'G' && i <= 'Z')
|
||||
#endif
|
||||
class_tab[i] = RI_WORD + RI_HEAD + RI_ALPHA + RI_UPPER;
|
||||
else if (i == '_')
|
||||
class_tab[i] = RI_WORD + RI_HEAD;
|
||||
@@ -300,9 +290,6 @@ static int reg_strict; // "[abc" is illegal
|
||||
* META contains all characters that may be magic, except '^' and '$'.
|
||||
*/
|
||||
|
||||
#ifdef EBCDIC
|
||||
static char_u META[] = "%&()*+.123456789<=>?@ACDFHIKLMOPSUVWX[_acdfhiklmnopsuvwxz{|~";
|
||||
#else
|
||||
// META[] is used often enough to justify turning it into a table.
|
||||
static char_u META_flags[] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
@@ -320,7 +307,6 @@ static char_u META_flags[] = {
|
||||
// p s u v w x z { | ~
|
||||
1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1
|
||||
};
|
||||
#endif
|
||||
|
||||
static int curchr; // currently parsed character
|
||||
// Previous character. Note: prevchr is sometimes -1 when we are not at the
|
||||
@@ -409,30 +395,6 @@ get_equi_class(char_u **pp)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef EBCDIC
|
||||
/*
|
||||
* Table for equivalence class "c". (IBM-1047)
|
||||
*/
|
||||
static char *EQUIVAL_CLASS_C[16] = {
|
||||
"A\x62\x63\x64\x65\x66\x67",
|
||||
"C\x68",
|
||||
"E\x71\x72\x73\x74",
|
||||
"I\x75\x76\x77\x78",
|
||||
"N\x69",
|
||||
"O\xEB\xEC\xED\xEE\xEF\x80",
|
||||
"U\xFB\xFC\xFD\xFE",
|
||||
"Y\xBA",
|
||||
"a\x42\x43\x44\x45\x46\x47",
|
||||
"c\x48",
|
||||
"e\x51\x52\x53\x54",
|
||||
"i\x55\x56\x57\x58",
|
||||
"n\x49",
|
||||
"o\xCB\xCC\xCD\xCE\xCF\x70",
|
||||
"u\xDB\xDC\xDD\xDE",
|
||||
"y\x8D\xDF",
|
||||
};
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Check for a collating element "[.a.]". "pp" points to the '['.
|
||||
* Returns a character. Zero means that no item was recognized. Otherwise
|
||||
@@ -788,13 +750,7 @@ peekchr(void)
|
||||
|
||||
if (c == NUL)
|
||||
curchr = '\\'; // trailing '\'
|
||||
else if (
|
||||
#ifdef EBCDIC
|
||||
vim_strchr(META, c)
|
||||
#else
|
||||
c <= '~' && META_flags[c]
|
||||
#endif
|
||||
)
|
||||
else if (c <= '~' && META_flags[c])
|
||||
{
|
||||
/*
|
||||
* META contains everything that may be magic sometimes,
|
||||
|
||||
+1
-29
@@ -533,22 +533,6 @@ reg_equi_class(int c)
|
||||
if (enc_utf8 || STRCMP(p_enc, "latin1") == 0
|
||||
|| STRCMP(p_enc, "iso-8859-15") == 0)
|
||||
{
|
||||
#ifdef EBCDIC
|
||||
int i;
|
||||
|
||||
// This might be slower than switch/case below.
|
||||
for (i = 0; i < 16; i++)
|
||||
{
|
||||
if (vim_strchr(EQUIVAL_CLASS_C[i], c) != NULL)
|
||||
{
|
||||
char *p = EQUIVAL_CLASS_C[i];
|
||||
|
||||
while (*p != 0)
|
||||
regmbc(*p++);
|
||||
return;
|
||||
}
|
||||
}
|
||||
#else
|
||||
switch (c)
|
||||
{
|
||||
// Do not use '\300' style, it results in a negative number.
|
||||
@@ -1012,7 +996,6 @@ reg_equi_class(int c)
|
||||
regmbc(0x1e95); regmbc(0x2c6c);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
regmbc(c);
|
||||
}
|
||||
@@ -1794,19 +1777,8 @@ collection:
|
||||
}
|
||||
else
|
||||
{
|
||||
#ifdef EBCDIC
|
||||
int alpha_only = FALSE;
|
||||
|
||||
// for alphabetical range skip the gaps
|
||||
// 'i'-'j', 'r'-'s', 'I'-'J' and 'R'-'S'.
|
||||
if (isalpha(startc) && isalpha(endc))
|
||||
alpha_only = TRUE;
|
||||
#endif
|
||||
while (++startc <= endc)
|
||||
#ifdef EBCDIC
|
||||
if (!alpha_only || isalpha(startc))
|
||||
#endif
|
||||
regc(startc);
|
||||
regc(startc);
|
||||
}
|
||||
startc = -1;
|
||||
}
|
||||
|
||||
+59
-128
@@ -698,119 +698,61 @@ nfa_emit_equi_class(int c)
|
||||
if (enc_utf8 || STRCMP(p_enc, "latin1") == 0
|
||||
|| STRCMP(p_enc, "iso-8859-15") == 0)
|
||||
{
|
||||
#ifdef EBCDIC
|
||||
# define A_circumflex 0x62
|
||||
# define A_diaeresis 0x63
|
||||
# define A_grave 0x64
|
||||
# define A_acute 0x65
|
||||
# define A_virguilla 0x66
|
||||
# define A_ring 0x67
|
||||
# define C_cedilla 0x68
|
||||
# define E_acute 0x71
|
||||
# define E_circumflex 0x72
|
||||
# define E_diaeresis 0x73
|
||||
# define E_grave 0x74
|
||||
# define I_acute 0x75
|
||||
# define I_circumflex 0x76
|
||||
# define I_diaeresis 0x77
|
||||
# define I_grave 0x78
|
||||
# define N_virguilla 0x69
|
||||
# define O_circumflex 0xeb
|
||||
# define O_diaeresis 0xec
|
||||
# define O_grave 0xed
|
||||
# define O_acute 0xee
|
||||
# define O_virguilla 0xef
|
||||
# define O_slash 0x80
|
||||
# define U_circumflex 0xfb
|
||||
# define U_diaeresis 0xfc
|
||||
# define U_grave 0xfd
|
||||
# define U_acute 0xfe
|
||||
# define Y_acute 0xba
|
||||
# define a_grave 0x42
|
||||
# define a_acute 0x43
|
||||
# define a_circumflex 0x44
|
||||
# define a_virguilla 0x45
|
||||
# define a_diaeresis 0x46
|
||||
# define a_ring 0x47
|
||||
# define c_cedilla 0x48
|
||||
# define e_grave 0x51
|
||||
# define e_acute 0x52
|
||||
# define e_circumflex 0x53
|
||||
# define e_diaeresis 0x54
|
||||
# define i_grave 0x55
|
||||
# define i_acute 0x56
|
||||
# define i_circumflex 0x57
|
||||
# define i_diaeresis 0x58
|
||||
# define n_virguilla 0x49
|
||||
# define o_grave 0xcb
|
||||
# define o_acute 0xcc
|
||||
# define o_circumflex 0xcd
|
||||
# define o_virguilla 0xce
|
||||
# define o_diaeresis 0xcf
|
||||
# define o_slash 0x70
|
||||
# define u_grave 0xdb
|
||||
# define u_acute 0xdc
|
||||
# define u_circumflex 0xdd
|
||||
# define u_diaeresis 0xde
|
||||
# define y_acute 0x8d
|
||||
# define y_diaeresis 0xdf
|
||||
#else
|
||||
# define A_grave 0xc0
|
||||
# define A_acute 0xc1
|
||||
# define A_circumflex 0xc2
|
||||
# define A_virguilla 0xc3
|
||||
# define A_diaeresis 0xc4
|
||||
# define A_ring 0xc5
|
||||
# define C_cedilla 0xc7
|
||||
# define E_grave 0xc8
|
||||
# define E_acute 0xc9
|
||||
# define E_circumflex 0xca
|
||||
# define E_diaeresis 0xcb
|
||||
# define I_grave 0xcc
|
||||
# define I_acute 0xcd
|
||||
# define I_circumflex 0xce
|
||||
# define I_diaeresis 0xcf
|
||||
# define N_virguilla 0xd1
|
||||
# define O_grave 0xd2
|
||||
# define O_acute 0xd3
|
||||
# define O_circumflex 0xd4
|
||||
# define O_virguilla 0xd5
|
||||
# define O_diaeresis 0xd6
|
||||
# define O_slash 0xd8
|
||||
# define U_grave 0xd9
|
||||
# define U_acute 0xda
|
||||
# define U_circumflex 0xdb
|
||||
# define U_diaeresis 0xdc
|
||||
# define Y_acute 0xdd
|
||||
# define a_grave 0xe0
|
||||
# define a_acute 0xe1
|
||||
# define a_circumflex 0xe2
|
||||
# define a_virguilla 0xe3
|
||||
# define a_diaeresis 0xe4
|
||||
# define a_ring 0xe5
|
||||
# define c_cedilla 0xe7
|
||||
# define e_grave 0xe8
|
||||
# define e_acute 0xe9
|
||||
# define e_circumflex 0xea
|
||||
# define e_diaeresis 0xeb
|
||||
# define i_grave 0xec
|
||||
# define i_acute 0xed
|
||||
# define i_circumflex 0xee
|
||||
# define i_diaeresis 0xef
|
||||
# define n_virguilla 0xf1
|
||||
# define o_grave 0xf2
|
||||
# define o_acute 0xf3
|
||||
# define o_circumflex 0xf4
|
||||
# define o_virguilla 0xf5
|
||||
# define o_diaeresis 0xf6
|
||||
# define o_slash 0xf8
|
||||
# define u_grave 0xf9
|
||||
# define u_acute 0xfa
|
||||
# define u_circumflex 0xfb
|
||||
# define u_diaeresis 0xfc
|
||||
# define y_acute 0xfd
|
||||
# define y_diaeresis 0xff
|
||||
#endif
|
||||
#define A_grave 0xc0
|
||||
#define A_acute 0xc1
|
||||
#define A_circumflex 0xc2
|
||||
#define A_virguilla 0xc3
|
||||
#define A_diaeresis 0xc4
|
||||
#define A_ring 0xc5
|
||||
#define C_cedilla 0xc7
|
||||
#define E_grave 0xc8
|
||||
#define E_acute 0xc9
|
||||
#define E_circumflex 0xca
|
||||
#define E_diaeresis 0xcb
|
||||
#define I_grave 0xcc
|
||||
#define I_acute 0xcd
|
||||
#define I_circumflex 0xce
|
||||
#define I_diaeresis 0xcf
|
||||
#define N_virguilla 0xd1
|
||||
#define O_grave 0xd2
|
||||
#define O_acute 0xd3
|
||||
#define O_circumflex 0xd4
|
||||
#define O_virguilla 0xd5
|
||||
#define O_diaeresis 0xd6
|
||||
#define O_slash 0xd8
|
||||
#define U_grave 0xd9
|
||||
#define U_acute 0xda
|
||||
#define U_circumflex 0xdb
|
||||
#define U_diaeresis 0xdc
|
||||
#define Y_acute 0xdd
|
||||
#define a_grave 0xe0
|
||||
#define a_acute 0xe1
|
||||
#define a_circumflex 0xe2
|
||||
#define a_virguilla 0xe3
|
||||
#define a_diaeresis 0xe4
|
||||
#define a_ring 0xe5
|
||||
#define c_cedilla 0xe7
|
||||
#define e_grave 0xe8
|
||||
#define e_acute 0xe9
|
||||
#define e_circumflex 0xea
|
||||
#define e_diaeresis 0xeb
|
||||
#define i_grave 0xec
|
||||
#define i_acute 0xed
|
||||
#define i_circumflex 0xee
|
||||
#define i_diaeresis 0xef
|
||||
#define n_virguilla 0xf1
|
||||
#define o_grave 0xf2
|
||||
#define o_acute 0xf3
|
||||
#define o_circumflex 0xf4
|
||||
#define o_virguilla 0xf5
|
||||
#define o_diaeresis 0xf6
|
||||
#define o_slash 0xf8
|
||||
#define u_grave 0xf9
|
||||
#define u_acute 0xfa
|
||||
#define u_circumflex 0xfb
|
||||
#define u_diaeresis 0xfc
|
||||
#define y_acute 0xfd
|
||||
#define y_diaeresis 0xff
|
||||
switch (c)
|
||||
{
|
||||
case 'A': case A_grave: case A_acute: case A_circumflex:
|
||||
@@ -2041,24 +1983,13 @@ collection:
|
||||
}
|
||||
else
|
||||
{
|
||||
#ifdef EBCDIC
|
||||
int alpha_only = FALSE;
|
||||
|
||||
// for alphabetical range skip the gaps
|
||||
// 'i'-'j', 'r'-'s', 'I'-'J' and 'R'-'S'.
|
||||
if (isalpha(startc) && isalpha(endc))
|
||||
alpha_only = TRUE;
|
||||
#endif
|
||||
// Emit the range. "startc" was already emitted, so
|
||||
// skip it.
|
||||
for (c = startc + 1; c <= endc; c++)
|
||||
#ifdef EBCDIC
|
||||
if (!alpha_only || isalpha(startc))
|
||||
#endif
|
||||
{
|
||||
EMIT(c);
|
||||
EMIT(NFA_CONCAT);
|
||||
}
|
||||
{
|
||||
EMIT(c);
|
||||
EMIT(NFA_CONCAT);
|
||||
}
|
||||
}
|
||||
emit_range = FALSE;
|
||||
startc = -1;
|
||||
|
||||
@@ -2297,21 +2297,7 @@ get_register_name(int num)
|
||||
return '+';
|
||||
#endif
|
||||
else
|
||||
{
|
||||
#ifdef EBCDIC
|
||||
int i;
|
||||
|
||||
// EBCDIC is really braindead ...
|
||||
i = 'a' + (num - 10);
|
||||
if (i > 'i')
|
||||
i += 7;
|
||||
if (i > 'r')
|
||||
i += 8;
|
||||
return i;
|
||||
#else
|
||||
return num + 'a' - 10;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
#if defined(FEAT_EVAL) || defined(PROTO)
|
||||
|
||||
+2
-2
@@ -1812,7 +1812,7 @@ screen_start_highlight(int attr)
|
||||
char buf[20];
|
||||
|
||||
// The GUI handles this internally.
|
||||
sprintf(buf, IF_EB("\033|%dh", ESC_STR "|%dh"), attr);
|
||||
sprintf(buf, "\033|%dh", attr);
|
||||
OUT_STR(buf);
|
||||
}
|
||||
else
|
||||
@@ -1962,7 +1962,7 @@ screen_stop_highlight(void)
|
||||
char buf[20];
|
||||
|
||||
// use internal GUI code
|
||||
sprintf(buf, IF_EB("\033|%dH", ESC_STR "|%dH"), screen_attr);
|
||||
sprintf(buf, "\033|%dH", screen_attr);
|
||||
OUT_STR(buf);
|
||||
}
|
||||
else
|
||||
|
||||
+1
-1
@@ -2294,7 +2294,7 @@ script_autoload(
|
||||
|
||||
// Try loading the package from $VIMRUNTIME/autoload/<name>.vim
|
||||
// Use "ret_sid" to avoid loading the same script again.
|
||||
if (source_in_path(p_rtp, scriptname, 0, &ret_sid) == OK)
|
||||
if (source_in_path(p_rtp, scriptname, DIP_START, &ret_sid) == OK)
|
||||
ret = TRUE;
|
||||
}
|
||||
|
||||
|
||||
@@ -2534,7 +2534,6 @@ close_spellbuf(buf_T *buf)
|
||||
|
||||
/*
|
||||
* Init the chartab used for spelling for ASCII.
|
||||
* EBCDIC is not supported!
|
||||
*/
|
||||
void
|
||||
clear_spell_chartab(spelltab_T *sp)
|
||||
|
||||
@@ -342,11 +342,7 @@ vim_strup(
|
||||
{
|
||||
p2 = p;
|
||||
while ((c = *p2) != NUL)
|
||||
#ifdef EBCDIC
|
||||
*p2++ = isalpha(c) ? toupper(c) : c;
|
||||
#else
|
||||
*p2++ = (c < 'a' || c > 'z') ? c : (c - 0x20);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -136,9 +136,6 @@ typedef struct {
|
||||
* (a normal mark is a lnum/col pair, the same as a file position)
|
||||
*/
|
||||
|
||||
// (Note: for EBCDIC there are more than 26, because there are gaps in the
|
||||
// alphabet coding. To minimize changes to the code, I decided to just
|
||||
// increase the number of possible marks.
|
||||
#define NMARKS ('z' - 'a' + 1) // max. # of named marks
|
||||
#define EXTRA_MARKS 10 // marks 0-9
|
||||
#define JUMPLISTSIZE 100 // max. # of marks in jump list
|
||||
|
||||
+281
-291
@@ -222,48 +222,48 @@ static struct builtin_term builtin_termcaps[] =
|
||||
* GUI pseudo term-cap.
|
||||
*/
|
||||
{(int)KS_NAME, "gui"},
|
||||
{(int)KS_CE, IF_EB("\033|$", ESC_STR "|$")},
|
||||
{(int)KS_AL, IF_EB("\033|i", ESC_STR "|i")},
|
||||
{(int)KS_CE, "\033|$"},
|
||||
{(int)KS_AL, "\033|i"},
|
||||
# ifdef TERMINFO
|
||||
{(int)KS_CAL, IF_EB("\033|%p1%dI", ESC_STR "|%p1%dI")},
|
||||
{(int)KS_CAL, "\033|%p1%dI"},
|
||||
# else
|
||||
{(int)KS_CAL, IF_EB("\033|%dI", ESC_STR "|%dI")},
|
||||
{(int)KS_CAL, "\033|%dI"},
|
||||
# endif
|
||||
{(int)KS_DL, IF_EB("\033|d", ESC_STR "|d")},
|
||||
{(int)KS_DL, "\033|d"},
|
||||
# ifdef TERMINFO
|
||||
{(int)KS_CDL, IF_EB("\033|%p1%dD", ESC_STR "|%p1%dD")},
|
||||
{(int)KS_CS, IF_EB("\033|%p1%d;%p2%dR", ESC_STR "|%p1%d;%p2%dR")},
|
||||
{(int)KS_CSV, IF_EB("\033|%p1%d;%p2%dV", ESC_STR "|%p1%d;%p2%dV")},
|
||||
{(int)KS_CDL, "\033|%p1%dD"},
|
||||
{(int)KS_CS, "\033|%p1%d;%p2%dR"},
|
||||
{(int)KS_CSV, "\033|%p1%d;%p2%dV"},
|
||||
# else
|
||||
{(int)KS_CDL, IF_EB("\033|%dD", ESC_STR "|%dD")},
|
||||
{(int)KS_CS, IF_EB("\033|%d;%dR", ESC_STR "|%d;%dR")},
|
||||
{(int)KS_CSV, IF_EB("\033|%d;%dV", ESC_STR "|%d;%dV")},
|
||||
{(int)KS_CDL, "\033|%dD"},
|
||||
{(int)KS_CS, "\033|%d;%dR"},
|
||||
{(int)KS_CSV, "\033|%d;%dV"},
|
||||
# endif
|
||||
{(int)KS_CL, IF_EB("\033|C", ESC_STR "|C")},
|
||||
{(int)KS_CL, "\033|C"},
|
||||
// attributes switched on with 'h', off with * 'H'
|
||||
{(int)KS_ME, IF_EB("\033|31H", ESC_STR "|31H")}, // HL_ALL
|
||||
{(int)KS_MR, IF_EB("\033|1h", ESC_STR "|1h")}, // HL_INVERSE
|
||||
{(int)KS_MD, IF_EB("\033|2h", ESC_STR "|2h")}, // HL_BOLD
|
||||
{(int)KS_SE, IF_EB("\033|16H", ESC_STR "|16H")}, // HL_STANDOUT
|
||||
{(int)KS_SO, IF_EB("\033|16h", ESC_STR "|16h")}, // HL_STANDOUT
|
||||
{(int)KS_UE, IF_EB("\033|8H", ESC_STR "|8H")}, // HL_UNDERLINE
|
||||
{(int)KS_US, IF_EB("\033|8h", ESC_STR "|8h")}, // HL_UNDERLINE
|
||||
{(int)KS_UCE, IF_EB("\033|8C", ESC_STR "|8C")}, // HL_UNDERCURL
|
||||
{(int)KS_UCS, IF_EB("\033|8c", ESC_STR "|8c")}, // HL_UNDERCURL
|
||||
{(int)KS_STE, IF_EB("\033|4C", ESC_STR "|4C")}, // HL_STRIKETHROUGH
|
||||
{(int)KS_STS, IF_EB("\033|4c", ESC_STR "|4c")}, // HL_STRIKETHROUGH
|
||||
{(int)KS_CZR, IF_EB("\033|4H", ESC_STR "|4H")}, // HL_ITALIC
|
||||
{(int)KS_CZH, IF_EB("\033|4h", ESC_STR "|4h")}, // HL_ITALIC
|
||||
{(int)KS_VB, IF_EB("\033|f", ESC_STR "|f")},
|
||||
{(int)KS_ME, "\033|31H"}, // HL_ALL
|
||||
{(int)KS_MR, "\033|1h"}, // HL_INVERSE
|
||||
{(int)KS_MD, "\033|2h"}, // HL_BOLD
|
||||
{(int)KS_SE, "\033|16H"}, // HL_STANDOUT
|
||||
{(int)KS_SO, "\033|16h"}, // HL_STANDOUT
|
||||
{(int)KS_UE, "\033|8H"}, // HL_UNDERLINE
|
||||
{(int)KS_US, "\033|8h"}, // HL_UNDERLINE
|
||||
{(int)KS_UCE, "\033|8C"}, // HL_UNDERCURL
|
||||
{(int)KS_UCS, "\033|8c"}, // HL_UNDERCURL
|
||||
{(int)KS_STE, "\033|4C"}, // HL_STRIKETHROUGH
|
||||
{(int)KS_STS, "\033|4c"}, // HL_STRIKETHROUGH
|
||||
{(int)KS_CZR, "\033|4H"}, // HL_ITALIC
|
||||
{(int)KS_CZH, "\033|4h"}, // HL_ITALIC
|
||||
{(int)KS_VB, "\033|f"},
|
||||
{(int)KS_MS, "y"},
|
||||
{(int)KS_UT, "y"},
|
||||
{(int)KS_XN, "y"},
|
||||
{(int)KS_LE, "\b"}, // cursor-left = BS
|
||||
{(int)KS_ND, "\014"}, // cursor-right = CTRL-L
|
||||
# ifdef TERMINFO
|
||||
{(int)KS_CM, IF_EB("\033|%p1%d;%p2%dM", ESC_STR "|%p1%d;%p2%dM")},
|
||||
{(int)KS_CM, "\033|%p1%d;%p2%dM"},
|
||||
# else
|
||||
{(int)KS_CM, IF_EB("\033|%d;%dM", ESC_STR "|%d;%dM")},
|
||||
{(int)KS_CM, "\033|%d;%dM"},
|
||||
# endif
|
||||
// there are no key sequences here, the GUI sequences are recognized
|
||||
// in check_termcode()
|
||||
@@ -438,34 +438,34 @@ static struct builtin_term builtin_termcaps[] =
|
||||
* standard ANSI terminal, default for unix
|
||||
*/
|
||||
{(int)KS_NAME, "ansi"},
|
||||
{(int)KS_CE, IF_EB("\033[K", ESC_STR "[K")},
|
||||
{(int)KS_AL, IF_EB("\033[L", ESC_STR "[L")},
|
||||
{(int)KS_CE, "\033[K"},
|
||||
{(int)KS_AL, "\033[L"},
|
||||
# ifdef TERMINFO
|
||||
{(int)KS_CAL, IF_EB("\033[%p1%dL", ESC_STR "[%p1%dL")},
|
||||
{(int)KS_CAL, "\033[%p1%dL"},
|
||||
# else
|
||||
{(int)KS_CAL, IF_EB("\033[%dL", ESC_STR "[%dL")},
|
||||
{(int)KS_CAL, "\033[%dL"},
|
||||
# endif
|
||||
{(int)KS_DL, IF_EB("\033[M", ESC_STR "[M")},
|
||||
{(int)KS_DL, "\033[M"},
|
||||
# ifdef TERMINFO
|
||||
{(int)KS_CDL, IF_EB("\033[%p1%dM", ESC_STR "[%p1%dM")},
|
||||
{(int)KS_CDL, "\033[%p1%dM"},
|
||||
# else
|
||||
{(int)KS_CDL, IF_EB("\033[%dM", ESC_STR "[%dM")},
|
||||
{(int)KS_CDL, "\033[%dM"},
|
||||
# endif
|
||||
{(int)KS_CL, IF_EB("\033[H\033[2J", ESC_STR "[H" ESC_STR_nc "[2J")},
|
||||
{(int)KS_ME, IF_EB("\033[0m", ESC_STR "[0m")},
|
||||
{(int)KS_MR, IF_EB("\033[7m", ESC_STR "[7m")},
|
||||
{(int)KS_CL, "\033[H\033[2J"},
|
||||
{(int)KS_ME, "\033[0m"},
|
||||
{(int)KS_MR, "\033[7m"},
|
||||
{(int)KS_MS, "y"},
|
||||
{(int)KS_UT, "y"}, // guessed
|
||||
{(int)KS_LE, "\b"},
|
||||
# ifdef TERMINFO
|
||||
{(int)KS_CM, IF_EB("\033[%i%p1%d;%p2%dH", ESC_STR "[%i%p1%d;%p2%dH")},
|
||||
{(int)KS_CM, "\033[%i%p1%d;%p2%dH"},
|
||||
# else
|
||||
{(int)KS_CM, IF_EB("\033[%i%d;%dH", ESC_STR "[%i%d;%dH")},
|
||||
{(int)KS_CM, "\033[%i%d;%dH"},
|
||||
# endif
|
||||
# ifdef TERMINFO
|
||||
{(int)KS_CRI, IF_EB("\033[%p1%dC", ESC_STR "[%p1%dC")},
|
||||
{(int)KS_CRI, "\033[%p1%dC"},
|
||||
# else
|
||||
{(int)KS_CRI, IF_EB("\033[%dC", ESC_STR "[%dC")},
|
||||
{(int)KS_CRI, "\033[%dC"},
|
||||
# endif
|
||||
# endif
|
||||
|
||||
@@ -691,98 +691,97 @@ static struct builtin_term builtin_termcaps[] =
|
||||
* - keyboard languages (CSI ? 26 n)
|
||||
*/
|
||||
{(int)KS_NAME, "vt320"},
|
||||
{(int)KS_CE, IF_EB("\033[K", ESC_STR "[K")},
|
||||
{(int)KS_AL, IF_EB("\033[L", ESC_STR "[L")},
|
||||
{(int)KS_CE, "\033[K"},
|
||||
{(int)KS_AL, "\033[L"},
|
||||
# ifdef TERMINFO
|
||||
{(int)KS_CAL, IF_EB("\033[%p1%dL", ESC_STR "[%p1%dL")},
|
||||
{(int)KS_CAL, "\033[%p1%dL"},
|
||||
# else
|
||||
{(int)KS_CAL, IF_EB("\033[%dL", ESC_STR "[%dL")},
|
||||
{(int)KS_CAL, "\033[%dL"},
|
||||
# endif
|
||||
{(int)KS_DL, IF_EB("\033[M", ESC_STR "[M")},
|
||||
{(int)KS_DL, "\033[M"},
|
||||
# ifdef TERMINFO
|
||||
{(int)KS_CDL, IF_EB("\033[%p1%dM", ESC_STR "[%p1%dM")},
|
||||
{(int)KS_CDL, "\033[%p1%dM"},
|
||||
# else
|
||||
{(int)KS_CDL, IF_EB("\033[%dM", ESC_STR "[%dM")},
|
||||
{(int)KS_CDL, "\033[%dM"},
|
||||
# endif
|
||||
{(int)KS_CL, IF_EB("\033[H\033[2J", ESC_STR "[H" ESC_STR_nc "[2J")},
|
||||
{(int)KS_CD, IF_EB("\033[J", ESC_STR "[J")},
|
||||
{(int)KS_CL, "\033[H\033[2J"},
|
||||
{(int)KS_CD, "\033[J"},
|
||||
{(int)KS_CCO, "8"}, // allow 8 colors
|
||||
{(int)KS_ME, IF_EB("\033[0m", ESC_STR "[0m")},
|
||||
{(int)KS_MR, IF_EB("\033[7m", ESC_STR "[7m")},
|
||||
{(int)KS_MD, IF_EB("\033[1m", ESC_STR "[1m")}, // bold mode
|
||||
{(int)KS_SE, IF_EB("\033[22m", ESC_STR "[22m")},// normal mode
|
||||
{(int)KS_UE, IF_EB("\033[24m", ESC_STR "[24m")},// exit underscore mode
|
||||
{(int)KS_US, IF_EB("\033[4m", ESC_STR "[4m")}, // underscore mode
|
||||
{(int)KS_CZH, IF_EB("\033[34;43m", ESC_STR "[34;43m")}, // italic mode: blue text on yellow
|
||||
{(int)KS_CZR, IF_EB("\033[0m", ESC_STR "[0m")}, // italic mode end
|
||||
{(int)KS_CAB, IF_EB("\033[4%dm", ESC_STR "[4%dm")}, // set background color (ANSI)
|
||||
{(int)KS_CAF, IF_EB("\033[3%dm", ESC_STR "[3%dm")}, // set foreground color (ANSI)
|
||||
{(int)KS_CSB, IF_EB("\033[102;%dm", ESC_STR "[102;%dm")}, // set screen background color
|
||||
{(int)KS_CSF, IF_EB("\033[101;%dm", ESC_STR "[101;%dm")}, // set screen foreground color
|
||||
{(int)KS_ME, "\033[0m"},
|
||||
{(int)KS_MR, "\033[7m"},
|
||||
{(int)KS_MD, "\033[1m"}, // bold mode
|
||||
{(int)KS_SE, "\033[22m"},// normal mode
|
||||
{(int)KS_UE, "\033[24m"},// exit underscore mode
|
||||
{(int)KS_US, "\033[4m"}, // underscore mode
|
||||
{(int)KS_CZH, "\033[34;43m"}, // italic mode: blue text on yellow
|
||||
{(int)KS_CZR, "\033[0m"}, // italic mode end
|
||||
{(int)KS_CAB, "\033[4%dm"}, // set background color (ANSI)
|
||||
{(int)KS_CAF, "\033[3%dm"}, // set foreground color (ANSI)
|
||||
{(int)KS_CSB, "\033[102;%dm"}, // set screen background color
|
||||
{(int)KS_CSF, "\033[101;%dm"}, // set screen foreground color
|
||||
{(int)KS_MS, "y"},
|
||||
{(int)KS_UT, "y"},
|
||||
{(int)KS_XN, "y"},
|
||||
{(int)KS_LE, "\b"},
|
||||
# ifdef TERMINFO
|
||||
{(int)KS_CM, IF_EB("\033[%i%p1%d;%p2%dH",
|
||||
ESC_STR "[%i%p1%d;%p2%dH")},
|
||||
{(int)KS_CM, "\033[%i%p1%d;%p2%dH"},
|
||||
# else
|
||||
{(int)KS_CM, IF_EB("\033[%i%d;%dH", ESC_STR "[%i%d;%dH")},
|
||||
{(int)KS_CM, "\033[%i%d;%dH"},
|
||||
# endif
|
||||
# ifdef TERMINFO
|
||||
{(int)KS_CRI, IF_EB("\033[%p1%dC", ESC_STR "[%p1%dC")},
|
||||
{(int)KS_CRI, "\033[%p1%dC"},
|
||||
# else
|
||||
{(int)KS_CRI, IF_EB("\033[%dC", ESC_STR "[%dC")},
|
||||
{(int)KS_CRI, "\033[%dC"},
|
||||
# endif
|
||||
{K_UP, IF_EB("\033[A", ESC_STR "[A")},
|
||||
{K_DOWN, IF_EB("\033[B", ESC_STR "[B")},
|
||||
{K_RIGHT, IF_EB("\033[C", ESC_STR "[C")},
|
||||
{K_LEFT, IF_EB("\033[D", ESC_STR "[D")},
|
||||
{K_UP, "\033[A"},
|
||||
{K_DOWN, "\033[B"},
|
||||
{K_RIGHT, "\033[C"},
|
||||
{K_LEFT, "\033[D"},
|
||||
// Note: cursor key sequences for application cursor mode are omitted,
|
||||
// because they interfere with typed commands: <Esc>OA.
|
||||
{K_F1, IF_EB("\033[11~", ESC_STR "[11~")},
|
||||
{K_F2, IF_EB("\033[12~", ESC_STR "[12~")},
|
||||
{K_F3, IF_EB("\033[13~", ESC_STR "[13~")},
|
||||
{K_F4, IF_EB("\033[14~", ESC_STR "[14~")},
|
||||
{K_F5, IF_EB("\033[15~", ESC_STR "[15~")},
|
||||
{K_F6, IF_EB("\033[17~", ESC_STR "[17~")},
|
||||
{K_F7, IF_EB("\033[18~", ESC_STR "[18~")},
|
||||
{K_F8, IF_EB("\033[19~", ESC_STR "[19~")},
|
||||
{K_F9, IF_EB("\033[20~", ESC_STR "[20~")},
|
||||
{K_F10, IF_EB("\033[21~", ESC_STR "[21~")},
|
||||
{K_F11, IF_EB("\033[23~", ESC_STR "[23~")},
|
||||
{K_F12, IF_EB("\033[24~", ESC_STR "[24~")},
|
||||
{K_F13, IF_EB("\033[25~", ESC_STR "[25~")},
|
||||
{K_F14, IF_EB("\033[26~", ESC_STR "[26~")},
|
||||
{K_F15, IF_EB("\033[28~", ESC_STR "[28~")}, // Help
|
||||
{K_F16, IF_EB("\033[29~", ESC_STR "[29~")}, // Select
|
||||
{K_F17, IF_EB("\033[31~", ESC_STR "[31~")},
|
||||
{K_F18, IF_EB("\033[32~", ESC_STR "[32~")},
|
||||
{K_F19, IF_EB("\033[33~", ESC_STR "[33~")},
|
||||
{K_F20, IF_EB("\033[34~", ESC_STR "[34~")},
|
||||
{K_INS, IF_EB("\033[2~", ESC_STR "[2~")},
|
||||
{K_DEL, IF_EB("\033[3~", ESC_STR "[3~")},
|
||||
{K_HOME, IF_EB("\033[1~", ESC_STR "[1~")},
|
||||
{K_END, IF_EB("\033[4~", ESC_STR "[4~")},
|
||||
{K_PAGEUP, IF_EB("\033[5~", ESC_STR "[5~")},
|
||||
{K_PAGEDOWN, IF_EB("\033[6~", ESC_STR "[6~")},
|
||||
{K_F1, "\033[11~"},
|
||||
{K_F2, "\033[12~"},
|
||||
{K_F3, "\033[13~"},
|
||||
{K_F4, "\033[14~"},
|
||||
{K_F5, "\033[15~"},
|
||||
{K_F6, "\033[17~"},
|
||||
{K_F7, "\033[18~"},
|
||||
{K_F8, "\033[19~"},
|
||||
{K_F9, "\033[20~"},
|
||||
{K_F10, "\033[21~"},
|
||||
{K_F11, "\033[23~"},
|
||||
{K_F12, "\033[24~"},
|
||||
{K_F13, "\033[25~"},
|
||||
{K_F14, "\033[26~"},
|
||||
{K_F15, "\033[28~"}, // Help
|
||||
{K_F16, "\033[29~"}, // Select
|
||||
{K_F17, "\033[31~"},
|
||||
{K_F18, "\033[32~"},
|
||||
{K_F19, "\033[33~"},
|
||||
{K_F20, "\033[34~"},
|
||||
{K_INS, "\033[2~"},
|
||||
{K_DEL, "\033[3~"},
|
||||
{K_HOME, "\033[1~"},
|
||||
{K_END, "\033[4~"},
|
||||
{K_PAGEUP, "\033[5~"},
|
||||
{K_PAGEDOWN, "\033[6~"},
|
||||
// These sequences starting with <Esc> O may interfere with what the user
|
||||
// is typing. Remove these if that bothers you.
|
||||
{K_KPLUS, IF_EB("\033Ok", ESC_STR "Ok")}, // keypad plus
|
||||
{K_KMINUS, IF_EB("\033Om", ESC_STR "Om")}, // keypad minus
|
||||
{K_KDIVIDE, IF_EB("\033Oo", ESC_STR "Oo")}, // keypad /
|
||||
{K_KMULTIPLY, IF_EB("\033Oj", ESC_STR "Oj")}, // keypad *
|
||||
{K_KENTER, IF_EB("\033OM", ESC_STR "OM")}, // keypad Enter
|
||||
{K_K0, IF_EB("\033Op", ESC_STR "Op")}, // keypad 0
|
||||
{K_K1, IF_EB("\033Oq", ESC_STR "Oq")}, // keypad 1
|
||||
{K_K2, IF_EB("\033Or", ESC_STR "Or")}, // keypad 2
|
||||
{K_K3, IF_EB("\033Os", ESC_STR "Os")}, // keypad 3
|
||||
{K_K4, IF_EB("\033Ot", ESC_STR "Ot")}, // keypad 4
|
||||
{K_K5, IF_EB("\033Ou", ESC_STR "Ou")}, // keypad 5
|
||||
{K_K6, IF_EB("\033Ov", ESC_STR "Ov")}, // keypad 6
|
||||
{K_K7, IF_EB("\033Ow", ESC_STR "Ow")}, // keypad 7
|
||||
{K_K8, IF_EB("\033Ox", ESC_STR "Ox")}, // keypad 8
|
||||
{K_K9, IF_EB("\033Oy", ESC_STR "Oy")}, // keypad 9
|
||||
{K_KPLUS, "\033Ok"}, // keypad plus
|
||||
{K_KMINUS, "\033Om"}, // keypad minus
|
||||
{K_KDIVIDE, "\033Oo"}, // keypad /
|
||||
{K_KMULTIPLY, "\033Oj"}, // keypad *
|
||||
{K_KENTER, "\033OM"}, // keypad Enter
|
||||
{K_K0, "\033Op"}, // keypad 0
|
||||
{K_K1, "\033Oq"}, // keypad 1
|
||||
{K_K2, "\033Or"}, // keypad 2
|
||||
{K_K3, "\033Os"}, // keypad 3
|
||||
{K_K4, "\033Ot"}, // keypad 4
|
||||
{K_K5, "\033Ou"}, // keypad 5
|
||||
{K_K6, "\033Ov"}, // keypad 6
|
||||
{K_K7, "\033Ow"}, // keypad 7
|
||||
{K_K8, "\033Ox"}, // keypad 8
|
||||
{K_K9, "\033Oy"}, // keypad 9
|
||||
{K_BS, "\x7f"}, // for some reason 0177 doesn't work
|
||||
# endif
|
||||
|
||||
@@ -791,226 +790,220 @@ static struct builtin_term builtin_termcaps[] =
|
||||
* Ordinary vt52
|
||||
*/
|
||||
{(int)KS_NAME, "vt52"},
|
||||
{(int)KS_CE, IF_EB("\033K", ESC_STR "K")},
|
||||
{(int)KS_CD, IF_EB("\033J", ESC_STR "J")},
|
||||
{(int)KS_CE, "\033K"},
|
||||
{(int)KS_CD, "\033J"},
|
||||
# ifdef TERMINFO
|
||||
{(int)KS_CM, IF_EB("\033Y%p1%' '%+%c%p2%' '%+%c",
|
||||
ESC_STR "Y%p1%' '%+%c%p2%' '%+%c")},
|
||||
{(int)KS_CM, "\033Y%p1%' '%+%c%p2%' '%+%c"},
|
||||
# else
|
||||
{(int)KS_CM, IF_EB("\033Y%+ %+ ", ESC_STR "Y%+ %+ ")},
|
||||
{(int)KS_CM, "\033Y%+ %+ "},
|
||||
# endif
|
||||
{(int)KS_LE, "\b"},
|
||||
{(int)KS_SR, IF_EB("\033I", ESC_STR "I")},
|
||||
{(int)KS_AL, IF_EB("\033L", ESC_STR "L")},
|
||||
{(int)KS_DL, IF_EB("\033M", ESC_STR "M")},
|
||||
{K_UP, IF_EB("\033A", ESC_STR "A")},
|
||||
{K_DOWN, IF_EB("\033B", ESC_STR "B")},
|
||||
{K_LEFT, IF_EB("\033D", ESC_STR "D")},
|
||||
{K_RIGHT, IF_EB("\033C", ESC_STR "C")},
|
||||
{K_F1, IF_EB("\033P", ESC_STR "P")},
|
||||
{K_F2, IF_EB("\033Q", ESC_STR "Q")},
|
||||
{K_F3, IF_EB("\033R", ESC_STR "R")},
|
||||
{(int)KS_CL, IF_EB("\033H\033J", ESC_STR "H" ESC_STR_nc "J")},
|
||||
{(int)KS_SR, "\033I"},
|
||||
{(int)KS_AL, "\033L"},
|
||||
{(int)KS_DL, "\033M"},
|
||||
{K_UP, "\033A"},
|
||||
{K_DOWN, "\033B"},
|
||||
{K_LEFT, "\033D"},
|
||||
{K_RIGHT, "\033C"},
|
||||
{K_F1, "\033P"},
|
||||
{K_F2, "\033Q"},
|
||||
{K_F3, "\033R"},
|
||||
{(int)KS_CL, "\033H\033J"},
|
||||
{(int)KS_MS, "y"},
|
||||
# endif
|
||||
|
||||
# if defined(UNIX) || defined(ALL_BUILTIN_TCAPS) || defined(SOME_BUILTIN_TCAPS)
|
||||
{(int)KS_NAME, "xterm"},
|
||||
{(int)KS_CE, IF_EB("\033[K", ESC_STR "[K")},
|
||||
{(int)KS_AL, IF_EB("\033[L", ESC_STR "[L")},
|
||||
{(int)KS_CE, "\033[K"},
|
||||
{(int)KS_AL, "\033[L"},
|
||||
# ifdef TERMINFO
|
||||
{(int)KS_CAL, IF_EB("\033[%p1%dL", ESC_STR "[%p1%dL")},
|
||||
{(int)KS_CAL, "\033[%p1%dL"},
|
||||
# else
|
||||
{(int)KS_CAL, IF_EB("\033[%dL", ESC_STR "[%dL")},
|
||||
{(int)KS_CAL, "\033[%dL"},
|
||||
# endif
|
||||
{(int)KS_DL, IF_EB("\033[M", ESC_STR "[M")},
|
||||
{(int)KS_DL, "\033[M"},
|
||||
# ifdef TERMINFO
|
||||
{(int)KS_CDL, IF_EB("\033[%p1%dM", ESC_STR "[%p1%dM")},
|
||||
{(int)KS_CDL, "\033[%p1%dM"},
|
||||
# else
|
||||
{(int)KS_CDL, IF_EB("\033[%dM", ESC_STR "[%dM")},
|
||||
{(int)KS_CDL, "\033[%dM"},
|
||||
# endif
|
||||
# ifdef TERMINFO
|
||||
{(int)KS_CS, IF_EB("\033[%i%p1%d;%p2%dr",
|
||||
ESC_STR "[%i%p1%d;%p2%dr")},
|
||||
{(int)KS_CS, "\033[%i%p1%d;%p2%dr"},
|
||||
# else
|
||||
{(int)KS_CS, IF_EB("\033[%i%d;%dr", ESC_STR "[%i%d;%dr")},
|
||||
{(int)KS_CS, "\033[%i%d;%dr"},
|
||||
# endif
|
||||
{(int)KS_CL, IF_EB("\033[H\033[2J", ESC_STR "[H" ESC_STR_nc "[2J")},
|
||||
{(int)KS_CD, IF_EB("\033[J", ESC_STR "[J")},
|
||||
{(int)KS_ME, IF_EB("\033[m", ESC_STR "[m")},
|
||||
{(int)KS_MR, IF_EB("\033[7m", ESC_STR "[7m")},
|
||||
{(int)KS_MD, IF_EB("\033[1m", ESC_STR "[1m")},
|
||||
{(int)KS_UE, IF_EB("\033[m", ESC_STR "[m")},
|
||||
{(int)KS_US, IF_EB("\033[4m", ESC_STR "[4m")},
|
||||
{(int)KS_STE, IF_EB("\033[29m", ESC_STR "[29m")},
|
||||
{(int)KS_STS, IF_EB("\033[9m", ESC_STR "[9m")},
|
||||
{(int)KS_CL, "\033[H\033[2J"},
|
||||
{(int)KS_CD, "\033[J"},
|
||||
{(int)KS_ME, "\033[m"},
|
||||
{(int)KS_MR, "\033[7m"},
|
||||
{(int)KS_MD, "\033[1m"},
|
||||
{(int)KS_UE, "\033[m"},
|
||||
{(int)KS_US, "\033[4m"},
|
||||
{(int)KS_STE, "\033[29m"},
|
||||
{(int)KS_STS, "\033[9m"},
|
||||
{(int)KS_MS, "y"},
|
||||
{(int)KS_UT, "y"},
|
||||
{(int)KS_LE, "\b"},
|
||||
{(int)KS_VI, IF_EB("\033[?25l", ESC_STR "[?25l")},
|
||||
{(int)KS_VE, IF_EB("\033[?25h", ESC_STR "[?25h")},
|
||||
{(int)KS_VS, IF_EB("\033[?12h", ESC_STR "[?12h")},
|
||||
{(int)KS_CVS, IF_EB("\033[?12l", ESC_STR "[?12l")},
|
||||
{(int)KS_VI, "\033[?25l"},
|
||||
{(int)KS_VE, "\033[?25h"},
|
||||
{(int)KS_VS, "\033[?12h"},
|
||||
{(int)KS_CVS, "\033[?12l"},
|
||||
# ifdef TERMINFO
|
||||
{(int)KS_CSH, IF_EB("\033[%p1%d q", ESC_STR "[%p1%d q")},
|
||||
{(int)KS_CSH, "\033[%p1%d q"},
|
||||
# else
|
||||
{(int)KS_CSH, IF_EB("\033[%d q", ESC_STR "[%d q")},
|
||||
{(int)KS_CSH, "\033[%d q"},
|
||||
# endif
|
||||
{(int)KS_CRC, IF_EB("\033[?12$p", ESC_STR "[?12$p")},
|
||||
{(int)KS_CRS, IF_EB("\033P$q q\033\\", ESC_STR "P$q q" ESC_STR "\\")},
|
||||
{(int)KS_CRC, "\033[?12$p"},
|
||||
{(int)KS_CRS, "\033P$q q\033\\"},
|
||||
# ifdef TERMINFO
|
||||
{(int)KS_CM, IF_EB("\033[%i%p1%d;%p2%dH",
|
||||
ESC_STR "[%i%p1%d;%p2%dH")},
|
||||
{(int)KS_CM, "\033[%i%p1%d;%p2%dH"},
|
||||
# else
|
||||
{(int)KS_CM, IF_EB("\033[%i%d;%dH", ESC_STR "[%i%d;%dH")},
|
||||
{(int)KS_CM, "\033[%i%d;%dH"},
|
||||
# endif
|
||||
{(int)KS_SR, IF_EB("\033M", ESC_STR "M")},
|
||||
{(int)KS_SR, "\033M"},
|
||||
# ifdef TERMINFO
|
||||
{(int)KS_CRI, IF_EB("\033[%p1%dC", ESC_STR "[%p1%dC")},
|
||||
{(int)KS_CRI, "\033[%p1%dC"},
|
||||
# else
|
||||
{(int)KS_CRI, IF_EB("\033[%dC", ESC_STR "[%dC")},
|
||||
{(int)KS_CRI, "\033[%dC"},
|
||||
# endif
|
||||
{(int)KS_KS, IF_EB("\033[?1h\033=", ESC_STR "[?1h" ESC_STR_nc "=")},
|
||||
{(int)KS_KE, IF_EB("\033[?1l\033>", ESC_STR "[?1l" ESC_STR_nc ">")},
|
||||
{(int)KS_KS, "\033[?1h\033="},
|
||||
{(int)KS_KE, "\033[?1l\033>"},
|
||||
# ifdef FEAT_XTERM_SAVE
|
||||
{(int)KS_TI, IF_EB("\0337\033[?47h", ESC_STR "7" ESC_STR_nc "[?47h")},
|
||||
{(int)KS_TE, IF_EB("\033[?47l\0338",
|
||||
ESC_STR_nc "[?47l" ESC_STR_nc "8")},
|
||||
{(int)KS_TI, "\0337\033[?47h"},
|
||||
{(int)KS_TE, "\033[?47l\0338"},
|
||||
# endif
|
||||
{(int)KS_CTI, IF_EB("\033[>4;2m", ESC_STR_nc "[>4;2m")},
|
||||
{(int)KS_CTE, IF_EB("\033[>4;m", ESC_STR_nc "[>4;m")},
|
||||
{(int)KS_CIS, IF_EB("\033]1;", ESC_STR "]1;")},
|
||||
{(int)KS_CTI, "\033[>4;2m"},
|
||||
{(int)KS_CTE, "\033[>4;m"},
|
||||
{(int)KS_CIS, "\033]1;"},
|
||||
{(int)KS_CIE, "\007"},
|
||||
{(int)KS_TS, IF_EB("\033]2;", ESC_STR "]2;")},
|
||||
{(int)KS_TS, "\033]2;"},
|
||||
{(int)KS_FS, "\007"},
|
||||
{(int)KS_CSC, IF_EB("\033]12;", ESC_STR "]12;")},
|
||||
{(int)KS_CSC, "\033]12;"},
|
||||
{(int)KS_CEC, "\007"},
|
||||
# ifdef TERMINFO
|
||||
{(int)KS_CWS, IF_EB("\033[8;%p1%d;%p2%dt",
|
||||
ESC_STR "[8;%p1%d;%p2%dt")},
|
||||
{(int)KS_CWP, IF_EB("\033[3;%p1%d;%p2%dt",
|
||||
ESC_STR "[3;%p1%d;%p2%dt")},
|
||||
{(int)KS_CGP, IF_EB("\033[13t", ESC_STR "[13t")},
|
||||
{(int)KS_CWS, "\033[8;%p1%d;%p2%dt"},
|
||||
{(int)KS_CWP, "\033[3;%p1%d;%p2%dt"},
|
||||
{(int)KS_CGP, "\033[13t"},
|
||||
# else
|
||||
{(int)KS_CWS, IF_EB("\033[8;%d;%dt", ESC_STR "[8;%d;%dt")},
|
||||
{(int)KS_CWP, IF_EB("\033[3;%d;%dt", ESC_STR "[3;%d;%dt")},
|
||||
{(int)KS_CGP, IF_EB("\033[13t", ESC_STR "[13t")},
|
||||
{(int)KS_CWS, "\033[8;%d;%dt"},
|
||||
{(int)KS_CWP, "\033[3;%d;%dt"},
|
||||
{(int)KS_CGP, "\033[13t"},
|
||||
# endif
|
||||
{(int)KS_CRV, IF_EB("\033[>c", ESC_STR "[>c")},
|
||||
{(int)KS_RFG, IF_EB("\033]10;?\007", ESC_STR "]10;?\007")},
|
||||
{(int)KS_RBG, IF_EB("\033]11;?\007", ESC_STR "]11;?\007")},
|
||||
{(int)KS_U7, IF_EB("\033[6n", ESC_STR "[6n")},
|
||||
{(int)KS_CRV, "\033[>c"},
|
||||
{(int)KS_RFG, "\033]10;?\007"},
|
||||
{(int)KS_RBG, "\033]11;?\007"},
|
||||
{(int)KS_U7, "\033[6n"},
|
||||
# ifdef FEAT_TERMGUICOLORS
|
||||
// These are printf strings, not terminal codes.
|
||||
{(int)KS_8F, IF_EB("\033[38;2;%lu;%lu;%lum", ESC_STR "[38;2;%lu;%lu;%lum")},
|
||||
{(int)KS_8B, IF_EB("\033[48;2;%lu;%lu;%lum", ESC_STR "[48;2;%lu;%lu;%lum")},
|
||||
{(int)KS_8U, IF_EB("\033[58;2;%lu;%lu;%lum", ESC_STR "[58;2;%lu;%lu;%lum")},
|
||||
{(int)KS_8F, "\033[38;2;%lu;%lu;%lum"},
|
||||
{(int)KS_8B, "\033[48;2;%lu;%lu;%lum"},
|
||||
{(int)KS_8U, "\033[58;2;%lu;%lu;%lum"},
|
||||
# endif
|
||||
{(int)KS_CAU, IF_EB("\033[58;5;%dm", ESC_STR "[58;5;%dm")},
|
||||
{(int)KS_CBE, IF_EB("\033[?2004h", ESC_STR "[?2004h")},
|
||||
{(int)KS_CBD, IF_EB("\033[?2004l", ESC_STR "[?2004l")},
|
||||
{(int)KS_CST, IF_EB("\033[22;2t", ESC_STR "[22;2t")},
|
||||
{(int)KS_CRT, IF_EB("\033[23;2t", ESC_STR "[23;2t")},
|
||||
{(int)KS_SSI, IF_EB("\033[22;1t", ESC_STR "[22;1t")},
|
||||
{(int)KS_SRI, IF_EB("\033[23;1t", ESC_STR "[23;1t")},
|
||||
{(int)KS_CAU, "\033[58;5;%dm"},
|
||||
{(int)KS_CBE, "\033[?2004h"},
|
||||
{(int)KS_CBD, "\033[?2004l"},
|
||||
{(int)KS_CST, "\033[22;2t"},
|
||||
{(int)KS_CRT, "\033[23;2t"},
|
||||
{(int)KS_SSI, "\033[22;1t"},
|
||||
{(int)KS_SRI, "\033[23;1t"},
|
||||
# if (defined(UNIX) || defined(VMS))
|
||||
{(int)KS_FD, IF_EB("\033[?1004l", ESC_STR "[?1004l")},
|
||||
{(int)KS_FE, IF_EB("\033[?1004h", ESC_STR "[?1004h")},
|
||||
{(int)KS_FD, "\033[?1004l"},
|
||||
{(int)KS_FE, "\033[?1004h"},
|
||||
# endif
|
||||
|
||||
{K_UP, IF_EB("\033O*A", ESC_STR "O*A")},
|
||||
{K_DOWN, IF_EB("\033O*B", ESC_STR "O*B")},
|
||||
{K_RIGHT, IF_EB("\033O*C", ESC_STR "O*C")},
|
||||
{K_LEFT, IF_EB("\033O*D", ESC_STR "O*D")},
|
||||
{K_UP, "\033O*A"},
|
||||
{K_DOWN, "\033O*B"},
|
||||
{K_RIGHT, "\033O*C"},
|
||||
{K_LEFT, "\033O*D"},
|
||||
// An extra set of cursor keys for vt100 mode
|
||||
{K_XUP, IF_EB("\033[@;*A", ESC_STR "[@;*A")},
|
||||
{K_XDOWN, IF_EB("\033[@;*B", ESC_STR "[@;*B")},
|
||||
{K_XRIGHT, IF_EB("\033[@;*C", ESC_STR "[@;*C")},
|
||||
{K_XLEFT, IF_EB("\033[@;*D", ESC_STR "[@;*D")},
|
||||
{K_XUP, "\033[@;*A"},
|
||||
{K_XDOWN, "\033[@;*B"},
|
||||
{K_XRIGHT, "\033[@;*C"},
|
||||
{K_XLEFT, "\033[@;*D"},
|
||||
// An extra set of function keys for vt100 mode
|
||||
{K_XF1, IF_EB("\033O*P", ESC_STR "O*P")},
|
||||
{K_XF2, IF_EB("\033O*Q", ESC_STR "O*Q")},
|
||||
{K_XF3, IF_EB("\033O*R", ESC_STR "O*R")},
|
||||
{K_XF4, IF_EB("\033O*S", ESC_STR "O*S")},
|
||||
{K_F1, IF_EB("\033[11;*~", ESC_STR "[11;*~")},
|
||||
{K_F2, IF_EB("\033[12;*~", ESC_STR "[12;*~")},
|
||||
{K_F3, IF_EB("\033[13;*~", ESC_STR "[13;*~")},
|
||||
{K_F4, IF_EB("\033[14;*~", ESC_STR "[14;*~")},
|
||||
{K_F5, IF_EB("\033[15;*~", ESC_STR "[15;*~")},
|
||||
{K_F6, IF_EB("\033[17;*~", ESC_STR "[17;*~")},
|
||||
{K_F7, IF_EB("\033[18;*~", ESC_STR "[18;*~")},
|
||||
{K_F8, IF_EB("\033[19;*~", ESC_STR "[19;*~")},
|
||||
{K_F9, IF_EB("\033[20;*~", ESC_STR "[20;*~")},
|
||||
{K_F10, IF_EB("\033[21;*~", ESC_STR "[21;*~")},
|
||||
{K_F11, IF_EB("\033[23;*~", ESC_STR "[23;*~")},
|
||||
{K_F12, IF_EB("\033[24;*~", ESC_STR "[24;*~")},
|
||||
{K_S_TAB, IF_EB("\033[Z", ESC_STR "[Z")},
|
||||
{K_HELP, IF_EB("\033[28;*~", ESC_STR "[28;*~")},
|
||||
{K_UNDO, IF_EB("\033[26;*~", ESC_STR "[26;*~")},
|
||||
{K_INS, IF_EB("\033[2;*~", ESC_STR "[2;*~")},
|
||||
{K_HOME, IF_EB("\033[1;*H", ESC_STR "[1;*H")},
|
||||
// {K_S_HOME, IF_EB("\033O2H", ESC_STR "O2H")},
|
||||
// {K_C_HOME, IF_EB("\033O5H", ESC_STR "O5H")},
|
||||
{K_KHOME, IF_EB("\033[1;*~", ESC_STR "[1;*~")},
|
||||
{K_XHOME, IF_EB("\033O*H", ESC_STR "O*H")}, // other Home
|
||||
{K_ZHOME, IF_EB("\033[7;*~", ESC_STR "[7;*~")}, // other Home
|
||||
{K_END, IF_EB("\033[1;*F", ESC_STR "[1;*F")},
|
||||
// {K_S_END, IF_EB("\033O2F", ESC_STR "O2F")},
|
||||
// {K_C_END, IF_EB("\033O5F", ESC_STR "O5F")},
|
||||
{K_KEND, IF_EB("\033[4;*~", ESC_STR "[4;*~")},
|
||||
{K_XEND, IF_EB("\033O*F", ESC_STR "O*F")}, // other End
|
||||
{K_ZEND, IF_EB("\033[8;*~", ESC_STR "[8;*~")},
|
||||
{K_PAGEUP, IF_EB("\033[5;*~", ESC_STR "[5;*~")},
|
||||
{K_PAGEDOWN, IF_EB("\033[6;*~", ESC_STR "[6;*~")},
|
||||
{K_KPLUS, IF_EB("\033O*k", ESC_STR "O*k")}, // keypad plus
|
||||
{K_KMINUS, IF_EB("\033O*m", ESC_STR "O*m")}, // keypad minus
|
||||
{K_KDIVIDE, IF_EB("\033O*o", ESC_STR "O*o")}, // keypad /
|
||||
{K_KMULTIPLY, IF_EB("\033O*j", ESC_STR "O*j")}, // keypad *
|
||||
{K_KENTER, IF_EB("\033O*M", ESC_STR "O*M")}, // keypad Enter
|
||||
{K_KPOINT, IF_EB("\033O*n", ESC_STR "O*n")}, // keypad .
|
||||
{K_K0, IF_EB("\033O*p", ESC_STR "O*p")}, // keypad 0
|
||||
{K_K1, IF_EB("\033O*q", ESC_STR "O*q")}, // keypad 1
|
||||
{K_K2, IF_EB("\033O*r", ESC_STR "O*r")}, // keypad 2
|
||||
{K_K3, IF_EB("\033O*s", ESC_STR "O*s")}, // keypad 3
|
||||
{K_K4, IF_EB("\033O*t", ESC_STR "O*t")}, // keypad 4
|
||||
{K_K5, IF_EB("\033O*u", ESC_STR "O*u")}, // keypad 5
|
||||
{K_K6, IF_EB("\033O*v", ESC_STR "O*v")}, // keypad 6
|
||||
{K_K7, IF_EB("\033O*w", ESC_STR "O*w")}, // keypad 7
|
||||
{K_K8, IF_EB("\033O*x", ESC_STR "O*x")}, // keypad 8
|
||||
{K_K9, IF_EB("\033O*y", ESC_STR "O*y")}, // keypad 9
|
||||
{K_KDEL, IF_EB("\033[3;*~", ESC_STR "[3;*~")}, // keypad Del
|
||||
{K_PS, IF_EB("\033[200~", ESC_STR "[200~")}, // paste start
|
||||
{K_PE, IF_EB("\033[201~", ESC_STR "[201~")}, // paste end
|
||||
{K_XF1, "\033O*P"},
|
||||
{K_XF2, "\033O*Q"},
|
||||
{K_XF3, "\033O*R"},
|
||||
{K_XF4, "\033O*S"},
|
||||
{K_F1, "\033[11;*~"},
|
||||
{K_F2, "\033[12;*~"},
|
||||
{K_F3, "\033[13;*~"},
|
||||
{K_F4, "\033[14;*~"},
|
||||
{K_F5, "\033[15;*~"},
|
||||
{K_F6, "\033[17;*~"},
|
||||
{K_F7, "\033[18;*~"},
|
||||
{K_F8, "\033[19;*~"},
|
||||
{K_F9, "\033[20;*~"},
|
||||
{K_F10, "\033[21;*~"},
|
||||
{K_F11, "\033[23;*~"},
|
||||
{K_F12, "\033[24;*~"},
|
||||
{K_S_TAB, "\033[Z"},
|
||||
{K_HELP, "\033[28;*~"},
|
||||
{K_UNDO, "\033[26;*~"},
|
||||
{K_INS, "\033[2;*~"},
|
||||
{K_HOME, "\033[1;*H"},
|
||||
// {K_S_HOME, "\033O2H"},
|
||||
// {K_C_HOME, "\033O5H"},
|
||||
{K_KHOME, "\033[1;*~"},
|
||||
{K_XHOME, "\033O*H"}, // other Home
|
||||
{K_ZHOME, "\033[7;*~"}, // other Home
|
||||
{K_END, "\033[1;*F"},
|
||||
// {K_S_END, "\033O2F"},
|
||||
// {K_C_END, "\033O5F"},
|
||||
{K_KEND, "\033[4;*~"},
|
||||
{K_XEND, "\033O*F"}, // other End
|
||||
{K_ZEND, "\033[8;*~"},
|
||||
{K_PAGEUP, "\033[5;*~"},
|
||||
{K_PAGEDOWN, "\033[6;*~"},
|
||||
{K_KPLUS, "\033O*k"}, // keypad plus
|
||||
{K_KMINUS, "\033O*m"}, // keypad minus
|
||||
{K_KDIVIDE, "\033O*o"}, // keypad /
|
||||
{K_KMULTIPLY, "\033O*j"}, // keypad *
|
||||
{K_KENTER, "\033O*M"}, // keypad Enter
|
||||
{K_KPOINT, "\033O*n"}, // keypad .
|
||||
{K_K0, "\033O*p"}, // keypad 0
|
||||
{K_K1, "\033O*q"}, // keypad 1
|
||||
{K_K2, "\033O*r"}, // keypad 2
|
||||
{K_K3, "\033O*s"}, // keypad 3
|
||||
{K_K4, "\033O*t"}, // keypad 4
|
||||
{K_K5, "\033O*u"}, // keypad 5
|
||||
{K_K6, "\033O*v"}, // keypad 6
|
||||
{K_K7, "\033O*w"}, // keypad 7
|
||||
{K_K8, "\033O*x"}, // keypad 8
|
||||
{K_K9, "\033O*y"}, // keypad 9
|
||||
{K_KDEL, "\033[3;*~"}, // keypad Del
|
||||
{K_PS, "\033[200~"}, // paste start
|
||||
{K_PE, "\033[201~"}, // paste end
|
||||
|
||||
{BT_EXTRA_KEYS, ""},
|
||||
{TERMCAP2KEY('k', '0'), IF_EB("\033[10;*~", ESC_STR "[10;*~")}, // F0
|
||||
{TERMCAP2KEY('F', '3'), IF_EB("\033[25;*~", ESC_STR "[25;*~")}, // F13
|
||||
{TERMCAP2KEY('k', '0'), "\033[10;*~"}, // F0
|
||||
{TERMCAP2KEY('F', '3'), "\033[25;*~"}, // F13
|
||||
// F14 and F15 are missing, because they send the same codes as the undo
|
||||
// and help key, although they don't work on all keyboards.
|
||||
{TERMCAP2KEY('F', '6'), IF_EB("\033[29;*~", ESC_STR "[29;*~")}, // F16
|
||||
{TERMCAP2KEY('F', '7'), IF_EB("\033[31;*~", ESC_STR "[31;*~")}, // F17
|
||||
{TERMCAP2KEY('F', '8'), IF_EB("\033[32;*~", ESC_STR "[32;*~")}, // F18
|
||||
{TERMCAP2KEY('F', '9'), IF_EB("\033[33;*~", ESC_STR "[33;*~")}, // F19
|
||||
{TERMCAP2KEY('F', 'A'), IF_EB("\033[34;*~", ESC_STR "[34;*~")}, // F20
|
||||
{TERMCAP2KEY('F', '6'), "\033[29;*~"}, // F16
|
||||
{TERMCAP2KEY('F', '7'), "\033[31;*~"}, // F17
|
||||
{TERMCAP2KEY('F', '8'), "\033[32;*~"}, // F18
|
||||
{TERMCAP2KEY('F', '9'), "\033[33;*~"}, // F19
|
||||
{TERMCAP2KEY('F', 'A'), "\033[34;*~"}, // F20
|
||||
|
||||
{TERMCAP2KEY('F', 'B'), IF_EB("\033[42;*~", ESC_STR "[42;*~")}, // F21
|
||||
{TERMCAP2KEY('F', 'C'), IF_EB("\033[43;*~", ESC_STR "[43;*~")}, // F22
|
||||
{TERMCAP2KEY('F', 'D'), IF_EB("\033[44;*~", ESC_STR "[44;*~")}, // F23
|
||||
{TERMCAP2KEY('F', 'E'), IF_EB("\033[45;*~", ESC_STR "[45;*~")}, // F24
|
||||
{TERMCAP2KEY('F', 'F'), IF_EB("\033[46;*~", ESC_STR "[46;*~")}, // F25
|
||||
{TERMCAP2KEY('F', 'G'), IF_EB("\033[47;*~", ESC_STR "[47;*~")}, // F26
|
||||
{TERMCAP2KEY('F', 'H'), IF_EB("\033[48;*~", ESC_STR "[48;*~")}, // F27
|
||||
{TERMCAP2KEY('F', 'I'), IF_EB("\033[49;*~", ESC_STR "[49;*~")}, // F28
|
||||
{TERMCAP2KEY('F', 'J'), IF_EB("\033[50;*~", ESC_STR "[50;*~")}, // F29
|
||||
{TERMCAP2KEY('F', 'K'), IF_EB("\033[51;*~", ESC_STR "[51;*~")}, // F30
|
||||
{TERMCAP2KEY('F', 'B'), "\033[42;*~"}, // F21
|
||||
{TERMCAP2KEY('F', 'C'), "\033[43;*~"}, // F22
|
||||
{TERMCAP2KEY('F', 'D'), "\033[44;*~"}, // F23
|
||||
{TERMCAP2KEY('F', 'E'), "\033[45;*~"}, // F24
|
||||
{TERMCAP2KEY('F', 'F'), "\033[46;*~"}, // F25
|
||||
{TERMCAP2KEY('F', 'G'), "\033[47;*~"}, // F26
|
||||
{TERMCAP2KEY('F', 'H'), "\033[48;*~"}, // F27
|
||||
{TERMCAP2KEY('F', 'I'), "\033[49;*~"}, // F28
|
||||
{TERMCAP2KEY('F', 'J'), "\033[50;*~"}, // F29
|
||||
{TERMCAP2KEY('F', 'K'), "\033[51;*~"}, // F30
|
||||
|
||||
{TERMCAP2KEY('F', 'L'), IF_EB("\033[52;*~", ESC_STR "[52;*~")}, // F31
|
||||
{TERMCAP2KEY('F', 'M'), IF_EB("\033[53;*~", ESC_STR "[53;*~")}, // F32
|
||||
{TERMCAP2KEY('F', 'N'), IF_EB("\033[54;*~", ESC_STR "[54;*~")}, // F33
|
||||
{TERMCAP2KEY('F', 'O'), IF_EB("\033[55;*~", ESC_STR "[55;*~")}, // F34
|
||||
{TERMCAP2KEY('F', 'P'), IF_EB("\033[56;*~", ESC_STR "[56;*~")}, // F35
|
||||
{TERMCAP2KEY('F', 'Q'), IF_EB("\033[57;*~", ESC_STR "[57;*~")}, // F36
|
||||
{TERMCAP2KEY('F', 'R'), IF_EB("\033[58;*~", ESC_STR "[58;*~")}, // F37
|
||||
{TERMCAP2KEY('F', 'L'), "\033[52;*~"}, // F31
|
||||
{TERMCAP2KEY('F', 'M'), "\033[53;*~"}, // F32
|
||||
{TERMCAP2KEY('F', 'N'), "\033[54;*~"}, // F33
|
||||
{TERMCAP2KEY('F', 'O'), "\033[55;*~"}, // F34
|
||||
{TERMCAP2KEY('F', 'P'), "\033[56;*~"}, // F35
|
||||
{TERMCAP2KEY('F', 'Q'), "\033[57;*~"}, // F36
|
||||
{TERMCAP2KEY('F', 'R'), "\033[58;*~"}, // F37
|
||||
# endif
|
||||
|
||||
# if defined(UNIX) || defined(ALL_BUILTIN_TCAPS)
|
||||
@@ -1323,10 +1316,9 @@ static struct builtin_term builtin_termcaps[] =
|
||||
{(int)KS_NAME, "dumb"},
|
||||
{(int)KS_CL, "\014"},
|
||||
#ifdef TERMINFO
|
||||
{(int)KS_CM, IF_EB("\033[%i%p1%d;%p2%dH",
|
||||
ESC_STR "[%i%p1%d;%p2%dH")},
|
||||
{(int)KS_CM, "\033[%i%p1%d;%p2%dH"},
|
||||
#else
|
||||
{(int)KS_CM, IF_EB("\033[%i%d;%dH", ESC_STR "[%i%d;%dH")},
|
||||
{(int)KS_CM, "\033[%i%d;%dH"},
|
||||
#endif
|
||||
|
||||
/*
|
||||
@@ -2976,9 +2968,9 @@ term_color(char_u *s, int n)
|
||||
#endif
|
||||
char *lead = i == 2 ? (
|
||||
#if defined(FEAT_VTP) && defined(FEAT_TERMGUICOLORS)
|
||||
s[1] == '|' ? IF_EB("\033|", ESC_STR "|") :
|
||||
s[1] == '|' ? "\033|" :
|
||||
#endif
|
||||
IF_EB("\033[", ESC_STR "[")) : "\233";
|
||||
"\033[") : "\233";
|
||||
char *tail = s[i] == '3' ? (n >= 16 ? "38;5;" : "9")
|
||||
: (n >= 16 ? "48;5;" : "10");
|
||||
|
||||
@@ -6529,11 +6521,9 @@ update_tcap(int attr)
|
||||
struct builtin_term *p;
|
||||
|
||||
p = find_builtin_term(DEFAULT_TERM);
|
||||
sprintf(ksme_str, IF_EB("\033|%dm", ESC_STR "|%dm"), attr);
|
||||
sprintf(ksmd_str, IF_EB("\033|%dm", ESC_STR "|%dm"),
|
||||
attr | 0x08); // FOREGROUND_INTENSITY
|
||||
sprintf(ksmr_str, IF_EB("\033|%dm", ESC_STR "|%dm"),
|
||||
((attr & 0x0F) << 4) | ((attr & 0xF0) >> 4));
|
||||
sprintf(ksme_str, "\033|%dm", attr);
|
||||
sprintf(ksmd_str, "\033|%dm", attr | 0x08); // FOREGROUND_INTENSITY
|
||||
sprintf(ksmr_str, "\033|%dm", ((attr & 0x0F) << 4) | ((attr & 0xF0) >> 4));
|
||||
|
||||
while (p->bt_string != NULL)
|
||||
{
|
||||
|
||||
@@ -1073,8 +1073,6 @@ func Test_edit_DROP()
|
||||
endfunc
|
||||
|
||||
func Test_edit_CTRL_V()
|
||||
CheckNotFeature ebcdic
|
||||
|
||||
new
|
||||
call setline(1, ['abc'])
|
||||
call cursor(2, 1)
|
||||
@@ -1634,11 +1632,7 @@ endfunc
|
||||
func Test_edit_special_chars()
|
||||
new
|
||||
|
||||
if has("ebcdic")
|
||||
let t = "o\<C-V>193\<C-V>xc2\<C-V>o303 \<C-V>90a\<C-V>xfg\<C-V>o578\<Esc>"
|
||||
else
|
||||
let t = "o\<C-V>65\<C-V>x42\<C-V>o103 \<C-V>33a\<C-V>xfg\<C-V>o78\<Esc>"
|
||||
endif
|
||||
let t = "o\<C-V>65\<C-V>x42\<C-V>o103 \<C-V>33a\<C-V>xfg\<C-V>o78\<Esc>"
|
||||
|
||||
exe "normal " . t
|
||||
call assert_equal("ABC !a\<C-O>g\<C-G>8", getline(2))
|
||||
|
||||
@@ -6,11 +6,7 @@ func Test_exec_while_if()
|
||||
let i = 0
|
||||
while i < 12
|
||||
let i = i + 1
|
||||
if has("ebcdic")
|
||||
execute "normal o" . i . "\047"
|
||||
else
|
||||
execute "normal o" . i . "\033"
|
||||
endif
|
||||
execute "normal o" . i . "\033"
|
||||
if i % 2
|
||||
normal Ax
|
||||
if i == 9
|
||||
@@ -21,21 +17,13 @@ func Test_exec_while_if()
|
||||
else
|
||||
let j = 9
|
||||
while j > 0
|
||||
if has("ebcdic")
|
||||
execute "normal" j . "a" . j . "\x27"
|
||||
else
|
||||
execute "normal" j . "a" . j . "\x1b"
|
||||
endif
|
||||
execute "normal" j . "a" . j . "\x1b"
|
||||
let j = j - 1
|
||||
endwhile
|
||||
endif
|
||||
endif
|
||||
if i == 9
|
||||
if has("ebcdic")
|
||||
execute "normal Az\047"
|
||||
else
|
||||
execute "normal Az\033"
|
||||
endif
|
||||
execute "normal Az\033"
|
||||
endif
|
||||
endwhile
|
||||
unlet i j
|
||||
|
||||
@@ -245,11 +245,7 @@ func Test_printf_misc()
|
||||
call assert_equal('65535', printf('%ld', 0xFFFF))
|
||||
call assert_equal('131071', printf('%ld', 0x1FFFF))
|
||||
|
||||
if has('ebcdic')
|
||||
call assert_equal('#', printf('%c', 123))
|
||||
else
|
||||
call assert_equal('{', printf('%c', 123))
|
||||
endif
|
||||
call assert_equal('{', printf('%c', 123))
|
||||
call assert_equal('abc', printf('%s', 'abc'))
|
||||
call assert_equal('abc', printf('%S', 'abc'))
|
||||
|
||||
|
||||
@@ -183,6 +183,7 @@ let s:filename_checks = {
|
||||
\ 'fgl': ['file.4gl', 'file.4gh', 'file.m4gl'],
|
||||
\ 'fish': ['file.fish'],
|
||||
\ 'focexec': ['file.fex', 'file.focexec'],
|
||||
\ 'form': ['file.frm'],
|
||||
\ 'forth': ['file.ft', 'file.fth'],
|
||||
\ 'fortran': ['file.f', 'file.for', 'file.fortran', 'file.fpp', 'file.ftn', 'file.f77', 'file.f90', 'file.f95', 'file.f03', 'file.f08'],
|
||||
\ 'fpcmake': ['file.fpc'],
|
||||
@@ -1278,4 +1279,31 @@ func Test_bas_file()
|
||||
filetype off
|
||||
endfunc
|
||||
|
||||
func Test_frm_file()
|
||||
filetype on
|
||||
|
||||
call writefile(['looks like FORM'], 'Xfile.frm')
|
||||
split Xfile.frm
|
||||
call assert_equal('form', &filetype)
|
||||
bwipe!
|
||||
|
||||
" Test dist#ft#FTfrm()
|
||||
|
||||
let g:filetype_frm = 'form'
|
||||
split Xfile.frm
|
||||
call assert_equal('form', &filetype)
|
||||
bwipe!
|
||||
unlet g:filetype_frm
|
||||
|
||||
" Visual Basic
|
||||
|
||||
call writefile(['Begin VB.Form Form1'], 'Xfile.frm')
|
||||
split Xfile.frm
|
||||
call assert_equal('vb', &filetype)
|
||||
bwipe!
|
||||
|
||||
call delete('Xfile.frm')
|
||||
filetype off
|
||||
endfunc
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
||||
+2
-10
@@ -19,11 +19,7 @@ func Test_gf_url()
|
||||
call search("^second")
|
||||
call search("URL")
|
||||
call assert_equal("URL://machine.name/tmp/vimtest2b", expand("<cfile>"))
|
||||
if has("ebcdic")
|
||||
set isf=@,240-249,/,.,-,_,+,,,$,:,~,\
|
||||
else
|
||||
set isf=@,48-57,/,.,-,_,+,,,$,~,\
|
||||
endif
|
||||
set isf=@,48-57,/,.,-,_,+,,,$,~,\
|
||||
call search("^third")
|
||||
call search("name")
|
||||
call assert_equal("URL:\\\\machine.name\\vimtest2c", expand("<cfile>"))
|
||||
@@ -90,11 +86,7 @@ endfunc
|
||||
|
||||
" Test for invoking 'gf' on a ${VAR} variable
|
||||
func Test_gf()
|
||||
if has("ebcdic")
|
||||
set isfname=@,240-249,/,.,-,_,+,,,$,:,~,{,}
|
||||
else
|
||||
set isfname=@,48-57,/,.,-,_,+,,,$,:,~,{,}
|
||||
endif
|
||||
set isfname=@,48-57,/,.,-,_,+,,,$,:,~,{,}
|
||||
|
||||
call writefile(["Test for gf command"], "Xtest1")
|
||||
if has("unix")
|
||||
|
||||
@@ -719,13 +719,15 @@ func Test_scrollbars()
|
||||
set guioptions+=rlb
|
||||
|
||||
" scroll to move line 11 at top, moves the cursor there
|
||||
eval 10->test_scrollbar('left', 0)
|
||||
let args = #{which: 'left', value: 10, dragging: 0}
|
||||
call test_gui_event('scrollbar', args)
|
||||
redraw
|
||||
call assert_equal(1, winline())
|
||||
call assert_equal(11, line('.'))
|
||||
|
||||
" scroll to move line 1 at top, cursor stays in line 11
|
||||
call test_scrollbar('right', 0, 0)
|
||||
let args = #{which: 'right', value: 0, dragging: 0}
|
||||
call test_gui_event('scrollbar', args)
|
||||
redraw
|
||||
call assert_equal(11, winline())
|
||||
call assert_equal(11, line('.'))
|
||||
@@ -742,7 +744,8 @@ func Test_scrollbars()
|
||||
call assert_equal(1, col('.'))
|
||||
|
||||
" scroll to character 11, cursor is moved
|
||||
call test_scrollbar('hor', 10, 0)
|
||||
let args = #{which: 'hor', value: 10, dragging: 0}
|
||||
call test_gui_event('scrollbar', args)
|
||||
redraw
|
||||
call assert_equal(1, wincol())
|
||||
set number
|
||||
@@ -752,6 +755,13 @@ func Test_scrollbars()
|
||||
redraw
|
||||
call assert_equal(11, col('.'))
|
||||
|
||||
" Invalid arguments
|
||||
call assert_false(test_gui_event('scrollbar', {}))
|
||||
call assert_false(test_gui_event('scrollbar', #{value: 10, dragging: 0}))
|
||||
call assert_false(test_gui_event('scrollbar', #{which: 'hor', dragging: 0}))
|
||||
call assert_false(test_gui_event('scrollbar', #{which: 'hor', value: 1}))
|
||||
call assert_fails("call test_gui_event('scrollbar', #{which: 'a', value: 1, dragging: 0})", 'E475:')
|
||||
|
||||
set guioptions&
|
||||
set wrap&
|
||||
bwipe!
|
||||
@@ -1351,6 +1361,8 @@ func Test_gui_drop_files()
|
||||
call assert_false(test_gui_event("dropfiles", {}))
|
||||
let d = #{row: 1, col: 1, modifiers: 0}
|
||||
call assert_false(test_gui_event("dropfiles", d))
|
||||
let d = #{files: 1, row: 1, col: 1, modifiers: 0}
|
||||
call assert_false(test_gui_event("dropfiles", d))
|
||||
let d = #{files: test_null_list(), row: 1, col: 1, modifiers: 0}
|
||||
call assert_false(test_gui_event("dropfiles", d))
|
||||
let d = #{files: [test_null_string()], row: 1, col: 1, modifiers: 0}
|
||||
@@ -1465,6 +1477,18 @@ func Test_gui_findrepl()
|
||||
let args = #{find_text: 'TWO', repl_text: 'two', flags: 0x1C, forward: 1}
|
||||
call test_gui_event('findrepl', args)
|
||||
call assert_equal(['ONE two ONE', 'Twoo ONE two ONEo'], getline(1, '$'))
|
||||
|
||||
" Invalid arguments
|
||||
call assert_false(test_gui_event('findrepl', {}))
|
||||
let args = #{repl_text: 'a', flags: 1, forward: 1}
|
||||
call assert_false(test_gui_event('findrepl', args))
|
||||
let args = #{find_text: 'a', flags: 1, forward: 1}
|
||||
call assert_false(test_gui_event('findrepl', args))
|
||||
let args = #{find_text: 'a', repl_text: 'b', forward: 1}
|
||||
call assert_false(test_gui_event('findrepl', args))
|
||||
let args = #{find_text: 'a', repl_text: 'b', flags: 1}
|
||||
call assert_false(test_gui_event('findrepl', args))
|
||||
|
||||
bw!
|
||||
endfunc
|
||||
|
||||
|
||||
@@ -246,6 +246,19 @@ func Test_packloadall()
|
||||
call assert_equal(4321, g:plugin_bar_number)
|
||||
endfunc
|
||||
|
||||
func Test_start_autoload()
|
||||
" plugin foo with an autoload directory
|
||||
let autodir = &packpath .. '/pack/mine/start/foo/autoload'
|
||||
call mkdir(autodir, 'p')
|
||||
let fname = autodir .. '/foobar.vim'
|
||||
call writefile(['func foobar#test()',
|
||||
\ ' return 1666',
|
||||
\ 'endfunc'], fname)
|
||||
|
||||
call assert_equal(1666, foobar#test())
|
||||
call delete(fname)
|
||||
endfunc
|
||||
|
||||
func Test_helptags()
|
||||
let docdir1 = &packpath . '/pack/mine/start/foo/doc'
|
||||
let docdir2 = &packpath . '/pack/mine/start/bar/doc'
|
||||
|
||||
@@ -979,6 +979,7 @@ func Test_locationlist_curwin_was_closed()
|
||||
call assert_fails('lrewind', 'E924:')
|
||||
|
||||
augroup! testgroup
|
||||
delfunc R
|
||||
endfunc
|
||||
|
||||
func Test_locationlist_cross_tab_jump()
|
||||
@@ -5835,4 +5836,20 @@ func Test_two_qf_windows()
|
||||
%bw!
|
||||
endfunc
|
||||
|
||||
" Weird sequence of commands that caused entering a wiped-out buffer
|
||||
func Test_lopen_bwipe()
|
||||
func R()
|
||||
silent! tab lopen
|
||||
e x
|
||||
silent! lfile
|
||||
endfunc
|
||||
|
||||
cal R()
|
||||
cal R()
|
||||
cal R()
|
||||
bw!
|
||||
delfunc R
|
||||
endfunc
|
||||
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
||||
@@ -152,9 +152,6 @@ func s:classes_test()
|
||||
if has('win32')
|
||||
let identchars_ok = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz
¡¢£¤¥¦§µÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ'
|
||||
let kwordchars_ok = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyzµÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'
|
||||
elseif has('ebcdic')
|
||||
let identchars_ok = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz¬®µº¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'
|
||||
let kwordchars_ok = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz¬®µº¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'
|
||||
else
|
||||
let identchars_ok = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyzµÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'
|
||||
let kwordchars_ok = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyzµÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'
|
||||
@@ -166,8 +163,6 @@ func s:classes_test()
|
||||
let fnamechars_ok = '$+,-./0123456789:ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'
|
||||
elseif has('vms')
|
||||
let fnamechars_ok = '#$%+,-./0123456789:;<>ABCDEFGHIJKLMNOPQRSTUVWXYZ[]_abcdefghijklmnopqrstuvwxyz~ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'
|
||||
elseif has('ebcdic')
|
||||
let fnamechars_ok = '#$%+,-./=ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'
|
||||
else
|
||||
let fnamechars_ok = '#$%+,-./0123456789=ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'
|
||||
endif
|
||||
|
||||
@@ -105,6 +105,14 @@ func Test_restricted_mode()
|
||||
if RunVim([], [], '-Z --clean -S Xrestricted')
|
||||
call assert_equal([], readfile('Xresult'))
|
||||
endif
|
||||
call delete('Xresult')
|
||||
if has('unix') && RunVimPiped([], [], '--clean -S Xrestricted', 'SHELL=/bin/false ')
|
||||
call assert_equal([], readfile('Xresult'))
|
||||
endif
|
||||
call delete('Xresult')
|
||||
if has('unix') && RunVimPiped([], [], '--clean -S Xrestricted', 'SHELL=/sbin/nologin')
|
||||
call assert_equal([], readfile('Xresult'))
|
||||
endif
|
||||
|
||||
call delete('Xrestricted')
|
||||
call delete('Xresult')
|
||||
|
||||
@@ -484,7 +484,7 @@ def Test_assign_linebreak()
|
||||
->copy()
|
||||
->copy()
|
||||
END
|
||||
v9.CheckDefFailure(lines, 'E1012:', 2)
|
||||
v9.CheckDefExecFailure(lines, 'E1012:', 4)
|
||||
|
||||
lines =<< trim END
|
||||
var x: any
|
||||
@@ -1249,6 +1249,15 @@ def Test_assignment_var_list()
|
||||
v9.CheckScriptSuccess(lines)
|
||||
enddef
|
||||
|
||||
def Test_assignment_empty_list()
|
||||
var lines =<< trim END
|
||||
var l2: list<any> = []
|
||||
var l: list<string>
|
||||
l = l2
|
||||
END
|
||||
v9.CheckDefAndScriptSuccess(lines)
|
||||
enddef
|
||||
|
||||
def Test_assignment_vim9script()
|
||||
var lines =<< trim END
|
||||
vim9script
|
||||
|
||||
@@ -77,7 +77,12 @@ enddef
|
||||
|
||||
def Test_add()
|
||||
v9.CheckDefAndScriptFailure(['add({}, 1)'], ['E1013: Argument 1: type mismatch, expected list<any> but got dict<unknown>', 'E1226: List or Blob required for argument 1'])
|
||||
v9.CheckDefFailure(['add([1], "a")'], 'E1012: Type mismatch; expected number but got string')
|
||||
v9.CheckDefExecFailure([
|
||||
'var ln: list<number> = [1]',
|
||||
'add(ln, "a")'],
|
||||
'E1012: Type mismatch; expected number but got string')
|
||||
assert_equal([1, 'a'], add([1], 'a'))
|
||||
assert_equal(0z1234, add(0z12, 0x34))
|
||||
|
||||
var lines =<< trim END
|
||||
vim9script
|
||||
@@ -715,6 +720,31 @@ def Test_copy_return_type()
|
||||
res->assert_equal(6)
|
||||
|
||||
dl = deepcopy([1, 2, 3], true)
|
||||
|
||||
# after a copy() the type can change, but not the item itself
|
||||
var nl: list<number> = [1, 2]
|
||||
assert_equal([1, 2, 'x'], nl->copy()->extend(['x']))
|
||||
|
||||
var lines =<< trim END
|
||||
var nll: list<list<number>> = [[1, 2]]
|
||||
nll->copy()[0]->extend(['x'])
|
||||
END
|
||||
v9.CheckDefExecAndScriptFailure(lines, 'E1013: Argument 2: type mismatch, expected list<number> but got list<string> in extend()')
|
||||
|
||||
var nd: dict<number> = {a: 1, b: 2}
|
||||
assert_equal({a: 1, b: 2, c: 'x'}, nd->copy()->extend({c: 'x'}))
|
||||
lines =<< trim END
|
||||
var ndd: dict<dict<number>> = {a: {x: 1, y: 2}}
|
||||
ndd->copy()['a']->extend({z: 'x'})
|
||||
END
|
||||
v9.CheckDefExecAndScriptFailure(lines, 'E1013: Argument 2: type mismatch, expected dict<number> but got dict<string> in extend()')
|
||||
|
||||
# after a deepcopy() the item type can also change
|
||||
var nll: list<list<number>> = [[1, 2]]
|
||||
assert_equal([1, 2, 'x'], nll->deepcopy()[0]->extend(['x']))
|
||||
|
||||
var ndd: dict<dict<number>> = {a: {x: 1, y: 2}}
|
||||
assert_equal({x: 1, y: 2, z: 'x'}, ndd->deepcopy()['a']->extend({z: 'x'}))
|
||||
enddef
|
||||
|
||||
def Test_count()
|
||||
@@ -2804,6 +2834,9 @@ def Test_range()
|
||||
v9.CheckDefAndScriptFailure(['range("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
|
||||
v9.CheckDefAndScriptFailure(['range(10, "b")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
|
||||
v9.CheckDefAndScriptFailure(['range(10, 20, "c")'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3'])
|
||||
|
||||
# returns a list<number> but it's not declared as such
|
||||
assert_equal(['x', 'x'], range(2)->map((i, v) => 'x'))
|
||||
enddef
|
||||
|
||||
def Test_readdir()
|
||||
@@ -2980,6 +3013,10 @@ def Test_remove()
|
||||
var d2: any = {1: 'a', 2: 'b', 3: 'c'}
|
||||
remove(d2, 2)
|
||||
assert_equal({1: 'a', 3: 'c'}, d2)
|
||||
|
||||
# using declared type
|
||||
var x: string = range(2)->extend(['x'])->remove(2)
|
||||
assert_equal('x', x)
|
||||
enddef
|
||||
|
||||
def Test_remove_return_type()
|
||||
@@ -4089,13 +4126,6 @@ def Test_test_override()
|
||||
v9.CheckDefAndScriptFailure(['test_override("a", "x")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
|
||||
enddef
|
||||
|
||||
def Test_test_scrollbar()
|
||||
CheckGui
|
||||
v9.CheckDefAndScriptFailure(['test_scrollbar(1, 2, 3)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
|
||||
v9.CheckDefAndScriptFailure(['test_scrollbar("a", "b", 3)'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
|
||||
v9.CheckDefAndScriptFailure(['test_scrollbar("a", 2, "c")'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3'])
|
||||
enddef
|
||||
|
||||
def Test_test_setmouse()
|
||||
v9.CheckDefAndScriptFailure(['test_setmouse("a", 10)'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
|
||||
v9.CheckDefAndScriptFailure(['test_setmouse(10, "b")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user