stripunb.icn: Procedures to strip unbalanced material

link stripunb
May 2, 2001; Richard L. Goerwitz
This file is in the public domain.

This routine strips material from a line which is unbalanced with
respect to the characters defined in arguments 1 and 2 (unbalanced
being defined as bal() defines it, except that characters preceded
by a backslash are counted as regular characters, and are not taken
into account by the balancing algorithm).

One little bit of weirdness I added in is a table argument. Put
simply, if you call stripunb() as follows,

    stripunb('<','>',s,&null,&null,t)

and if t is a table having the form,

    key:  "bold"        value: outstr("\e[2m", "\e1m")
    key:  "underline"   value: outstr("\e[4m", "\e1m")
    etc.

then every instance of "<bold>" in string s will be mapped to
"\e2m," and every instance of "</bold>" will be mapped to "\e[1m."
Values in table t must be records of type output(on, off).  When
"</>" is encountered, stripunb will output the .off value for the
preceding .on string encountered.

Source code | Program Library Page | Icon Home Page