Simplified some code

This commit is contained in:
Julien Dessaux 2021-10-06 00:08:14 +02:00
parent 736d018152
commit 2623e80a93
3 changed files with 7 additions and 17 deletions

View file

@ -21,7 +21,6 @@ func (p *Pointer) Exec(f *field.Field) (done bool, returnValue *int) {
}
if c == '"' {
p.stringMode = false
p.lastCharWasSpace = false
} else {
if c == ' ' {
p.lastCharWasSpace = true
@ -65,30 +64,22 @@ func (p *Pointer) eval(c int, f *field.Field) (done bool, returnValue *int) {
v := p.ss.head.Pop()
return true, &v
case 'k':
x, y := p.x, p.y
n := p.ss.head.Pop()
c = p.StepAndGet(*f)
steps := 1
for jumpingMode := false; jumpingMode || c == ' ' || c == ';'; c = p.StepAndGet(*f) {
steps += 1
if c == ';' {
jumpingMode = !jumpingMode
}
}
if n > 0 {
// we need to reverse that step
p.Reverse()
for i := 0; i < steps; i++ {
p.Step(*f)
}
p.Reverse()
p.x, p.y = x, y
if c != ' ' && c != ';' {
if n > 0 {
for i := 0; i < n; i++ {
p.eval(c, f)
}
}
}
}
case '!':
v := p.ss.head.Pop()
if v == 0 {

View file

@ -99,9 +99,8 @@ func (p *Pointer) Redirect(c int) bool {
case 'r':
p.Reverse()
case 'x':
dy := p.ss.head.Pop()
dx := p.ss.head.Pop()
p.RedirectTo(dx, dy)
p.dy = p.ss.head.Pop()
p.dx = p.ss.head.Pop()
default:
return false
}

View file

@ -80,7 +80,7 @@ func (ss *StackStack) End(p *Pointer) (reflect bool) {
}
}
ss.height--
ss.head = ss.head.next
ss.head = soss
return false
}