diff --git a/lisp/help-mode.el b/lisp/help-mode.el index 2f82d83ceb..6280fad1c1 100644 --- a/lisp/help-mode.el +++ b/lisp/help-mode.el @@ -111,6 +111,15 @@ help-xref-stack-forward-item (setq-default help-xref-stack nil help-xref-stack-item nil) (setq-default help-xref-forward-stack nil help-xref-forward-stack-item nil) +(defvar help-mode-syntax-table + (let ((table (make-syntax-table emacs-lisp-mode-syntax-table))) + ;; treat single quotes as parens so that forward-sexp does not + ;; break when quoted string contains punctuation + (modify-syntax-entry ?‘ "(’ " table) + (modify-syntax-entry ?’ ")‘ " table) + table) + "Syntax table used in `help-mode'.") + (defcustom help-mode-hook nil "Hook run by `help-mode'." :type 'hook @@ -490,7 +499,7 @@ help-make-xrefs (let ((stab (syntax-table)) (case-fold-search t) (inhibit-read-only t)) - (set-syntax-table emacs-lisp-mode-syntax-table) + (set-syntax-table help-mode-syntax-table) ;; The following should probably be abstracted out. (unwind-protect (progn @@ -643,7 +652,7 @@ help-insert-xref-button (defun help-xref-on-pp (from to) "Add xrefs for symbols in `pp's output between FROM and TO." (if (> (- to from) 5000) nil - (with-syntax-table emacs-lisp-mode-syntax-table + (with-syntax-table help-mode-syntax-table (save-excursion (save-restriction (narrow-to-region from to)