diff options
author | Kenichi Handa <handa@m17n.org> | 2003-06-06 03:57:34 +0000 |
---|---|---|
committer | Kenichi Handa <handa@m17n.org> | 2003-06-06 03:57:34 +0000 |
commit | af7c60ca4fabbc0bbcf047c1656930e75ab8ac30 (patch) | |
tree | 4bf61277f40702c3967a383433c4585e04c17a9e /src/charset.c | |
parent | 985de74e29fdbacac82736be641ecb5cd62c38d5 (diff) | |
download | emacs-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.c | 10 |
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; |