summaryrefslogtreecommitdiff
path: root/usr.bin
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@cvs.openbsd.org>2014-09-17 20:17:56 +0000
committerIngo Schwarze <schwarze@cvs.openbsd.org>2014-09-17 20:17:56 +0000
commitba8b3f3e32dcd258742a04aeb1b32c1a6510c4e6 (patch)
tree0eb78b619b28c976df1c80cdcb093b351439c194 /usr.bin
parent1aeb187d757e8043d33978235f67dcb0a2afccbb (diff)
simplify handling of .An -[no]split for terminal output:
delete one static function, one flag #define, and 25 lines of code; no functional change
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/mandoc/mdoc_term.c62
-rw-r--r--usr.bin/mandoc/term.h7
2 files changed, 20 insertions, 49 deletions
diff --git a/usr.bin/mandoc/mdoc_term.c b/usr.bin/mandoc/mdoc_term.c
index 4169f402fe5..6652ff5b31f 100644
--- a/usr.bin/mandoc/mdoc_term.c
+++ b/usr.bin/mandoc/mdoc_term.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: mdoc_term.c,v 1.180 2014/09/03 05:17:08 schwarze Exp $ */
+/* $OpenBSD: mdoc_term.c,v 1.181 2014/09/17 20:17:55 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010, 2012, 2013, 2014 Ingo Schwarze <schwarze@openbsd.org>
@@ -63,7 +63,6 @@ static void synopsis_pre(struct termp *,
static void termp____post(DECL_ARGS);
static void termp__t_post(DECL_ARGS);
-static void termp_an_post(DECL_ARGS);
static void termp_bd_post(DECL_ARGS);
static void termp_bk_post(DECL_ARGS);
static void termp_bl_post(DECL_ARGS);
@@ -136,7 +135,7 @@ static const struct termact termacts[MDOC_MAX] = {
{ NULL, NULL }, /* El */
{ termp_it_pre, termp_it_post }, /* It */
{ termp_under_pre, NULL }, /* Ad */
- { termp_an_pre, termp_an_post }, /* An */
+ { termp_an_pre, NULL }, /* An */
{ termp_under_pre, NULL }, /* Ar */
{ termp_cd_pre, NULL }, /* Cd */
{ termp_bold_pre, NULL }, /* Cm */
@@ -1104,54 +1103,27 @@ static int
termp_an_pre(DECL_ARGS)
{
- if (NULL == n->child)
- return(1);
-
- /*
- * If not in the AUTHORS section, `An -split' will cause
- * newlines to occur before the author name. If in the AUTHORS
- * section, by default, the first `An' invocation is nosplit,
- * then all subsequent ones, regardless of whether interspersed
- * with other macros/text, are split. -split, in this case,
- * will override the condition of the implied first -nosplit.
- */
-
- if (n->sec == SEC_AUTHORS) {
- if ( ! (TERMP_ANPREC & p->flags)) {
- if (TERMP_SPLIT & p->flags)
- term_newln(p);
- return(1);
- }
- if (TERMP_NOSPLIT & p->flags)
- return(1);
- term_newln(p);
- return(1);
- }
-
- if (TERMP_SPLIT & p->flags)
- term_newln(p);
-
- return(1);
-}
-
-static void
-termp_an_post(DECL_ARGS)
-{
-
- if (n->child) {
- if (SEC_AUTHORS == n->sec)
- p->flags |= TERMP_ANPREC;
- return;
- }
-
- if (AUTH_split == n->norm->An.auth) {
+ if (n->norm->An.auth == AUTH_split) {
p->flags &= ~TERMP_NOSPLIT;
p->flags |= TERMP_SPLIT;
- } else if (AUTH_nosplit == n->norm->An.auth) {
+ return(0);
+ }
+ if (n->norm->An.auth == AUTH_nosplit) {
p->flags &= ~TERMP_SPLIT;
p->flags |= TERMP_NOSPLIT;
+ return(0);
}
+ if (n->child == NULL)
+ return(0);
+
+ if (p->flags & TERMP_SPLIT)
+ term_newln(p);
+
+ if (n->sec == SEC_AUTHORS && ! (p->flags & TERMP_NOSPLIT))
+ p->flags |= TERMP_SPLIT;
+
+ return(1);
}
static int
diff --git a/usr.bin/mandoc/term.h b/usr.bin/mandoc/term.h
index 40783cd992e..e79926f0f73 100644
--- a/usr.bin/mandoc/term.h
+++ b/usr.bin/mandoc/term.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: term.h,v 1.46 2014/09/03 05:17:08 schwarze Exp $ */
+/* $OpenBSD: term.h,v 1.47 2014/09/17 20:17:55 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2011, 2012, 2013, 2014 Ingo Schwarze <schwarze@openbsd.org>
@@ -81,9 +81,8 @@ struct termp {
#define TERMP_BRIND (1 << 9) /* See term_flushln(). */
#define TERMP_DANGLE (1 << 10) /* See term_flushln(). */
#define TERMP_HANG (1 << 11) /* See term_flushln(). */
-#define TERMP_NOSPLIT (1 << 12) /* See termp_an_pre/post(). */
-#define TERMP_SPLIT (1 << 13) /* See termp_an_pre/post(). */
-#define TERMP_ANPREC (1 << 14) /* See termp_an_pre(). */
+#define TERMP_NOSPLIT (1 << 12) /* Do not break line before .An. */
+#define TERMP_SPLIT (1 << 13) /* Break line before .An. */
int *buf; /* Output buffer. */
enum termenc enc; /* Type of encoding. */
struct mchars *symtab; /* Encoded-symbol table. */