(prin1-char): Put `shift' modifier into the basic character,
authorRichard M. Stallman <rms@gnu.org>
Sat, 28 Aug 2004 14:00:38 +0000 (14:00 +0000)
committerRichard M. Stallman <rms@gnu.org>
Sat, 28 Aug 2004 14:00:38 +0000 (14:00 +0000)
if it has an uppercase form.

lisp/emacs-lisp/lisp-mode.el

index df05555..bcc9c2a 100644 (file)
@@ -459,14 +459,20 @@ alternative printed representations that can be displayed."
 If CHAR is not a character, return nil."
   (and (integerp char)
        (eventp char)
-       (let ((c (event-basic-type char)))
+       (let ((c (event-basic-type char))
+            (mods (event-modifiers char)))
+        ;; Prevent ?A from turning into ?\S-a.
+        (if (and (memq 'shift mods)
+                 (not (let ((case-fold-search nil))
+                        (char-equal c (upcase c)))))
+            (setq c (upcase c) mods nil))
         (concat
          "?"
          (mapconcat
           (lambda (modif)
             (cond ((eq modif 'super) "\\s-")
                   (t (string ?\\ (upcase (aref (symbol-name modif) 0)) ?-))))
-          (event-modifiers char) "")
+          mods "")
          (cond
           ((memq c '(?\; ?\( ?\) ?\{ ?\} ?\[ ?\] ?\" ?\' ?\\)) (string ?\\ c))
           ((eq c 127) "\\C-?")