+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)
(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.
(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))))
(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)