diff options
| author | Paul Eggert | 2015-09-02 13:55:41 -0700 |
|---|---|---|
| committer | Paul Eggert | 2015-09-02 13:57:56 -0700 |
| commit | a9706c6cc16baeaf49b1dfc4badc0254870c449d (patch) | |
| tree | 3b37655e0942c7d1e607a61dd14859456f3df6ae /lisp | |
| parent | fa5a9c7bae6d484107162641d16b1b38312ac225 (diff) | |
| download | emacs-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.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)." | |||
| 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") |