]> git.cameronkatri.com Git - mandoc.git/commitdiff
Fixes in going over all OpenBSD manuals.
authorKristaps Dzonsons <kristaps@bsd.lv>
Fri, 27 Mar 2009 13:44:24 +0000 (13:44 +0000)
committerKristaps Dzonsons <kristaps@bsd.lv>
Fri, 27 Mar 2009 13:44:24 +0000 (13:44 +0000)
Makefile
ascii.in
mdoc.7
mdoc_macro.c
strings.c

index ef534bb5a1f11d27a32aa0e354798f745089f587..fd53b646cab4028e9047e03edb1f5cf4960bf77a 100644 (file)
--- 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
index 3eb4a84d913b49a5180c0c2535dbc2833113f7b1..c9de5cb172bfb563fa4f97a477c3b704aaf0bdbe 100644 (file)
--- 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 90f1f68a8a960f6f00b7c1fd3462a6e2ed34741c..b0a6fa7dc93ea98f769f1de33e97107c18019662 100644 (file)
--- 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
index c73d43127e2c973618ac259115767dbc87a92133..d1597569e5029621f6dbdd1ffa8deb3f1cb1231e 100644 (file)
@@ -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));
index cc1c3a448ae1c2420b73f9050f7ab2f5db3de395..a3e3836b85f58544c291877ccb85784ef6bc6106 100644 (file)
--- 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)