X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/29adb7b55e89881d05165ddacd28144d1f878355..72af86bd8cf1812d1fcc8924c4093d692040a664:/src/casetab.c diff --git a/src/casetab.c b/src/casetab.c index b5db07d52b..fc7e32e646 100644 --- a/src/casetab.c +++ b/src/casetab.c @@ -1,13 +1,15 @@ /* GNU Emacs routines to deal with case tables. - Copyright (C) 1993, 1994, 2001, 2002, 2003, 2004, - 2005, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 1993, 1994, 2001, 2002, 2003, 2004, 2005, 2006, 2007, + 2008, 2009, 2010 Free Software Foundation, Inc. + +Author: Howard Gayle This file is part of GNU Emacs. -GNU Emacs is free software; you can redistribute it and/or modify +GNU Emacs is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 3, or (at your option) -any later version. +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. GNU Emacs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -15,13 +17,10 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with GNU Emacs; see the file COPYING. If not, write to -the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -Boston, MA 02110-1301, USA. */ - -/* Written by Howard Gayle. */ +along with GNU Emacs. If not, see . */ #include +#include #include "lisp.h" #include "buffer.h" #include "character.h" @@ -35,12 +34,12 @@ Lisp_Object Vascii_canon_table, Vascii_eqv_table; int case_temp1; Lisp_Object case_temp2; -static void set_canon (); -static void set_identity (); -static void shuffle (); +static void set_canon (Lisp_Object case_table, Lisp_Object range, Lisp_Object elt); +static void set_identity (Lisp_Object table, Lisp_Object c, Lisp_Object elt); +static void shuffle (Lisp_Object table, Lisp_Object c, Lisp_Object elt); DEFUN ("case-table-p", Fcase_table_p, Scase_table_p, 1, 1, 0, - doc: /* Return t iff OBJECT is a case table. + doc: /* Return t if OBJECT is a case table. See `set-case-table' for more information on these data structures. */) (object) Lisp_Object object; @@ -64,8 +63,7 @@ See `set-case-table' for more information on these data structures. */) } static Lisp_Object -check_case_table (obj) - Lisp_Object obj; +check_case_table (Lisp_Object obj) { CHECK_TYPE (!NILP (Fcase_table_p (obj)), Qcase_table_p, obj); return (obj); @@ -86,7 +84,7 @@ This is the one used for new buffers. */) return Vascii_downcase_table; } -static Lisp_Object set_case_table (); +static Lisp_Object set_case_table (Lisp_Object table, int standard); DEFUN ("set-case-table", Fset_case_table, Sset_case_table, 1, 1, 0, doc: /* Select a new case table for the current buffer. @@ -121,9 +119,7 @@ See `set-case-table' for more info on case tables. */) } static Lisp_Object -set_case_table (table, standard) - Lisp_Object table; - int standard; +set_case_table (Lisp_Object table, int standard) { Lisp_Object up, canon, eqv; @@ -185,8 +181,7 @@ set_case_table (table, standard) CASE_TABLE. */ static void -set_canon (case_table, range, elt) - Lisp_Object case_table, range, elt; +set_canon (Lisp_Object case_table, Lisp_Object range, Lisp_Object elt) { Lisp_Object up = XCHAR_TABLE (case_table)->extras[0]; Lisp_Object canon = XCHAR_TABLE (case_table)->extras[1]; @@ -201,8 +196,7 @@ set_canon (case_table, range, elt) character. This is called in map_char_table. */ static void -set_identity (table, c, elt) - Lisp_Object table, c, elt; +set_identity (Lisp_Object table, Lisp_Object c, Lisp_Object elt) { if (NATNUMP (elt)) { @@ -226,12 +220,10 @@ set_identity (table, c, elt) operated. */ static void -shuffle (table, c, elt) - Lisp_Object table, c, elt; +shuffle (Lisp_Object table, Lisp_Object c, Lisp_Object elt) { if (NATNUMP (elt)) { - Lisp_Object tem = Faref (table, elt); int from, to; if (CONSP (c)) @@ -243,26 +235,26 @@ shuffle (table, c, elt) 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); + } } } void -init_casetab_once () +init_casetab_once (void) { 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. */ @@ -287,7 +279,7 @@ init_casetab_once () { 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)); } @@ -298,9 +290,9 @@ init_casetab_once () } void -syms_of_casetab () +syms_of_casetab (void) { - Qcase_table_p = intern ("case-table-p"); + Qcase_table_p = intern_c_string ("case-table-p"); staticpro (&Qcase_table_p); staticpro (&Vascii_canon_table);