X-Git-Url: https://git.cameronkatri.com/mandoc.git/blobdiff_plain/cfde1d86dc777ba6f45042599f2519baafb74cac..4c2b73111562cd3b6e5744162ecbd5ca4d045661:/mdoc_macro.c?ds=sidebyside

diff --git a/mdoc_macro.c b/mdoc_macro.c
index 0a8d2c5c..91972f34 100644
--- a/mdoc_macro.c
+++ b/mdoc_macro.c
@@ -1,6 +1,7 @@
-/*	$Id: mdoc_macro.c,v 1.89 2010/07/01 21:12:00 schwarze Exp $ */
+/*	$Id: mdoc_macro.c,v 1.93 2010/07/18 17:00:26 schwarze Exp $ */
 /*
- * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@bsd.lv>
+ * Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
+ * Copyright (c) 2010 Ingo Schwarze <schwarze@openbsd.org>
  *
  * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
@@ -34,7 +35,7 @@ enum	rew {	/* see rew_dohalt() */
 	REWIND_THIS,
 	REWIND_MORE,
 	REWIND_LATER,
-	REWIND_ERROR,
+	REWIND_ERROR
 };
 
 static	int	  	blk_full(MACRO_PROT_ARGS);
@@ -609,7 +610,7 @@ append_delims(struct mdoc *m, int line, int *pos, char *buf)
 		 * knowing which symbols break this behaviour, for
 		 * example, `.  ;' shouldn't propogate the double-space.
 		 */
-		if (mandoc_eos(p, strlen(p)))
+		if (mandoc_eos(p, strlen(p), 0))
 			m->last->flags |= MDOC_EOS;
 	}
 
@@ -1265,7 +1266,7 @@ blk_part_imp(MACRO_PROT_ARGS)
 	 */
 
 	if (n && MDOC_TEXT == n->type && n->string)
-		if (mandoc_eos(n->string, strlen(n->string)))
+		if (mandoc_eos(n->string, strlen(n->string), 1))
 			n->flags |= MDOC_EOS;
 
 	/* Up-propogate the end-of-space flag. */
@@ -1582,6 +1583,9 @@ in_line_eoln(MACRO_PROT_ARGS)
 
 	assert( ! (MDOC_PARSED & mdoc_macros[tok].flags));
 
+	if (tok == MDOC_Pp)
+		rew_sub(MDOC_BLOCK, m, MDOC_Nm, line, ppos);
+
 	/* Parse macro arguments. */
 
 	for (arg = NULL; ; ) {
@@ -1645,7 +1649,7 @@ ctx_synopsis(MACRO_PROT_ARGS)
 	nl = MDOC_NEWLINE & m->flags;
 
 	/* If we're not in the SYNOPSIS, go straight to in-line. */
-	if (SEC_SYNOPSIS != m->lastsec)
+	if ( ! (MDOC_SYNOPSIS & m->flags))
 		return(in_line(m, tok, line, ppos, pos, buf));
 
 	/* If we're a nested call, same place. */