\XeTeXcharclass for glues (including null ones) is 4095 (was 255).
High punctuation spacing in French with XeTeX is based on \XeTeXcharclass and \XeTeXinterchartoks both in polyglossia and babel/frenchb.
As a maintainer of frenchb, I need to check whether a /positive/ glue preceeds one of the ; : ! : characters; checking the \XeTeXcharclass doesn't make a difference between null and positive glues. This is the origin of the bug:
xelatex + frenchb introduce extra spaces before some characters in lstlisting blocks
[The lstlisting environment adds "\glue 0 plus 1fil minus 1fil" betweeen every token]
With pdfTeX or LuaTeX, I check the width of the glue and decide whether to add space or not, that's why the bug mentioned above only occurs with XeTeX. A possible fix for XeTeX would be to define a special \XeTeXcharclass, say
\newXeTeXintercharclass\FBnulglue
but I have no idea of how to put glues with default width 0pt into this class. Thanks for any hint!
\XeTeXinterchartoks xx yy = {\hsip zz\relax}– David Carlisle Dec 04 '15 at 17:03