diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2015-09-02 13:55:41 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2015-09-02 13:57:56 -0700 |
commit | a9706c6cc16baeaf49b1dfc4badc0254870c449d (patch) | |
tree | 3b37655e0942c7d1e607a61dd14859456f3df6ae /lisp | |
parent | fa5a9c7bae6d484107162641d16b1b38312ac225 (diff) | |
download | emacs-a9706c6cc16baeaf49b1dfc4badc0254870c449d.tar.gz |
Follow text-quoting-style in display table init
This attempts to fix a problem reported by Alan Mackenzie in:
http://lists.gnu.org/archive/html/emacs-devel/2015-09/msg00112.html
* doc/lispref/display.texi (Active Display Table):
Mention how text-quoting-style affects it.
* doc/lispref/help.texi (Keys in Documentation):
Say how to set text-quoting-style in ~/.emacs.
* etc/NEWS: Document the change.
* lisp/startup.el (startup--setup-quote-display):
Follow user preference if text-quoting-style is set.
(command-line): Setup quote display again if user expresses
a preference in .emacs.
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/startup.el | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/lisp/startup.el b/lisp/startup.el index b5e258f56c0..c152e0122ae 100644 --- a/lisp/startup.el +++ b/lisp/startup.el @@ -804,13 +804,18 @@ to prepare for opening the first frame (e.g. open a connection to an X server)." (defvar server-process) (defun startup--setup-quote-display () - "If curved quotes don't work, display ASCII approximations." - (dolist (char-repl '((?‘ . ?\`) (?’ . ?\') (?“ . ?\") (?” . ?\"))) - (when (not (char-displayable-p (car char-repl))) - (unless standard-display-table - (setq standard-display-table (make-display-table))) - (aset standard-display-table (car char-repl) - (vector (make-glyph-code (cdr char-repl) 'shadow)))))) + "Display ASCII approximations on user request or if curved quotes don't work." + (when (memq text-quoting-style '(nil grave straight)) + (dolist (char-repl '((?‘ . ?\`) (?’ . ?\') (?“ . ?\") (?” . ?\"))) + (let ((char (car char-repl)) + (repl (cdr char-repl))) + (when (or text-quoting-style (not (char-displayable-p char))) + (when (and (eq repl ?\`) (eq text-quoting-style 'straight)) + (setq repl ?\')) + (unless standard-display-table + (setq standard-display-table (make-display-table))) + (aset standard-display-table char + (vector (make-glyph-code repl 'shadow)))))))) (defun command-line () "A subroutine of `normal-top-level'. @@ -1234,6 +1239,11 @@ the ‘--debug-init’ option to view a complete error backtrace." ;; unibyte (display table, terminal coding system &c). (set-language-environment current-language-environment))) + ;; Setup quote display again, if the init file sets + ;; text-quoting-style to a non-nil value. + (when (and (not noninteractive) text-quoting-style) + (startup--setup-quote-display)) + ;; Do this here in case the init file sets mail-host-address. (if (equal user-mail-address "") (setq user-mail-address (or (getenv "EMAIL") |