[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] Concerning `(letrec ((ignore)) ...)' in line 2718 of lisp/ox.el
From: |
Zack Piper |
Subject: |
Re: [O] Concerning `(letrec ((ignore)) ...)' in line 2718 of lisp/ox.el |
Date: |
Fri, 11 Dec 2015 16:13:36 +0000 |
User-agent: |
Mutt/1.5.23+113 (34ca1c5fdd45) (2014-03-12) |
On Fri, Dec 11, 2015 at 10:27:55AM -0500, Kyle Meyer wrote:
>
> Zack Piper <address@hidden> writes:
>
> > I (think) I have a recipe to reproduce this:
> >
> > - Emacs 25 (emacs-25 branch from Git)
> > - Org mode from latest Git (make sure that there's no ELC files from
> > Emacs *24*, if it uses files from Emacs 24 it works fine (bug in
> > byte compiler?)).
> >
> > ╭────[ r.el ]
> > │ (add-to-list 'load-path "~/org-mode/lisp")
> > │ (add-to-list 'load-path "~/org-mode/contrib/lisp")
> > │ (require 'org)
> > │
> > │ (find-file "~/r.org")
> > │
> > │ (org-html-export-as-html)
> > ╰────
> >
> > ╭────[ $ ]
> > │ emacs -Q -l r.el
> > ╰────
> >
> > Produces:
> >
> > ╭────
> > │ Wrong number of arguments: setq, 1
> > ╰────
>
> I believe this because an odd number of arguments to setq now signals an
> error:
>
> https://lists.gnu.org/archive/html/emacs-devel/2015-11/msg02028.html
>
> From Emacs 25 NEWS:
>
> ** `setq' must now be called with an even number of arguments. The
> earlier behavior of silently supplying a nil to the last variable when
> there was an odd number of arguments has been eliminated.
>
> The binding
>
> (letrec ((ignore)
>
> results in letrec passing an odd number of arguments to setq:
>
> `(let ,(mapcar #'car binders)
> ,@(mapcar (lambda (binder) `(setq ,@binder)) binders)
> ,@body))
>
> Changing (ignore) to (ignore nil) should fix it. There are several
> other places in ox.el that have the same problem. However, I don't know
> if letrec should handle this instead. Nicolas?
I submitted a patch to the emacs-devel ML which fixes this (at least
for me).
Thanks very much for tracking down this issue, Kyle!
--
Zack Piper <address@hidden> http://apertron.net