Skip to content

Commit

Permalink
Merge pull request #33 from shiena/patch/color_console_on_windows
Browse files Browse the repository at this point in the history
Color shown in Windows command prompt
  • Loading branch information
monochromegane committed May 15, 2014
2 parents 9a8f548 + 7b358e7 commit ee61a4a
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 14 deletions.
6 changes: 1 addition & 5 deletions main.go
Expand Up @@ -29,11 +29,7 @@ func main() {

opts.Color = opts.SetEnableColor
opts.NoColor = opts.SetDisableColor
if runtime.GOOS == "windows" && os.Getenv("ANSICON") == "" {
opts.EnableColor = false
} else {
opts.EnableColor = true
}
opts.EnableColor = true

parser := flags.NewParser(&opts, flags.Default)
parser.Name = "pt"
Expand Down
25 changes: 16 additions & 9 deletions search/print/print.go
Expand Up @@ -7,6 +7,7 @@ import (
"github.com/monochromegane/the_platinum_searcher/search/match"
"github.com/monochromegane/the_platinum_searcher/search/option"
"github.com/monochromegane/the_platinum_searcher/search/pattern"
"github.com/shiena/ansicolor"
"io"
"os"
"strings"
Expand Down Expand Up @@ -133,14 +134,20 @@ func (self *Printer) printContext(lines []*match.Line) {
}

func createWriter(option *option.Option) io.Writer {
switch option.OutputEncode {
case "sjis":
return transform.NewWriter(os.Stdout, japanese.ShiftJIS.NewEncoder())
case "euc":
return transform.NewWriter(os.Stdout, japanese.EUCJP.NewEncoder())
case "jis":
return transform.NewWriter(os.Stdout, japanese.ISO2022JP.NewEncoder())
default:
return os.Stdout
encoder := func() io.Writer {
switch option.OutputEncode {
case "sjis":
return transform.NewWriter(os.Stdout, japanese.ShiftJIS.NewEncoder())
case "euc":
return transform.NewWriter(os.Stdout, japanese.EUCJP.NewEncoder())
case "jis":
return transform.NewWriter(os.Stdout, japanese.ISO2022JP.NewEncoder())
default:
return os.Stdout
}
}()
if option.EnableColor {
return ansicolor.NewAnsiColorWriter(encoder)
}
return encoder
}

0 comments on commit ee61a4a

Please sign in to comment.