Makefile.am | 1 configure.ac | 183 ++--- docbook.am | 107 +++ include/X11/Xlib.h | 1 include/X11/Xlibint.h | 112 +-- include/X11/Xutil.h | 2 man/DisplayOfCCC.man | 2 man/Makefile.am | 2 man/XChangeKeyboardMapping.man | 2 man/XFreeModifierMap.man | 1 man/XFreeModifiermap.man | 1 man/XGrabKey.man | 2 man/xkb/XkbComputeShapeTop.man | 2 man/xkb/XkbPtrActionX.man | 2 man/xkb/XkbPtrActionY.man | 2 man/xkb/XkbSetPtrActionX.man | 2 man/xkb/XkbSetPtrActionY.man | 2 modules/im/ximcp/imCallbk.c | 2 modules/im/ximcp/imDefFlt.c | 16 modules/im/ximcp/imDefIc.c | 11 modules/im/ximcp/imDefIm.c | 51 - modules/im/ximcp/imDefLkup.c | 16 modules/im/ximcp/imExten.c | 2 modules/im/ximcp/imInt.c | 9 modules/im/ximcp/imLcFlt.c | 34 modules/im/ximcp/imLcIc.c | 5 modules/im/ximcp/imLcIm.c | 5 modules/im/ximcp/imLcLkup.c | 26 modules/im/ximcp/imLcPrs.c | 5 modules/im/ximcp/imRm.c | 59 - modules/im/ximcp/imRmAttr.c | 37 - modules/im/ximcp/imThaiFlt.c | 11 modules/im/ximcp/imThaiIc.c | 3 modules/im/ximcp/imTrX.c | 36 - modules/im/ximcp/imTrans.c | 7 modules/lc/def/lcDefConv.c | 2 modules/lc/gen/lcGenConv.c | 14 modules/lc/xlocale/lcJis.c | 3 modules/om/generic/omGeneric.c | 99 +- nls/Makefile.am | 99 -- nls/compose-chart.pl | 389 ----------- nls/en_US.UTF-8/Compose.pre | 23 nls/iso8859-1/Compose.pre | 2 nls/locale.alias.pre | 19 nls/pt_BR.UTF-8/Compose.pre | 2 specs/.gitignore | 1 specs/XIM/Makefile.am | 37 - specs/XIM/xim.xml | 84 +- specs/XKB/Makefile.am | 37 - specs/XKB/ch01.xml | 22 specs/XKB/ch02.xml | 16 specs/XKB/ch03.xml | 12 specs/XKB/ch04.xml | 12 specs/XKB/ch05.xml | 14 specs/XKB/ch06.xml | 10 specs/XKB/ch07.xml | 16 specs/XKB/ch08.xml | 40 - specs/XKB/ch09.xml | 16 specs/XKB/ch10.xml | 78 +- specs/XKB/ch11.xml | 30 specs/XKB/ch12.xml | 12 specs/XKB/ch13.xml | 26 specs/XKB/ch14.xml | 26 specs/XKB/ch15.xml | 44 - specs/XKB/ch16.xml | 56 - specs/XKB/ch17.xml | 22 specs/XKB/ch18.xml | 16 specs/XKB/ch19.xml | 2 specs/XKB/ch20.xml | 10 specs/XKB/ch21.xml | 17 specs/XKB/ch22.xml | 2 specs/XKB/xkblib.xml | 19 specs/i18n/Makefile.am | 2 specs/i18n/compose/.gitignore | 2 specs/i18n/compose/Makefile.am | 20 specs/i18n/compose/compose-chart.pl | 388 +++++++++++ specs/i18n/compose/docbook-nl.am | 128 +++ specs/i18n/framework/Makefile.am | 36 - specs/i18n/framework/framework.xml | 180 ++--- specs/i18n/localedb/Makefile.am | 33 specs/i18n/localedb/localedb.xml | 26 specs/i18n/trans/Makefile.am | 33 specs/i18n/trans/trans.xml | 62 + specs/libX11/AppA.xml | 986 ++++++++++++++-------------- specs/libX11/AppB.xml | 2 specs/libX11/AppC.xml | 373 +++++----- specs/libX11/AppD.xml | 235 +++--- specs/libX11/CH01.xml | 29 specs/libX11/CH02.xml | 320 ++++----- specs/libX11/CH03.xml | 418 ++++++------ specs/libX11/CH04.xml | 248 +++---- specs/libX11/CH05.xml | 90 +- specs/libX11/CH06.xml | 588 ++++++++--------- specs/libX11/CH07.xml | 365 +++++----- specs/libX11/CH08.xml | 563 ++++++++-------- specs/libX11/CH09.xml | 295 ++++---- specs/libX11/CH10.xml | 297 +++----- specs/libX11/CH11.xml | 443 ++++++------- specs/libX11/CH12.xml | 412 ++++++------ specs/libX11/CH13.xml | 1225 +++++++++++++++++------------------- specs/libX11/CH14.xml | 687 ++++++++++---------- specs/libX11/CH15.xml | 314 ++++----- specs/libX11/CH16.xml | 492 +++++++------- specs/libX11/Makefile.am | 78 -- specs/libX11/credits.xml | 32 specs/libX11/glossary.xml | 30 specs/libX11/libX11.xml | 39 - specs/xmlrules.in | 67 - src/FSWrap.c | 5 src/Font.c | 2 src/GetProp.c | 2 src/ImUtil.c | 1 src/InitExt.c | 3 src/KeyBind.c | 3 src/KeysymStr.c | 3 src/Makefile.am | 1 src/Quarks.c | 3 src/RdBitF.c | 5 src/Region.c | 13 src/SetLocale.c | 3 src/XlibInt.c | 57 + src/Xresinternal.h | 4 src/Xrm.c | 21 src/XrmI.h | 46 - src/util/Makefile.am | 3 src/util/makekeys.c | 5 src/xcb_io.c | 111 ++- src/xcms/LRGB.c | 31 src/xcms/PrOfId.c | 11 src/xcms/cmsColNm.c | 4 src/xcms/cmsProp.c | 17 src/xkb/XKB.c | 2 src/xkb/XKBGAlloc.c | 17 src/xkb/XKBGeom.c | 4 src/xkb/XKBList.c | 2 src/xkb/XKBMisc.c | 2 src/xlibi18n/XDefaultIMIF.c | 6 src/xlibi18n/XDefaultOMIF.c | 51 - src/xlibi18n/XimintP.h | 40 - src/xlibi18n/XlcDL.c | 40 - src/xlibi18n/XlcSL.c | 6 src/xlibi18n/lcCharSet.c | 3 src/xlibi18n/lcDB.c | 18 src/xlibi18n/lcFile.c | 22 src/xlibi18n/lcGeneric.c | 35 - src/xlibi18n/lcPublic.c | 9 146 files changed, 6066 insertions(+), 6173 deletions(-)
New commits: commit bf2d7c8c6d70539c72560b1921e18df2610acf29 Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Fri Nov 11 14:56:36 2011 +1000 libX11 1.4.99.1 Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> diff --git a/configure.ac b/configure.ac index 71662b8..c1f64b6 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) -AC_INIT([libX11], [1.4.4], +AC_INIT([libX11], [1.4.99.1], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [libX11]) AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_HEADERS([src/config.h include/X11/XlibConf.h]) commit 24283d40b1e4314c6647dda49d2a159833341a8b Author: Derek Buitenhuis <derek.buitenh...@gmail.com> Date: Thu Sep 22 18:44:13 2011 -0400 makekeys: Fix build/target word size mismatch when cross-compiling Since makekeys is built using build environment's gcc and runs natively, we have to make sure that the size of the Signature type is the same on both the native environment and the target, otherwise we get mismatches upon running X, and some LSB test failures (xts5). Use an unsigned 32-bit integer on all platforms. Also, eliminate the redundant multiple typedefs for the Signature type. Signed-off-by: Derek Buitenhuis <derek.buitenh...@gmail.com> Reviewed-by: Daniel Stone <dan...@fooishbar.org> diff --git a/src/KeysymStr.c b/src/KeysymStr.c index 486b5d1..101f297 100644 --- a/src/KeysymStr.c +++ b/src/KeysymStr.c @@ -31,11 +31,10 @@ in this Software without prior written authorization from The Open Group. #include "Xlibint.h" #include <X11/Xresource.h> #include <X11/keysymdef.h> +#include "Xresinternal.h" #include <stdio.h> /* sprintf */ -typedef unsigned long Signature; - #define NEEDVTABLE #include "ks_tables.h" #include "Key.h" diff --git a/src/Xresinternal.h b/src/Xresinternal.h index b4b1b00..c2f355f 100644 --- a/src/Xresinternal.h +++ b/src/Xresinternal.h @@ -2,8 +2,10 @@ #ifndef _XRESINTERNAL_H_ #define _XRESINTERNAL_H_ +#include <inttypes.h> + /* type defines */ -typedef unsigned long Signature; +typedef uint32_t Signature; /* prototypes */ extern XrmQuark _XrmInternalStringToQuark( diff --git a/src/util/Makefile.am b/src/util/Makefile.am index 3b100e0..dfe91f1 100644 --- a/src/util/Makefile.am +++ b/src/util/Makefile.am @@ -5,6 +5,9 @@ makekeys_CFLAGS = \ $(X11_CFLAGS) \ $(CWARNFLAGS) +makekeys_CPPFLAGS = \ + -I$(top_srcdir)/include + CC = @CC_FOR_BUILD@ CPPFLAGS = @CPPFLAGS_FOR_BUILD@ CFLAGS = @CFLAGS_FOR_BUILD@ diff --git a/src/util/makekeys.c b/src/util/makekeys.c index 8f88beb..36d4d4b 100644 --- a/src/util/makekeys.c +++ b/src/util/makekeys.c @@ -30,11 +30,12 @@ from The Open Group. #include <X11/X.h> #include <X11/Xos.h> +#include <X11/Xresource.h> #include <X11/keysymdef.h> #include <stdio.h> #include <stdlib.h> -typedef unsigned long Signature; +#include "../Xresinternal.h" #define KTNUM 4000 @@ -212,7 +213,7 @@ next1: ; offsets[j] = k; indexes[i] = k; val = info[i].val; - printf("0x%.2lx, 0x%.2lx, 0x%.2lx, 0x%.2lx, 0x%.2lx, 0x%.2lx, ", + printf("0x%.2"PRIx32", 0x%.2"PRIx32", 0x%.2lx, 0x%.2lx, 0x%.2lx, 0x%.2lx, ", (sig >> 8) & 0xff, sig & 0xff, (val >> 24) & 0xff, (val >> 16) & 0xff, (val >> 8) & 0xff, val & 0xff); commit 1c41f3b9b86b5eeedfa3bff92e519d45aa097587 Author: Alan Coopersmith <alan.coopersm...@oracle.com> Date: Wed Nov 9 21:00:36 2011 -0800 XlcSL.c: convert old-style function definitions to ANSI C89 style Signed-off-by: Alan Coopersmith <alan.coopersm...@oracle.com> diff --git a/src/xlibi18n/XlcSL.c b/src/xlibi18n/XlcSL.c index 574e4c0..b8b3967 100644 --- a/src/xlibi18n/XlcSL.c +++ b/src/xlibi18n/XlcSL.c @@ -71,8 +71,7 @@ extern XIM _XDefaultOpenIM( ); Bool -_XInitDefaultIM(lcd) -XLCd lcd; +_XInitDefaultIM(XLCd lcd) { if(lcd == (XLCd)NULL) return False; @@ -88,8 +87,7 @@ extern XOM _XDefaultOpenOM( ); Bool -_XInitDefaultOM(lcd) - XLCd lcd; +_XInitDefaultOM(XLCd lcd) { lcd->methods->open_om = _XDefaultOpenOM; return True; commit f6dad6aaa384bf836baa28ccb72b476a85c40eff Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Thu Oct 27 13:53:22 2011 +1000 Use GetReqSized for GetReq and GetReqExtra GetEmptyReq and GetResReq cannot do this due to the final typecast - typically requests that need either of those do not have their own typedef in the protocol headers. Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> Reviewed-by: Jamey Sharp <ja...@minilop.net> diff --git a/include/X11/Xlibint.h b/include/X11/Xlibint.h index 9d75d06..80edeec 100644 --- a/include/X11/Xlibint.h +++ b/include/X11/Xlibint.h @@ -456,10 +456,10 @@ extern void *_XGetRequest(Display *dpy, CARD8 type, size_t len); #if !defined(UNIXCPP) || defined(ANSICPP) #define GetReq(name, req) \ - req = (x##name##Req *) _XGetRequest(dpy, X_##name, SIZEOF(x##name##Req)) + GetReqSized(name, SIZEOF(x##name##Req), req) #else /* non-ANSI C uses empty comment instead of "##" for token concatenation */ #define GetReq(name, req) \ - req = (x/**/name/**/Req *) _XGetRequest(dpy, X_/**/name, SIZEOF(x/**/name/**/Req)) + GetReqSized(name, SIZEOF(x/**/name/**/Req), req) #endif /* GetReqExtra is the same as GetReq, but allocates "n" additional @@ -467,10 +467,10 @@ extern void *_XGetRequest(Display *dpy, CARD8 type, size_t len); #if !defined(UNIXCPP) || defined(ANSICPP) #define GetReqExtra(name, n, req) \ - req = (x##name##Req *) _XGetRequest(dpy, X_##name, SIZEOF(x##name##Req) + n) + GetReqSized(name, SIZEOF(x##name##Req) + n, req) #else #define GetReqExtra(name, n, req) \ - req = (x/**/name/**/Req *) _XGetRequest(dpy, X_/**/name, SIZEOF(x/**/name/**/Req) + n) + GetReqSized(name, SIZEOF(x/**/name/**/Req) + n, req) #endif commit c9c99058b9d98789c0b2d7e78a23443c2b57a047 Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Fri Oct 14 14:51:06 2011 +1000 include: Add GetReqSized() for request buffers of specific size Some XI2 requests change in size over different versions and libXi would need to hack around GetReq and GetReqExtra. Add a new GetReqSized so the library can explicitly specify the size of the request in 4-byte units. Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> Reviewed-by: Jamey Sharp <ja...@minilop.net> diff --git a/include/X11/Xlibint.h b/include/X11/Xlibint.h index 01087b8..9d75d06 100644 --- a/include/X11/Xlibint.h +++ b/include/X11/Xlibint.h @@ -433,6 +433,18 @@ extern LockInfoPtr _Xglobal_lock; */ extern void *_XGetRequest(Display *dpy, CARD8 type, size_t len); +/* GetReqSized is the same as GetReq but allows the caller to specify the + * size in bytes. 'sz' must be a multiple of 4! */ + +#if !defined(UNIXCPP) || defined(ANSICPP) +#define GetReqSized(name, sz, req) \ + req = (x##name##Req *) _XGetRequest(dpy, X_##name, sz) +#else +#define GetReqSized(name, sz, req) \ + req = (x/**/name/**/Req *) _XGetRequest(dpy, X_/**/name, sz) +#endif + + /* * GetReq - Get the next available X request packet in the buffer and * return it. commit ba8a7a19165e30d14bc165f43f67c19b6a115585 Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Thu Oct 27 13:24:10 2011 +1000 Switch GetEmptyReq and GetResReq to call _XGetRequest Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> Reviewed-by: Jamey Sharp <ja...@minilop.net> diff --git a/include/X11/Xlibint.h b/include/X11/Xlibint.h index 43d1f2a..01087b8 100644 --- a/include/X11/Xlibint.h +++ b/include/X11/Xlibint.h @@ -470,26 +470,12 @@ extern void *_XGetRequest(Display *dpy, CARD8 type, size_t len); #if !defined(UNIXCPP) || defined(ANSICPP) #define GetResReq(name, rid, req) \ - WORD64ALIGN\ - if ((dpy->bufptr + SIZEOF(xResourceReq)) > dpy->bufmax)\ - _XFlush(dpy);\ - req = (xResourceReq *) (dpy->last_req = dpy->bufptr);\ - req->reqType = X_##name;\ - req->length = 2;\ - req->id = (rid);\ - dpy->bufptr += SIZEOF(xResourceReq);\ - dpy->request++ + req = (xResourceReq *) _XGetRequest(dpy, X_##name, SIZEOF(xResourceReq)); \ + req->id = (rid) #else #define GetResReq(name, rid, req) \ - WORD64ALIGN\ - if ((dpy->bufptr + SIZEOF(xResourceReq)) > dpy->bufmax)\ - _XFlush(dpy);\ - req = (xResourceReq *) (dpy->last_req = dpy->bufptr);\ - req->reqType = X_/**/name;\ - req->length = 2;\ - req->id = (rid);\ - dpy->bufptr += SIZEOF(xResourceReq);\ - dpy->request++ + req = (xResourceReq *) _XGetRequest(dpy, X_/**/name, SIZEOF(xResourceReq)); \ + req->id = (rid) #endif /* @@ -498,24 +484,10 @@ extern void *_XGetRequest(Display *dpy, CARD8 type, size_t len); */ #if !defined(UNIXCPP) || defined(ANSICPP) #define GetEmptyReq(name, req) \ - WORD64ALIGN\ - if ((dpy->bufptr + SIZEOF(xReq)) > dpy->bufmax)\ - _XFlush(dpy);\ - req = (xReq *) (dpy->last_req = dpy->bufptr);\ - req->reqType = X_##name;\ - req->length = 1;\ - dpy->bufptr += SIZEOF(xReq);\ - dpy->request++ + req = (xReq *) _XGetRequest(dpy, X_##name, SIZEOF(xReq)) #else #define GetEmptyReq(name, req) \ - WORD64ALIGN\ - if ((dpy->bufptr + SIZEOF(xReq)) > dpy->bufmax)\ - _XFlush(dpy);\ - req = (xReq *) (dpy->last_req = dpy->bufptr);\ - req->reqType = X_/**/name;\ - req->length = 1;\ - dpy->bufptr += SIZEOF(xReq);\ - dpy->request++ + req = (xReq *) _XGetRequest(dpy, X_/**/name, SIZEOF(xReq)) #endif #ifdef WORD64 commit 4a060f993bf676cf21ad9784e010f54134da7b40 Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Mon Oct 17 09:45:15 2011 +1000 Add _XGetRequest as substitute for GetReq/GetReqExtra Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> Reviewed-by: Jamey Sharp <ja...@minilop.net> diff --git a/include/X11/Xlibint.h b/include/X11/Xlibint.h index 2ce356d..43d1f2a 100644 --- a/include/X11/Xlibint.h +++ b/include/X11/Xlibint.h @@ -420,6 +420,18 @@ extern LockInfoPtr _Xglobal_lock; #define WORD64ALIGN #endif /* WORD64 */ +/** + * Return a len-sized request buffer for the request type. This function may + * flush the output queue. + * + * @param dpy The display connection + * @param type The request type + * @param len Length of the request in bytes + * + * @returns A pointer to the request buffer with a few default values + * initialized. + */ +extern void *_XGetRequest(Display *dpy, CARD8 type, size_t len); /* * GetReq - Get the next available X request packet in the buffer and @@ -432,25 +444,10 @@ extern LockInfoPtr _Xglobal_lock; #if !defined(UNIXCPP) || defined(ANSICPP) #define GetReq(name, req) \ - WORD64ALIGN\ - if ((dpy->bufptr + SIZEOF(x##name##Req)) > dpy->bufmax)\ - _XFlush(dpy);\ - req = (x##name##Req *)(dpy->last_req = dpy->bufptr);\ - req->reqType = X_##name;\ - req->length = (SIZEOF(x##name##Req))>>2;\ - dpy->bufptr += SIZEOF(x##name##Req);\ - dpy->request++ - + req = (x##name##Req *) _XGetRequest(dpy, X_##name, SIZEOF(x##name##Req)) #else /* non-ANSI C uses empty comment instead of "##" for token concatenation */ #define GetReq(name, req) \ - WORD64ALIGN\ - if ((dpy->bufptr + SIZEOF(x/**/name/**/Req)) > dpy->bufmax)\ - _XFlush(dpy);\ - req = (x/**/name/**/Req *)(dpy->last_req = dpy->bufptr);\ - req->reqType = X_/**/name;\ - req->length = (SIZEOF(x/**/name/**/Req))>>2;\ - dpy->bufptr += SIZEOF(x/**/name/**/Req);\ - dpy->request++ + req = (x/**/name/**/Req *) _XGetRequest(dpy, X_/**/name, SIZEOF(x/**/name/**/Req)) #endif /* GetReqExtra is the same as GetReq, but allocates "n" additional @@ -458,24 +455,10 @@ extern LockInfoPtr _Xglobal_lock; #if !defined(UNIXCPP) || defined(ANSICPP) #define GetReqExtra(name, n, req) \ - WORD64ALIGN\ - if ((dpy->bufptr + SIZEOF(x##name##Req) + n) > dpy->bufmax)\ - _XFlush(dpy);\ - req = (x##name##Req *)(dpy->last_req = dpy->bufptr);\ - req->reqType = X_##name;\ - req->length = (SIZEOF(x##name##Req) + n)>>2;\ - dpy->bufptr += SIZEOF(x##name##Req) + n;\ - dpy->request++ + req = (x##name##Req *) _XGetRequest(dpy, X_##name, SIZEOF(x##name##Req) + n) #else #define GetReqExtra(name, n, req) \ - WORD64ALIGN\ - if ((dpy->bufptr + SIZEOF(x/**/name/**/Req) + n) > dpy->bufmax)\ - _XFlush(dpy);\ - req = (x/**/name/**/Req *)(dpy->last_req = dpy->bufptr);\ - req->reqType = X_/**/name;\ - req->length = (SIZEOF(x/**/name/**/Req) + n)>>2;\ - dpy->bufptr += SIZEOF(x/**/name/**/Req) + n;\ - dpy->request++ + req = (x/**/name/**/Req *) _XGetRequest(dpy, X_/**/name, SIZEOF(x/**/name/**/Req) + n) #endif diff --git a/src/XlibInt.c b/src/XlibInt.c index 3db151e..a8f5d08 100644 --- a/src/XlibInt.c +++ b/src/XlibInt.c @@ -1956,6 +1956,37 @@ Screen *_XScreenOfWindow(Display *dpy, Window w) } +/* + * WARNING: This implementation's pre-conditions and post-conditions + * must remain compatible with the old macro-based implementations of + * GetReq, GetReqExtra, GetResReq, and GetEmptyReq. The portions of the + * Display structure affected by those macros are part of libX11's + * ABI. + */ +void *_XGetRequest(Display *dpy, CARD8 type, size_t len) +{ + xReq *req; + + WORD64ALIGN + + if (dpy->bufptr + len > dpy->bufmax) + _XFlush(dpy); + + if (len % 4) + fprintf(stderr, + "Xlib: request %d length %zd not a multiple of 4.\n", + type, len); + + dpy->last_req = dpy->bufptr; + + req = (xReq*)dpy->bufptr; + req->reqType = type; + req->length = len / 4; + dpy->bufptr += len; + dpy->request++; + return req; +} + #if defined(WIN32) /* commit d8956520deb79c1cbb5e974c175bf8493859b22b Author: Alan Coopersmith <alan.coopersm...@oracle.com> Date: Fri Oct 14 17:53:00 2011 -0700 Fix "nomal" -> "normal" typo in several comments Signed-off-by: Alan Coopersmith <alan.coopersm...@oracle.com> diff --git a/modules/lc/gen/lcGenConv.c b/modules/lc/gen/lcGenConv.c index 4a3a6fc..42d63c5 100644 --- a/modules/lc/gen/lcGenConv.c +++ b/modules/lc/gen/lcGenConv.c @@ -1869,7 +1869,7 @@ output: return -1; } - /* nomal end */ + /* normal end */ *from = (XPointer) inbufptr; *to = (XPointer) outbufptr; @@ -2168,7 +2168,7 @@ end: return -1; } - /* nomal end */ + /* normal end */ *from = (XPointer) inbufptr; *to = (XPointer) outbufptr; @@ -2222,7 +2222,7 @@ end: return -1; } - /* nomal end */ + /* normal end */ *from = (XPointer) src; *from_left = src_left; commit 002b36e308a26a152504f9b40aa08a0dce9a7991 Author: Xue Wei <wei....@sun.com> Date: Fri Oct 14 17:39:21 2011 -0700 mbtocs should not truncate input Fixes pasting more than 1024 bytes into xterm, as described in https://bugs.freedesktop.org/show_bug.cgi?id=25209 Signed-off-by: Alan Coopersmith <alan.coopersm...@oracle.com> diff --git a/modules/lc/gen/lcGenConv.c b/modules/lc/gen/lcGenConv.c index 7a113a7..4a3a6fc 100644 --- a/modules/lc/gen/lcGenConv.c +++ b/modules/lc/gen/lcGenConv.c @@ -1784,9 +1784,6 @@ mbtocs( return( 0 ); } - if (*from_left > *to_left) - *from_left = *to_left; - while (*from_left && *to_left) { ch = *inbufptr++; commit 9b8d8c9e5b27273e8856a3851ba9b68022bed3cd Author: Marko Myllynen <mylly...@redhat.com> Date: Mon Oct 10 09:41:13 2011 +0300 Add new compose sequences This patch adds few new compose sequences to the en_US map, ligatures common in typesetting and sequences already in use in the fi_FI map. https://bugs.freedesktop.org/show_bug.cgi?id=30621 https://bugs.freedesktop.org/show_bug.cgi?id=34523 Reviewed-by: Jeremy Huddleston <jerem...@apple.com> diff --git a/nls/en_US.UTF-8/Compose.pre b/nls/en_US.UTF-8/Compose.pre index 907720e..d5b01b1 100644 --- a/nls/en_US.UTF-8/Compose.pre +++ b/nls/en_US.UTF-8/Compose.pre @@ -110,6 +110,14 @@ XCOMM Spaces <Multi_key> <O> <E> : "Œ" OE # LATIN CAPITAL LIGATURE OE <Multi_key> <a> <e> : "æ" ae # LATIN SMALL LETTER AE <Multi_key> <A> <E> : "Æ" AE # LATIN CAPITAL LETTER AE +<Multi_key> <f> <f> : "ff" Ufb00 # LATIN SMALL LIGATURE FF +<Multi_key> <f> <i> : "fi" Ufb01 # LATIN SMALL LIGATURE FI +<Multi_key> <f> <l> : "fl" Ufb02 # LATIN SMALL LIGATURE FL +<Multi_key> <F> <i> : "ffi" Ufb03 # LATIN SMALL LIGATURE FFI +<Multi_key> <F> <l> : "ffl" Ufb04 # LATIN SMALL LIGATURE FFL +<Multi_key> <I> <J> : "IJ" U0132 # LATIN CAPITAL LIGATURE IJ +<Multi_key> <I> <j> : "IJ" U0132 # LATIN CAPITAL LIGATURE IJ +<Multi_key> <i> <j> : "ij" U0133 # LATIN SMALL LIGATURE IJ <Multi_key> <o> <o> : "°" degree # DEGREE SIGN @@ -193,6 +201,8 @@ XCOMM "₵" U20b5 CEDI SIGN XCOMM Long S <Multi_key> <f> <s> : "ſ" U017f # LATIN SMALL LETTER LONG S <Multi_key> <f> <S> : "ſ" U017f # LATIN SMALL LETTER LONG S +<dead_abovedot> <Multi_key> <f> <s> : "ẛ" U1e9b # LATIN SMALL LETTER LONG S WITH DOT ABOVE +<Multi_key> <dead_abovedot> <f> <s> : "ẛ" U1e9b # LATIN SMALL LETTER LONG S WITH DOT ABOVE XCOMM Dashes <Multi_key> <minus> <minus> <period> : "–" U2013 # EN DASH @@ -4173,6 +4183,7 @@ XCOMM Part 3 <Multi_key> <less> <minus> : "←" U2190 # LEFTWARDS ARROW <Multi_key> <minus> <greater> : "→" U2192 # RIGHTWARDS ARROW <Multi_key> <U2203> <U0338> : "∄" U2204 # THERE DOES NOT EXIST +<Multi_key> <braceleft> <braceright> : "∅" U2205 # EMPTY SET <Multi_key> <U2208> <U0338> : "∉" U2209 # NOT AN ELEMENT OF <Multi_key> <U220B> <U0338> : "∌" U220C # DOES NOT CONTAIN AS MEMBER <Multi_key> <U2223> <U0338> : "∤" U2224 # DOES NOT DIVIDE @@ -4219,6 +4230,7 @@ XCOMM Part 3 <Multi_key> <U22B3> <U0338> : "⋫" U22EB # DOES NOT CONTAIN AS NORMAL SUBGROUP <Multi_key> <U22B4> <U0338> : "⋬" U22EC # NOT NORMAL SUBGROUP OF OR EQUAL TO <Multi_key> <U22B5> <U0338> : "⋭" U22ED # DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL +<Multi_key> <d> <i> : "⌀" U2300 # DIAMETER SIGN <Multi_key> <parenleft> <1> <parenright> : "①" U2460 # CIRCLED DIGIT ONE <Multi_key> <parenleft> <KP_1> <parenright> : "①" U2460 # CIRCLED DIGIT ONE <Multi_key> <parenleft> <2> <parenright> : "②" U2461 # CIRCLED DIGIT TWO @@ -4972,6 +4984,7 @@ XCOMM <dead_hook> <p> : "ƥ" U01A5 # LATIN SMALL LETTER P WITH HOOK <dead_hook> <q> : "ʠ" U02A0 # LATIN SMALL LETTER Q WITH HOOK <dead_hook> <U025C> : "ɝ" U025D # LATIN SMALL LETTER REVERSED OPEN E WITH HOOK +<dead_hook> <r> : "ɼ" U027C # LATIN SMALL LETTER R WITH LONG LEG <dead_hook> <s> : "ʂ" U0282 # LATIN SMALL LETTER S WITH HOOK <dead_hook> <schwa> : "ɚ" U025A # LATIN SMALL LETTER SCHWA WITH HOOK <dead_hook> <T> : "Ƭ" U01AC # LATIN CAPITAL LETTER T WITH HOOK commit 738f7b867341c1da87ee667d48815822715c3e75 Author: Choe Hwanjin <choe.hwan...@gmail.com> Date: Thu Oct 13 07:58:02 2011 +0900 XIM: Make Xim handle NEED_SYNC_REPLY flag NEED_SYNC_REPLY flag should be in Xim not in Xic. Because the focused Xic can be changed before sending sync reply. After focused Xic changed, the new Xic doesn't have NEED_SYNC_REPLY flag enabled, so libX11 doesn't send XIM_SYNC_REPLY packet. This patch adds sync reply flag to Xim and removes sync reply from Xic. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=7869 Signed-off-by: Choe Hwanjin <choe.hwan...@gmail.com> Reviewed-by: Jeremy Huddleston <jerem...@apple.com> diff --git a/modules/im/ximcp/imDefFlt.c b/modules/im/ximcp/imDefFlt.c index ee304c8..1e4f389 100644 --- a/modules/im/ximcp/imDefFlt.c +++ b/modules/im/ximcp/imDefFlt.c @@ -128,9 +128,9 @@ _XimPendingFilter( { Xim im = (Xim)ic->core.im; - if (IS_NEED_SYNC_REPLY(ic)) { + if (IS_NEED_SYNC_REPLY(im)) { (void)_XimProcSyncReply(im, ic); - UNMARK_NEED_SYNC_REPLY(ic); + UNMARK_NEED_SYNC_REPLY(im); } return; } @@ -140,13 +140,11 @@ _XimProtoKeypressFilter( Xic ic, XKeyEvent *ev) { -#ifdef XIM_CONNECTABLE Xim im = (Xim)ic->core.im; -#endif - if (IS_FABLICATED(ic)) { + if (IS_FABRICATED(im)) { _XimPendingFilter(ic); - UNMARK_FABLICATED(ic); + UNMARK_FABRICATED(im); return NOTFILTERD; } @@ -203,13 +201,11 @@ _XimProtoKeyreleaseFilter( Xic ic, XKeyEvent *ev) { -#ifdef XIM_CONNECTABLE Xim im = (Xim)ic->core.im; -#endif - if (IS_FABLICATED(ic)) { + if (IS_FABRICATED(im)) { _XimPendingFilter(ic); - UNMARK_FABLICATED(ic); + UNMARK_FABRICATED(im); return NOTFILTERD; } diff --git a/modules/im/ximcp/imDefIc.c b/modules/im/ximcp/imDefIc.c index a962c1b..a06f6a7 100644 --- a/modules/im/ximcp/imDefIc.c +++ b/modules/im/ximcp/imDefIc.c @@ -968,8 +968,6 @@ _XimProtoSetFocus( (void)_XimWrite(im, len, (XPointer)buf); _XimFlush(im); - MARK_FOCUSED(ic); - _XimRegisterFilter(ic); return; } @@ -1015,8 +1013,6 @@ _XimProtoUnsetFocus( (void)_XimWrite(im, len, (XPointer)buf); _XimFlush(im); - UNMARK_FOCUSED(ic); - _XimUnregisterFilter(ic); return; } diff --git a/modules/im/ximcp/imDefLkup.c b/modules/im/ximcp/imDefLkup.c index 996d36a..cf75919 100644 --- a/modules/im/ximcp/imDefLkup.c +++ b/modules/im/ximcp/imDefLkup.c @@ -213,12 +213,8 @@ _XimRespSyncReply( Xic ic, BITMASK16 mode) { - if (mode & XimSYNCHRONUS) /* SYNC Request */ { - if (IS_FOCUSED(ic)) - MARK_NEED_SYNC_REPLY(ic); - else - _XimProcSyncReply((Xim)ic->core.im, ic); - } + if (mode & XimSYNCHRONUS) /* SYNC Request */ + MARK_NEED_SYNC_REPLY(ic->core.im); return True; } @@ -356,7 +352,7 @@ _XimProcEvent( ev->xany.serial |= serial << 16; ev->xany.send_event = False; ev->xany.display = d; - MARK_FABLICATED(ic); + MARK_FABRICATED(ic->core.im); return; } @@ -708,7 +704,7 @@ _XimCommitRecv( (void)_XimRespSyncReply(ic, flag); - MARK_FABLICATED(ic); + MARK_FABRICATED(im); ev.type = KeyPress; ev.send_event = False; diff --git a/modules/im/ximcp/imExten.c b/modules/im/ximcp/imExten.c index 946d780..65e59bc 100644 --- a/modules/im/ximcp/imExten.c +++ b/modules/im/ximcp/imExten.c @@ -159,7 +159,7 @@ _XimProcExtForwardKeyEvent( XPutBackEvent(im->core.display, &ev); _XimRespSyncReply(ic, buf_s[0]); - MARK_FABLICATED(ic); + MARK_FABRICATED(im); return True; } diff --git a/src/xlibi18n/XimintP.h b/src/xlibi18n/XimintP.h index 0e384ab..14a7e6d 100644 --- a/src/xlibi18n/XimintP.h +++ b/src/xlibi18n/XimintP.h @@ -161,6 +161,8 @@ typedef struct _XimProtoPrivateRec { #define DELAYBINDABLE (1L << 3) #define RECONNECTABLE (1L << 4) #endif /* XIM_CONNECTABLE */ +#define FABRICATED (1L << 5) +#define NEED_SYNC_REPLY (1L << 6) /* * macro for the flag of XIMPrivateRec @@ -199,6 +201,20 @@ typedef struct _XimProtoPrivateRec { (((Xim)im)->private.proto.flag &= ~(DELAYBINDABLE|RECONNECTABLE)) #endif /* XIM_CONNECTABLE */ +#define IS_FABRICATED(im) \ + (((Xim)im)->private.proto.flag & FABRICATED) +#define MARK_FABRICATED(im) \ + (((Xim)im)->private.proto.flag |= FABRICATED) +#define UNMARK_FABRICATED(im) \ + (((Xim)im)->private.proto.flag &= ~FABRICATED) + +#define IS_NEED_SYNC_REPLY(im) \ + (((Xim)im)->private.proto.flag & NEED_SYNC_REPLY) +#define MARK_NEED_SYNC_REPLY(im) \ + (((Xim)im)->private.proto.flag |= NEED_SYNC_REPLY) +#define UNMARK_NEED_SYNC_REPLY(im) \ + (((Xim)im)->private.proto.flag &= ~NEED_SYNC_REPLY) + /* * bit mask for the register_filter_event of XIMPrivateRec/XICPrivateRec */ @@ -259,9 +275,6 @@ typedef struct _XicProtoPrivateRec { * bit mask for the flag of XICPrivateRec */ #define IC_CONNECTED (1L) -#define FABLICATED (1L << 1) -#define NEED_SYNC_REPLY (1L << 2) -#define FOCUSED (1L << 3) /* * macro for the flag of XICPrivateRec @@ -273,27 +286,6 @@ typedef struct _XicProtoPrivateRec { #define UNMARK_IC_CONNECTED(ic) \ (((Xic)ic)->private.proto.flag &= ~IC_CONNECTED) -#define IS_FABLICATED(ic) \ - (((Xic)ic)->private.proto.flag & FABLICATED) -#define MARK_FABLICATED(ic) \ - (((Xic)ic)->private.proto.flag |= FABLICATED) -#define UNMARK_FABLICATED(ic) \ - (((Xic)ic)->private.proto.flag &= ~FABLICATED) - -#define IS_NEED_SYNC_REPLY(ic) \ - (((Xic)ic)->private.proto.flag & NEED_SYNC_REPLY) -#define MARK_NEED_SYNC_REPLY(ic) \ - (((Xic)ic)->private.proto.flag |= NEED_SYNC_REPLY) -#define UNMARK_NEED_SYNC_REPLY(ic) \ - (((Xic)ic)->private.proto.flag &= ~NEED_SYNC_REPLY) - -#define IS_FOCUSED(ic) \ - (((Xic)ic)->private.proto.flag & FOCUSED) -#define MARK_FOCUSED(ic) \ - (((Xic)ic)->private.proto.flag |= FOCUSED) -#define UNMARK_FOCUSED(ic) \ - (((Xic)ic)->private.proto.flag &= ~FOCUSED) - /* * macro for the filter_event_mask of XICPrivateRec */ commit 50e15379331c436851abb194251cde96999e67b3 Author: Bodo Graumann <m...@bodograumann.de> Date: Mon Oct 10 16:40:52 2011 +0200 libX11: Fixing modifier key range in Xutil.h (Bug #21910) IsModifierKey, defined in include/X11/Xutil.h, is a macro determining, which keys are regarded as modifiers. The constants ISO_Level5_Shift, ISO_Level5_Latch and ISO_Level5_Lock where excluded previously, leaving some Neo2 modifiers functionless in combination with compose. This patch adjusts the range to include the correct, full range of modifier constants. Neo2 Bug 277 <http://wiki.neo-layout.org/ticket/277> X.Org Bug 21910 <http://bugs.freedesktop.org/show_bug.cgi?id=21910> Signed-off-by: Bodo Graumann <m...@bodograumann.de> Reviewed-by: Daniel Stone <dan...@fooishbar.org> diff --git a/include/X11/Xutil.h b/include/X11/Xutil.h index 702823f..8cab50e 100644 --- a/include/X11/Xutil.h +++ b/include/X11/Xutil.h @@ -250,7 +250,7 @@ typedef struct _XComposeStatus { #define IsModifierKey(keysym) \ ((((KeySym)(keysym) >= XK_Shift_L) && ((KeySym)(keysym) <= XK_Hyper_R)) \ || (((KeySym)(keysym) >= XK_ISO_Lock) && \ - ((KeySym)(keysym) <= XK_ISO_Last_Group_Lock)) \ + ((KeySym)(keysym) <= XK_ISO_Level5_Lock)) \ || ((KeySym)(keysym) == XK_Mode_switch) \ || ((KeySym)(keysym) == XK_Num_Lock)) #else commit b5a108624331fabf393223c0891914cc54d4caf4 Author: Yann Droneaud <y...@droneaud.fr> Date: Tue Oct 11 17:27:59 2011 +0200 Return name instead of False in XSetICValues() In case of error, XSetICValues() must return the first argument that failed to be set. But in some error paths, it returns False, which is converted to NULL, so the function returns OK in case of error. Signed-off-by: Yann Droneaud <y...@droneaud.fr> Reviewed-by: Jeremy Huddleston <jerem...@apple.com> diff --git a/modules/im/ximcp/imRm.c b/modules/im/ximcp/imRm.c index 53b2458..01e74c2 100644 --- a/modules/im/ximcp/imRm.c +++ b/modules/im/ximcp/imRm.c @@ -2885,13 +2885,13 @@ _XimSetICValueData( if(mode & XIM_PREEDIT_ATTR) { if (!_XimEncodeLocalPreeditValue(ic, res, (XPointer)p)) - return False; + return p->name; } else if(mode & XIM_STATUS_ATTR) { if (!_XimEncodeLocalStatusValue(ic, res, (XPointer)p)) - return False; + return p->name; } else { if (!_XimEncodeLocalTopValue(ic, res, (XPointer)p, flag)) - return False; + return p->name; } if(_XimEncodeLocalICAttr(ic, res, top, p, mode) == False) { return p->name; commit 10992cb8dc5e4d938e7e5a633b68a81b5875f3ba Author: Yann Droneaud <y...@droneaud.fr> Date: Sun Oct 9 17:56:45 2011 +0200 -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1re1tg-0003yy...@vasks.debian.org