diff options
-rw-r--r-- | tools/nimgrep.nim | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/tools/nimgrep.nim b/tools/nimgrep.nim index 221181f66..e93168847 100644 --- a/tools/nimgrep.nim +++ b/tools/nimgrep.nim @@ -11,7 +11,7 @@ import os, strutils, parseopt, pegs, re, terminal const - Version = "0.9" + Version = "1.0" Usage = "nimgrep - Nim Grep Utility Version " & Version & """ (c) 2012 Andreas Rumpf @@ -56,6 +56,7 @@ var proc ask(msg: string): string = stdout.write(msg) + stdout.flushFile() result = stdin.readLine() proc confirm: TConfirmEnum = @@ -108,18 +109,21 @@ proc highlight(s, match, repl: string, t: tuple[first, last: int], writeColored(match) for i in t.last+1 .. y: stdout.write(s[i]) stdout.write("\n") + stdout.flushFile() if showRepl: stdout.write(spaces(alignment-1), "-> ") for i in x .. t.first-1: stdout.write(s[i]) writeColored(repl) for i in t.last+1 .. y: stdout.write(s[i]) stdout.write("\n") + stdout.flushFile() proc processFile(filename: string) = var filenameShown = false template beforeHighlight = if not filenameShown and optVerbose notin options: stdout.writeLine(filename) + stdout.flushFile() filenameShown = true var buffer: string @@ -128,7 +132,9 @@ proc processFile(filename: string) = except IOError: echo "cannot open file: ", filename return - if optVerbose in options: stdout.writeLine(filename) + if optVerbose in options: + stdout.writeLine(filename) + stdout.flushFile() var pegp: TPeg var rep: Regex var result: string @@ -254,10 +260,12 @@ proc walker(dir: string) = proc writeHelp() = stdout.write(Usage) + stdout.flushFile() quit(0) proc writeVersion() = stdout.write(Version & "\n") + stdout.flushFile() quit(0) proc checkOptions(subset: TOptions, a, b: string) = @@ -291,7 +299,7 @@ for kind, key, val in getopt(): of "word", "w": incl(options, optWord) of "ignorecase", "i": incl(options, optIgnoreCase) of "ignorestyle", "y": incl(options, optIgnoreStyle) - of "ext": extensions = val.split('|') + of "ext": extensions.add val.split('|') of "nocolor": useWriteStyled = false of "verbose": incl(options, optVerbose) of "help", "h": writeHelp() |