summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--macro.c18
-rw-r--r--mdoc.c10
-rw-r--r--mdoc.h3
-rw-r--r--mdocml.c5
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 <kristaps@kth.se>
*
@@ -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 <kristaps@kth.se>
*
@@ -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 <kristaps@kth.se>
*
@@ -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 <kristaps@kth.se>
*
@@ -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;