Merge branch 'maint'

This commit is contained in:
Nicolas Goaziou 2014-08-15 21:52:17 +02:00
commit 88101ef434
2 changed files with 28 additions and 23 deletions

View File

@ -4492,29 +4492,29 @@ indentation is not done with TAB characters."
(let* ((min-ind most-positive-fixnum) (let* ((min-ind most-positive-fixnum)
find-min-ind ; For byte-compiler. find-min-ind ; For byte-compiler.
(find-min-ind (find-min-ind
(function ;; Return minimal common indentation within BLOB. This is
;; Return minimal common indentation within BLOB. This is ;; done by walking recursively BLOB and updating MIN-IND
;; done by walking recursively BLOB and updating MIN-IND ;; along the way. FIRST-FLAG is non-nil when the first
;; along the way. FIRST-FLAG is non-nil when the first ;; string hasn't been seen yet. It is required as this
;; string hasn't been seen yet. It is required as this ;; string is the only one whose indentation doesn't happen
;; string is the only one whose indentation doesn't happen ;; after a newline character.
;; after a newline character. (lambda (blob first-flag)
(lambda (blob first-flag) (dolist (object (org-element-contents blob))
(dolist (object (org-element-contents blob)) (when (and first-flag (stringp object))
(when (and first-flag (stringp object)) (setq first-flag nil)
(setq first-flag nil) (string-match "\\` *" object)
(string-match "\\`\\( *\\)" object) (let ((len (match-end 0)))
(let ((len (length (match-string 1 object)))) ;; An indentation of zero means no string will be
;; An indentation of zero means no string will be ;; modified. Quit the process.
;; modified. Quit the process. (if (zerop len) (throw 'zero (setq min-ind 0))
(if (zerop len) (throw 'zero (setq min-ind 0)) (setq min-ind (min len min-ind)))))
(setq min-ind (min len min-ind))))) (cond
(cond ((stringp object)
((stringp object) (dolist (line (cdr (org-split-string object " *\n")))
(dolist (line (delq "" (cdr (org-split-string object " *\n")))) (unless (string= line "")
(setq min-ind (min (org-get-indentation line) min-ind)))) (setq min-ind (min (org-get-indentation line) min-ind)))))
((memq (org-element-type object) org-element-recursive-objects) ((memq (org-element-type object) org-element-recursive-objects)
(funcall find-min-ind object first-flag)))))))) (funcall find-min-ind object first-flag)))))))
;; Find minimal indentation in ELEMENT. ;; Find minimal indentation in ELEMENT.
(catch 'zero (funcall find-min-ind element (not ignore-first))) (catch 'zero (funcall find-min-ind element (not ignore-first)))
(if (or (zerop min-ind) (= min-ind most-positive-fixnum)) element (if (or (zerop min-ind) (= min-ind most-positive-fixnum)) element

View File

@ -2957,6 +2957,11 @@ Text
'(paragraph nil " Two spaces\n" (verbatim nil "V") "\n Two spaces") '(paragraph nil " Two spaces\n" (verbatim nil "V") "\n Two spaces")
(org-element-normalize-contents (org-element-normalize-contents
'(paragraph nil " Two spaces\n " (verbatim nil "V") "\n Two spaces")))) '(paragraph nil " Two spaces\n " (verbatim nil "V") "\n Two spaces"))))
(should
(equal
'(verse-block nil "line 1\n\nline 2")
(org-element-normalize-contents
'(verse-block nil " line 1\n\n line 2"))))
;; Recursively enter objects in order to compute common indentation. ;; Recursively enter objects in order to compute common indentation.
(should (should
(equal (equal