add error handling for terminal dimension retrieval

This commit is contained in:
2026-02-14 10:41:09 +01:00
parent e5c9a8ee30
commit ec00a0e043
+4
View File
@@ -728,6 +728,8 @@ Unicode Placeholders 是 Kitty 图像协议的一个独特功能, 它允许使
buf = array.array('H', [0, 0, 0, 0]) buf = array.array('H', [0, 0, 0, 0])
fcntl.ioctl(sys.stdin.fileno(), termios.TIOCGWINSZ, buf) fcntl.ioctl(sys.stdin.fileno(), termios.TIOCGWINSZ, buf)
rows, cols, x_pixels, y_pixels = buf rows, cols, x_pixels, y_pixels = buf
if 0 in (rows, cols, x_pixels, y_pixels):
raise RuntimeError("Failed to get terminal dimensions")
cell_width = x_pixels / cols cell_width = x_pixels / cols
cell_height = y_pixels / rows cell_height = y_pixels / rows
@@ -740,6 +742,8 @@ Unicode Placeholders 是 Kitty 图像协议的一个独特功能, 它允许使
new_rows = min(rows, max_rows) new_rows = min(rows, max_rows)
new_x_pixels = cell_width * new_cols new_x_pixels = cell_width * new_cols
new_y_pixels = cell_height * new_rows new_y_pixels = cell_height * new_rows
if 0 in (new_cols, new_rows, new_x_pixels, new_y_pixels):
raise RuntimeError("Invalid terminal dimensions or maximum size constraints")
# If the image is small enough to fit without resizing # If the image is small enough to fit without resizing
if self.image.width <= new_x_pixels and self.image.height <= new_y_pixels: if self.image.width <= new_x_pixels and self.image.height <= new_y_pixels: