emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debbugs-tracker] bug#13744: closed (glyphless-char-display-control does


From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#13744: closed (glyphless-char-display-control doesn't work with acronym)
Date: Mon, 11 Mar 2013 17:47:02 +0000

Your message dated Mon, 11 Mar 2013 13:45:41 -0400
with message-id <address@hidden>
and subject line Re: bug#13744: glyphless-char-display-control doesn't work 
with acronym
has caused the debbugs.gnu.org bug report #13744,
regarding glyphless-char-display-control doesn't work with acronym
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden)


-- 
13744: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13744
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: 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)

======================================================================



--- End Message ---
--- Begin Message --- Subject: Re: bug#13744: glyphless-char-display-control doesn't work with acronym Date: Mon, 11 Mar 2013 13:45:41 -0400 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux)
> The code puts 'acronym in glyphless-char-display, but there should
> instead be the actual string to use.

Thanks, installed,


        Stefan


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]