Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 6 additions & 9 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -528,15 +528,12 @@ def build_extensions(self) -> None:
)

if root is None and pkg_config:
if isinstance(lib_name, str):
_dbg("Looking for `%s` using pkg-config.", lib_name)
root = pkg_config(lib_name)
else:
for lib_name2 in lib_name:
_dbg("Looking for `%s` using pkg-config.", lib_name2)
root = pkg_config(lib_name2)
if root:
break
for lib_name2 in (
[lib_name] if isinstance(lib_name, str) else lib_name
):
_dbg("Looking for `%s` using pkg-config.", lib_name2)
if root := pkg_config(lib_name2):
break

if isinstance(root, tuple):
lib_root, include_root = root
Expand Down
33 changes: 15 additions & 18 deletions src/PIL/PcfFontFile.py
Original file line number Diff line number Diff line change
Expand Up @@ -158,32 +158,29 @@ def _load_metrics(self) -> list[tuple[int, int, int, int, int, int, int, int]]:

fp, format, i16, i32 = self._getformat(PCF_METRICS)

append = metrics.append
def append(
left: int,
right: int,
width: int,
ascent: int,
descent: int,
attributes: int = 0,
) -> None:
xsize = right - left
ysize = ascent + descent
metrics.append(
(xsize, ysize, left, right, width, ascent, descent, attributes)
)

if (format & 0xFF00) == 0x100:
# "compressed" metrics
for i in range(i16(fp.read(2))):
left = i8(fp.read(1)) - 128
right = i8(fp.read(1)) - 128
width = i8(fp.read(1)) - 128
ascent = i8(fp.read(1)) - 128
descent = i8(fp.read(1)) - 128
xsize = right - left
ysize = ascent + descent
append((xsize, ysize, left, right, width, ascent, descent, 0))
append(*(i8(fp.read(1)) - 128 for _ in range(5)))

else:
# "jumbo" metrics
for i in range(i32(fp.read(4))):
left = i16(fp.read(2))
right = i16(fp.read(2))
width = i16(fp.read(2))
ascent = i16(fp.read(2))
descent = i16(fp.read(2))
attributes = i16(fp.read(2))
xsize = right - left
ysize = ascent + descent
append((xsize, ysize, left, right, width, ascent, descent, attributes))
append(*(i16(fp.read(2)) for _ in range(6)))

return metrics

Expand Down
Loading