=================================================================== RCS file: /cvs/mandoc/term.c,v retrieving revision 1.196 retrieving revision 1.199 diff -u -p -r1.196 -r1.199 --- mandoc/term.c 2011/05/20 15:44:55 1.196 +++ mandoc/term.c 2011/09/18 21:18:19 1.199 @@ -1,6 +1,6 @@ -/* $Id: term.c,v 1.196 2011/05/20 15:44:55 kristaps Exp $ */ +/* $Id: term.c,v 1.199 2011/09/18 21:18:19 schwarze Exp $ */ /* - * Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons + * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2010, 2011 Ingo Schwarze * * Permission to use, copy, modify, and distribute this software for any @@ -447,12 +447,6 @@ term_word(struct termp *p, const char *word) break; encode1(p, uc); continue; - case (ESCAPE_PREDEF): - uc = mchars_res2cp(p->symtab, seq, sz); - if (uc <= 0) - break; - encode1(p, uc); - continue; case (ESCAPE_SPECIAL): uc = mchars_spec2cp(p->symtab, seq, sz); if (uc <= 0) @@ -472,11 +466,6 @@ term_word(struct termp *p, const char *word) if ('\0' != c) encode(p, &c, 1); break; - case (ESCAPE_PREDEF): - cp = mchars_res2str(p->symtab, seq, sz, &ssz); - if (NULL != cp) - encode(p, cp, ssz); - break; case (ESCAPE_SPECIAL): cp = mchars_spec2str(p->symtab, seq, sz, &ssz); if (NULL != cp) @@ -587,13 +576,16 @@ encode(struct termp *p, const char *word, size_t sz) adjbuf(p, p->col + 1 + (len * 3)); for (i = 0; i < len; i++) { - if ( ! isgraph((unsigned char)word[i])) { + if (ASCII_HYPH != word[i] && + ! isgraph((unsigned char)word[i])) { p->buf[p->col++] = word[i]; continue; } if (TERMFONT_UNDER == f) p->buf[p->col++] = '_'; + else if (ASCII_HYPH == word[i]) + p->buf[p->col++] = '-'; else p->buf[p->col++] = word[i]; @@ -648,13 +640,6 @@ term_strlen(const struct termp *p, const char *cp) break; sz += (*p->width)(p, c); continue; - case (ESCAPE_PREDEF): - c = mchars_res2cp - (p->symtab, seq, ssz); - if (c <= 0) - break; - sz += (*p->width)(p, c); - continue; case (ESCAPE_SPECIAL): c = mchars_spec2cp (p->symtab, seq, ssz); @@ -676,10 +661,6 @@ term_strlen(const struct termp *p, const char *cp) c = mchars_num2char(seq, ssz); if ('\0' != c) sz += (*p->width)(p, c); - break; - case (ESCAPE_PREDEF): - rhs = mchars_res2str - (p->symtab, seq, ssz, &rsz); break; case (ESCAPE_SPECIAL): rhs = mchars_spec2str