GNU bug report logs -
#54084
28.0.91; Regression: can't create empty image buffer
Previous Next
Reported by: Corwin Brust <corwin <at> bru.st>
Date: Mon, 21 Feb 2022 08:22:01 UTC
Severity: normal
Found in version 28.0.91
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 54084 in the body.
You can then email your comments to 54084 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#54084
; Package
emacs
.
(Mon, 21 Feb 2022 08:22:01 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Corwin Brust <corwin <at> bru.st>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Mon, 21 Feb 2022 08:22:01 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
Under Emacs -Q
1. switch to a new buffer, e.g. C-x b *foo* RET
2. M-x image-mode RET
3. Insert the following text and press C-c C-c
<svg width="400" height="400">
<rect x="100" y="100" width="200" height="100"
fill="none" stroke="blue" stroke-width="2"/>
</svg>
In Emacs 27.2 the outline of a rectangle is displayed as an image.
In Emacs 28.0.91 an error is emitted at step 2:
Debugger entered--Lisp error: (wrong-type-argument stringp nil)
image-mode()
funcall-interactively(image-mode)
command-execute(image-mode record)
execute-extended-command(nil "image-mode" "image-mod")
funcall-interactively(execute-extended-command nil "image-mode" "image-mod")
command-execute(execute-extended-command)
Furthermore, inserting the text and pressing C-c C-c will do nothing
because the error interrupts the mode activation. (A subsequent M-x
image-mode RET after pasting in the snippet works.)
Ergo, it is not possible to create an empty buffer in image-mode, as
was possible in Emacs 27.2 and before.
In GNU Emacs 28.0.91 (build 6, x86_64-w64-mingw32)
of 2022-02-05 built on AVALON
Repository revision: 821c240075e3b850a61207d18d520126292421ce
Repository branch: emacs-28-nt-dist-build
Windowing system distributor 'Microsoft Corp.', version 10.0.19043
System Description: Microsoft Windows 10 Home (v10.0.2009.19043.1566)
Configured using:
'configure --with-json --without-dbus --with-native-compilation
--without-compress-install CFLAGS=-O2'
Configured features:
ACL GIF GMP GNUTLS HARFBUZZ JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP
NOTIFY W32NOTIFY PDUMPER PNG RSVG SOUND THREADS TIFF TOOLKIT_SCROLL_BARS
XPM ZLIB
Important settings:
value of $LC_CTYPE: en_US.UTF-8
value of $LANG: ENU
locale-coding-system: cp1252
Major mode: Image[svg]
Minor modes in effect:
tooltip-mode: t
global-eldoc-mode: t
show-paren-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
tool-bar-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
line-number-mode: t
indent-tabs-mode: t
transient-mark-mode: t
Load-path shadows:
None found.
Features:
(shadow sort mail-extr emacsbug message rmc puny rfc822 mml mml-sec epa
derived epg rfc6068 epg-config gnus-util rmail rmail-loaddefs
auth-source eieio eieio-core cl-macs eieio-loaddefs password-cache json
map text-property-search seq byte-opt gv bytecomp byte-compile cconv
mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils
mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr
mail-utils cl-seq help-fns radix-tree time-date subr-x cl-print debug
backtrace help-mode find-func image-mode dired dired-loaddefs exif
cl-loaddefs cl-lib cus-start cus-load iso-transl tooltip eldoc paren
electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
dos-w32 ls-lisp disp-table term/w32-win w32-win w32-vars term/common-win
tool-bar dnd fontset image regexp-opt fringe tabulated-list replace
newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar
rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock
font-lock syntax font-core term/tty-colors frame minibuffer cl-generic
cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese composite emoji-zwj charscript
charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice button loaddefs faces cus-face macroexp files
window text-properties overlay sha1 md5 base64 format env code-pages
mule custom widget hashtable-print-readable backquote threads w32notify
w32 lcms2 multi-tty make-network-process native-compile emacs)
Memory information:
((conses 16 87195 11377)
(symbols 48 8253 0)
(strings 32 24379 1444)
(string-bytes 1 764439)
(vectors 16 14960)
(vector-slots 8 313276 16186)
(floats 8 38 231)
(intervals 56 402 2)
(buffers 992 13))
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#54084
; Package
emacs
.
(Mon, 21 Feb 2022 12:58:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 54084 <at> debbugs.gnu.org (full text, mbox):
> From: Corwin Brust <corwin <at> bru.st>
> Date: Mon, 21 Feb 2022 02:21:32 -0600
>
> Under Emacs -Q
>
> 1. switch to a new buffer, e.g. C-x b *foo* RET
> 2. M-x image-mode RET
> 3. Insert the following text and press C-c C-c
>
> <svg width="400" height="400">
> <rect x="100" y="100" width="200" height="100"
> fill="none" stroke="blue" stroke-width="2"/>
> </svg>
>
> In Emacs 27.2 the outline of a rectangle is displayed as an image.
>
> In Emacs 28.0.91 an error is emitted at step 2:
>
> Debugger entered--Lisp error: (wrong-type-argument stringp nil)
> image-mode()
> funcall-interactively(image-mode)
> command-execute(image-mode record)
> execute-extended-command(nil "image-mode" "image-mod")
> funcall-interactively(execute-extended-command nil "image-mode" "image-mod")
> command-execute(execute-extended-command)
It's a feature, see bug#16062. (It misfired when the empty buffer
wasn't visiting a file, but I've now fixed that on the release
branch.)
> Furthermore, inserting the text and pressing C-c C-c will do nothing
> because the error interrupts the mode activation. (A subsequent M-x
> image-mode RET after pasting in the snippet works.)
>
> Ergo, it is not possible to create an empty buffer in image-mode, as
> was possible in Emacs 27.2 and before.
You are supposed to insert the data, and then turn on image-mode. We
don't support image-mode in empty buffers, because that makes it
impossible to detect the image type, and thus leads to complications
down the road.
Thanks.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#54084
; Package
emacs
.
(Mon, 21 Feb 2022 13:59:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 54084 <at> debbugs.gnu.org (full text, mbox):
tags 54084 + fixed
close 54084 28.0.91
# thanks for the prompt fix
bye
On Mon, Feb 21, 2022 at 6:57 AM Eli Zaretskii <eliz <at> gnu.org> wrote:
>
> It's a feature, see bug#16062. (It misfired when the empty buffer
> wasn't visiting a file, but I've now fixed that on the release
> branch.)
>
This has my stuff working again; much appreciated.
I have (tried to) mark the bug as done/fixed but please LMK if that wasn't TRT.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#54084
; Package
emacs
.
(Mon, 21 Feb 2022 14:01:01 GMT)
Full text and
rfc822 format available.
Message #14 received at 54084 <at> debbugs.gnu.org (full text, mbox):
[Please use Reply All, so that the bug tracker remains on the CC.]
> From: Corwin Brust <corwin <at> bru.st>
> Date: Mon, 21 Feb 2022 07:41:36 -0600
>
> On Mon, Feb 21, 2022 at 6:57 AM Eli Zaretskii <eliz <at> gnu.org> wrote:
> >
> > It's a feature, see bug#16062. (It misfired when the empty buffer
> > wasn't visiting a file, but I've now fixed that on the release
> > branch.)
>
> Is there a way to disable this feature?
Why is that needed? Turning on image-mode in an empty buffer is a
pretty strange thing to do, or at least a rare thing.
> In my case the image type won't change, I'd be fine hard-coding
> that.
>
> >
> > You are supposed to insert the data, and then turn on image-mode. We
> > don't support image-mode in empty buffers, because that makes it
> > impossible to detect the image type, and thus leads to complications
> > down the road.
> >
> > Thanks.
>
> I'm not sure how to avoid this error when I create a new buffer in a
> mode derived from image mode.
Can't you use ignore-errors?
> Is there an alternative you can recommend to creating my own
> "one-off" version of image mode and deriving from that? In my case,
> I have created an SVG sketching mode and have been reusing,
> e.g. "canvas" resizing logic from image-mode for a couple of years
> without issue.
>
> TIA for any hints.
How about delaying the mode switch until the user inserted something?
Reply sent
to
Eli Zaretskii <eliz <at> gnu.org>
:
You have taken responsibility.
(Mon, 21 Feb 2022 14:04:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
Corwin Brust <corwin <at> bru.st>
:
bug acknowledged by developer.
(Mon, 21 Feb 2022 14:04:02 GMT)
Full text and
rfc822 format available.
Message #19 received at 54084-done <at> debbugs.gnu.org (full text, mbox):
> From: Corwin Brust <corwin <at> bru.st>
> Date: Mon, 21 Feb 2022 07:58:39 -0600
> Cc: 54084 <at> debbugs.gnu.org
>
> This has my stuff working again; much appreciated.
Thanks, closing.
P.S. Your attempts to close didn't work, probably because you didn't
add a BCC to control <at> debbugs.gnu.org.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#54084
; Package
emacs
.
(Mon, 21 Feb 2022 14:17:01 GMT)
Full text and
rfc822 format available.
Message #22 received at 54084 <at> debbugs.gnu.org (full text, mbox):
On Mon, Feb 21, 2022 at 8:00 AM Eli Zaretskii <eliz <at> gnu.org> wrote:
>
> [Please use Reply All, so that the bug tracker remains on the CC.]
Sorry about that.
> > From: Corwin Brust <corwin <at> bru.st>
> > Date: Mon, 21 Feb 2022 07:41:36 -0600
> >
> > Is there a way to disable this feature?
>
> Why is that needed? Turning on image-mode in an empty buffer is a
> pretty strange thing to do, or at least a rare thing.
Noted, thanks. FTR, for dungeon I have several modes that are derived
from image-mode, e.g. for displaying graphical character sheets,
combat status information, and maps. I also have a point-and-click
drawing mode for creating/editing "tile-sets" and composing (e.g.)
maps for dungeon levels using these "named SVG fragments".
>
> Can't you use ignore-errors?
>
> How about delaying the mode switch until the user inserted something?
I will look into these options. (So far, the change you made seems to
have all my stuff working again per the release branch.)
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Tue, 22 Mar 2022 11:24:08 GMT)
Full text and
rfc822 format available.
This bug report was last modified 3 years and 91 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.