Browse Source

org-clock: Use lexical binding

* lisp/org-clock.el (org-clock-save-markers-for-cut-and-paste):
(org-clock-select-task):
(org-clock-out):
(org-clock-load): Use `dolist' instead of `mapc' + `lambda'.

(org-clock-insert-selection-line):
(org-resolve-clocks-if-idle):
(org-clock-find-position):
(org-clock-remove-overlays):
(org-dblock-write:clocktable):
(org-clocktable-steps):
(org-clock-get-table-data): Silence byte-compiler.
Nicolas Goaziou 9 years ago
parent
commit
35bc1c8853
1 changed files with 58 additions and 69 deletions
  1. 58 69
      lisp/org-clock.el

+ 58 - 69
lisp/org-clock.el

@@ -1,4 +1,4 @@
-;;; org-clock.el --- The time clocking code for Org-mode
+;;; org-clock.el --- The time clocking code for Org mode -*- lexical-binding: t; -*-
 
 
 ;; Copyright (C) 2004-2015 Free Software Foundation, Inc.
 ;; Copyright (C) 2004-2015 Free Software Foundation, Inc.
 
 
@@ -24,7 +24,7 @@
 ;;
 ;;
 ;;; Commentary:
 ;;; Commentary:
 
 
-;; This file contains the time clocking code for Org-mode
+;; This file contains the time clocking code for Org mode
 
 
 ;;; Code:
 ;;; Code:
 
 
@@ -554,8 +554,8 @@ of a different task.")
   (org-check-and-save-marker org-clock-hd-marker beg end)
   (org-check-and-save-marker org-clock-hd-marker beg end)
   (org-check-and-save-marker org-clock-default-task beg end)
   (org-check-and-save-marker org-clock-default-task beg end)
   (org-check-and-save-marker org-clock-interrupted-task beg end)
   (org-check-and-save-marker org-clock-interrupted-task beg end)
-  (mapc (lambda (m) (org-check-and-save-marker m beg end))
-	org-clock-history))
+  (dolist (m org-clock-history)
+    (org-check-and-save-marker m beg end)))
 
 
 (defun org-clock-drawer-name ()
 (defun org-clock-drawer-name ()
   "Return clock drawer's name for current entry, or nil."
   "Return clock drawer's name for current entry, or nil."
@@ -580,8 +580,8 @@ of a different task.")
   (interactive)
   (interactive)
   (let (och chl sel-list rpl (i 0) s)
   (let (och chl sel-list rpl (i 0) s)
     ;; Remove successive dups from the clock history to consider
     ;; Remove successive dups from the clock history to consider
-    (mapc (lambda (c) (if (not (equal c (car och))) (push c och)))
-	  org-clock-history)
+    (dolist (c org-clock-history)
+      (unless (equal c (car och)) (push c och)))
     (setq och (reverse och) chl (length och))
     (setq och (reverse och) chl (length och))
     (if (zerop chl)
     (if (zerop chl)
 	(user-error "No recent clock")
 	(user-error "No recent clock")
@@ -602,17 +602,15 @@ of a different task.")
 	  (setq s (org-clock-insert-selection-line ?c org-clock-marker))
 	  (setq s (org-clock-insert-selection-line ?c org-clock-marker))
 	  (push s sel-list))
 	  (push s sel-list))
 	(insert (org-add-props "Recent Tasks\n" nil 'face 'bold))
 	(insert (org-add-props "Recent Tasks\n" nil 'face 'bold))
-	(mapc
-	 (lambda (m)
-	   (when (marker-buffer m)
-	     (setq i (1+ i)
-		   s (org-clock-insert-selection-line
-		      (if (< i 10)
-			  (+ i ?0)
-			(+ i (- ?A 10))) m))
-	     (if (fboundp 'int-to-char) (setf (car s) (int-to-char (car s))))
-	     (push s sel-list)))
-	 och)
+	(dolist (m och)
+	  (when (marker-buffer m)
+	    (setq i (1+ i)
+		  s (org-clock-insert-selection-line
+		     (if (< i 10)
+			 (+ i ?0)
+		       (+ i (- ?A 10))) m))
+	    (if (fboundp 'int-to-char) (setf (car s) (int-to-char (car s))))
+	    (push s sel-list)))
 	(run-hooks 'org-clock-before-select-task-hook)
 	(run-hooks 'org-clock-before-select-task-hook)
 	(goto-char (point-min))
 	(goto-char (point-min))
 	;; Set min-height relatively to circumvent a possible but in
 	;; Set min-height relatively to circumvent a possible but in
@@ -632,25 +630,22 @@ of a different task.")
 And return a cons cell with the selection character integer and the marker
 And return a cons cell with the selection character integer and the marker
 pointing to it."
 pointing to it."
   (when (marker-buffer marker)
   (when (marker-buffer marker)
-    (let (file cat task heading prefix)
+    (let (cat task heading prefix)
       (with-current-buffer (org-base-buffer (marker-buffer marker))
       (with-current-buffer (org-base-buffer (marker-buffer marker))
-	(save-excursion
-	  (save-restriction
-	    (widen)
-	    (ignore-errors
-	      (goto-char marker)
-	      (setq file (buffer-file-name (marker-buffer marker))
-		    cat (org-get-category)
-		    heading (org-get-heading 'notags)
-		    prefix (save-excursion
-			     (org-back-to-heading t)
-			     (looking-at org-outline-regexp)
-			     (match-string 0))
-		    task (substring
-			  (org-fontify-like-in-org-mode
-			   (concat prefix heading)
-			   org-odd-levels-only)
-			  (length prefix)))))))
+	(org-with-wide-buffer
+	  (ignore-errors
+	    (goto-char marker)
+	    (setq cat (org-get-category)
+		  heading (org-get-heading 'notags)
+		  prefix (save-excursion
+			   (org-back-to-heading t)
+			   (looking-at org-outline-regexp)
+			   (match-string 0))
+		  task (substring
+			(org-fontify-like-in-org-mode
+			 (concat prefix heading)
+			 org-odd-levels-only)
+			(length prefix))))))
       (when (and cat task)
       (when (and cat task)
 	(insert (format "[%c] %-12s  %s\n" i cat task))
 	(insert (format "[%c] %-12s  %s\n" i cat task))
 	(cons i marker)))))
 	(cons i marker)))))
@@ -1164,13 +1159,12 @@ so long."
 	  (org-clock-resolve
 	  (org-clock-resolve
 	   (cons org-clock-marker
 	   (cons org-clock-marker
 		 org-clock-start-time)
 		 org-clock-start-time)
-	   (function
-	    (lambda (clock)
-	      (format "Clocked in & idle for %.1f mins"
-		      (/ (org-float-time
-			  (time-subtract (current-time)
-					 org-clock-user-idle-start))
-			 60.0))))
+	   (lambda (_)
+	     (format "Clocked in & idle for %.1f mins"
+		     (/ (org-float-time
+			 (time-subtract (current-time)
+					org-clock-user-idle-start))
+			60.0)))
 	   org-clock-user-idle-start)))))
 	   org-clock-user-idle-start)))))
 
 
 (defvar org-clock-current-task nil "Task currently clocked in.")
 (defvar org-clock-current-task nil "Task currently clocked in.")
@@ -1488,7 +1482,8 @@ line and position cursor in that line."
 		  (throw 'exit t)))))))
 		  (throw 'exit t)))))))
       (goto-char beg)
       (goto-char beg)
       (let ((clock-re (concat "^[ \t]*" org-clock-string))
       (let ((clock-re (concat "^[ \t]*" org-clock-string))
-	    (count 0) positions first)
+	    (count 0)
+	    positions)
 	;; Count the CLOCK lines and store their positions.
 	;; Count the CLOCK lines and store their positions.
 	(save-excursion
 	(save-excursion
 	  (while (re-search-forward clock-re end t)
 	  (while (re-search-forward clock-re end t)
@@ -1641,7 +1636,7 @@ to, overriding the existing value of `org-clock-out-switch-to-state'."
 		     (eq org-log-done 'note)
 		     (eq org-log-done 'note)
 		     org-clock-out-when-done)
 		     org-clock-out-when-done)
 		(setq h (delq 'org-clock-remove-empty-clock-drawer h)))
 		(setq h (delq 'org-clock-remove-empty-clock-drawer h)))
-	    (mapc (lambda (f) (funcall f)) h))
+	    (mapc #'funcall h))
 	  (unless (org-clocking-p)
 	  (unless (org-clocking-p)
 	    (setq org-clock-current-task nil)))))))
 	    (setq org-clock-current-task nil)))))))
 
 
@@ -1971,13 +1966,13 @@ will be easy to remove."
     (push ov org-clock-overlays)))
     (push ov org-clock-overlays)))
 
 
 ;;;###autoload
 ;;;###autoload
-(defun org-clock-remove-overlays (&optional beg end noremove)
+(defun org-clock-remove-overlays (&optional _beg _end noremove)
   "Remove the occur highlights from the buffer.
   "Remove the occur highlights from the buffer.
-BEG and END are ignored.  If NOREMOVE is nil, remove this function
-from the `before-change-functions' in the current buffer."
+If NOREMOVE is nil, remove this function from the
+`before-change-functions' in the current buffer."
   (interactive)
   (interactive)
   (unless org-inhibit-highlight-removal
   (unless org-inhibit-highlight-removal
-    (mapc 'delete-overlay org-clock-overlays)
+    (mapc #'delete-overlay org-clock-overlays)
     (setq org-clock-overlays nil)
     (setq org-clock-overlays nil)
     (unless noremove
     (unless noremove
       (remove-hook 'before-change-functions
       (remove-hook 'before-change-functions
@@ -2367,22 +2362,19 @@ the currently selected interval size."
 	   (block (plist-get params :block))
 	   (block (plist-get params :block))
 	   (ts (plist-get params :tstart))
 	   (ts (plist-get params :tstart))
 	   (te (plist-get params :tend))
 	   (te (plist-get params :tend))
-	   (link (plist-get params :link))
-	   (maxlevel (or (plist-get params :maxlevel) 3))
 	   (ws (plist-get params :wstart))
 	   (ws (plist-get params :wstart))
 	   (ms (plist-get params :mstart))
 	   (ms (plist-get params :mstart))
 	   (step (plist-get params :step))
 	   (step (plist-get params :step))
-	   (timestamp (plist-get params :timestamp))
 	   (formatter (or (plist-get params :formatter)
 	   (formatter (or (plist-get params :formatter)
 			  org-clock-clocktable-formatter
 			  org-clock-clocktable-formatter
 			  'org-clocktable-write-default))
 			  'org-clocktable-write-default))
-	   cc range-text ipos pos one-file-with-archives
-	   scope-is-list tbls level)
+	   cc ipos one-file-with-archives scope-is-list tbls level)
       ;; Check if we need to do steps
       ;; Check if we need to do steps
       (when block
       (when block
 	;; Get the range text for the header
 	;; Get the range text for the header
 	(setq cc (org-clock-special-range block nil t ws ms)
 	(setq cc (org-clock-special-range block nil t ws ms)
-	      ts (car cc) te (nth 1 cc) range-text (nth 2 cc)))
+	      ts (car cc)
+	      te (nth 1 cc)))
       (when step
       (when step
 	;; Write many tables, in steps
 	;; Write many tables, in steps
 	(unless (or block (and ts te))
 	(unless (or block (and ts te))
@@ -2393,7 +2385,6 @@ the currently selected interval size."
       (setq ipos (point)) ; remember the insertion position
       (setq ipos (point)) ; remember the insertion position
 
 
       ;; Get the right scope
       ;; Get the right scope
-      (setq pos (point))
       (cond
       (cond
        ((and scope (listp scope) (symbolp (car scope)))
        ((and scope (listp scope) (symbolp (car scope)))
 	(setq scope (eval scope)))
 	(setq scope (eval scope)))
@@ -2469,8 +2460,6 @@ from the dynamic block definition."
 	 (multifile (plist-get params :multifile))
 	 (multifile (plist-get params :multifile))
 	 (block (plist-get params :block))
 	 (block (plist-get params :block))
 	 (sort (plist-get params :sort))
 	 (sort (plist-get params :sort))
-	 (ts (plist-get params :tstart))
-	 (te (plist-get params :tend))
 	 (header (plist-get  params :header))
 	 (header (plist-get  params :header))
 	 (narrow (plist-get params :narrow))
 	 (narrow (plist-get params :narrow))
 	 (ws (or (plist-get params :wstart) 1))
 	 (ws (or (plist-get params :wstart) 1))
@@ -2710,10 +2699,11 @@ LEVEL is an integer.  Indent by two spaces per level above 1."
 	 (step (cdr (assoc step0 '((day . 86400) (week . 604800)))))
 	 (step (cdr (assoc step0 '((day . 86400) (week . 604800)))))
 	 (stepskip0 (plist-get p1 :stepskip0))
 	 (stepskip0 (plist-get p1 :stepskip0))
 	 (block (plist-get p1 :block))
 	 (block (plist-get p1 :block))
-	 cc range-text step-time tsb)
+	 cc step-time tsb)
     (when block
     (when block
       (setq cc (org-clock-special-range block nil t ws ms)
       (setq cc (org-clock-special-range block nil t ws ms)
-	    ts (car cc) te (nth 1 cc) range-text (nth 2 cc)))
+	    ts (car cc)
+	    te (nth 1 cc)))
     (cond
     (cond
      ((numberp ts)
      ((numberp ts)
       ;; If ts is a number, it's an absolute day number from org-agenda.
       ;; If ts is a number, it's an absolute day number from org-agenda.
@@ -2769,7 +2759,7 @@ file time (in minutes) as 1st and 2nd elements.  The third element
 of this list will be a list of headline entries.  Each entry has the
 of this list will be a list of headline entries.  Each entry has the
 following structure:
 following structure:
 
 
-  (LEVEL HEADLINE TIMESTAMP TIME)
+  \(LEVEL HEADLINE TIMESTAMP TIME)
 
 
 LEVEL:     The level of the headline, as an integer.  This will be
 LEVEL:     The level of the headline, as an integer.  This will be
            the reduced leve, so 1,2,3,... even if only odd levels
            the reduced leve, so 1,2,3,... even if only odd levels
@@ -2793,14 +2783,14 @@ TIME:      The sum of all time spend in this tree, in minutes.  This time
 	 (tags (plist-get params :tags))
 	 (tags (plist-get params :tags))
 	 (properties (plist-get params :properties))
 	 (properties (plist-get params :properties))
 	 (inherit-property-p (plist-get params :inherit-props))
 	 (inherit-property-p (plist-get params :inherit-props))
-	 todo-only
-	 (matcher (if tags (cdr (org-make-tags-matcher tags))))
-	 cc range-text st p time level hdl props tsp tbl)
+	 (matcher (and tags (cdr (org-make-tags-matcher tags))))
+	 cc st p time level hdl props tsp tbl)
 
 
     (setq org-clock-file-total-minutes nil)
     (setq org-clock-file-total-minutes nil)
     (when block
     (when block
       (setq cc (org-clock-special-range block nil t ws ms)
       (setq cc (org-clock-special-range block nil t ws ms)
-	    ts (car cc) te (nth 1 cc) range-text (nth 2 cc)))
+	    ts (car cc)
+	    te (nth 1 cc)))
     (when (integerp ts) (setq ts (calendar-gregorian-from-absolute ts)))
     (when (integerp ts) (setq ts (calendar-gregorian-from-absolute ts)))
     (when (integerp te) (setq te (calendar-gregorian-from-absolute te)))
     (when (integerp te) (setq te (calendar-gregorian-from-absolute te)))
     (when (and ts (listp ts))
     (when (and ts (listp ts))
@@ -2997,11 +2987,10 @@ The details of what will be saved are regulated by the variable
 	;; load history
 	;; load history
 	(when stored-clock-history
 	(when stored-clock-history
 	  (save-window-excursion
 	  (save-window-excursion
-	    (mapc (lambda (task)
-		    (if (file-exists-p (car task))
-			(org-clock-history-push (cdr task)
-						(find-file (car task)))))
-		  stored-clock-history)))
+	    (dolist (task stored-clock-history)
+	      (when (file-exists-p (car task))
+		(org-clock-history-push (cdr task)
+					(find-file (car task)))))))
 	;; resume clock
 	;; resume clock
 	(when (and resume-clock org-clock-persist
 	(when (and resume-clock org-clock-persist
 		   (file-exists-p (car resume-clock))
 		   (file-exists-p (car resume-clock))