From 6ca35612af7c6f3557a3bae0fdc4123042e7e762 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Mon, 24 Feb 2025 21:02:14 +0200 Subject: [PATCH] Fix a typo in 'window_text_pixel_size' This typo caused strange mis-behaviors in buffers with non-ASCII characters. * src/xdisp.c (window_text_pixel_size): Fix typo. (Bug#76519) (cherry picked from commit 0c6b8643aec24935f82c63d43219f26378e3e578) --- src/xdisp.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/xdisp.c b/src/xdisp.c index dc2e1c168fb..e06c398af3b 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -11653,6 +11653,7 @@ window_text_pixel_size (Lisp_Object window, Lisp_Object from, Lisp_Object to, it.bidi_p = false; int start_x; + ptrdiff_t start_bpos = BYTEPOS (startp); if (vertical_offset != 0) { int last_y; @@ -11685,6 +11686,7 @@ window_text_pixel_size (Lisp_Object window, Lisp_Object from, Lisp_Object to, it.current_y = (WINDOW_TAB_LINE_HEIGHT (w) + WINDOW_HEADER_LINE_HEIGHT (w)); start = clip_to_bounds (BEGV, IT_CHARPOS (it), ZV); + start_bpos = CHAR_TO_BYTE (start); start_y = it.current_y; start_x = it.current_x; } @@ -11746,7 +11748,7 @@ window_text_pixel_size (Lisp_Object window, Lisp_Object from, Lisp_Object to, it.current_y = start_y; /* If FROM is on a newline, pretend that we start at the beginning of the next line, because the newline takes no place on display. */ - if (FETCH_BYTE (start) == '\n') + if (FETCH_BYTE (start_bpos) == '\n') it.current_x = 0, it.wrap_prefix_width = 0; if (!NILP (x_limit)) { -- 2.39.5