[Webkit-unassigned] [Bug 29103] typeAheadFind in select element is case-sensitive for Cyrillic and Greek
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Wed Oct 21 02:16:52 PDT 2009
https://bugs.webkit.org/show_bug.cgi?id=29103
Hironori Bono <hbono at chromium.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #41558| |review?
Flag| |
Attachment #41084|0 |1
is obsolete| |
--- Comment #9 from Hironori Bono <hbono at chromium.org> 2009-10-21 02:16:51 PDT ---
Created an attachment (id=41558)
--> (https://bugs.webkit.org/attachment.cgi?id=41558)
The second quick fix for SelectElement::typeAheadFind()
Thank you for your review and comments.
> > + WebCore::String prefix_lower(prefix.lower());
>
> There's no need for an explicit WebCore prefix here -- this code is already
> inside the WebCore namespace. We don't use underscores in variable names in
> WebKit code.
Thank you for noticing this. I have removed the "String" scope.
> > + // String::startsWith() doesn't convert non-ASCII characters to lowercase since converting a non-ASCII
> > + // string to lowercase is slow.
>
> I think I steered you wrong here. It's strange that String::startsWith is not
> the same as other functions in StringImpl in this respect and arguable it *is*
> a bug in startsWith.
>
> On the other hand, it seems safer to work around String::startsWith by calling
> lower() here than to change String::startsWith, so I think we can live with
> this as a fix to this bug. We can always revisit later if we fix startsWith.
> And this fix avoids the need for you to stdy all the call sites of startsWith.
>
> Unfortunately, the comment makes it sound like this String::startsWith behavior
> is intentional and a good thing, and I do not think that is true. Really we're
> working around a bug in String::startsWith here, and someone should fix that
> bug later. Or alternatively we should change the design of the other String
> member functions. For many we need ASCII-only versions, not full-Unicode
> versions.
Thank you for noticing this.
I totally misunderstood the comment #4.
I have updated this comment to "to be removed when startWith() supports
non-ascii characters".
> > + // So, we convert each option string (which may contain non-ASCII characters) to lowercase before calling
> > + // String::startsWith().
> > String text = optionElement->textIndentedToRespectGroupLabel();
> > - if (stripLeadingWhiteSpace(text).startsWith(prefix, false)) {
> > + if (stripLeadingWhiteSpace(text).lower().startsWith(prefix_lower)) {
>
> The correct function to use in both cases above is actually String::foldCase(),
> not String::lower().
Thank you. I forgot String::foldCase() and agree it is better than
String::lower().
I changed String::lower() with String::foldCase().
Regards,
Hironori Bono
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list