With text-quoting-style 'grave keeps "'" and "`" quotes unaltered for further processing done by this code (regardless of locale...). The tools that read the reStructuredText markup generated can do their styling instead. Added temporary conversions of ' and ` to \001 and \002 so that 's and `s outside of `...' and `...` are converted separately ('s restored back to ' and `s converted to \`). Both `...' and `...` are finally "converted" to `...` (not ``...``). https://docutils.sourceforge.io/docs/user/rst/quickref.html documents that as `interpreted text`: "The rendering and meaning of interpreted text is domain- or application-dependent. It can be used for things like index entries or explicit descriptive markup (like program identifiers)." Which looks pretty much right. --- Overhauled version of id:20200413104108.10837-1-tomi.ollila@iki.fi When the default 'curve text quoting style was effective in UTF-8 locale, I experienced inconsistent conversions from `' to ‘’; sometimes conversions weren't done (one more reason to use 'grave :) --- emacs/rstdoc.el | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/emacs/rstdoc.el b/emacs/rstdoc.el index 63fa2794..4221f142 100644 --- a/emacs/rstdoc.el +++ b/emacs/rstdoc.el @@ -40,6 +40,7 @@ (defun rstdoc-extract (in-file out-file) "Write docstrings from IN-FILE to OUT-FILE." (load-file in-file) (let* ((definitions (cdr (assoc (expand-file-name in-file) load-history))) + (text-quoting-style 'grave) (doc-hash (make-hash-table :test 'eq))) (mapc (lambda (elt) @@ -65,11 +66,14 @@ (defun rstdoc--insert-docstring (symbol docstring) (insert "\n")) (defvar rst--escape-alist - '(("\\\\='" . "\\\\'") - ("\\([^\\]\\)'" . "\\1`") - ("^[[:space:]\t]*$" . "|br|") - ("^[[:space:]\t]" . "|indent| ")) - "List of (regex . replacement) pairs.") + '( ("\\\\='" . "\001") + ("`\\([^\n`']*\\)[`']" . "\002\\1\002") ;; good enough for now... + ("`" . "\\\\`") + ("\001" . "'") + ("\002" . "`") + ("^[[:space:]]*$" . "|br|") + ("^[[:space:]]" . "|indent| ")) + "list of (regex . replacement) pairs") (defun rstdoc--rst-quote-string (str) (with-temp-buffer -- 2.25.1 _______________________________________________ notmuch mailing list -- notmuch@notmuchmail.org To unsubscribe send an email to notmuch-leave@notmuchmail.org