浏览代码

org-element: Silence byte-compiler

Nicolas Goaziou 13 年之前
父节点
当前提交
557fad288b
共有 1 个文件被更改,包括 60 次插入57 次删除
  1. 60 57
      contrib/lisp/org-element.el

+ 60 - 57
contrib/lisp/org-element.el

@@ -1612,7 +1612,7 @@ CONTENTS is nil."
 			      (org-table-align)
 			      (buffer-string))
 	    (when (org-element-property :tblfm table)
-	      (format "#+TBLFM: " (org-element-property :tblfm table))))))
+	      (concat "#+TBLFM: " (org-element-property :tblfm table))))))
 
 
 ;;;; Table Row
@@ -3330,6 +3330,7 @@ Nil values returned from FUN do not appear in the results."
 	    'elements)
 	   (t 'objects)))
 	 --acc
+	 --walk-tree
 	 (--walk-tree
 	  (function
 	   (lambda (--data)
@@ -3716,68 +3717,70 @@ indentation to compute maximal common indentation.
 Return the normalized element that is element with global
 indentation removed from its contents.  The function assumes that
 indentation is not done with TAB characters."
-  (let (ind-list
-        (collect-inds
-         (function
-          ;; Return list of indentations within BLOB.  This is done by
-          ;; walking recursively BLOB and updating IND-LIST along the
-          ;; way.  FIRST-FLAG is non-nil when the first string hasn't
-          ;; been seen yet.  It is required as this string is the only
-          ;; one whose indentation doesn't happen after a newline
-          ;; character.
-          (lambda (blob first-flag)
-            (mapc
-             (lambda (object)
-	       (when (and first-flag (stringp object))
-                 (setq first-flag nil)
-                 (string-match "\\`\\( *\\)" object)
-		 (let ((len (length (match-string 1 object))))
-		   ;; An indentation of zero means no string will be
-		   ;; modified.  Quit the process.
-		   (if (zerop len) (throw 'zero (setq ind-list nil))
-		     (push len ind-list))))
-               (cond
-                ((stringp object)
-                 (let ((start 0))
-		   ;; Avoid matching blank or empty lines.
-                   (while (and (string-match "\n\\( *\\)\\(.\\)" object start)
-			       (not (equal (match-string 2 object) " ")))
-                     (setq start (match-end 0))
-                     (push (length (match-string 1 object)) ind-list))))
-                ((memq (org-element-type object) org-element-recursive-objects)
-                 (funcall collect-inds object first-flag))))
-             (org-element-contents blob))))))
+  (let* (ind-list			; for byte-compiler
+	 collect-inds			; for byte-compiler
+	 (collect-inds
+	  (function
+	   ;; Return list of indentations within BLOB.  This is done by
+	   ;; walking recursively BLOB and updating IND-LIST along the
+	   ;; way.  FIRST-FLAG is non-nil when the first string hasn't
+	   ;; been seen yet.  It is required as this string is the only
+	   ;; one whose indentation doesn't happen after a newline
+	   ;; character.
+	   (lambda (blob first-flag)
+	     (mapc
+	      (lambda (object)
+		(when (and first-flag (stringp object))
+		  (setq first-flag nil)
+		  (string-match "\\`\\( *\\)" object)
+		  (let ((len (length (match-string 1 object))))
+		    ;; An indentation of zero means no string will be
+		    ;; modified.  Quit the process.
+		    (if (zerop len) (throw 'zero (setq ind-list nil))
+		      (push len ind-list))))
+		(cond
+		 ((stringp object)
+		  (let ((start 0))
+		    ;; Avoid matching blank or empty lines.
+		    (while (and (string-match "\n\\( *\\)\\(.\\)" object start)
+				(not (equal (match-string 2 object) " ")))
+		      (setq start (match-end 0))
+		      (push (length (match-string 1 object)) ind-list))))
+		 ((memq (org-element-type object) org-element-recursive-objects)
+		  (funcall collect-inds object first-flag))))
+	      (org-element-contents blob))))))
     ;; Collect indentation list in ELEMENT.  Possibly remove first
     ;; value if IGNORE-FIRST is non-nil.
     (catch 'zero (funcall collect-inds element (not ignore-first)))
     (if (not ind-list) element
       ;; Build ELEMENT back, replacing each string with the same
       ;; string minus common indentation.
-      (let ((build
-	     (function
-	      (lambda (blob mci first-flag)
-		;; Return BLOB with all its strings indentation
-		;; shortened from MCI white spaces.  FIRST-FLAG is
-		;; non-nil when the first string hasn't been seen
-		;; yet.
-		(nconc
-		 (list (org-element-type blob) (nth 1 blob))
-		 (mapcar
-		  (lambda (object)
-		    (when (and first-flag (stringp object))
-		      (setq first-flag nil)
-		      (setq object
-			    (replace-regexp-in-string
-			     (format "\\` \\{%d\\}" mci) "" object)))
-		    (cond
-		     ((stringp object)
-		      (replace-regexp-in-string
-		       (format "\n \\{%d\\}" mci) "\n" object))
-		     ((memq (org-element-type object)
-			    org-element-recursive-objects)
-		      (funcall build object mci first-flag))
-		     (t object)))
-		  (org-element-contents blob)))))))
+      (let* (build			; for byte compiler
+	     (build
+	      (function
+	       (lambda (blob mci first-flag)
+		 ;; Return BLOB with all its strings indentation
+		 ;; shortened from MCI white spaces.  FIRST-FLAG is
+		 ;; non-nil when the first string hasn't been seen
+		 ;; yet.
+		 (nconc
+		  (list (org-element-type blob) (nth 1 blob))
+		  (mapcar
+		   (lambda (object)
+		     (when (and first-flag (stringp object))
+		       (setq first-flag nil)
+		       (setq object
+			     (replace-regexp-in-string
+			      (format "\\` \\{%d\\}" mci) "" object)))
+		     (cond
+		      ((stringp object)
+		       (replace-regexp-in-string
+			(format "\n \\{%d\\}" mci) "\n" object))
+		      ((memq (org-element-type object)
+			     org-element-recursive-objects)
+		       (funcall build object mci first-flag))
+		      (t object)))
+		   (org-element-contents blob)))))))
 	(funcall build element (apply 'min ind-list) (not ignore-first))))))