From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rainer M Krug Subject: Re: [BUG] in Release 8.2 - editing code in indirect buffer Date: Wed, 25 Sep 2013 08:48:30 +0200 Message-ID: References: <8F09B93E-FC4D-48B8-A9AB-3EDC0D81EEEF@gmail.com> <220E3767-24DA-494B-9512-9C4DA30CEA43@gmail.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:46271) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VOiu1-000056-KB for emacs-orgmode@gnu.org; Wed, 25 Sep 2013 02:48:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VOitu-0002iW-TJ for emacs-orgmode@gnu.org; Wed, 25 Sep 2013 02:48:49 -0400 Received: from plane.gmane.org ([80.91.229.3]:33619) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VOitu-0002iJ-M6 for emacs-orgmode@gnu.org; Wed, 25 Sep 2013 02:48:42 -0400 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1VOitt-0003eE-F6 for emacs-orgmode@gnu.org; Wed, 25 Sep 2013 08:48:41 +0200 Received: from arn78-1-88-186-171-7.fbx.proxad.net ([88.186.171.7]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 25 Sep 2013 08:48:41 +0200 Received: from Rainer by arn78-1-88-186-171-7.fbx.proxad.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 25 Sep 2013 08:48:41 +0200 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org Carsten Dominik writes: > Hi Rainer, hi Carsten, > > it does not get lost - it is in my queue. As are, unfortunately, > another 35 threads with possible bugs. Help is definitely wanted. That's what I was looking for - confirmation that is in somebodys processing queue. Thanks Carsten. Unfortunately I can't hel as I have barely the elisp knowledge to maintain my .emacs file. > > Please see below for my comments and a possible fix. > > On 23.9.2013, at 09:40, Rainer M Krug wrote: > >> I just resend this bug report which has been confirmed by Ista Zahn. >> >> Updated via git ust now: >> >> Org-mode version 8.2 (release_8.2-14-ge5f16b @ >> /Users/rainerkrug/.emacs.d/org-mode/lisp/) >> >> >> When starting to edit a code block via C-c ' everything works as expected >> and the code block is highlighted and an indirect buffer is opened. >> >> When I click into the highlighted block, I an "send" to the indirect >> buffer. This behavior changes, after saving with C-s, even when nothing >> has been edited: the area in the original org file looses its magic, and >> looks normal again and can also be edited! >> >> The indirect buffer stays functional and, upon close via C-c ' saves the >> changes into the original buffer and *overwrites* changes done in this >> block in the org document. > > This is a bug which is difficult to fix in all generality. What > should really happen is that the text in the original buffer is made > read-only. Yup - exactly. That would be the best solution. > But so far this does not happen in our implementation (due > to Dan Davison IIRC). The reason for this is that read-only text > properties left by accident in a buffer are difficult to get rid of. > > There are many things the user could go back and screw up the > original. That's why Org choses to protect with highlighting with an > overlay. Note that this is not a protection against editing, but it > is a visual warning. Possibly because I am using the mouse most of the time to navigate in text and select buffers, I did not realize this. > > However, what happens during saving is indeed a problem - the overlay > gets lost (not really, it gets squeezed to zero by first removing the > source code and then inserting the modified version). > > Could you please try this patch and test it to see if it is stable and > does the right thing? Tried briefly and it seems to work: 1) the visual overlay stays there upon C-x s from indirect buffer 2) If I click with the mouse into it, I am redirected to the indirect buffer (correct terminology here?) Let me know when you pushed it to git, than I can upgrade again. Thanks, Rainer > > Thank you. > > - Carsten > > diff --git a/lisp/org-src.el b/lisp/org-src.el > index 0f88174..062d2d7 100644 > --- a/lisp/org-src.el > +++ b/lisp/org-src.el > @@ -757,6 +757,8 @@ with \",*\", \",#+\", \",,*\" and \",,#+\"." > (delete-region beg (max beg end)) > (unless (string-match "\\`[ \t]*\\'" code) > (insert code)) > + ;; Make sure the overlay stays in place > + (when (eq context 'save) (move-overlay ovl beg (point))) > (goto-char beg) > (if single (just-one-space)))) > (if (memq t (mapcar (lambda (overlay) > > <#secure method=pgpmime mode=sign> -- Rainer M. Krug email: RMKruggmailcom