From 1c6fefc9557ac174cea6b2d41f0eb3bdb1cced3a Mon Sep 17 00:00:00 2001 From: Daiki Ueno Date: Wed, 16 Jul 2014 13:11:08 +0900 Subject: [PATCH] Consolidate XChar2b macros for the X, W32, and NS MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Suggested by Jan Djärv in: https://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00203.html * w32gui.h (XChar2b, STORE_XCHAR2B, XCHAR2B_BYTE1, XCHAR2B_BYTE2): Move the fallback definitions to dispextern.h. * nsgui.h (XChar2b, STORE_XCHAR2B, XCHAR2B_BYTE1, XCHAR2B_BYTE2): Likewise. Share the same definition with W32. * xterm.h (STORE_XCHAR2B, XCHAR2B_BYTE1, XCHAR2B_BYTE2): Move to ... * dispextern.h (STORE_XCHAR2B, XCHAR2B_BYTE1, XCHAR2B_BYTE2): ... here for the consistency with W32 and NS. --- src/ChangeLog | 13 +++++++++++++ src/dispextern.h | 20 ++++++++++++++++++++ src/nsgui.h | 15 --------------- src/w32gui.h | 12 ------------ src/xterm.h | 9 --------- 5 files changed, 33 insertions(+), 36 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 87dd0eacc04..70c76e34c8c 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,16 @@ +2014-07-16 Daiki Ueno + + Consolidate XChar2b macros for the X, W32, and NS + Suggested by Jan Djärv in: + https://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00203.html + * w32gui.h (XChar2b, STORE_XCHAR2B, XCHAR2B_BYTE1, XCHAR2B_BYTE2): + Move the fallback definitions to dispextern.h. + * nsgui.h (XChar2b, STORE_XCHAR2B, XCHAR2B_BYTE1, XCHAR2B_BYTE2): + Likewise. Share the same definition with W32. + * xterm.h (STORE_XCHAR2B, XCHAR2B_BYTE1, XCHAR2B_BYTE2): Move to ... + * dispextern.h (STORE_XCHAR2B, XCHAR2B_BYTE1, XCHAR2B_BYTE2): + ... here for the consistency with W32 and NS. + 2014-07-15 Dmitry Antipov * xmenu.c (toplevel): Use LWLIB_ID for next_menubar_widget_id. diff --git a/src/dispextern.h b/src/dispextern.h index 0e04cc466d3..615d41d5a7f 100644 --- a/src/dispextern.h +++ b/src/dispextern.h @@ -31,6 +31,15 @@ along with GNU Emacs. If not, see . */ #include #endif /* USE_X_TOOLKIT */ +#define STORE_XCHAR2B(chp, b1, b2) \ + ((chp)->byte1 = (b1), (chp)->byte2 = (b2)) + +#define XCHAR2B_BYTE1(chp) \ + ((chp)->byte1) + +#define XCHAR2B_BYTE2(chp) \ + ((chp)->byte2) + #else /* !HAVE_X_WINDOWS */ /* X-related stuff used by non-X gui code. */ @@ -42,6 +51,17 @@ typedef struct { char pad; } XColor; +typedef unsigned short XChar2b; + +#define STORE_XCHAR2B(chp, b1, b2) \ + (*(chp) = ((XChar2b)((((b1) & 0x00ff) << 8) | ((b2) & 0x00ff)))) + +#define XCHAR2B_BYTE1(chp) \ + ((*(chp) & 0xff00) >> 8) + +#define XCHAR2B_BYTE2(chp) \ + (*(chp) & 0x00ff) + #endif /* HAVE_X_WINDOWS */ #ifdef MSDOS diff --git a/src/nsgui.h b/src/nsgui.h index 0e1e9bb73e9..b38b4482b87 100644 --- a/src/nsgui.h +++ b/src/nsgui.h @@ -58,21 +58,6 @@ typedef struct _XCharStruct int descent; } XCharStruct; -/* Fake structure from Xlib.h to represent two-byte characters. */ -#ifndef __OBJC__ -typedef unsigned short unichar; -#endif -typedef unichar XChar2b; - -#define STORE_XCHAR2B(chp, b1, b2) \ - (*(chp) = ((XChar2b)((((b1) & 0x00ff) << 8) | ((b2) & 0x00ff)))) - -#define XCHAR2B_BYTE1(chp) \ - (((*chp) & 0xff00) >> 8) - -#define XCHAR2B_BYTE2(chp) \ - ((*chp) & 0x00ff) - /* XXX: xfaces requires these structures, but the question is are we forced to use them? */ diff --git a/src/w32gui.h b/src/w32gui.h index d04ce625d1d..8642c479be8 100644 --- a/src/w32gui.h +++ b/src/w32gui.h @@ -52,18 +52,6 @@ typedef HCURSOR Cursor; #define No_Cursor (0) -#define XChar2b wchar_t - -/* Dealing with bits of wchar_t as if they were an XChar2b. */ -#define STORE_XCHAR2B(chp, byte1, byte2) \ - ((*(chp)) = ((XChar2b)((((byte1) & 0x00ff) << 8) | ((byte2) & 0x00ff)))) - -#define XCHAR2B_BYTE1(chp) \ - (((*(chp)) & 0xff00) >> 8) - -#define XCHAR2B_BYTE2(chp) \ - ((*(chp)) & 0x00ff) - /* Windows equivalent of XImage. */ typedef struct _XImage diff --git a/src/xterm.h b/src/xterm.h index 6d80d1253ae..370006366ef 100644 --- a/src/xterm.h +++ b/src/xterm.h @@ -1047,15 +1047,6 @@ extern void x_clear_under_internal_border (struct frame *f); #define FRAME_X_EMBEDDED_P(f) (FRAME_X_OUTPUT(f)->explicit_parent != 0) -#define STORE_XCHAR2B(chp, b1, b2) \ - ((chp)->byte1 = (b1), (chp)->byte2 = (b2)) - -#define XCHAR2B_BYTE1(chp) \ - ((chp)->byte1) - -#define XCHAR2B_BYTE2(chp) \ - ((chp)->byte2) - #define STORE_NATIVE_RECT(nr,rx,ry,rwidth,rheight) \ ((nr).x = (rx), \ (nr).y = (ry), \ -- 2.39.5