There are problems in the maxComponentDepth field in the maxp table. The field is defined defined according to the following part of OpenType spec: http://www.microsoft.com/OpenType/OTSpec/maxp.htm For the field, the spec says "Maximum levels of recursion; 1 for simple components." This means that if a font doesn't use references the value should be one, but if it does, for each level, one should add one to the value. All DejaVu fonts currently have "4" in the field. The MS Font Validator tool generates an error about the field, saying that based on its computations, the value should be 6. From my own computations, it should be at least 5 for DejaVu fonts. For DejaVuSans, for example, the following sequence can be found: uni1F92 -> uni1F22 -> uni1FCD -> uni1FEF -> grave If the rendering systems actually use this value, this will result in problems rendering the fonts.
ah, so that was causing that! I had that problem once with invisible glyphs in the Greek Extended block, and I couldn't figure out why, and thought I did something very wrong with so many recursions. But I have again the impression I can't set that maxComponentDepth value -- it's not showing in the maxp settings window. Going to investigate this further later today.
We could add $font->{'maxp'}->{'maxComponentDepth'} = 5; to ttpostproc.pl Should it be 5 or 6? see http://cpan.uwinnipeg.ca/htdocs/Font-TTF/Font/TTF/Maxp.pm.htm
(In reply to comment #2) > Should it be 5 or 6? Well, the MS tool tells me "6" for all the fonts but SansExtraLight, and "7" for SansExtraLight. But a tool I've written (which may be buggy) can't find anything longer than 5.
(In reply to comment #3) > But a tool I've written (which may be buggy) can't find anything > longer than 5. I can post the script here, of course.
(In reply to comment #4) > I can post the script here, of course. Yes, if that's no problem for you. We can have a look and use it :-).
Created attachment 7901 [details] script to find the longest list of glyphs referencing each other Attaching the script I wrote to compute the longest list. It takes a TTX file as the input and outputs first the length of the longest sequence it finds and then the sequence with their components. May have bugs.
Roozbeh Pournader Do you still experience this issue with newer soft ? Please check the status of your issue.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.