diff options
| author | Eli Zaretskii | 2015-01-13 19:16:51 +0200 |
|---|---|---|
| committer | Eli Zaretskii | 2015-01-13 19:16:51 +0200 |
| commit | 5aa618b05807d560126dfd09b9c9cb6b957b98de (patch) | |
| tree | b739bec3884c4ed03158b8be0edd0c831540d0d7 /src/w32proc.c | |
| parent | 30c5f5cdef8db72c007efecfc8436479631b45d0 (diff) | |
| download | emacs-5aa618b05807d560126dfd09b9c9cb6b957b98de.tar.gz emacs-5aa618b05807d560126dfd09b9c9cb6b957b98de.zip | |
Fix problems with 32-bit wide-int build exposed by MinGW
lisp.h (XPNTR): Move definition to after XTYPE, to avoid
compilation error in an unoptimized build when !USE_LSB_TAG.
src/w32heap.c (DUMPED_HEAP_SIZE): For 32-bit wide-int build, use the
same larger value as for the 64-bit build.
src/w32term.h (SCROLL_BAR_PACK): Cast the result to UINT_PTR to
avoid compiler warnings.
src/w32proc.c (Fw32_get_codepage_charset, Fw32_set_keyboard_layout):
Avoid compiler warnings about cast from integer to pointer of
different size.
src/w32menu.c (menubar_selection_callback, w32_menu_show): Cast to
UINT_PTR instead of EMACS_INT, to avoid compiler warnings about
casting from integer to pointer of different size.
(add_menu_item): Pass the help-echo string as a pointer to
Lisp_String, not as a Lisp_Object.
(w32_menu_display_help): Use make_lisp_ptr to reconstruct a Lisp
string object from its C pointer.
src/w32fns.c (w32_msg_pump) <WM_EMACS_UNREGISTER_HOT_KEY>: Use
make_lisp_ptr instead of XIL, to reconstruct a Lisp_Cons from its
C pointer.
<WM_EMACS_TOGGLE_LOCK_KEY>: msg.lparam is now a C integer.
(Fx_create_frame): Type-cast the result of XFASTINT to avoild
compiler warnings about size differences.
(Fw32_unregister_hot_key): Pass the tail of w32_grabbed_keys as a
pointer to a Lisp_Cons struct, not as a disguised EMACS_INT.
(Fw32_toggle_lock_key): Pass the new state of the key as a C
integer; use -1 for nil. Doc fix.
src/.gdbinit (xgetsym): New subroutine.
(xsymname, xsymbol): Use it.
(xprintsym): No need to call xgetptr.
Diffstat (limited to 'src/w32proc.c')
| -rw-r--r-- | src/w32proc.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/w32proc.c b/src/w32proc.c index 26cfa2996d0..74731db2426 100644 --- a/src/w32proc.c +++ b/src/w32proc.c | |||
| @@ -3077,13 +3077,18 @@ yield nil. */) | |||
| 3077 | (Lisp_Object cp) | 3077 | (Lisp_Object cp) |
| 3078 | { | 3078 | { |
| 3079 | CHARSETINFO info; | 3079 | CHARSETINFO info; |
| 3080 | DWORD dwcp; | ||
| 3080 | 3081 | ||
| 3081 | CHECK_NUMBER (cp); | 3082 | CHECK_NUMBER (cp); |
| 3082 | 3083 | ||
| 3083 | if (!IsValidCodePage (XINT (cp))) | 3084 | if (!IsValidCodePage (XINT (cp))) |
| 3084 | return Qnil; | 3085 | return Qnil; |
| 3085 | 3086 | ||
| 3086 | if (TranslateCharsetInfo ((DWORD *) XINT (cp), &info, TCI_SRCCODEPAGE)) | 3087 | /* Going through a temporary DWORD variable avoids compiler warning |
| 3088 | about cast to pointer from integer of different size, when | ||
| 3089 | building --with-wide-int. */ | ||
| 3090 | dwcp = XINT (cp); | ||
| 3091 | if (TranslateCharsetInfo ((DWORD *) dwcp, &info, TCI_SRCCODEPAGE)) | ||
| 3087 | return make_number (info.ciCharset); | 3092 | return make_number (info.ciCharset); |
| 3088 | 3093 | ||
| 3089 | return Qnil; | 3094 | return Qnil; |
| @@ -3142,8 +3147,8 @@ If successful, the new layout id is returned, otherwise nil. */) | |||
| 3142 | CHECK_NUMBER_CAR (layout); | 3147 | CHECK_NUMBER_CAR (layout); |
| 3143 | CHECK_NUMBER_CDR (layout); | 3148 | CHECK_NUMBER_CDR (layout); |
| 3144 | 3149 | ||
| 3145 | kl = (HKL) ((XINT (XCAR (layout)) & 0xffff) | 3150 | kl = (HKL) (UINT_PTR) ((XINT (XCAR (layout)) & 0xffff) |
| 3146 | | (XINT (XCDR (layout)) << 16)); | 3151 | | (XINT (XCDR (layout)) << 16)); |
| 3147 | 3152 | ||
| 3148 | /* Synchronize layout with input thread. */ | 3153 | /* Synchronize layout with input thread. */ |
| 3149 | if (dwWindowsThreadId) | 3154 | if (dwWindowsThreadId) |