Open GoogleCodeExporter opened 9 years ago
Norbert, these whole bits are underdefined in the specs, so we have kinda given
up on setting them right. But we gave up mostly because we couldn't find any
modern software that cared about the bits. Do you know any such software?
Original comment by roozbeh@google.com
on 16 Mar 2015 at 8:28
Original comment by roozbeh@google.com
on 16 Mar 2015 at 8:28
I noticed the issue because Xcode, Apple's IDE, shows Noto Sans Javanese as a
list of Arabic glyphs. You can see this, for example, if you simply drop the
font file on the Xcode icon in the Finder to "open" the font. It's more
noticeable when you have the font checked into a project and use Xcode's Commit
command to review changes to files in the project.
This use alone certainly does not qualify the issue as high priority.
Original comment by googled...@lindenbergsoftware.com
on 16 Mar 2015 at 9:45
Interesting. Now at least we know there is software out there that uses the
bits.
Doug, the best way forward is perhaps fixing the bits in autofix_for_release.
notolint already has some code for checking some of it, but I don't remember if
it's turned on or not. Parts of it (the table from the OpenType spec) may not
be open sourced yet either.
Original comment by roozbeh@google.com
on 16 Mar 2015 at 9:50
So, it would help to know more about how XCode uses these bits.
Other Noto fonts have more bits set than the existing logic would dictate. My
impression is that the fonts set a bit whenever the cmap has a character in any
of the ranges in the corresponding bucket. And sometimes bits are set when
there are no characters in the defined ranges (it may be the range definitions
their software uses are different from those in the spec that I implemented).
I implemented the opentype unicoderange data from the spec, since as Roozbeh
mentioned, nototools didn't have the data the (disabled) lint code required. I
changed the heuristic to require that either 200 chars or 50% of any of the
ranges for a bit needed to be set. This is a bit more lenient than the
original heuristic, which for example would not mark CJK functional unless big
chunks of CJK unified Ideographs Extension A and B were present. But when you
get down to it, all these heuristics are suspect. It's not even clear what
'functional' means, since it's not in the context of a language.
On the other hand, it seems safe to clear bits we don't have some reasonable
coverage for. So autofixing this doesn't hurt.
Original comment by dougf...@google.com
on 18 Mar 2015 at 1:13
Original issue reported on code.google.com by
googled...@lindenbergsoftware.com
on 16 Mar 2015 at 12:02