[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#13744: glyphless-char-display-control doesn't work with acronym
From: |
Per Starbäck |
Subject: |
bug#13744: glyphless-char-display-control doesn't work with acronym |
Date: |
Mon, 18 Feb 2013 17:07:12 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.2 (gnu/linux) |
In GNU Emacs 24.2.93.1 (i686-pc-linux-gnu, GTK+ Version 2.18.9),
but it's not new in the pretests. (I think this bug has been present all
the time since this feature was introduced in 24.1.)
$ LANG=C src/emacs -Q
M-x customize-option RET glyphless-char-display-control RET
Activate c0-control and choose "Display acronym";
"Set for current session"
Switch to some buffer and C-q RET
It displays as "^M" but I expected a [CR] box.
(Settings other than acronym work as intended.)
=== THE REASON ===
The code puts 'acronym in glyphless-char-display, but there should
instead be the actual string to use.
=== FIX ===
$ diff -cp lisp/international/characters.el
lisp/international/characters-fixed.el
*** lisp/international/characters.el 2013-01-01 21:37:17.000000000 +0100
--- lisp/international/characters-fixed.el 2013-02-18 16:11:10.064000575
+0100
*************** This function updates the char-table `gl
*** 1410,1425 ****
(or (memq method '(zero-width thin-space empty-box acronym hex-code))
(error "Invalid glyphless character display method: %s" method))
(cond ((eq target 'c0-control)
! (set-char-table-range glyphless-char-display '(#x00 . #x1F)
! method)
;; Users will not expect their newlines and TABs be
;; displayed as anything but themselves, so exempt those
;; two characters from c0-control.
(set-char-table-range glyphless-char-display #x9 nil)
(set-char-table-range glyphless-char-display #xa nil))
((eq target 'c1-control)
! (set-char-table-range glyphless-char-display '(#x80 . #x9F)
! method))
((eq target 'format-control)
(map-char-table
#'(lambda (char category)
--- 1410,1425 ----
(or (memq method '(zero-width thin-space empty-box acronym hex-code))
(error "Invalid glyphless character display method: %s" method))
(cond ((eq target 'c0-control)
! (glyphless-set-char-table-range glyphless-char-display
! #x00 #x1F method)
;; Users will not expect their newlines and TABs be
;; displayed as anything but themselves, so exempt those
;; two characters from c0-control.
(set-char-table-range glyphless-char-display #x9 nil)
(set-char-table-range glyphless-char-display #xa nil))
((eq target 'c1-control)
! (glyphless-set-char-table-range glyphless-char-display
! #x80 #x9F method))
((eq target 'format-control)
(map-char-table
#'(lambda (char category)
*************** This function updates the char-table `gl
*** 1443,1448 ****
--- 1443,1456 ----
(t
(error "Invalid glyphless character group: %s" target))))))
+ (defun glyphless-set-char-table-range (chartable from to method)
+ (if (eq method 'acronym)
+ (let ((i from))
+ (while (<= i to)
+ (set-char-table-range chartable i (aref char-acronym-table i))
+ (setq i (1+ i))))
+ (set-char-table-range chartable (cons from to) method)))
+
;;; Control of displaying glyphless characters.
(defcustom glyphless-char-display-control
'((format-control . thin-space)
======================================================================
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- bug#13744: glyphless-char-display-control doesn't work with acronym,
Per Starbäck <=