]> code.delx.au - gnu-emacs/commitdiff
(gdb-mapcar*): Replacement for `mapcar*'
authorDmitry Dzhus <dima@sphinx.net.ru>
Mon, 24 Aug 2009 19:12:46 +0000 (19:12 +0000)
committerDmitry Dzhus <dima@sphinx.net.ru>
Mon, 24 Aug 2009 19:12:46 +0000 (19:12 +0000)
from cl package.
(gdb-table-add-row, gdb-table-string): Use `gdb-mapcar*'.

lisp/ChangeLog
lisp/progmodes/gdb-mi.el

index eb11c0aaa8c482f5c904863bfc7df597192e8d98..231b1d9c5fc68c9a8f955b4666bff1625f2e5a93 100644 (file)
@@ -1,3 +1,9 @@
+2009-08-24  Dmitry Dzhus  <dima@sphinx.net.ru>
+
+       * progmodes/gdb-mi.el (gdb-mapcar*): Replacement for `mapcar*'
+       from cl package.
+       (gdb-table-add-row, gdb-table-string): Use `gdb-mapcar*'.
+
 2009-08-24  Jay Belanger  <jay.p.belanger@gmail.com>
 
        * calc/calc-alg.el (math-trig-rewrite)
index 4784eea0942b4ee2b6fe6582d21c40096f767181..b5617bb2ab2af1773496e06cd8af413832615bd5 100644 (file)
@@ -2119,6 +2119,20 @@ Return position where LINE begins."
   (row-properties nil)
   (right-align nil))
 
+(defun gdb-mapcar* (function &rest seqs)
+  "Apply FUNCTION to each element of SEQS, and make a list of the results.
+If there are several SEQS, FUNCTION is called with that many
+arugments, and mapping stops as sson as the shortest list runs
+out."
+  (let ((shortest (apply #'min (mapcar #'length seqs))))
+    (mapcar (lambda (i)
+              (apply function
+                     (mapcar
+                      (lambda (seq)
+                        (nth i seq))
+                      seqs)))
+            (number-sequence 0 (1- shortest)))))
+
 (defun gdb-table-add-row (table row &optional properties)
   "Add ROW of string to TABLE and recalculate column sizes.
 
@@ -2136,7 +2150,7 @@ calling `gdb-table-string'."
     (setf (gdb-table-row-properties table)
           (append row-properties (list properties)))
     (setf (gdb-table-column-sizes table)
-          (mapcar* (lambda (x s)
+          (gdb-mapcar* (lambda (x s)
                      (let ((new-x
                             (max (abs x) (string-width (or s "")))))
                        (if right-align new-x (- new-x))))
@@ -2152,12 +2166,12 @@ calling `gdb-table-string'."
         (res ""))
     (mapconcat
      'identity
-     (mapcar*
+     (gdb-mapcar*
       (lambda (row properties)
         (apply 'propertize
                (mapconcat 'identity
-                          (mapcar* (lambda (s x) (gdb-pad-string s x))
-                                   row column-sizes)
+                          (gdb-mapcar* (lambda (s x) (gdb-pad-string s x))
+                                       row column-sizes)
                           sep)
                properties))
       (gdb-table-rows table)