Aidan Kehoe writes:
In the ChangeLog:
Stop using the `registry' charset property; use `registries'
instead. The difference is that registries is an ordered vector of
X11 registries and encodings rather than a regexp; this means we
can leave the matching to the X11 server, avoiding transferring
huge amounts of data (perhaps across the network!) in order to do
a regexp search on it.
Isn't this gratuitous difference with GNU?
There ought to be a way to get the best of both worlds. First, since
`charset-registry' already matches multiple charsets in the general
case, we don't need to change the name. Then
(1) Accept either a string (regexp) or vector of strings (explicit).
(2) If a regexp, use the old method, if a vector use yours.
(3) It's trivial to construct a regexp from a vector of strings, so
that's what `charset-registry' should return.
(4) `make-charset', `set-charset-registry', and friends (if they have
any! ;-) should warn on being handed a string.
(5) Bonus points for determining that a regexp is actually a
disjunction of fixed strings and turning it into a vector
internally. This is mostly a joke except for the presumably very
common and useful case of a single fixed string. (If I thought
GNU were going to stick with Mule indefinitely I'd consider it an
important compatibility feature, but I doubt they will.)
In the ChangeLog:
* mule/mule-charset.el (charset-registries): New.
* mule/mule-charset.el (set-charset-registry): New.
Isn't `set-charset-registry' in the above a typo?
src/ChangeLog addition:
2006-10-31 Aidan Kehoe <kehoea(a)parhasard.net>
* charset.h (XCHARSET_CCL_PROGRAM):
* charset.h (XCHARSET_NAME):
Make dummy versions of these available in non-Mule.
Other things being equal, I doubt this is a good idea. Why do you want it?
* console-impl.h:
* console-impl.h (struct console_methods):
Rename the last parameter to a couple of methods; reformat their
declarations.
The above will cause some annoyance to CHISE, Carbon XEmacs, and
possibly SXEmacs someday. Is it a good idea?
Can the rest of these be split out? I want them!
2006-10-31 Aidan Kehoe <kehoea(a)parhasard.net>
* faces.el (face-property-matching-instance):
Simplify.
* faces.el (face-font-instance):
Document CHARSET.
* faces.el (set-face-font):
Give more details on common values for font instantiators,
LOCALEs.
* unicode.el:
Remove a few comments that were only relevant to GNU Emacs.
* unicode.el (decode-char):
* unicode.el (encode-char):
src/ChangeLog addition:
2006-10-31 Aidan Kehoe <kehoea(a)parhasard.net>
* faces.c:
* faces.c (face_property_matching_instance):
* faces.c (ensure_face_cachel_contains_charset):
* faces.c (merge_face_cachel_data):
* faces.c (reset_face_cachel):
* faces.c (mark_face_cachels_as_not_updated):
* faces.c (syms_of_faces):
* faces.c (vars_of_faces):
* faces.c (complex_vars_of_faces):
Provide a DEBUG_FACES macro; use it to make debugging output
available in debug builds.
Implement multi-stage font lookup, assigning the stages names, not
numbers.
Re-implement the cachel->font_specified cache using the
infrastructure for Lisp bit vectors.
* faces.h:
* faces.h (struct face_cachel):
* faces.h (FACE_CACHEL_FONT_UPDATED):
* faces.h (FACE_FONT):
Re-implement the cachel->font_specified cache using the
infrastructure for Lisp bit vectors.
* font-mgr.h:
Move some XFT debug macros here from objects-x.c.
* general-slots.h:
Provide a few new symbols for the multi-stage font resolution
process.
* intl.c (init_intl):
Correct a comment.
* objects-gtk.c:
* objects-gtk.c (gtk_font_spec_matches_charset):
* objects-gtk.c (gtk_find_charset_font):
* objects-msw.c (mswindows_find_charset_font):
* objects-tty.c (tty_find_charset_font):
Redeclare various functions to work with the multi-stage lookup
process.
* objects-x.c (count_hyphens):
New. How many ASCII minus characters in a string?
* objects.c (print_font_instance):
* objects.c (font_spec_matches_charset):
* objects.c (font_validate_matchspec):
* objects.c (font_instantiate):
Redeclare some methods to take enums rather than numeric stages.
* objects.h (EXFUN):
Make Fregexp_quote available to mule-charset.c
* redisplay-x.c:
* redisplay-x.c (separate_textual_runs):
Make this slightly faster, cleaner. Make it accept a face cachel
pointer argument, and check it as to whether a given charset
should be translated to UCS-2 before redisplay.
* specifier.c:
* specifier.c (charset_matches_specifier_tag_set_p):
* specifier.c (define_specifier_tag):
* specifier.c (Fdefine_specifier_tag):
* specifier.c (setup_device_initial_specifier_tags):
* specifier.c (setup_charset_initial_specifier_tags):
* specifier.c (specifier_instance_from_inst_list):
* specifier.c (syms_of_specifier):
* specifier.c (vars_of_specifier):
* specifier.h:
Extend specifiers to allow limiting their applicability by using
charset predicates. Document this.
* unicode.c (unicode_to_ichar):
* unicode.c (syms_of_unicode):
* unicode.c (vars_of_unicode):
Use unicode-registries, a dumped vector, as the charset-registries
of the on-the-fly JIT charsets.
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-patches