comparison src/charset.c @ 89471:31ac7465ef51

(Fset_charset_priority): Pay attention to dumplicated arguments.
author Kenichi Handa <handa@m17n.org>
date Fri, 06 Jun 2003 03:57:34 +0000
parents 6cc7c4aa53cc
children 2f877ed80fa6
comparison
equal deleted inserted replaced
89470:63f863a2a2e2 89471:31ac7465ef51
1992 usage: (set-charset-priority &rest charsets) */) 1992 usage: (set-charset-priority &rest charsets) */)
1993 (nargs, args) 1993 (nargs, args)
1994 int nargs; 1994 int nargs;
1995 Lisp_Object *args; 1995 Lisp_Object *args;
1996 { 1996 {
1997 Lisp_Object new_head = Qnil, old_list, arglist[2]; 1997 Lisp_Object new_head, old_list, arglist[2];
1998 int i, id; 1998 int i, id;
1999 1999
2000 old_list = Fcopy_sequence (Vcharset_ordered_list); 2000 old_list = Fcopy_sequence (Vcharset_ordered_list);
2001 new_head = Qnil;
2001 for (i = 0; i < nargs; i++) 2002 for (i = 0; i < nargs; i++)
2002 { 2003 {
2003 CHECK_CHARSET_GET_ID (args[i], id); 2004 CHECK_CHARSET_GET_ID (args[i], id);
2004 old_list = Fdelq (make_number (id), old_list); 2005 if (! NILP (Fmemq (make_number (id), old_list)))
2005 new_head = Fcons (make_number (id), new_head); 2006 {
2007 old_list = Fdelq (make_number (id), old_list);
2008 new_head = Fcons (make_number (id), new_head);
2009 }
2006 } 2010 }
2007 arglist[0] = Fnreverse (new_head); 2011 arglist[0] = Fnreverse (new_head);
2008 arglist[1] = old_list; 2012 arglist[1] = old_list;
2009 Vcharset_ordered_list = Fnconc (2, arglist); 2013 Vcharset_ordered_list = Fnconc (2, arglist);
2010 charset_ordered_list_tick++; 2014 charset_ordered_list_tick++;