aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/mandoc.c
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2010-07-18 22:55:06 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2010-07-18 22:55:06 +0000
commitecde8066e9fefa3134fec10222f61596f76ae94d (patch)
treec9b57ed485922c82f1614f871b8efc327f6e8595 /mandoc.c
parent62a6f18a684aea51ece6b91ad1ce0a6c90149d87 (diff)
downloadmandoc-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.c65
1 files changed, 62 insertions, 3 deletions
diff --git a/mandoc.c b/mandoc.c
index 72eba853..c001b637 100644
--- a/mandoc.c
+++ b/mandoc.c
@@ -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);
}