4.3BSD/usr/contrib/icon/src/lib/bold.icn
# BOLD(2)
#
# Produce bold and underscored text for printing
#
# Ralph E. Griswold
#
# Last modified 7/24/83
#
procedure bold(s)
local c
static labels, trans, max
initial {
labels := "1"
trans := repl("1\b",4)
max := *labels
trans := bold(string(&lcase))
labels := string(&lcase)
max := *labels
}
if *s <= max then
return map(left(trans,9 * *s),left(labels,*s),s)
else return bold(left(s,*s - max)) ||
map(trans,labels,right(s,max))
end
procedure uscore(s)
static labels, trans, max
initial {
labels := "1"
trans := "_\b1"
max := *labels
trans := uscore(string(&lcase))
labels := string(&lcase)
max := *labels
}
if *s <= max then
return map(left(trans,3 * *s),left(labels,*s),s)
else return uscore(left(s,*s - max)) ||
map(trans,labels,right(s,max))
end