]> git.cameronkatri.com Git - mandoc.git/blobdiff - mdoc_term.c
Complete the whatis.1 -> apropos.1 merge,
[mandoc.git] / mdoc_term.c
index 42deb3ac4966d4d30c8f3ad2499f95ce88440800..1f759399060c03fbe7da85a58248f515c26d5062 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: mdoc_term.c,v 1.274 2014/07/30 17:06:26 schwarze Exp $ */
+/*     $Id: mdoc_term.c,v 1.279 2014/08/17 16:51: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>
@@ -16,9 +16,7 @@
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
-#ifdef HAVE_CONFIG_H
 #include "config.h"
-#endif
 
 #include <sys/types.h>
 
@@ -476,7 +474,11 @@ print_mdoc_head(struct termp *p, const void *arg)
                    meta->vol, meta->arch);
        vollen = term_strlen(p, volume);
 
-       mandoc_asprintf(&title, "%s(%s)", meta->title, meta->msec);
+       if (NULL == meta->msec)
+               title = mandoc_strdup(meta->title);
+       else
+               mandoc_asprintf(&title, "%s(%s)",
+                   meta->title, meta->msec);
        titlen = term_strlen(p, title);
 
        p->flags |= TERMP_NOBREAK | TERMP_NOSPACE;
@@ -804,7 +806,8 @@ termp_it_pre(DECL_ARGS)
                 * the "overstep" effect in term_flushln() and treat
                 * this as a `-ohang' list instead.
                 */
-               if (n->next->child &&
+               if (NULL != n->next &&
+                   NULL != n->next->child &&
                    (MDOC_Bl == n->next->child->tok ||
                     MDOC_Bd == n->next->child->tok))
                        break;
@@ -860,7 +863,9 @@ termp_it_pre(DECL_ARGS)
                 * don't want to recalculate rmargin and offsets when
                 * using `Bd' or `Bl' within `-hang' overstep lists.
                 */
-               if (MDOC_HEAD == n->type && n->next->child &&
+               if (MDOC_HEAD == n->type &&
+                   NULL != n->next &&
+                   NULL != n->next->child &&
                    (MDOC_Bl == n->next->child->tok ||
                     MDOC_Bd == n->next->child->tok))
                        break;
@@ -1025,7 +1030,8 @@ termp_nm_pre(DECL_ARGS)
        if (MDOC_HEAD == n->type)
                synopsis_pre(p, n->parent);
 
-       if (MDOC_HEAD == n->type && n->next->child) {
+       if (MDOC_HEAD == n->type &&
+           NULL != n->next && NULL != n->next->child) {
                p->flags |= TERMP_NOSPACE | TERMP_NOBREAK | TERMP_BRIND;
                p->trailspace = 1;
                p->rmargin = p->offset + term_len(p, 1);
@@ -1053,7 +1059,8 @@ termp_nm_post(DECL_ARGS)
 
        if (MDOC_BLOCK == n->type) {
                p->flags &= ~(TERMP_KEEP | TERMP_PREKEEP);
-       } else if (MDOC_HEAD == n->type && n->next->child) {
+       } else if (MDOC_HEAD == n->type &&
+           NULL != n->next && NULL != n->next->child) {
                term_flushln(p);
                p->flags &= ~(TERMP_NOBREAK | TERMP_BRIND | TERMP_HANG);
                p->trailspace = 0;