More portable attempt to get a literal U+0027 than r8321, pinched from pod2man
authorjacob <jacob@cda61777-01e9-0310-a592-d414129be87e>
Sun, 6 Sep 2009 12:59:33 +0000 (12:59 +0000)
committerjacob <jacob@cda61777-01e9-0310-a592-d414129be87e>
Sun, 6 Sep 2009 12:59:33 +0000 (12:59 +0000)
(via Colin in Debian bug#496063).

git-svn-id: svn://svn.tartarus.org/sgt/halibut@8640 cda61777-01e9-0310-a592-d414129be87e

bk_man.c

index 1433dfd..92d7c3a 100644 (file)
--- a/bk_man.c
+++ b/bk_man.c
@@ -248,6 +248,12 @@ void man_backend(paragraph *sourceform, keywordlist *keywords,
            man_text(fp, p->words, TRUE, 0, &conf);
        }
 
+    /* Standard preamble */
+    /* Dodge to try to get literal U+0027 in output when required,
+     * bypassing groff's Unicode transform; pinched from pod2man */
+    fprintf(fp, ".ie \\n(.g .ds Aq \\(aq\n"
+               ".el       .ds Aq '\n");
+
     /* .TH name-of-program manual-section */
     fprintf(fp, ".TH");
     if (conf.th && *conf.th) {
@@ -489,8 +495,9 @@ static int man_convert(wchar_t const *s, int maxlen,
                rdaddsc(&out, "\\(hy");
                continue;
            } else if (*q == '\'' && (quote_props & QUOTE_LITERAL)) {
-               /* Try to preserve literal U+0027 */
-               rdaddsc(&out, "\\(aq"); /* "apostrophe quote" */
+               /* Try to preserve literal U+0027 (using string defined
+                * in preamble) */
+               rdaddsc(&out, "\\*(Aq"); /* "apostrophe quote" */
                continue;
            } else if (*q == '"' && (quote_props & QUOTE_QUOTES)) {
                /*