summaryrefslogtreecommitdiffstats
path: root/man.c
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2010-05-12 16:46:28 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2010-05-12 16:46:28 +0000
commit4daffc849bbddd623b910e2b63a734fb4d03d633 (patch)
tree7e77fd405e874037bb8a3074b6da9ef84de5d02d /man.c
parent2c120582ef488979d4fe93a2b6a88f498dac4a3b (diff)
downloadmandoc-4daffc849bbddd623b910e2b63a734fb4d03d633.tar.gz
End-of-sentence spacing for -man -Tascii.
Diffstat (limited to 'man.c')
-rw-r--r--man.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/man.c b/man.c
index a07b89b8..ce67992e 100644
--- a/man.c
+++ b/man.c
@@ -420,6 +420,29 @@ man_ptext(struct man *m, int line, char *buf)
if ( ! man_word_alloc(m, line, 0, buf))
return(0);
+ /*
+ * End-of-sentence check. If the last character is an unescaped
+ * EOS character, then flag the node as being the end of a
+ * sentence. The front-end will know how to interpret this.
+ */
+
+ assert(i);
+
+ switch (buf[i - 1]) {
+ case ('.'):
+ if (i > 1 && '\\' == buf[i - 2])
+ break;
+ /* FALLTHROUGH */
+ case ('!'):
+ /* FALLTHROUGH */
+ case ('?'):
+ m->last->flags |= MAN_EOS;
+ break;
+ default:
+ break;
+
+ }
+
descope:
/*
* Co-ordinate what happens with having a next-line scope open: