7012962 Update libX11 to 1.4.1 nv_158
authorAlan Coopersmith <Alan.Coopersmith@Oracle.COM>
Tue, 18 Jan 2011 11:32:17 -0800
changeset 1064 3395ca7a91bf
parent 1063 a566150e3ab2
child 1065 f7584a58acfd
7012962 Update libX11 to 1.4.1
open-src/lib/libX11/1234757.patch
open-src/lib/libX11/1261271.patch
open-src/lib/libX11/4010755.patch
open-src/lib/libX11/4076297.patch
open-src/lib/libX11/4614834.patch
open-src/lib/libX11/5039226.patch
open-src/lib/libX11/6667057.patch
open-src/lib/libX11/6714036.patch
open-src/lib/libX11/Makefile
open-src/lib/libX11/SolarisIA.patch
open-src/lib/libX11/compose-en_US.UTF-8.patch
open-src/lib/libX11/compose-iso8859-1.patch
open-src/lib/libX11/compose-iso8859-15.patch
open-src/lib/libX11/compose-iso8859-9.patch
open-src/lib/libX11/im-suneu-greek.patch
open-src/lib/libX11/im-ximcp.patch
open-src/lib/libX11/lc-gb18030.patch
open-src/lib/libX11/lc-jisx0212.patch
open-src/lib/libX11/lc-ksc5601.1992-3.patch
open-src/lib/libX11/locale-iso8859-6.patch
open-src/lib/libX11/locale-ja.SJIS.patch
open-src/lib/libX11/locale-ja.patch
open-src/lib/libX11/locale-ko.patch
open-src/lib/libX11/locale-zh_TW.UTF-8.patch
open-src/lib/libX11/locale-zh_TW.patch
open-src/lib/libX11/locale.aliases.patch
open-src/lib/libX11/locale.paths.patch
open-src/lib/libX11/om-generic.patch
open-src/lib/libX11/sme.patch
open-src/lib/libX11/solaris-abi.patch
open-src/lib/libX11/solaris-kbd.patch
open-src/util/util-macros/Makefile
pkg/manifests/x11-library-libx11.mf
--- a/open-src/lib/libX11/1234757.patch	Fri Jan 14 16:51:51 2011 -0800
+++ b/open-src/lib/libX11/1234757.patch	Tue Jan 18 11:32:17 2011 -0800
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2008, 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the "Software"),
@@ -35,68 +35,59 @@
 other Xlib calls.
 
 diff -urp -x '*~' -x '*.orig' include/X11/Xlibint.h include/X11/Xlibint.h
---- include/X11/Xlibint.h	2010-04-26 22:00:12.000000000 -0700
-+++ include/X11/Xlibint.h	2010-06-07 15:49:10.764640595 -0700
-@@ -199,6 +199,29 @@ struct _XDisplay
+--- include/X11/Xlibint.h	2010-10-04 18:02:06.000000000 -0700
++++ include/X11/Xlibint.h	2010-11-21 18:47:51.771637018 -0800
+@@ -199,6 +199,10 @@ struct _XDisplay
  	void *cookiejar;  /* cookie events returned but not claimed */
  };
  
 +#if defined(XTHREADS) && defined(SUNSOFT)
++int  InitDisplayArrayLock(void);
++#endif /* XTHREADS && SUNSOFT */
++
+ #define XAllocIDs(dpy,ids,n) (*(dpy)->idlist_alloc)(dpy,ids,n)
+ 
+ /*
+diff -urp -x '*~' -x '*.orig' src/OpenDis.c src/OpenDis.c
+--- src/OpenDis.c	2010-09-21 18:25:24.000000000 -0700
++++ src/OpenDis.c	2010-11-21 18:47:51.772360199 -0800
+@@ -38,6 +38,21 @@ in this Software without prior written a
+ #include "XKBlib.h"
+ #endif /* XKB */
+ 
++#if defined(XTHREADS) && defined(SUNSOFT)
 +struct _DisplayPtrLink {
 +    Display *dpy;
 +    struct _DisplayPtrLink *next;
 +};
 +
 +typedef struct _DisplayPtrLink DisplayPtrLink;
-+
-+int InitDisplayArrayLock();
-+
-+void RemoveFromDisplayLink(
-+#if NeedFunctionPrototypes
-+    Display *   /*dpy */
-+#endif /* NeedFunctionPrototypes */
-+);
-+
-+int AddToDisplayLink(
-+#if NeedFunctionPrototypes
-+    Display *   /*dpy */
-+#endif /* NeedFunctionPrototypes */
-+);
-+#endif /* XTHREADS && SUNSOFT */
-+
- #define XAllocIDs(dpy,ids,n) (*(dpy)->idlist_alloc)(dpy,ids,n)
- 
- /*
-diff -urp -x '*~' -x '*.orig' src/OpenDis.c src/OpenDis.c
---- src/OpenDis.c	2010-05-14 20:33:41.000000000 -0700
-+++ src/OpenDis.c	2010-06-07 15:49:10.765824756 -0700
-@@ -60,6 +60,11 @@ typedef struct {
- } _XBigReqState;
- #endif /* !USE_XCB */
- 
-+#if defined(XTHREADS) && defined(SUNSOFT)
 +DisplayPtrLink *HeadDisplay=NULL;
 +DisplayPtrLink *LastDisplay=NULL;
++
++static int  AddToDisplayLink(Display *dpy);
++static void RemoveFromDisplayLink(Display *dpy);
++
 +#endif /* XTHREADS && SUNSOFT */
 +
  #ifdef XTHREADS
  #include "locking.h"
  int  (*_XInitDisplayLock_fn)(Display *dpy) = NULL;
-@@ -278,6 +283,13 @@ fallback_success:
+@@ -227,6 +232,13 @@ fallback_success:
  		return(NULL);
  	}
  
 +#ifdef XTHREADS
 +        if (AddToDisplayLink(dpy) == 0) {
-+                OutOfMemory (dpy, setup);
++                OutOfMemory (dpy);
 +                return(NULL);
 +        }
 +#endif XTHREADS
 +
  	if (!_XPollfdCacheInit(dpy)) {
- 	        OutOfMemory (dpy, setup);
+ 	        OutOfMemory (dpy);
  		return(NULL);
-@@ -814,6 +826,10 @@ _XBigReqHandler(
+@@ -600,6 +612,10 @@ fallback_success:
  
  void _XFreeDisplayStructure(Display *dpy)
  {
@@ -107,14 +98,13 @@
  	/* move all cookies in the EQ to the jar, then free them. */
  	if (dpy->qfree) {
  	    _XQEvent *qelt = dpy->qfree;
-@@ -945,6 +961,107 @@ void _XFreeDisplayStructure(Display *dpy
+@@ -728,6 +744,105 @@ void _XFreeDisplayStructure(Display *dpy
  	Xfree ((char *)dpy);
  }
  
 +#if defined(XTHREADS) && defined(SUNSOFT)
-+int
-+AddToDisplayLink(dpy)
-+Display *dpy;
++static int
++AddToDisplayLink(Display *dpy)
 +{
 +    if ( dpy->lock )
 +        return 1;
@@ -145,9 +135,8 @@
 +    return 1;
 +}
 +
-+void
-+RemoveFromDisplayLink(dpy)
-+Display *dpy;
++static void
++RemoveFromDisplayLink(Display *dpy)
 +{
 +    DisplayPtrLink *tmp_display  = HeadDisplay;
 +    DisplayPtrLink *prev_display = HeadDisplay;
@@ -191,7 +180,7 @@
 +}
 +
 +int
-+InitDisplayArrayLock()
++InitDisplayArrayLock(void)
 +{
 +    DisplayPtrLink *tmp_display  = HeadDisplay;
 +    DisplayPtrLink *prev_display = HeadDisplay;
@@ -200,7 +189,7 @@
 +        if ((tmp_display->dpy) && (!tmp_display->dpy->lock)) {
 +            /* Initialize the display lock */
 +            if (_XInitDisplayLock_fn(tmp_display->dpy) != 0) {
-+                OutOfMemory (tmp_display->dpy, NULL);
++                OutOfMemory (tmp_display->dpy);
 +                return 0;
 +            }
 +        }
@@ -216,8 +205,8 @@
     after this returns. */
  
 diff -urp -x '*~' -x '*.orig' src/locking.c src/locking.c
---- src/locking.c	2010-04-16 08:40:29.000000000 -0700
-+++ src/locking.c	2010-06-07 15:49:10.766507253 -0700
+--- src/locking.c	2010-09-03 22:52:39.000000000 -0700
++++ src/locking.c	2010-11-21 18:47:51.772597162 -0800
 @@ -612,6 +612,11 @@ Status XInitThreads(void)
  #endif
  #endif
--- a/open-src/lib/libX11/1261271.patch	Fri Jan 14 16:51:51 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-###############################################################################
-# Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved.
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the "Software"),
-# to deal in the Software without restriction, including without limitation
-# the rights to use, copy, modify, merge, publish, distribute, sublicense,
-# and/or sell copies of the Software, and to permit persons to whom the
-# Software is furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice (including the next
-# paragraph) shall be included in all copies or substantial portions of the
-# Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-# DEALINGS IN THE SOFTWARE.
-#
-
-1261271 /usr/dist/exe/gnuemacs doesn't work on s297.
-
-diff -urp -x '*~' -x '*.orig' src/XlibInt.c src/XlibInt.c
---- src/XlibInt.c	2010-06-07 15:49:17.815076479 -0700
-+++ src/XlibInt.c	2010-06-07 15:49:18.612816160 -0700
-@@ -52,6 +52,12 @@ from The Open Group.
- #include <direct.h>
- #endif
- 
-+/* Xtransint.h is needed for access to an xtrans internal structure.
-+ * See the comments in _XFlush for information. This is required for
-+ * compatibility between X11R6-xtrans and gnuemacs v18.58.
-+ */
-+#include <X11/Xtrans/Xtransint.h>
-+
- #ifdef XTHREADS
- #include "locking.h"
- 
-@@ -661,6 +667,18 @@ static void _XFlushInt(
- 	register char *bufindex;
- 	_XExtension *ext;
- 
-+	/* Begin gnuemacs v18.58 compatability fix.
-+	 * In x11trans.c, line 2207, in gnuemacs source, the dpy->fd is
-+	 * modified.  This was of no consequence in X11R5, but in X11R6,
-+	 * the xtrans layer has a copy which must be updated here.
-+	 * The reason to perform the update here is because this code
-+	 * is executed right after gnuemacs changes the fd variable.
-+	 */
-+	if (dpy->fd != dpy->trans_conn->fd) {
-+		dpy->trans_conn->fd = dpy->fd;
-+	}
-+	/* End gnuemacs v18.58 compatability fix. */
-+
- 	/* This fix resets the bufptr to the front of the buffer so
- 	 * additional appends to the bufptr will not corrupt memory. Since
- 	 * the server is down, these appends are no-op's anyway but
--- a/open-src/lib/libX11/4010755.patch	Fri Jan 14 16:51:51 2011 -0800
+++ b/open-src/lib/libX11/4010755.patch	Tue Jan 18 11:32:17 2011 -0800
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2008, 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the "Software"),
@@ -43,9 +43,9 @@
 
 
 diff -urp -x '*~' -x '*.orig' src/Context.c src/Context.c
---- src/Context.c	2009-01-28 21:09:42.000000000 -0800
-+++ src/Context.c	2009-04-08 00:17:42.988516000 -0700
-@@ -192,6 +192,9 @@ int XSaveContext(
+--- src/Context.c	2010-09-03 22:52:39.000000000 -0700
++++ src/Context.c	2010-11-21 18:47:52.531197588 -0800
+@@ -190,6 +190,9 @@ int XSaveContext(
  	    return XCNOMEM;
  	}
  	db->numentries = 0;
@@ -56,9 +56,9 @@
  #ifdef MOTIFBC
  	if (!display) *pdb = db; else
 diff -urp -x '*~' -x '*.orig' src/Xrm.c src/Xrm.c
---- src/Xrm.c	2009-03-25 17:52:09.000000000 -0700
-+++ src/Xrm.c	2009-04-08 00:17:43.008271000 -0700
-@@ -498,6 +498,9 @@ static XrmDatabase NewDatabase(void)
+--- src/Xrm.c	2010-09-03 22:52:39.000000000 -0700
++++ src/Xrm.c	2010-11-21 18:47:52.531960970 -0800
+@@ -496,6 +496,9 @@ static XrmDatabase NewDatabase(void)
  
      db = (XrmDatabase) Xmalloc(sizeof(XrmHashBucketRec));
      if (db) {
@@ -69,9 +69,9 @@
  	db->table = (NTable)NULL;
  	db->mbstate = (XPointer)NULL;
 diff -urp -x '*~' -x '*.orig' src/locking.c src/locking.c
---- src/locking.c	2009-04-08 00:17:31.819992000 -0700
-+++ src/locking.c	2009-04-08 00:17:43.009128000 -0700
-@@ -105,6 +105,16 @@ static void _XLockMutex(
+--- src/locking.c	2010-11-21 18:47:51.772597162 -0800
++++ src/locking.c	2010-11-21 18:47:52.532327934 -0800
+@@ -104,6 +104,16 @@ static void _XLockMutex(
      XTHREADS_FILE_LINE_ARGS
      )
  {
--- a/open-src/lib/libX11/4076297.patch	Fri Jan 14 16:51:51 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-###############################################################################
-# Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved.
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the "Software"),
-# to deal in the Software without restriction, including without limitation
-# the rights to use, copy, modify, merge, publish, distribute, sublicense,
-# and/or sell copies of the Software, and to permit persons to whom the
-# Software is furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice (including the next
-# paragraph) shall be included in all copies or substantial portions of the
-# Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-# DEALINGS IN THE SOFTWARE.
-#
-
-4076297 glXChooseVisual hangs if XInitThreads is called
-
-diff -urp -x '*~' -x '*.orig' src/XlibInt.c src/XlibInt.c
---- src/XlibInt.c	2009-04-08 00:18:46.532476000 -0700
-+++ src/XlibInt.c	2009-04-08 00:18:57.973714000 -0700
-@@ -1149,7 +1149,8 @@ int _XRead(
-        if (dpy->lock && dpy->lock->reply_bytes_left > 0)
-        {
-            dpy->lock->reply_bytes_left -= original_size;
--           if (dpy->lock->reply_bytes_left == 0) {
-+           if (dpy->lock->reply_bytes_left <= 0) {
-+	       dpy->lock->reply_bytes_left = 0;
- 	       dpy->flags &= ~XlibDisplayReply;
-                UnlockNextReplyReader(dpy);
- 	   }
-@@ -1374,7 +1375,8 @@ void _XReadPad(
-        if (dpy->lock && dpy->lock->reply_bytes_left > 0)
-        {
-            dpy->lock->reply_bytes_left -= original_size;
--           if (dpy->lock->reply_bytes_left == 0) {
-+           if (dpy->lock->reply_bytes_left <= 0) {
-+	       dpy->lock->reply_bytes_left = 0;
- 	       dpy->flags &= ~XlibDisplayReply;
-                UnlockNextReplyReader(dpy);
- 	   }
--- a/open-src/lib/libX11/4614834.patch	Fri Jan 14 16:51:51 2011 -0800
+++ b/open-src/lib/libX11/4614834.patch	Tue Jan 18 11:32:17 2011 -0800
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the "Software"),
@@ -35,9 +35,9 @@
 problem.
 
 diff -urp -x '*~' -x '*.orig' src/GetColor.c src/GetColor.c
---- src/GetColor.c	2008-10-07 10:18:18.000000000 -0700
-+++ src/GetColor.c	2009-04-08 00:17:54.349336000 -0700
-@@ -58,12 +58,14 @@ XColor *exact_def) /* RETURN */
+--- src/GetColor.c	2010-09-21 18:25:24.000000000 -0700
++++ src/GetColor.c	2010-11-21 18:47:53.290042212 -0800
+@@ -55,12 +55,14 @@ XColor *exact_def) /* RETURN */
      if ((ccc = XcmsCCCOfColormap(dpy, cmap)) != (XcmsCCC)NULL) {
  	const char *tmpName = colorname;
  
@@ -52,7 +52,7 @@
  	    ret = XAllocColor(dpy, cmap, hard_def);
  	    exact_def->pixel = hard_def->pixel;
  	    return(ret);
-@@ -76,6 +78,7 @@ XColor *exact_def) /* RETURN */
+@@ -73,6 +75,7 @@ XColor *exact_def) /* RETURN */
  	     */
  	    break;
  	}
@@ -61,9 +61,9 @@
  #endif
  
 diff -urp -x '*~' -x '*.orig' src/LookupCol.c src/LookupCol.c
---- src/LookupCol.c	2008-10-07 10:18:18.000000000 -0700
-+++ src/LookupCol.c	2009-04-08 00:17:54.349566000 -0700
-@@ -56,6 +56,7 @@ XLookupColor (
+--- src/LookupCol.c	2010-09-21 18:25:24.000000000 -0700
++++ src/LookupCol.c	2010-11-21 18:47:53.290371408 -0800
+@@ -53,6 +53,7 @@ XLookupColor (
  	if ((ccc = XcmsCCCOfColormap(dpy, cmap)) != (XcmsCCC)NULL) {
  	    const char *tmpName = spec;
  
@@ -71,7 +71,7 @@
  	    switch (_XcmsResolveColorString(ccc, &tmpName, &cmsColor_exact,
  					    XcmsRGBFormat)) {
  	    case XcmsSuccess:
-@@ -63,6 +64,7 @@ XLookupColor (
+@@ -60,6 +61,7 @@ XLookupColor (
  		_XcmsRGB_to_XColor(&cmsColor_exact, def, 1);
  		memcpy((char *)scr, (char *)def, sizeof(XColor));
  		_XUnresolveColor(ccc, scr);
@@ -79,7 +79,7 @@
  		return(1);
  	    case XcmsFailure:
  	    case _XCMS_NEWNAME:
-@@ -73,6 +75,7 @@ XLookupColor (
+@@ -70,6 +72,7 @@ XLookupColor (
  		 */
  		break;
  	    }
--- a/open-src/lib/libX11/5039226.patch	Fri Jan 14 16:51:51 2011 -0800
+++ b/open-src/lib/libX11/5039226.patch	Tue Jan 18 11:32:17 2011 -0800
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the "Software"),
@@ -35,9 +35,9 @@
 this case.
 
 diff -urp -x '*~' -x '*.orig' src/UngrabSvr.c src/UngrabSvr.c
---- src/UngrabSvr.c	2008-10-07 10:18:18.000000000 -0700
-+++ src/UngrabSvr.c	2009-04-08 00:18:04.825622000 -0700
-@@ -41,6 +41,9 @@ XUngrabServer (
+--- src/UngrabSvr.c	2010-09-03 22:52:39.000000000 -0700
++++ src/UngrabSvr.c	2010-11-21 18:47:54.042619136 -0800
+@@ -39,6 +39,9 @@ XUngrabServer (
          GetEmptyReq(UngrabServer, req);
          UnlockDisplay(dpy);
  	SyncHandle();
--- a/open-src/lib/libX11/6667057.patch	Fri Jan 14 16:51:51 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
---- src/OpenDis.c	2010-12-01 22:37:45.756982154 -0800
-+++ src/OpenDis.c	2010-12-01 22:37:46.942754311 -0800
-@@ -39,6 +39,13 @@ in this Software without prior written a
- #include <X11/Xatom.h>
- #include <X11/Xresource.h>
- #include <stdio.h>
-+#if defined(sun) || defined(__sun) || defined(__sun__)
-+#include <stdlib.h>
-+#include <unistd.h>
-+#include <sys/types.h>
-+#include <sys/stat.h>
-+#include <fcntl.h>
-+#endif
- #include "Xintconn.h"
- 
- #ifdef XKB
-@@ -841,9 +848,11 @@ fallback_success:
-      */
-         _conn_buf_size = conn_buf_size;
- 
-+#if !USE_XCB
-         if (sme_conn)
-            InitializeSmeConn(dpy, idisplay);
-         else
-+#endif /* USE_XCB */
-            dpy->smeBuffer = NULL ;
- 
- #endif /* SME */
-
---- src/Makefile.am	2010-12-01 22:37:45.741732419 -0800
-+++ src/Makefile.am	2010-12-01 22:37:46.942993564 -0800
-@@ -3,7 +3,7 @@ XKB_SUBDIRS = xkb
- endif
- SUBDIRS = util xcms xlibi18n $(XKB_SUBDIRS)
- 
--lib_LTLIBRARIES=libX11.la
-+lib_LTLIBRARIES=libX11.la libX11-xcb.la
- 
- BUILT_SOURCES=ks_tables.h
- CLEANFILES=ks_tables.h ks_tables_h
-@@ -353,7 +353,6 @@ libX11_la_SOURCES += \
-                   xcb_io.c \
-                   Xxcbint.h
- 
--lib_LTLIBRARIES += libX11-xcb.la
- libX11_xcb_la_SOURCES = x11_xcb.c Xxcbint.h
- libX11_xcb_la_LDFLAGS = -version-info 1:0:0 -no-undefined
- libX11_xcb_la_LIBADD = libX11.la
--- a/open-src/lib/libX11/6714036.patch	Fri Jan 14 16:51:51 2011 -0800
+++ b/open-src/lib/libX11/6714036.patch	Tue Jan 18 11:32:17 2011 -0800
@@ -1,7 +1,7 @@
 diff -urp -x '*~' -x '*.orig' modules/lc/gen/lcGenConv.c modules/lc/gen/lcGenConv.c
---- modules/lc/gen/lcGenConv.c	2009-03-17 14:58:15.000000000 -0700
-+++ modules/lc/gen/lcGenConv.c	2009-04-08 00:19:18.692831000 -0700
-@@ -1786,9 +1786,6 @@ mbtocs(
+--- modules/lc/gen/lcGenConv.c	2010-09-03 22:52:38.000000000 -0700
++++ modules/lc/gen/lcGenConv.c	2010-11-21 18:47:57.083531216 -0800
+@@ -1784,9 +1784,6 @@ mbtocs(
          return( 0 );
      }
  
--- a/open-src/lib/libX11/Makefile	Fri Jan 14 16:51:51 2011 -0800
+++ b/open-src/lib/libX11/Makefile	Tue Jan 18 11:32:17 2011 -0800
@@ -1,8 +1,6 @@
 ###############################################################################
 #
-# X11 1.x Makefile
-#
-# Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the "Software"),
@@ -29,11 +27,11 @@
 MODULE_NAME=libX11
 
 # Version number (used in path names)
-MODULE_VERSION=1.3.5
+MODULE_VERSION = 1.4.1
 
 # Checksums for upstream tarball
-TARBALL_MD5  = a1175b6667fcb249c6f1d725965944e3
-TARBALL_SHA1 = c5dda2b6279f3e3267646576138fcd091a7f3c54
+TARBALL_MD5  = 4603bdbce1bd73cbc140de402fe6ed24
+TARBALL_SHA1 = 83590cdac5071b7154b223d73655edcfc82095c1
 
 # Patches to apply to source after unpacking, in order
 SOURCE_PATCHES = \
@@ -44,11 +42,8 @@
 	solaris-abi.patch \
 	solaris-kbd.patch \
 	SolarisIA.patch \
-	4076297.patch \
-	1261271.patch \
 	6714036.patch \
 	6789219.patch \
-	sme.patch \
 	im-suneu-greek.patch \
 	im-ximcp.patch \
 	lc-jisx0212.patch \
@@ -94,8 +89,7 @@
 	locale-zh_HK.UTF-8.patch \
 	locale-zh_TW.UTF-8.patch \
 	locale-zh_TW.patch \
-	locale-ru-RU.UTF-8.patch \
-	6667057.patch
+	locale-ru-RU.UTF-8.patch
 
 # Library name (used for specfiles/mapfiles)
 LIBNAME=X11
@@ -123,7 +117,7 @@
 
 # Command line options to GNU autoconf configure script
 MODULE_CONFIG_OPTS = --enable-xthreads --enable-loadable-i18n \
-	--disable-specs \
+	--disable-xf86bigfont \
 	--with-xcb=yes --enable-loadable-xcursor --enable-xcms \
 	--enable-xlocaledir --enable-xkb --enable-man-pages=$(LIB_MAN_SUFFIX) \
 	--with-locale-lib-dir='$${exec_prefix}/lib/X11/locale$(LIBSUBDIR)'
@@ -131,7 +125,7 @@
 # -xF is needed for mapfile reordering to work
 MODULE_CFLAGS = -xF
 
-# -DSUNSOFT enables SUN_SME (Shared Memory transport extension)
+# -DSUNSOFT enables Solaris extensions
 # -DMOTIFBC enables compatibility with bugs in Motif & other apps
 # -DSUNSOFT_KBD enables Solaris traditional keyboard handling
 MODULE_CPPFLAGS = -DSUNSOFT -DMOTIFBC -DSUNSOFT_KBD \
--- a/open-src/lib/libX11/SolarisIA.patch	Fri Jan 14 16:51:51 2011 -0800
+++ b/open-src/lib/libX11/SolarisIA.patch	Tue Jan 18 11:32:17 2011 -0800
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the "Software"),
@@ -21,11 +21,11 @@
 # DEALINGS IN THE SOFTWARE.
 #
 diff -urp -x '*~' -x '*.orig' src/Makefile.am src/Makefile.am
---- src/Makefile.am	2009-03-24 23:25:04.606874000 -0700
-+++ src/Makefile.am	2009-03-24 23:25:15.736876000 -0700
-@@ -357,6 +357,9 @@ libX11_la_SOURCES += \
-                   x11_trans.c
- endif
+--- src/Makefile.am	2011-01-11 22:59:47.437339035 -0800
++++ src/Makefile.am	2011-01-11 22:59:48.281136834 -0800
+@@ -353,6 +353,9 @@ libX11_xcb_la_SOURCES = x11_xcb.c Xxcbin
+ libX11_xcb_la_LDFLAGS = -version-number 1:0:0 -no-undefined
+ libX11_xcb_la_LIBADD = libX11.la
  
 +# SolarisIA extension
 +libX11_la_SOURCES += XInteractive.c
@@ -34,21 +34,22 @@
  # Figure out which sub-libraries to link into Xlib
  #
 diff -urp -x '*~' -x '*.orig' src/OpenDis.c src/OpenDis.c
---- src/OpenDis.c	2009-03-24 23:25:04.479607000 -0700
-+++ src/OpenDis.c	2009-03-24 23:25:15.742861000 -0700
-@@ -47,6 +47,11 @@ in this Software without prior written a
+--- src/OpenDis.c	2011-01-11 22:59:47.426484930 -0800
++++ src/OpenDis.c	2011-01-11 22:59:48.281461847 -0800
+@@ -38,6 +38,12 @@ in this Software without prior written a
  #include "XKBlib.h"
  #endif /* XKB */
  
 +/* begin SUNSOFT_INTERACTIVE */
++#include <unistd.h>
 +#include <X11/extensions/interactive.h>
 +#include <X11/extensions/XInteractive.h>
 +/* end SUNSOFT_INTERACTIVE */
 +
- #if !USE_XCB
- #ifdef X_NOT_POSIX
- #define Size_t unsigned int
-@@ -756,6 +761,21 @@ XOpenDisplay (
+ #if defined(XTHREADS) && defined(SUNSOFT)
+ DisplayPtrLink *HeadDisplay=NULL;
+ DisplayPtrLink *LastDisplay=NULL;
+@@ -595,6 +601,21 @@ fallback_success:
  #ifdef XKB
  	XkbUseExtension(dpy,NULL,NULL);
  #endif
--- a/open-src/lib/libX11/compose-en_US.UTF-8.patch	Fri Jan 14 16:51:51 2011 -0800
+++ b/open-src/lib/libX11/compose-en_US.UTF-8.patch	Tue Jan 18 11:32:17 2011 -0800
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the "Software"),
@@ -21,12 +21,13 @@
 # DEALINGS IN THE SOFTWARE.
 #
 
---- nls/en_US.UTF-8/Compose.pre	2010-08-10 17:42:18.000000000 -0700
-+++ nls/en_US.UTF-8/Compose.pre	2010-08-05 20:42:35.085554525 -0700
+diff -urp -x '*~' -x '*.orig' nls/en_US.UTF-8/Compose.pre nls/en_US.UTF-8/Compose.pre
+--- nls/en_US.UTF-8/Compose.pre	2010-09-21 18:25:24.000000000 -0700
++++ nls/en_US.UTF-8/Compose.pre	2010-11-21 18:48:20.433248840 -0800
 @@ -1,8 +1,69 @@
 -XCOMM UTF-8 (Unicode) compose sequence
 +XCOMM
-+XCOMM Copyright (c) 2006, 2009 Oracle and/or its affiliates. All rights reserved.
++XCOMM Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
 +XCOMM
 +XCOMM Permission is hereby granted, free of charge, to any person obtaining a
 +XCOMM copy of this software and associated documentation files (the
@@ -113,7 +114,7 @@
  <Multi_key> <period> <minus>    	: "·"   periodcentered # MIDDLE DOT
  <Multi_key> <period> <equal>    	: "•"   enfilledcircbullet # BULLET
  <Multi_key> <exclam> <asciicircum> 	: "¦"   brokenbar # BROKEN BAR
-@@ -101,12 +162,12 @@ XCOMM Spaces
+@@ -101,13 +162,13 @@ XCOMM Spaces
  <Multi_key> <P> <exclam>         	: "¶"   paragraph # PILCROW SIGN
  <Multi_key> <plus> <minus>       	: "±"   plusminus # PLUS-MINUS SIGN
  <Multi_key> <question> <question> 	: "¿"   questiondown # INVERTED QUESTION MARK
@@ -122,6 +123,7 @@
 +XCOMM <Multi_key> <minus> <d>          	: "đ"   dstroke # LATIN SMALL LETTER D WITH STROKE
 +XCOMM <Multi_key> <minus> <D>          	: "Đ"   Dstroke # LATIN CAPITAL LETTER D WITH STROKE
  <Multi_key> <s> <s>              	: "ß"   ssharp # LATIN SMALL LETTER SHARP S
+ <Multi_key> <S> <S>              	: "ẞ"   Ssharp # LATIN CAPITAL LETTER SHARP S
  
 -<Multi_key> <o> <e>              	: "œ"   oe # LATIN SMALL LIGATURE OE
 -<Multi_key> <O> <E>              	: "Œ"   OE # LATIN CAPITAL LIGATURE OE
@@ -130,7 +132,7 @@
  <Multi_key> <a> <e>              	: "æ"   ae # LATIN SMALL LETTER AE
  <Multi_key> <A> <E>              	: "Æ"   AE # LATIN CAPITAL LETTER AE
  
-@@ -135,12 +196,12 @@ XCOMM Per xxx
+@@ -136,12 +197,12 @@ XCOMM Per xxx
  
  XCOMM Currencies
  <Multi_key> <C> <E>              	: "₠"   U20a0 # EURO-CURRENCY SIGN
@@ -147,7 +149,7 @@
  <Multi_key> <m> <slash>          	: "₥"   U20a5 # MILL SIGN
  <Multi_key> <slash> <m>          	: "₥"   U20a5 # MILL SIGN
  <Multi_key> <N> <equal>          	: "₦"   U20a6 # NAIRA SIGN
-@@ -150,7 +211,7 @@ XCOMM Currencies
+@@ -151,7 +212,7 @@ XCOMM Currencies
  <Multi_key> <W> <equal>          	: "₩"   U20a9 # WON SIGN
  <Multi_key> <equal> <W>          	: "₩"   U20a9 # WON SIGN
  XCOMM "₪" U20aa NEW SHEQEL SIGN
@@ -156,7 +158,7 @@
  <Multi_key> <C> <equal>          	: "€"   EuroSign # EURO SIGN
  <Multi_key> <equal> <C>          	: "€"   EuroSign # EURO SIGN
  <Multi_key> <c> <equal>          	: "€"   EuroSign # EURO SIGN
-@@ -188,8 +249,8 @@ XCOMM Long S
+@@ -189,8 +250,8 @@ XCOMM Long S
  <Multi_key> <f> <S>              	: "ſ"   U017f # LATIN SMALL LETTER LONG S
  
  XCOMM Dashes
@@ -167,7 +169,7 @@
  
  XCOMM Musical alterations
  <Multi_key> <numbersign> <b>     	: "♭"   U266d # MUSIC FLAT SIGN
-@@ -221,5161 +282,2594 @@ XCOMM Other symbols
+@@ -222,5161 +283,2594 @@ XCOMM Other symbols
  <Multi_key> <colon> <parenright>        : "☺"   U263A # WHITE SMILING FACE
  <Multi_key> <colon> <parenleft>         : "☹"   U2639 # WHITE FROWNING FACE
  
--- a/open-src/lib/libX11/compose-iso8859-1.patch	Fri Jan 14 16:51:51 2011 -0800
+++ b/open-src/lib/libX11/compose-iso8859-1.patch	Tue Jan 18 11:32:17 2011 -0800
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the "Software"),
@@ -22,9 +22,9 @@
 #
 
 diff -urp -x '*~' -x '*.orig' nls/iso8859-1/Compose.pre nls/iso8859-1/Compose.pre
---- nls/iso8859-1/Compose.pre	2009-03-24 22:23:13.000000000 -0700
-+++ nls/iso8859-1/Compose.pre	2009-03-25 01:20:57.486198000 -0700
-@@ -13,6 +13,7 @@ XCOMM Special Character
+--- nls/iso8859-1/Compose.pre	2010-09-03 22:52:38.000000000 -0700
++++ nls/iso8859-1/Compose.pre	2010-11-21 18:48:06.890258020 -0800
+@@ -11,6 +11,7 @@ XCOMM Special Character
  <Multi_key> <apostrophe> <space>	: "'"	apostrophe
  <Multi_key> <space> <apostrophe>	: "'"	apostrophe
  <Multi_key> <A> <T>			: "@"	at
@@ -32,7 +32,7 @@
  <Multi_key> <parenleft> <parenleft>	: "["	bracketleft
  <Multi_key> <slash> <slash>		: "\\"	backslash
  <Multi_key> <slash> <less>		: "\\"	backslash
-@@ -195,7 +196,8 @@ XCOMM Accented Alphabet
+@@ -193,7 +194,8 @@ XCOMM Accented Alphabet
  <Multi_key> <diaeresis> <A>		: "\304"	Adiaeresis
  <Multi_key> <A> <asterisk>		: "\305"	Aring
  <Multi_key> <asterisk> <A>		: "\305"	Aring
@@ -42,7 +42,7 @@
  <Multi_key> <A> <O>			: "\305"	Aring
  <Multi_key> <A> <E>			: "\306"	AE
  <Multi_key> <a> <grave>			: "\340"	agrave
-@@ -396,7 +398,7 @@ XCOMM Special Character
+@@ -394,7 +396,7 @@ XCOMM Special Character
  XCOMM These are for us_intl, that does not have diaeresis, etc
  <dead_acute> <space>			: "'"	apostrophe
  <dead_acute> <dead_acute>		: "\264"	acute
@@ -51,7 +51,7 @@
  <dead_diaeresis> <dead_diaeresis>	: "\250"	diaeresis
  <dead_doubleacute> <space>		: "\""	quotedbl
  <dead_abovering> <space>		: "\260"	degree
-@@ -473,7 +475,6 @@ XCOMM Useful for portuguese language
+@@ -471,7 +473,6 @@ XCOMM Useful for portuguese language
  <dead_acute> <C>			: "\307"	Ccedilla
  <dead_acute> <c>			: "\347"	ccedilla
  XCOMM
@@ -59,7 +59,7 @@
  XCOMM Ctrl<T> Means <Compose>
  XCOMM Special Character
  Ctrl<T> <plus> <plus>			: "#"	numbersign
-@@ -660,7 +661,6 @@ Ctrl<T> <A> <diaeresis>			: "\304"	Adiae
+@@ -658,7 +659,6 @@ Ctrl<T> <A> <diaeresis>			: "\304"	Adiae
  Ctrl<T> <diaeresis> <A>			: "\304"	Adiaeresis
  Ctrl<T> <A> <asterisk>			: "\305"	Aring
  Ctrl<T> <asterisk> <A>			: "\305"	Aring
@@ -67,7 +67,7 @@
  Ctrl<T> <A> <O>				: "\305"	Aring
  Ctrl<T> <A> <E>				: "\306"	AE
  Ctrl<T> <a> <grave>			: "\340"	agrave
-@@ -841,5 +841,70 @@ Ctrl<T> <y> <quotedbl>			: "\377"	ydiaer
+@@ -839,5 +839,70 @@ Ctrl<T> <y> <quotedbl>			: "\377"	ydiaer
  Ctrl<T> <quotedbl> <y>			: "\377"	ydiaeresis
  Ctrl<T> <y> <diaeresis>			: "\377"	ydiaeresis
  Ctrl<T> <diaeresis> <y>			: "\377"	ydiaeresis
--- a/open-src/lib/libX11/compose-iso8859-15.patch	Fri Jan 14 16:51:51 2011 -0800
+++ b/open-src/lib/libX11/compose-iso8859-15.patch	Tue Jan 18 11:32:17 2011 -0800
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the "Software"),
@@ -22,9 +22,9 @@
 #
 
 diff -urp -x '*~' -x '*.orig' nls/iso8859-15/Compose.pre nls/iso8859-15/Compose.pre
---- nls/iso8859-15/Compose.pre	2009-04-06 10:49:37.000000000 -0700
-+++ nls/iso8859-15/Compose.pre	2009-04-08 00:22:46.717715000 -0700
-@@ -11,7 +11,7 @@ XCOMM Special Character
+--- nls/iso8859-15/Compose.pre	2010-09-03 22:52:38.000000000 -0700
++++ nls/iso8859-15/Compose.pre	2010-11-21 18:48:18.747788946 -0800
+@@ -9,7 +9,7 @@ XCOMM Special Character
  <Multi_key> <plus> <plus>		: "#"	numbersign
  <Multi_key> <apostrophe> <space>	: "'"	apostrophe
  <Multi_key> <space> <apostrophe>	: "'"	apostrophe
@@ -33,7 +33,7 @@
  <Multi_key> <parenleft> <parenleft>	: "["	bracketleft
  <Multi_key> <slash> <slash>		: "\\"	backslash
  <Multi_key> <slash> <less>		: "\\"	backslash
-@@ -181,7 +181,8 @@ XCOMM Accented Alphabet
+@@ -179,7 +179,8 @@ XCOMM Accented Alphabet
  <Multi_key> <diaeresis> <A>		: "\304"	Adiaeresis
  <Multi_key> <A> <asterisk>		: "\305"	Aring
  <Multi_key> <asterisk> <A>		: "\305"	Aring
@@ -43,7 +43,7 @@
  <Multi_key> <A> <O>			: "\305"	Aring
  <Multi_key> <A> <E>			: "\306"	AE
  <Multi_key> <a> <grave>			: "\340"	agrave
-@@ -383,6 +384,19 @@ XCOMM Accented Alphabet
+@@ -381,6 +382,19 @@ XCOMM Accented Alphabet
  <Multi_key> <z> <less>			: "\270"	zcaron
  <Multi_key> <less> <z>			: "\270"	zcaron
  XCOMM
@@ -63,7 +63,7 @@
  XCOMM dead key accent keysyms
  XCOMM Special Character
  <dead_circumflex> <slash>		: "|"	bar
-@@ -392,12 +406,7 @@ XCOMM Special Character
+@@ -390,12 +404,7 @@ XCOMM Special Character
  <dead_tilde> <dead_tilde>		: "~"	asciitilde
  <dead_grave> <space>			: "`"	grave
  <dead_grave> <dead_grave>		: "`"	grave
@@ -76,7 +76,7 @@
  <dead_circumflex> <0>			: "\260"	degree
  <dead_circumflex> <1>			: "\271"	onesuperior
  <dead_circumflex> <2>			: "\262"	twosuperior
-@@ -475,4 +484,415 @@ XCOMM Accented Alphabet
+@@ -473,4 +482,415 @@ XCOMM Accented Alphabet
  XCOMM Useful for portuguese language
  <dead_acute> <C>			: "\307"	Ccedilla
  <dead_acute> <c>			: "\347"	ccedilla
--- a/open-src/lib/libX11/compose-iso8859-9.patch	Fri Jan 14 16:51:51 2011 -0800
+++ b/open-src/lib/libX11/compose-iso8859-9.patch	Tue Jan 18 11:32:17 2011 -0800
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the "Software"),
@@ -22,9 +22,9 @@
 #
 
 diff -urp -x '*~' -x '*.orig' nls/iso8859-9/Compose.pre nls/iso8859-9/Compose.pre
---- nls/iso8859-9/Compose.pre	2009-03-24 22:23:13.000000000 -0700
-+++ nls/iso8859-9/Compose.pre	2009-03-25 22:27:33.494864000 -0700
-@@ -11,6 +11,7 @@ XCOMM Special Character
+--- nls/iso8859-9/Compose.pre	2010-09-03 22:52:38.000000000 -0700
++++ nls/iso8859-9/Compose.pre	2010-11-21 18:48:14.880056336 -0800
+@@ -9,6 +9,7 @@ XCOMM Special Character
  <Multi_key> <plus> <plus>		: "#"	numbersign
  <Multi_key> <apostrophe> <space>	: "'"	apostrophe
  <Multi_key> <space> <apostrophe>	: "'"	apostrophe
@@ -32,7 +32,7 @@
  <Multi_key> <parenleft> <parenleft>	: "["	bracketleft
  <Multi_key> <slash> <slash>		: "\\"	backslash
  <Multi_key> <slash> <less>		: "\\"	backslash
-@@ -81,6 +82,18 @@ XCOMM Special Character
+@@ -79,6 +80,18 @@ XCOMM Special Character
  <Multi_key> <0> <S>			: "\247"	section
  <Multi_key> <s> <0>			: "\247"	section
  <Multi_key> <0> <s>			: "\247"	section
@@ -51,7 +51,7 @@
  <Multi_key> <c> <o>			: "\251"	copyright
  <Multi_key> <o> <c>			: "\251"	copyright
  <Multi_key> <C> <O>			: "\251"	copyright
-@@ -139,10 +152,20 @@ XCOMM Special Character
+@@ -137,10 +150,20 @@ XCOMM Special Character
  <Multi_key> <period> <asciicircum>	: "\267"	periodcentered
  <Multi_key> <asciicircum> <period>	: "\267"	periodcentered
  <Multi_key> <period> <period>		: "\267"	periodcentered
@@ -74,7 +74,7 @@
  <Multi_key> <minus> <minus>		: "\255"	hyphen
  <Multi_key> <R> <O>			: "\256"	registered
  <Multi_key> <O> <R>			: "\256"	registered
-@@ -179,8 +202,10 @@ XCOMM Accented Alphabet
+@@ -177,8 +200,10 @@ XCOMM Accented Alphabet
  <Multi_key> <diaeresis> <A>		: "\304"	Adiaeresis
  <Multi_key> <A> <asterisk>		: "\305"	Aring
  <Multi_key> <asterisk> <A>		: "\305"	Aring
@@ -86,7 +86,7 @@
  <Multi_key> <a> <grave>			: "\340"	agrave
  <Multi_key> <grave> <a>			: "\340"	agrave
  <Multi_key> <a> <acute>			: "\341"	aacute
-@@ -201,16 +226,20 @@ XCOMM Accented Alphabet
+@@ -199,16 +224,20 @@ XCOMM Accented Alphabet
  <Multi_key> <diaeresis> <a>		: "\344"	adiaeresis
  <Multi_key> <a> <asterisk>		: "\345"	aring
  <Multi_key> <asterisk> <a>		: "\345"	aring
@@ -108,7 +108,7 @@
  <Multi_key> <minus> <D>			: "\320"	ETH
  <Multi_key> <D> <minus>			: "\320"	ETH
  <Multi_key> <minus> <d>			: "\360"	eth
-@@ -232,6 +261,7 @@ XCOMM Accented Alphabet
+@@ -230,6 +259,7 @@ XCOMM Accented Alphabet
  <Multi_key> <e> <grave>			: "\350"	egrave
  <Multi_key> <grave> <e>			: "\350"	egrave
  <Multi_key> <e> <acute>			: "\351"	eacute
@@ -116,7 +116,7 @@
  <Multi_key> <acute> <e>			: "\351"	eacute
  <Multi_key> <e> <apostrophe>		: "\351"	eacute
  <Multi_key> <apostrophe> <e>		: "\351"	eacute
-@@ -253,6 +283,12 @@ XCOMM Accented Alphabet
+@@ -251,6 +281,12 @@ XCOMM Accented Alphabet
  <Multi_key> <parenleft> <g>             : "\360"        gbreve
  <Multi_key> <g> <breve>                 : "\360"        gbreve
  <Multi_key> <breve> <g>                 : "\360"        gbreve
@@ -129,7 +129,7 @@
  <Multi_key> <I> <grave>			: "\314"	Igrave
  <Multi_key> <grave> <I>			: "\314"	Igrave
  <Multi_key> <I> <acute>			: "\315"	Iacute
-@@ -269,6 +305,7 @@ XCOMM Accented Alphabet
+@@ -267,6 +303,7 @@ XCOMM Accented Alphabet
  <Multi_key> <diaeresis> <I>		: "\317"	Idiaeresis
  <Multi_key> <I> <period>                : "\335"        Iabovedot
  <Multi_key> <period> <I>                : "\335"        Iabovedot
@@ -137,7 +137,7 @@
  <Multi_key> <i> <grave>			: "\354"	igrave
  <Multi_key> <grave> <i>			: "\354"	igrave
  <Multi_key> <i> <acute>			: "\355"	iacute
-@@ -285,6 +322,7 @@ XCOMM Accented Alphabet
+@@ -283,6 +320,7 @@ XCOMM Accented Alphabet
  <Multi_key> <diaeresis> <i>		: "\357"	idiaeresis
  <Multi_key> <i> <period>                : "\375"        idotless
  <Multi_key> <period> <i>                : "\375"        idotless
@@ -145,7 +145,7 @@
  <Multi_key> <N> <asciitilde>		: "\321"	Ntilde
  <Multi_key> <asciitilde> <N>		: "\321"	Ntilde
  <Multi_key> <N> <minus>			: "\321"	Ntilde
-@@ -311,6 +349,7 @@ XCOMM Accented Alphabet
+@@ -309,6 +347,7 @@ XCOMM Accented Alphabet
  <Multi_key> <quotedbl> <O>		: "\326"	Odiaeresis
  <Multi_key> <O> <diaeresis>		: "\326"	Odiaeresis
  <Multi_key> <diaeresis> <O>		: "\326"	Odiaeresis
@@ -153,7 +153,7 @@
  <Multi_key> <O> <slash>			: "\330"	Ooblique
  <Multi_key> <slash> <O>			: "\330"	Ooblique
  <Multi_key> <O> <E>			: "\274"	OE
-@@ -332,6 +371,7 @@ XCOMM Accented Alphabet
+@@ -330,6 +369,7 @@ XCOMM Accented Alphabet
  <Multi_key> <quotedbl> <o>		: "\366"	odiaeresis
  <Multi_key> <o> <diaeresis>		: "\366"	odiaeresis
  <Multi_key> <diaeresis> <o>		: "\366"	odiaeresis
@@ -161,7 +161,7 @@
  <Multi_key> <o> <slash>			: "\370"	oslash
  <Multi_key> <slash> <o>			: "\370"	oslash
  <Multi_key> <S> <cedilla>               : "\336"        Scedilla
-@@ -342,6 +382,8 @@ XCOMM Accented Alphabet
+@@ -340,6 +380,8 @@ XCOMM Accented Alphabet
  <Multi_key> <comma> <s>                 : "\376"        scedilla
  <Multi_key> <s> <cedilla>               : "\376"        scedilla
  <Multi_key> <s> <comma>                 : "\376"        scedilla
@@ -170,7 +170,7 @@
  <Multi_key> <U> <grave>			: "\331"	Ugrave
  <Multi_key> <grave> <U>			: "\331"	Ugrave
  <Multi_key> <U> <acute>			: "\332"	Uacute
-@@ -356,6 +398,7 @@ XCOMM Accented Alphabet
+@@ -354,6 +396,7 @@ XCOMM Accented Alphabet
  <Multi_key> <quotedbl> <U>		: "\334"	Udiaeresis
  <Multi_key> <U> <diaeresis>		: "\334"	Udiaeresis
  <Multi_key> <diaeresis> <U>		: "\334"	Udiaeresis
@@ -178,7 +178,7 @@
  <Multi_key> <u> <grave>			: "\371"	ugrave
  <Multi_key> <grave> <u>			: "\371"	ugrave
  <Multi_key> <u> <acute>			: "\372"	uacute
-@@ -370,7 +413,9 @@ XCOMM Accented Alphabet
+@@ -368,7 +411,9 @@ XCOMM Accented Alphabet
  <Multi_key> <quotedbl> <u>		: "\374"	udiaeresis
  <Multi_key> <u> <diaeresis>		: "\374"	udiaeresis
  <Multi_key> <diaeresis> <u>		: "\374"	udiaeresis
@@ -188,7 +188,7 @@
  <Multi_key> <T> <H>			: "\336"	THORN
  <Multi_key> <t> <h>			: "\376"	thorn
  <Multi_key> <Y> <acute>			: "\335"	Yacute
-@@ -409,6 +454,7 @@ XCOMM Special Character
+@@ -407,6 +452,7 @@ XCOMM Special Character
  <dead_circumflex> <2>			: "\262"	twosuperior
  <dead_circumflex> <3>			: "\263"	threesuperior
  <dead_circumflex> <period>		: "\267"	periodcentered
@@ -196,7 +196,7 @@
  <dead_cedilla> <minus>			: "\254"	notsign
  <dead_circumflex> <minus>		: "\257"	macron
  <dead_circumflex> <underscore>		: "\257"	macron
-@@ -480,4 +526,373 @@ XCOMM Accented Alphabet
+@@ -478,4 +524,373 @@ XCOMM Accented Alphabet
  <dead_diaeresis> <y>			: "\377"	ydiaeresis
  <dead_caron> <Z>			: "\264"	Zcaron
  <dead_caron> <z>			: "\270"	zcaron
--- a/open-src/lib/libX11/im-suneu-greek.patch	Fri Jan 14 16:51:51 2011 -0800
+++ b/open-src/lib/libX11/im-suneu-greek.patch	Tue Jan 18 11:32:17 2011 -0800
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the "Software"),
@@ -22,9 +22,9 @@
 #
 
 diff -urp -x '*~' -x '*.orig' src/imConv.c src/imConv.c
---- src/imConv.c	2008-10-07 10:18:19.000000000 -0700
-+++ src/imConv.c	2009-04-08 00:19:39.715079000 -0700
-@@ -72,6 +72,7 @@ struct SubstRec {
+--- src/imConv.c	2010-09-21 18:25:24.000000000 -0700
++++ src/imConv.c	2010-11-21 18:47:58.605389418 -0800
+@@ -69,6 +69,7 @@ struct SubstRec {
  };
  
  static const struct SubstRec SubstTable[] = {
--- a/open-src/lib/libX11/im-ximcp.patch	Fri Jan 14 16:51:51 2011 -0800
+++ b/open-src/lib/libX11/im-ximcp.patch	Tue Jan 18 11:32:17 2011 -0800
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the "Software"),
@@ -22,9 +22,9 @@
 #
 
 diff -urp -x '*~' -x '*.orig' modules/im/ximcp/imImSw.c modules/im/ximcp/imImSw.c
---- modules/im/ximcp/imImSw.c	2008-10-07 10:18:17.000000000 -0700
-+++ modules/im/ximcp/imImSw.c	2009-04-08 00:19:51.221058000 -0700
-@@ -50,7 +50,9 @@ _XimCheckIfDefault(
+--- modules/im/ximcp/imImSw.c	2010-09-03 22:52:38.000000000 -0700
++++ modules/im/ximcp/imImSw.c	2010-11-21 18:47:59.406356831 -0800
+@@ -48,7 +48,9 @@ _XimCheckIfDefault(
  }
  
  XimImsportSW _XimImSportRec[] = {
@@ -35,9 +35,9 @@
      { _XimCheckIfDefault,         _XimProtoOpenIM, _XimProtoIMFree },
      { NULL,                       NULL,		 NULL },
 diff -urp -x '*~' -x '*.orig' modules/im/ximcp/imThaiFlt.c modules/im/ximcp/imThaiFlt.c
---- modules/im/ximcp/imThaiFlt.c	2009-01-28 21:09:42.000000000 -0800
-+++ modules/im/ximcp/imThaiFlt.c	2009-04-08 00:19:51.228478000 -0700
-@@ -78,6 +78,12 @@ SOFTWARE.
+--- modules/im/ximcp/imThaiFlt.c	2010-09-03 22:52:38.000000000 -0700
++++ modules/im/ximcp/imThaiFlt.c	2010-11-21 18:47:59.407125117 -0800
+@@ -76,6 +76,12 @@ SOFTWARE.
  #include "XimThai.h"
  #include "XlcPubI.h"
  
@@ -50,7 +50,7 @@
  
  #define SPACE   32
  
-@@ -518,6 +524,45 @@ Private Bool ThaiComposeConvert(
+@@ -516,6 +522,45 @@ Private Bool ThaiComposeConvert(
       (wchar_t)(c) : \
       ((0x0A1<=(c)) ? ((wchar_t)(c)-0xA0+0x0E00) : 0))
  
@@ -96,7 +96,7 @@
  /*
   * Macros to save and recall last input character in XIC
   */
-@@ -1188,6 +1233,41 @@ Private void InitIscMode(Xic ic)
+@@ -1210,6 +1255,41 @@ Private void InitIscMode(Xic ic)
      return;
  }
  
@@ -138,7 +138,7 @@
  /*
   * Helper functions for _XimThaiFilter()
   */
-@@ -1195,8 +1275,20 @@ Private Bool
+@@ -1217,8 +1297,20 @@ Private Bool
  ThaiFltAcceptInput(Xic ic, unsigned char new_char, KeySym symbol)
  {
      DefTreeBase *b = &ic->private.local.base;
@@ -159,7 +159,7 @@
  
      if ((new_char <= 0x1f) || (new_char == 0x7f))
          b->tree[ic->private.local.composed].keysym = symbol;
-@@ -1211,10 +1303,23 @@ ThaiFltReorderInput(Xic ic, unsigned cha
+@@ -1233,10 +1325,23 @@ ThaiFltReorderInput(Xic ic, unsigned cha
  {
      DefTreeBase *b = &ic->private.local.base;
      if (!IC_DeletePreviousChar(ic)) return False;
@@ -184,7 +184,7 @@
      b->tree[ic->private.local.composed].keysym = NoSymbol;
  
      return True;
-@@ -1225,9 +1330,20 @@ ThaiFltReplaceInput(Xic ic, unsigned cha
+@@ -1247,9 +1352,20 @@ ThaiFltReplaceInput(Xic ic, unsigned cha
  {
      DefTreeBase *b = &ic->private.local.base;
      if (!IC_DeletePreviousChar(ic)) return False;
@@ -206,7 +206,7 @@
      if ((new_char <= 0x1f) || (new_char == 0x7f))
          b->tree[ic->private.local.composed].keysym = symbol;
      else
-@@ -1329,7 +1445,15 @@ _XimThaiFilter(Display *d, Window w, XEv
+@@ -1367,7 +1483,15 @@ _XimThaiFilter(Display *d, Window w, XEv
       */
      isc_mode = IC_IscMode(ic);
      if (!(previous_char = IC_GetPreviousChar(ic))) previous_char = ' ';
--- a/open-src/lib/libX11/lc-gb18030.patch	Fri Jan 14 16:51:51 2011 -0800
+++ b/open-src/lib/libX11/lc-gb18030.patch	Tue Jan 18 11:32:17 2011 -0800
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the "Software"),
@@ -22,9 +22,9 @@
 #
 
 diff -urp -x '*~' -x '*.orig' configure.ac configure.ac
---- configure.ac	2009-04-08 00:20:24.733191000 -0700
-+++ configure.ac	2009-04-08 00:20:36.467703000 -0700
-@@ -431,6 +431,7 @@ AC_OUTPUT([Makefile
+--- configure.ac	2010-11-21 18:48:03.658185379 -0800
++++ configure.ac	2010-11-21 18:48:04.458891398 -0800
+@@ -455,6 +455,7 @@ AC_OUTPUT([Makefile
  	   modules/im/ximcp/Makefile
  	   modules/lc/Makefile
  	   modules/lc/def/Makefile
@@ -33,15 +33,15 @@
  	   modules/lc/Utf8/Makefile
  	   modules/lc/xlocale/Makefile
 diff -urp -x '*~' -x '*.orig' modules/lc/Makefile.am modules/lc/Makefile.am
---- modules/lc/Makefile.am	2008-10-07 10:18:17.000000000 -0700
-+++ modules/lc/Makefile.am	2009-04-08 00:20:36.467900000 -0700
+--- modules/lc/Makefile.am	2010-09-03 22:52:38.000000000 -0700
++++ modules/lc/Makefile.am	2010-11-21 18:48:04.459061907 -0800
 @@ -1 +1 @@
 -SUBDIRS=Utf8 def gen xlocale
 +SUBDIRS=Utf8 def gen xlocale gb18030
 diff -urp -x '*~' -x '*.orig' src/xlibi18n/Makefile.am src/xlibi18n/Makefile.am
---- src/xlibi18n/Makefile.am	2008-12-19 19:21:36.000000000 -0800
-+++ src/xlibi18n/Makefile.am	2009-04-08 00:20:36.492576000 -0700
-@@ -34,6 +34,7 @@ LC_LIBS = \
+--- src/xlibi18n/Makefile.am	2010-09-21 18:25:24.000000000 -0700
++++ src/xlibi18n/Makefile.am	2010-11-21 18:48:04.459305791 -0800
+@@ -36,6 +36,7 @@ LC_LIBS = \
  	${top_builddir}/modules/lc/def/libxlcDef.la \
  	${top_builddir}/modules/lc/gen/libxlibi18n.la \
  	${top_builddir}/modules/lc/Utf8/libxlcUTF8Load.la \
@@ -50,9 +50,9 @@
  
  OM_LIBS = \
 diff -urp -x '*~' -x '*.orig' src/xlibi18n/Xlcint.h src/xlibi18n/Xlcint.h
---- src/xlibi18n/Xlcint.h	2008-11-26 20:17:22.000000000 -0800
-+++ src/xlibi18n/Xlcint.h	2009-04-08 00:20:36.493192000 -0700
-@@ -934,6 +934,12 @@ extern XLCd _XlcUtf8Loader(
+--- src/xlibi18n/Xlcint.h	2010-09-03 22:52:39.000000000 -0700
++++ src/xlibi18n/Xlcint.h	2010-11-21 18:48:04.459698934 -0800
+@@ -932,6 +932,12 @@ extern XLCd _XlcUtf8Loader(
      const char*		name
  );
  
@@ -66,9 +66,9 @@
  extern XLCd _XlcEucLoader(
      const char*		name
 diff -urp -x '*~' -x '*.orig' src/xlibi18n/lcCT.c src/xlibi18n/lcCT.c
---- src/xlibi18n/lcCT.c	2009-04-08 00:20:25.037179000 -0700
-+++ src/xlibi18n/lcCT.c	2009-04-08 00:20:36.493817000 -0700
-@@ -128,6 +128,8 @@ static const CTDataRec default_ct_data[]
+--- src/xlibi18n/lcCT.c	2010-11-21 18:48:03.683823575 -0800
++++ src/xlibi18n/lcCT.c	2010-11-21 18:48:04.460141231 -0800
+@@ -126,6 +126,8 @@ static const CTDataRec default_ct_data[]
      { "BIG5-0:GLGR", "\033%/2"},
      { "BIG5HKSCS-0:GLGR", "\033%/2"},
      { "GBK-0:GLGR", "\033%/2"},
@@ -78,9 +78,9 @@
      { "BIG5-E0:GL", "\033$(0" },
      { "BIG5-E0:GR", "\033$)0" },
 diff -urp -x '*~' -x '*.orig' src/xlibi18n/lcInit.c src/xlibi18n/lcInit.c
---- src/xlibi18n/lcInit.c	2009-01-28 21:09:43.000000000 -0800
-+++ src/xlibi18n/lcInit.c	2009-04-08 00:20:36.494244000 -0700
-@@ -90,6 +90,7 @@ Sun Microsystems, Inc. or its licensors 
+--- src/xlibi18n/lcInit.c	2010-09-21 18:25:24.000000000 -0700
++++ src/xlibi18n/lcInit.c	2010-11-21 18:48:04.460499579 -0800
+@@ -106,6 +106,7 @@ Sun Microsystems, Inc. or its licensors 
  #define USE_GENERIC_LOADER
  #define USE_DEFAULT_LOADER
  #define USE_UTF8_LOADER
@@ -88,7 +88,7 @@
  #ifdef X_LOCALE
  # define USE_EUC_LOADER
  # define USE_SJIS_LOADER
-@@ -134,6 +135,10 @@ _XlcInitLoader(void)
+@@ -150,6 +151,10 @@ _XlcInitLoader(void)
      _XlcAddLoader(_XlcJisLoader, XlcHead);
  #endif
  
@@ -99,7 +99,7 @@
  #ifdef USE_DYNAMIC_LOADER
      _XlcAddLoader(_XlcDynamicLoader, XlcHead);
  #endif
-@@ -173,6 +178,10 @@ _XlcDeInitLoader(void)
+@@ -189,6 +194,10 @@ _XlcDeInitLoader(void)
      _XlcRemoveLoader(_XlcJisLoader);
  #endif
  
@@ -111,9 +111,9 @@
      _XlcRemoveLoader(_XlcDynamicLoader);
  #endif
 diff -urp -x '*~' -x '*.orig' src/xlibi18n/lcUTF8.c src/xlibi18n/lcUTF8.c
---- src/xlibi18n/lcUTF8.c	2009-04-08 00:20:25.071063000 -0700
-+++ src/xlibi18n/lcUTF8.c	2009-04-08 00:20:36.512578000 -0700
-@@ -215,6 +215,7 @@ typedef struct {
+--- src/xlibi18n/lcUTF8.c	2010-11-21 18:48:03.684843035 -0800
++++ src/xlibi18n/lcUTF8.c	2010-11-21 18:48:04.461129908 -0800
+@@ -213,6 +213,7 @@ typedef struct {
  #include "lcUniConv/big5_emacs.h"
  #include "lcUniConv/big5hkscs.h"
  #include "lcUniConv/gbk.h"
@@ -121,7 +121,7 @@
  
  static Utf8ConvRec all_charsets[] = {
      /* The ISO10646-1/UTF-8 entry occurs twice, once at the beginning
-@@ -352,6 +353,18 @@ static Utf8ConvRec all_charsets[] = {
+@@ -350,6 +351,18 @@ static Utf8ConvRec all_charsets[] = {
      { "BIG5HKSCS-0", NULLQUARK,
  	big5hkscs_mbtowc, big5hkscs_wctomb
      },
@@ -141,8 +141,8 @@
      /* The ISO10646-1/UTF-8 entry occurs twice, once at the beginning
         (for lookup speed), once at the end (as a fallback).  */
 diff -urp -x '*~' -x '*.orig' src/xlibi18n/lcUniConv/gbk.h src/xlibi18n/lcUniConv/gbk.h
---- src/xlibi18n/lcUniConv/gbk.h	2008-11-26 20:17:22.000000000 -0800
-+++ src/xlibi18n/lcUniConv/gbk.h	2009-04-08 00:20:36.516905000 -0700
+--- src/xlibi18n/lcUniConv/gbk.h	2010-09-03 22:52:39.000000000 -0700
++++ src/xlibi18n/lcUniConv/gbk.h	2010-11-21 18:48:04.463729400 -0800
 @@ -1,9 +1,41 @@
 +/*
 + * Copyright  The Open Group
--- a/open-src/lib/libX11/lc-jisx0212.patch	Fri Jan 14 16:51:51 2011 -0800
+++ b/open-src/lib/libX11/lc-jisx0212.patch	Tue Jan 18 11:32:17 2011 -0800
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the "Software"),
@@ -22,9 +22,9 @@
 #
 
 diff -urp -x '*~' -x '*.orig' src/xlibi18n/lcUniConv/jisx0212.h src/xlibi18n/lcUniConv/jisx0212.h
---- src/xlibi18n/lcUniConv/jisx0212.h	2008-10-07 10:18:20.000000000 -0700
-+++ src/xlibi18n/lcUniConv/jisx0212.h	2009-04-08 00:20:02.958840000 -0700
-@@ -4,6 +4,1592 @@
+--- src/xlibi18n/lcUniConv/jisx0212.h	2010-09-03 22:52:39.000000000 -0700
++++ src/xlibi18n/lcUniConv/jisx0212.h	2010-11-21 20:00:51.399834544 -0800
+@@ -3,6 +3,1592 @@
   * JISX0212.1990-0
   */
  
@@ -1617,7 +1617,7 @@
  static const unsigned short jisx0212_2uni_page22[81] = {
    /* 0x22 */
    0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-@@ -920,11 +2506,19 @@ jisx0212_mbtowc (conv_t conv, ucs4_t *pw
+@@ -919,11 +2505,19 @@ jisx0212_mbtowc (conv_t conv, ucs4_t *pw
            return 2;
          }
        }
@@ -1637,7 +1637,7 @@
  }
  
  static const unsigned short jisx0212_2charset[6067] = {
-@@ -2135,7 +3729,7 @@ jisx0212_wctomb (conv_t conv, unsigned c
+@@ -2134,7 +3728,7 @@ jisx0212_wctomb (conv_t conv, unsigned c
  {
    if (n >= 2) {
      const Summary16 *summary = NULL;
@@ -1646,7 +1646,7 @@
        summary = &jisx0212_uni2indx_page00[(wc>>4)];
      else if (wc >= 0x2100 && wc < 0x2130)
        summary = &jisx0212_uni2indx_page21[(wc>>4)-0x210];
-@@ -2158,7 +3752,11 @@ jisx0212_wctomb (conv_t conv, unsigned c
+@@ -2157,7 +3751,11 @@ jisx0212_wctomb (conv_t conv, unsigned c
          return 2;
        }
      }
--- a/open-src/lib/libX11/lc-ksc5601.1992-3.patch	Fri Jan 14 16:51:51 2011 -0800
+++ b/open-src/lib/libX11/lc-ksc5601.1992-3.patch	Tue Jan 18 11:32:17 2011 -0800
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the "Software"),
@@ -22,8 +22,8 @@
 #
 
 diff -urp -x '*~' -x '*.orig' src/xlibi18n/lcCT.c src/xlibi18n/lcCT.c
---- src/xlibi18n/lcCT.c	2009-01-28 21:09:42.000000000 -0800
-+++ src/xlibi18n/lcCT.c	2009-04-08 00:20:25.037179000 -0700
+--- src/xlibi18n/lcCT.c	2010-09-03 22:52:39.000000000 -0700
++++ src/xlibi18n/lcCT.c	2010-11-21 18:48:03.683823575 -0800
 @@ -51,7 +51,7 @@
   * Static representation of a character set that can be used in Compound Text.
   */
@@ -33,7 +33,7 @@
      const char ct_sequence[5];	/* Compound Text encoding, ESC sequence */
  } CTDataRec, *CTData;
  
-@@ -97,6 +97,7 @@ static const CTDataRec default_ct_data[]
+@@ -95,6 +95,7 @@ static const CTDataRec default_ct_data[]
      { "JISX0212.1990-0:GR", /* JIS_X0212-1990      159   */ "\033$)D" },
      { "KSC5601.1987-0:GL",  /* KS_C_5601-1987      149   */ "\033$(C" },
      { "KSC5601.1987-0:GR",  /* KS_C_5601-1987      149   */ "\033$)C" },
@@ -42,9 +42,9 @@
      { "CNS11643.1986-1:GR", /* CNS 11643-1992 pl.1 171   */ "\033$)G" },
      { "CNS11643.1986-2:GL", /* CNS 11643-1992 pl.2 172   */ "\033$(H" },
 diff -urp -x '*~' -x '*.orig' src/xlibi18n/lcGeneric.c src/xlibi18n/lcGeneric.c
---- src/xlibi18n/lcGeneric.c	2009-01-28 21:09:42.000000000 -0800
-+++ src/xlibi18n/lcGeneric.c	2009-04-08 00:20:25.037898000 -0700
-@@ -758,6 +758,8 @@ load_generic(
+--- src/xlibi18n/lcGeneric.c	2010-09-03 22:52:39.000000000 -0700
++++ src/xlibi18n/lcGeneric.c	2010-11-21 18:48:03.684217722 -0800
+@@ -756,6 +756,8 @@ load_generic(
              /* 3.4.1 side */
              if (!_XlcNCompareISOLatin1(value[0], "none", 4)) {
                  codeset->side =  XlcNONE;
@@ -54,9 +54,9 @@
                  codeset->side =  XlcGL;
              } else {
 diff -urp -x '*~' -x '*.orig' src/xlibi18n/lcUTF8.c src/xlibi18n/lcUTF8.c
---- src/xlibi18n/lcUTF8.c	2009-01-28 21:09:43.000000000 -0800
-+++ src/xlibi18n/lcUTF8.c	2009-04-08 00:20:25.071063000 -0700
-@@ -210,6 +210,7 @@ typedef struct {
+--- src/xlibi18n/lcUTF8.c	2010-09-03 22:52:39.000000000 -0700
++++ src/xlibi18n/lcUTF8.c	2010-11-21 18:48:03.684843035 -0800
+@@ -208,6 +208,7 @@ typedef struct {
  #include "lcUniConv/jisx0208.h"
  #include "lcUniConv/jisx0212.h"
  #include "lcUniConv/ksc5601.h"
@@ -64,7 +64,7 @@
  #include "lcUniConv/big5.h"
  #include "lcUniConv/big5_emacs.h"
  #include "lcUniConv/big5hkscs.h"
-@@ -288,6 +289,9 @@ static Utf8ConvRec all_charsets[] = {
+@@ -286,6 +287,9 @@ static Utf8ConvRec all_charsets[] = {
      { "KSC5601.1987-0", NULLQUARK,
  	ksc5601_mbtowc, ksc5601_wctomb
      },
--- a/open-src/lib/libX11/locale-iso8859-6.patch	Fri Jan 14 16:51:51 2011 -0800
+++ b/open-src/lib/libX11/locale-iso8859-6.patch	Tue Jan 18 11:32:17 2011 -0800
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the "Software"),
@@ -22,8 +22,8 @@
 #
 
 diff -urp -x '*~' -x '*.orig' nls/iso8859-6/XI18N_OBJS nls/iso8859-6/XI18N_OBJS
---- nls/iso8859-6/XI18N_OBJS	2008-10-07 10:18:18.000000000 -0700
-+++ nls/iso8859-6/XI18N_OBJS	2009-04-08 00:25:28.810325000 -0700
+--- nls/iso8859-6/XI18N_OBJS	2010-09-03 22:52:38.000000000 -0700
++++ nls/iso8859-6/XI18N_OBJS	2010-11-21 18:48:33.986029438 -0800
 @@ -3,5 +3,6 @@
  #	XI18N objects table for iso8859-6 locale
  #
@@ -33,9 +33,9 @@
 +#XIM	common/ximcp	_XimOpenIM _XimRegisterIMInstantiateCallback  _XimUnRegisterIMInstantiateCallback # XIM_open	XIM_register XIM_unregister
  XOM	common/xomGeneric 	_XomGenericOpenOM	# XOM_open
 diff -urp -x '*~' -x '*.orig' nls/iso8859-6/XLC_LOCALE.pre nls/iso8859-6/XLC_LOCALE.pre
---- nls/iso8859-6/XLC_LOCALE.pre	2008-10-07 10:18:18.000000000 -0700
-+++ nls/iso8859-6/XLC_LOCALE.pre	2009-04-08 00:25:28.812654000 -0700
-@@ -12,8 +12,7 @@ fs0	{
+--- nls/iso8859-6/XLC_LOCALE.pre	2010-09-03 22:52:38.000000000 -0700
++++ nls/iso8859-6/XLC_LOCALE.pre	2010-11-21 18:48:33.986304874 -0800
+@@ -11,8 +11,7 @@ fs0	{
  		name		ISO8859-1:GL
  	}
  	font	{
@@ -45,7 +45,7 @@
  		vertical_rotate	all
  	}
  }
-@@ -22,8 +21,9 @@ fs1	{
+@@ -21,8 +20,9 @@ fs1	{
  	charset	{
  		name		ISO8859-6:GR
  	}
--- a/open-src/lib/libX11/locale-ja.SJIS.patch	Fri Jan 14 16:51:51 2011 -0800
+++ b/open-src/lib/libX11/locale-ja.SJIS.patch	Tue Jan 18 11:32:17 2011 -0800
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the "Software"),
@@ -22,8 +22,8 @@
 #
 
 diff -urp -x '*~' -x '*.orig' nls/ja.SJIS/XI18N_OBJS nls/ja.SJIS/XI18N_OBJS
---- nls/ja.SJIS/XI18N_OBJS	2008-10-07 10:18:18.000000000 -0700
-+++ nls/ja.SJIS/XI18N_OBJS	2009-04-08 00:26:05.914860000 -0700
+--- nls/ja.SJIS/XI18N_OBJS	2010-09-03 22:52:38.000000000 -0700
++++ nls/ja.SJIS/XI18N_OBJS	2010-11-21 18:48:36.526767266 -0800
 @@ -4,7 +4,7 @@
  #
  XLC	ja_JP.PCK/xlibi18n_PCK	_XlcGenericLoader	# XLC_open
@@ -35,9 +35,9 @@
 +XIM	common/ximp40	_Ximp_OpenIM		# XIM_open
  XOM	common/xomGeneric	_XomGenericOpenOM # XOM_open
 diff -urp -x '*~' -x '*.orig' nls/ja.SJIS/XLC_LOCALE.pre nls/ja.SJIS/XLC_LOCALE.pre
---- nls/ja.SJIS/XLC_LOCALE.pre	2008-10-07 10:18:18.000000000 -0700
-+++ nls/ja.SJIS/XLC_LOCALE.pre	2009-04-08 00:26:05.933297000 -0700
-@@ -34,9 +34,20 @@ fs1	{
+--- nls/ja.SJIS/XLC_LOCALE.pre	2010-09-03 22:52:38.000000000 -0700
++++ nls/ja.SJIS/XLC_LOCALE.pre	2010-11-21 18:48:36.527360324 -0800
+@@ -29,9 +29,20 @@ fs1	{
  		substitute      JISX0208.1990-0:GL
  	}
  }
@@ -59,7 +59,7 @@
  		name		JISX0201.1976-0:GR
  	}
  	font	{
-@@ -45,15 +56,7 @@ fs2	{
+@@ -40,15 +51,7 @@ fs2	{
  		vertical_rotate	all
  	}
  }
@@ -76,7 +76,7 @@
  END XLC_FONTSET
  
  XCOMM 
-@@ -148,30 +151,279 @@ cs1	{
+@@ -143,30 +146,279 @@ cs1	{
      [\xef40,\xef7e]->\x7d21,[\xef80,\xef9e]->\x7d60,[\xef9f,\xeffc]->\x7e21
  }
  
--- a/open-src/lib/libX11/locale-ja.patch	Fri Jan 14 16:51:51 2011 -0800
+++ b/open-src/lib/libX11/locale-ja.patch	Tue Jan 18 11:32:17 2011 -0800
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the "Software"),
@@ -22,8 +22,8 @@
 #
 
 diff -urp -x '*~' -x '*.orig' nls/ja/XI18N_OBJS nls/ja/XI18N_OBJS
---- nls/ja/XI18N_OBJS	2008-10-07 10:18:18.000000000 -0700
-+++ nls/ja/XI18N_OBJS	2009-04-08 00:26:17.490332000 -0700
+--- nls/ja/XI18N_OBJS	2010-09-03 22:52:38.000000000 -0700
++++ nls/ja/XI18N_OBJS	2010-11-21 18:48:37.485411943 -0800
 @@ -4,8 +4,5 @@
  #
  XLC	ja/xlibi18n_ja	_XlcGenericLoader	# XLC_open
@@ -34,9 +34,9 @@
  XIM	common/ximcp	_XimOpenIM _XimRegisterIMInstantiateCallback  _XimUnRegisterIMInstantiateCallback # XIM_open	XIM_regiser XIM_unregister
  XOM	common/xomGeneric	_XomGenericOpenOM # XOM_open
 diff -urp -x '*~' -x '*.orig' nls/ja/XLC_LOCALE.pre nls/ja/XLC_LOCALE.pre
---- nls/ja/XLC_LOCALE.pre	2008-10-07 10:18:18.000000000 -0700
-+++ nls/ja/XLC_LOCALE.pre	2009-04-08 00:26:17.490544000 -0700
-@@ -44,16 +44,18 @@ fs2	{
+--- nls/ja/XLC_LOCALE.pre	2010-09-03 22:52:38.000000000 -0700
++++ nls/ja/XLC_LOCALE.pre	2010-11-21 18:48:37.485721624 -0800
+@@ -39,16 +39,18 @@ fs2	{
  		vertical_rotate	all
  	}
  }
@@ -64,7 +64,7 @@
  END XLC_FONTSET
  
  XCOMM 
-@@ -112,18 +114,16 @@ cs2	{
+@@ -107,18 +109,16 @@ cs2	{
  }
  
  XCOMM 	cs3 class
--- a/open-src/lib/libX11/locale-ko.patch	Fri Jan 14 16:51:51 2011 -0800
+++ b/open-src/lib/libX11/locale-ko.patch	Tue Jan 18 11:32:17 2011 -0800
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the "Software"),
@@ -22,8 +22,8 @@
 #
 
 diff -urp -x '*~' -x '*.orig' nls/ko/XI18N_OBJS nls/ko/XI18N_OBJS
---- nls/ko/XI18N_OBJS	2008-10-07 10:18:18.000000000 -0700
-+++ nls/ko/XI18N_OBJS	2009-04-08 00:26:42.662948000 -0700
+--- nls/ko/XI18N_OBJS	2010-09-03 22:52:38.000000000 -0700
++++ nls/ko/XI18N_OBJS	2010-11-21 18:48:40.529442909 -0800
 @@ -3,5 +3,5 @@
  #	XI18N objects table for ko locale
  #
@@ -32,9 +32,9 @@
 +XIM	common/ximcp   _XimOpenIM _XimRegisterIMInstantiateCallback  _XimUnRegisterIMInstantiateCallback # XIM_open    XIM_register XIM_unregister
  XOM	common/xomGeneric	_XomGenericOpenOM # XOM_open
 diff -urp -x '*~' -x '*.orig' nls/ko/XLC_LOCALE.pre nls/ko/XLC_LOCALE.pre
---- nls/ko/XLC_LOCALE.pre	2008-10-07 10:18:18.000000000 -0700
-+++ nls/ko/XLC_LOCALE.pre	2009-04-08 00:26:42.663142000 -0700
-@@ -13,7 +13,7 @@ fs0	{
+--- nls/ko/XLC_LOCALE.pre	2010-09-03 22:52:38.000000000 -0700
++++ nls/ko/XLC_LOCALE.pre	2010-11-21 18:48:40.529726589 -0800
+@@ -11,7 +11,7 @@ fs0	{
  		name	ISO8859-1:GL
  	}
  	font	{
--- a/open-src/lib/libX11/locale-zh_TW.UTF-8.patch	Fri Jan 14 16:51:51 2011 -0800
+++ b/open-src/lib/libX11/locale-zh_TW.UTF-8.patch	Tue Jan 18 11:32:17 2011 -0800
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the "Software"),
@@ -22,8 +22,8 @@
 #
 
 diff -urp -x '*~' -x '*.orig' nls/zh_TW.UTF-8/XI18N_OBJS nls/zh_TW.UTF-8/XI18N_OBJS
---- nls/zh_TW.UTF-8/XI18N_OBJS	2008-10-07 10:18:18.000000000 -0700
-+++ nls/zh_TW.UTF-8/XI18N_OBJS	2009-04-08 00:27:57.542784000 -0700
+--- nls/zh_TW.UTF-8/XI18N_OBJS	2010-09-03 22:52:38.000000000 -0700
++++ nls/zh_TW.UTF-8/XI18N_OBJS	2010-11-21 18:48:45.802760490 -0800
 @@ -3,5 +3,9 @@
  #	XI18N objects table for zh_TW.UTF-8 locale
  #
@@ -35,9 +35,9 @@
 +XIM	common/ximlocal		_XimpLocalOpenIM	# XIM_open
  XOM	common/xomGeneric 	_XomGenericOpenOM	# XOM_open
 diff -urp -x '*~' -x '*.orig' nls/zh_TW.UTF-8/XLC_LOCALE.pre nls/zh_TW.UTF-8/XLC_LOCALE.pre
---- nls/zh_TW.UTF-8/XLC_LOCALE.pre	2008-10-07 10:18:18.000000000 -0700
-+++ nls/zh_TW.UTF-8/XLC_LOCALE.pre	2009-04-08 00:27:57.543020000 -0700
-@@ -48,6 +48,7 @@ fs3	{
+--- nls/zh_TW.UTF-8/XLC_LOCALE.pre	2010-09-03 22:52:38.000000000 -0700
++++ nls/zh_TW.UTF-8/XLC_LOCALE.pre	2010-11-21 18:48:45.803025953 -0800
+@@ -47,6 +47,7 @@ fs3	{
  		name	ISO10646-1
  	}
  	font	{
--- a/open-src/lib/libX11/locale-zh_TW.patch	Fri Jan 14 16:51:51 2011 -0800
+++ b/open-src/lib/libX11/locale-zh_TW.patch	Tue Jan 18 11:32:17 2011 -0800
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the "Software"),
@@ -22,8 +22,8 @@
 #
 
 diff -urp -x '*~' -x '*.orig' nls/zh_TW/XI18N_OBJS nls/zh_TW/XI18N_OBJS
---- nls/zh_TW/XI18N_OBJS	2008-10-07 10:18:18.000000000 -0700
-+++ nls/zh_TW/XI18N_OBJS	2009-04-08 00:28:10.543760000 -0700
+--- nls/zh_TW/XI18N_OBJS	2010-09-03 22:52:38.000000000 -0700
++++ nls/zh_TW/XI18N_OBJS	2010-11-21 18:48:46.686739982 -0800
 @@ -3,5 +3,5 @@
  #	XI18N objects table for zh_TW locale
  #
@@ -32,9 +32,9 @@
 +XIM	common/ximcp	_XimOpenIM _XimRegisterIMInstantiateCallback  _XimUnRegisterIMInstantiateCallback # XIM_open	XIM_register XIM_unregister
  XOM	common/xomGeneric	_XomGenericOpenOM # XOM_open
 diff -urp -x '*~' -x '*.orig' nls/zh_TW/XLC_LOCALE.pre nls/zh_TW/XLC_LOCALE.pre
---- nls/zh_TW/XLC_LOCALE.pre	2008-10-07 10:18:18.000000000 -0700
-+++ nls/zh_TW/XLC_LOCALE.pre	2009-04-08 00:28:10.552797000 -0700
-@@ -21,14 +21,14 @@ fs0	{
+--- nls/zh_TW/XLC_LOCALE.pre	2010-09-03 22:52:38.000000000 -0700
++++ nls/zh_TW/XLC_LOCALE.pre	2010-11-21 18:48:46.687115085 -0800
+@@ -20,14 +20,14 @@ fs0	{
  		name	ISO8859-1:GL
  	}
  	font	{
@@ -51,7 +51,7 @@
  	}
  	font	{
  		primary	CNS11643.1986-1:GL
-@@ -37,7 +37,7 @@ fs1	{
+@@ -36,7 +36,7 @@ fs1	{
  XCOMM 	fs2 class
  fs2	{
  	charset	{
@@ -60,7 +60,7 @@
  	}
  	font	{
  		primary	CNS11643.1986-2:GL
-@@ -46,7 +46,7 @@ fs2	{
+@@ -45,7 +45,7 @@ fs2	{
  XCOMM 	fs3 class 
  fs3	{
  	charset	{
@@ -69,7 +69,7 @@
  	}
  	font	{
  		primary	CNS11643.1986-14:GL
-@@ -55,7 +55,7 @@ fs3	{
+@@ -54,7 +54,7 @@ fs3	{
  XCOMM 	fs4 class 
  fs4	{
  	charset	{
@@ -78,7 +78,7 @@
  	}
  	font	{
  		primary	CNS11643.1986-15:GL
-@@ -64,7 +64,7 @@ fs4	{
+@@ -63,7 +63,7 @@ fs4	{
  XCOMM 	fs5 class 
  fs5	{
  	charset	{
--- a/open-src/lib/libX11/locale.aliases.patch	Fri Jan 14 16:51:51 2011 -0800
+++ b/open-src/lib/libX11/locale.aliases.patch	Tue Jan 18 11:32:17 2011 -0800
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the "Software"),
@@ -22,8 +22,8 @@
 #
 
 diff -urp -x '*~' -x '*.orig' nls/locale.alias.pre nls/locale.alias.pre
---- nls/locale.alias.pre	2009-03-16 17:40:04.000000000 -0700
-+++ nls/locale.alias.pre	2009-04-08 00:24:50.438411000 -0700
+--- nls/locale.alias.pre	2010-10-29 00:21:12.000000000 -0700
++++ nls/locale.alias.pre	2010-11-21 18:48:27.884466309 -0800
 @@ -121,7 +121,7 @@ be_BY.MICROSOFT-CP1251:				be_BY.CP1251
  be_BY.utf8:					be_BY.UTF-8
  be_BY.utf8@latin:				be_BY.UTF-8@latin
@@ -33,7 +33,7 @@
  bg_BG.cp1251:					bg_BG.CP1251
  bg_BG.microsoftcp1251:				bg_BG.CP1251
  bg_BG.microsoft-cp1251:				bg_BG.CP1251
-@@ -1138,16 +1138,19 @@ yi_US.cp1255:					yi_US.CP1255
+@@ -1154,16 +1154,19 @@ yi_US.cp1255:					yi_US.CP1255
  yi_US.microsoftcp1255:				yi_US.CP1255
  yi_US.microsoft-cp1255:				yi_US.CP1255
  yi_US.MICROSOFT-CP1255:				yi_US.CP1255
@@ -54,7 +54,7 @@
  zh_HK:						zh_HK.big5hkscs
  zh_HK.BIG5HK:					zh_HK.big5hkscs
  zh_HK.Big5hkscs:				zh_HK.big5hkscs
-@@ -1160,7 +1163,7 @@ zh_HK.Big5:					zh_HK.big5
+@@ -1176,7 +1179,7 @@ zh_HK.Big5:					zh_HK.big5
  zh_HK.utf8:					zh_HK.UTF-8
  ZH_HK.UTF-8:					zh_HK.UTF-8
  ZH_SG.UTF-8:					zh_SG.UTF-8
--- a/open-src/lib/libX11/locale.paths.patch	Fri Jan 14 16:51:51 2011 -0800
+++ b/open-src/lib/libX11/locale.paths.patch	Tue Jan 18 11:32:17 2011 -0800
@@ -1,25 +1,25 @@
 Allow passing multi-directory paths to configure search for locale files
 
 diff -urp -x '*~' -x '*.orig' configure.ac configure.ac
---- configure.ac	2010-06-07 15:49:42.994766047 -0700
-+++ configure.ac	2010-06-07 15:49:44.506894780 -0700
-@@ -477,11 +477,16 @@ AC_ARG_WITH(locale-lib-dir,	AS_HELP_STRI
+--- configure.ac	2010-11-21 18:48:30.520846608 -0800
++++ configure.ac	2010-11-21 18:48:31.439723048 -0800
+@@ -427,11 +427,16 @@ AC_ARG_WITH(locale-lib-dir,	AS_HELP_STRI
   [Directory where locale libraries files are installed (default: $libdir/X11/locale)]),
  				[ X11_LOCALELIBDIR="$withval" ],
  				[ X11_LOCALELIBDIR="${X11_LIBDIR}/locale" ])
--AC_DEFINE_DIR(XLOCALELIBDIR, X11_LOCALELIBDIR, [Location of libX11 locale libraries])
+-AX_DEFINE_DIR(XLOCALELIBDIR, X11_LOCALELIBDIR, [Location of libX11 locale libraries])
 +if test "x$XLOCALELIBDIR" = "x" ; then
 +	XLOCALELIBDIR="${X11_LOCALELIBDIR}"
 +fi
-+AC_DEFINE_DIR(XLOCALELIBDIR, XLOCALELIBDIR, [Location of libX11 locale libraries])
++AX_DEFINE_DIR(XLOCALELIBDIR, XLOCALELIBDIR, [Location of libX11 locale libraries])
  AC_SUBST(X11_LOCALELIBDIR)
  
 -X11_LOCALEDIR="${X11_LOCALEDATADIR}"
--AC_DEFINE_DIR(XLOCALEDIR, X11_LOCALEDIR, [Location of libX11 locale data])
+-AX_DEFINE_DIR(XLOCALEDIR, X11_LOCALEDIR, [Location of libX11 locale data])
 +if test "x$XLOCALEDIR" = "x" ; then
 +	XLOCALEDIR="${X11_LOCALEDATADIR}"
 +fi
-+AC_DEFINE_DIR(XLOCALEDIR, XLOCALEDIR, [Location of libX11 locale data])
++AX_DEFINE_DIR(XLOCALEDIR, XLOCALEDIR, [Location of libX11 locale data])
  AC_SUBST(X11_LOCALEDIR)
  
  XKEYSYMDB="${X11_DATADIR}/XKeysymDB"
--- a/open-src/lib/libX11/om-generic.patch	Fri Jan 14 16:51:51 2011 -0800
+++ b/open-src/lib/libX11/om-generic.patch	Tue Jan 18 11:32:17 2011 -0800
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the "Software"),
@@ -22,9 +22,9 @@
 #
 
 diff -urp -x '*~' -x '*.orig' modules/om/generic/omGeneric.c modules/om/generic/omGeneric.c
---- modules/om/generic/omGeneric.c	2009-04-08 00:20:36.333152000 -0700
-+++ modules/om/generic/omGeneric.c	2009-04-08 00:20:46.761422000 -0700
-@@ -177,6 +177,11 @@ init_fontset(
+--- modules/om/generic/omGeneric.c	2010-11-21 18:48:04.435666511 -0800
++++ modules/om/generic/omGeneric.c	2010-11-21 18:48:05.261723978 -0800
+@@ -175,6 +175,11 @@ init_fontset(
  	if((font_set->substitute = init_fontdata(data->substitute,
  				   data->substitute_num)) == NULL)
  	    goto err;
@@ -36,7 +36,7 @@
  	font_set->substitute_num = data->substitute_num;
  	if((font_set->vmap = init_fontdata(data->vmap,
  			     data->vmap_num)) == NULL)
-@@ -285,33 +290,41 @@ load_font(
+@@ -283,33 +288,41 @@ load_font(
  	if (font_set->font_name == NULL)
  	    continue;
  
@@ -100,7 +100,7 @@
      }
  
      return True;
-@@ -334,12 +347,24 @@ load_font_info(
+@@ -332,12 +345,24 @@ load_font_info(
  	    continue;
  
  	if (font_set->info == NULL) {
@@ -125,7 +125,7 @@
  	}
      }
  
-@@ -456,7 +481,7 @@ init_core_part(
+@@ -453,7 +478,7 @@ init_core_part(
      count = length = 0;
  
      for ( ; font_set_num-- > 0; font_set++) {
@@ -134,7 +134,7 @@
  	    continue;
  
  	length += strlen(font_set->font_name) + 1;
-@@ -486,7 +511,7 @@ init_core_part(
+@@ -483,7 +508,7 @@ init_core_part(
      font_set_num = gen->font_set_num;
  
      for (count = 0; font_set_num-- > 0; font_set++) {
@@ -192,9 +192,9 @@
  
      /* required charset list */
 diff -urp -x '*~' -x '*.orig' modules/om/generic/omXChar.c modules/om/generic/omXChar.c
---- modules/om/generic/omXChar.c	2008-10-07 10:18:17.000000000 -0700
-+++ modules/om/generic/omXChar.c	2009-04-08 00:20:46.761794000 -0700
-@@ -328,6 +328,12 @@ load_font(
+--- modules/om/generic/omXChar.c	2010-09-03 22:52:38.000000000 -0700
++++ modules/om/generic/omXChar.c	2010-11-21 18:48:05.262027476 -0800
+@@ -326,6 +326,12 @@ load_font(
      XOC oc,
      FontSet font_set)
  {
@@ -207,7 +207,7 @@
      font_set->font = XLoadQueryFont(oc->core.om->core.display,
  			oc->core.font_info.font_name_list[font_set->id]);
      if (font_set->font == NULL)
-@@ -377,8 +383,10 @@ _XomConvert(
+@@ -375,8 +381,10 @@ _XomConvert(
      if (font_set == NULL)
  	return -1;
  
@@ -221,9 +221,9 @@
      length = *to_left - cs_left;
  
 diff -urp -x '*~' -x '*.orig' src/XomGeneric.h src/XomGeneric.h
---- src/XomGeneric.h	2008-10-07 10:18:19.000000000 -0700
-+++ src/XomGeneric.h	2009-04-08 00:20:46.785463000 -0700
-@@ -83,6 +83,9 @@ typedef struct _OMDataRec {
+--- src/XomGeneric.h	2010-09-03 22:52:39.000000000 -0700
++++ src/XomGeneric.h	2010-11-21 18:48:05.262416597 -0800
+@@ -81,6 +81,9 @@ typedef struct _OMDataRec {
      XlcCharSet 	*charset_list;
      int 	font_data_count;
      FontData 	font_data;
@@ -233,7 +233,7 @@
      /* For VW/UDC */
      int substitute_num;
      FontData substitute;
-@@ -122,6 +125,9 @@ typedef struct _FontSetRec {
+@@ -120,6 +123,9 @@ typedef struct _FontSetRec {
      XFontStruct 	*font;
      XlcSide 		side;
      Bool 		is_xchar2b;
--- a/open-src/lib/libX11/sme.patch	Fri Jan 14 16:51:51 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,827 +0,0 @@
-###############################################################################
-# Copyright (c) 2008, 2009, Oracle and/or its affiliates. All rights reserved.
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the "Software"),
-# to deal in the Software without restriction, including without limitation
-# the rights to use, copy, modify, merge, publish, distribute, sublicense,
-# and/or sell copies of the Software, and to permit persons to whom the
-# Software is furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice (including the next
-# paragraph) shall be included in all copies or substantial portions of the
-# Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-# DEALINGS IN THE SOFTWARE.
-#
-diff -urp -x '*~' -x '*.orig' include/X11/Xlibint.h include/X11/Xlibint.h
---- include/X11/Xlibint.h	2010-06-07 15:49:19.999603302 -0700
-+++ include/X11/Xlibint.h	2010-06-07 15:49:20.803676676 -0700
-@@ -197,6 +197,10 @@ struct _XDisplay
- 		XGenericEventCookie *	/* in */,
- 		XGenericEventCookie *   /* out*/);
- 	void *cookiejar;  /* cookie events returned but not claimed */
-+#ifdef SUNSOFT
-+	char *smeBuffer;	/* Address of sme region */
-+	int smeSize;		/* size of sme region */
-+#endif /* SME */
- };
- 
- #if defined(XTHREADS) && defined(SUNSOFT)
-diff -urp -x '*~' -x '*.orig' src/ConnDis.c src/ConnDis.c
---- src/ConnDis.c	2010-06-03 12:45:32.000000000 -0700
-+++ src/ConnDis.c	2010-06-07 15:49:20.804309938 -0700
-@@ -136,7 +136,12 @@ _X11TransConnectDisplay (
-     char **auth_namep,			/* RETURN */
-     int *auth_namelenp,			/* RETURN */
-     char **auth_datap,			/* RETURN */
-+#ifdef SUNSOFT /* SME */
-+    int *auth_datalenp,			/* RETURN */
-+    int *sme_conn)                      /* RETURN */
-+#else
-     int *auth_datalenp)			/* RETURN */
-+#endif /* SME */
- {
-     int family;
-     int saddrlen;
-@@ -163,6 +168,9 @@ _X11TransConnectDisplay (
-     int local_transport_index = -1;
-     const char *local_transport[] = { LOCAL_TRANSPORT_LIST, NULL };
- #endif
-+#ifdef SUNSOFT
-+    char *xsuntransport = NULL;
-+#endif /* SME */
- 
-     p = display_name;
- 
-@@ -272,6 +280,13 @@ _X11TransConnectDisplay (
- 	}
-     }
- 
-+#ifdef SUNSOFT
-+    if ((xsuntransport = getenv("XSUNTRANSPORT")) != NULL) {
-+        if (!phostname && (strncmp("shmem", xsuntransport,  5) == 0))
-+            *sme_conn = 1;
-+    }
-+#endif /* SME */
-+
-     /*
-      * At this point, we know the following information:
-      *
-@@ -504,13 +519,23 @@ int _XConnectDisplay (
-     char **auth_namep,			/* RETURN */
-     int *auth_namelenp,			/* RETURN */
-     char **auth_datap,			/* RETURN */
-+#ifdef SUNSOFT /* SME */
-+    int *auth_datalenp,			/* RETURN */
-+    int *sme_conn)                      /* RETURN */
-+#else
-     int *auth_datalenp)			/* RETURN */
-+#endif /* SME */
- {
-    XtransConnInfo trans_conn;
- 
-    trans_conn = _X11TransConnectDisplay (
- 		      display_name, fullnamep, dpynump, screenp,
-+#ifdef SUNSOFT /* SME */
-+		      auth_namep, auth_namelenp, auth_datap, auth_datalenp,
-+		      sme_conn);
-+#else
- 		      auth_namep, auth_namelenp, auth_datap, auth_datalenp);
-+#endif /* SME */
- 
-    if (trans_conn)
-    {
-diff -urp -x '*~' -x '*.orig' src/OpenDis.c src/OpenDis.c
---- src/OpenDis.c	2010-06-07 15:49:20.020725240 -0700
-+++ src/OpenDis.c	2010-06-07 15:49:20.805475576 -0700
-@@ -50,6 +50,11 @@ in this Software without prior written a
- #include <X11/extensions/XInteractive.h>
- /* end SUNSOFT_INTERACTIVE */
- 
-+#ifdef SUNSOFT
-+#include <X11/extensions/sme.h>
-+#include <sys/mman.h>
-+#endif /* SME */
-+
- #if !USE_XCB
- #ifdef X_NOT_POSIX
- #define Size_t unsigned int
-@@ -65,6 +70,13 @@ typedef struct {
- } _XBigReqState;
- #endif /* !USE_XCB */
- 
-+#ifdef SUNSOFT
-+void _XSmeAllocateHeapBuffer(
-+    Display *dpy,
-+    smeRegion *smeBp
-+);
-+#endif /* SME */
-+
- #if defined(XTHREADS) && defined(SUNSOFT)
- DisplayPtrLink *HeadDisplay=NULL;
- DisplayPtrLink *LastDisplay=NULL;
-@@ -82,6 +94,10 @@ void (*_XFreeDisplayLock_fn)(Display *dp
- #define FreeDisplayLock(dis)
- #endif /* XTHREADS */
- 
-+#ifdef SUNSOFT /* XSUNBUFFERSIZE */
-+int _conn_buf_size = 0;
-+#endif /* SUNSOFT */
-+
- static xReq _dummy_request = {
- 	0, 0, 0
- };
-@@ -92,6 +108,10 @@ static Bool _XBigReqHandler(Display *dpy
- 				XPointer data);
- #endif /* !USE_XCB */
- 
-+#ifdef SUNSOFT
-+static void InitializeSmeConn(Display *dpy, int dpynum);
-+#endif /* SME */
-+
- /*
-  * Connects to a server, creates a Display object and returns a pointer to
-  * the newly created Display back to the caller.
-@@ -129,6 +149,10 @@ XOpenDisplay (
- 	long setuplength;	/* number of bytes in setup message */
- 	long usedbytes = 0;     /* number of bytes we have processed */
- 	unsigned long mask;
-+#ifdef SUNSOFT
-+        int sme_conn = 0;
-+#endif /* SME */
-+
- 	long int conn_buf_size;
- 	char *xlib_buffer_size;
- 
-@@ -202,7 +226,11 @@ fallback_success:
- 					 display_name, &fullname, &idisplay,
- 					 &iscreen, &conn_auth_name,
- 					 &conn_auth_namelen, &conn_auth_data,
--					 &conn_auth_datalen)) == NULL) {
-+					 &conn_auth_datalen
-+#ifdef SUNSOFT
-+                                        , &sme_conn
-+#endif /* SME */
-+		)) == NULL) {
- 		Xfree ((char *) dpy);
- 		return(NULL);
- 	}
-@@ -800,6 +828,26 @@ fallback_success:
- 	}
- /* end SUNSOFT_INTERACTIVE */
- 
-+#ifdef SUNSOFT
-+    /*
-+       B U G : 4188179
-+
-+       If client is using shared memory transportation,
-+       communication buffer need not be freed upon
-+       closing of connection.
-+
-+       A non-null smeBuffer field in the display structure
-+       indicates sme buffer being used.
-+     */
-+        _conn_buf_size = conn_buf_size;
-+
-+        if (sme_conn)
-+           InitializeSmeConn(dpy, idisplay);
-+        else
-+           dpy->smeBuffer = NULL ;
-+
-+#endif /* SME */
-+
- /*
-  * and return successfully
-  */
-@@ -934,8 +982,20 @@ void _XFreeDisplayStructure(Display *dpy
- 	if (dpy->vendor)
- 	   Xfree (dpy->vendor);
- 
-+    /*
-+       B U G : 4188179
-+
-+       Do not free communication buffer if using shared
-+       memory extension.
-+
-+     */
-+#ifdef SUNSOFT /* XSUNTRANSPORT */
-+    if ( (dpy->smeBuffer == NULL) && (dpy->buffer) )
-+	   Xfree (dpy->buffer);
-+#else
-         if (dpy->buffer)
- 	   Xfree (dpy->buffer);
-+#endif
- 	if (dpy->keysyms)
- 	   Xfree ((char *) dpy->keysyms);
- 	if (dpy->xdefaults)
-@@ -1098,3 +1158,160 @@ static void OutOfMemory(Display *dpy, ch
-     if (setup) Xfree (setup);
- #endif /* !USE_XCB */
- }
-+
-+#ifdef SUNSOFT
-+/*
-+ * Initialize the shm conn.  Do it through the normal X11 extension
-+ * protocol, except that it is done invisibly as far as user of libX11 is
-+ * concerned.
-+ */
-+static void
-+InitializeSmeConn(Display *dpy, int dpynum)
-+{
-+	smeRegion *region;
-+	XExtCodes *extCodes;
-+	xSMEReq *req;
-+	xSmeConnInitReply smeReply;
-+	xSmeConnInitReply *reply = &smeReply;
-+	char *xsunsmesize;
-+	char buf[80];
-+	int fd;
-+
-+#define X_SME extCodes->major_opcode
-+
-+/*
-+ * Check if server is configured with this extension.
-+ */
-+	if (!(extCodes = XInitExtension(dpy, SMENAME)))
-+	    return;
-+
-+/*
-+ * Initialize extension in server for this client.
-+ */
-+	LockDisplay(dpy);
-+	GetReq(SME, req);
-+	/*
-+	 * Xsun manpage (man/man1/Xsun.1) says that default XSUNSMESIZE
-+	 * should be 64K.
-+	 */
-+	if ((xsunsmesize = getenv("XSUNSMESIZE")) != NULL)
-+	    req->xsunsmesize = 1024 * atoi(xsunsmesize);
-+       else
-+	    req->xsunsmesize = 1024 * 64;
-+
-+	if (req->xsunsmesize < _conn_buf_size)
-+	{
-+	    req->xsunsmesize = _conn_buf_size;
-+	}
-+	/*
-+	 * Make sure heap size is multiple of conn_buf_size.
-+	 */
-+	if (req->xsunsmesize % _conn_buf_size != 0)
-+	{
-+            int chunks;
-+
-+            chunks = req->xsunsmesize/_conn_buf_size;
-+            if (chunks <= 0)
-+            {
-+                chunks = 1;
-+            }
-+            req->xsunsmesize = chunks * _conn_buf_size;
-+	}
-+
-+        /*
-+         * If the client requested a buffer chunk size that would cause us to
-+         * run out of FIFO queue slots, cap it at the maximum.
-+         */
-+        if ((req->xsunsmesize/_conn_buf_size) > SMECONNQSIZE) {
-+                req->xsunsmesize = _conn_buf_size * SMECONNQSIZE;
-+        }
-+
-+	/*
-+	 * Add in smeRegion overhead to get total buffer size.
-+	 */
-+	req->xsunsmesize += sizeof(smeRegion);
-+
-+	req->subReqType = INIT_SME_CONN;
-+/*
-+	if (!_XReply (dpy, (xReply *)reply, -1, xFalse) ||
-+*/
-+	if (!_XReply (dpy, (xReply *)reply, 0, xFalse) ||
-+		 reply->status != Success)
-+    	{
-+    		dpy->smeBuffer = NULL ;
-+    		UnlockDisplay(dpy);
-+    		return;
-+    	}
-+
-+	snprintf(buf, sizeof(buf), "%s:%i.%i", SMEFILE, dpynum,
-+	  reply->client_index);
-+	fd = open(buf, O_RDWR, 0666) ;
-+
-+	region = (smeRegion *)mmap((caddr_t)0, req->xsunsmesize,
-+		PROT_READ|PROT_WRITE, MAP_SHARED, fd, (off_t)0) ;
-+	if (region == MAP_FAILED)
-+    	{
-+    		close(fd) ;
-+    		unlink(buf) ;
-+#ifdef DEBUG
-+    perror("Trying to mmap sme conn region");
-+#endif /* DEBUG */
-+    		dpy->smeBuffer = NULL ;
-+    		UnlockDisplay(dpy);
-+    		return;
-+    	}
-+
-+	dpy->smeSize = req->xsunsmesize ;
-+	close(fd) ;
-+	unlink(buf) ;
-+
-+/*
-+ * Validate that the server is using the new version of smeconn.
-+ * It fills in the first half and checks that we fill in the rest.
-+ */
-+	if (region->smeMagic != (SME_MAGIC4 & 0xffff0000))
-+    	{
-+    		UnlockDisplay (dpy);
-+    		dpy->smeBuffer = NULL ;
-+    		return;
-+    	}
-+
-+    	region->smeMagic = SME_MAGIC4;  /* Fill in whole field */
-+
-+
-+        /*
-+         * It would be better to pass the buffer allocation unit to the
-+         * the server through the initial request, but that would alter
-+         * the size of the request structure.
-+         */
-+        region->smeBufferSize = _conn_buf_size;
-+
-+/*
-+ * Start up sme conn.  Reply synchronizes both server and application
-+ * as they switch over to sme request conn.  Content means nothing.
-+ */
-+	GetReq(SME, req);
-+	req->subReqType = START_SME_CONN;
-+/*
-+	if (!_XReply (dpy, (xReply *)reply, -1, xFalse) ||
-+*/
-+	if (!_XReply (dpy, (xReply *)reply, 0, xFalse) ||
-+    		reply->status != Success)
-+    	{
-+    		dpy->smeBuffer = NULL ;
-+		UnlockDisplay(dpy);
-+    		return;
-+    	}
-+
-+	dpy->smeBuffer = (char *)region;
-+	Xfree(dpy->buffer);
-+	dpy->buffer = dpy->bufptr = dpy->bufmax = NULL;
-+	_XSmeAllocateHeapBuffer (dpy, region);
-+	dpy->bufptr = dpy->buffer;
-+
-+	UnlockDisplay(dpy);
-+
-+#undef X_SmeConn
-+}
-+#endif /* SME */
-+
-diff -urp -x '*~' -x '*.orig' src/Xintconn.h src/Xintconn.h
---- src/Xintconn.h	2010-01-14 17:11:36.000000000 -0800
-+++ src/Xintconn.h	2010-06-07 15:49:20.804631804 -0700
-@@ -17,7 +17,12 @@ int _XConnectDisplay (
-     char **auth_namep,          /* RETURN */
-     int *auth_namelenp,         /* RETURN */
-     char **auth_datap,          /* RETURN */
-+#ifdef SUNSOFT /* SME */
-+    int *auth_datalenp,         /* RETURN */
-+    int *sme_conn);             /* RETURN */
-+#else
-     int *auth_datalenp);        /* RETURN */
-+#endif /* SME */
- extern int _XDisconnectDisplay(XtransConnInfo trans_conn);
- extern Bool _XSendClientPrefix(Display *dpy, xConnClientPrefix *client,
- 				char *auth_proto, char *auth_string,
-@@ -26,7 +31,11 @@ extern XtransConnInfo _X11TransConnectDi
- 				char **fullnamep, int *dpynump,
- 				int *screenp, char **auth_namep,
- 				int *auth_namelenp, char **auth_datap,
-+#ifdef SUNSOFT /* SME */
-+				int *auth_datalenp, int *sme_conn);
-+#else
- 				int *auth_datalenp);
-+#endif /* SME */
- #endif /* !USE_XCB */
- 
- /* OpenDis.c */
-diff -urp -x '*~' -x '*.orig' src/XlibInt.c src/XlibInt.c
---- src/XlibInt.c	2010-06-07 15:49:20.026209260 -0700
-+++ src/XlibInt.c	2010-06-07 15:49:20.806893011 -0700
-@@ -52,8 +52,15 @@ from The Open Group.
- #include <direct.h>
- #endif
- 
-+#ifdef SUNSOFT
-+#include <string.h>
-+#include <thread.h>
-+#include <synch.h>
-+#include <X11/extensions/sme.h>
-+#endif /* SME */
-+
- /* Xtransint.h is needed for access to an xtrans internal structure.
-- * See the comments in _XFlush for information. This is required for
-+ * See the comments in _XFlush for information.  This is required for
-  * compatibility between X11R6-xtrans and gnuemacs v18.58.
-  */
- #include <X11/Xtrans/Xtransint.h>
-@@ -181,6 +188,19 @@ xthread_t (*_Xthread_self_fn)(void) = NU
- 
- #endif /* MUSTCOPY */
- 
-+#ifdef SUNSOFT
-+extern int _conn_buf_size;
-+
-+void _XSmeAllocateHeapBuffer(
-+#if NeedFunctionPrototypes
-+    Display *dpy,
-+    smeRegion *smeBp
-+#endif
-+);
-+
-+void _XSmeCheckForFull();
-+#endif /* SME */
-+
- typedef union {
-     xReply rep;
-     char buf[BUFSIZE];
-@@ -217,6 +237,140 @@ static xReq _dummy_request = {
- 	0, 0, 0
- };
- 
-+#ifdef SUNSOFT
-+
-+static
-+void
-+smeIncHead(smeRegion *smeBp)
-+{
-+	smeBp->smeHeadptr =
-+            (smeBp->smeHeadptr+smeBp->smeBufferSize)%smeBp->smeHeapSize;
-+}
-+
-+#define smePokeServer(dpy, c) { \
-+        char byte = (char)c ; \
-+        for (;;) { \
-+            int result = 0 ; \
-+            result = _X11TransWrite (dpy->trans_conn, &byte, 1); \
-+            if (result == 1) { \
-+                break; \
-+            } else if (result == 0) { \
-+                continue; \
-+            } else if (result < 0 && ETEST()) { \
-+                continue; \
-+            } else if ((result < 0) && !ECHECK(EINTR)) { \
-+                    /* Write failed! */ \
-+                    /* errno set by write system call. */ \
-+                    _XIOError(dpy); \
-+                    break; \
-+            } \
-+        } \
-+}
-+
-+/*
-+ * Wait for the server to open up enough buffer space for us to
-+ * continue writing. Since the inbound connection is shared with client
-+ * traffic a condition variable is used to block until the Xserver
-+ * has freed some buffer space.
-+ */
-+static void
-+SmeWaitForServer(Display *dpy, smeRegion *smeBp)
-+{
-+        char *save_bufptr = dpy->bufptr;
-+
-+        dpy->bufptr = dpy->buffer;
-+
-+
-+        /*
-+         * Let the Xserver know we are waiting for buffer space.
-+         */
-+	(void)mutex_lock(&smeBp->smeBufferMutex);
-+        smeBp->smeClientBufferBlocked = 1;
-+
-+        /*
-+         * Don't hold the mutex over the poke since it might
-+         * cause the Xserver to run and not acquire the mutex the
-+         * first time round.
-+         */
-+	(void)mutex_unlock(&smeBp->smeBufferMutex);
-+
-+        /*
-+         * The 'W' is for debugging when looking at truss output from
-+         * an X client. The Xserver doesn't care what the byte contains.
-+         */
-+        smePokeServer (dpy, 'W');
-+
-+	(void)mutex_lock(&smeBp->smeBufferMutex);
-+
-+	while (smeBp->smeClientBufferBlocked != 0) {
-+		timestruc_t ts;
-+		int err;
-+
-+                /*
-+                 * Can't block indefinitly on the condition variable
-+                 * since the Xserver might have terminated.
-+                 */
-+		ts.tv_sec = 1;
-+		ts.tv_nsec = 0;
-+
-+		err = cond_reltimedwait(&smeBp->smeBufferCV,
-+                                        &smeBp->smeBufferMutex,
-+                                        &ts);
-+		if (err == 0) {
-+			/*
-+			 * We have been signaled by the server,
-+			 * see if smeClientBufferBlocked has been cleared.
-+			 */
-+			continue;
-+		} else if (err == ETIME) {
-+			/*
-+			 * We timed out, see if we still have a valid
-+			 * connect to the server.
-+			 */
-+			struct pollfd pfd;
-+
-+    			pfd.fd = dpy->fd;
-+                	pfd.events = POLLIN;
-+                	pfd.revents = 0;
-+
-+			err = poll(&pfd, 1, 0);
-+
-+			if (err == 0) {
-+				continue;
-+			} else if (err == 1 && pfd.revents & POLLHUP) {
-+				break;
-+			} else if (err < 0) {
-+				break;
-+			}
-+		}
-+        }
-+	(void)mutex_unlock(&smeBp->smeBufferMutex);
-+
-+	dpy->bufptr = save_bufptr;
-+}
-+
-+/*
-+ * smeConnQueueIn() adds the current buffer to the FIFO queue of
-+ * sme buffers.
-+ */
-+void smeConnQueueIn(dpy, smeBp, bufptr, msgsize, bufsize)
-+    Display     *dpy;
-+    smeRegion   *smeBp;
-+    char        *bufptr;
-+    int         msgsize;
-+    int         bufsize;
-+{
-+    int index;
-+
-+    index = (uint)(smeBp->smeIn+1) % SMECONNQSIZE;
-+    smeBp->smeQueue[index].bufp = bufptr - (char *)(smeBp+1);
-+    smeBp->smeQueue[index].msgSize = msgsize;
-+
-+    smeBp->smeIn++; /* increment after bufp & msgSize updated */
-+}
-+
-+#endif /* SME */
-+
- /*
-  * This is an OS dependent routine which:
-  * 1) returns as soon as the connection can be written on....
-@@ -304,7 +458,7 @@ _XWaitForWritable(
- 	{
- 	    _XAlignedBuffer buf;
- 	    BytesReadable_t pend;
--	    register int len;
-+	    BytesReadable_t len;
- 	    register xReply *rep;
- 
- 	    /* find out how much data can be read */
-@@ -678,6 +832,24 @@ static void _XFlushInt(
- 		dpy->trans_conn->fd = dpy->fd;
- 	}
- 	/* End gnuemacs v18.58 compatability fix. */
-+#ifdef SUNSOFT
-+        if (dpy->smeBuffer) {
-+                smeRegion *smeBp = (smeRegion *) dpy->smeBuffer;
-+
-+                size = (long)(dpy->bufptr - dpy->buffer);
-+                if (!size) return;
-+                smeConnQueueIn (dpy,smeBp,dpy->buffer,size,_conn_buf_size);
-+                dpy->last_req = (char *)&_dummy_request;
-+               /*
-+                * The 'D' is for debugging when looking at truss output from
-+                * an X client. The Xserver doesn't care what the byte contains.
-+                */
-+                smePokeServer (dpy, 'D');
-+                _XSmeAllocateHeapBuffer (dpy, smeBp);
-+                dpy->bufptr = dpy->buffer;
-+        }
-+        else {
-+#endif /* SME */
- 
- 	/* This fix resets the bufptr to the front of the buffer so
- 	 * additional appends to the bufptr will not corrupt memory. Since
-@@ -700,7 +872,7 @@ static void _XFlushInt(
- 	    }
- 	}
- #endif
--	size = todo = dpy->bufptr - dpy->buffer;
-+	size = todo = (long)(dpy->bufptr - dpy->buffer);
- 	if (!size) return;
- #ifdef XTHREADS
- 	dpy->flags |= XlibDisplayWriting;
-@@ -761,6 +933,11 @@ static void _XFlushInt(
- #ifdef XTHREADS
- 	dpy->flags &= ~XlibDisplayWriting;
- #endif
-+
-+#ifdef SUNSOFT
-+    }
-+#endif /* SME */
-+	return;
- }
- 
- int
-@@ -768,7 +945,7 @@ _XEventsQueued(
-     register Display *dpy,
-     int mode)
- {
--	register int len;
-+	BytesReadable_t len;
- 	BytesReadable_t pend;
- 	_XAlignedBuffer buf;
- 	register xReply *rep;
-@@ -892,7 +1069,6 @@ _XEventsQueued(
- #endif /* XTHREADS*/
- 	{
- 	    read_buf = buf.buf;
--
- 	    if (len < SIZEOF(xReply)
- #ifdef XTHREADS
- 		|| dpy->async_handlers
-@@ -964,7 +1140,7 @@ void _XReadEvents(
- {
- 	_XAlignedBuffer buf;
- 	BytesReadable_t pend;
--	int len;
-+	BytesReadable_t len;
- 	register xReply *rep;
- 	Bool not_yet_flushed = True;
- 	char *read_buf;
-@@ -1428,8 +1604,84 @@ _XSend (
- 	long skip, dbufsize, padsize, total, todo;
- 	_XExtension *ext;
- 
-+#ifdef SUNSOFT
-+        if (dpy->smeBuffer) {
-+                smeRegion *smeBp = (smeRegion *) dpy->smeBuffer;
-+
-+                dbufsize = dpy->bufptr-dpy->buffer;
-+
-+                padsize = -size & 3;
-+
-+                total =  dbufsize + size + padsize;
-+
-+                /*
-+                 * If request won't fit in a single sme buffer, break it up
-+                 * into smaller requests.
-+                 */
-+                if (total > (long)(_conn_buf_size))
-+                {
-+                        long bytesCopied = 0 ;
-+                        long numToCopy = 0 ;
-+                        long chunk = _conn_buf_size & 0xffffffc ;
-+
-+                        while (bytesCopied < size)
-+                        {
-+                                /*
-+                                 * Compensate for buffer contents.
-+                                 */
-+                                if (dbufsize) {
-+                                        numToCopy = chunk - dbufsize;
-+                                        numToCopy = min(numToCopy, size);
-+                                        numToCopy &= 0xffffffc;
-+                                        dbufsize = 0;
-+                                } else if (size - bytesCopied >= chunk) {
-+                                        numToCopy = chunk;
-+                                } else {
-+                                        numToCopy = size - bytesCopied ;
-+                                }
-+                                _XSend(dpy, data + bytesCopied, numToCopy) ;
-+                                bytesCopied += numToCopy ;
-+                        }
-+                        return;
-+                }
-+                else {
-+
-+                /*
-+                 * Copy data into sme buffer.
-+                 */
-+
-+                if (size) {
-+                    memcpy (dpy->bufptr, data, size);
-+                }
-+
-+                /* Pad the buffer with zeros. */
-+                if (padsize)
-+                {
-+                   char *p = (char *)dpy->bufptr + size;
-+                   int i;
-+                   for (i = 0; i < padsize; i++)
-+                      *p++ = '\0';
-+                }
-+
-+                smeConnQueueIn (dpy,smeBp,dpy->buffer,total,_conn_buf_size);
-+                dpy->last_req = (char *)&_dummy_request;
-+                smePokeServer (dpy, 'D');
-+
-+                /* Allocate a new buffer */
-+                dpy->buffer = dpy->bufmax;
-+
-+                /* Get a new buffer */
-+                _XSmeAllocateHeapBuffer (dpy, smeBp);
-+
-+                /* Reset pointer to beginning of new sme buffer. */
-+                dpy->bufptr = dpy->buffer;
-+        	}
-+        }
-+        else {
-+#endif /* SME */
-+
- 	if (!size || (dpy->flags & XlibDisplayIOError)) return;
--	dbufsize = dpy->bufptr - dpy->buffer;
-+	dbufsize = (long)(dpy->bufptr - dpy->buffer);
- #ifdef XTHREADS
- 	dpy->flags |= XlibDisplayWriting;
- 	/* make sure no one else can put in data */
-@@ -1533,9 +1785,66 @@ _XSend (
- #ifdef XTHREADS
- 	dpy->flags &= ~XlibDisplayWriting;
- #endif
-+#ifdef SUNSOFT
-+	}
-+#endif /* SME */
- 	return;
- }
- 
-+#ifdef SUNSOFT
-+
-+
-+/*
-+ * Allocate a buffer in the shared memory region using a stack heap.
-+ * Note: this routine starts the allocation at the value of dpy->buffer
-+ */
-+
-+void
-+_XSmeAllocateHeapBuffer(dpy, smeBp)
-+    Display *dpy;
-+    smeRegion *smeBp;
-+{
-+        for (;;) {
-+
-+           /*
-+            * Determine if the circular list is full or has space.
-+            */
-+            if ((smeBp->smeHeadptr == smeBp->smeTailptr) &&
-+                (smeBp->smeIn != smeBp->smeOut)) {
-+                /*
-+                 * Full, wait for space.
-+                 */
-+                SmeWaitForServer(dpy, smeBp);
-+                continue;
-+            } else {
-+                /*
-+                 * Take the next buffer chunk.
-+                 */
-+                dpy->buffer = smeBp->smeHeadptr + (char *)(smeBp + 1);
-+                dpy->bufmax = dpy->buffer + smeBp->smeBufferSize;
-+                smeIncHead(smeBp);
-+                break;
-+           }
-+        }
-+}
-+
-+void
-+_XSmeCheckForFull(dpy, smeBp)
-+    Display *dpy;
-+    smeRegion *smeBp;
-+{
-+
-+    while ((smeBp->smeHeadptr == smeBp->smeTailptr) &&
-+           (smeBp->smeIn != smeBp->smeOut)) {
-+        /*
-+         * Full, wait for space.
-+         */
-+         SmeWaitForServer(dpy, smeBp);
-+    }
-+}
-+
-+#endif /* SME */
-+
- static void
- _XGetMiscCode(
-     register Display *dpy)
--- a/open-src/lib/libX11/solaris-abi.patch	Fri Jan 14 16:51:51 2011 -0800
+++ b/open-src/lib/libX11/solaris-abi.patch	Tue Jan 18 11:32:17 2011 -0800
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2008, 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the "Software"),
@@ -21,9 +21,9 @@
 # DEALINGS IN THE SOFTWARE.
 #
 diff -urp -x '*~' -x '*.orig' configure.ac configure.ac
---- configure.ac	2009-04-07 15:18:30.000000000 -0700
-+++ configure.ac	2009-04-08 00:18:15.093686000 -0700
-@@ -138,7 +138,7 @@ if test x$XLIB_LOADABLE_I18N = xyes; the
+--- configure.ac	2010-11-21 14:02:48.000000000 -0800
++++ configure.ac	2010-11-21 18:47:54.799563366 -0800
+@@ -206,7 +206,7 @@ if test x$XLIB_LOADABLE_I18N = xyes; the
  	fi
  	AC_DEFINE(USE_DYNAMIC_LC,1,
  		  [Split some i18n functions into loadable modules])
@@ -33,9 +33,9 @@
  AC_MSG_RESULT($XLIB_LOADABLE_I18N)
  
 diff -urp -x '*~' -x '*.orig' src/Makefile.am src/Makefile.am
---- src/Makefile.am	2008-11-18 22:42:01.000000000 -0800
-+++ src/Makefile.am	2009-04-08 00:18:15.094065000 -0700
-@@ -373,9 +373,14 @@ if XKB
+--- src/Makefile.am	2010-09-21 18:25:24.000000000 -0700
++++ src/Makefile.am	2010-11-21 18:47:54.799940548 -0800
+@@ -369,9 +369,14 @@ if XKB
  USE_XKB_LIBS = $(XKB_LIBS)
  endif
  
--- a/open-src/lib/libX11/solaris-kbd.patch	Fri Jan 14 16:51:51 2011 -0800
+++ b/open-src/lib/libX11/solaris-kbd.patch	Tue Jan 18 11:32:17 2011 -0800
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the "Software"),
@@ -23,9 +23,9 @@
 
 
 diff -urp -x '*~' -x '*.orig' src/KeyBind.c src/KeyBind.c
---- src/KeyBind.c	2008-10-07 10:18:18.000000000 -0700
-+++ src/KeyBind.c	2009-04-08 00:18:26.151824000 -0700
-@@ -47,6 +47,7 @@ in this Software without prior written a
+--- src/KeyBind.c	2010-09-21 18:25:24.000000000 -0700
++++ src/KeyBind.c	2010-11-21 18:47:55.561803959 -0800
+@@ -44,6 +44,7 @@ in this Software without prior written a
  #define XK_CAUCASUS
  #define XK_VIETNAMESE
  #define XK_XKB_KEYS
@@ -33,7 +33,7 @@
  #include <X11/keysymdef.h>
  #include <stdio.h>
  
-@@ -58,6 +59,20 @@ in this Software without prior written a
+@@ -55,6 +56,20 @@ in this Software without prior written a
  #include "Xresource.h"
  #include "Key.h"
  
@@ -54,7 +54,7 @@
  #ifdef XKB
  #include "XKBlib.h"
  #include "XKBlibint.h"
-@@ -79,6 +94,11 @@ ComputeMaskFromKeytrans(
+@@ -76,6 +91,11 @@ ComputeMaskFromKeytrans(
      Display *dpy,
      register struct _XKeytrans *p);
  
@@ -66,7 +66,7 @@
  struct _XKeytrans {
  	struct _XKeytrans *next;/* next on list */
  	char *string;		/* string to return when the time comes */
-@@ -100,6 +120,10 @@ KeyCodetoKeySym(register Display *dpy, K
+@@ -97,6 +117,10 @@ KeyCodetoKeySym(register Display *dpy, K
  	((int)keycode < dpy->min_keycode) || ((int)keycode > dpy->max_keycode))
        return NoSymbol;
  
@@ -77,7 +77,7 @@
      syms = &dpy->keysyms[(keycode - dpy->min_keycode) * per];
      if (col < 4) {
  	if (col > 1) {
-@@ -768,6 +792,9 @@ _XTranslateKey(	register Display *dpy,
+@@ -765,6 +789,9 @@ _XTranslateKey(	register Display *dpy,
      int per;
      register KeySym *syms;
      KeySym sym, lsym, usym;
@@ -87,7 +87,7 @@
  
      if ((! dpy->keysyms) && (! _XKeyInitialize(dpy)))
  	return 0;
-@@ -782,17 +809,54 @@ _XTranslateKey(	register Display *dpy,
+@@ -779,17 +806,54 @@ _XTranslateKey(	register Display *dpy,
      syms = &dpy->keysyms[(keycode - dpy->min_keycode) * per];
      while ((per > 2) && (syms[per - 1] == NoSymbol))
  	per--;
@@ -142,7 +142,7 @@
      } else if (!(modifiers & ShiftMask) &&
  	(!(modifiers & LockMask) || (dpy->lock_meaning == NoSymbol))) {
  	if ((per == 1) || (syms[1] == NoSymbol))
-@@ -820,19 +884,41 @@ _XTranslateKey(	register Display *dpy,
+@@ -817,19 +881,41 @@ _XTranslateKey(	register Display *dpy,
  
  int
  _XTranslateKeySym(
@@ -190,7 +190,7 @@
      /* see if symbol rebound, if so, return that string. */
      for (p = dpy->key_bindings; p; p = p->next) {
  	if (((modifiers & AllMods) == p->state) && (symbol == p->key)) {
-@@ -846,8 +932,29 @@ _XTranslateKeySym(
+@@ -843,8 +929,29 @@ _XTranslateKeySym(
      hiBytes = symbol >> 8;
      if (!(nbytes &&
  	  ((hiBytes == 0) ||
@@ -220,7 +220,7 @@
  	     (symbol == XK_Return) ||
  	     (symbol == XK_Escape) ||
  	     (symbol == XK_KP_Space) ||
-@@ -858,15 +965,35 @@ _XTranslateKeySym(
+@@ -855,15 +962,35 @@ _XTranslateKeySym(
  	     (symbol == XK_Delete))))))
  	return 0;
  
@@ -256,7 +256,7 @@
  	if ((c >= '@' && c < '\177') || c == ' ') c &= 0x1F;
  	else if (c == '2') c = '\000';
  	else if (c >= '3' && c <= '7') c -= ('3' - '\033');
-@@ -960,11 +1087,22 @@ XLookupString (
+@@ -957,11 +1084,22 @@ XLookupString (
      }
  #endif
  
@@ -279,7 +279,7 @@
  }
  
  static void
-@@ -1078,3 +1216,287 @@ ComputeMaskFromKeytrans(
+@@ -1075,3 +1213,287 @@ ComputeMaskFromKeytrans(
      }
      p->state &= AllMods;
  }
@@ -568,9 +568,9 @@
 +}
 +#endif /* SUNSOFT_KBD */
 diff -urp -x '*~' -x '*.orig' src/xkb/XKBBind.c src/xkb/XKBBind.c
---- src/xkb/XKBBind.c	2009-04-06 16:51:07.000000000 -0700
-+++ src/xkb/XKBBind.c	2009-04-08 00:18:26.181848000 -0700
-@@ -580,6 +580,20 @@ XkbTranslateKeySym(	register Display *	d
+--- src/xkb/XKBBind.c	2010-09-21 18:25:24.000000000 -0700
++++ src/xkb/XKBBind.c	2010-11-21 18:47:55.562288437 -0800
+@@ -577,6 +577,20 @@ XkbTranslateKeySym(	register Display *	d
  			int 			nbytes,
  			int *			extra_rtrn)
  {
@@ -591,7 +591,7 @@
      register XkbInfoPtr	xkb;
      XkbKSToMBFunc cvtr;
      XPointer priv;
-@@ -621,6 +635,17 @@ XkbTranslateKeySym(	register Display *	d
+@@ -618,6 +632,17 @@ XkbTranslateKeySym(	register Display *	d
  
      n = (*cvtr)(priv,*sym_rtrn,buffer,nbytes,extra_rtrn);
  
@@ -609,7 +609,7 @@
      if ((!xkb->cvt.KSToUpper)&&( mods&LockMask )) {
  	register int i;
  	int change;
-@@ -747,9 +772,9 @@ XLookupString (	register XKeyEvent *	eve
+@@ -744,9 +769,9 @@ XLookupString (	register XKeyEvent *	eve
  #endif
  		    for (n=len=0;rtrn.sym[n]!=XK_VoidSymbol;n++) {
  			if ( nbytes-len > 0 ) {
@@ -621,7 +621,7 @@
  			}
  		    }
  		    if ( keysym!=NULL ) {
-@@ -775,16 +800,16 @@ XLookupString (	register XKeyEvent *	eve
+@@ -772,16 +797,16 @@ XLookupString (	register XKeyEvent *	eve
  			len = (int)strlen(buffer);
  		    }
  		    else {
@@ -642,7 +642,7 @@
  			}
  		    }
  		    return len;
-@@ -805,7 +830,8 @@ XLookupString (	register XKeyEvent *	eve
+@@ -802,7 +827,8 @@ XLookupString (	register XKeyEvent *	eve
      if (rtrnLen>0)
  	return rtrnLen;
  
@@ -653,9 +653,9 @@
  
  
 diff -urp -x '*~' -x '*.orig' src/xkb/XKBlibint.h src/xkb/XKBlibint.h
---- src/xkb/XKBlibint.h	2008-10-07 10:18:19.000000000 -0700
-+++ src/xkb/XKBlibint.h	2009-04-08 00:18:26.182186000 -0700
-@@ -177,10 +177,19 @@ extern int _XTranslateKey(
+--- src/xkb/XKBlibint.h	2010-09-03 22:52:39.000000000 -0700
++++ src/xkb/XKBlibint.h	2010-11-21 18:47:55.562584726 -0800
+@@ -175,10 +175,19 @@ extern int _XTranslateKey(
  
  extern int	_XTranslateKeySym(
      Display *		/* dpy */,
@@ -675,7 +675,7 @@
  );
  
  extern	int _XLookupString(
-@@ -340,6 +349,17 @@ extern	Status	_XkbReadGetGeometryReply(
+@@ -338,6 +347,17 @@ extern	Status	_XkbReadGetGeometryReply(
  
  #endif
  
@@ -694,9 +694,9 @@
  
  #endif /* _XKBLIBINT_H_ */
 diff -urp -x '*~' -x '*.orig' src/xlibi18n/ICWrap.c src/xlibi18n/ICWrap.c
---- src/xlibi18n/ICWrap.c	2009-01-28 21:09:42.000000000 -0800
-+++ src/xlibi18n/ICWrap.c	2009-04-08 00:18:26.182607000 -0700
-@@ -73,6 +73,12 @@ from The Open Group.
+--- src/xlibi18n/ICWrap.c	2010-09-21 18:25:24.000000000 -0700
++++ src/xlibi18n/ICWrap.c	2010-11-21 18:47:55.562971854 -0800
+@@ -67,6 +67,12 @@ from The Open Group.
  #include "Xlibint.h"
  #include "Xlcint.h"
  
@@ -709,7 +709,7 @@
  static int
  _XIMNestedListToNestedList(
      XIMArg *nlist,   /* This is the new list */
-@@ -403,9 +409,23 @@ int
+@@ -397,9 +403,23 @@ int
  XmbLookupString(XIC ic, XKeyEvent *ev, char *buffer, int nbytes,
  		KeySym *keysym, Status *status)
  {
@@ -736,7 +736,7 @@
      return XLookupNone;
  }
  
-@@ -413,9 +433,23 @@ int
+@@ -407,9 +427,23 @@ int
  XwcLookupString(XIC ic, XKeyEvent *ev, wchar_t *buffer, int nchars,
  		KeySym *keysym, Status *status)
  {
@@ -763,7 +763,7 @@
      return XLookupNone;
  }
  
-@@ -424,12 +458,25 @@ Xutf8LookupString(XIC ic, XKeyEvent *ev,
+@@ -418,12 +452,25 @@ Xutf8LookupString(XIC ic, XKeyEvent *ev,
  		  KeySym *keysym, Status *status)
  {
      if (ic->core.im) {
--- a/open-src/util/util-macros/Makefile	Fri Jan 14 16:51:51 2011 -0800
+++ b/open-src/util/util-macros/Makefile	Tue Jan 18 11:32:17 2011 -0800
@@ -1,6 +1,6 @@
 ###############################################################################
 #
-# Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the "Software"),
@@ -31,11 +31,11 @@
 MODULE_PKGNAME_SET=yes
 
 # Version number (used in path names)
-MODULE_VERSION=1.10.0
+MODULE_VERSION=1.11.0
 
 # Checksums for upstream tarball
-TARBALL_MD5  = 533b86bfdafadbde12c654e2f0144679
-TARBALL_SHA1 = 01bd26de7f76907ad502b430a5d18f64a896dc81
+TARBALL_MD5  = 22d5cdff672450cb6902e0d68c200dcb
+TARBALL_SHA1 = 646188eeca4fa319d95aba7a271149bcbf9ee49e
 
 # Patches to apply to source after unpacking, in order
 SOURCE_PATCHES=	
--- a/pkg/manifests/x11-library-libx11.mf	Fri Jan 14 16:51:51 2011 -0800
+++ b/pkg/manifests/x11-library-libx11.mf	Tue Jan 18 11:32:17 2011 -0800
@@ -1,4 +1,4 @@
-# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the "Software"),
@@ -102,6 +102,17 @@
 dir path=usr/share/X11/locale/zh_TW
 dir path=usr/share/X11/locale/zh_TW.UTF-8
 dir path=usr/share/X11/locale/zh_TW.big5
+dir path=usr/share/doc
+dir path=usr/share/doc/libX11
+dir path=usr/share/doc/libX11/Compose
+dir path=usr/share/doc/libX11/specs
+dir path=usr/share/doc/libX11/specs/XIM
+dir path=usr/share/doc/libX11/specs/XKB
+dir path=usr/share/doc/libX11/specs/i18n
+dir path=usr/share/doc/libX11/specs/i18n/framework
+dir path=usr/share/doc/libX11/specs/i18n/localedb
+dir path=usr/share/doc/libX11/specs/i18n/trans
+dir path=usr/share/doc/libX11/specs/libX11
 dir path=usr/share/man
 dir path=usr/share/man/man3x11
 dir path=usr/share/man/man4
@@ -112,8 +123,8 @@
 file path=usr/include/X11/XlcPubI.h
 file path=usr/include/X11/XlcPublic.h
 file path=usr/include/X11/Xlcint.h
+file path=usr/include/X11/Xlib-xcb.h
 file path=usr/include/X11/Xlib.h
-file path=usr/include/X11/Xlib-xcb.h
 file path=usr/include/X11/XlibConf.h
 file path=usr/include/X11/Xlibint.h
 file path=usr/include/X11/Xlocale.h
@@ -123,11 +134,11 @@
 file path=usr/include/X11/Xvarargs.h
 file path=usr/include/X11/cursorfont.h
 file path=usr/include/X11/extensions/XInteractive.h
+file path=usr/lib/$(ARCH64)/libX11-xcb.so.1
 file path=usr/lib/$(ARCH64)/libX11.so.4
 file path=usr/lib/$(ARCH64)/llib-lX11.ln
-file path=usr/lib/$(ARCH64)/libX11-xcb.so.1
+file path=usr/lib/$(ARCH64)/pkgconfig/x11-xcb.pc
 file path=usr/lib/$(ARCH64)/pkgconfig/x11.pc
-file path=usr/lib/$(ARCH64)/pkgconfig/x11-xcb.pc
 file path=usr/lib/X11/Xcms.txt
 file path=usr/lib/X11/locale/$(ARCH64)/common/ximcp.so.2
 file path=usr/lib/X11/locale/$(ARCH64)/common/xlcDef.so.2
@@ -143,13 +154,12 @@
 file path=usr/lib/X11/locale/common/xlibi18n.so.2
 file path=usr/lib/X11/locale/common/xlocale.so.2
 file path=usr/lib/X11/locale/common/xomGeneric.so.2
+file path=usr/lib/libX11-xcb.so.1
 file path=usr/lib/libX11.so.4
 file path=usr/lib/llib-lX11.ln
-file path=usr/lib/libX11-xcb.so.1
+file path=usr/lib/pkgconfig/x11-xcb.pc
 file path=usr/lib/pkgconfig/x11.pc
-file path=usr/lib/pkgconfig/x11-xcb.pc
 file path=usr/share/X11/XErrorDB
-file path=usr/share/X11/XKeysymDB
 file path=usr/share/X11/locale/C/Compose
 file path=usr/share/X11/locale/C/XI18N_OBJS
 file path=usr/share/X11/locale/C/XLC_LOCALE
@@ -333,6 +343,87 @@
 file path=usr/share/X11/locale/zh_TW/Compose
 file path=usr/share/X11/locale/zh_TW/XI18N_OBJS
 file path=usr/share/X11/locale/zh_TW/XLC_LOCALE
+file path=usr/share/doc/libX11/specs/XIM/dynamicflow.svg
+file path=usr/share/doc/libX11/specs/XIM/dynamicflowsampleseq.svg
+file path=usr/share/doc/libX11/specs/XIM/eventflow.svg
+file path=usr/share/doc/libX11/specs/XIM/sampleprotocolflow1.svg
+file path=usr/share/doc/libX11/specs/XIM/sampleprotocolflow2.svg
+file path=usr/share/doc/libX11/specs/XIM/staticflow.svg
+file path=usr/share/doc/libX11/specs/XIM/staticflowsampleseq.svg
+file path=usr/share/doc/libX11/specs/XIM/xim.xml
+file path=usr/share/doc/libX11/specs/XKB/XKBlib-1.svg
+file path=usr/share/doc/libX11/specs/XKB/XKBlib-10.svg
+file path=usr/share/doc/libX11/specs/XKB/XKBlib-11.svg
+file path=usr/share/doc/libX11/specs/XKB/XKBlib-12.svg
+file path=usr/share/doc/libX11/specs/XKB/XKBlib-13.svg
+file path=usr/share/doc/libX11/specs/XKB/XKBlib-14.svg
+file path=usr/share/doc/libX11/specs/XKB/XKBlib-15.svg
+file path=usr/share/doc/libX11/specs/XKB/XKBlib-16.svg
+file path=usr/share/doc/libX11/specs/XKB/XKBlib-17.svg
+file path=usr/share/doc/libX11/specs/XKB/XKBlib-18.svg
+file path=usr/share/doc/libX11/specs/XKB/XKBlib-19.svg
+file path=usr/share/doc/libX11/specs/XKB/XKBlib-2.svg
+file path=usr/share/doc/libX11/specs/XKB/XKBlib-20.svg
+file path=usr/share/doc/libX11/specs/XKB/XKBlib-21.svg
+file path=usr/share/doc/libX11/specs/XKB/XKBlib-3.svg
+file path=usr/share/doc/libX11/specs/XKB/XKBlib-4.svg
+file path=usr/share/doc/libX11/specs/XKB/XKBlib-5.svg
+file path=usr/share/doc/libX11/specs/XKB/XKBlib-6.svg
+file path=usr/share/doc/libX11/specs/XKB/XKBlib-7.svg
+file path=usr/share/doc/libX11/specs/XKB/XKBlib-8.svg
+file path=usr/share/doc/libX11/specs/XKB/XKBlib-9.svg
+file path=usr/share/doc/libX11/specs/XKB/acknowledgement.xml
+file path=usr/share/doc/libX11/specs/XKB/ch01.xml
+file path=usr/share/doc/libX11/specs/XKB/ch02.xml
+file path=usr/share/doc/libX11/specs/XKB/ch03.xml
+file path=usr/share/doc/libX11/specs/XKB/ch04.xml
+file path=usr/share/doc/libX11/specs/XKB/ch05.xml
+file path=usr/share/doc/libX11/specs/XKB/ch06.xml
+file path=usr/share/doc/libX11/specs/XKB/ch07.xml
+file path=usr/share/doc/libX11/specs/XKB/ch08.xml
+file path=usr/share/doc/libX11/specs/XKB/ch09.xml
+file path=usr/share/doc/libX11/specs/XKB/ch10.xml
+file path=usr/share/doc/libX11/specs/XKB/ch11.xml
+file path=usr/share/doc/libX11/specs/XKB/ch12.xml
+file path=usr/share/doc/libX11/specs/XKB/ch13.xml
+file path=usr/share/doc/libX11/specs/XKB/ch14.xml
+file path=usr/share/doc/libX11/specs/XKB/ch15.xml
+file path=usr/share/doc/libX11/specs/XKB/ch16.xml
+file path=usr/share/doc/libX11/specs/XKB/ch17.xml
+file path=usr/share/doc/libX11/specs/XKB/ch18.xml
+file path=usr/share/doc/libX11/specs/XKB/ch19.xml
+file path=usr/share/doc/libX11/specs/XKB/ch20.xml
+file path=usr/share/doc/libX11/specs/XKB/ch21.xml
+file path=usr/share/doc/libX11/specs/XKB/ch22.xml
+file path=usr/share/doc/libX11/specs/XKB/glossary.xml
+file path=usr/share/doc/libX11/specs/XKB/xkblib.xml
+file path=usr/share/doc/libX11/specs/i18n/framework/framework.svg
+file path=usr/share/doc/libX11/specs/i18n/framework/framework.xml
+file path=usr/share/doc/libX11/specs/i18n/localedb/localedb.xml
+file path=usr/share/doc/libX11/specs/i18n/trans/trans.xml
+file path=usr/share/doc/libX11/specs/libX11/AppA.xml
+file path=usr/share/doc/libX11/specs/libX11/AppB.xml
+file path=usr/share/doc/libX11/specs/libX11/AppC.xml
+file path=usr/share/doc/libX11/specs/libX11/AppD.xml
+file path=usr/share/doc/libX11/specs/libX11/CH01.xml
+file path=usr/share/doc/libX11/specs/libX11/CH02.xml
+file path=usr/share/doc/libX11/specs/libX11/CH03.xml
+file path=usr/share/doc/libX11/specs/libX11/CH04.xml
+file path=usr/share/doc/libX11/specs/libX11/CH05.xml
+file path=usr/share/doc/libX11/specs/libX11/CH06.xml
+file path=usr/share/doc/libX11/specs/libX11/CH07.xml
+file path=usr/share/doc/libX11/specs/libX11/CH08.xml
+file path=usr/share/doc/libX11/specs/libX11/CH09.xml
+file path=usr/share/doc/libX11/specs/libX11/CH10.xml
+file path=usr/share/doc/libX11/specs/libX11/CH11.xml
+file path=usr/share/doc/libX11/specs/libX11/CH12.xml
+file path=usr/share/doc/libX11/specs/libX11/CH13.xml
+file path=usr/share/doc/libX11/specs/libX11/CH14.xml
+file path=usr/share/doc/libX11/specs/libX11/CH15.xml
+file path=usr/share/doc/libX11/specs/libX11/CH16.xml
+file path=usr/share/doc/libX11/specs/libX11/credits.xml
+file path=usr/share/doc/libX11/specs/libX11/glossary.xml
+file path=usr/share/doc/libX11/specs/libX11/libX11.xml
 file path=usr/share/man/man3x11/AllPlanes.3x11
 file path=usr/share/man/man3x11/BitmapBitOrder.3x11
 file path=usr/share/man/man3x11/BitmapPad.3x11
@@ -449,6 +540,7 @@
 file path=usr/share/man/man3x11/XCloseOM.3x11
 file path=usr/share/man/man3x11/XColor.3x11
 file path=usr/share/man/man3x11/XColormapEvent.3x11
+file path=usr/share/man/man3x11/XCompose.3x11
 file path=usr/share/man/man3x11/XConfigureEvent.3x11
 file path=usr/share/man/man3x11/XConfigureRequestEvent.3x11
 file path=usr/share/man/man3x11/XConfigureWindow.3x11
@@ -1167,6 +1259,7 @@
 link path=usr/X11/lib/libX11.so.5 target=../../lib/libX11.so.5
 link path=usr/lib/$(ARCH64)/libX.so target=libX11.so.4
 link path=usr/lib/$(ARCH64)/libX.so.4 target=libX11.so.4
+link path=usr/lib/$(ARCH64)/libX11-xcb.so target=libX11-xcb.so.1
 link path=usr/lib/$(ARCH64)/libX11.so target=libX11.so.4
 link path=usr/lib/$(ARCH64)/libX11.so.5 target=libX11.so.4
 link path=usr/lib/X11/locale/$(ARCH64)/common/ximcp.so target=ximcp.so.2
@@ -1188,9 +1281,8 @@
 link path=usr/lib/X11/locale/common/xomGeneric.so target=xomGeneric.so.2
 link path=usr/lib/libX.so target=libX11.so.4
 link path=usr/lib/libX.so.4 target=libX11.so.4
+link path=usr/lib/libX11-xcb.so target=libX11-xcb.so.1
 link path=usr/lib/libX11.so target=libX11.so.4
-link path=usr/lib/$(ARCH64)/libX11-xcb.so target=libX11-xcb.so.1
-link path=usr/lib/libX11-xcb.so target=libX11-xcb.so.1
 # Additional link required by SVID ABI (see PSARC/1997/141)
 link path=usr/lib/libX11.so.5 target=libX11.so.4
 depend fmri=pkg:/x11/header/x11-protocols type=require facet.devel=true