help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Manually parsing char-tables


From: Eli Zaretskii
Subject: Re: Manually parsing char-tables
Date: Sun, 20 Feb 2022 14:50:54 +0200

> Date: Sun, 20 Feb 2022 11:09:26 +0000
> From: Richard Wordingham <richard.wordingham@ntlworld.com>
> 
> I am trying to understand how Arabic script rendering works in Emacs
> 28.0.90, as it seems to be using a different mechanism to that used for
> Indic or European scripts.  (There seems to be more to it than just the
> asymmetries between right-to-left and left-to-right.)  To that end, I
> am trying to understand the contents of the variable
> composition-function-table.

I think it is easier to just look at how the Arabic part of this table
is populated.  See lisp/language/misc-lang.el starting from line 105.

>       #^^[3 1152 nil nil nil #1# #1# #1# #1# #1# #1# #1# nil nil nil
>       nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
>       nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
>       nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
>       nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
>       nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
>       nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
>       nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
>       nil nil nil]
> 
> (I've converted lines to paragraphs and abbreviated leading white
> space.)
> 
>  I'm guessing that #1# is a macro invocation; when I invoke (print
>  composition-function-table), I get something similar, but with #1#
>  expanded and the '#1=' in the apparent macro definition omitted.

#1# is a backreference to the value indicated by #1=.

> Where is this syntax explained?  I've looked in the elisp manual, but
> not found it, though I may simply have failed to guess where such a
> description was.

See the node "Circular Objects" there.

(Btw, 28.0.90 is not the latest pretest of Emacs 28, there's 28.0.91.)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]