From: Daiki Ueno Date: Wed, 16 Jul 2014 04:11:08 +0000 (+0900) Subject: Consolidate XChar2b macros for the X, W32, and NS X-Git-Tag: emacs-25.0.90~2636^2~14 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=1c6fefc9557ac174cea6b2d41f0eb3bdb1cced3a;p=emacs.git 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. --- 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), \