This is a higher speed (if messier) version of wrap
# File lib/rdoc/markup/to_html.rb, line 136
def wrap(txt, line_len = 76)
res = []
sp = 0
ep = txt.length
while sp < ep
# scan back for a space
p = sp + line_len - 1
if p >= ep
p = ep
else
while p > sp and txt[p] != \s\
p -= 1
end
if p <= sp
p = sp + line_len
while p < ep and txt[p] != \s\
p += 1
end
end
end
res << txt[sp...p] << "\n"
sp = p
sp += 1 while sp < ep and txt[sp] == \s\
end
res.join
end