diff --git a/lisp/org-src.el b/lisp/org-src.el index d1f6879..dd3f3c2 100644 --- a/lisp/org-src.el +++ b/lisp/org-src.el @@ -922,10 +922,19 @@ fontification of code blocks see `org-src-fontify-block' and (concat " org-src-fontification:" (symbol-name lang-mode))) (delete-region (point-min) (point-max)) (insert string " ") ;; so there's a final property change + (unless org-src-preserve-indentation (org-do-remove-indentation)) (unless (eq major-mode lang-mode) (funcall lang-mode)) (font-lock-fontify-buffer) (setq pos (point-min)) (while (setq next (next-single-property-change pos 'face)) + (unless org-src-preserve-indentation + (let ((eol (save-excursion (goto-char pos) + (line-end-position)))) + (with-current-buffer org-buffer + (goto-char (+ start (1- pos))) + (setq start (- (line-end-position) (1- eol)))) + (when (< eol next) + (setq next (1+ eol))))) (put-text-property (+ start (1- pos)) (1- (+ start next)) 'face (get-text-property pos 'face) org-buffer)