/* GNU Emacs routines to deal with case tables.
- Copyright (C) 1993, 1994, 2001, 2002, 2003, 2004,
- 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+ Copyright (C) 1993, 1994, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
+ 2008, 2009 Free Software Foundation, Inc.
+
+Author: Howard Gayle
This file is part of GNU Emacs.
You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
-/* Written by Howard Gayle. */
-
#include <config.h>
+#include <setjmp.h>
#include "lisp.h"
#include "buffer.h"
#include "character.h"
{
if (NATNUMP (elt))
{
- Lisp_Object tem = Faref (table, elt);
int from, to;
if (CONSP (c))
from = to = XINT (c);
for (; from <= to; from++)
- if (from != XINT (elt))
- {
- Faset (table, elt, make_number (from));
- Faset (table, make_number (from), tem);
- }
+ {
+ Lisp_Object tem = Faref (table, elt);
+ Faset (table, elt, make_number (from));
+ Faset (table, make_number (from), tem);
+ }
}
}
\f
{
register int i;
Lisp_Object down, up;
- Qcase_table = intern ("case-table");
+ Qcase_table = intern_c_string ("case-table");
staticpro (&Qcase_table);
/* Intern this now in case it isn't already done.
Setting this variable twice is harmless.
But don't staticpro it here--that is done in alloc.c. */
- Qchar_table_extra_slots = intern ("char-table-extra-slots");
+ Qchar_table_extra_slots = intern_c_string ("char-table-extra-slots");
/* Now we are ready to set up this property, so we can
create char tables. */
{
int c = ((i >= 'A' && i <= 'Z') ? i + ('a' - 'A')
: ((i >= 'a' && i <= 'z') ? i + ('A' - 'a')
- : i));;
+ : i));
CHAR_TABLE_SET (up, i, make_number (c));
}
void
syms_of_casetab ()
{
- Qcase_table_p = intern ("case-table-p");
+ Qcase_table_p = intern_c_string ("case-table-p");
staticpro (&Qcase_table_p);
staticpro (&Vascii_canon_table);