From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Glenn Morris Newsgroups: gmane.emacs.bugs Subject: bug#13522: 24.2; save-buffer removes edited file under some conditions Date: Fri, 25 Jan 2013 03:07:57 -0500 Message-ID: References: <87622qaszq.fsf@xvii.vinc17.org> <20130125000256.GC3397@xvii.vinc17.org> <83libhlnpz.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1359101342 26794 80.91.229.3 (25 Jan 2013 08:09:02 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 25 Jan 2013 08:09:02 +0000 (UTC) Cc: 13522@debbugs.gnu.org, vincent@vinc17.net To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Jan 25 09:09:21 2013 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1TyeLg-0000X1-Km for geb-bug-gnu-emacs@m.gmane.org; Fri, 25 Jan 2013 09:09:20 +0100 Original-Received: from localhost ([::1]:38082 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TyeLP-0007YG-4N for geb-bug-gnu-emacs@m.gmane.org; Fri, 25 Jan 2013 03:09:03 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:41936) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TyeLI-0007YB-IF for bug-gnu-emacs@gnu.org; Fri, 25 Jan 2013 03:09:01 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TyeLG-0004Yg-Tv for bug-gnu-emacs@gnu.org; Fri, 25 Jan 2013 03:08:56 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:43069) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TyeLG-0004YZ-Rz for bug-gnu-emacs@gnu.org; Fri, 25 Jan 2013 03:08:54 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.72) (envelope-from ) id 1TyeLN-00085E-LR for bug-gnu-emacs@gnu.org; Fri, 25 Jan 2013 03:09:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Glenn Morris Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 25 Jan 2013 08:09:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 13522 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 13522-submit@debbugs.gnu.org id=B13522.135910128930988 (code B ref 13522); Fri, 25 Jan 2013 08:09:01 +0000 Original-Received: (at 13522) by debbugs.gnu.org; 25 Jan 2013 08:08:09 +0000 Original-Received: from localhost ([127.0.0.1]:48522 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TyeKX-00083l-2a for submit@debbugs.gnu.org; Fri, 25 Jan 2013 03:08:09 -0500 Original-Received: from fencepost.gnu.org ([208.118.235.10]:44084) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TyeKV-00083e-A3 for 13522@debbugs.gnu.org; Fri, 25 Jan 2013 03:08:08 -0500 Original-Received: from rgm by fencepost.gnu.org with local (Exim 4.71) (envelope-from ) id 1TyeKL-0000Pl-TS; Fri, 25 Jan 2013 03:07:57 -0500 X-Spook: RSA Bellcore afsatcom security CIA Downing Street kibo X-Ran: vG\h/{o2]QyCu7k2'ED.rzAV?8JP_S'0>pb6*;=Hxt (Eli Zaretskii's message of "Fri, 25 Jan 2013 09:35:04 +0200") User-Agent: Gnus (www.gnus.org), GNU Emacs (www.gnu.org/software/emacs/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 140.186.70.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-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:70275 Archived-At: Eli Zaretskii wrote: > I can't. Moreover, the recipe says "Type C-c in the terminal to kill > Emacs", but C-c does not kill Emacs, only C-x C-c does. C-c *in the shell* from which Emacs was started in the foreground, not from in Emacs; ie interrupt it from outside. Or even: do C-x C-s, and leave the coding prompt unanswered. You will find the original file missing until you answer, or quit, the coding question! Looks like it has been this way since the unicode merge. basic-save-buffer-2 calls backup-buffer, which may rename the original file. It then calls write-region. This may call select-safe-coding-system, so there can be an arbitrarily long interval between the original file being renamed to the backup, and the new file being written. If you interrupt the coding prompt with C-g, the unwind-protect in basic-save-buffer-2 puts back the original file. I suppose the problem could maybe be papered over by adding something equivalent to kill-emacs-hook, but it's still very far from ideal. Maybe the right solution is to have the select-safe-coding-system check in basic-save-buffer-2 before backup-buffer, then pass the resulting coding system to write-region somehow so it does not need to query again.