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 09:29:28 +0200 Message-ID: References: <8F09B93E-FC4D-48B8-A9AB-3EDC0D81EEEF@gmail.com> <220E3767-24DA-494B-9512-9C4DA30CEA43@gmail.com> <61B2FF3D-CA55-4880-A7D0-6B7BE0A2B319@gmail.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:52964) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VOjXf-0002CC-9J for emacs-orgmode@gnu.org; Wed, 25 Sep 2013 03:29:53 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VOjXZ-0005ui-1v for emacs-orgmode@gnu.org; Wed, 25 Sep 2013 03:29:47 -0400 Received: from plane.gmane.org ([80.91.229.3]:51444) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VOjXY-0005ue-Qw for emacs-orgmode@gnu.org; Wed, 25 Sep 2013 03:29:40 -0400 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1VOjXW-0007YT-Ij for emacs-orgmode@gnu.org; Wed, 25 Sep 2013 09:29:38 +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 09:29:38 +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 09:29:38 +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: > On 25.9.2013, at 08:48, Rainer M Krug wrote: > >> 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. > > I pushed this fix to maint and master. Thanks, Rainer > > - Carsten > >> >> 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 >> >> > <#secure method=pgpmime mode=sign> -- Rainer M. Krug email: RMKruggmailcom