From a974d4be58d9f1f741b4e1b5e0b69934a2eeacec Mon Sep 17 00:00:00 2001 From: Kristaps Dzonsons Date: Mon, 29 Nov 2010 13:02:47 +0000 Subject: Move `Mt', `Ar', and `Li' handling from mdoc_action.c into mdoc_validate.c. Clarify that `Mt' gets a default `~' (as per groff 1.20) and document it in mdoc.7. Made `Lk' be removed in mdoc_macro.c if it has no arguments. This fixes segfaults in mdoc_{term,html}.c that nobody's managed to raise yet. --- mdoc_action.c | 53 +++-------------------------------------------------- 1 file changed, 3 insertions(+), 50 deletions(-) (limited to 'mdoc_action.c') diff --git a/mdoc_action.c b/mdoc_action.c index d0b6411e..bbe110d4 100644 --- a/mdoc_action.c +++ b/mdoc_action.c @@ -1,4 +1,4 @@ -/* $Id: mdoc_action.c,v 1.79 2010/11/29 12:22:28 kristaps Exp $ */ +/* $Id: mdoc_action.c,v 1.80 2010/11/29 13:02:47 kristaps Exp $ */ /* * Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons * @@ -51,7 +51,6 @@ struct actions { static int concat(struct mdoc *, char *, const struct mdoc_node *, size_t); -static int post_ar(POST_ARGS); static int post_at(POST_ARGS); static int post_bl(POST_ARGS); static int post_bl_head(POST_ARGS); @@ -61,7 +60,6 @@ static int post_dd(POST_ARGS); static int post_display(POST_ARGS); static int post_dt(POST_ARGS); static int post_lb(POST_ARGS); -static int post_li(POST_ARGS); static int post_nm(POST_ARGS); static int post_os(POST_ARGS); static int post_pa(POST_ARGS); @@ -90,7 +88,7 @@ static const struct actions mdoc_actions[MDOC_MAX] = { { NULL, NULL }, /* It */ { NULL, NULL }, /* Ad */ { NULL, NULL }, /* An */ - { NULL, post_ar }, /* Ar */ + { NULL, NULL }, /* Ar */ { NULL, NULL }, /* Cd */ { NULL, NULL }, /* Cm */ { NULL, NULL }, /* Dv */ @@ -104,7 +102,7 @@ static const struct actions mdoc_actions[MDOC_MAX] = { { NULL, NULL }, /* Ft */ { NULL, NULL }, /* Ic */ { NULL, NULL }, /* In */ - { NULL, post_li }, /* Li */ + { NULL, NULL }, /* Li */ { NULL, NULL }, /* Nd */ { NULL, post_nm }, /* Nm */ { NULL, NULL }, /* Op */ @@ -856,51 +854,6 @@ post_pa(POST_ARGS) } -/* - * Empty `Li' macros get an empty string to make front-ends add an extra - * space. - */ -static int -post_li(POST_ARGS) -{ - struct mdoc_node *np; - - if (n->child) - return(1); - - np = n; - m->next = MDOC_NEXT_CHILD; - if ( ! mdoc_word_alloc(m, n->line, n->pos, "")) - return(0); - m->last = np; - return(1); -} - - -/* - * The `Ar' macro defaults to two strings "file ..." if no value is - * provided as an argument. - */ -static int -post_ar(POST_ARGS) -{ - struct mdoc_node *np; - - if (n->child) - return(1); - - np = n; - m->next = MDOC_NEXT_CHILD; - /* XXX: make into macro values. */ - if ( ! mdoc_word_alloc(m, n->line, n->pos, "file")) - return(0); - if ( ! mdoc_word_alloc(m, n->line, n->pos, "...")) - return(0); - m->last = np; - return(1); -} - - /* * Parse the date field in `Dd'. */ -- cgit v1.2.3-56-ge451