Module Name:    src
Committed By:   joerg
Date:           Tue Jul 27 22:40:24 UTC 2010

Modified Files:
        src/external/bsd/mdocml/dist: man_term.c mdoc_action.c mdoc_term.c

Log Message:
Merge mdocml 1.10.5


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/external/bsd/mdocml/dist/man_term.c \
    src/external/bsd/mdocml/dist/mdoc_term.c
cvs rdiff -u -r1.11 -r1.12 src/external/bsd/mdocml/dist/mdoc_action.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/bsd/mdocml/dist/man_term.c
diff -u src/external/bsd/mdocml/dist/man_term.c:1.4 src/external/bsd/mdocml/dist/man_term.c:1.5
--- src/external/bsd/mdocml/dist/man_term.c:1.4	Sun Jul 25 19:12:40 2010
+++ src/external/bsd/mdocml/dist/man_term.c	Tue Jul 27 22:40:24 2010
@@ -1,6 +1,6 @@
-/*	$Vendor-Id: man_term.c,v 1.79 2010/07/07 15:04:54 kristaps Exp $ */
+/*	$Vendor-Id: man_term.c,v 1.84 2010/07/23 13:22:35 kristaps Exp $ */
 /*
- * Copyright (c) 2008, 2009 Kristaps Dzonsons <[email protected]>
+ * Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons <[email protected]>
  *
  * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
@@ -92,10 +92,9 @@
 static	int		  pre_SH(DECL_ARGS);
 static	int		  pre_SS(DECL_ARGS);
 static	int		  pre_TP(DECL_ARGS);
-static	int		  pre_br(DECL_ARGS);
-static	int		  pre_fi(DECL_ARGS);
 static	int		  pre_ign(DECL_ARGS);
-static	int		  pre_nf(DECL_ARGS);
+static	int		  pre_in(DECL_ARGS);
+static	int		  pre_literal(DECL_ARGS);
 static	int		  pre_sp(DECL_ARGS);
 
 static	void		  post_IP(DECL_ARGS);
@@ -106,7 +105,7 @@
 static	void		  post_TP(DECL_ARGS);
 
 static	const struct termact termacts[MAN_MAX] = {
-	{ pre_br, NULL, MAN_NOTEXT }, /* br */
+	{ pre_sp, NULL, MAN_NOTEXT }, /* br */
 	{ NULL, NULL, 0 }, /* TH */
 	{ pre_SH, post_SH, 0 }, /* SH */
 	{ pre_SS, post_SS, 0 }, /* SS */
@@ -130,8 +129,8 @@
 	{ NULL, NULL, MAN_NOTEXT }, /* na */
 	{ pre_I, NULL, 0 }, /* i */
 	{ pre_sp, NULL, MAN_NOTEXT }, /* sp */
-	{ pre_nf, NULL, 0 }, /* nf */
-	{ pre_fi, NULL, 0 }, /* fi */
+	{ pre_literal, NULL, 0 }, /* nf */
+	{ pre_literal, NULL, 0 }, /* fi */
 	{ NULL, NULL, 0 }, /* r */
 	{ NULL, NULL, 0 }, /* RE */
 	{ pre_RS, post_RS, 0 }, /* RS */
@@ -139,9 +138,10 @@
 	{ pre_ign, NULL, 0 }, /* UC */
 	{ pre_ign, NULL, 0 }, /* PD */
  	{ pre_sp, NULL, MAN_NOTEXT }, /* Sp */
- 	{ pre_nf, NULL, 0 }, /* Vb */
- 	{ pre_fi, NULL, 0 }, /* Ve */
+ 	{ pre_literal, NULL, 0 }, /* Vb */
+ 	{ pre_literal, NULL, 0 }, /* Ve */
 	{ pre_ign, NULL, 0 }, /* AT */
+	{ pre_in, NULL, MAN_NOTEXT }, /* in */
 };
 
 
@@ -249,23 +249,25 @@
 
 /* ARGSUSED */
 static int
-pre_fi(DECL_ARGS)
+pre_literal(DECL_ARGS)
 {
 
-	mt->fl &= ~MANT_LITERAL;
+	term_newln(p);
+	switch (n->tok) {
+	case (MAN_Vb):
+		/* FALLTHROUGH */
+	case (MAN_nf):
+		mt->fl |= MANT_LITERAL;
+		return(MAN_Vb != n->tok);
+	default:
+		mt->fl &= ~MANT_LITERAL;
+		break;
+	}
+
 	return(1);
 }
 
 
-/* ARGSUSED */
-static int
-pre_nf(DECL_ARGS)
-{
-
-	mt->fl |= MANT_LITERAL;
-	return(MAN_Vb != n->tok);
-}
-
 
 /* ARGSUSED */
 static int
@@ -353,17 +355,40 @@
 
 /* ARGSUSED */
 static int
-pre_sp(DECL_ARGS)
+pre_in(DECL_ARGS)
 {
-	size_t		 i, len;
+	int		 len, less;
+	size_t		 v;
+	const char	*cp;
 
-	len = n->child ? 
-		a2height(p, n->child->string) : term_len(p, 1);
+	term_newln(p);
 
-	if (0 == len)
-		term_newln(p);
-	for (i = 0; i <= len; i++)
-		term_vspace(p);
+	if (NULL == n->child) {
+		p->offset = mt->offset;
+		return(0);
+	}
+
+	cp = n->child->string;
+	less = 0;
+
+	if ('-' == *cp)
+		less = -1;
+	else if ('+' == *cp)
+		less = 1;
+	else
+		cp--;
+
+	if ((len = a2width(p, ++cp)) < 0)
+		return(0);
+
+	v = (size_t)len;
+
+	if (less < 0)
+		p->offset -= p->offset > v ? v : p->offset;
+	else if (less > 0)
+		p->offset += v;
+	else 
+		p->offset = v;
 
 	return(0);
 }
@@ -371,10 +396,24 @@
 
 /* ARGSUSED */
 static int
-pre_br(DECL_ARGS)
+pre_sp(DECL_ARGS)
 {
+	size_t		 i, len;
+
+	switch (n->tok) {
+	case (MAN_br):
+		len = 0;
+		break;
+	default:
+		len = n->child ? a2height(p, n->child->string) : 1;
+		break;
+	}
+
+	if (0 == len)
+		term_newln(p);
+	for (i = 0; i < len; i++)
+		term_vspace(p);
 
-	term_newln(p);
 	return(0);
 }
 
Index: src/external/bsd/mdocml/dist/mdoc_term.c
diff -u src/external/bsd/mdocml/dist/mdoc_term.c:1.4 src/external/bsd/mdocml/dist/mdoc_term.c:1.5
--- src/external/bsd/mdocml/dist/mdoc_term.c:1.4	Sun Jul 25 19:12:40 2010
+++ src/external/bsd/mdocml/dist/mdoc_term.c	Tue Jul 27 22:40:24 2010
@@ -1,4 +1,4 @@
-/*	$Vendor-Id: mdoc_term.c,v 1.173 2010/07/07 15:04:54 kristaps Exp $ */
+/*	$Vendor-Id: mdoc_term.c,v 1.179 2010/07/27 08:38:04 kristaps Exp $ */
 /*
  * Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons <[email protected]>
  * Copyright (c) 2010 Ingo Schwarze <[email protected]>
@@ -151,7 +151,7 @@
 	{ termp_bl_pre, termp_bl_post }, /* Bl */
 	{ NULL, NULL }, /* El */
 	{ termp_it_pre, termp_it_post }, /* It */
-	{ NULL, NULL }, /* Ad */ 
+	{ termp_under_pre, NULL }, /* Ad */ 
 	{ termp_an_pre, termp_an_post }, /* An */
 	{ termp_under_pre, NULL }, /* Ar */
 	{ termp_cd_pre, NULL }, /* Cd */
@@ -208,7 +208,7 @@
 	{ termp_under_pre, NULL }, /* Em */ 
 	{ NULL, NULL }, /* Eo */
 	{ termp_xx_pre, NULL }, /* Fx */
-	{ termp_bold_pre, NULL }, /* Ms */ /* FIXME: convert to symbol? */
+	{ termp_bold_pre, NULL }, /* Ms */
 	{ NULL, NULL }, /* No */
 	{ termp_ns_pre, NULL }, /* Ns */
 	{ termp_xx_pre, NULL }, /* Nx */
@@ -1026,7 +1026,8 @@
 	if (NULL == n->child && NULL == m->name)
 		return(0);
 
-	synopsis_pre(p, n);
+	if (MDOC_HEAD == n->type)
+		synopsis_pre(p, n->parent);
 
 	if (MDOC_HEAD == n->type && n->next->child) {
 		p->flags |= TERMP_NOSPACE | TERMP_NOBREAK | TERMP_HANG;
@@ -1620,8 +1621,7 @@
 static int
 termp_bd_pre(DECL_ARGS)
 {
-	size_t			 tabwidth;
-	size_t			 rm, rmax;
+	size_t			 tabwidth, rm, rmax;
 	const struct mdoc_node	*nn;
 
 	if (MDOC_BLOCK == n->type) {
@@ -1653,12 +1653,9 @@
 	p->rmargin = p->maxrmargin = TERM_MAXMARGIN;
 
 	for (nn = n->child; nn; nn = nn->next) {
-		p->flags |= TERMP_NOSPACE;
+		if (nn->prev && nn->prev->line < nn->line)
+			term_newln(p);
 		print_mdoc_node(p, pair, m, nn);
-		if (NULL == nn->prev ||
-		    nn->prev->line < nn->line ||
-		    NULL == nn->next)
-			term_flushln(p);
 	}
 
 	p->tabwidth = tabwidth;
@@ -1905,6 +1902,11 @@
 		len = 0;
 		break;
 	default:
+		assert(n->parent);
+		if ((NULL == n->next || NULL == n->prev) &&
+				(MDOC_Ss == n->parent->tok ||
+				 MDOC_Sh == n->parent->tok))
+			return(0);
 		len = 1;
 		break;
 	}
@@ -2066,9 +2068,11 @@
 {
 
 	assert(n->child && MDOC_TEXT == n->child->type);
-	if (0 == strcmp("on", n->child->string))
+	if (0 == strcmp("on", n->child->string)) {
+		if (p->col)
+			p->flags &= ~TERMP_NOSPACE;
 		p->flags &= ~TERMP_NONOSPACE;
-	else
+	} else
 		p->flags |= TERMP_NONOSPACE;
 
 	return(0);

Index: src/external/bsd/mdocml/dist/mdoc_action.c
diff -u src/external/bsd/mdocml/dist/mdoc_action.c:1.11 src/external/bsd/mdocml/dist/mdoc_action.c:1.12
--- src/external/bsd/mdocml/dist/mdoc_action.c:1.11	Sun Jul 25 19:12:40 2010
+++ src/external/bsd/mdocml/dist/mdoc_action.c	Tue Jul 27 22:40:24 2010
@@ -1,6 +1,6 @@
-/*	$Vendor-Id: mdoc_action.c,v 1.75 2010/07/04 21:59:30 kristaps Exp $ */
+/*	$Vendor-Id: mdoc_action.c,v 1.77 2010/07/26 13:45:49 kristaps Exp $ */
 /*
- * Copyright (c) 2008, 2009 Kristaps Dzonsons <[email protected]>
+ * Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons <[email protected]>
  *
  * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
@@ -904,6 +904,11 @@
 {
 	char		buf[DATESIZ];
 
+	if (NULL == n->child) {
+		m->meta.date = time(NULL);
+		return(post_prol(m, n));
+	}
+
 	if ( ! concat(m, buf, n->child, DATESIZ))
 		return(0);
 

Reply via email to