From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nicolas Goaziou Subject: Re: [BUG] R src blocks untabify literal constant TABs Date: Thu, 08 Oct 2015 17:19:24 +0200 Message-ID: <87io6hie0z.fsf@nicolasgoaziou.fr> References: <87r3low81u.fsf@nicolasgoaziou.fr> <87vbaijve9.fsf@nicolasgoaziou.fr> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:37604) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZkCwy-0003Zc-ET for emacs-orgmode@gnu.org; Thu, 08 Oct 2015 11:17:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZkCwx-0003EP-Bc for emacs-orgmode@gnu.org; Thu, 08 Oct 2015 11:17:44 -0400 Received: from relay4-d.mail.gandi.net ([2001:4b98:c:538::196]:54358) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZkCwx-0003E7-0u for emacs-orgmode@gnu.org; Thu, 08 Oct 2015 11:17:43 -0400 In-Reply-To: (Charles C. Berry's message of "Wed, 7 Oct 2015 14:49:28 -0700") 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: "Charles C. Berry" Cc: Org-Mode mailing list Hello, "Charles C. Berry" writes: > More than one bug, I am afraid. > >> Do you have any such example? > > Sure, make sure that the whitespace in the `> <' below is a TAB > character (C-q C-i). Running the src block replaces the TAB when > `org-src-preserve-indentation' is nil. > > Also, use `org-edit-src-code' with point in the block and immediately exist, > i.e. =C-c ' C-c '=, and the embedded tab disappears. > > #+BEGIN_SRC emacs-lisp > "this is a TAB--> <--" > #+END_SRC > > `untabify' is called by some functions that honor (in some way) > `org-src-preserve-indentation' which explains some of this. FWIW, here > is a summary of functions that use the variable: > > > |---------------------------------------+-----------------------+---------------------------| > | function | protect-leading space | effect on tabs | > |---------------------------------------+-----------------------+---------------------------| > | org-babel-exp-process-buffer | yes or no | ignore (+/- to indent) | > | org-export-unravel-code | yes or no | ignore | > | org-element-src-block-interpreter | contents only or not | ignore | > | org-element-example-block-interpreter | contents only or not | ignore | > | org-fixup-indentation | contents only or not | ignore (+/- to indent) | > | org-babel-parse-src-block-match | yes or no | keep or remove | > | org-babel-haskell-export-to-lhs | yes or no | keep or remove | > | org-babel-spec-to-string | yes or no | keep or remove lead+trail | > | org-src--edit-element | yes or no | keep or remove | > | org-edit-src-code | yes or no | keep or remove | > |---------------------------------------+-----------------------+---------------------------| > > the '(+/- to indent)' means that leading tabs may be added or removed > with org-metaright and friends. `keep or remove lead+trail' == "keep > or remove leading or trailing TABs only". 'contents only or not' means > there is no effect on `#+BEGIN...' etc. The main culprit is `org-do-remove-indentation', which doesn't need to untabify the buffer in order to proceed. I changed that in master. It should go a long way towards fixing the issue. Is there any case left to fix? If there isn't, is the current documentation accurate enough or do you think it needs to be improved? Regards, -- Nicolas Goaziou