GNU bug report logs - #25552
26.0.50; load cl unintendedly

Previous Next

Packages: emacs, mh-e;

Reported by: Katsumi Yamaoka <yamaoka <at> jpl.org>

Date: Fri, 27 Jan 2017 01:26:02 UTC

Severity: normal

Fixed in version 26.1

Done: Glenn Morris <rgm <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #33 received at 25552 <at> debbugs.gnu.org (full text, mbox):

From: npostavs <at> users.sourceforge.net
To: Mike Kupfer <mkupfer <at> alum.berkeley.edu>
Cc: Glenn Morris <rgm <at> gnu.org>, Katsumi Yamaoka <yamaoka <at> jpl.org>,
 25552 <at> debbugs.gnu.org
Subject: Re: bug#25552: 26.0.50; load cl unintendedly
Date: Wed, 01 Feb 2017 08:51:05 -0500
Mike Kupfer <mkupfer <at> alum.berkeley.edu> writes:

> Hi Katsumi and Glenn, I applied Glenn's patch to 25.1.90, and I'm afraid
> that it introduced a failure.  When I tried to compose an email,
> pressing the space key in the subject line got me
>
> Debugger entered--Lisp error: (wrong-type-argument syntax-table-p nil)
>   set-syntax-table(nil)
>   mh-beginning-of-word()
>   mh-letter-complete-or-space(1)
>   funcall-interactively(mh-letter-complete-or-space 1)
>   call-interactively(mh-letter-complete-or-space nil nil)
>   command-execute(mh-letter-complete-or-space)
>
> I vaguely recall there was some reason for not compiling mh-acros.el,
> but I don't remember the specifics.  I'll look into this some more when
> I have more time (this Thursday).

I guess it's because defun-mh checks whether the alias target is fbound
at compile time:

    (defmacro defun-mh (name function arg-list &rest body)
      "Create function NAME.
    If FUNCTION exists, then NAME becomes an alias for FUNCTION.
    Otherwise, create function NAME with ARG-LIST and BODY."
      (let ((defined-p (fboundp function)))
        (if defined-p
            `(defalias ',name ',function)
          `(defun ,name ,arg-list ,@body))))

It would be better to check at runtime:

    (defmacro defun-mh (name function arg-list &rest body)
      `(if (fboundp ',function)
           (defalias ',name ',function)
         (defun ,name ,arg-list ,@body)))

And/or require `mail-abbrev' at compile time

--- i/lisp/mh-e/mh-compat.el
+++ w/lisp/mh-e/mh-compat.el
@@ -260,7 +260,7 @@ 'mh-line-end-position
       'line-end-position
     'point-at-eol))
 
-(mh-require 'mailabbrev nil t)
+(eval-and-compile (mh-require 'mailabbrev nil t))
 (defun-mh mh-mail-abbrev-make-syntax-table
   mail-abbrev-make-syntax-table ()
   "Emacs 21 and XEmacs don't have `mail-abbrev-make-syntax-table'.




This bug report was last modified 8 years and 16 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.