I have the following function that displays a table in a buffer.
But this handles only two columns. How can I extend this to handle an arbitrary number of columns?
(defun tlprint-alist (alist &optional outbufr keytl valtl)
"Print an associated list via `tabulated-list-print'."
(let*
( (bufr (or outbufr (get-buffer-create "*Alist2*")))
(keytl (or keytl "Key Title"))
(valtl (or valtl "Value Title")) )
(with-current-buffer bufr
(tabulated-list-mode)
(setq buffer-read-only nil)
(setq tabulated-list-format
(vector (list keytl 20 t) (list valtl 20 t)))
(setq tabulated-list-sort-key (cons keytl nil))
(setq tabulated-list-entries
(mapcar (lambda (dyad)
(list (car dyad) (cdr dyad)))
alist))
(tabulated-list-init-header)
(tabulated-list-print) )))