diff options
author | Ingo Schwarze <schwarze@openbsd.org> | 2012-05-31 22:29:13 +0000 |
---|---|---|
committer | Ingo Schwarze <schwarze@openbsd.org> | 2012-05-31 22:29:13 +0000 |
commit | 151c919ed8cc3ed826972bf9834c86d322c8ea2a (patch) | |
tree | 88cd0e892637ff83ebf37f93c1e552f8572604bb /mandoc.c | |
parent | a72385d7db78c4b91054f655c790402b70f79571 (diff) | |
download | mandoc-151c919ed8cc3ed826972bf9834c86d322c8ea2a.tar.gz |
Implement the roff \z escape sequence, intended to output the next
character without advancing the cursor position; implement it to
simply skip the next character, as it will usually be overwritten.
With this change, the pod2man(1) preamble user-defined string \*:,
intended to render as a diaeresis or umlaut diacritic above the
preceding character, is rendered in a slightly less ugly way,
though still not correctly. It was rendered as "z.." and is now
rendered as ".".
Given that the definition of \*: uses elaborate manual \h positioning,
there is little chance for mandoc(1) to ever render it correctly,
but at least we can refrain from printing out a spurious "z", and
we can make the \z do something semi-reasonable for easier cases.
"just commit" kristaps@
Diffstat (limited to 'mandoc.c')
-rw-r--r-- | mandoc.c | 12 |
1 files changed, 11 insertions, 1 deletions
@@ -1,7 +1,7 @@ /* $Id$ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> - * Copyright (c) 2011 Ingo Schwarze <schwarze@openbsd.org> + * Copyright (c) 2011, 2012 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 @@ -143,6 +143,16 @@ mandoc_escape(const char **end, const char **start, int *sz) break; /* + * The \z escape is supposed to output the following + * character without advancing the cursor position. + * Since we are mostly dealing with terminal mode, + * let us just skip the next character. + */ + case ('z'): + (*end)++; + return(ESCAPE_SKIPCHAR); + + /* * Handle all triggers matching \X(xy, \Xx, and \X[xxxx], where * 'X' is the trigger. These have opaque sub-strings. */ |