<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div><br></div><div>Only to point out frenchb.ldf (babel-french) does indeed</div><div><br></div><div><div> \ifdim\the\XeTeXversion\XeTeXrevision pt<0.99994pt</div><div> \FB@nonchar=255 \relax</div><div> \else</div><div> \FB@nonchar=4095 \relax</div><div> \fi</div></div><div><br></div><div>whereas I see no similar thing in gloss-french.ldf</div><div><br></div><div>There seems to be two problems now, whereas</div><div>I only had one initially</div><div><br></div><div>- my mwe does not compile with xetex 0.99992</div><div><br></div><div>- possibly, polyglossia-french has an issue with</div><div>xetex 0.99994 and later</div><div><br></div><div>Jean-François</div><br><div><div>Le 3 déc. 2017 à 11:58, jfbu <<a href="mailto:jfbu@free.fr">jfbu@free.fr</a>> a écrit :</div><br class="Apple-interchange-newline"><blockquote type="cite"><meta http-equiv="Content-Type" content="text/html charset=utf-8"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Thanks Zdeněk!<div><br></div><div>Should I thus conclude from this that polyglossia + French is currently broken ?</div><div>indeed the file gloss-french.ldf uses hardcoded 255 at various locations.</div><div><br></div><div>I am a bit lost though because my test mwe</div><div><br></div><div><div>\catcode`@ 11</div><div>\XeTeXinterchartokenstate=1</div><div>\newXeTeXintercharclass\french@punctthin </div><div>\XeTeXcharclass `\; \french@punctthin</div><div> \XeTeXinterchartoks 255 \french@punctthin = {\nobreak\thinspace}%</div><div>\catcode`;\active</div><div>\def;{\discretionary{\char`\;}{}{\char`\;}}</div><div>a;b</div><div>\bye</div><div><br></div></div><div>compiles fine with current XeTeX, but not with TL2015 XeTeX.</div><div><br></div><div>(the @ thing is only to stay close to control sequence names from gloss-french.ldf)</div><div><br></div><div>To clarify, the \def;{\discretionary{\char`\;}{}{\char`\;}} is analogous to</div><div>the kind of things Sphinx does in verbatim listings to allow linebreaks,</div><div>but isn't the exact thing.</div><div><br></div><div>Anyway, it does not originate from polyglossia nor</div><div>gloss-french.ldf but is a Sphinx add-on inside code listings.</div><div><br></div><div>If the problem can be solved by a patch at macro level, that would</div><div>be best, because it would allow the CPython internationalization</div><div>team to build their PDF docs without worrying about which XeTeX</div><div>they use, I notice some of their team uses Debian 2013.</div><div><br></div><div>Best</div><div><br></div><div>Jean-François</div><div><br></div><div><div><div>Le 3 déc. 2017 à 11:01, Zdenek Wagner <<a href="mailto:zdenek.wagner@gmail.com">zdenek.wagner@gmail.com</a>> a écrit :</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr"><div><div>Hi,<br><br></div>please, notice that the number of character classes was increased from 256 to 4096, so 255 no longer works as a boundary but 4095 must be used. I use the following code that I took from some other package:<br><br>\edef\CSat{\the\catcode`\@} % in order to work in plain XeTeX<br>\catcode`\@=11<br>\ifdefined\e@alloc@intercharclass@top<br> \chardef\CSboundary=\e@alloc@intercharclass@top<br>\else<br> \ifdefined\XeTeXinterwordspaceshaping<br> \chardef\CSboundary=4095 %<br> \def\newXeTeXintercharclass{%<br> \e@alloc\XeTeXcharclass\chardef<br> \xe@alloc@intercharclass\m@ne\@ucharclass@boundary}<br> \else<br> \chardef\CSboundary=255<br> \fi<br>\fi<br>\catcode`\@=\CSat<br><br></div>Afterwards I use \CSboundary instead of a fixed number. It thus works both with the old and new XeTeX.<br><br><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature" data-smartmail="gmail_signature">Zdeněk Wagner<br><a href="http://ttsm.icpf.cas.cz/team/wagner.shtml" target="_blank">http://ttsm.icpf.cas.cz/team/wagner.shtml</a><br><a href="http://icebearsoft.euweb.cz/" target="_blank">http://icebearsoft.euweb.cz</a></div></div>
<br><div class="gmail_quote">2017-12-03 10:19 GMT+01:00 jfbu <span dir="ltr"><<a href="mailto:jfbu@free.fr" target="_blank">jfbu@free.fr</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
I need some help to identify which XeTeX release fixed<br>
that problem, the mwe is<br>
<br>
\catcode`@ 11<br>
\XeTeXinterchartokenstate=1<br>
\newXeTeXintercharclass\<wbr>french@punctthin<br>
\XeTeXcharclass `\; \french@punctthin<br>
\XeTeXinterchartoks 255 \french@punctthin = {\nobreak\thinspace}%<br>
\catcode`;\active<br>
\def;{\discretionary{\char`\;}<wbr>{}{\char`\;}}<br>
a;b<br>
\bye<br>
<br>
In real life it appeared in a Polyglossia+French context<br>
with the semi-colon make active to insert a \discretionary<br>
similar to the above. There is no issue in lualatex.<br>
<br>
It is currently seen at Python upstream (CPython) when<br>
they try to build French docs (via Sphinx)<br>
<br>
<a href="https://bugs.python.org/issue31589" rel="noreferrer" target="_blank">https://bugs.python.org/<wbr>issue31589</a><br>
<br>
and it would be nice to pinpoint which XeTeX release<br>
precisely is ok. I know 0.99992 is bad and 0.99996 is good,<br>
but can't easily bisect.<br>
<br>
Best,<br>
<br>
Jean-François<br>
<br>
<br>
<br>
<br>
------------------------------<wbr>--------------------<br>
Subscriptions, Archive, and List information, etc.:<br>
<a href="http://tug.org/mailman/listinfo/xetex" rel="noreferrer" target="_blank">http://tug.org/mailman/<wbr>listinfo/xetex</a><br>
</blockquote></div><br></div></div>
</blockquote></div><br></div></div></blockquote></div><br></body></html>