On Tue, 3 Aug 2010, Michael Jennings wrote:

> If answering back with a string doesn't break clients requesting a
> UTF8_STRING, I'm inclined to go that route.
>
> I don't have a problem, per se, with answering in UTF-8, but I'm not
> sure if the new UTF-8 Xlib calls are portable to non-Linux/non-Xorg
> platforms (Solaris?  HP-UX?  AIX?).  I'd feel a lot more comfortable
> going down that road if someone who knows those other OS's can
> comment.  Does anyone know if XA_UTF8_STRING and XUTF8StringStyle are
> present on any of those platforms?
>
> Paolo, would you mind updating your patch to force XA_STRING if
> XA_UTF8_STRING is not defined, and do the UTF-8 conversion if it is?
>
> Other opinions?
>
> BTW, the UTF-8-enabled Eterm is in the Eterm-0.10 branch in SVN if
> anyone wants to help test.
>
> Thanks for the patch!
> Michael



You are right about the portability..

I've seen, in fact, a super-old Xmu/Atoms.h
[ $XConsortium: Atoms.h,v 1.3 89/12/08 12:03:56 rws Exp $ ]
without XA_UTF8_STRING, and it has XA_COMPOUND_TEXT XA_TEXT XA_STRING.
But, in this case, there is not even XmbTextListToTextProperty in 
Xutil.h, or elsewhere..
So, yes, would be good to hear someone about other OS's..


Here is the updated patch:



--- src/screen.c        2009-10-25 22:07:43.000000000 +0100
+++ ../../Eterm/src/screen.c    2010-08-04 15:30:28.000000000 +0200
@@ -3360,8 +3360,28 @@
              }
          }
  #endif
+#if defined(MULTI_CHARSET) && defined(XA_UTF8_STRING)
+    } else if (rq->target == XA_UTF8_STRING(Xdisplay)) {
+        XTextProperty xtextp;
+        char *l[1];
+        *l = selection.text;
+        xtextp.value = NULL;
+        xtextp.nitems = 0;
+        if (XmbTextListToTextProperty(Xdisplay, l, 1, XUTF8StringStyle,
+               &xtextp) == Success) {
+            if (xtextp.nitems > 0 && xtextp.value != NULL) {
+            XChangeProperty(Xdisplay, rq->requestor, rq->property,
+            rq->target, 8, PropModeReplace, xtextp.value, xtextp.nitems);
+                ev.xselection.property = rq->property;
+            }
+        }
+#endif
      } else if (rq->target == XA_STRING) {
          XChangeProperty(Xdisplay, rq->requestor, rq->property, rq->target, 8,
                 PropModeReplace, selection.text, selection.len);
+        ev.xselection.property = rq->property;
+    } else {
+        XChangeProperty(Xdisplay, rq->requestor, rq->property, XA_STRING, 8,
+               PropModeReplace, selection.text, selection.len);
          ev.xselection.property = rq->property;
      }
      XSendEvent(Xdisplay, rq->requestor, False, 0, &ev);



------------------------------------------------------------------------------
The Palm PDK Hot Apps Program offers developers who use the
Plug-In Development Kit to bring their C/C++ apps to Palm for a share
of $1 Million in cash or HP Products. Visit us here for more details:
http://p.sf.net/sfu/dev2dev-palm
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to