SHA256
1
0
forked from pool/emacs

Accepting request 945990 from editors

- Skip patch boo1180353-6d8144a2.patch for emacs 25.3 as already
  part of emacs 27.2: Was fix for boo#1180353 that was a possible
  segmentation fault in case of stack overflow of etags

- Add patch boo1178942-bedb3cb6.patch to avoid that emacs hang in
  isearch (boo#1178942)

OBS-URL: https://build.opensuse.org/request/show/945990
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/emacs?expand=0&rev=162
This commit is contained in:
Dominique Leuenberger 2022-01-14 22:12:25 +00:00 committed by Git OBS Bridge
commit 5176f8a061
3 changed files with 64 additions and 1 deletions

47
boo1178942-bedb3cb6.patch Normal file
View File

@ -0,0 +1,47 @@
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:

View File

@ -1,3 +1,10 @@
-------------------------------------------------------------------
Thu Jan 13 07:25:28 UTC 2022 - Dr. Werner Fink <werner@suse.de>
- Skip patch boo1180353-6d8144a2.patch for emacs 25.3 as already
part of emacs 27.2: Was fix for boo#1180353 that was a possible
segmentation fault in case of stack overflow of etags
-------------------------------------------------------------------
Mon Nov 22 15:02:29 UTC 2021 - Martin Liška <mliska@suse.cz>
@ -25,6 +32,12 @@ Mon Nov 15 13:07:51 UTC 2021 - Dr. Werner Fink <werner@suse.de>
- Again disable workaround with XLIB_SKIP_ARGB_VISUALS set (boo#1191517)
- Correct quoting of anonymous function calls
-------------------------------------------------------------------
Thu Sep 9 10:16:16 UTC 2021 - Dr. Werner Fink <werner@suse.de>
- Add patch boo1178942-bedb3cb6.patch to avoid that emacs hang in
isearch (boo#1178942)
-------------------------------------------------------------------
Wed Sep 8 09:05:56 UTC 2021 - Dr. Werner Fink <werner@suse.de>

View File

@ -1,7 +1,7 @@
#
# spec file for package emacs
#
# Copyright (c) 2021 SUSE LLC
# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -181,6 +181,8 @@ Patch29: emacs-27.1-Xauthority4server.patch
# This patch allows vte based terminals like gnome-terminal to get 24bit colors
# without setting a custom terminfo, honouring COLORTERM=truecolor
Patch30: emacs-27.2-COLORTERM-24bit.patch
# PATCH-FIX-UPSTREAM boo#1178942 -- emacs hang in isearch
Patch31: boo1178942-bedb3cb6.patch
Patch39: sigsegv-stack.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -299,6 +301,7 @@ and most assembler-like syntaxes.
%patch26 -p0 -b .fmt
%patch29 -p0 -b .xauth
%patch30 -p1 -b .colorterm
%patch31 -p0 -b .isearch
%patch39 -p1
%patch -p0 -b .0
%if %{without tex4pdf}