[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#53343: 29.0.50; assertion failure in diff--iterate-hunks
From: |
Stephen Berman |
Subject: |
bug#53343: 29.0.50; assertion failure in diff--iterate-hunks |
Date: |
Tue, 18 Jan 2022 12:02:17 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) |
Trying to view in Gnus an attached and buttonized diff in a certain
article raises an assertion failure. To reproduce:
0. emacs -Q
1. M-x gnus
2. Type `y' at prompt
3. Type `B RET news.gmane.io RET'
4. Type `C-s gmane.emacs.bugs RET RET'
5. Type `1 RET' at prompt
6. Type `j' and enter `<87fspm0z47.fsf@stranik.org> RET' at the prompt
7. Click on the Options menu and check "Enter Debugger on Error"
8. Type `2 b'
=>
Debugger entered--Lisp error: (cl-assertion-failed ((looking-at
diff-hunk-header-re) nil))
cl--assertion-failed((looking-at diff-hunk-header-re))
diff--iterate-hunks(975 #f(compiled-function (beg end) #<bytecode
0x55bd99118e1ddef>))
diff--font-lock-syntax(975)
font-lock-fontify-keywords-region(1 975 nil)
font-lock-default-fontify-region(1 975 nil)
font-lock-fontify-region(1 975)
#f(compiled-function (beg end) #<bytecode -0x177a72732a745bc7>)(1 975)
font-lock-ensure()
mm-display-inline-fontify((#<buffer *mm*-927541> ("text/x-diff") nil nil
("attachment" (filename . "ebrowse-emacs-27.2-fix.diff")) nil nil nil)
diff-mode)
mm-display-patch-inline((#<buffer *mm*-927541> ("text/x-diff") nil nil
("attachment" (filename . "ebrowse-emacs-27.2-fix.diff")) nil nil nil))
mm-display-inline((#<buffer *mm*-927541> ("text/x-diff") nil nil
("attachment" (filename . "ebrowse-emacs-27.2-fix.diff")) nil nil nil))
gnus-mm-display-part((#<buffer *mm*-927541> ("text/x-diff") nil nil
("attachment" (filename . "ebrowse-emacs-27.2-fix.diff")) nil nil nil))
gnus-article-view-part(2)
funcall-interactively(gnus-article-view-part 2)
call-interactively(gnus-article-view-part nil nil)
command-execute(gnus-article-view-part)
The assertion fails when point is at the beginning of the last line in
the following excerpt from the diff (in buffer " *temp*")
*** /var/home/janstranik/src/emacs-27.2/lib-src/ebrowse.c~ 2021-01-28
11:52:16.000000000 -0600
--- /var/home/janstranik/src/emacs-27.2/lib-src/ebrowse.c 2021-09-24
09:31:49.136287028 -0500
***************
*** 1924,1931 ****
This happens because diff-beginning-of-hunk calls re-search-forward on
diff-hunk-header-re, which puts point at the end the line "*** 1924,1931
****" and then calls (forward-line 0), putting point at the beginning of
that line. But then (looking-at diff-hunk-header-re) returns nil,
raising the assertion in diff--iterate-hunks. Replacing (forward-line
0) in diff-beginning-of-hunk with (forward-line -1) makes the assertion
succeed.
I'm not sure if this is a bug or if the diff is malformed. But evidence
that the diff is not malformed is that if the diff in the article is
saved to a file (by typing `2 K o' in the *Summary* buffer), then
visiting that file in diff-mode with -Q does not raise an assertion
failure.
In GNU Emacs 29.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.31, cairo
version 1.17.4)
of 2022-01-18 built on strobelfs2
Repository revision: 68472c12e7acdb6e9f55a10eecf02a4ace26465a
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12101003
System Description: Linux From Scratch r11.0-115
Configured using:
'configure --with-xwidgets 'CFLAGS=-Og -g3'
PKG_CONFIG_PATH=/opt/qt5/lib/pkgconfig'
Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBSYSTEMD LIBXML2 MODULES NOTIFY INOTIFY PDUMPER PNG RSVG
SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS WEBP X11 XDBE XIM
XPM XWIDGETS GTK3 ZLIB
- bug#53343: 29.0.50; assertion failure in diff--iterate-hunks,
Stephen Berman <=