aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/html.c
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2014-01-22 20:58:39 +0000
committerIngo Schwarze <schwarze@openbsd.org>2014-01-22 20:58:39 +0000
commita5cf99ba0ce655c79f97727aa85c3afd804f98c9 (patch)
treee92a3c2a62fc2c363af2ca9c2aa16c0bcb34c80f /html.c
parentfbfac7f409fc3e746d03f0beb37e36723d353e48 (diff)
downloadmandoc-a5cf99ba0ce655c79f97727aa85c3afd804f98c9.tar.gz
mandoc-a5cf99ba0ce655c79f97727aa85c3afd804f98c9.tar.zst
mandoc-a5cf99ba0ce655c79f97727aa85c3afd804f98c9.zip
Implement the \: (optional line break) escape sequence,
documented in the Ossanna-Kernighan-Ritter troff manual and also supported by groff. Missing feature reported by Steffen Nurpmeso <sdaoden at gmail dot com>.
Diffstat (limited to 'html.c')
-rw-r--r--html.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/html.c b/html.c
index 30ed53e4..bbc9ec5b 100644
--- a/html.c
+++ b/html.c
@@ -1,7 +1,7 @@
-/* $Id: html.c,v 1.153 2014/01/05 19:10:56 joerg Exp $ */
+/* $Id: html.c,v 1.154 2014/01/22 20:58:39 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
- * Copyright (c) 2011, 2012, 2013 Ingo Schwarze <schwarze@openbsd.org>
+ * Copyright (c) 2011, 2012, 2013, 2014 Ingo Schwarze <schwarze@openbsd.org>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -331,7 +331,8 @@ print_encode(struct html *h, const char *p, int norecurse)
int c, len, nospace;
const char *seq;
enum mandoc_esc esc;
- static const char rejs[6] = { '\\', '<', '>', '&', ASCII_HYPH, '\0' };
+ static const char rejs[8] = { '\\', '<', '>', '&',
+ ASCII_NBRSP, ASCII_HYPH, ASCII_BREAK, '\0' };
nospace = 0;
@@ -360,8 +361,13 @@ print_encode(struct html *h, const char *p, int norecurse)
case ('&'):
printf("&amp;");
continue;
+ case (ASCII_NBRSP):
+ putchar('-');
+ continue;
case (ASCII_HYPH):
putchar('-');
+ /* FALLTHROUGH */
+ case (ASCII_BREAK):
continue;
default:
break;