branch: externals/xelb commit 0a46cc62a3a82dcaa1d1bf0929a5207260f635e3 Author: Paul Eggert <egg...@cs.ucla.edu> Commit: Paul Eggert <egg...@cs.ucla.edu>
Port to 32-bit Emacs master Rewrite #xFFFFFFFF to 4294967295. and similarly for other hex constants intended to be floating-point on 32-bit Emacs. * el_client.el (xelb-parse-enum): Omit enums that do not fit in 32-bit Emacs. * xcb-xinput.el (xcb:xinput:ModifierMask:Any): * xcb-xkb.el (xcb:xkb:Control:IgnoreLockMods) (xcb:xkb:Control:PerKeyRepeat, xcb:xkb:Control:ControlsEnabled): Remove. --- el_client.el | 8 +++++++- xcb-cursor.el | 2 +- xcb-icccm.el | 2 +- xcb-types.el | 28 ++++++++++++++-------------- xcb-xinput.el | 2 -- xcb-xkb.el | 3 --- 6 files changed, 23 insertions(+), 22 deletions(-) diff --git a/el_client.el b/el_client.el index 9b7077f..393745e 100644 --- a/el_client.el +++ b/el_client.el @@ -351,7 +351,13 @@ an `xelb-auto-padding' attribute." (if expression (setq value (xelb-parse-expression expression)) (setq value (1+ value))) - `(defconst ,name ,value)))) + ;; Omit the rare enums that do not fit in a fixnum in + ;; 32-bit Emacs, so that the resulting .el and .elc + ;; files are portable to 32-bit Emacs. Admittedly + ;; this is a kludge. + (unless (and ((integerp value) + (not (<= -536870912 value 536870911)))) + `(defconst ,name ,value))))) items)))) (defun xelb-parse-typedef (node) diff --git a/xcb-cursor.el b/xcb-cursor.el index 12bbf27..71842a3 100644 --- a/xcb-cursor.el +++ b/xcb-cursor.el @@ -230,7 +230,7 @@ (defconst xcb:cursor:-file-chunk-image-header 36 "Header value of image-type chunk in Xcursor file.") -(defconst xcb:cursor:-file-chunk-image-type #xFFFD0002 +(defconst xcb:cursor:-file-chunk-image-type 4294770690. "Type of image-type chunk in Xcursor file.") (defconst xcb:cursor:-file-chunk-image-version 1 "Version of image-type chunk in Xcursor file.") diff --git a/xcb-icccm.el b/xcb-icccm.el index 613bed1..4599a7d 100644 --- a/xcb-icccm.el +++ b/xcb-icccm.el @@ -119,7 +119,7 @@ A valid timestamp (rather than `xcb:Time:CurrentTime') must be supplied.") (defclass xcb:icccm:-GetProperty (xcb:GetProperty) ((delete :initform 0) (long-offset :initform 0) - (long-length :initform 1000000000)) ;as long as possible + (long-length :initform 1000000000.)) ;as long as possible :documentation "Get an ICCCM property (request part).") (defclass xcb:icccm:-GetProperty~reply (xcb:GetProperty~reply) diff --git a/xcb-types.el b/xcb-types.el index f5c1a3c..0c172b6 100644 --- a/xcb-types.el +++ b/xcb-types.el @@ -155,8 +155,8 @@ (logand (lsh value -16) #xFF) (logand (lsh value -8) #xFF) (logand value #xFF)) - (let* ((msdw (min #xFFFFFFFF (truncate value #x100000000))) - (lsdw (min #xFFFFFFFF + (let* ((msdw (min 4294967295. (truncate value 4294967296.))) + (lsdw (min 4294967295. (truncate (- value (* msdw 4294967296.0)))))) (vector (logand (lsh msdw -24) #xFF) (logand (lsh msdw -16) #xFF) (logand (lsh msdw -8) #xFF) (logand msdw #xFF) @@ -173,8 +173,8 @@ (logand (lsh value -40) #xFF) (logand (lsh value -48) #xFF) (logand (lsh value -56) #xFF)) - (let* ((msdw (min #xFFFFFFFF (truncate value #x100000000))) - (lsdw (min #xFFFFFFFF + (let* ((msdw (min 4294967295. (truncate value 4294967296.))) + (lsdw (min 4294967295. (truncate (- value (* msdw 4294967296.0)))))) (vector (logand lsdw #xFF) (logand (lsh lsdw -8) #xFF) (logand (lsh lsdw -16) #xFF) (logand (lsh lsdw -24) #xFF) @@ -207,11 +207,11 @@ (vector 0 0 0 0 (logand (lsh value -24) #xFF) (logand (lsh value -16) #xFF) (logand (lsh value -8) #xFF) (logand value #xFF)) - (let* ((msw (min #xFFFF (truncate value #x1000000000000))) + (let* ((msw (min #xFFFF (truncate value 281474976710656.))) (w1 (min #xFFFF (truncate (setq value (- value (* msw 281474976710656.0))) - #x100000000))) + 4294967296.))) (w2 (min #xFFFF (truncate (setq value (- value (* w1 4294967296.0))) #x10000))) @@ -226,11 +226,11 @@ (vector (logand value #xFF) (logand (lsh value -8) #xFF) (logand (lsh value -16) #xFF) (logand (lsh value -24) #xFF) 0 0 0 0) - (let* ((msw (min #xFFFF (truncate value #x1000000000000))) + (let* ((msw (min #xFFFF (truncate value 281474976710656.))) (w1 (min #xFFFF (truncate (setq value (- value (* msw 281474976710656.0))) - #x100000000))) + 4294967296.))) (w2 (min #xFFFF (truncate (setq value (- value (* w1 4294967296.0))) #x10000))) @@ -244,13 +244,13 @@ "4 bytes signed integer => byte array (MSB first)." (xcb:-pack-u4 (if (>= value 0) value - (+ value #x100000000)))) ;treated as float for 32-bit + (+ value 4294967296.)))) ;treated as float for 32-bit (defsubst xcb:-pack-i4-lsb (value) "4 bytes signed integer => byte array (LSB first)." (xcb:-pack-u4-lsb (if (>= value 0) value - (+ value #x100000000)))) ;treated as float for 32-bit + (+ value 4294967296.)))) ;treated as float for 32-bit (defsubst xcb:-unpack-u1 (data offset) "Byte array => 1 byte unsigned integer." @@ -361,16 +361,16 @@ (defsubst xcb:-unpack-i4 (data offset) "Byte array => 4 bytes signed integer (MSB first)." (let ((value (xcb:-unpack-u4 data offset))) - (if (< value #x80000000) ;treated as float for 32-bit + (if (< value 2147483648.) ;treated as float for 32-bit value - (- value #x100000000)))) ;treated as float for 32-bit + (- value 4294967296.)))) ;treated as float for 32-bit (defsubst xcb:-unpack-i4-lsb (data offset) "Byte array => 4 bytes signed integer (LSB first)." (let ((value (xcb:-unpack-u4-lsb data offset))) - (if (< value #x80000000) ;treated as float for 32-bit + (if (< value 2147483648.) ;treated as float for 32-bit value - (- value #x100000000)))) ;treated as float for 32-bit + (- value 4294967296.)))) ;treated as float for 32-bit (defmacro xcb:-fieldref (field) "Evaluate a <fieldref> field." diff --git a/xcb-xinput.el b/xcb-xinput.el index b2ef72b..f4da64e 100644 --- a/xcb-xinput.el +++ b/xcb-xinput.el @@ -1862,8 +1862,6 @@ (defconst xcb:xinput:GrabType:FocusIn 3) (defconst xcb:xinput:GrabType:TouchBegin 4) -(defconst xcb:xinput:ModifierMask:Any 2147483648) - (defclass xcb:xinput:GrabModifierInfo (xcb:-struct) ((modifiers :initarg :modifiers :type xcb:CARD32) diff --git a/xcb-xkb.el b/xcb-xkb.el index 881f4df..1f26deb 100644 --- a/xcb-xkb.el +++ b/xcb-xkb.el @@ -105,9 +105,6 @@ (defconst xcb:xkb:Control:GroupsWrap 134217728) (defconst xcb:xkb:Control:InternalMods 268435456) -(defconst xcb:xkb:Control:IgnoreLockMods 536870912) -(defconst xcb:xkb:Control:PerKeyRepeat 1073741824) -(defconst xcb:xkb:Control:ControlsEnabled 2147483648) (defconst xcb:xkb:AXOption:SKPressFB 1) (defconst xcb:xkb:AXOption:SKAcceptFB 2)