On 04/04/13 11:43, Carsten Haitzler (The Rasterman) wrote: > On Thu, 04 Apr 2013 08:39:24 +0100 Tom Hacohen <tom.haco...@samsung.com> said: > >> On 04/04/13 00:52, Carsten Haitzler (The Rasterman) wrote: >>> On Wed, 03 Apr 2013 17:26:42 +0100 Tom Hacohen <tom.haco...@samsung.com> >>> said: >>> >>>> On 28/03/13 10:49, Carsten Haitzler (The Rasterman) wrote: >>>>> On Thu, 28 Mar 2013 09:56:40 +0000 Michael Blumenkrantz >>>>> <michael.blumenkra...@gmail.com> said: >>>>> >>>>> thats cool. i just had to be grumpy about not having a bug report that >>>>> told me what to look at instantly. i have found another bug. single >>>>> letter words dont find word end markers. >>>> >>>> I just checked it, and it works for me: >>>> #include <stdlib.h> >>>> #include <wchar.h> >>>> #include <stdio.h> >>>> #include <wordbreak.h> >>>> >>>> int main() >>>> { >>>> { >>>> const char *lang = ""; >>>> wchar_t *text = L"This is a test"; >>>> size_t len = wcslen(text); >>>> char *breaks = malloc(len); >>>> size_t i; >>>> >>>> printf("%ls\n", text); >>>> >>>> set_wordbreaks_utf32((const utf32_t *) text, len, lang, breaks); >>>> for (i = 0 ; i < len ; i++) >>>> printf("%d", (int) breaks[i]); >>>> printf("\n"); >>>> } >>>> return 0; >>>> } >>>> >>>> The output is: >>>> This is a test >>>> 11100100001110 >>>> >>>> 1s meaning no break, 0s meaning break here. It does break correctly >>>> around the "a". Could you elaborate more on the bug you were seeing? >>> >>> no NON-breaks around "a". you can't tell that there is a word there at all. >>> it may as well be " " (all spaces). :) >>> >>>> Cheers, >>>> Tom. >>>> >>> >>> >> >> Yeah, well, you know it using other means. Unfortunately it's beyond the >> scope of the word breaking algorithm... There are no word breaks there, >> thus the algorithm produces none. You probably need to just skip whites >> in your code, not only rely on the wordbreak data when "merging" the whites. > > and that is a problem as the word next/prev stuff relies on this.. and what > are > "whites" then? (from the word breaking point of view)... eg ' is NOT white. > ( is. etc.... > >
Well, word breaking has nothing to do with whites (well, they happen to be in a class that separates words, but that's it). I wouldn't change the word next/prev functions themselves, I'd just change the way they are used in edje/elm. I.e, something like: If (is_white(cur_char)) { skip_whites; skip_word; } else { skip_word; skip_whites; } ------------------------------------------------------------------------------ Minimize network downtime and maximize team effectiveness. Reduce network management and security costs.Learn how to hire the most talented Cisco Certified professionals. Visit the Employer Resources Portal http://www.cisco.com/web/learning/employer_resources/index.html _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel