Ben Wing <ben(a)666.com> writes:
hrvoje, i noticed that you went and implemented much of what i
proposed should be done to display tables. this is way cool, and
it's going to save me a lot of time when i get there -- as part of
unicode support, i need really powerful display tables, and you've
gone a long way towards implementation.
I'm glad you appreciate it. The most important thing I've done is
enabling the use of char-tables and range-tables instead of the
old-fashioned 256-element vectors, which really sucked.
One important thing that we miss is and that I have _not_ added is the
merging of display-tables at redisplay times, so if a character is not
found in one display-table (say window-wide), it's looked up in the
other one (say frame-wide), and so on until it's now.
What happens now is that first the display-table is determined. Then,
if the character is not found in that display-table, it's displayed
raw. Sucks. The room for the desired behaviour was left by you, as
shown in this specifier.c docstring:
-- For chartable (e.g. display table) specifiers, MATCHSPEC should be a
character, and the specification (a chartable) must give a value for
that character in order to be considered. This allows you to specify,
e.g., a buffer-local display table that only gives values for particular
characters. All other characters are handled as if the buffer-local
display table is not there. (Chartable specifiers are not yet
implemented.)
Unfortunately, I found the redisplay too complex to actually implement
this.