Hi Sriram, Thanks for the patch! In order for this patch to be committed to WebKit, please open a bug on <http://bugs.webkit.org/>, attach the patch to it, and set the "review?" flag to make sure it's seen.
Also, please review the contributor guidelines before reposting the patch: http://webkit.org/coding/contributing.html Specifically, please note that your patch will need a ChangeLog entry. Also, we don't commit patches with fprintf() statements. Please use the appropriate LOG() macro instead. (You may wish to consider using the ASSERT_WITH_MESSAGE() macro as well.) Thanks again! Dave Sriram Neelakandan <[EMAIL PROTECTED]> wrote: > Hi folks, > > I had a HTMLInput issue with gtk-webkit : input text box wont work at all > on HTML pages at all. > > Interestingly, If i add a JavaScript handler, then the key press is > processed and captured by the JS, but not by the HTMLInputElement. > > I debugged the issue in HTMLInputElement::constrainValue calls > numCharactersInGraphemeClusters(), which in turn creates a > TextBreakIterator. > > The TextBreakIterator would not create for me .. and always return NULL ! > > The issue was finally with icu's ubrk_open failing to initialize ! > > The reason was this : U_FILE_ACCESS_ERROR = 4, /**< The > requested file cannot be found */ > > ICU was unable to find its data file , in my case *icudt36l.dat* > > I copied the file to my target, export ICU_DATA and things just started > working ! great ! > > Thanks to Mike ([EMAIL PROTECTED]) for pointing me in the right direction > ! > > May be this is obvious for people familiar with ICU, but a dumbo like me, > took 2 weeks to trace myself through the webkit code and to get the > openStatus ERROR ! > > So, why not add a printf atleast (if not ASSERT) in debug mode, and indicate > that the characterBreakIterator failed to initalize. This will save some > else' 2 weeks and frustration as well. > > Kindly accept the patch > > Here is a patch for file : > > WebCore/platform/text/TextBreakIteratorICU.cpp > > *************** > *** 25,30 **** > --- 25,34 ---- > #include "TextBreakIteratorInternalICU.h" > > #include <unicode/ubrk.h> > + #include <wtf/Assertions.h> > + #include <stdio.h> > + > + using namespace std; > > namespace WebCore { > > *************** static TextBreakIterator* setUpIterator( > *** 34,46 **** > if (!string) > return 0; > > if (!createdIterator) { > - UErrorCode openStatus = U_ZERO_ERROR; > iterator = static_cast<TextBreakIterator*>(ubrk_open(type, > currentTextBreakLocaleID(), 0, 0, &openStatus)); > createdIterator = true; > } > if (!iterator) > return 0; > > UErrorCode setTextStatus = U_ZERO_ERROR; > ubrk_setText(iterator, string, length, &setTextStatus); > --- 38,54 ---- > if (!string) > return 0; > > + UErrorCode openStatus = U_ZERO_ERROR; > if (!createdIterator) { > iterator = static_cast<TextBreakIterator*>(ubrk_open(type, > currentTextBreakLocaleID(), 0, 0, &openStatus)); > createdIterator = true; > } > if (!iterator) > + { > + fprintf(stderr,"Could not create iterator instance @ %s:%d, > ICU_ERROR=%d\n",__FILE__,__LINE__,openStatus); > + ASSERT(iterator); > return 0; > + } > > UErrorCode setTextStatus = U_ZERO_ERROR; > ubrk_setText(iterator, string, length, &setTextStatus); > > > > > > > > -- > Sriram Neelakandan > Author - Embedded Linux System Design And Development ( > http://tinyurl.com/2doosu) > > _______________________________________________ > webkit-dev mailing list > webkit-dev@lists.webkit.org > http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev > _______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev