# SNAPSHOT(2) # # Snapshot of string scanning # # Ralph E. Griswold # # Last modified 5/12/83 # procedure snapshot() local bar, p1, p2, p3, i if pos(0) then { p2 := *image(&subject) - 2 p1 := p2 + 1 p3 := 0 } else { p1 := 0 every i := 1 to &pos do p1 +:= *image(&subject[i]) - 2 p3 := *image(&subject[&pos]) - 3 p2 := p1 every i := &pos + 1 to *&subject do p2 +:= *image(&subject[i]) - 2 } write(bar := repl("-",17 + p2)) write("|",right("|",16 + p2)) write("| &subject = ",image(&subject)," |") write("| ",right("|",p1 - p3 + 1), right("|",p2 - p1 + p3 + 3)) write(bar) return end