class Ronn::RoffFilter
def escape(text)
def escape(text) return text.to_s if text.nil? || text.empty? ent = HTML_ROFF_ENTITIES text = text.dup text.gsub!(/&#x([0-9A-Fa-f]+);/) { $1.to_i(16).chr } # hex entities text.gsub!(/&#(\d+);/) { $1.to_i.chr } # dec entities text.gsub!('\\', '\e') # backslash text.gsub!(/['.-]/) { |m| "\\#{m}" } # control chars text.gsub!(/(&[A-Za-z]+;)/) { ent[$1] || $1 } # named entities text.gsub!('&', '&') # amps text end