]> git.eshelyaron.com Git - emacs.git/commitdiff
* calendar/todos.el: Fix tabular alignment in Todos Categories mode.
authorStephen Berman <stephen.berman@gmx.net>
Tue, 8 Jan 2013 21:40:41 +0000 (22:40 +0100)
committerStephen Berman <stephen.berman@gmx.net>
Tue, 8 Jan 2013 21:40:41 +0000 (22:40 +0100)
(todos-adjusted-category-label-length): New function.
(todos-padded-string): Use it.

lisp/ChangeLog
lisp/calendar/todos.el

index 754e936f2b349a1bc412bed4d0d1932fb40526f5..c529800e5645aade87932dfc8b396ebf0e2b7995 100644 (file)
@@ -1,3 +1,9 @@
+2013-01-08  Stephen Berman  <stephen.berman@gmx.net>
+
+       * calendar/todos.el: Fix tabular alignment in Todos Categories mode.
+       (todos-adjusted-category-label-length): New function.
+       (todos-padded-string): Use it.
+
 2013-01-08  Stephen Berman  <stephen.berman@gmx.net>
 
        * calendar/todos.el (todos-move-item): Allow moving done items to
index 0b3a3b57a9b2501e49bac07daa6b187367ade545..c5792338930f6fcb5b890186d3a371fd7e291d94 100644 (file)
@@ -2141,15 +2141,26 @@ in Todos Filter Items mode."
     (dolist (c categories longest)
       (setq longest (max longest (length c))))))
 
+(defun todos-adjusted-category-label-length ()
+  "Return adjusted length of category label button.
+The adjustment ensures proper tabular alignment in Todos
+Categories mode."
+  (let* ((categories (mapcar 'car todos-categories))
+        (longest (todos-longest-category-name-length categories))
+        (catlablen (length todos-categories-category-label))
+        (lc-diff (- longest catlablen)))
+    (if (and (natnump lc-diff)
+            (eq (logand lc-diff 1) 1)) ; oddp from cl.el
+       (1+ longest)
+      (max longest catlablen))))
+
 (defun todos-padded-string (str)
-  "Return string STR padded with spaces.
+  "Return category name or label string STR padded with spaces.
 The placement of the padding is determined by the value of user
 option `todos-categories-align'."
-  (let* ((categories (mapcar 'car todos-categories))
-        (len (max (todos-longest-category-name-length categories)
-                  (length todos-categories-category-label)))
+  (let* ((len (todos-adjusted-category-label-length))
         (strlen (length str))
-        (strlen-odd (eq (logand strlen 1) 1)) ; oddp from cl.el
+        (strlen-odd (eq (logand strlen 1) 1))
         (padding (max 0 (/ (- len strlen) 2)))
         (padding-left (cond ((eq todos-categories-align 'left) 0)
                             ((eq todos-categories-align 'center) padding)