-- $Id: wc.lua,v 1.1 2001/05/14 16:33:47 doug Exp $
-- http://www.bagley.org/~doug/shootout/
-- from Roberto Ierusalimschy
BUFSIZE = 2^12
local cc,lc,wc = 0,0,0
while 1 do
local lines, rest = read(BUFSIZE, "*l")
if lines == nil then break end
if rest then lines = lines..rest..'\n' end
cc = cc+strlen(lines)
local _,t = gsub(lines, "%S+", "") -- count words in the line
wc = wc+t
_,t = gsub(lines, "\n", "\n") -- count newlines in the line
lc = lc+t
end
write(lc, " ", wc, " ", cc, "\n")