def textToNroff(s, font=r'\fR'):
def escape(match):
c = match.group(0)
- if c == '-':
- if font == r'\fB':
- return r'\-'
+ if c.startswith('-'):
+ if c != '-' or font == r'\fB':
+ return '\\' + c
else:
return '-'
if c == '\\':
raise error.Error("bad escape")
# Escape - \ " ' as needed by nroff.
- s = re.sub('([-"\'\\\\])', escape, s)
+ s = re.sub('(-[0-9]|[-"\'\\\\])', escape, s)
if s.startswith('.'):
s = '\\' + s
return s
def typeAndConstraintsToNroff(column):
type = column.type.toEnglish(escapeNroffLiteral)
- constraints = column.type.constraintsToEnglish(escapeNroffLiteral)
+ constraints = column.type.constraintsToEnglish(escapeNroffLiteral,
+ textToNroff)
if constraints:
type += ", " + constraints
if column.unique:
type_ = column.type.value
nameNroff = "%s : %s" % (name, key)
- typeNroff = "optional %s" % column.type.value.toEnglish()
+ typeNroff = "optional %s" % column.type.value.toEnglish(
+ escapeNroffLiteral)
if (column.type.value.type == ovs.db.types.StringType and
type_.type == ovs.db.types.BooleanType):
# This is a little more explicit and helpful than
typeNroff += r", either \fBtrue\fR or \fBfalse\fR"
else:
if type_.type != column.type.value.type:
- type_english = type_.toEnglish()
+ type_english = type_.toEnglish(escapeNroffLiteral)
if type_english[0] in 'aeiou':
typeNroff += ", containing an %s" % type_english
else: