Re: unilbrk: Fully implement Unicode rule (LB9)

2024-09-15 Thread Bruno Haible
And this patch makes sure that we apply the same logic also when a line break was seen in the input string. 2024-09-15 Bruno Haible unilbrk: Some more tweaks. * lib/unilbrk/u8-possible-linebreaks.c (u8_possible_linebreaks_loop): Assign to preceding_prop at each loop ro

Re: [PATCH] Add a missing pure attribute

2024-09-15 Thread Paul Eggert
On 2024-09-15 02:25, Bruno Haible wrote: it can happen that you add the attribute in order to placate one GCC version and then another GCC version complains that you should not have added it. Yes, and if memory serves older GCC versions were pretty bad about this, and that caused me

unilbrk: Strengthen tests

2024-09-15 Thread Bruno Haible
This patch adds most test cases from Unicode.org's LineBreakTest.txt to the gnulib tests. I wish I had done this earlier: I would have noticed the several bugs that I fixed yesterday and today much earlier. 2024-09-15 Bruno Haible unilbrk: Strengthen tests. * lib/gen-uni-table

unilbrk: Fix conflicts between rules

2024-09-15 Thread Bruno Haible
The unilbrk implementation does not implement the rules sequentially, but uses a table and as few as possible 'if' conditions in the main code flow, for speed. This has the effect that in some cases, the implementation of a rule with lower priority has side effects on a rule with higher priority.

unilbrk: Enable most cases of Unicode rule (LB29)

2024-09-15 Thread Bruno Haible
This patch enables Unicode rule (LB29). I had previously disabled it because I did not like a particular effect of this rule in a special case. With this patch, only that special case gets exempted. 2024-09-15 Bruno Haible unilbrk: Enable most cases of Unicode rule (LB29). * l

unilbrk: Fully implement Unicode rule (LB9)

2024-09-15 Thread Bruno Haible
Part of the (LB9) rule was not implemented right in the unilbrk modules, namely the requirement "Treat X (CM | ZWJ)* as if it were X." This patch does it, taking care to resolve to not introduce a conflict with rule (LB8a) "Do not break after a zero width joiner." This patch too fixes a couple of

unilbrk: Fix bugs in implementation of Unicode rules (LB15a), (LB15b)

2024-09-15 Thread Bruno Haible
The implementation of the Unicode rules (LB15a), (LB15b) on 2024-01-30 was not correct: It causes several test failures in Unicode.org's LineBreak.txt. This patch fixes it. 2024-09-15 Bruno Haible unilbrk: Fix bugs in implementation of Unicode rules (LB15a), (LB15b). * lib/gen

Re: [PATCH] Add a missing pure attribute

2024-09-15 Thread Bruno Haible
Samuel Tardieu wrote: > Agreed. However since there are more than 50 static functions marked pure in > C files already, and this seems to be the only missed compiler warning in GCC > 14.2, I thought you were favoring the absence of warning. We added these attributes before we realized that - i

Re: [PATCH] Add a missing pure attribute

2024-09-15 Thread Samuel Tardieu
Bruno Haible writes: > No, thanks. This is a 'static' function. It is a waste of time for us > developers to add attributes in order to declare information that GCC > has already found out by itself. Agreed. However since there are more than 50 static functions marked pure in C files already, a