emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] [BUG] R src blocks untabify literal constant TABs


From: Nicolas Goaziou
Subject: Re: [O] [BUG] R src blocks untabify literal constant TABs
Date: Thu, 08 Oct 2015 17:19:24 +0200

Hello,

"Charles C. Berry" <address@hidden> 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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]