renamed writeln to writeLine in tools

This commit is contained in:
patrick dw
2015-06-19 01:36:57 -05:00
parent 69e15ac32f
commit f71eaf66be
3 changed files with 50 additions and 50 deletions

View File

@@ -19,9 +19,9 @@ proc process(dir, infile: string, outfile: File,
ig <- (comment / \s+)* """:
# follow the include file:
if process(dir, matches[0], outfile, processed) == prAddIncludeDir:
writeln(outfile, line)
writeLine(outfile, line)
else:
writeln(outfile, line)
writeLine(outfile, line)
proc main(dir, outfile: string) =
var o: File

View File

@@ -21,10 +21,10 @@ Options:
--find, -f find the pattern (default)
--replace, -r replace the pattern
--peg pattern is a peg
--re pattern is a regular expression (default); extended
--re pattern is a regular expression (default); extended
syntax for the regular expression is always turned on
--recursive process directories recursively
--confirm confirm each occurrence/replacement; there is a chance
--confirm confirm each occurrence/replacement; there is a chance
to abort any time without touching the file
--stdin read pattern from stdin (to avoid the shell's confusing
quoting rules)
@@ -39,13 +39,13 @@ Options:
"""
type
TOption = enum
TOption = enum
optFind, optReplace, optPeg, optRegex, optRecursive, optConfirm, optStdin,
optWord, optIgnoreCase, optIgnoreStyle, optVerbose
TOptions = set[TOption]
TConfirmEnum = enum
TConfirmEnum = enum
ceAbort, ceYes, ceAll, ceNo, ceNone
var
filenames: seq[string] = @[]
pattern = ""
@@ -58,34 +58,34 @@ proc ask(msg: string): string =
stdout.write(msg)
result = stdin.readLine()
proc confirm: TConfirmEnum =
proc confirm: TConfirmEnum =
while true:
case normalize(ask(" [a]bort; [y]es, a[l]l, [n]o, non[e]: "))
of "a", "abort": return ceAbort
of "a", "abort": return ceAbort
of "y", "yes": return ceYes
of "l", "all": return ceAll
of "n", "no": return ceNo
of "e", "none": return ceNone
else: discard
proc countLines(s: string, first, last: int): int =
proc countLines(s: string, first, last: int): int =
var i = first
while i <= last:
if s[i] == '\13':
if s[i] == '\13':
inc result
if i < last and s[i+1] == '\10': inc(i)
elif s[i] == '\10':
elif s[i] == '\10':
inc result
inc i
proc beforePattern(s: string, first: int): int =
proc beforePattern(s: string, first: int): int =
result = first-1
while result >= 0:
if s[result] in NewLines: break
dec(result)
inc(result)
proc afterPattern(s: string, last: int): int =
proc afterPattern(s: string, last: int): int =
result = last+1
while result < s.len:
if s[result] in NewLines: break
@@ -99,7 +99,7 @@ proc writeColored(s: string) =
stdout.write(s)
proc highlight(s, match, repl: string, t: tuple[first, last: int],
line: int, showRepl: bool) =
line: int, showRepl: bool) =
const alignment = 6
stdout.write(line.`$`.align(alignment), ": ")
var x = beforePattern(s, t.first)
@@ -118,17 +118,17 @@ proc highlight(s, match, repl: string, t: tuple[first, last: int],
proc processFile(filename: string) =
var filenameShown = false
template beforeHighlight =
if not filenameShown and optVerbose notin options:
stdout.writeln(filename)
if not filenameShown and optVerbose notin options:
stdout.writeLine(filename)
filenameShown = true
var buffer: string
try:
buffer = system.readFile(filename)
except IOError:
except IOError:
echo "cannot open file: ", filename
return
if optVerbose in options: stdout.writeln(filename)
if optVerbose in options: stdout.writeLine(filename)
var pegp: TPeg
var rep: Regex
var result: string
@@ -140,10 +140,10 @@ proc processFile(filename: string) =
rep = re(pattern)
else:
pegp = peg(pattern)
if optReplace in options:
result = newStringOfCap(buffer.len)
var line = 1
var i = 0
var matches: array[0..re.MaxSubpatterns-1, string]
@@ -157,24 +157,24 @@ proc processFile(filename: string) =
t = findBounds(buffer, rep, matches, i)
if t.first <= 0: break
inc(line, countLines(buffer, i, t.first-1))
var wholeMatch = buffer.substr(t.first, t.last)
beforeHighlight()
if optReplace notin options:
if optReplace notin options:
highlight(buffer, wholeMatch, "", t, line, showRepl=false)
else:
var r: string
if optRegex notin options:
r = replace(wholeMatch, pegp, replacement % matches)
else:
else:
r = replace(wholeMatch, rep, replacement % matches)
if optConfirm in options:
if optConfirm in options:
highlight(buffer, wholeMatch, r, t, line, showRepl=true)
case confirm()
of ceAbort: quit(0)
of ceYes: reallyReplace = true
of ceAll:
of ceYes: reallyReplace = true
of ceAll:
reallyReplace = true
options.excl(optConfirm)
of ceNo:
@@ -203,11 +203,11 @@ proc processFile(filename: string) =
proc hasRightExt(filename: string, exts: seq[string]): bool =
var y = splitFile(filename).ext.substr(1) # skip leading '.'
for x in items(exts):
for x in items(exts):
if os.cmpPaths(x, y) == 0: return true
proc styleInsensitive(s: string): string =
template addx: stmt =
proc styleInsensitive(s: string): string =
template addx: stmt =
result.add(s[i])
inc(i)
result = ""
@@ -215,7 +215,7 @@ proc styleInsensitive(s: string): string =
var brackets = 0
while i < s.len:
case s[i]
of 'A'..'Z', 'a'..'z', '0'..'9':
of 'A'..'Z', 'a'..'z', '0'..'9':
addx()
if brackets == 0: result.add("_?")
of '_':
@@ -234,29 +234,29 @@ proc styleInsensitive(s: string): string =
while s[i] != '>' and s[i] != '\0': addx()
of '\\':
addx()
if s[i] in strutils.Digits:
if s[i] in strutils.Digits:
while s[i] in strutils.Digits: addx()
else:
addx()
else: addx()
proc walker(dir: string) =
proc walker(dir: string) =
for kind, path in walkDir(dir):
case kind
of pcFile:
of pcFile:
if extensions.len == 0 or path.hasRightExt(extensions):
processFile(path)
of pcDir:
of pcDir:
if optRecursive in options:
walker(path)
else: discard
if existsFile(dir): processFile(dir)
proc writeHelp() =
proc writeHelp() =
stdout.write(Usage)
quit(0)
proc writeVersion() =
proc writeVersion() =
stdout.write(Version & "\n")
quit(0)
@@ -267,9 +267,9 @@ proc checkOptions(subset: TOptions, a, b: string) =
for kind, key, val in getopt():
case kind
of cmdArgument:
if options.contains(optStdin):
if options.contains(optStdin):
filenames.add(key)
elif pattern.len == 0:
elif pattern.len == 0:
pattern = key
elif options.contains(optReplace) and replacement.len == 0:
replacement = key
@@ -306,7 +306,7 @@ checkOptions({optFind, optReplace}, "find", "replace")
checkOptions({optPeg, optRegex}, "peg", "re")
checkOptions({optIgnoreCase, optIgnoreStyle}, "ignore_case", "ignore_style")
if optStdin in options:
if optStdin in options:
pattern = ask("pattern [ENTER to exit]: ")
if isNil(pattern) or pattern.len == 0: quit(0)
if optReplace in options:
@@ -314,18 +314,18 @@ if optStdin in options:
if pattern.len == 0:
writeHelp()
else:
if filenames.len == 0:
else:
if filenames.len == 0:
filenames.add(os.getCurrentDir())
if optRegex notin options:
if optRegex notin options:
if optWord in options:
pattern = r"(^ / !\letter)(" & pattern & r") !\letter"
if optIgnoreStyle in options:
if optIgnoreStyle in options:
pattern = "\\y " & pattern
elif optIgnoreCase in options:
pattern = "\\i " & pattern
else:
if optIgnoreStyle in options:
if optIgnoreStyle in options:
pattern = styleInsensitive(pattern)
if optWord in options:
pattern = r"\b (:?" & pattern & r") \b"

View File

@@ -126,10 +126,10 @@ proc parseCmdLine(c: var TConfigData) =
break
of cmdLongOption, cmdShortOption:
case normalize(key)
of "help", "h":
of "help", "h":
stdout.write(usage)
quit(0)
of "version", "v":
of "version", "v":
stdout.write(version & "\n")
quit(0)
of "o", "output": c.outdir = val
@@ -431,7 +431,7 @@ proc buildWebsite(c: var TConfigData) =
if not existsDir("web/upload"):
createDir("web/upload")
if open(f, outfile, fmWrite):
writeln(f, generateHTMLPage(c, file, content, rss))
writeLine(f, generateHTMLPage(c, file, content, rss))
close(f)
else:
quit("[Error] cannot write file: " & outfile)