57 Commits

Author SHA1 Message Date
Khaled Hosny
be8ec35934 [OS/2] Add recalcCodePageRanges
Ported from the ufo2ft code (which is port from FontForge code), with
some additional functions for parity with recalcUnicodeRanges.
2023-11-11 01:54:00 +02:00
NFSL2001
be44c92cfa
Update Lib/fontTools/ttLib/tables/O_S_2f_2.py
Co-authored-by: Cosimo Lupo <cosimo@anthrotype.com>
2023-07-07 23:12:44 +08:00
NightFurySL2001
ef8e15a08c
Use Panose class 2023-07-07 22:09:58 +08:00
Nikolaus Waxweiler
54d6aaffb6 Guard against a ZeroDivisonError
The code was copied from ufo2ft.
2023-03-01 19:52:43 +00:00
Nikolaus Waxweiler
d584daa8fd Blacken code 2022-12-13 11:26:36 +00:00
Cosimo Lupo
bb1dbf4198 drop the 'X' from recalcAvgCharWidth method name 2022-04-21 19:02:39 +01:00
Cosimo Lupo
3731056401 [OS/2] define recalcXAvgCharWidth method
copied from current subsetter code (matches ufo2ft's outlineCompiler)
2022-04-21 18:44:44 +01:00
Just van Rossum
5fc65d7168
Misc py23 cleanups (#2243)
* Replaced all from ...py23 import * with explicit name imports, or removed completely when possible.
* Replaced tounicode() with tostr()
* Changed all BytesIO ans StringIO imports to from io import ..., replaced all UnicodeIO with StringIO.
* Replaced all unichr() with chr()
* Misc minor tweaks and fixes
2021-03-29 11:45:58 +02:00
Guillaume Ayoub
2a1f09dbb2 Don’t calculate whole sets of unicode codepoints
_getUnicodeRangeSets used to calculate sets containing lots of numbers, only to
get intersections between a set and ranges. Creating and manipulating a lot of
big sets requires a lot of memory.

The function has been replaced by _getUnicodeRanges, returning a list of range
starts boundaries and a list of range stops + corresponding bits.

Tests on intersectUnicodeRanges save about 130 MB (!) of RAM, with no
significant speed penalty.
2020-06-05 11:28:18 +02:00
Nikolaus Waxweiler
01328213c7 Remove __future__ imports 2019-08-09 12:20:13 +01:00
schriftgestalt
47f8d06d9a fix sign of fsType 2019-05-23 17:40:01 +02:00
Cosimo Lupo
28bb992c1f replace int(round(...)) with round(...)
We don't need to cast to int when using the round function from py23,
as this is a backport of python3's built-in round and thus it returns
an int when called with a single argument.
2017-10-22 12:03:52 +01:00
Behdad Esfahbod
dc1a3bdb1d [OS/2] Don't fail if font does not have cmap table 2017-01-09 01:09:21 -08:00
Masaya Nakamura
08a0d550db Fix "Private Use (plane 15)" range
https://twitter.com/ken_lunde/status/796564061206913024
https://www.microsoft.com/typography/otspec/errata.htm
2016-11-21 11:26:57 +09:00
moyogo
acfb137881 OS2/2: fix checking fsSelection bits matching head.macStyle bits 2016-11-03 11:37:00 +00:00
moyogo
49ac9ba5cb OS/2: fsSelection bits 0 and 5 should match head.macStyle bits 1 and 0 2016-10-24 10:03:50 +01:00
moyogo
b5002eb5d4 OS/2: if fsSelection bit 6 is on bits then 0 and 5 must be clear 2016-10-22 13:06:30 +01:00
moyogo
c46423df3a OS/2: warn when fsSelection bits defined in version 4 are on but version < 4 2016-10-22 13:06:30 +01:00
Cosimo Lupo
afd3f6618c OS/2: 'global' is not needed
as no assignment is done, only append.
2016-04-10 23:13:59 +01:00
Behdad Esfahbod
b6a78d5664 Simplify fix for https://github.com/behdad/fonttools/pull/498 2016-02-02 11:52:24 +08:00
Cosimo Lupo
ed29a07670 [O_S_2f_2] skip updateFirstAndLastCharIndex if cmap table class is DefaultTable
Fixes https://github.com/behdad/fonttools/issues/497
2016-02-01 18:04:39 +00:00
Cosimo Lupo
e46be4d7d6 [O_S_2f_2] replace print with logger 2016-01-27 19:02:48 +00:00
Cosimo Lupo
20d7849697 [OS/2] add Unicode ranges data from OT spec, plus methods to get/set bits manually, or recalc/prune automatically 2016-01-27 18:37:29 +00:00
Cosimo Lupo
5052950f81 [OS/2] fix misspelled attributes, and keep them using property decorators 2015-06-13 23:19:18 +01:00
Cosimo Lupo
1fbdbca41a [OS/2] update fsFirstCharIndex and fsLastCharIndex upon compile;
add comment to XML output;
use all unicode cmap subtables, but set 0xFFFF as max value for USHORT
2015-05-09 10:17:12 +01:00
Behdad Esfahbod
b30e12ae00 More whitespace 2015-04-26 02:01:01 -04:00
Behdad Esfahbod
bd67253118 Some more whitespace fixes from pep8 tool 2015-04-26 01:59:01 -04:00
Behdad Esfahbod
1ae29591ef from __future__ import absolute_import
Such that our Python 2 is closer to Python 3.

Part of https://github.com/behdad/fonttools/issues/77
2014-01-14 15:07:50 +08:00
Behdad Esfahbod
e388db566b py23 Use new-style classes
Such that we get the same semantics in both Python 2 and 3.
2013-11-28 18:53:30 -05:00
Behdad Esfahbod
32c10eecff py23 from __future__ import division and adjust divisions 2013-11-28 17:32:42 -05:00
Behdad Esfahbod
30e691edd0 py23 from __future__ import print_function 2013-11-27 17:27:45 -05:00
Behdad Esfahbod
7ed91eca1e py23 import in all nontrivial source files and unused import cleanup 2013-11-27 15:25:00 -05:00
Behdad Esfahbod
b774f9f684 2to3 --fix=types manual additions
Don't know why the tool didn't catch these.
2013-11-27 14:01:44 -05:00
Behdad Esfahbod
ac1b435946 2to3 --fix=idioms 2013-11-27 04:15:34 -05:00
Behdad Esfahbod
ecbe4c87b5 2to3 --fix=numliterals with manual cleanup 2013-11-27 03:37:29 -05:00
Behdad Esfahbod
3a9fd30180 2to3 equivalent to --fix=tuple_params
I hope I got this all right...
2013-11-27 03:30:21 -05:00
Behdad Esfahbod
cd5aad92f2 2to3 --fix=raise 2013-11-27 02:42:28 -05:00
Behdad Esfahbod
180ace6a5f 2to3 --fix=ne 2013-11-27 02:40:30 -05:00
Behdad Esfahbod
2b06aaa2a6 2to3 --fix=import 2013-11-27 02:34:11 -05:00
Behdad Esfahbod
862b14722f Improve OS/2 format 5 compile 2013-11-26 19:33:49 -05:00
Behdad Esfahbod
f1e8c3e8a0 Minor 2013-11-25 08:09:48 -05:00
Behdad Esfahbod
b3c860477c Remove workaround for buggy OS/2 tables
Those fonts should all be gone by now...
2013-11-25 07:27:43 -05:00
Behdad Esfahbod
88a1fabd06 Assert on size of OS/2 version 5
As to reject new bogus fonts.
2013-11-25 07:23:51 -05:00
Behdad Esfahbod
170fc9d40f Use true point sizes in new OS/2 version 5 fields 2013-11-25 07:21:10 -05:00
Olivier Berten
aa37c0aa7d Support for OS/2 table version 5 as proposed by Microsoft
https://github.com/fontforge/fontforge/issues/956
2013-11-19 00:44:38 +01:00
Behdad Esfahbod
8413c108d2 Move sstruct under fontTools.misc
Our footprint in the Python module namespace is all under
fontTools now.  User code importing sstruct should be updated
to say "from fontTools.misc import sstruct".
2013-09-17 16:59:39 -04:00
pabs3
df16db5bb8 Be more thorough when working around font bugs in the OS/2 table
https://bugs.launchpad.net/ubuntu/+source/fonttools/+bug/223884

git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@584 4cde692c-a291-49d1-8350-778aa11640f8
2011-02-13 06:25:21 +00:00
jvr
4acb76de2e added 'support' for OS/2 version 4: can anyone verify this is correct? I can't seem to find an OS/2 v4 spec...
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@513 4cde692c-a291-49d1-8350-778aa11640f8
2007-10-22 09:31:02 +00:00
fcoiffie
04985bfdde Unsigned long data field must be packed with "L" instead of "l" (sometimes an OverflowError can occur)
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@501 4cde692c-a291-49d1-8350-778aa11640f8
2006-01-12 14:04:40 +00:00
jvr
7718d95951 whoops, forgot one part os OS/2 version 3 support
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@462 4cde692c-a291-49d1-8350-778aa11640f8
2004-09-25 07:19:27 +00:00