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

`gvim.exe --serverlist`がエラーダイアログで表示される #1060

Open
nocd5 opened this Issue Jul 29, 2017 · 6 comments

Comments

Projects
None yet
3 participants
@nocd5
Member

nocd5 commented Jul 29, 2017

質問・報告の内容

gvim.exe --serverlistgvim.exe --remote-expr 1+1などの結果がエラーダイアログで表示されますが、これは期待動作なのでしょうか?

ss

Vimのバージョン

8.0.799

OSの種類/ディストリ/バージョン

  • Windows 10 Home 64bit
@nocd5

This comment has been minimized.

Show comment
Hide comment
@nocd5

nocd5 Jul 29, 2017

Member

パッチを書いてみたものの、os_mswin.cdisplay_errors()を呼ぶのではなくmessage.cdo_dialog呼んだ方が良い様な気がしてます。

Member

nocd5 commented Jul 29, 2017

パッチを書いてみたものの、os_mswin.cdisplay_errors()を呼ぶのではなくmessage.cdo_dialog呼んだ方が良い様な気がしてます。

@nocd5 nocd5 changed the title from `gvim.exe --serverlist`ga to `gvim.exe --serverlist`がエラーダイアログで表示される Jul 29, 2017

@mattn

This comment has been minimized.

Show comment
Hide comment
@mattn

mattn Jul 29, 2017

Member

何が期待結果でしょうか?ダイアログじゃなく標準入出力で出るのが期待結果でしょうか?ですと他の方法を考えた方がよさそうです。
あと gui.starting はいろいろな箇所に影響するので別のフラグを付けた方が良い気がします。

Member

mattn commented Jul 29, 2017

何が期待結果でしょうか?ダイアログじゃなく標準入出力で出るのが期待結果でしょうか?ですと他の方法を考えた方がよさそうです。
あと gui.starting はいろいろな箇所に影響するので別のフラグを付けた方が良い気がします。

@nocd5

This comment has been minimized.

Show comment
Hide comment
@nocd5

nocd5 Jul 29, 2017

Member

色々と説明不足で申し訳ありません。
期待動作は分からないのですが、少なくともエラーダイアログではないのではないか、と思い質問いたしました。
--help--versionはInfoアイコンのダイアログで表示されるので、それに合わせるのも1つの案かと思い書いたのがパッチです。
せめてスクリーンショットは乗せるべきでした、すいません。パッチを当てた結果が以下です。
ss

--remote-exprなどの結果を使うケースがあれば標準出力の方が扱いやすいと思うので、
mattnさんの仰るように標準入出力に出すのが期待結果かもしれません。

Member

nocd5 commented Jul 29, 2017

色々と説明不足で申し訳ありません。
期待動作は分からないのですが、少なくともエラーダイアログではないのではないか、と思い質問いたしました。
--help--versionはInfoアイコンのダイアログで表示されるので、それに合わせるのも1つの案かと思い書いたのがパッチです。
せめてスクリーンショットは乗せるべきでした、すいません。パッチを当てた結果が以下です。
ss

--remote-exprなどの結果を使うケースがあれば標準出力の方が扱いやすいと思うので、
mattnさんの仰るように標準入出力に出すのが期待結果かもしれません。

@ntak

This comment has been minimized.

Show comment
Hide comment
@ntak

ntak Jul 29, 2017

WIndows の MessageBox() 関数でいうところの MB_ICONSTOP フラグ ( x ) である現状を MB_ICONINFORMATION ( i ) にした方が意味的に合致するのではないか、という話かと根拠なく思いました。

ntak commented Jul 29, 2017

WIndows の MessageBox() 関数でいうところの MB_ICONSTOP フラグ ( x ) である現状を MB_ICONINFORMATION ( i ) にした方が意味的に合致するのではないか、という話かと根拠なく思いました。

@mattn

This comment has been minimized.

Show comment
Hide comment
@mattn

mattn Jul 29, 2017

Member

なるほど。僕はどちらかというとスクリーンショットの様な事がしたいのであれば

diff --git a/src/main.c b/src/main.c
index 268c25627..ab92d57e5 100644
--- a/src/main.c
+++ b/src/main.c
@@ -3980,9 +3980,20 @@ cmdsrv_main(
 	didone = TRUE;
 	if (res != NULL && *res != NUL)
 	{
+#ifdef WIN32
+	    if (!isatty(fileno(stdout)))
+		puts((char *)res);
+	    else
+	    {
+		mch_msg((char *)res);
+		if (res[STRLEN(res) - 1] != '\n')
+		    mch_msg("\n");
+	    }
+#else
 	    mch_msg((char *)res);
 	    if (res[STRLEN(res) - 1] != '\n')
 		mch_msg("\n");
+#endif
 	}
 	vim_free(res);
     }

こうやってもいいかなーと思いました。

Member

mattn commented Jul 29, 2017

なるほど。僕はどちらかというとスクリーンショットの様な事がしたいのであれば

diff --git a/src/main.c b/src/main.c
index 268c25627..ab92d57e5 100644
--- a/src/main.c
+++ b/src/main.c
@@ -3980,9 +3980,20 @@ cmdsrv_main(
 	didone = TRUE;
 	if (res != NULL && *res != NUL)
 	{
+#ifdef WIN32
+	    if (!isatty(fileno(stdout)))
+		puts((char *)res);
+	    else
+	    {
+		mch_msg((char *)res);
+		if (res[STRLEN(res) - 1] != '\n')
+		    mch_msg("\n");
+	    }
+#else
 	    mch_msg((char *)res);
 	    if (res[STRLEN(res) - 1] != '\n')
 		mch_msg("\n");
+#endif
 	}
 	vim_free(res);
     }

こうやってもいいかなーと思いました。

@nocd5

This comment has been minimized.

Show comment
Hide comment
@nocd5

nocd5 Jul 29, 2017

Member

@ntak さん 簡潔に説明していただきありがとうございます。私がイメージしたのはそういう動作です。
@mattn さん のように標準出力に出すのも良さそうですよね。

期待動作と、それが期待動作たる所以を説明できるよう纏まったら改めて相談させて下さい。

Member

nocd5 commented Jul 29, 2017

@ntak さん 簡潔に説明していただきありがとうございます。私がイメージしたのはそういう動作です。
@mattn さん のように標準出力に出すのも良さそうですよね。

期待動作と、それが期待動作たる所以を説明できるよう纏まったら改めて相談させて下さい。

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