* [sisyphus] Re: gdk_selection.c:sanitize_ctext is broken in 1.2.9 (fwd)
@ 2001-03-16 9:36 Vlad Harchev
2001-03-16 18:56 ` Aleksey Novodvorsky
0 siblings, 1 reply; 4+ messages in thread
From: Vlad Harchev @ 2001-03-16 9:36 UTC (permalink / raw)
To: sisyphus
Добрый день!
Алексей, как Вы оцениваете этот патч? Стоит ли Овену его коммитить или могут
быть какие-нить проблемы?
Best regards,
-Vlad
---------- Forwarded message ----------
Date: 15 Mar 2001 14:13:06 -0500
From: Owen Taylor <otaylor@redhat.com>
Cc: hvv@hippo.ru
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 <hvv@hippo.ru> writes:
> On 13 Mar 2001, Owen Taylor wrote:
> > 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().
[...]
> 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!
Patch appended fixes cut-and-paste of Russian for me.
> Also small addition: by the "old XFree servers" ANY XFree with version <=
> 4.0.1 was ment in my mail.
I dont' understand what you meant by this. Are there problems that occcur
with old XFree86 libraries (server is irrelevant) that don't occur with
current XFree86 libraries?
Owen
Index: gdkselection.c
===================================================================
RCS file: /cvs/gnome/gtk+/gdk/Attic/gdkselection.c,v
retrieving revision 1.6.2.6
diff -u -r1.6.2.6 gdkselection.c
--- gdkselection.c 2001/02/22 20:38:12 1.6.2.6
+++ gdkselection.c 2001/03/15 19:09:51
@@ -208,16 +208,40 @@
gchar *result = g_malloc (*length + 1);
gint out_length = 0;
gint i;
+ const guchar *ustr = (const guchar *)str;
for (i=0; i < *length; i++)
{
- guchar c = ((guchar *)str)[i];
+ guchar c = ustr[i];
if (c == '\r')
{
result[out_length++] = '\n';
- if (i + 1 < *length && str[i + 1] == '\n')
+ if (i + 1 < *length && ustr[i + 1] == '\n')
i++;
+ }
+ else if (c == 27 /* ESC */)
+ {
+ /* Check for "extended segments, which can contain arbitrary
+ * octets. See CTEXT spec, section 6.
+ */
+
+ if (i + 5 < *length &&
+ ustr[i + 1] == '%' &&
+ ustr[i + 2] == '/' &&
+ (ustr[i + 3] >= 48 && ustr[i + 3] <= 52) &&
+ ustr[i + 4] >= 128 &&
+ ustr[i + 5] >= 128)
+ {
+ int extra_len = 6 + (ustr[i + 4] - 128) * 128 + ustr[i + 5] - 128;
+ extra_len = MAX (extra_len, *length - i);
+
+ memcpy (result + out_length, ustr + i, extra_len);
+ out_length += extra_len;
+ i += extra_len - 1;
+ }
+ else
+ result[out_length++] = c;
}
else if (c == '\n' || c == '\t' || c == 27 /* ESC */ ||
(c >= 32 && c <= 127) || /* GL */
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [sisyphus] Re: gdk_selection.c:sanitize_ctext is broken in 1.2.9 (fwd)
2001-03-16 9:36 [sisyphus] Re: gdk_selection.c:sanitize_ctext is broken in 1.2.9 (fwd) Vlad Harchev
@ 2001-03-16 18:56 ` Aleksey Novodvorsky
2001-03-16 11:10 ` Vlad Harchev
0 siblings, 1 reply; 4+ messages in thread
From: Aleksey Novodvorsky @ 2001-03-16 18:56 UTC (permalink / raw)
To: sisyphus
On Fri, 16 Mar 2001 13:36:05 +0400 (SAMT)
Vlad Harchev <hvv@hippo.ru> wrote:
>
> Добрый день!
>
> Алексей, как Вы оцениваете этот патч? Стоит ли Овену его
> коммитить или могут
> быть какие-нить проблемы?
>
>
> > Also small addition: by the "old XFree servers" ANY
> XFree with version <=
> > 4.0.1 was ment in my mail.
>
> I dont' understand what you meant by this. Are there
> problems that occcur
> with old XFree86 libraries (server is irrelevant) that
> don't occur with
> current XFree86 libraries?
В версиях XFree86 <= 4.0.2 esc-последоватьельнсти для
нестандратных кодировок содержались явно и были _неверными_.
Именно потому я не включил в свой патч алгоритм вычисления
пресловутого \200+<charset name length>+3 , а указал
диапазон, что нехорошо, но действительно исправляет
ситуацию.
Прилагаемый же патч полностью корректен, но не исправит
положения для старых XFree в силу вышесказанного.
Rgrds, AEN
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [sisyphus] Re: gdk_selection.c:sanitize_ctext is broken in 1.2.9 (fwd)
2001-03-16 18:56 ` Aleksey Novodvorsky
@ 2001-03-16 11:10 ` Vlad Harchev
2001-03-16 20:17 ` Aleksey Novodvorsky
0 siblings, 1 reply; 4+ messages in thread
From: Vlad Harchev @ 2001-03-16 11:10 UTC (permalink / raw)
To: sisyphus
On Fri, 16 Mar 2001, Aleksey Novodvorsky wrote:
> On Fri, 16 Mar 2001 13:36:05 +0400 (SAMT)
> Vlad Harchev <hvv@hippo.ru> wrote:
>
> >
> > Добрый день!
> >
> > Алексей, как Вы оцениваете этот патч? Стоит ли Овену его
> > коммитить или могут
> > быть какие-нить проблемы?
> >
>
> >
> > > Also small addition: by the "old XFree servers" ANY
> > XFree with version <=
> > > 4.0.1 was ment in my mail.
> >
> > I dont' understand what you meant by this. Are there
> > problems that occcur
> > with old XFree86 libraries (server is irrelevant) that
> > don't occur with
> > current XFree86 libraries?
>
> В версиях XFree86 <= 4.0.2 esc-последоватьельнсти для
> нестандратных кодировок содержались явно и были _неверными_.
> Именно потому я не включил в свой патч алгоритм вычисления
> пресловутого \200+<charset name length>+3 , а указал
> диапазон, что нехорошо, но действительно исправляет
> ситуацию.
> Прилагаемый же патч полностью корректен, но не исправит
> положения для старых XFree в силу вышесказанного.
Так, а на старых XFree проблемы будут проявляться и для тоже русского (или
каких-либо экзотических кодировок русского) или только для каких-либо CJK в
редких случаях?
Я просто сейчас тестировал этот патч на XLib от XFree-3.3.6 и никаких проблем
не увидел (достаточно подробно тестировал cut&paste - а из заголовков окон с
русским было только одно - с ним все ОК). Все тестировал при многочисленных
комбинациях вариантов..
Если Вы не против, я сошлюсь на Вас в письме Овену и скажу, что за
дополнительной информацией обращаться к Вам.
> Rgrds, AEN
Best regards,
-Vlad
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [sisyphus] Re: gdk_selection.c:sanitize_ctext is broken in 1.2.9 (fwd)
2001-03-16 11:10 ` Vlad Harchev
@ 2001-03-16 20:17 ` Aleksey Novodvorsky
0 siblings, 0 replies; 4+ messages in thread
From: Aleksey Novodvorsky @ 2001-03-16 20:17 UTC (permalink / raw)
To: sisyphus
On Fri, 16 Mar 2001 15:10:05 +0400 (SAMT)
Vlad Harchev <hvv@hippo.ru> wrote:
> On Fri, 16 Mar 2001, Aleksey Novodvorsky wrote:
>
> Так, а на старых XFree проблемы будут проявляться и для
> тоже русского (или
> каких-либо экзотических кодировок русского) или только для
> каких-либо CJK в
> редких случаях?
> Я просто сейчас тестировал этот патч на XLib от
> XFree-3.3.6 и никаких проблем
> не увидел (достаточно подробно тестировал cut&paste - а из
> заголовков окон с
> русским было только одно - с ним все ОК). Все тестировал
> при многочисленных
> комбинациях вариантов..
> Если Вы не против, я сошлюсь на Вас в письме Овену и
> скажу, что за
> дополнительной информацией обращаться к Вам.
Нет, сейчас я не могу вступать в такую переписку.
У меня сейчас нет под рукой 3.3.6, но там были неправильные
описания esc-sequence.
Впрочем, я не вижу смысла в поддержке старых ошибок, -- если
они есть, то исправляются ситуационными патчами.
Rgrds, AEN
>
> > Rgrds, AEN
>
> Best regards,
> -Vlad
>
>
> _______________________________________________
> Sisyphus mailing list
> Sisyphus@linuxteam.iplabs.ru
> http://altlinux.ru/mailman/listinfo/sisyphus
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2001-03-16 20:17 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-03-16 9:36 [sisyphus] Re: gdk_selection.c:sanitize_ctext is broken in 1.2.9 (fwd) Vlad Harchev
2001-03-16 18:56 ` Aleksey Novodvorsky
2001-03-16 11:10 ` Vlad Harchev
2001-03-16 20:17 ` Aleksey Novodvorsky
ALT Linux Sisyphus discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
public-inbox-index sisyphus
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.sisyphus
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git