Re: gdk_selection.c:sanitize_ctext is broken in 1.2.9
- From: Vlad Harchev <hvv hippo ru>
- To: Owen Taylor <otaylor redhat com>
- Cc: gtk-devel-list gnome org, Ivan Pascal <pascal info tsu ru>
- Subject: Re: gdk_selection.c:sanitize_ctext is broken in 1.2.9
- Date: Wed, 14 Mar 2001 13:23:44 +0400 (SAMT)
On 13 Mar 2001, Owen Taylor wrote:
>
> Vlad Harchev <hvv hippo ru> writes:
>
> > Hi,
> >
> > Users say that there are problems with russian strings in window titles under
> > XFree-4.0.2 and gtk-1.2.9 (I don't have XF-4.0.2 so I can't describe them) - I
> > was told that it's somehow severely corrupted. I guess same problems will
> > appear for any other non-latin1 locale.
> > The problem is in newly-introduced sanitize_ctext function.
> >
> > Here is a hackish patch that fixes the problem for russian (it's not mine),
> > but it has (as Aleksey Novodvorsky <aen logic ru>, the author of the patch,
> > says) a problem of not filtering out some escape sequences that are
> > introduced by some very old XFree servers:
> >
> > diff -ur gtk+-1.2.9.orig/gdk/gdkselection.c gtk+-1.2.9/gdk/gdkselection.c
> > --- gtk+-1.2.9.orig/gdk/gdkselection.c Tue Feb 20 19:44:22 2001
> > +++ gtk+-1.2.9/gdk/gdkselection.c Sun Mar 4 15:26:05 2001
> > @@ -222,7 +222,9 @@
> > else if (c == '\n' || c == '\t' || c == 27 /* ESC */ ||
> > (c >= 32 && c <= 127) || /* GL */
> > c == 155 /* CONTROL SEQUENCE INTRODUCER */ ||
> > - (c >= 160 && c <= 255)) /* GR */
> > + (c >= 160 && c <= 255) /* GR */ ||
> > + (c >= 128 && c <= 150) /* charset length */ ||
> > + c == 2 /* end of non-standard encoding sequence */)
> > {
> > result[out_length++] = c;
> > }
>
> OK, looking again at the Xlib code and the CTEXT spec, it appears that
> the CTEXT spec was at some point extended to accomodate this (section
> 6) but the initial section that describes what characters are allowed
> was never updated :-(.
>
> Unfortunately, according to the spec, anything is allowed in an
> extended segment, including all of C0 and C1, so probably we need to
> add explicit recognition of extended segments to sanitize_ctext().
>
> Or, since since sanitize_ctext is only a workaround for buggy Xlib
> (like XFree86 3.x, etc), I suppose the patch to add it could just be
> backed out.
>
> > I have been told that complete description of escape sequences supported by
> > XFree is only available in russian though. Ivan Pascal <pascal info tsu ru> is
> > the author of that documentation, and I hope that he will help to explain how
> > to rewrite sanize_ctext in order to be correct.
>
> I almost think that I need to learn Russian because Ivan has produced
> all this great documentation about Xkb and CText and so forth that I
> can't read! ;-)
>
> But actually, the code in Xlib appears to correspond pretty well with
> the CTEXT spec in the X distribution, and Bruno Haible has even
> updated the CTEXT spec a bit recently to make the correspondence
> closer.
>
> > It would be nice if this issue was fixed before 1.2.10 release..
>
> I'll make sure that happens.
Thanks you for this.
I want to add that I just tried gtk+-1.2.9 and found that I can't cut and
paste russian to/from any gtk widget due to brokeness of sanitize_ctext! That
hackish patch fixes the problem. So the problem should be definitely fixed!
Also small addition: by the "old XFree servers" ANY XFree with version <=
4.0.1 was ment in my mail.
Thanks..
> Regards,
> Owen
>
Best regards,
-Vlad
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]