# $Id: faq-txt.awk,v 1.1 2003/12/24 07:50:59 joor Exp $ function wrap(line, prefix) { wrapMargin = 75; if (length(line) < wrapMargin) { print prefix line; } else { count = split(line, words); indent = match(line, /[^ ]/) indentStr = substr( \ " ", \ 1, indent - 1); result = ""; for (w = 1; w <= count; w++) { if (length(result) + length(words[w]) > wrapMargin - indent) { # print a new line print prefix indentStr result; result = words[w]; } else { if (w == 1) result = words[w] else result = result " " words[w]; } } print prefix indentStr result; } } BEGIN { prefixed = 0; pre = 0 } /^PREFIXED$/ {prefixed = 1; next } /^NOT_PREFIXED$/ {prefixed = 0; next } /^PRE$/ {pre = 1; next } /^NOT_PRE$/ {pre = 0; next } { if (pre) { if (prefixed) print "> " $0; else print $0; } else { if (prefixed) wrap($0, "> "); else wrap($0, "") } }