# HG changeset patch # User Chong Yidong # Date 1220298376 0 # Node ID 5c86599895c44960725bb0c80538f2f211f945a4 # Parent 8fd36062fb9cdf73e457648457009997787aa0ec (Finternal_set_alternative_font_family_alist) (Finternal_set_alternative_font_registry_alist): Properly copy entire alist structure. diff -r 8fd36062fb9c -r 5c86599895c4 src/xfaces.c --- a/src/xfaces.c Mon Sep 01 19:45:11 2008 +0000 +++ b/src/xfaces.c Mon Sep 01 19:46:16 2008 +0000 @@ -5452,13 +5452,20 @@ (alist) Lisp_Object alist; { - Lisp_Object tail, tail2; + Lisp_Object entry, tail, tail2; CHECK_LIST (alist); alist = Fcopy_sequence (alist); for (tail = alist; CONSP (tail); tail = XCDR (tail)) - for (tail2 = XCAR (tail); CONSP (tail2); tail2 = XCDR (tail2)) - XSETCAR (tail2, Fintern (XCAR (tail2), Qnil)); + { + entry = XCAR (tail); + CHECK_LIST (entry); + entry = Fcopy_sequence (entry); + XSETCAR (tail, entry); + for (tail2 = entry; CONSP (tail2); tail2 = XCDR (tail2)) + XSETCAR (tail2, Fintern (XCAR (tail2), Qnil)); + } + Vface_alternative_font_family_alist = alist; free_all_realized_faces (Qnil); return alist; @@ -5475,13 +5482,19 @@ (alist) Lisp_Object alist; { - Lisp_Object tail, tail2; + Lisp_Object entry, tail, tail2; CHECK_LIST (alist); alist = Fcopy_sequence (alist); for (tail = alist; CONSP (tail); tail = XCDR (tail)) - for (tail2 = XCAR (tail); CONSP (tail2); tail2 = XCDR (tail2)) - XSETCAR (tail2, Fdowncase (XCAR (tail2))); + { + entry = XCAR (tail); + CHECK_LIST (entry); + entry = Fcopy_sequence (entry); + XSETCAR (tail, entry); + for (tail2 = entry; CONSP (tail2); tail2 = XCDR (tail2)) + XSETCAR (tail2, Fdowncase (XCAR (tail2))); + } Vface_alternative_font_registry_alist = alist; free_all_realized_faces (Qnil); return alist;