Subject: bug#25552: 26.0.50; load cl unintendedly

From: Bill Wohler <[email-masked]>
Date: Sun, 30 Apr 2017 22:10:40 -0700

Noam Postavsky <[email-masked]> wrote:

> On Thu, Apr 13, 2017 at 9:30 PM, Mike Kupfer <[email-masked]> wrote:
> >
> >> I thought we had switched to just supporting the current Emacs
> >> version, rather than doing a separate MH-E release that supports
> >> multiple Emacs versions.
> >
> > Yes, I've confirmed with Bill Wohler that that's what we're doing.
> >
> > I'm happy for either you or Glenn to push those patches, but I can do it
> > if you prefer (probably next week sometime).
> >
> > Oh, and to close the loop with some suggestions that Glenn made back in
> > February (e.g., use cl-lib instead of cl)...  I do plan to look into
> > those suggestions, but I don't know how long it will take me.  So fixing
> > the immediate cl problem now seems to me like a good thing.
> 
> That all sounds fine, push at your convenience, there's no special urgency.

I tested what I think we have so far (appended) and haven't noticed
anything amiss. Please push what you have at your convenience, as I
don't think I see it on master yet.

I tried to add eval-and-compile to mailabbrev, but got the following
compilation error:

    mh-e/mh-compat.el:263:1:Error: Symbol’s function definition is void: mh-require

-- 
Bill Wohler <[email-masked]> aka <[email-masked]>
http://www.newt.com/wohler/
GnuPG ID:610BD9AD

diff --git a/lisp/mh-e/mh-acros.el b/lisp/mh-e/mh-acros.el
index 0c89efbe3c..2e778eafb9 100644
--- a/lisp/mh-e/mh-acros.el
+++ b/lisp/mh-e/mh-acros.el
@@ -81,7 +81,7 @@ mh-do-in-xemacs
 ;;;###mh-autoload
 (defmacro mh-funcall-if-exists (function &rest args)
   "Call FUNCTION with ARGS as parameters if it exists."
-  (when (fboundp function)
+   (when (fboundp function)
     `(when (fboundp ',function)
        (funcall ',function ,@args))))
 
@@ -90,10 +90,9 @@ defun-mh
   "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))))
+  `(if (fboundp ',function)
+       (defalias ',name ',function)
+     (defun ,name ,arg-list ,@body)))
 (put 'defun-mh 'lisp-indent-function 'defun)
 (put 'defun-mh 'doc-string-elt 4)
 
diff --git a/lisp/mh-e/mh-compat.el b/lisp/mh-e/mh-compat.el
index 3f3990e869..099fc9bbba 100644
--- a/lisp/mh-e/mh-compat.el
+++ b/lisp/mh-e/mh-compat.el
@@ -40,7 +40,7 @@
 ;; Items are listed alphabetically (except for mh-require which is
 ;; needed sooner it would normally appear).
 
-(require 'mh-acros)
+(eval-when-compile (require 'mh-acros))
 
 (mh-do-in-gnu-emacs
   (defalias 'mh-require 'require))
@@ -374,7 +374,6 @@ mh-write-file-functions
 (provide 'mh-compat)
 
 ;; Local Variables:
-;; no-byte-compile: t
 ;; indent-tabs-mode: nil
 ;; sentence-end-double-space: nil
 ;; End: