CVS update by stephent xemacs/src ...
xemacs-cvs at xemacs.org
xemacs-cvs at xemacs.org
Sun Mar 25 11:35:12 EDT 2007
User: stephent
Date: 07/03/25 17:35:12
Modified: xemacs/src ChangeLog chartab.c
Log:
Olivier's fix for syntax tables. <20070324221053.GA48218 at dspnet.fr.eu.org>
Revision Changes Path
1.1050 +6 -0 XEmacs/xemacs/src/ChangeLog
Index: ChangeLog
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/ChangeLog,v
retrieving revision 1.1049
retrieving revision 1.1050
diff -u -p -r1.1049 -r1.1050
--- ChangeLog 2007/02/22 16:53:25 1.1049
+++ ChangeLog 2007/03/25 15:34:59 1.1050
@@ -1,3 +1,9 @@
+2007-03-24 Olivier Galibert <galibert at pobox.com>
+
+ * chartab.c (Fcopy_char_table): Simplify the mirror table
+ handling: never copy a mirror table, just make a new one and mark
+ it dirty. Fixes http://article.gmane.org/gmane.emacs.xemacs.beta/17353
+
2007-01-22 Stephen J. Turnbull <stephen at xemacs.org>
* eval.c (quote):
1.40 +9 -4 XEmacs/xemacs/src/chartab.c
Index: chartab.c
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/chartab.c,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -p -r1.39 -r1.40
--- chartab.c 2005/12/18 10:59:14 1.39
+++ chartab.c 2007/03/25 15:35:06 1.40
@@ -668,11 +668,12 @@ as CHAR-TABLE. The values will not them
CHECK_CHAR_TABLE (char_table);
ct = XCHAR_TABLE (char_table);
+ assert(!ct->mirror_table_p);
ctnew = ALLOC_LCRECORD_TYPE (Lisp_Char_Table, &lrecord_char_table);
ctnew->type = ct->type;
ctnew->parent = ct->parent;
ctnew->default_ = ct->default_;
- ctnew->mirror_table_p = ct->mirror_table_p;
+ ctnew->mirror_table_p = 0;
obj = wrap_char_table (ctnew);
for (i = 0; i < NUM_ASCII_CHARS; i++)
@@ -697,13 +698,17 @@ as CHAR-TABLE. The values will not them
#endif /* MULE */
- if (!ct->mirror_table_p && CHAR_TABLEP (ct->mirror_table))
+ if (ct->mirror_table != Qnil)
{
- ctnew->mirror_table = Fcopy_char_table (ct->mirror_table);
+ ctnew->mirror_table = Fmake_char_table (Qgeneric);
+ set_char_table_default (ctnew->mirror_table, make_int (Sword));
XCHAR_TABLE (ctnew->mirror_table)->mirror_table = obj;
+ XCHAR_TABLE (ctnew->mirror_table)->mirror_table_p = 1;
+ XCHAR_TABLE (ctnew->mirror_table)->dirty = 1;
}
else
- ctnew->mirror_table = ct->mirror_table;
+ ctnew->mirror_table = Qnil;
+
ctnew->next_table = Qnil;
if (ctnew->type == CHAR_TABLE_TYPE_SYNTAX)
{
More information about the XEmacs-CVS
mailing list