Subject: Re: bug#3452: 23.0.94; display

From: Chong Yidong <[email-masked]>
Date: Sun, 07 Jun 2009 16:41:33 -0400

Eli Zaretskii <[email-masked]> writes:

> Btw, I don't understand how these characters are related to
> compositions.  They should not be composed with anything, they always
> stand for themselves.

Actually, according to composition-function-table:

M-: (aref composition-function-table #x202d)

 => ([\c.\c^+ 1 compose-gstring-for-graphic]
     [nil 0 compose-gstring-for-graphic])

All zero-width characters are explicitly given non-nil entries in
composition-function-table, in composite.el:

(let ((elt '(["\\c.\\c^+" 1 compose-gstring-for-graphic]
             [nil 0 compose-gstring-for-graphic])))
  (map-char-table
   #'(lambda (key val)
       (if (= val 0)
           (set-char-table-range composition-function-table key elt)))
   char-width-table))