diff options
author | Chong Yidong <[email protected]> | 2008-09-01 19:46:16 +0000 |
---|---|---|
committer | Chong Yidong <[email protected]> | 2008-09-01 19:46:16 +0000 |
commit | a77d5bb2ebfe4d74a67f449267dd5a242d60de55 (patch) | |
tree | 53436a66434303c4a3507d7c8a84a922970cf6ba | |
parent | d7642a183f0d5e8fb19e83f6c89959fdb744a03f (diff) |
(Finternal_set_alternative_font_family_alist)
(Finternal_set_alternative_font_registry_alist): Properly copy entire
alist structure.
-rw-r--r-- | src/xfaces.c | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/src/xfaces.c b/src/xfaces.c index c9abfc84b8..aa3041d691 100644 --- a/src/xfaces.c +++ b/src/xfaces.c @@ -5452,13 +5452,20 @@ be found. Value is ALIST. */) (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 @@ be found. Value is ALIST. */) (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; |