summaryrefslogtreecommitdiff
path: root/src/charset.c
diff options
context:
space:
mode:
authorKenichi Handa <handa@m17n.org>2003-06-06 03:57:34 +0000
committerKenichi Handa <handa@m17n.org>2003-06-06 03:57:34 +0000
commitaf7c60ca4fabbc0bbcf047c1656930e75ab8ac30 (patch)
tree4bf61277f40702c3967a383433c4585e04c17a9e /src/charset.c
parent985de74e29fdbacac82736be641ecb5cd62c38d5 (diff)
downloademacs-af7c60ca4fabbc0bbcf047c1656930e75ab8ac30.tar.gz
emacs-af7c60ca4fabbc0bbcf047c1656930e75ab8ac30.tar.bz2
emacs-af7c60ca4fabbc0bbcf047c1656930e75ab8ac30.zip
(Fset_charset_priority): Pay attention to dumplicated arguments.
Diffstat (limited to 'src/charset.c')
-rw-r--r--src/charset.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/charset.c b/src/charset.c
index e53fbf915fa..a651d2ffb74 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -1994,15 +1994,19 @@ usage: (set-charset-priority &rest charsets) */)
int nargs;
Lisp_Object *args;
{
- Lisp_Object new_head = Qnil, old_list, arglist[2];
+ Lisp_Object new_head, old_list, arglist[2];
int i, id;
old_list = Fcopy_sequence (Vcharset_ordered_list);
+ new_head = Qnil;
for (i = 0; i < nargs; i++)
{
CHECK_CHARSET_GET_ID (args[i], id);
- old_list = Fdelq (make_number (id), old_list);
- new_head = Fcons (make_number (id), new_head);
+ if (! NILP (Fmemq (make_number (id), old_list)))
+ {
+ old_list = Fdelq (make_number (id), old_list);
+ new_head = Fcons (make_number (id), new_head);
+ }
}
arglist[0] = Fnreverse (new_head);
arglist[1] = old_list;