4.3BSD/usr/contrib/icon/book/11/mark.icn

procedure mark(s)
   local line, marker, i
   while line := read() do {
      marker := ""	# initialize marker
      every i := find(s,line) do
         marker := left(marker,i - 1) || "|"
      write(line,"\n",marker)	# write line and marker
      }
   return
end