Subject: Re: bug#30412: 25.3; char-fold-search match for German eszett(ß)

From: Robert Pluim <[email-masked]>
Date: Thu, 26 Nov 2020 15:39:22 +0100

Lars Ingebrigtsen <[email-masked]> writes:

> Scott Otterson <[email-masked]> writes:
>
>> But there is no way to ß
>
> As the Stackexchange user explains:
>
> ---
> The reason why it's absent is because char-fold-table is automatically generated
> from the Unicode list of decomposable characters and Unicode believes that ß
> does not "decompose" into s + s in the same way that á does decompose into a +
> accute accent:
>
> http://www.unicode.org/Public/UNIDATA/UnicodeData.txt
>
> (search for: LATIN SMALL LETTER SHARP S).
> ---
>
> So I don't think we want to diverge from Unicode here?  So I'm closing
> this bug report.  If others think this is something we should do, feel
> free to reopen the bug report.

>From char-fold.el:

(eval-and-compile
  (put 'char-fold-table 'char-table-extra-slots 1)
  (defconst char-fold--default-include
    '((?\" "＂" "“" "”" "”" "„" "⹂" "〞" "‟" "‟" "❞" "❝" "❠" "“" "„" "〝" "〟" "🙷" "🙶" "🙸" "«" "»")
      (?' "❟" "❛" "❜" "‘" "’" "‚" "‛" "‚" "󠀢" "❮" "❯" "‹" "›")
      (?` "❛" "‘" "‛" "󠀢" "❮" "‹")
      (?ß "ss") ;; de
      (?ι "ΐ")  ;; el for (?ΐ "ΐ") decomposition
      (?υ "ΰ")  ;; el for (?ΰ "ΰ") decomposition
      ))

so this should now work. Itʼs also customizable via
'char-fold-include' and 'char-fold-exclude'.

Robert