4.3BSD/usr/contrib/icon/book/10/display.icn

procedure main()
   local intext
   if not (intext := open("shaw.txt"))
   then stop("cannot open input file")
   write(linecount(intext))
end

procedure linecount(file)
   local count, line
   count := 0
   while line := read(file) do
      if find("stop",line) then break
      else count +:= 1
   display()
   return count
end