https://bugs.documentfoundation.org/show_bug.cgi?id=172947

--- Comment #3 from Ótzï fón GlüϷgor <[email protected]> ---
### Root cause

This is not a missing word in the dictionary. Every released hunspell version
up to and
including v1.7.3 classifies U+1E9E as a non-letter with no case mapping, in
`src/hunspell/utf_info.hxx`:

```
/* 0x00df */ { true,  0x00df, 0x00df },   <- ß
/* 0x1e9e */ { false, 0x1e9e, 0x1e9e },   <- ẞ
```

So the all-caps code path never folds ẞ to ß, and the word is rejected.
`CHECKSHARPS`
does not help because it only looks for the literal sequence `SS`. Since
LibreOffice
tokenizes with ICU rather than letting hunspell split the input, the whole
token
reaches hunspell and the entire word is underlined — which matches the observed
behaviour exactly.

I verified this outside LibreOffice: hunspell 1.7.2 with the unmodified German
dictionary produces precisely the suggestion list seen in the dialog:

```
$ echo 'STRAẞE' | hunspell -i UTF-8 -d de_DE -a
& STRAẞE 3 0: STRAFE, STRASSE, STRAßE
```

Hunspell master fixed the table entry in commits `5aef308` / `4ad885b`
(2026-05-05,
side effect of the Unicode 16.0 refresh). Built from master against the same
unmodified
dictionary, all the words above are accepted and the incorrect mixed-case
`Straẞe` is
still rejected. v1.7.3 was tagged 2026-05-04, deliberately one day earlier so
that the
accumulated changes and the Unicode table refresh would not be released
together, so no
release carries the fix — and `download.lst` in core currently pins
`hunspell-1.7.3.tar.gz`.

I raised this upstream as hunspell/hunspell#1139. The regression test and a man
page
clarification were merged as hunspell/hunspell#1142; on the release itself the
maintainer said a new one should come reasonably soon.

### Suggested resolution

1. Update `external/hunspell` once upstream ships the release. Since one is
expected
   soon, waiting for it is probably preferable to cherry-picking the `utf_info`
change
   into the bundled copy. Linux builds using `--with-system-hunspell` will
additionally
   need the distributions to update — Ubuntu 26.04 still ships
   `hunspell 1.7.2+really1.7.2-11` — but the bundled copy governs Windows and
macOS.

2. **Independent second defect, may warrant its own bug:** the German
dictionary
   shipped in the `dictionaries` repository, `de/de_DE_frami.aff` and `.dic`,
is still
   encoded in ISO-8859-1 (`SET ISO8859-1`). U+1E9E cannot be represented in
that
   encoding at all, so even a fixed hunspell fails:

   ```
   $ hunspell -i UTF-8 -d ./de_DE_frami -l   # input: STRAẞE, hunspell built
from master
   error - iconv: UTF-8 -> ISO8859-1
   STRAẞE
   ```

   The upstream igerman98 dictionary is already UTF-8 and works once the
library is
   fixed. Converting `de_DE_frami`, `de_AT_frami` and `de_CH_frami` to UTF-8 is
   therefore required in addition to the hunspell update. Adding ẞ to
`WORDCHARS` and
   `TRY` would round it off.

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to