fixes filter bug for empty lines
This commit is contained in:
parent
c12726d41e
commit
4da0135ace
1 changed files with 10 additions and 14 deletions
|
|
@ -42,8 +42,7 @@ proc newLine(p: var TTmplParser) =
|
||||||
|
|
||||||
proc scanPar(p: var TTmplParser, d: int) =
|
proc scanPar(p: var TTmplParser, d: int) =
|
||||||
var i = d
|
var i = d
|
||||||
let hi = p.x.len - 1
|
while i < p.x.len:
|
||||||
while i <= hi:
|
|
||||||
case p.x[i]
|
case p.x[i]
|
||||||
of '(': inc(p.par)
|
of '(': inc(p.par)
|
||||||
of ')': dec(p.par)
|
of ')': dec(p.par)
|
||||||
|
|
@ -63,22 +62,19 @@ const
|
||||||
|
|
||||||
proc parseLine(p: var TTmplParser) =
|
proc parseLine(p: var TTmplParser) =
|
||||||
var j = 0
|
var j = 0
|
||||||
let hi = p.x.len - 1
|
let len = p.x.len
|
||||||
|
|
||||||
if hi < 0:
|
while j < len and p.x[j] == ' ': inc(j)
|
||||||
return
|
|
||||||
|
|
||||||
while j <= hi and p.x[j] == ' ': inc(j)
|
if len >= 2 and p.x[0] == p.nimDirective and p.x[1] == '?':
|
||||||
|
|
||||||
if p.x.len >= 2 and p.x[0] == p.nimDirective and p.x[1] == '?':
|
|
||||||
newLine(p)
|
newLine(p)
|
||||||
elif j < p.x.len and p.x[j] == p.nimDirective:
|
elif j < len and p.x[j] == p.nimDirective:
|
||||||
newLine(p)
|
newLine(p)
|
||||||
inc(j)
|
inc(j)
|
||||||
while j <= hi and p.x[j] == ' ': inc(j)
|
while j < len and p.x[j] == ' ': inc(j)
|
||||||
let d = j
|
let d = j
|
||||||
var keyw = ""
|
var keyw = ""
|
||||||
while j <= hi and p.x[j] in PatternChars:
|
while j < len and p.x[j] in PatternChars:
|
||||||
add(keyw, p.x[j])
|
add(keyw, p.x[j])
|
||||||
inc(j)
|
inc(j)
|
||||||
|
|
||||||
|
|
@ -132,7 +128,7 @@ proc parseLine(p: var TTmplParser) =
|
||||||
llStreamWrite(p.outp, "(\"")
|
llStreamWrite(p.outp, "(\"")
|
||||||
inc(p.emitPar)
|
inc(p.emitPar)
|
||||||
p.state = psTempl
|
p.state = psTempl
|
||||||
while j <= hi:
|
while j < len:
|
||||||
case p.x[j]
|
case p.x[j]
|
||||||
of '\x01'..'\x1F', '\x80'..'\xFF':
|
of '\x01'..'\x1F', '\x80'..'\xFF':
|
||||||
llStreamWrite(p.outp, "\\x")
|
llStreamWrite(p.outp, "\\x")
|
||||||
|
|
@ -160,7 +156,7 @@ proc parseLine(p: var TTmplParser) =
|
||||||
llStreamWrite(p.outp, '(')
|
llStreamWrite(p.outp, '(')
|
||||||
inc(j)
|
inc(j)
|
||||||
var curly = 0
|
var curly = 0
|
||||||
while j <= hi:
|
while j < len:
|
||||||
case p.x[j]
|
case p.x[j]
|
||||||
of '{':
|
of '{':
|
||||||
inc(j)
|
inc(j)
|
||||||
|
|
@ -185,7 +181,7 @@ proc parseLine(p: var TTmplParser) =
|
||||||
llStreamWrite(p.outp, p.conc)
|
llStreamWrite(p.outp, p.conc)
|
||||||
llStreamWrite(p.outp, p.toStr)
|
llStreamWrite(p.outp, p.toStr)
|
||||||
llStreamWrite(p.outp, '(')
|
llStreamWrite(p.outp, '(')
|
||||||
while j <= hi and p.x[j] in PatternChars:
|
while j < len and p.x[j] in PatternChars:
|
||||||
llStreamWrite(p.outp, p.x[j])
|
llStreamWrite(p.outp, p.x[j])
|
||||||
inc(j)
|
inc(j)
|
||||||
llStreamWrite(p.outp, ')')
|
llStreamWrite(p.outp, ')')
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue