emacs-orgmode
[Top][All Lists]
Advanced

[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: Kyle Meyer
Subject: Re: [O] Concerning `(letrec ((ignore)) ...)' in line 2718 of lisp/ox.el
Date: Fri, 11 Dec 2015 10:27:55 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux)

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?

--
Kyle



reply via email to

[Prev in Thread] Current Thread [Next in Thread]