From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#36431: Crash in marker.c:337 Date: Tue, 02 Jul 2019 23:15:45 +0300 Message-ID: <83pnmschvy.fsf@gnu.org> References: <20190629.131734.877718102639559715.wl@gnu.org> <831rzch9nd.fsf@gnu.org> <83zhm0fuqg.fsf@gnu.org> <83ftnrf87e.fsf@gnu.org> <83v9wkcp3z.fsf@gnu.org> <83sgrocmws.fsf@gnu.org> Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="8505"; mail-complaints-to="usenet@blaine.gmane.org" Cc: 36431@debbugs.gnu.org To: Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Jul 02 22:17:36 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1hiPDc-00025v-MV for geb-bug-gnu-emacs@m.gmane.org; Tue, 02 Jul 2019 22:17:36 +0200 Original-Received: from localhost ([::1]:57066 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hiPDa-0002MA-7R for geb-bug-gnu-emacs@m.gmane.org; Tue, 02 Jul 2019 16:17:34 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:40090) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hiPD8-0002LJ-RT for bug-gnu-emacs@gnu.org; Tue, 02 Jul 2019 16:17:09 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hiPD5-0007nK-2P for bug-gnu-emacs@gnu.org; Tue, 02 Jul 2019 16:17:05 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:39199) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hiPD4-0007lA-6A for bug-gnu-emacs@gnu.org; Tue, 02 Jul 2019 16:17:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hiPD4-0007lH-0S for bug-gnu-emacs@gnu.org; Tue, 02 Jul 2019 16:17:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 02 Jul 2019 20:17:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 36431 X-GNU-PR-Package: emacs Original-Received: via spool by 36431-submit@debbugs.gnu.org id=B36431.156209857329775 (code B ref 36431); Tue, 02 Jul 2019 20:17:01 +0000 Original-Received: (at 36431) by debbugs.gnu.org; 2 Jul 2019 20:16:13 +0000 Original-Received: from localhost ([127.0.0.1]:48020 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hiPCG-0007kB-QS for submit@debbugs.gnu.org; Tue, 02 Jul 2019 16:16:13 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:55186) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hiPCC-0007jw-VB for 36431@debbugs.gnu.org; Tue, 02 Jul 2019 16:16:10 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:55649) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hiPC4-0006ls-N9; Tue, 02 Jul 2019 16:16:01 -0400 Original-Received: from [176.228.60.248] (port=1854 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1hiPC4-00014j-0x; Tue, 02 Jul 2019 16:16:00 -0400 In-reply-to: (message from Stefan Monnier on Tue, 02 Jul 2019 15:44:07 -0400) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:161988 Archived-At: > From: Stefan Monnier > Cc: wl@gnu.org, 36431@debbugs.gnu.org > Date: Tue, 02 Jul 2019 15:44:07 -0400 > > Decode the data at CODING->src_object into CODING->dst_object. > CODING->src_object is a buffer, a string, or nil. > CODING->dst_object is a buffer. > > If CODING->src_object is a buffer, it must be the current buffer. > In this case, if CODING->src_pos is positive, it is a position of > the source text in the buffer, otherwise, the source text is in the > gap area of the buffer, and CODING->src_pos specifies the offset of > the text from GPT (which must be the same as PT). If this is the > same buffer as CODING->dst_object, CODING->src_pos must be > negative. > [...] > The decoded data is inserted at the current point of the buffer > CODING->dst_object. > > but this doesn't say if the bytes are to be found originally at the > beginning of the gap or its end, nor whether they finish at the beginning or > the end, nor what happens in the middle and why it's been designed this way. It says that (a) CODING->src_pos is the negative of the offset from GPT of where the bytes are in the gap (they don't have to be "at the end", AFAIU, just not "at the beginning"); and (b) that the decoded text is inserted at point. And those are, AFAIK, the only real conditions, all the rest is not necessary, it's just what's convenient. As for why this was designed like that -- where else did you see comments in Emacs that answer this kind of questions? > Is the patch below correct? I think it describes conditions that don't need to exist. > I think the crash-example I sent can probably be made less esoteric by > making it use "quit" instead of catch/throw. I'm beginning to think > that when we quit (or signal an error) from within > set-auto-coding-function, we simply shouldn't revert the buffer > to multibyte. We have code whose purpose is to recover from such calamities, so if it doesn't do its job in all cases, we need to augment it.