Mercurial > emacs
changeset 97930:5c86599895c4
(Finternal_set_alternative_font_family_alist)
(Finternal_set_alternative_font_registry_alist): Properly copy entire
alist structure.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Mon, 01 Sep 2008 19:46:16 +0000 |
parents | 8fd36062fb9c |
children | 5c4b2431ff57 |
files | src/xfaces.c |
diffstat | 1 files changed, 19 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- 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;