Subject: bug#59715: 28.2; Emacs crashes after ``turkish-case-conversion-enable''

From: Eli Zaretskii <[email-masked]>
Date: Mon, 05 Dec 2022 15:23:18 +0200

> From: YUSUF ALPER ÇIKIŞIR
>  <[email-masked]>
> Cc: [email-masked]
> Date: Mon, 05 Dec 2022 05:29:48 +0300
> 
> Eli Zaretskii <[email-masked]> writes:
> 
> > Would you like to try that?  If so, I can help you write that code snippet.
> 
> If that's going to help you to debug this, sure.  But since my problem
> is somehow solved, I don't want to take your time anymore.

This is not a waste: I think it's important to know which calls to
'downcase' cause problems with these characters, whose case-conversions in
Turkish are special.  Armed with that knowledge, we may be able to find an
efficient and relatively simple solution.

So please make the following change in Emacs, and run it (with your original
font, where Iosevka is used and causes problems), with a breakpoint in the
source line I mark below with "<<<" (please figure out its line number when
you edit the source code in casefiddle.c):

diff --git a/src/casefiddle.c b/src/casefiddle.c
index e8ae2e2..6a8609a 100644
--- a/src/casefiddle.c
+++ b/src/casefiddle.c
@@ -388,6 +388,9 @@ DEFUN ("downcase", Fdowncase, Sdowncase, 1, 1, 0,
 The argument object is not altered--the value is a copy.  */)
   (Lisp_Object obj)
 {
+  if (STRINGP (obj)
+      && strstr (SSDATA (obj), "Iosevka") != NULL)
+    fprintf (stderr, "Iosevka\n");  <<<<<<<<<<<<<<<<<<<<<<<
   return casify_object (CASE_DOWN, obj);
 }
 
When this breakpoint will break, please type "bt" and post the backtrace
here.  It is possible that the breakpoint will break more than once; please
post the results of "bt" for each one of those, until the crash.

A reminder: to set a breakpoint, type:

  (gdb) break casefiddle.c:NNNN

where NNNN is the line number of the fprintf line added above.

Thanks.