summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2009-03-27 13:44:24 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2009-03-27 13:44:24 +0000
commitd412ae3c0de385ea9498645ea9191642ad37eae6 (patch)
tree2e3c4fc12494a9aee3b8b49d2e764fc70ebff770
parent9f8dd9d1a39f94e7aed1b9b4a7abe13a5a96b450 (diff)
downloadmandoc-d412ae3c0de385ea9498645ea9191642ad37eae6.tar.gz
mandoc-d412ae3c0de385ea9498645ea9191642ad37eae6.tar.zst
mandoc-d412ae3c0de385ea9498645ea9191642ad37eae6.zip
Fixes in going over all OpenBSD manuals.
-rw-r--r--Makefile20
-rw-r--r--ascii.in3
-rw-r--r--mdoc.76
-rw-r--r--mdoc_macro.c34
-rw-r--r--strings.c8
5 files changed, 44 insertions, 27 deletions
diff --git a/Makefile b/Makefile
index ef534bb5..fd53b646 100644
--- a/Makefile
+++ b/Makefile
@@ -18,14 +18,14 @@ LINTFLAGS += $(VFLAGS)
CFLAGS += $(VFLAGS)
MDOCLNS = mdoc_macro.ln mdoc.ln mdoc_hash.ln strings.ln xstd.ln \
- argv.ln mdoc_validate.ln mdoc_action.ln lib.ln att.ln \
- arch.ln vol.ln msec.ln st.ln
-MDOCOBJS = mdoc_macro.o mdoc.o mdoc_hash.o strings.o xstd.o argv.o \
- mdoc_validate.o mdoc_action.o lib.o att.o arch.o vol.o \
- msec.o st.o
-MDOCSRCS = mdoc_macro.c mdoc.c mdoc_hash.c strings.c xstd.c argv.c \
- mdoc_validate.c mdoc_action.c lib.c att.c arch.c vol.c \
- msec.c st.c
+ mdoc_argv.ln mdoc_validate.ln mdoc_action.ln lib.ln \
+ att.ln arch.ln vol.ln msec.ln st.ln
+MDOCOBJS = mdoc_macro.o mdoc.o mdoc_hash.o strings.o xstd.o \
+ mdoc_argv.o mdoc_validate.o mdoc_action.o lib.o att.o \
+ arch.o vol.o msec.o st.o
+MDOCSRCS = mdoc_macro.c mdoc.c mdoc_hash.c strings.c xstd.c \
+ mdoc_argv.c mdoc_validate.c mdoc_action.c lib.c att.c \
+ arch.c vol.c msec.c st.c
MANLNS = man_macro.ln man.ln man_hash.ln man_validate.ln \
man_action.ln
@@ -159,8 +159,8 @@ terminal.o: terminal.c term.h man.h mdoc.h
xstd.ln: xstd.c libmdoc.h
xstd.o: xstd.c libmdoc.h
-argv.ln: argv.c libmdoc.h
-argv.o: argv.c libmdoc.h
+mdoc_argv.ln: mdoc_argv.c libmdoc.h
+mdoc_argv.o: mdoc_argv.c libmdoc.h
man_validate.ln: man_validate.c libman.h
man_validate.o: man_validate.c libman.h
diff --git a/ascii.in b/ascii.in
index 3eb4a84d..c9de5cb1 100644
--- a/ascii.in
+++ b/ascii.in
@@ -1,4 +1,4 @@
-/* $Id: ascii.in,v 1.5 2009/03/21 13:47:02 kristaps Exp $ */
+/* $Id: ascii.in,v 1.6 2009/03/27 13:44:24 kristaps Exp $ */
/*
* Copyright (c) 2009 Kristaps Dzonsons <kristaps@openbsd.org>
*
@@ -32,6 +32,7 @@ LINE("`", 1, "`", 1)
LINE("%", 1, "%", 1)
LINE("-", 1, "-", 1)
LINE(" ", 1, " ", 1)
+LINE("0", 1, " ", 1)
LINE(".", 1, ".", 1)
LINE("&", 1, "", 0)
LINE("e", 1, "\\", 1)
diff --git a/mdoc.7 b/mdoc.7
index 90f1f68a..b0a6fa7d 100644
--- a/mdoc.7
+++ b/mdoc.7
@@ -1,4 +1,4 @@
-.\" $Id: mdoc.7,v 1.17 2009/03/26 23:01:26 kristaps Exp $
+.\" $Id: mdoc.7,v 1.18 2009/03/27 13:44:24 kristaps Exp $
.\"
.\" Copyright (c) 2009 Kristaps Dzonsons <kristaps@openbsd.org>
.\"
@@ -16,7 +16,7 @@
.\" TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
.\" PERFORMANCE OF THIS SOFTWARE.
.\"
-.Dd $Mdocdate: March 26 2009 $
+.Dd $Mdocdate: March 27 2009 $
.Dt mdoc 7
.Os
.\" SECTION
@@ -506,6 +506,8 @@ Monetary:
.Pp
Special symbols:
.Bl -tag -width 12n -offset "XXXX" -compact
+.It \e0
+.Pq white-space
.It \e(de
.Pq degree
.It \e(ps
diff --git a/mdoc_macro.c b/mdoc_macro.c
index c73d4312..d1597569 100644
--- a/mdoc_macro.c
+++ b/mdoc_macro.c
@@ -1,4 +1,4 @@
-/* $Id: mdoc_macro.c,v 1.2 2009/03/23 15:41:09 kristaps Exp $ */
+/* $Id: mdoc_macro.c,v 1.3 2009/03/27 13:44:24 kristaps Exp $ */
/*
* Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@openbsd.org>
*
@@ -800,7 +800,7 @@ blk_exp_close(MACRO_PROT_ARGS)
static int
in_line(MACRO_PROT_ARGS)
{
- int la, lastpunct, c, w;
+ int la, lastpunct, c, w, cnt, d, call;
struct mdoc_arg *arg;
char *p;
@@ -812,7 +812,6 @@ in_line(MACRO_PROT_ARGS)
*pos = la;
break;
}
-
if (ARGV_EOLN == c)
break;
if (ARGV_ARG == c)
@@ -822,11 +821,7 @@ in_line(MACRO_PROT_ARGS)
return(0);
}
- if ( ! mdoc_elem_alloc(mdoc, line, ppos, tok, arg))
- return(0);
- mdoc->next = MDOC_NEXT_CHILD;
-
- for (lastpunct = 0;; ) {
+ for (call = cnt = 0, lastpunct = 1;; ) {
la = *pos;
w = mdoc_args(mdoc, line, pos, buf, tok, &p);
@@ -847,6 +842,14 @@ in_line(MACRO_PROT_ARGS)
if (MDOC_MAX != c && -1 != c) {
if (0 == lastpunct && ! rew_elem(mdoc, tok))
return(0);
+ if (0 == cnt) {
+ if ( ! mdoc_elem_alloc(mdoc, line, ppos,
+ tok, arg))
+ return(0);
+ if ( ! rew_elem(mdoc, tok))
+ return(0);
+ mdoc->next = MDOC_NEXT_SIBLING;
+ }
c = mdoc_macro(mdoc, c, line, la, pos, buf);
if (0 == c)
return(0);
@@ -858,20 +861,22 @@ in_line(MACRO_PROT_ARGS)
/* Non-quote-enclosed punctuation. */
- if (ARGS_QWORD != w && mdoc_isdelim(p)) {
+ d = mdoc_isdelim(p);
+
+ if (ARGS_QWORD != w && d) {
if (0 == lastpunct && ! rew_elem(mdoc, tok))
return(0);
lastpunct = 1;
} else if (lastpunct) {
c = mdoc_elem_alloc(mdoc, line, ppos, tok, arg);
-
if (0 == c)
return(0);
-
mdoc->next = MDOC_NEXT_CHILD;
lastpunct = 0;
}
+ if ( ! d)
+ cnt++;
if ( ! mdoc_word_alloc(mdoc, line, la, p))
return(0);
mdoc->next = MDOC_NEXT_SIBLING;
@@ -879,6 +884,13 @@ in_line(MACRO_PROT_ARGS)
if (0 == lastpunct && ! rew_elem(mdoc, tok))
return(0);
+ if (0 == cnt) {
+ c = mdoc_elem_alloc(mdoc, line, ppos, tok, arg);
+ if (0 == c)
+ return(0);
+ if ( ! rew_elem(mdoc, tok))
+ return(0);
+ }
if (ppos > 1)
return(1);
return(append_delims(mdoc, line, pos, buf));
diff --git a/strings.c b/strings.c
index cc1c3a44..a3e3836b 100644
--- a/strings.c
+++ b/strings.c
@@ -1,4 +1,4 @@
-/* $Id: strings.c,v 1.32 2009/03/23 14:22:11 kristaps Exp $ */
+/* $Id: strings.c,v 1.33 2009/03/27 13:44:24 kristaps Exp $ */
/*
* Copyright (c) 2008 Kristaps Dzonsons <kristaps@kth.se>
*
@@ -89,6 +89,8 @@ mdoc_isescape(const char *p)
/* FALLTHROUGH */
case ('%'):
/* FALLTHROUGH */
+ case ('0'):
+ /* FALLTHROUGH */
case (' '):
/* FALLTHROUGH */
case ('|'):
@@ -210,9 +212,9 @@ mdoc_atotime(const char *p)
(void)memset(&tm, 0, sizeof(struct tm));
- if (xstrcmp(p, "$Mdocdate: March 23 2009 $"))
+ if (xstrcmp(p, "$Mdocdate: March 27 2009 $"))
return(time(NULL));
- if ((pp = strptime(p, "$Mdocdate: March 23 2009 $", &tm)) && 0 == *pp)
+ if ((pp = strptime(p, "$Mdocdate: March 27 2009 $", &tm)) && 0 == *pp)
return(mktime(&tm));
/* XXX - this matches "June 1999", which is wrong. */
if ((pp = strptime(p, "%b %d %Y", &tm)) && 0 == *pp)