Merge remote-tracking branch 'vim/master'

This commit is contained in:
Kazuki Sakamoto
2018-05-20 20:30:35 -07:00
27 changed files with 1198 additions and 814 deletions
+9 -15
View File
@@ -9121,22 +9121,16 @@ There are four types of features:
Example: >
:if has("gui_running")
< *has-patch*
3. Included patches. The "patch123" feature means that patch 123 has been
included. Note that this form does not check the version of Vim, you need
to inspect |v:version| for that.
Example (checking version 6.2.148 or later): >
:if v:version > 602 || v:version == 602 && has("patch148")
< Note that it's possible for patch 147 to be omitted even though 148 is
included.
4. Beyond a certain version or at a certain version and including a specific
patch. The "patch-7.4.237" feature means that the Vim version is 7.5 or
later, or it is version 7.4 and patch 237 was included.
Note that this only works for patch 7.4.237 and later, before that you
need to use the example above that checks v:version. Example: >
3. Beyond a certain version or at a certain version and including a specific
patch. The "patch-7.4.248" feature means that the Vim version is 7.5 or
later, or it is version 7.4 and patch 248 was included. Example: >
:if has("patch-7.4.248")
< Note that it's possible for patch 147 to be omitted even though 148 is
included.
< Note that it's possible for patch 248 to be omitted even though 249 is
included. Only happens when cherry-picking patches.
Note that this form only works for patch 7.4.237 and later, before that
you need to check for the patch and the v:version. Example (checking
version 6.2.148 or later): >
:if v:version > 602 || (v:version == 602 && has("patch148"))
Hint: To find out if Vim supports backslashes in a file name (MS-Windows),
use: `if exists('+shellslash')`
+6 -3
View File
@@ -39,9 +39,10 @@ browser use: https://github.com/vim/vim/issues/1234
-------------------- Known bugs and current work -----------------------
Terminal emulator window:
- Win32: Termdebug doesn't work, because gdb does not support mi2. This
plugin: https://github.com/cpiger/NeoDebug runs gdb as a job, redirecting
input and output. Command I/O is in gdb window.
- Win32: Termdebug doesn't work, because gdb does not support mi2.
This plugin: https://github.com/cpiger/NeoDebug runs gdb as a job,
redirecting input and output.
Open new console for for program with: "set new-console on"
- Win32: Redirecting input does not work, half of Test_terminal_redir_file()
is disabled.
- Win32: Redirecting output works but includes escape sequences.
@@ -65,6 +66,8 @@ Patch to refactor efm_to_regpat(). (Yegappan Lakshmanan, 2018 May 16, #2924)
Crash when mixing matchadd and substitute()? (Max Christian Pohle, 2018 May
13, #2910) Can't reproduce?
Deprecate using has("patch213") always include the version number.
On Win32 when not in the console and t_Co >= 256, allow using 'tgc'.
(Nobuhiro Takasaki, #2833) Also check t_Co.
+2 -2
View File
@@ -22104,7 +22104,7 @@ Files: src/Makefile, src/option.c, src/testdir/test_alot.vim,
Patch 8.0.1238
Problem: Incremental search only shows one match.
Solution: When 'incsearch' and 'hlsearch' are both set highlight all
matches. (haya14busa, itchyny closes #2198)
matches. (haya14busa, itchyny, closes #2198)
Files: runtime/doc/options.txt, src/ex_getln.c, src/proto/search.pro,
src/search.c, src/testdir/test_search.vim
@@ -22595,7 +22595,7 @@ Solution: Remove bogus typedef.
Files: src/os_macosx.m
Patch 8.0.1316 (after 8.0.1312)
Problem: Build still fails on Mac. (chdiza)
Problem: Build still still fails on Mac. (chdiza)
Solution: Remove another bogus typedef.
Files: src/os_mac_conv.c
+1 -1
View File
@@ -280,7 +280,7 @@ N を省略した場合は、引数のファイルを個別のタブページで
ぐことができます。
ファイルを保存したい場合は、":w!" のように、Ex コマンドに感嘆符を付けてくだ
さい。
\-R オプションは \-n オプションの効果も含んでいます (記参照)。
\-R オプションは \-n オプションの効果も含んでいます (記参照)。
オプション 'readonly' は ":set noro" でオフにできます。
詳しくは ":help 'readonly'" を参照してください。
.TP
+3
View File
@@ -76,6 +76,9 @@
.RI < cols >
オクテットで出力する。標準設定は 16 (\-i: 12, \-ps: 30, \-b: 6)。最大 256。
.TP
.IR \-C " | " \-capitalize
\-i を使用した際に、C インクルードファイル形式の変数名を大文字にする。
.TP
.IR \-E " | " \-EBCDIC
右端に出力される文字のエンコーディングを ASCII から EBCDIC に変更する。
16 進ダンプの出力形式は変更されません。
+1 -1
View File
@@ -5,5 +5,5 @@
" Copyright (C) 2004,12 MURAOKA Taro <koron.kaoriya@gmail.com>
" THIS FILE IS DISTRIBUTED UNDER THE VIM LICENSE.
" eucjp is the same as euc-jp. Source the other one from here.
" ja is the same as ja_jp. Source the other one from here.
source <sfile>:p:h/menu_ja_jp.euc-jp.vim
+1 -1
View File
@@ -1,4 +1,4 @@
" Menu Translations: Japanese
" eucjp is the same as euc-jp. Source the other one from here.
" ja is the same as ja_jp. Source the other one from here.
source <sfile>:p:h/menu_ja_jp.utf-8.vim
+14 -11
View File
@@ -73,9 +73,9 @@ menutrans Startup\ &Settings
menutrans &Global\ Settings 全体設定(&G)
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!
\ パターン強調切替(&H)<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic!
menutrans Toggle\ &Ignoring\ Case<Tab>:set\ ic!
\ 大小文字区別切替(&I)<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!
menutrans Toggle\ &Showing\ Matched\ Pairs<Tab>:set\ sm!
\ マッチ表示切替(&S)<Tab>:set\ sm!
menutrans &Context\ lines カーソル周辺行数(&C)
menutrans &Virtual\ Edit 仮想編集(&V)
@@ -86,7 +86,7 @@ menutrans Block\ and\ Insert
menutrans Always 常時
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!
\ 挿入(初心者)モード切替(&M)<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!
menutrans Toggle\ Vi\ C&ompatibility<Tab>:set\ cp!
\ Vi互換モード切替(&O)<Tab>:set\ cp!
menutrans Search\ &Path\.\.\. 検索パス(&P)\.\.\.
menutrans Ta&g\ Files\.\.\. タグファイル(&G)\.\.\.
@@ -106,19 +106,19 @@ let g:menutrans_tags_dialog = "
menutrans F&ile\ Settings ファイル設定(&I)
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!
\ 行番号表示切替(&N)<Tab>:set\ nu!
menutrans Toggle\ relati&ve\ Line\ Numbering<Tab>:set\ rnu!
menutrans Toggle\ Relati&ve\ Line\ Numbering<Tab>:set\ rnu!
\ 相対行番号表示切替(&V)<Tab>:set\ rnu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!
\ リストモード切替(&L)<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!
menutrans Toggle\ Line\ &Wrapping<Tab>:set\ wrap!
\ 行折返し切替(&W)<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!
menutrans Toggle\ W&rapping\ at\ word<Tab>:set\ lbr!
\ 単語折返し切替(&R)<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!
menutrans Toggle\ Tab\ &Expanding<Tab>:set\ et!
\ タブ展開切替(&E)<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!
menutrans Toggle\ &Auto\ Indenting<Tab>:set\ ai!
\ 自動字下げ切替(&A)<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!
menutrans Toggle\ &C-Style\ Indenting<Tab>:set\ cin!
\ C言語字下げ切替(&C)<Tab>:set\ cin!
" other options
@@ -131,7 +131,9 @@ let g:menutrans_textwidth_dialog = "
let g:menutrans_fileformat_dialog = "ファイル出力の際の改行記号の形式を選んでください."
let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\nキャンセル(&C)"
menutrans Show\ C&olor\ Schemes\ in\ Menu 色テーマをメニューに表示(&O)
menutrans C&olor\ Scheme 色テーマ選択(&O)
menutrans Show\ &Keymaps\ in\ Menu キーマップをメニューに表示(&K)
menutrans &Keymap キーマップ(&K)
menutrans None なし
@@ -153,7 +155,8 @@ menutrans &Open<Tab>:copen
menutrans &Close<Tab>:cclose 閉じる(&C)<Tab>:cclose
menutrans &Convert\ to\ HEX<Tab>:%!xxd HEXへ変換(&C)<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r HEXから逆変換(&R)<Tab>%!xxd\ -r
menutrans Se&T\ Compiler コンパイラ設定(&T)
menutrans Show\ Compiler\ Se&ttings\ in\ Menu コンパイラ設定をメニューに表示(&T)
menutrans Se&t\ Compiler コンパイラ設定(&T)
" Tools.Spelling Menu
menutrans &Spelling スペリング(&S)
@@ -289,7 +292,7 @@ endif
" Syntax menu
menutrans &Syntax シンタックス(&S)
menutrans &Show\ filetypes\ in\ menu 対応形式をメニューに表示(&S)
menutrans &Show\ File\ Types\ in\ Menu 対応形式をメニューに表示(&S)
menutrans Set\ '&syntax'\ only 'syntax'だけ設定(&S)
menutrans Set\ '&filetype'\ too 'filetype'も設定(&F)
menutrans &Off 無効化(&O)
+14 -11
View File
@@ -73,9 +73,9 @@ menutrans Startup\ &Settings 起動時の設定(&S)
menutrans &Global\ Settings 全体設定(&G)
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!
\ パターン強調切替(&H)<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic!
menutrans Toggle\ &Ignoring\ Case<Tab>:set\ ic!
\ 大小文字区別切替(&I)<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!
menutrans Toggle\ &Showing\ Matched\ Pairs<Tab>:set\ sm!
\ マッチ表示切替(&S)<Tab>:set\ sm!
menutrans &Context\ lines カーソル周辺行数(&C)
menutrans &Virtual\ Edit 仮想編集(&V)
@@ -86,7 +86,7 @@ menutrans Block\ and\ Insert ブロック/挿入モード時
menutrans Always 常時
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!
\ 挿入(初心者)モード切替(&M)<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!
menutrans Toggle\ Vi\ C&ompatibility<Tab>:set\ cp!
\ Vi互換モード切替(&O)<Tab>:set\ cp!
menutrans Search\ &Path\.\.\. 検索パス(&P)\.\.\.
menutrans Ta&g\ Files\.\.\. タグファイル(&G)\.\.\.
@@ -106,19 +106,19 @@ let g:menutrans_tags_dialog = "タグファイルの名前を入力してくだ
menutrans F&ile\ Settings ファイル設定(&I)
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!
\ 行番号表示切替(&N)<Tab>:set\ nu!
menutrans Toggle\ relati&ve\ Line\ Numbering<Tab>:set\ rnu!
menutrans Toggle\ Relati&ve\ Line\ Numbering<Tab>:set\ rnu!
\ 相対行番号表示切替(&V)<Tab>:set\ rnu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!
\ リストモード切替(&L)<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!
menutrans Toggle\ Line\ &Wrapping<Tab>:set\ wrap!
\ 行折返し切替(&W)<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!
menutrans Toggle\ W&rapping\ at\ word<Tab>:set\ lbr!
\ 単語折返し切替(&R)<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!
menutrans Toggle\ Tab\ &Expanding<Tab>:set\ et!
\ タブ展開切替(&E)<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!
menutrans Toggle\ &Auto\ Indenting<Tab>:set\ ai!
\ 自動字下げ切替(&A)<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!
menutrans Toggle\ &C-Style\ Indenting<Tab>:set\ cin!
\ C言語字下げ切替(&C)<Tab>:set\ cin!
" other options
@@ -131,7 +131,9 @@ let g:menutrans_textwidth_dialog = "テキストの幅('textwidth')を設定し
let g:menutrans_fileformat_dialog = "ファイル出力の際の改行記号の形式を選んでください."
let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\nキャンセル(&C)"
menutrans Show\ C&olor\ Schemes\ in\ Menu 色テーマをメニューに表示(&O)
menutrans C&olor\ Scheme 色テーマ選択(&O)
menutrans Show\ &Keymaps\ in\ Menu キーマップをメニューに表示(&K)
menutrans &Keymap キーマップ(&K)
menutrans None なし
@@ -153,7 +155,8 @@ menutrans &Open<Tab>:copen 開く(&O)<Tab>:copen
menutrans &Close<Tab>:cclose 閉じる(&C)<Tab>:cclose
menutrans &Convert\ to\ HEX<Tab>:%!xxd HEXへ変換(&C)<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r HEXから逆変換(&R)<Tab>%!xxd\ -r
menutrans Se&T\ Compiler コンパイラ設定(&T)
menutrans Show\ Compiler\ Se&ttings\ in\ Menu コンパイラ設定をメニューに表示(&T)
menutrans Se&t\ Compiler コンパイラ設定(&T)
" Tools.Spelling Menu
menutrans &Spelling スペリング(&S)
@@ -289,7 +292,7 @@ endif
" Syntax menu
menutrans &Syntax シンタックス(&S)
menutrans &Show\ filetypes\ in\ menu 対応形式をメニューに表示(&S)
menutrans &Show\ File\ Types\ in\ Menu 対応形式をメニューに表示(&S)
menutrans Set\ '&syntax'\ only 'syntax'だけ設定(&S)
menutrans Set\ '&filetype'\ too 'filetype'も設定(&F)
menutrans &Off 無効化(&O)
+14 -11
View File
@@ -73,9 +73,9 @@ menutrans Startup\ &Settings
menutrans &Global\ Settings 全体設定(&G)
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!
\ パターン強調切替(&H)<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic!
menutrans Toggle\ &Ignoring\ Case<Tab>:set\ ic!
\ 大小文字区別切替(&I)<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm!
menutrans Toggle\ &Showing\ Matched\ Pairs<Tab>:set\ sm!
\ マッチ表示切替(&S)<Tab>:set\ sm!
menutrans &Context\ lines カーソル周辺行数(&C)
menutrans &Virtual\ Edit 仮想編集(&V)
@@ -86,7 +86,7 @@ menutrans Block\ and\ Insert
menutrans Always 常時
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!
\ 挿入(初心者)モード切替(&M)<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!
menutrans Toggle\ Vi\ C&ompatibility<Tab>:set\ cp!
\ Vi互換モード切替(&O)<Tab>:set\ cp!
menutrans Search\ &Path\.\.\. 検索パス(&P)\.\.\.
menutrans Ta&g\ Files\.\.\. タグファイル(&G)\.\.\.
@@ -106,19 +106,19 @@ let g:menutrans_tags_dialog = "
menutrans F&ile\ Settings ファイル設定(&I)
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!
\ 行番号表示切替(&N)<Tab>:set\ nu!
menutrans Toggle\ relati&ve\ Line\ Numbering<Tab>:set\ rnu!
menutrans Toggle\ Relati&ve\ Line\ Numbering<Tab>:set\ rnu!
\ 相対行番号表示切替(&V)<Tab>:set\ rnu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list!
\ リストモード切替(&L)<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!
menutrans Toggle\ Line\ &Wrapping<Tab>:set\ wrap!
\ 行折返し切替(&W)<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!
menutrans Toggle\ W&rapping\ at\ word<Tab>:set\ lbr!
\ 単語折返し切替(&R)<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et!
menutrans Toggle\ Tab\ &Expanding<Tab>:set\ et!
\ タブ展開切替(&E)<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai!
menutrans Toggle\ &Auto\ Indenting<Tab>:set\ ai!
\ 自動字下げ切替(&A)<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin!
menutrans Toggle\ &C-Style\ Indenting<Tab>:set\ cin!
\ C言語字下げ切替(&C)<Tab>:set\ cin!
" other options
@@ -131,7 +131,9 @@ let g:menutrans_textwidth_dialog = "
let g:menutrans_fileformat_dialog = "ファイル出力の際の改行記号の形式を選んでください."
let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\nキャンセル(&C)"
menutrans Show\ C&olor\ Schemes\ in\ Menu 色テーマをメニューに表示(&O)
menutrans C&olor\ Scheme 色テーマ選択(&O)
menutrans Show\ &Keymaps\ in\ Menu キーマップをメニューに表示(&K)
menutrans &Keymap キーマップ(&K)
menutrans None なし
@@ -153,7 +155,8 @@ menutrans &Open<Tab>:copen
menutrans &Close<Tab>:cclose 閉じる(&C)<Tab>:cclose
menutrans &Convert\ to\ HEX<Tab>:%!xxd HEXへ変換(&C)<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r HEXから逆変換(&R)<Tab>%!xxd\ -r
menutrans Se&T\ Compiler コンパイラ設定(&T)
menutrans Show\ Compiler\ Se&ttings\ in\ Menu コンパイラ設定をメニューに表示(&T)
menutrans Se&t\ Compiler コンパイラ設定(&T)
" Tools.Spelling Menu
menutrans &Spelling スペリング(&S)
@@ -289,7 +292,7 @@ endif
" Syntax menu
menutrans &Syntax シンタックス(&S)
menutrans &Show\ filetypes\ in\ menu 対応形式をメニューに表示(&S)
menutrans &Show\ File\ Types\ in\ Menu 対応形式をメニューに表示(&S)
menutrans Set\ '&syntax'\ only 'syntax'だけ設定(&S)
menutrans Set\ '&filetype'\ too 'filetype'も設定(&F)
menutrans &Off 無効化(&O)
+3 -4
View File
@@ -18,9 +18,8 @@
ておかなければなりません。正しく学習するにはコマンドを実際に試さなければ
ならないのです。文章を読んだだけならば、きっと忘れてしまいます!
さぁ、Capsロック(Shift-Lock)キーが押されていないことを確認した後、画面に
レッスン1.1 が全部表示されるところまで、j キーを押してカーソルを移動しま
しょう。
さぁ、Capsロックキーが押されていないことを確認した後、画面にレッスン1.1
が全部表示されるところまで、j キーを押してカーソルを移動しましょう。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
レッスン 1.1: カーソルの移動
@@ -155,7 +154,7 @@ NOTE:
4. 変更をファイルに保存します: :wq <ENTER>
5. ステップ 1 で vimtutuor を終了した場合は vimtutor を再度起動し、以下の
5. ステップ 1 で vimtutor を終了した場合は vimtutor を再度起動し、以下の
要約へ進みましょう。
6. 以上のステップを読んで理解した上でこれを実行しましょう。
+3 -4
View File
@@ -18,9 +18,8 @@
ておかなければなりません。正しく学習するにはコマンドを実際に試さなければ
ならないのです。文章を読んだだけならば、きっと忘れてしまいます!
さぁ、Capsロック(Shift-Lock)キーが押されていないことを確認した後、画面に
レッスン1.1 が全部表示されるところまで、j キーを押してカーソルを移動しま
しょう。
さぁ、Capsロックキーが押されていないことを確認した後、画面にレッスン1.1
が全部表示されるところまで、j キーを押してカーソルを移動しましょう。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
レッスン 1.1: カーソルの移動
@@ -155,7 +154,7 @@ NOTE:
4. 変更をファイルに保存します: :wq <ENTER>
5. ステップ 1 で vimtutuor を終了した場合は vimtutor を再度起動し、以下の
5. ステップ 1 で vimtutor を終了した場合は vimtutor を再度起動し、以下の
要約へ進みましょう。
6. 以上のステップを読んで理解した上でこれを実行しましょう。
+3 -4
View File
@@ -18,9 +18,8 @@
ておかなければなりません。正しく学習するにはコマンドを実際に試さなければ
ならないのです。文章を読んだだけならば、きっと忘れてしまいます!
さぁ、Capsロック(Shift-Lock)キーが押されていないことを確認した後、画面に
レッスン1.1 が全部表示されるところまで、j キーを押してカーソルを移動しま
しょう。
さぁ、Capsロックキーが押されていないことを確認した後、画面にレッスン1.1
が全部表示されるところまで、j キーを押してカーソルを移動しましょう。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
レッスン 1.1: カーソルの移動
@@ -155,7 +154,7 @@ NOTE: 全てのレッスンを通じて、覚えようとするのではなく
4. 変更をファイルに保存します: :wq <ENTER>
5. ステップ 1 で vimtutuor を終了した場合は vimtutor を再度起動し、以下の
5. ステップ 1 で vimtutor を終了した場合は vimtutor を再度起動し、以下の
要約へ進みましょう。
6. 以上のステップを読んで理解した上でこれを実行しましょう。
+1
View File
@@ -2167,6 +2167,7 @@ test_arglist \
test_cmdline \
test_command_count \
test_comparators \
test_compiler \
test_crypt \
test_cscope \
test_cursor_func \
+259 -214
View File
File diff suppressed because it is too large Load Diff
+259 -214
View File
File diff suppressed because it is too large Load Diff
+259 -214
View File
File diff suppressed because it is too large Load Diff
+162 -103
View File
@@ -227,20 +227,173 @@ static struct fmtpattern
{'o', ".\\+"}
};
/*
* Convert an errorformat pattern to a regular expression pattern.
* See fmt_pat definition above for the list of supported patterns.
*/
static char_u *
fmtpat_to_regpat(
char_u *efmp,
efm_T *fmt_ptr,
int idx,
int round,
char_u *ptr,
char_u *errmsg)
{
char_u *srcptr;
if (fmt_ptr->addr[idx])
{
/* Each errorformat pattern can occur only once */
sprintf((char *)errmsg,
_("E372: Too many %%%c in format string"), *efmp);
EMSG(errmsg);
return NULL;
}
if ((idx && idx < 6
&& vim_strchr((char_u *)"DXOPQ", fmt_ptr->prefix) != NULL)
|| (idx == 6
&& vim_strchr((char_u *)"OPQ", fmt_ptr->prefix) == NULL))
{
sprintf((char *)errmsg,
_("E373: Unexpected %%%c in format string"), *efmp);
EMSG(errmsg);
return NULL;
}
fmt_ptr->addr[idx] = (char_u)++round;
*ptr++ = '\\';
*ptr++ = '(';
#ifdef BACKSLASH_IN_FILENAME
if (*efmp == 'f')
{
/* Also match "c:" in the file name, even when
* checking for a colon next: "%f:".
* "\%(\a:\)\=" */
STRCPY(ptr, "\\%(\\a:\\)\\=");
ptr += 10;
}
#endif
if (*efmp == 'f' && efmp[1] != NUL)
{
if (efmp[1] != '\\' && efmp[1] != '%')
{
/* A file name may contain spaces, but this isn't
* in "\f". For "%f:%l:%m" there may be a ":" in
* the file name. Use ".\{-1,}x" instead (x is
* the next character), the requirement that :999:
* follows should work. */
STRCPY(ptr, ".\\{-1,}");
ptr += 7;
}
else
{
/* File name followed by '\\' or '%': include as
* many file name chars as possible. */
STRCPY(ptr, "\\f\\+");
ptr += 4;
}
}
else
{
srcptr = (char_u *)fmt_pat[idx].pattern;
while ((*ptr = *srcptr++) != NUL)
++ptr;
}
*ptr++ = '\\';
*ptr++ = ')';
return ptr;
}
/*
* Convert a scanf like format in 'errorformat' to a regular expression.
*/
static char_u *
scanf_fmt_to_regpat(
char_u *efm,
int len,
char_u **pefmp,
char_u *ptr,
char_u *errmsg)
{
char_u *efmp = *pefmp;
if (*++efmp == '[' || *efmp == '\\')
{
if ((*ptr++ = *efmp) == '[') /* %*[^a-z0-9] etc. */
{
if (efmp[1] == '^')
*ptr++ = *++efmp;
if (efmp < efm + len)
{
*ptr++ = *++efmp; /* could be ']' */
while (efmp < efm + len
&& (*ptr++ = *++efmp) != ']')
/* skip */;
if (efmp == efm + len)
{
EMSG(_("E374: Missing ] in format string"));
return NULL;
}
}
}
else if (efmp < efm + len) /* %*\D, %*\s etc. */
*ptr++ = *++efmp;
*ptr++ = '\\';
*ptr++ = '+';
}
else
{
/* TODO: scanf()-like: %*ud, %*3c, %*f, ... ? */
sprintf((char *)errmsg,
_("E375: Unsupported %%%c in format string"), *efmp);
EMSG(errmsg);
return NULL;
}
*pefmp = efmp;
return ptr;
}
/*
* Analyze/parse an errorformat prefix.
*/
static int
efm_analyze_prefix(char_u **pefmp, efm_T *fmt_ptr, char_u *errmsg)
{
char_u *efmp = *pefmp;
if (vim_strchr((char_u *)"+-", *efmp) != NULL)
fmt_ptr->flags = *efmp++;
if (vim_strchr((char_u *)"DXAEWICZGOPQ", *efmp) != NULL)
fmt_ptr->prefix = *efmp;
else
{
sprintf((char *)errmsg,
_("E376: Invalid %%%c in format string prefix"), *efmp);
EMSG(errmsg);
return FAIL;
}
*pefmp = efmp;
return OK;
}
/*
* Converts a 'errorformat' string to regular expression pattern
*/
static int
efm_to_regpat(
char_u *efm,
int len,
int len,
efm_T *fmt_ptr,
char_u *regpat,
char_u *errmsg)
{
char_u *ptr;
char_u *efmp;
char_u *srcptr;
int round;
int idx = 0;
@@ -260,102 +413,17 @@ efm_to_regpat(
break;
if (idx < FMT_PATTERNS)
{
if (fmt_ptr->addr[idx])
{
sprintf((char *)errmsg,
_("E372: Too many %%%c in format string"), *efmp);
EMSG(errmsg);
ptr = fmtpat_to_regpat(efmp, fmt_ptr, idx, round, ptr,
errmsg);
if (ptr == NULL)
return -1;
}
if ((idx
&& idx < 6
&& vim_strchr((char_u *)"DXOPQ",
fmt_ptr->prefix) != NULL)
|| (idx == 6
&& vim_strchr((char_u *)"OPQ",
fmt_ptr->prefix) == NULL))
{
sprintf((char *)errmsg,
_("E373: Unexpected %%%c in format string"), *efmp);
EMSG(errmsg);
return -1;
}
fmt_ptr->addr[idx] = (char_u)++round;
*ptr++ = '\\';
*ptr++ = '(';
#ifdef BACKSLASH_IN_FILENAME
if (*efmp == 'f')
{
/* Also match "c:" in the file name, even when
* checking for a colon next: "%f:".
* "\%(\a:\)\=" */
STRCPY(ptr, "\\%(\\a:\\)\\=");
ptr += 10;
}
#endif
if (*efmp == 'f' && efmp[1] != NUL)
{
if (efmp[1] != '\\' && efmp[1] != '%')
{
/* A file name may contain spaces, but this isn't
* in "\f". For "%f:%l:%m" there may be a ":" in
* the file name. Use ".\{-1,}x" instead (x is
* the next character), the requirement that :999:
* follows should work. */
STRCPY(ptr, ".\\{-1,}");
ptr += 7;
}
else
{
/* File name followed by '\\' or '%': include as
* many file name chars as possible. */
STRCPY(ptr, "\\f\\+");
ptr += 4;
}
}
else
{
srcptr = (char_u *)fmt_pat[idx].pattern;
while ((*ptr = *srcptr++) != NUL)
++ptr;
}
*ptr++ = '\\';
*ptr++ = ')';
round++;
}
else if (*efmp == '*')
{
if (*++efmp == '[' || *efmp == '\\')
{
if ((*ptr++ = *efmp) == '[') /* %*[^a-z0-9] etc. */
{
if (efmp[1] == '^')
*ptr++ = *++efmp;
if (efmp < efm + len)
{
*ptr++ = *++efmp; /* could be ']' */
while (efmp < efm + len
&& (*ptr++ = *++efmp) != ']')
/* skip */;
if (efmp == efm + len)
{
EMSG(_("E374: Missing ] in format string"));
return -1;
}
}
}
else if (efmp < efm + len) /* %*\D, %*\s etc. */
*ptr++ = *++efmp;
*ptr++ = '\\';
*ptr++ = '+';
}
else
{
/* TODO: scanf()-like: %*ud, %*3c, %*f, ... ? */
sprintf((char *)errmsg,
_("E375: Unsupported %%%c in format string"), *efmp);
EMSG(errmsg);
ptr = scanf_fmt_to_regpat(efm, len, &efmp, ptr, errmsg);
if (ptr == NULL)
return -1;
}
}
else if (vim_strchr((char_u *)"%\\.^$~[", *efmp) != NULL)
*ptr++ = *efmp; /* regexp magic characters */
@@ -365,17 +433,8 @@ efm_to_regpat(
fmt_ptr->conthere = TRUE;
else if (efmp == efm + 1) /* analyse prefix */
{
if (vim_strchr((char_u *)"+-", *efmp) != NULL)
fmt_ptr->flags = *efmp++;
if (vim_strchr((char_u *)"DXAEWICZGOPQ", *efmp) != NULL)
fmt_ptr->prefix = *efmp;
else
{
sprintf((char *)errmsg,
_("E376: Invalid %%%c in format string prefix"), *efmp);
EMSG(errmsg);
if (efm_analyze_prefix(&efmp, fmt_ptr, errmsg) == FAIL)
return -1;
}
}
else
{
+6
View File
@@ -10531,10 +10531,16 @@ unshowmode(int force)
void
clearmode(void)
{
int save_msg_row = msg_row;
int save_msg_col = msg_col;
msg_pos_mode();
if (Recording)
recording_mode(HL_ATTR(HLF_CM));
msg_clr_eos();
msg_col = save_msg_col;
msg_row = save_msg_row;
}
static void
+3 -1
View File
@@ -9855,7 +9855,9 @@ syn_id2colors(int hl_id, guicolor_T *fgp, guicolor_T *bgp)
}
#endif
#if defined(FEAT_TERMINAL) || defined(PROTO)
#if (defined(WIN3264) \
&& !defined(FEAT_GUI_W32) \
&& defined(FEAT_TERMGUICOLORS)) || defined(PROTO)
void
syn_id2cterm_bg(int hl_id, int *fgp, int *bgp)
{
+1
View File
@@ -5,6 +5,7 @@ source test_assign.vim
source test_bufline.vim
source test_cd.vim
source test_changedtick.vim
source test_compiler.vim
source test_cursor_func.vim
source test_delete.vim
source test_ex_undo.vim
+49
View File
@@ -0,0 +1,49 @@
" Test the :compiler command
func Test_compiler()
if !executable('perl')
return
endif
e Xfoo.pl
compiler perl
call assert_equal('perl', b:current_compiler)
call assert_fails('let g:current_compiler', 'E121:')
call setline(1, ['#!/usr/bin/perl -w', 'use strict;', 'my $foo=1'])
w!
call feedkeys(":make\<CR>\<CR>", 'tx')
call assert_fails('clist', 'E42:')
call setline(1, ['#!/usr/bin/perl -w', 'use strict;', '$foo=1'])
w!
call feedkeys(":make\<CR>\<CR>", 'tx')
let a=execute('clist')
call assert_match("\n 1 Xfoo.pl:3: Global symbol \"\$foo\" "
\ . "requires explicit package name", a)
call delete('Xfoo.pl')
bw!
endfunc
func Test_compiler_without_arg()
let a=split(execute('compiler'))
call assert_match('^.*runtime/compiler/ant.vim$', a[0])
call assert_match('^.*runtime/compiler/bcc.vim$', a[1])
call assert_match('^.*runtime/compiler/xmlwf.vim$', a[-1])
endfunc
func Test_compiler_completion()
call feedkeys(":compiler \<C-A>\<C-B>\"\<CR>", 'tx')
call assert_match('^"compiler ant bcc .* xmlwf$', @:)
call feedkeys(":compiler p\<C-A>\<C-B>\"\<CR>", 'tx')
call assert_equal('"compiler pbx perl php pylint pyunit', @:)
call feedkeys(":compiler! p\<C-A>\<C-B>\"\<CR>", 'tx')
call assert_equal('"compiler! pbx perl php pylint pyunit', @:)
endfunc
func Test_compiler_error()
call assert_fails('compiler doesnotexist', 'E666:')
endfunc
+24
View File
@@ -96,6 +96,30 @@ func Test_min()
call assert_fails('call min(v:none)', 'E712:')
endfunc
func Test_strwidth()
for aw in ['single', 'double']
exe 'set ambiwidth=' . aw
call assert_equal(0, strwidth(''))
call assert_equal(1, strwidth("\t"))
call assert_equal(3, strwidth('Vim'))
call assert_equal(4, strwidth(1234))
call assert_equal(5, strwidth(-1234))
if has('multi_byte')
call assert_equal(2, strwidth('😉'))
call assert_equal(17, strwidth('Eĥoŝanĝo ĉiuĵaŭde'))
call assert_equal((aw == 'single') ? 6 : 7, strwidth('Straße'))
endif
call assert_fails('call strwidth({->0})', 'E729:')
call assert_fails('call strwidth([])', 'E730:')
call assert_fails('call strwidth({})', 'E731:')
call assert_fails('call strwidth(1.2)', 'E806:')
endfor
set ambiwidth&
endfunc
func Test_str2nr()
call assert_equal(0, str2nr(''))
call assert_equal(1, str2nr('1'))
+21
View File
@@ -38,3 +38,24 @@ function Test_messages()
let &more = oldmore
endtry
endfunction
" Patch 7.4.1696 defined the "clearmode()" command for clearing the mode
" indicator (e.g., "-- INSERT --") when ":stopinsert" is invoked. Message
" output could then be disturbed when 'cmdheight' was greater than one.
" This test ensures that the bugfix for this issue remains in place.
function! Test_stopinsert_does_not_break_message_output()
set cmdheight=2
redraw!
stopinsert | echo 'test echo'
call assert_equal(116, screenchar(&lines - 1, 1))
call assert_equal(32, screenchar(&lines, 1))
redraw!
stopinsert | echomsg 'test echomsg'
call assert_equal(116, screenchar(&lines - 1, 1))
call assert_equal(32, screenchar(&lines, 1))
redraw!
set cmdheight&
endfunction
+43
View File
@@ -1,5 +1,6 @@
" Tests for tabpage
function Test_tabpage()
bw!
" Simple test for opening and closing a tab page
@@ -317,6 +318,34 @@ function s:reconstruct_tabpage_for_test(nr)
endfor
endfunc
func Test_tabpage_ctrl_pgup_pgdown()
enew!
tabnew tab1
tabnew tab2
call assert_equal(3, tabpagenr())
exe "norm! \<C-PageUp>"
call assert_equal(2, tabpagenr())
exe "norm! \<C-PageDown>"
call assert_equal(3, tabpagenr())
" Check wrapping at last or first page.
exe "norm! \<C-PageDown>"
call assert_equal(1, tabpagenr())
exe "norm! \<C-PageUp>"
call assert_equal(3, tabpagenr())
" With a count, <C-PageUp> and <C-PageDown> are not symmetrical somehow:
" - {count}<C-PageUp> goes {count} pages downward (relative count)
" - {count}<C-PageDown> goes to page number {count} (absolute count)
exe "norm! 2\<C-PageUp>"
call assert_equal(1, tabpagenr())
exe "norm! 2\<C-PageDown>"
call assert_equal(2, tabpagenr())
1tabonly!
endfunc
" Test for [count] of tabclose
function Test_tabpage_with_tabclose()
@@ -491,4 +520,18 @@ func Test_close_on_quitpre()
buf Xtest
endfunc
func Test_tabs()
enew!
tabnew tab1
norm ixxx
let a=split(execute(':tabs'), "\n")
call assert_equal(['Tab page 1',
\ ' [No Name]',
\ 'Tab page 2',
\ '> + tab1'], a)
1tabonly!
bw!
endfunc
" vim: shiftwidth=2 sts=2 expandtab
+19
View File
@@ -155,6 +155,25 @@ func Test_blockwise_visual()
enew!
endfunc
" Test swapping corners in blockwise visual mode with o and O
func Test_blockwise_visual_o_O()
enew!
exe "norm! 10i.\<Esc>Y4P3lj\<C-V>4l2jr "
exe "norm! gvO\<Esc>ra"
exe "norm! gvO\<Esc>rb"
exe "norm! gvo\<C-c>rc"
exe "norm! gvO\<C-c>rd"
call assert_equal(['..........',
\ '...c d..',
\ '... ..',
\ '...a b..',
\ '..........'], getline(1, '$'))
enew!
endfun
" Test Virtual replace mode.
func Test_virtual_replace()
if exists('&t_kD')
+18
View File
@@ -776,6 +776,24 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
10,
/**/
9,
/**/
8,
/**/
7,
/**/
6,
/**/
5,
/**/
4,
/**/
3,
/**/
2,
/**/
1,
/**/