Mercurial > emacs
view admin/notes/iftc @ 59977:a75c643392b8
* xfns.c (Fx_change_window_property): Use long array when format is 32.
(Fx_window_property): If format is 32 and long is bigger than 32 bits,
convert long array returned from XGetWindowProperty to an int array.
* xselect.c (x_reply_selection_request): Pass long array to
XChangeProperty so that 64 bit longs are handeled correctly.
(x_get_window_property): If format is 32 and long is bigger than 32
bits convert data from XGetWindowProperty from long array to int array.
(lisp_data_to_selection_data): When the input is a vector and the
format is 32, allocate a long array even if long is bigger than 32 bits.
(x_fill_property_data): Use char, short and long as the man page
for XChangeProperty specifies. This way the data returned is OK for
both 32 and 64 bit machines.
(x_handle_dnd_message): Calculate size correctly even for 64 bit
machines.
(Fx_send_client_event): Undo change from 2005-02-05,
x_fill_property_data now handles that case.
author | Jan Djärv <jan.h.d@swipnet.se> |
---|---|
date | Mon, 07 Feb 2005 20:00:31 +0000 |
parents | 695cf19ef79e |
children | 375f2633d815 ef719132ddfa |
line wrap: on
line source
Iso-Functional Type Contour This is a term coined to describe "column int->float" change approach, and can be used whenever low-level types need to change (hopefully not often!) but the meanings of the values (whose type has changed) do not. The premise is that changing a low-level type potentially means lots of code needs to be changed as well, and the question is how to do this incrementally, which is the preferred way to change things. Say LOW and HIGH are C functions: int LOW (void) { return 1; } void HIGH (void) { int value = LOW (); } We want to convert LOW to return float, so we cast HIGH usage: float LOW (void) { return 1.0; } void HIGH (void) { int value = (int) LOW (); } /* iftc */ The comment /* iftc */ is used to mark this type of casting to differentiate it from other casting. We commit the changes and can now go about modifying LOW and HIGH separately. When HIGH is ready to handle the type change, the cast can be removed. ;;; arch-tag: 3309cc41-5d59-421b-b7be-c94b04083bb5