1 new commit in XEmacs:
https://bitbucket.org/xemacs/xemacs/changeset/b0d40183ac79/
changeset: b0d40183ac79
user: kehoea
date: 2012-08-12 12:32:36
summary: GC protect a freshly-consed list, define_specifier_tag().
src/ChangeLog addition:
2012-08-12 Aidan Kehoe <kehoea(a)parhasard.net>
* specifier.c (define_specifier_tag):
GC protect the list that Fcharset_list () gave back, it's freshly
consed.
Clear the alist entries for this tag in CHARSET's tag list if the
charset_predicate is nil, so re-creating a charset tag works more
effectively.
* specifier.c (Fdefine_specifier_tag):
Device-type-specific tags *are* available, even if that device
type isn't; see specifier.el.
affected #: 2 files
diff -r febc025c4e0c6f95a8adc7995a072205e56cdf07 -r
b0d40183ac7959bf1c6f5fe0df678f83b5c8b0ec src/ChangeLog
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,15 @@
+2012-08-12 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * specifier.c (define_specifier_tag):
+ GC protect the list that Fcharset_list () gave back, it's freshly
+ consed.
+ Clear the alist entries for this tag in CHARSET's tag list if the
+ charset_predicate is nil, so re-creating a charset tag works more
+ effectively.
+ * specifier.c (Fdefine_specifier_tag):
+ Device-type-specific tags *are* available, even if that device
+ type isn't; see specifier.el.
+
2012-08-06 Aidan Kehoe <kehoea(a)parhasard.net>
* lread.c (read1):
diff -r febc025c4e0c6f95a8adc7995a072205e56cdf07 -r
b0d40183ac7959bf1c6f5fe0df678f83b5c8b0ec src/specifier.c
--- a/src/specifier.c
+++ b/src/specifier.c
@@ -1162,15 +1162,18 @@
if (recompute_charsets)
{
-
- LIST_LOOP_2 (charset_name, Fcharset_list ())
+ GC_EXTERNAL_LIST_LOOP_2 (charset_name, Fcharset_list ())
{
Lisp_Object charset = Fget_charset (charset_name);
Lisp_Object tag_list = Fgethash (charset, Vcharset_tag_lists, Qnil);
Lisp_Object charpres;
- if (NILP (charset_predicate))
- continue;
+ if (NILP (charset_predicate))
+ {
+ Fputhash (charset, remassq_no_quit (tag, tag_list),
+ Vcharset_tag_lists);
+ continue;
+ }
charpres = call_charset_predicate (charset_predicate, charset);
@@ -1186,6 +1189,7 @@
Vcharset_tag_lists);
}
}
+ END_GC_EXTERNAL_LIST_LOOP (charset_name);
}
return Qt;
}
@@ -1222,9 +1226,6 @@
You can redefine an existing user-defined specifier tag. However, you
cannot redefine most of the built-in specifier tags \(the device types and
classes, `initial', and `final') or the symbols nil, t, `all', or
`global'.
-Note that if a device type is not supported in this XEmacs, it will not be
-available as a built-in specifier tag; this is probably something we should
-change.
*/
(tag, device_predicate, charset_predicate))
{
Repository URL:
https://bitbucket.org/xemacs/xemacs/
--
This is a commit notification from
bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-patches