def roff_body

cli@0.2.0.0 · cli.bend:6172

import cli@0.2.0.0/cli.bend as Cli
import Base

6172# Text for man(7), start telling whether a line starts here: \, -, ", '
6173# and ` as escapes, and \& before a . or a space that starts a line.
6174def roff_body(s: String, start: Bool) -> String:
6175  match s start:
6176    case SNil{} _: SNil{}
6177    case SCon{Chr{46}, tail} True{}: String.append("\\&.", roff_body(tail, False{}))
6178    case SCon{Chr{32}, tail} True{}: String.append("\\& ", roff_body(tail, False{}))
6179    case SCon{Chr{10}, tail} _: SCon{'\n', roff_body(tail, True{})}
6180    case SCon{Chr{92}, tail} _: String.append("\\e", roff_body(tail, False{}))
6181    case SCon{Chr{45}, tail} _: String.append("\\-", roff_body(tail, False{}))
6182    case SCon{Chr{34}, tail} _: String.append("\\(dq", roff_body(tail, False{}))
6183    case SCon{Chr{39}, tail} _: String.append("\\(aq", roff_body(tail, False{}))
6184    case SCon{Chr{96}, tail} _: String.append("\\(ga", roff_body(tail, False{}))
6185    case SCon{c, tail} _: SCon{c, roff_body(tail, False{})}

Uses (7)

Used by (2)