aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorPaul Eggert2015-09-02 13:55:41 -0700
committerPaul Eggert2015-09-02 13:57:56 -0700
commita9706c6cc16baeaf49b1dfc4badc0254870c449d (patch)
tree3b37655e0942c7d1e607a61dd14859456f3df6ae /lisp
parentfa5a9c7bae6d484107162641d16b1b38312ac225 (diff)
downloademacs-a9706c6cc16baeaf49b1dfc4badc0254870c449d.tar.gz
emacs-a9706c6cc16baeaf49b1dfc4badc0254870c449d.zip
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.el24
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)."
804(defvar server-process) 804(defvar server-process)
805 805
806(defun startup--setup-quote-display () 806(defun startup--setup-quote-display ()
807 "If curved quotes don't work, display ASCII approximations." 807 "Display ASCII approximations on user request or if curved quotes don't work."
808 (dolist (char-repl '((?‘ . ?\`) (?’ . ?\') (?“ . ?\") (?” . ?\"))) 808 (when (memq text-quoting-style '(nil grave straight))
809 (when (not (char-displayable-p (car char-repl))) 809 (dolist (char-repl '((?‘ . ?\`) (?’ . ?\') (?“ . ?\") (?” . ?\")))
810 (unless standard-display-table 810 (let ((char (car char-repl))
811 (setq standard-display-table (make-display-table))) 811 (repl (cdr char-repl)))
812 (aset standard-display-table (car char-repl) 812 (when (or text-quoting-style (not (char-displayable-p char)))
813 (vector (make-glyph-code (cdr char-repl) 'shadow)))))) 813 (when (and (eq repl ?\`) (eq text-quoting-style 'straight))
814 (setq repl ?\'))
815 (unless standard-display-table
816 (setq standard-display-table (make-display-table)))
817 (aset standard-display-table char
818 (vector (make-glyph-code repl 'shadow))))))))
814 819
815(defun command-line () 820(defun command-line ()
816 "A subroutine of `normal-top-level'. 821 "A subroutine of `normal-top-level'.
@@ -1234,6 +1239,11 @@ the ‘--debug-init’ option to view a complete error backtrace."
1234 ;; unibyte (display table, terminal coding system &c). 1239 ;; unibyte (display table, terminal coding system &c).
1235 (set-language-environment current-language-environment))) 1240 (set-language-environment current-language-environment)))
1236 1241
1242 ;; Setup quote display again, if the init file sets
1243 ;; text-quoting-style to a non-nil value.
1244 (when (and (not noninteractive) text-quoting-style)
1245 (startup--setup-quote-display))
1246
1237 ;; Do this here in case the init file sets mail-host-address. 1247 ;; Do this here in case the init file sets mail-host-address.
1238 (if (equal user-mail-address "") 1248 (if (equal user-mail-address "")
1239 (setq user-mail-address (or (getenv "EMAIL") 1249 (setq user-mail-address (or (getenv "EMAIL")