Subject: bug#3452: 23.0.94; display

From: Eli Zaretskii <[email-masked]>
Date: Sun, 07 Jun 2009 18:53:50 -0400

> From: Chong Yidong <[email-masked]>
> Cc: [email-masked],  [email-masked]
> Date: Sun, 07 Jun 2009 16:41:33 -0400
> 
> 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))

I don't see why this should be applicable to the characters in
question.  Perhaps the code you found assumes that any zero-width
character is necessarily a non-base character to be used in
compositions.  If so, this is a mistake, I think.