Ian Kelling <i...@iankelling.org> writes: > Ian Kelling <i...@iankelling.org> writes: >> It's a bit late. here is the same patch with correct indentation. > > That patch went out of it's way not to check more of the list than was > necessary, but after sending it, I kept thinking that it does extra > things which possibly negate any performance benefit of not checking the > whole list. So here is a simpler patch does the same thing, but goes > over the whole list. I'd love to hear a more experienced emacs lisper > weigh in on which is better. >
Hi Ian, You should use the `org-every' function here. Look at the source of that function to see code to efficiently perform this sort of check. Best, > > -- >8 -- > Subject: [PATCH] Fix error prone babel table output format detection > > * lisp/ob-core.el: Test that all elements are in a list are lists or > 'hline instead of just the first. > > org-babel table output uses different formatting for a list of lists, > but detects it incorrectly causing an error. An example of a block > causing an error is an emacs lisp source block containing just 1 line: > '((1) 2) > --- > lisp/ob-core.el | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/lisp/ob-core.el b/lisp/ob-core.el > index 1348f04..05ccb00 100644 > --- a/lisp/ob-core.el > +++ b/lisp/ob-core.el > @@ -2184,9 +2184,10 @@ code ---- the results are extracted in the syntax of > the source > ((funcall proper-list-p result) > (goto-char beg) > (insert (concat (orgtbl-to-orgtbl > - (if (or (eq 'hline (car result)) > - (and (listp (car result)) > - (listp (cdr (car result))))) > + (if (let ((proper t)) > + (dolist (elem result proper) > + (unless (or (listp elem) (eq elem > 'hline)) > + (setq proper nil)))) > result (list result)) > '(:fmt (lambda (cell) (format "%s" cell)))) > "\n")) > (goto-char beg) (when (org-at-table-p) (org-table-align))) -- Eric Schulte https://cs.unm.edu/~eschulte PGP: 0x614CA05D