libx11: Changes to 'upstream-experimental'
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.hutterer@who-t.net>
Date: Fri Nov 11 14:56:36 2011 +1000
libX11 1.4.99.1
Signed-off-by: Peter Hutterer <peter.hutterer@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.buitenhuis@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.buitenhuis@gmail.com>
Reviewed-by: Daniel Stone <daniel@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.coopersmith@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.coopersmith@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.hutterer@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.hutterer@who-t.net>
Reviewed-by: Jamey Sharp <jamey@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.hutterer@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.hutterer@who-t.net>
Reviewed-by: Jamey Sharp <jamey@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.hutterer@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.hutterer@who-t.net>
Reviewed-by: Jamey Sharp <jamey@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.hutterer@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.hutterer@who-t.net>
Reviewed-by: Jamey Sharp <jamey@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.coopersmith@oracle.com>
Date: Fri Oct 14 17:53:00 2011 -0700
Fix "nomal" -> "normal" typo in several comments
Signed-off-by: Alan Coopersmith <alan.coopersmith@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.Xue@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.coopersmith@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 <myllynen@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 <jeremyhu@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.hwanjin@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.hwanjin@gmail.com>
Reviewed-by: Jeremy Huddleston <jeremyhu@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 <mail@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 <mail@bodograumann.de>
Reviewed-by: Daniel Stone <daniel@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 <yann@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 <yann@droneaud.fr>
Reviewed-by: Jeremy Huddleston <jeremyhu@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 <yann@droneaud.fr>
Date: Sun Oct 9 17:56:45 2011 +0200
Reply to: