+2012-10-01 Paul Eggert <eggert@cs.ucla.edu>
+
+ * frame.c (x_report_frame_params): Port better to wider ints.
+ Do not assume that EMACS_UINT is the same width as uprintmax_t,
+ or that pointers can be printed in 15 decimal digits.
+ Avoid GCC warnings if EMACS_UINT is wider than a pointer.
+
2012-09-30 Fabrice Popineau <fabrice.popineau@supelec.fr>
Support x64 build on MS-Windows.
void
x_report_frame_params (struct frame *f, Lisp_Object *alistptr)
{
- char buf[16];
Lisp_Object tem;
- EMACS_UINT w;
+ uprintmax_t w;
+ char buf[INT_BUFSIZE_BOUND (w)];
/* Represent negative positions (off the top or left screen edge)
in a way that Fmodify_frame_parameters will understand correctly. */
MS-Windows it returns a value whose type is HANDLE, which is
actually a pointer. Explicit casting avoids compiler
warnings. */
- w = (EMACS_UINT) FRAME_X_WINDOW (f);
+ w = (uintptr_t) FRAME_X_WINDOW (f);
store_in_alist (alistptr, Qwindow_id,
make_formatted_string (buf, "%"pMu, w));
#ifdef HAVE_X_WINDOWS
/* Tooltip frame may not have this widget. */
if (FRAME_X_OUTPUT (f)->widget)
#endif
- w = (EMACS_UINT) FRAME_OUTER_WINDOW (f);
+ w = (uintptr_t) FRAME_OUTER_WINDOW (f);
store_in_alist (alistptr, Qouter_window_id,
make_formatted_string (buf, "%"pMu, w));
#endif