summaryrefslogtreecommitdiffstats
path: root/man_term.c
diff options
context:
space:
mode:
Diffstat (limited to 'man_term.c')
-rw-r--r--man_term.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/man_term.c b/man_term.c
index e227ec23..f5c9c500 100644
--- a/man_term.c
+++ b/man_term.c
@@ -82,6 +82,7 @@ static const struct termact termacts[MAN_MAX] = {
{ pre_RI, NULL }, /* RI */
{ pre_PP, NULL }, /* br */
{ NULL, NULL }, /* na */
+ { pre_I, post_I }, /* i */
};
static void print_head(struct termp *,
@@ -282,15 +283,15 @@ pre_IP(DECL_ARGS)
if (NULL == (nn = n->child))
return(1);
-
- /* FIXME - ignore the designator. */
- nn = nn->next;
-
if (MAN_TEXT != nn->type)
errx(1, "expected text line argument");
- offs = (size_t)atoi(nn->string);
- nn = nn->next;
+ if (nn->next) {
+ if (MAN_TEXT != nn->next->type)
+ errx(1, "expected text line argument");
+ offs = (size_t)atoi(nn->next->string);
+ } else
+ offs = strlen(nn->string);
p->flags |= TERMP_NOSPACE;
p->offset += offs;