diff options
author | Noam Postavsky <npostavs@users.sourceforge.net> | 2017-04-07 03:45:27 +0200 |
---|---|---|
committer | Michal Nazarewicz <mina86@mina86.com> | 2017-04-07 03:45:51 +0200 |
commit | 4b3db0daa658a9b834284be8c3131b6177a28f38 (patch) | |
tree | 034982a5d493db8cec2a78b91d3c4ec128af999d /src/casefiddle.c | |
parent | 022755953fc63ef70b72576e14e94324d055ef60 (diff) | |
download | emacs-4b3db0daa658a9b834284be8c3131b6177a28f38.tar.gz emacs-4b3db0daa658a9b834284be8c3131b6177a28f38.tar.bz2 emacs-4b3db0daa658a9b834284be8c3131b6177a28f38.zip |
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
#1 0x000000000060ec33 in die at alloc.c:7352
#2 0x000000000066db40 in intern_c_string_1 at lread.c:3914
#3 0x0000000000576884 in intern_c_string at lisp.h:3790
#4 0x00000000005dc84f in prepare_casing_context at casefiddle.c:69
#5 0x00000000005dd37f in casify_object at casefiddle.c:311
#6 0x00000000005dd47f in Fcapitalize at casefiddle.c:356
#7 0x00000000006325ac in eval_sub at eval.c:2219
#8 0x0000000000632368 in eval_sub at eval.c:2184
#9 0x000000000063446c in apply_lambda at eval.c:2875
#10 0x00000000006329af in eval_sub at eval.c:2294
#11 0x000000000062d462 in Fprogn at eval.c:449
#12 0x000000000062d4cf in prog_ignore at eval.c:461
#13 0x000000000062f19c in Fwhile at eval.c:982
#14 0x00000000006321f4 in eval_sub at eval.c:2172
#15 0x000000000062d462 in Fprogn at eval.c:449
#16 0x000000000062f0c4 in Flet at eval.c:963
#17 0x00000000006321f4 in eval_sub at eval.c:2172
#18 0x0000000000632963 in eval_sub at eval.c:2290
#19 0x000000000062d462 in Fprogn at eval.c:449
#20 0x000000000062f0c4 in Flet at eval.c:963
#21 0x00000000006321f4 in eval_sub at eval.c:2172
#22 0x0000000000668caa in readevalloop at lread.c:1927
#23 0x0000000000667253 in Fload at lread.c:1332
#24 0x0000000000632683 in eval_sub at eval.c:2233
#25 0x0000000000668caa in readevalloop at lread.c:1927
#26 0x0000000000667253 in Fload at lread.c:1332
#27 0x0000000000632683 in eval_sub at eval.c:2233
#28 0x0000000000631be5 in Feval at eval.c:2041
#29 0x000000000057e1af in top_level_2 at keyboard.c:1121
#30 0x000000000062ffc7 in internal_condition_case at eval.c:1324
#31 0x000000000057e1f0 in top_level_1 at keyboard.c:1129
#32 0x000000000062f51e in internal_catch at eval.c:1091
#33 0x000000000057e0ea in command_loop at keyboard.c:1090
#34 0x000000000057d6d5 in recursive_edit_1 at keyboard.c:697
#35 0x000000000057d8b4 in Frecursive_edit at keyboard.c:768
#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.
Diffstat (limited to 'src/casefiddle.c')
-rw-r--r-- | src/casefiddle.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/casefiddle.c b/src/casefiddle.c index 3b550470bf3..b7782a83c3d 100644 --- a/src/casefiddle.c +++ b/src/casefiddle.c @@ -66,16 +66,16 @@ prepare_casing_context (struct casing_context *ctx, ctx->inword = false; ctx->titlecase_char_table = (flag < CASE_CAPITALIZE ? Qnil - : uniprop_table (intern_c_string ("titlecase"))); + : uniprop_table (Qtitlecase)); ctx->specialcase_char_tables[CASE_UP] = (flag == CASE_DOWN ? Qnil - : uniprop_table (intern_c_string ("special-uppercase"))); + : uniprop_table (Qspecial_uppercase)); ctx->specialcase_char_tables[CASE_DOWN] = (flag == CASE_UP ? Qnil - : uniprop_table (intern_c_string ("special-lowercase"))); + : uniprop_table (Qspecial_lowercase)); ctx->specialcase_char_tables[CASE_CAPITALIZE] = (flag < CASE_CAPITALIZE ? Qnil - : uniprop_table (intern_c_string ("special-titlecase"))); + : uniprop_table (Qspecial_titlecase)); /* If the case table is flagged as modified, rescan it. */ if (NILP (XCHAR_TABLE (BVAR (current_buffer, downcase_table))->extras[1])) @@ -644,6 +644,11 @@ void syms_of_casefiddle (void) { DEFSYM (Qidentity, "identity"); + DEFSYM (Qtitlecase, "titlecase"); + DEFSYM (Qspecial_uppercase, "special-uppercase"); + DEFSYM (Qspecial_lowercase, "special-lowercase"); + DEFSYM (Qspecial_titlecase, "special-titlecase"); + defsubr (&Supcase); defsubr (&Sdowncase); defsubr (&Scapitalize); |