From cb77fc9bd0b87a9957756097e114360260e91b5d Mon Sep 17 00:00:00 2001 From: Kristaps Dzonsons Date: Mon, 29 Dec 2008 19:25:29 +0000 Subject: *** empty log message *** --- macro.c | 18 +++++++++++++++++- mdoc.c | 10 +++++----- mdoc.h | 3 ++- mdocml.c | 5 ++++- 4 files changed, 28 insertions(+), 8 deletions(-) diff --git a/macro.c b/macro.c index 31775668..e14dedb5 100644 --- a/macro.c +++ b/macro.c @@ -1,4 +1,4 @@ -/* $Id: macro.c,v 1.11 2008/12/29 18:08:44 kristaps Exp $ */ +/* $Id: macro.c,v 1.12 2008/12/29 19:25:29 kristaps Exp $ */ /* * Copyright (c) 2008 Kristaps Dzonsons * @@ -219,6 +219,18 @@ append_const(struct mdoc *mdoc, int tok, mdoc_word_alloc(mdoc, pos, args[1]); return(1); + case (MDOC_Nd): + if (sz > 0) + break; + if ( ! mdoc_warn(mdoc, tok, pos, WARN_ARGS_GE1)) + return(0); + break; + + case (MDOC_Hf): + if (1 == sz) + break; + return(mdoc_err(mdoc, tok, pos, ERR_ARGS_EQ1)); + case (MDOC_Bx): /* FALLTHROUGH */ case (MDOC_Bsx): @@ -307,6 +319,10 @@ append_text(struct mdoc *mdoc, int tok, /* FALLTHROUGH */ case (MDOC_Ic): /* FALLTHROUGH */ + case (MDOC_Sy): + /* FALLTHROUGH */ + case (MDOC_Sx): + /* FALLTHROUGH */ case (MDOC_Va): /* FALLTHROUGH */ case (MDOC_Vt): diff --git a/mdoc.c b/mdoc.c index 9ac2e031..e4796b23 100644 --- a/mdoc.c +++ b/mdoc.c @@ -1,4 +1,4 @@ -/* $Id: mdoc.c,v 1.9 2008/12/29 18:08:44 kristaps Exp $ */ +/* $Id: mdoc.c,v 1.10 2008/12/29 19:25:29 kristaps Exp $ */ /* * Copyright (c) 2008 Kristaps Dzonsons * @@ -114,7 +114,7 @@ const struct mdoc_macro __mdoc_macros[MDOC_MAX] = { { macro_text, MDOC_CALLABLE }, /* Ic */ { NULL, 0 }, /* In */ { macro_text, MDOC_CALLABLE }, /* Li */ - { NULL, 0 }, /* Nd */ + { macro_constant, 0 }, /* Nd */ { NULL, 0 }, /* Nm */ { NULL, 0 }, /* Op */ { NULL, 0 }, /* Ot */ @@ -173,8 +173,8 @@ const struct mdoc_macro __mdoc_macros[MDOC_MAX] = { { NULL, 0 }, /* So */ { macro_scoped_pline, MDOC_CALLABLE }, /* Sq */ { NULL, 0 }, /* Sm */ - { NULL, 0 }, /* Sx */ - { NULL, 0 }, /* Sy */ + { macro_text, MDOC_CALLABLE }, /* Sx */ + { macro_text, MDOC_CALLABLE }, /* Sy */ { macro_text, MDOC_CALLABLE }, /* Tn */ { macro_constant_delimited, 0 }, /* Ux */ { NULL, 0 }, /* Xc */ @@ -186,7 +186,7 @@ const struct mdoc_macro __mdoc_macros[MDOC_MAX] = { { NULL, 0 }, /* Bk */ { NULL, 0 }, /* Ek */ { macro_constant, 0 }, /* Bt */ - { NULL, 0 }, /* Hf */ + { macro_constant, 0 }, /* Hf */ { NULL, 0 }, /* Fr */ { macro_constant, 0 }, /* Ud */ }; diff --git a/mdoc.h b/mdoc.h index c44a8b28..418441ed 100644 --- a/mdoc.h +++ b/mdoc.h @@ -1,4 +1,4 @@ -/* $Id: mdoc.h,v 1.8 2008/12/29 18:08:44 kristaps Exp $ */ +/* $Id: mdoc.h,v 1.9 2008/12/29 19:25:29 kristaps Exp $ */ /* * Copyright (c) 2008 Kristaps Dzonsons * @@ -212,6 +212,7 @@ enum mdoc_err { ERR_SEC_PROLOGUE_REP, ERR_SEC_NAME, ERR_ARGS_EQ0, + ERR_ARGS_EQ1, ERR_ARGS_GE1, ERR_ARGS_LE2, ERR_ARGS_MANY diff --git a/mdocml.c b/mdocml.c index 9a2dabe9..80875e0f 100644 --- a/mdocml.c +++ b/mdocml.c @@ -1,4 +1,4 @@ -/* $Id: mdocml.c,v 1.28 2008/12/29 18:08:44 kristaps Exp $ */ +/* $Id: mdocml.c,v 1.29 2008/12/29 19:25:29 kristaps Exp $ */ /* * Copyright (c) 2008 Kristaps Dzonsons * @@ -370,6 +370,9 @@ msg_err(void *arg, int tok, int col, enum mdoc_err type) case (ERR_ARGS_EQ0): fmt = "macro `%s' expects zero arguments"; break; + case (ERR_ARGS_EQ1): + fmt = "macro `%s' expects one argument"; + break; case (ERR_ARGS_GE1): fmt = "macro `%s' expects one or more arguments"; break; -- cgit v1.2.3-56-ge451