version 1.170, 2010/07/04 21:59:30 |
version 1.175, 2010/07/19 11:06:31 |
|
|
/* $Id$ */ |
/* $Id$ */ |
/* |
/* |
* 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 |
* Permission to use, copy, modify, and distribute this software for any |
* purpose with or without fee is hereby granted, provided that the above |
* purpose with or without fee is hereby granted, provided that the above |
|
|
#include "mandoc.h" |
#include "mandoc.h" |
#include "out.h" |
#include "out.h" |
#include "term.h" |
#include "term.h" |
#include "regs.h" |
|
#include "mdoc.h" |
#include "mdoc.h" |
#include "chars.h" |
#include "chars.h" |
#include "main.h" |
#include "main.h" |
Line 329 print_mdoc_node(DECL_ARGS) |
|
Line 329 print_mdoc_node(DECL_ARGS) |
|
else if (termacts[n->tok].pre && ENDBODY_NOT == n->end) |
else if (termacts[n->tok].pre && ENDBODY_NOT == n->end) |
chld = (*termacts[n->tok].pre)(p, &npair, m, n); |
chld = (*termacts[n->tok].pre)(p, &npair, m, n); |
|
|
|
/* |
|
* Keeps only work until the end of a line. If a keep was |
|
* invoked in a prior line, revert it to PREKEEP. |
|
*/ |
|
|
|
if (TERMP_KEEP & p->flags) { |
|
if (n->prev && n->prev->line != n->line) { |
|
p->flags &= ~TERMP_KEEP; |
|
p->flags |= TERMP_PREKEEP; |
|
} else if (NULL == n->prev) { |
|
if (n->parent && n->parent->line != n->line) { |
|
p->flags &= ~TERMP_KEEP; |
|
p->flags |= TERMP_PREKEEP; |
|
} |
|
} |
|
} |
|
|
if (chld && n->child) |
if (chld && n->child) |
print_mdoc_nodelist(p, &npair, m, n->child); |
print_mdoc_nodelist(p, &npair, m, n->child); |
|
|
Line 1888 termp_sp_pre(DECL_ARGS) |
|
Line 1905 termp_sp_pre(DECL_ARGS) |
|
len = 0; |
len = 0; |
break; |
break; |
default: |
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; |
len = 1; |
break; |
break; |
} |
} |
Line 2049 termp_sm_pre(DECL_ARGS) |
|
Line 2071 termp_sm_pre(DECL_ARGS) |
|
{ |
{ |
|
|
assert(n->child && MDOC_TEXT == n->child->type); |
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; |
p->flags &= ~TERMP_NONOSPACE; |
else |
} else |
p->flags |= TERMP_NONOSPACE; |
p->flags |= TERMP_NONOSPACE; |
|
|
return(0); |
return(0); |