GNU bug report logs -
#18303
Drag and Drop fails when Emacs window/frame is above top
Previous Next
Reported by: Paulie Pena IV <paulie4 <at> gmail.com>
Date: Wed, 20 Aug 2014 15:46:04 UTC
Severity: normal
Done: Jan Djärv <jan.h.d <at> swipnet.se>
Bug is archived. No further changes may be made.
Full log
Message #16 received at 18303 <at> debbugs.gnu.org (full text, mbox):
Hello.
7 sep 2014 kl. 21:50 skrev Paul Eggert <eggert <at> cs.ucla.edu>:
> Thanks for the patch. I noticed that '(v1 << 16) | v2' wouldn't work as desired when v2 < 0, though, as v2's sign bits will bleed into v1's encoded value. I installed an attempt at a fix as trunk bzr 117836.
Thanks, but it does not look right. We can assume v1 and v2 are 16 bit signed integers (X coordinates). In general, when data is a CONS, it must be two 16 bit numbers.
So (v1 << 16) | v2 is just a way of stuffing two signed 16 bits into 32 bits.
But when v2 is long, (v2 & 0xffff) looses the sign bit, as the code is now.
I don't know why the range X_LONG_(MIN|MAX) >> 16 is relevant here, it is way too large.
Remember, val can only be 32 bit, so X_LONG_MAX >> 16 can in it self be 48 bits.
Maybe just convert v1 and v2 to two signed 16 bit numbers (int16_t?) and shift?
Jan D.
This bug report was last modified 10 years and 312 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.