Closed mattn closed 8 years ago
LGTM :+1:
jvgrep でしばらく実験して、うまく行きそうなら
と行きたいです。go-isatty や go-colorable は色んなプロジェクトで使われすぎていて(dockerとか)最近変更が怖いので、慎重にやらせて下さい。
linux でのビルドと動作(現状通り)を確認。
@kozo2 homebrew のリリースに何か影響あったりしますか?依存パッケージが1つ増えます。
- jvgrep から取り除いて
- go-isatty へ取り込み
これについてですが、次のように go-colorable の修正も必要と考えていますが、合っていますか?
そうですね。2個ハードルがありますね。Cygwin/MSYS2 での動作と引き換えに依存が増える事を望んでいないユーザが果たしているかどうかが気になっています。僕はいいと思ってるんですがたまにそういう人もいます。
手元では、本PRと、go-colorable に対する以下の修正で、mintty上でカラー表示できることが確認できました。
--- a/colorable_windows.go
+++ b/colorable_windows.go
@@ -12,6 +12,7 @@ import (
"unsafe"
"github.com/mattn/go-isatty"
+ "github.com/k-takata/go-iscygpty"
)
const (
@@ -80,7 +81,9 @@ func NewColorable(file *os.File) io.Writer {
panic("nil passed instead of *os.File to NewColorable()")
}
- if isatty.IsTerminal(file.Fd()) {
+ if iscygpty.IsCygwinPty(file.Fd()) {
+ return file
+ } else if isatty.IsTerminal(file.Fd()) {
var csbi consoleScreenBufferInfo
handle := syscall.Handle(file.Fd())
procGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi)))
jvgrepだけ修正するのであれば、この修正はなくても動くはずですが、isttyも修正するのであれば必須と思われます。
homebrew の formula で https://github.com/mattn/jvgrep/archive/iscygpty.zip を見させる方法がわかりませんでした。URL内に必ずバージョンを表す数字を求める仕様のようです。 renameしてどっかのpublicなfile serverに置ければ確かめることはできると思うのですができてません。 依存パッケージが1つ増えることはhomebrew的には問題無いかと思います。
依存パッケージが1つ増えることはhomebrew的には問題無いかと思います。
了解しました。そのままこの pr をマージすればいいという理解です。ありがとうございます。
@mattn ちなみに homebrew の jvgrep formula は最近だと私より @ilovezfs さんが先に更新してくださってます
@koron @k-takata