Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:AndreasSchwab:emacs:30
emacs
boo1178942-bedb3cb6.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File boo1178942-bedb3cb6.patch of Package emacs
From bedb3cb66541fd4dd35cf15261c6d99f132e7d2c Mon Sep 17 00:00:00 2001 From: Eli Zaretskii <eliz@gnu.org> Date: Wed, 15 Apr 2020 14:28:21 +0300 Subject: [PATCH] Avoid infloop in redisplay when wrap-prefix is too wide * src/xdisp.c (move_it_to): Avoid infloop due to wrap-prefix that is wide enough to leave no space to display even the first character of the continuation line. (Bug#40632) --- src/xdisp.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) --- src/xdisp.c +++ src/xdisp.c 2021-09-09 10:14:45.107931449 +0000 @@ -9727,9 +9727,13 @@ move_it_to (struct it *it, ptrdiff_t to_ int line_height, line_start_x = 0, reached = 0; int max_current_x = 0; void *backup_data = NULL; + ptrdiff_t orig_charpos = -1; + enum it_method orig_method = NUM_IT_METHODS; for (;;) { + orig_charpos = IT_CHARPOS (*it); + orig_method = it->method; if (op & MOVE_TO_VPOS) { /* If no TO_CHARPOS and no TO_X specified, stop at the @@ -9963,7 +9967,17 @@ move_it_to (struct it *it, ptrdiff_t to_ } } else - it->continuation_lines_width += it->current_x; + { + /* Make sure we do advance, otherwise we might infloop. + This could happen when the first display element is + wider than the window, or if we have a wrap-prefix + that doesn't leave enough space after it to display + even a single character. */ + if (IT_CHARPOS (*it) == orig_charpos + && it->method == orig_method) + set_iterator_to_next (it, false); + it->continuation_lines_width += it->current_x; + } break; default:
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor