Skip to content

Commit 4b3db0d

Browse files
npostavsmina86
authored andcommitted
Fix ‘!NILP (Vpurify_flag)’ assertion failure during temacs bootstrap
The recent changes to src/casefiddle.c cause build failure as seen below: Starting program: /home/npostavs/src/emacs/emacs-bootstrapping/src/temacs --batch --load loadup bootstrap [Thread debugging using libthread_db enabled] Using host libthread_db library "/usr/lib/libthread_db.so.1". Loading loadup.el (source)... Using load-path (/home/npostavs/src/emacs/emacs-bootstrapping/lisp /home/npostavs/src/emacs/emacs-bootstrapping/lisp/emacs-lisp /home/npostavs/src/emacs/emacs-bootstrapping/lisp/language /home/npostavs/src/emacs/emacs-bootstrapping/lisp/international /home/npostavs/src/emacs/emacs-bootstrapping/lisp/textmodes /home/npostavs/src/emacs/emacs-bootstrapping/lisp/vc) Loading emacs-lisp/byte-run (source)... Loading emacs-lisp/backquote (source)... Loading subr (source)... Loading version (source)... Loading widget (source)... Loading custom (source)... Loading emacs-lisp/map-ynp (source)... Loading international/mule (source)... Loading international/mule-conf (source)... lread.c:3914: Emacs fatal error: assertion failed: !NILP (Vpurify_flag) Breakpoint 1, terminate_due_to_signal at emacs.c:363 363 signal (sig, SIG_DFL); (gdb) bt #0 0x0000000000579826 in terminate_due_to_signal at emacs.c:363 emacs-mirror#1 0x000000000060ec33 in die at alloc.c:7352 emacs-mirror#2 0x000000000066db40 in intern_c_string_1 at lread.c:3914 emacs-mirror#3 0x0000000000576884 in intern_c_string at lisp.h:3790 emacs-mirror#4 0x00000000005dc84f in prepare_casing_context at casefiddle.c:69 emacs-mirror#5 0x00000000005dd37f in casify_object at casefiddle.c:311 emacs-mirror#6 0x00000000005dd47f in Fcapitalize at casefiddle.c:356 emacs-mirror#7 0x00000000006325ac in eval_sub at eval.c:2219 emacs-mirror#8 0x0000000000632368 in eval_sub at eval.c:2184 emacs-mirror#9 0x000000000063446c in apply_lambda at eval.c:2875 emacs-mirror#10 0x00000000006329af in eval_sub at eval.c:2294 emacs-mirror#11 0x000000000062d462 in Fprogn at eval.c:449 emacs-mirror#12 0x000000000062d4cf in prog_ignore at eval.c:461 emacs-mirror#13 0x000000000062f19c in Fwhile at eval.c:982 emacs-mirror#14 0x00000000006321f4 in eval_sub at eval.c:2172 emacs-mirror#15 0x000000000062d462 in Fprogn at eval.c:449 emacs-mirror#16 0x000000000062f0c4 in Flet at eval.c:963 emacs-mirror#17 0x00000000006321f4 in eval_sub at eval.c:2172 emacs-mirror#18 0x0000000000632963 in eval_sub at eval.c:2290 emacs-mirror#19 0x000000000062d462 in Fprogn at eval.c:449 emacs-mirror#20 0x000000000062f0c4 in Flet at eval.c:963 emacs-mirror#21 0x00000000006321f4 in eval_sub at eval.c:2172 emacs-mirror#22 0x0000000000668caa in readevalloop at lread.c:1927 emacs-mirror#23 0x0000000000667253 in Fload at lread.c:1332 emacs-mirror#24 0x0000000000632683 in eval_sub at eval.c:2233 emacs-mirror#25 0x0000000000668caa in readevalloop at lread.c:1927 emacs-mirror#26 0x0000000000667253 in Fload at lread.c:1332 emacs-mirror#27 0x0000000000632683 in eval_sub at eval.c:2233 emacs-mirror#28 0x0000000000631be5 in Feval at eval.c:2041 emacs-mirror#29 0x000000000057e1af in top_level_2 at keyboard.c:1121 emacs-mirror#30 0x000000000062ffc7 in internal_condition_case at eval.c:1324 emacs-mirror#31 0x000000000057e1f0 in top_level_1 at keyboard.c:1129 emacs-mirror#32 0x000000000062f51e in internal_catch at eval.c:1091 emacs-mirror#33 0x000000000057e0ea in command_loop at keyboard.c:1090 emacs-mirror#34 0x000000000057d6d5 in recursive_edit_1 at keyboard.c:697 emacs-mirror#35 0x000000000057d8b4 in Frecursive_edit at keyboard.c:768 emacs-mirror#36 0x000000000057b55b in main at emacs.c:1687 Lisp Backtrace: "capitalize" (0xffffcf70) "format" (0xffffd130) "define-charset" (0xffffd370) "while" (0xffffd560) "let" (0xffffd7c0) "dolist" (0xffffd910) "let" (0xffffdb70) "load" (0xffffdfe0) "load" (0xffffe4a0) * src/casefiddle.c (syms_of_casefiddle): Declare four new symbols: Qtitlecase, Qspecial_uppercase, Qspecial_lowercase and Qspecial_titlecase. (prepare_casing_context): Use aforementioned symbols.
1 parent 0227559 commit 4b3db0d

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

src/casefiddle.c

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,16 +66,16 @@ prepare_casing_context (struct casing_context *ctx,
6666
ctx->inword = false;
6767
ctx->titlecase_char_table
6868
= (flag < CASE_CAPITALIZE ? Qnil
69-
: uniprop_table (intern_c_string ("titlecase")));
69+
: uniprop_table (Qtitlecase));
7070
ctx->specialcase_char_tables[CASE_UP]
7171
= (flag == CASE_DOWN ? Qnil
72-
: uniprop_table (intern_c_string ("special-uppercase")));
72+
: uniprop_table (Qspecial_uppercase));
7373
ctx->specialcase_char_tables[CASE_DOWN]
7474
= (flag == CASE_UP ? Qnil
75-
: uniprop_table (intern_c_string ("special-lowercase")));
75+
: uniprop_table (Qspecial_lowercase));
7676
ctx->specialcase_char_tables[CASE_CAPITALIZE]
7777
= (flag < CASE_CAPITALIZE ? Qnil
78-
: uniprop_table (intern_c_string ("special-titlecase")));
78+
: uniprop_table (Qspecial_titlecase));
7979

8080
/* If the case table is flagged as modified, rescan it. */
8181
if (NILP (XCHAR_TABLE (BVAR (current_buffer, downcase_table))->extras[1]))
@@ -644,6 +644,11 @@ void
644644
syms_of_casefiddle (void)
645645
{
646646
DEFSYM (Qidentity, "identity");
647+
DEFSYM (Qtitlecase, "titlecase");
648+
DEFSYM (Qspecial_uppercase, "special-uppercase");
649+
DEFSYM (Qspecial_lowercase, "special-lowercase");
650+
DEFSYM (Qspecial_titlecase, "special-titlecase");
651+
647652
defsubr (&Supcase);
648653
defsubr (&Sdowncase);
649654
defsubr (&Scapitalize);

0 commit comments

Comments
 (0)