]> git.eshelyaron.com Git - emacs.git/commitdiff
(event-modifiers): Fix the criterion for ASCII control chars.
authorRichard M. Stallman <rms@gnu.org>
Tue, 20 Apr 2004 20:56:32 +0000 (20:56 +0000)
committerRichard M. Stallman <rms@gnu.org>
Tue, 20 Apr 2004 20:56:32 +0000 (20:56 +0000)
lisp/subr.el

index 81f774bdc68b3bcc6ad0bbf3a2f5bde7c8494e99..57f725fb44c425a64b187d69171cf35a106915b0 100644 (file)
@@ -644,14 +644,16 @@ and `down'."
        (setq type (car type)))
     (if (symbolp type)
        (cdr (get type 'event-symbol-elements))
-      (let ((list nil))
-       (or (zerop (logand type ?\M-\^@))
+      (let ((list nil)
+           (char (logand type (lognot (logior ?\M-\^@ ?\C-\^@ ?\S-\^@
+                                              ?\H-\^@ ?\s-\^@ ?\A-\^@)))))
+       (if (not (zerop (logand type ?\M-\^@)))
            (setq list (cons 'meta list)))
-       (or (and (zerop (logand type ?\C-\^@))
-                (>= (logand type 127) 32))
+       (if (or (not (zerop (logand type ?\C-\^@)))
+               (< char 32))
            (setq list (cons 'control list)))
-       (or (and (zerop (logand type ?\S-\^@))
-                (= (logand type 255) (downcase (logand type 255))))
+       (if (or (not (zerop (logand type ?\S-\^@)))
+               (/= char (downcase char)))
            (setq list (cons 'shift list)))
        (or (zerop (logand type ?\H-\^@))
            (setq list (cons 'hyper list)))