New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows 版で引数の解析が2回実行されている #1066

Closed
mattn opened this Issue Aug 4, 2017 · 3 comments

Comments

Projects
None yet
2 participants
@mattn
Member

mattn commented Aug 4, 2017

C:\>vim `test`

これを実行すると本来1回だけコマンドが実行されるべきが2回実行されている。Windows の場合、諸事情により fix_arg_enc で引数のエンコーディング修正が行われておりその際にワイルドカードの展開も行われている。(alist_expand がそれ)

しかしその後 main.c でもう一度 alist_expand が呼び出されている。どういう事情でこうなったか良く覚えてないのですが、出来れば main.c 側をカットしたい。

diff --git a/src/main.c b/src/main.c
index 81eb1a679..f5b7b004e 100644
--- a/src/main.c
+++ b/src/main.c
@@ -227,7 +227,7 @@ main
 
     if (GARGCOUNT > 0)
     {
-#ifdef EXPAND_FILENAMES
+#if defined(EXPAND_FILENAMES) && !(defined(WIN32) && defined(FEAT_MBYTE))
 	/*
 	 * Expand wildcards in file names.
 	 */

ちなみに backtick コマンドを実行して正常に終了した場合はその結果が得られてるけど、異常終了した場合は

`test`

という変な引数が残ってしまうけど、それは別途直したい。

@k-takata

This comment has been minimized.

Show comment
Hide comment
@k-takata

k-takata Aug 5, 2017

Member

enc を設定すると fix_arg_enc が呼ばれますが、逆に set enc=utf-8 を .vimrc 内で実行しなかった場合もそれで大丈夫でしょうか?

Member

k-takata commented Aug 5, 2017

enc を設定すると fix_arg_enc が呼ばれますが、逆に set enc=utf-8 を .vimrc 内で実行しなかった場合もそれで大丈夫でしょうか?

@mattn

This comment has been minimized.

Show comment
Hide comment
@mattn

mattn Aug 5, 2017

Member

良くないすね。あんまり時間取れそうにないので vim/vim#1938 こっちの方にはまだ問題があるとだけ追記しておきました。

Member

mattn commented Aug 5, 2017

良くないすね。あんまり時間取れそうにないので vim/vim#1938 こっちの方にはまだ問題があるとだけ追記しておきました。

@mattn

This comment has been minimized.

Show comment
Hide comment
@mattn
Member

mattn commented Aug 6, 2017

@mattn mattn closed this Aug 6, 2017

@mattn mattn added the xlose/fixed label Aug 6, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment