From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Wed, 14 Mar 2001 11:18:17 +0400 (SAMT) From: Vlad Harchev X-Sender: hvv@localhost.localdomain To: sisyphus@linuxteam.iplabs.ru Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=koi8-r Content-Transfer-Encoding: QUOTED-PRINTABLE Subject: [sisyphus] Re: gdk_selection.c:sanitize_ctext is broken in 1.2.9 (fwd) Sender: sisyphus-admin@linuxteam.iplabs.ru Errors-To: sisyphus-admin@linuxteam.iplabs.ru X-BeenThere: sisyphus@linuxteam.iplabs.ru X-Mailman-Version: 2.0 Precedence: bulk Reply-To: sisyphus@linuxteam.iplabs.ru List-Help: List-Post: List-Subscribe: , List-Id: List-Unsubscribe: , List-Archive: Archived-At: List-Archive: List-Post: Hi,=20 =EE=C1=D7=C5=D2=CE=CF =CE=C1=C4=C5=D6=C4=C1 =C5=D3=D4=D8 =DE=D4=CF =DC=D4= =CF =C2=D5=C4=C5=D4 =C9=D3=D0=D2=C1=D7=CC=C5=CE=CF =D7 1.2.10 (=CB=CF=D4=CF= =D2=D9=CA =D7=D9=CA=C4=C5=D4 =DE=C1=D3=CF=D7 =DE=C5=D2=C5=DA 8). Best regards, -Vlad ---------- Forwarded message ---------- Date: 13 Mar 2001 16:19:47 -0500 From: Owen Taylor Cc: Vlad Harchev , Ivan Pascal To: gtk-devel-list@gnome.org Subject: Re: gdk_selection.c:sanitize_ctext is broken in 1.2.9 User-Agent: Gnus/5.0807 (Gnus v5.8.7) Emacs/20.7 Vlad Harchev writes: > Hi, >=20 > 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.=20 >=20 > Here is a hackish patch that fixes the problem for russian (it's not min= e), > but it has (as Aleksey Novodvorsky , the author of the patc= h,=20 > says) a problem of not filtering out some escape sequences that are > introduced by some very old XFree servers: >=20 > 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 =3D=3D '\n' || c =3D=3D '\t' || c =3D=3D 27 /* ESC */ |= | > (c >=3D 32 && c <=3D 127) || /* GL */ > c =3D=3D 155 /* CONTROL SEQUENCE INTRODUCER */ || > - (c >=3D 160 && c <=3D 255)) /* GR */ > + (c >=3D 160 && c <=3D 255) /* GR */ || > + (c >=3D 128 && c <=3D 150) /* charset length */ || > + c =3D=3D 2 /* end of non-standard encoding sequence */) > { > result[out_length++] =3D 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 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.=20 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. Regards, Owen