[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/fns.c
From: |
Richard M. Stallman |
Subject: |
[Emacs-diffs] Changes to emacs/src/fns.c |
Date: |
Sat, 17 May 2003 08:45:52 -0400 |
Index: emacs/src/fns.c
diff -c emacs/src/fns.c:1.336 emacs/src/fns.c:1.337
*** emacs/src/fns.c:1.336 Sun Apr 6 09:31:40 2003
--- emacs/src/fns.c Sat May 17 08:45:52 2003
***************
*** 2634,2642 ****
ARG is passed to C_FUNCTION when that is called. */
void
! map_char_table (c_function, function, subtable, arg, depth, indices)
void (*c_function) P_ ((Lisp_Object, Lisp_Object, Lisp_Object));
! Lisp_Object function, subtable, arg, *indices;
int depth;
{
int i, to;
--- 2634,2642 ----
ARG is passed to C_FUNCTION when that is called. */
void
! map_char_table (c_function, function, table, subtable, arg, depth, indices)
void (*c_function) P_ ((Lisp_Object, Lisp_Object, Lisp_Object));
! Lisp_Object function, table, subtable, arg, *indices;
int depth;
{
int i, to;
***************
*** 2646,2652 ****
/* At first, handle ASCII and 8-bit European characters. */
for (i = 0; i < CHAR_TABLE_SINGLE_BYTE_SLOTS; i++)
{
! Lisp_Object elt = XCHAR_TABLE (subtable)->contents[i];
if (c_function)
(*c_function) (arg, make_number (i), elt);
else
--- 2646,2656 ----
/* At first, handle ASCII and 8-bit European characters. */
for (i = 0; i < CHAR_TABLE_SINGLE_BYTE_SLOTS; i++)
{
! Lisp_Object elt= XCHAR_TABLE (subtable)->contents[i];
! if (NILP (elt))
! elt = XCHAR_TABLE (subtable)->defalt;
! if (NILP (elt))
! elt = Faref (subtable, make_number (i));
if (c_function)
(*c_function) (arg, make_number (i), elt);
else
***************
*** 2687,2693 ****
{
if (depth >= 3)
error ("Too deep char table");
! map_char_table (c_function, function, elt, arg, depth + 1, indices);
}
else
{
--- 2691,2697 ----
{
if (depth >= 3)
error ("Too deep char table");
! map_char_table (c_function, function, table, elt, arg, depth + 1,
indices);
}
else
{
***************
*** 2695,2700 ****
--- 2699,2706 ----
if (NILP (elt))
elt = XCHAR_TABLE (subtable)->defalt;
+ if (NILP (elt))
+ elt = Faref (table, make_number (i));
c1 = depth >= 1 ? XFASTINT (indices[1]) : 0;
c2 = depth >= 2 ? XFASTINT (indices[2]) : 0;
c = MAKE_CHAR (charset, c1, c2);
***************
*** 2731,2737 ****
be passed to map_char_table because it returns a Lisp_Object rather
than returning nothing.
Casting leads to crashes on some architectures. -stef */
! map_char_table (void_call2, Qnil, char_table, function, 0, indices);
return Qnil;
}
--- 2737,2743 ----
be passed to map_char_table because it returns a Lisp_Object rather
than returning nothing.
Casting leads to crashes on some architectures. -stef */
! map_char_table (void_call2, Qnil, char_table, char_table, function, 0,
indices);
return Qnil;
}
- [Emacs-diffs] Changes to emacs/src/fns.c,
Richard M. Stallman <=