summaryrefslogtreecommitdiffstatshomepage
path: root/term.c
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2009-09-15 08:16:20 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2009-09-15 08:16:20 +0000
commit5e3756471dbadb7858086a17760f20e36e105612 (patch)
treef1e532457de737c7ccd05e47ec7abc003c7d1631 /term.c
parent80eb3c6e0afe2acb092b84229d5c35572a5fb39f (diff)
downloadmandoc-5e3756471dbadb7858086a17760f20e36e105612.tar.gz
mandoc-5e3756471dbadb7858086a17760f20e36e105612.tar.zst
mandoc-5e3756471dbadb7858086a17760f20e36e105612.zip
Removed TERMP_BOLD, TERMP_UNDER, TERMP_STYLE in favour of recursive-friendly increments.
Cleaned up confusing behaviour of p->flags.
Diffstat (limited to 'term.c')
-rw-r--r--term.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/term.c b/term.c
index f8bc308d..06440992 100644
--- a/term.c
+++ b/term.c
@@ -1,4 +1,4 @@
-/* $Id: term.c,v 1.97 2009/07/28 10:15:12 kristaps Exp $ */
+/* $Id: term.c,v 1.98 2009/09/15 08:16:20 kristaps Exp $ */
/*
* Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
*
@@ -104,7 +104,7 @@ term_alloc(enum termenc enc)
struct termp *p;
if (NULL == (p = malloc(sizeof(struct termp))))
- err(1, "malloc");
+ return(NULL);
bzero(p, sizeof(struct termp));
p->maxrmargin = 78;
p->enc = enc;
@@ -492,15 +492,15 @@ do_escaped(struct termp *p, const char **word)
switch (*wp) {
case ('B'):
- p->flags |= TERMP_BOLD;
+ p->bold++;
break;
case ('I'):
- p->flags |= TERMP_UNDER;
+ p->under++;
break;
case ('P'):
/* FALLTHROUGH */
case ('R'):
- p->flags &= ~TERMP_STYLE;
+ p->bold = p->under = 0;
break;
default:
break;
@@ -579,7 +579,7 @@ buffer(struct termp *p, char c)
s = p->maxcols * 2;
p->buf = realloc(p->buf, s);
if (NULL == p->buf)
- err(1, "realloc");
+ err(1, "realloc"); /* FIXME: shouldn't be here! */
p->maxcols = s;
}
p->buf[(int)(p->col)++] = c;
@@ -590,12 +590,12 @@ static void
encode(struct termp *p, char c)
{
- if (' ' != c && TERMP_STYLE & p->flags) {
- if (TERMP_BOLD & p->flags) {
+ if (' ' != c) {
+ if (p->bold) {
buffer(p, c);
buffer(p, 8);
}
- if (TERMP_UNDER & p->flags) {
+ if (p->under) {
buffer(p, '_');
buffer(p, 8);
}