Ihor Radchenko writes:
The cause is the following line in `org-list-struct-apply-struct' [[file:~/Git/org-mode/lisp/org-list.el::indent-line-to (+ (org-current-text-indentation) delta)))]] It calls `indent-line-to' that replaces spaces with tabs according to current value of indent-tabs-mode in Org buffer.
There are a few other instances of `indent-line-to` in the code. I guess the right fix is to un-obsolete `org-indent-line-to`, use it and make a special case if point is in a src block. This use case is uncommon and not really compatible with `org-src-preserve-indentation` though. Somewhat more common possibility: say one has a src block at 0 indentation, and wants to make it part of an org list. Is there any proper org way to do this ? I can use `indent-rigidly`, but again, this might break an org-src indentation. No easy fix to this beside providing a simple org version of `indent-rigidly`. The issues above do not seem too bad. They are uncommon, and an indent-region call should fix the indentation. -- Sébastien Miquel