GNU bug report logs -
#74155
upcasing strings doesn’t respect standard-case-table
Previous Next
Reported by: "Thomas Voss" <mail <at> thomasvoss.com>
Date: Fri, 1 Nov 2024 12:34:01 UTC
Severity: normal
Tags: notabug
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Sat, 16 Nov 2024 15:42:48 +0200
with message-id <86ed3bguqv.fsf <at> gnu.org>
and subject line Re: bug#74155: upcasing strings doesn’t respect standard-case-table
has caused the debbugs.gnu.org bug report #74155,
regarding upcasing strings doesn’t respect standard-case-table
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
74155: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=74155
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Hi all, quick bug report.
As of 2017 (I believe), the capital eszett (ẞ) was adopted into the
German alphabet as the uppercase variable of ß which was previously (and
which still can be) uppercased to ‘SS’. Since I prefer to use the newer
ẞ to the older SS, I have the following line in my configuration:
(set-case-syntax-pair ?ẞ ?ß (standard-case-table))
When working with characters, this behaves as intended:
(upcase ?ß)
⇒ ?ẞ
However when working with strings, it doesn’t:
(upcase "ß")
⇒ "SS"
The same goes for the ‘upcase-word’ and ‘upcase-dwim’ functions which
still upcase ß to SS. It seems that whatever code that is handling
case-conversions for multi-character inputs is not respecting the current
case table.
— Thomas
[Message part 3 (message/rfc822, inline)]
> Cc: 74155 <at> debbugs.gnu.org
> Date: Fri, 01 Nov 2024 16:07:38 +0200
> From: Eli Zaretskii <eliz <at> gnu.org>
>
> > Date: Fri, 01 Nov 2024 13:33:13 +0100
> > From: "Thomas Voss" via "Bug reports for GNU Emacs,
> > the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
> >
> > As of 2017 (I believe), the capital eszett (ẞ) was adopted into the
> > German alphabet as the uppercase variable of ß which was previously (and
> > which still can be) uppercased to ‘SS’. Since I prefer to use the newer
> > ẞ to the older SS, I have the following line in my configuration:
> >
> > (set-case-syntax-pair ?ẞ ?ß (standard-case-table))
> >
> > When working with characters, this behaves as intended:
> >
> > (upcase ?ß)
> > ⇒ ?ẞ
> >
> > However when working with strings, it doesn’t:
> >
> > (upcase "ß")
> > ⇒ "SS"
> >
> > The same goes for the ‘upcase-word’ and ‘upcase-dwim’ functions which
> > still upcase ß to SS. It seems that whatever code that is handling
> > case-conversions for multi-character inputs is not respecting the current
> > case table.
>
> This is a feature: characters which have the 'special-uppercase'
> property defined for them by the Unicode Standard use their special
> upper-case rules that override the case-table. If you don't want
> that, force the special-uppercase property of ß to be nil:
>
> (upcase "ß")
> => "SS"
> (put-char-code-property ?ß 'special-uppercase nil)
> (upcase "ß")
> => "ẞ"
No further comments within 2 weeks, so I'm now closing this bug.
This bug report was last modified 244 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.