branch: elpa/tablist commit c78eccdc68dc858b0d33987735622a7c1c1b63a4 Author: Andreas Politz <poli...@hochschule-trier.de> Commit: Andreas Politz <poli...@hochschule-trier.de>
Turn macro into a function * lisp/tablist.el (tablist-generate-sorter): This should be a function. --- tablist.el | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/tablist.el b/tablist.el index 5e56926..567d69e 100644 --- a/tablist.el +++ b/tablist.el @@ -1926,7 +1926,7 @@ AWINDOW is deleted." (tablist-window-attach newwin window) newwin)) -(defmacro tablist-generate-sorter (column compare-fn &optional read-fn) +(defun tablist-generate-sorter (column compare-fn &optional read-fn) "Generate a sort function for `tabulated-list' entries. Example: @@ -1936,18 +1936,12 @@ Example: would create a sort function sorting `tabulated-list-entries' on the 0-th column as numbers by the less-than relation." - (let ((column-sym (make-symbol "column")) - (compare-fn-sym (make-symbol "compare-fn")) - (read-fn-sym (make-symbol "read-fn"))) - `(let ((,column-sym ,column) - (,compare-fn-sym ,compare-fn) - (,read-fn-sym (or ,read-fn 'identity))) - (lambda (e1 e2) - (funcall ,compare-fn-sym - (funcall ,read-fn-sym - (aref (cadr e1) ,column-sym)) - (funcall ,read-fn-sym - (aref (cadr e2) ,column-sym))))))) + (lambda (e1 e2) + (funcall compare-fn + (funcall (or read-fn 'identity) + (aref (cadr e1) column)) + (funcall read-fn + (aref (cadr e2) column))))) (provide 'tablist) ;;; tablist.el ends here