Browse Source

Keep byte-compiler happy.

Nicolas Goaziou 15 years ago
parent
commit
d2b3923b6a
1 changed files with 41 additions and 43 deletions
  1. 41 43
      lisp/org-list.el

+ 41 - 43
lisp/org-list.el

@@ -46,10 +46,10 @@
 (declare-function outline-next-heading "outline" ())
 (declare-function outline-next-heading "outline" ())
 (declare-function org-back-to-heading "org" (&optional invisible-ok))
 (declare-function org-back-to-heading "org" (&optional invisible-ok))
 (declare-function org-back-over-empty-lines "org" ())
 (declare-function org-back-over-empty-lines "org" ())
-(declare-function org-skip-whitespace "org" ())
 (declare-function org-trim "org" (s))
 (declare-function org-trim "org" (s))
 (declare-function org-get-indentation "org" (&optional line))
 (declare-function org-get-indentation "org" (&optional line))
 (declare-function org-timer-item "org-timer" (&optional arg))
 (declare-function org-timer-item "org-timer" (&optional arg))
+(declare-function org-timer-hms-to-secs "org-timer" (hms))
 (declare-function org-combine-plists "org" (&rest plists))
 (declare-function org-combine-plists "org" (&rest plists))
 (declare-function org-entry-get "org"
 (declare-function org-entry-get "org"
 		  (pom property &optional inherit literal-nil))
 		  (pom property &optional inherit literal-nil))
@@ -815,6 +815,7 @@ change is an outdent."
 (defun org-list-struct-origins (struct)
 (defun org-list-struct-origins (struct)
   "Return an alist where key is item's position and value parent's."
   "Return an alist where key is item's position and value parent's."
   (let* ((struct-rev (reverse struct))
   (let* ((struct-rev (reverse struct))
+	 (acc (list (cons (nth 1 (car struct)) 0)))
 	 (prev-item (lambda (item) (car (nth 1 (member (assq item struct) struct-rev)))))
 	 (prev-item (lambda (item) (car (nth 1 (member (assq item struct) struct-rev)))))
 	 (get-origins
 	 (get-origins
 	  (lambda (item)
 	  (lambda (item)
@@ -832,8 +833,7 @@ change is an outdent."
 		  (setq acc (cons (cons ind origin) acc))
 		  (setq acc (cons (cons ind origin) acc))
 		  (cons item-pos origin)))
 		  (cons item-pos origin)))
 	       ;; Current list going on
 	       ;; Current list going on
-	       (t (cons item-pos (cdar acc)))))))
-	 (acc (list (cons (nth 1 (car struct)) 0))))
+	       (t (cons item-pos (cdar acc))))))))
     (cons '(0 . 0) (mapcar get-origins (cdr struct)))))
     (cons '(0 . 0) (mapcar get-origins (cdr struct)))))
 
 
 (defun org-list-struct-get-parent (item struct origins)
 (defun org-list-struct-get-parent (item struct origins)
@@ -850,7 +850,8 @@ change is an outdent."
 (defun org-list-struct-fix-bul (struct origins)
 (defun org-list-struct-fix-bul (struct origins)
   "Verify and correct bullets for every association in STRUCT.
   "Verify and correct bullets for every association in STRUCT.
 This function modifies STRUCT."
 This function modifies STRUCT."
-  (let* ((init-bul (lambda (item)
+  (let* (acc
+	 (init-bul (lambda (item)
 		     (let ((counter (nth 3 item))
 		     (let ((counter (nth 3 item))
 			   (bullet (org-list-bullet-string (nth 2 item))))
 			   (bullet (org-list-bullet-string (nth 2 item))))
 		       (cond
 		       (cond
@@ -879,8 +880,7 @@ This function modifies STRUCT."
 		;; A new list is starting
 		;; A new list is starting
 		(let ((new-bul (funcall init-bul item)))
 		(let ((new-bul (funcall init-bul item)))
 		  (funcall set-bul item new-bul)
 		  (funcall set-bul item new-bul)
-		  (setq acc (cons (cons parent (org-list-inc-bullet-maybe new-bul)) acc)))))))
-	 acc)
+		  (setq acc (cons (cons parent (org-list-inc-bullet-maybe new-bul)) acc))))))))
     (mapc fix-bul (cdr struct))))
     (mapc fix-bul (cdr struct))))
 
 
 (defun org-list-struct-fix-ind (struct origins)
 (defun org-list-struct-fix-ind (struct origins)
@@ -910,28 +910,28 @@ Only elements of STRUCT that have changed are returned."
 (defun org-list-struct-outdent (start end origins)
 (defun org-list-struct-outdent (start end origins)
   "Outdent items in ORIGINS between BEGIN and END.
   "Outdent items in ORIGINS between BEGIN and END.
 BEGIN is included and END excluded."
 BEGIN is included and END excluded."
-  (let ((out (lambda (cell)
-	       (let* ((item (car cell))
-		      (parent (cdr cell)))
-		 (cond
-		  ;; Item not yet in zone: keep association
-		  ((< item start) cell)
-		  ;; Item out of zone: follow associations in acc
-		  ((>= item end)
-		   (let ((convert (assq parent acc)))
-		     (if convert (cons item (cdr convert)) cell)))
-		  ;; Item has no parent: error
-		  ((<= parent 0)
-		   (error "Cannot outdent top-level items"))
-		  ;; Parent is outdented: keep association
-		  ((>= parent start)
-		   (setq acc (cons (cons parent item) acc)) cell)
-		  (t
-		   ;; Parent isn't outdented: reparent to grand-parent
-		   (let ((grand-parent (cdr (assq parent origins))))
-		     (setq acc (cons (cons parent item) acc))
-		     (cons item grand-parent)))))))
-	acc)
+  (let* (acc
+	 (out (lambda (cell)
+		(let* ((item (car cell))
+		       (parent (cdr cell)))
+		  (cond
+		   ;; Item not yet in zone: keep association
+		   ((< item start) cell)
+		   ;; Item out of zone: follow associations in acc
+		   ((>= item end)
+		    (let ((convert (assq parent acc)))
+		      (if convert (cons item (cdr convert)) cell)))
+		   ;; Item has no parent: error
+		   ((<= parent 0)
+		    (error "Cannot outdent top-level items"))
+		   ;; Parent is outdented: keep association
+		   ((>= parent start)
+		    (setq acc (cons (cons parent item) acc)) cell)
+		   (t
+		    ;; Parent isn't outdented: reparent to grand-parent
+		    (let ((grand-parent (cdr (assq parent origins))))
+		      (setq acc (cons (cons parent item) acc))
+		      (cons item grand-parent))))))))
     (mapcar out origins)))
     (mapcar out origins)))
 
 
 (defun org-list-struct-indent (start end origins struct)
 (defun org-list-struct-indent (start end origins struct)
@@ -940,7 +940,8 @@ BEGIN is included and END excluded.
 
 
 STRUCT may be modified if `org-list-demote-modify-bullet' is
 STRUCT may be modified if `org-list-demote-modify-bullet' is
 concerning bullets between START and END."
 concerning bullets between START and END."
-  (let* ((orig-rev (reverse origins))
+  (let* (acc
+	 (orig-rev (reverse origins))
 	 (get-prev-item
 	 (get-prev-item
 	  (lambda (cell parent)
 	  (lambda (cell parent)
 	    (car (rassq parent (cdr (memq cell orig-rev))))))
 	    (car (rassq parent (cdr (memq cell orig-rev))))))
@@ -985,8 +986,7 @@ concerning bullets between START and END."
 		    (funcall set-assoc (cons item prev)))
 		    (funcall set-assoc (cons item prev)))
 		   ;; Previous item indented: reparent like it
 		   ;; Previous item indented: reparent like it
 		   (t
 		   (t
-		    (funcall set-assoc (cons item (cdr (assq prev acc))))))))))))
-	 acc)
+		    (funcall set-assoc (cons item (cdr (assq prev acc)))))))))))))
     (mapcar ind origins)))
     (mapcar ind origins)))
 
 
 (defun org-list-struct-apply-struct (struct)
 (defun org-list-struct-apply-struct (struct)
@@ -1493,18 +1493,16 @@ will return the number of items in the current list.
 
 
 Sublists of the list are skipped. Cursor is always at the
 Sublists of the list are skipped. Cursor is always at the
 beginning of the item."
 beginning of the item."
-  (save-excursion
-    (let ((end (copy-marker (org-list-bottom-point)))
-	  (next-p (make-marker))
-	  (move-down-action
-	   (lambda (pos value &rest args)
-	     (goto-char pos)
-	     (set-marker next-p (org-get-next-item pos end))
-	     (let ((return-value (apply function value args)))
-	       (if (marker-position next-p)
-		   (apply move-down-action next-p return-value args)
-		 return-value)))))
-      (apply move-down-action (org-beginning-of-item-list) init-value args))))
+  (let* ((pos (copy-marker (point)))
+	 (end (copy-marker (org-list-bottom-point)))
+	 (next-p (copy-marker (save-excursion (org-beginning-of-item-list))))
+	 (value init-value))
+    (while (< next-p end)
+      (goto-char next-p)
+      (set-marker next-p (or (org-get-next-item (point) end) end))
+      (setq value (apply function value args)))
+    (goto-char pos)
+    value))
 
 
 (defun org-sort-list (&optional with-case sorting-type getkey-func compare-func)
 (defun org-sort-list (&optional with-case sorting-type getkey-func compare-func)
   "Sort plain list items.
   "Sort plain list items.