changeset 92957:c3b09ba22de9

(timeclock-time-to-seconds, timeclock-log-data): Use nth. (timeclock-completing-read, timeclock-generate-report): Use zerop. (timeclock-mean, timeclock-generate-report): Use dolist.
author Glenn Morris <rgm@gnu.org>
date Sat, 15 Mar 2008 02:54:45 +0000
parents cddd00e11754
children 5700422f1364
files lisp/calendar/timeclock.el
diffstat 1 files changed, 21 insertions(+), 23 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/calendar/timeclock.el	Sat Mar 15 02:54:24 2008 +0000
+++ b/lisp/calendar/timeclock.el	Sat Mar 15 02:54:45 2008 +0000
@@ -548,7 +548,7 @@
   "Convert TIME to a floating point number."
   (+ (* (car time) 65536.0)
      (cadr time)
-     (/ (or (car (cdr (cdr time))) 0) 1000000.0)))
+     (/ (or (nth 2 time) 0) 1000000.0)))
 
 (defsubst timeclock-seconds-to-time (seconds)
   "Convert SECONDS (a floating point number) to an Emacs time structure."
@@ -632,7 +632,7 @@
 arguments of `completing-read'."
   (if (featurep 'xemacs)
       (let ((str (completing-read prompt alist)))
-	(if (or (null str) (= (length str) 0))
+	(if (or (null str) (zerop (length str)))
 	    default
 	  str))
     (completing-read prompt alist nil nil nil nil default)))
@@ -839,8 +839,8 @@
   "Template for summing the result of FUNC on each element of DAY-LIST."
   `(let ((length 0))
      (while day-list
-       (setq length (+ length (,(eval func) (car day-list))))
-       (setq day-list (cdr day-list)))
+       (setq length (+ length (,(eval func) (car day-list)))
+	     day-list (cdr day-list)))
      length))
 
 (defun timeclock-day-list-required (day-list)
@@ -1091,7 +1091,7 @@
 		   (if (null proj)
 		       (setcar (cddr log-data)
 			       (cons (cons desc (list entry))
-				     (car (cddr log-data))))
+				     (nth 2 log-data)))
 		     (nconc (cdr proj) (list entry)))))))
 	(forward-line))
       (if day
@@ -1210,13 +1210,12 @@
   "Compute the arithmetic mean of the values in the list L."
   (let ((total 0)
 	(count 0))
-    (while l
-      (setq total (+ total (car l))
-	    count (1+ count)
-	    l (cdr l)))
-    (if (> count 0)
-	(/ total count)
-      0)))
+    (dolist (thisl l)
+      (setq total (+ total thisl)
+	    count (1+ count)))
+    (if (zerop count)
+	0
+      (/ total count))))
 
 (defun timeclock-generate-report (&optional html-p)
   "Generate a summary report based on the current timelog file.
@@ -1232,7 +1231,7 @@
 	  done)
       (if (timeclock-currently-in-p)
 	  (insert "IN")
-	(if (or (null project) (= (length project) 0))
+	(if (zerop (length project))
 	    (progn (insert "Done Working Today")
 		   (setq done t))
 	  (insert "OUT")))
@@ -1319,22 +1318,22 @@
 	       (lengths  (vector '(0 0) thirty-days-ago three-months-ago
 				 six-months-ago one-year-ago)))
 	  ;; collect statistics from complete timelog
-	  (while day-list
+	  (dolist (day day-list)
 	    (let ((i 0) (l 5))
 	      (while (< i l)
 		(unless (time-less-p
-			 (timeclock-day-begin (car day-list))
+			 (timeclock-day-begin day)
 			 (aref lengths i))
 		  (let ((base (timeclock-time-to-seconds
 			       (timeclock-day-base
-				(timeclock-day-begin (car day-list))))))
+				(timeclock-day-begin day)))))
 		    (nconc (aref time-in i)
 			   (list (- (timeclock-time-to-seconds
-				     (timeclock-day-begin (car day-list)))
+				     (timeclock-day-begin day))
 				    base)))
-		    (let ((span (timeclock-day-span (car day-list)))
-			  (len (timeclock-day-length (car day-list)))
-			  (req (timeclock-day-required (car day-list))))
+		    (let ((span (timeclock-day-span day))
+			  (len (timeclock-day-length day))
+			  (req (timeclock-day-required day)))
 		      ;; If the day's actual work length is less than
 		      ;; 70% of its span, then likely the exit time
 		      ;; and break amount are not worthwhile adding to
@@ -1343,14 +1342,13 @@
 				 (> (/ (float len) (float span)) 0.70))
 			(nconc (aref time-out i)
 			       (list (- (timeclock-time-to-seconds
-					 (timeclock-day-end (car day-list)))
+					 (timeclock-day-end day))
 					base)))
 			(nconc (aref breaks i) (list (- span len))))
 		      (if req
 			  (setq len (+ len (- timeclock-workday req))))
 		      (nconc (aref workday i) (list len)))))
-		(setq i (1+ i))))
-	    (setq day-list (cdr day-list)))
+		(setq i (1+ i)))))
 	  ;; average statistics
 	  (let ((i 0) (l 5))
 	    (while (< i l)