emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/trunk r112012: * lisp/international/charact


From: Stefan Monnier
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r112012: * lisp/international/characters.el (glyphless-set-char-table-range): New fun.
Date: Mon, 11 Mar 2013 13:45:23 -0400
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 112012
fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13744
author: Per Starbäck <address@hidden>
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Mon 2013-03-11 13:45:23 -0400
message:
  * lisp/international/characters.el (glyphless-set-char-table-range): New fun.
  (update-glyphless-char-display): Use it.
modified:
  lisp/ChangeLog
  lisp/international/characters.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2013-03-11 17:21:31 +0000
+++ b/lisp/ChangeLog    2013-03-11 17:45:23 +0000
@@ -1,3 +1,8 @@
+2013-03-11  Per Starbäck  <address@hidden>
+
+       * international/characters.el (glyphless-set-char-table-range): New fun.
+       (update-glyphless-char-display): Use it (bug#13744).
+
 2013-03-11  Teodor Zlatanov  <address@hidden>
 
        * progmodes/cfengine.el: Update for CFEngine 3.4.2 and higher:

=== modified file 'lisp/international/characters.el'
--- a/lisp/international/characters.el  2013-01-01 09:11:05 +0000
+++ b/lisp/international/characters.el  2013-03-11 17:45:23 +0000
@@ -1410,16 +1410,16 @@
       (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)
+            (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)
-            (set-char-table-range glyphless-char-display '(#x80 . #x9F)
-                                  method))
+            (glyphless-set-char-table-range glyphless-char-display
+                                            #x80 #x9F method))
            ((eq target 'format-control)
             (map-char-table
              #'(lambda (char category)
@@ -1443,6 +1443,14 @@
            (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)


reply via email to

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