summaryrefslogtreecommitdiff
path: root/src/xdisp.c
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2023-02-22 14:55:05 +0200
committerEli Zaretskii <eliz@gnu.org>2023-02-22 14:55:05 +0200
commitba91a76659b911f90914a61a2f2d5c0073a8890a (patch)
treed39030b0c0feb5d4d6aafaad0a424e2cd7141a6c /src/xdisp.c
parentfb5dbf6de73fa034338448f1029c55f85d1078b4 (diff)
downloademacs-ba91a76659b911f90914a61a2f2d5c0073a8890a.tar.gz
emacs-ba91a76659b911f90914a61a2f2d5c0073a8890a.tar.bz2
emacs-ba91a76659b911f90914a61a2f2d5c0073a8890a.zip
Avoid division by zero in get_narrowed_* functions
* src/xdisp.c (get_narrowed_width, get_narrowed_len): Return at least 1 as the value. (Bug#61704)
Diffstat (limited to 'src/xdisp.c')
-rw-r--r--src/xdisp.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/xdisp.c b/src/xdisp.c
index f5d54974b13..b64f1d35cbc 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -3498,18 +3498,18 @@ init_iterator (struct it *it, struct window *w,
static int
get_narrowed_width (struct window *w)
{
- int fact;
/* In a character-only terminal, only one font size is used, so we
can use a smaller factor. */
- fact = EQ (Fterminal_live_p (Qnil), Qt) ? 2 : 3;
- return fact * window_body_width (w, WINDOW_BODY_IN_CANONICAL_CHARS);
+ int fact = EQ (Fterminal_live_p (Qnil), Qt) ? 2 : 3;
+ int width = window_body_width (w, WINDOW_BODY_IN_CANONICAL_CHARS);
+ return fact * max (1, width);
}
static int
get_narrowed_len (struct window *w)
{
- return get_narrowed_width (w) *
- window_body_height (w, WINDOW_BODY_IN_CANONICAL_CHARS);
+ int height = window_body_height (w, WINDOW_BODY_IN_CANONICAL_CHARS);
+ return get_narrowed_width (w) * max (1, height);
}
ptrdiff_t