diff options
author | Kristaps Dzonsons <kristaps@bsd.lv> | 2010-07-18 22:55:06 +0000 |
---|---|---|
committer | Kristaps Dzonsons <kristaps@bsd.lv> | 2010-07-18 22:55:06 +0000 |
commit | ecde8066e9fefa3134fec10222f61596f76ae94d (patch) | |
tree | c9b57ed485922c82f1614f871b8efc327f6e8595 /mandoc.c | |
parent | 62a6f18a684aea51ece6b91ad1ce0a6c90149d87 (diff) | |
download | mandoc-ecde8066e9fefa3134fec10222f61596f76ae94d.tar.gz mandoc-ecde8066e9fefa3134fec10222f61596f76ae94d.tar.zst mandoc-ecde8066e9fefa3134fec10222f61596f76ae94d.zip |
Throw out a2roffdeco() in out.c for a readable version. The prior one
was completely unmaintainable. The new one is both readable and quite
similar to mandoc_special(), which in future versions will easily allow
throwing-away of unsupported escapes (such as \m). It's also a fair bit
smaller.
DECO_SIZE has been removed: this crap, like colours, will not be
supported.
mandoc_special() also has #if 0'd switch branches for ALL groff.7
escapes and some lint fixes.
Diffstat (limited to 'mandoc.c')
-rw-r--r-- | mandoc.c | 65 |
1 files changed, 62 insertions, 3 deletions
@@ -1,4 +1,4 @@ -/* $Id: mandoc.c,v 1.23 2010/07/18 17:00:26 schwarze Exp $ */ +/* $Id: mandoc.c,v 1.24 2010/07/18 22:55:06 kristaps Exp $ */ /* * Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv> * @@ -48,6 +48,49 @@ mandoc_special(char *p) p++; switch (*p++) { +#if 0 + case ('Z'): + /* FALLTHROUGH */ + case ('X'): + /* FALLTHROUGH */ + case ('x'): + /* FALLTHROUGH */ + case ('w'): + /* FALLTHROUGH */ + case ('v'): + /* FALLTHROUGH */ + case ('S'): + /* FALLTHROUGH */ + case ('R'): + /* FALLTHROUGH */ + case ('o'): + /* FALLTHROUGH */ + case ('N'): + /* FALLTHROUGH */ + case ('l'): + /* FALLTHROUGH */ + case ('L'): + /* FALLTHROUGH */ + case ('H'): + /* FALLTHROUGH */ + case ('h'): + /* FALLTHROUGH */ + case ('D'): + /* FALLTHROUGH */ + case ('C'): + /* FALLTHROUGH */ + case ('b'): + /* FALLTHROUGH */ + case ('B'): + /* FALLTHROUGH */ + case ('a'): + /* FALLTHROUGH */ + case ('A'): + if (*p++ != '\'') + return(0); + term = '\''; + break; +#endif case ('s'): if (ASCII_HYPH == *p) *p = '-'; @@ -83,6 +126,22 @@ mandoc_special(char *p) if (0 == i) return(0); break; +#if 0 + case ('Y'): + /* FALLTHROUGH */ + case ('V'): + /* FALLTHROUGH */ + case ('$'): + /* FALLTHROUGH */ + case ('n'): + /* FALLTHROUGH */ + case ('k'): + /* FALLTHROUGH */ +#endif + case ('M'): + /* FALLTHROUGH */ + case ('m'): + /* FALLTHROUGH */ case ('f'): /* FALLTHROUGH */ case ('F'): @@ -117,13 +176,13 @@ mandoc_special(char *p) for ( ; *p && term != *p; p++) if (ASCII_HYPH == *p) *p = '-'; - return(*p ? p - sv : 0); + return(*p ? (int)(p - sv) : 0); } for (i = 0; *p && i < len; i++, p++) if (ASCII_HYPH == *p) *p = '-'; - return(i == len ? p - sv : 0); + return(i == len ? (int)(p - sv) : 0); } |