LGTM. I'm a little surprised this is necessary, but whatever. I think the eval-and-compile has to be top-level; it's certainly not wrong for it to be top-level. (I like the comment in the eval-and-compile implementation: ";; Remember, it's magic.")
On Thu, 04 Sep 2014, Mark Walters <markwalters1...@gmail.com> wrote: > notmuch-jump uses window-body-width which is not defined in emacs > 23. To get around this it does > > (unless (fboundp 'window-body-width) > ;; Compatibility for Emacs pre-24 > (defalias 'window-body-width 'window-width)) > > This makes sure window-body-width is defined and all should be > well. But it seems that the byte compiler does not realise that this > guarantees that window-body-width will be defined and so, when > compiling with emacs 23, it gives an error > > In end of data: > notmuch-jump.el:172:1:Warning: the function `window-body-width' is not known > to be defined. > > Domo and I came to following on irc: wrap the (unless (fboundp ...)) > inside eval-and-compile which ensures that both the test and the > defalias (if needed) happen at both compile and load time. This fixes > the warning. > --- > I think Domo and I were both not completely sure whether the > eval-and-compile should be inside or outside the (unless fboundp ..) > or not (ie should it wrap the unless fboundp or just the defalias) nor > whether it should be eval-and-compile or eval-when-compile. > > We think this is the right version but it would be good to have confirmation. > > I tested notmuch jump inside emacs 23 and 24 with notmuch-emacs > compiled with emacs 23 or 24 (ie all four combinations) and it seemed to work. > > Best wishes > > Mark > > > > emacs/notmuch-jump.el | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/emacs/notmuch-jump.el b/emacs/notmuch-jump.el > index 5eb0949..2706b6c 100644 > --- a/emacs/notmuch-jump.el > +++ b/emacs/notmuch-jump.el > @@ -25,9 +25,10 @@ > (require 'notmuch-lib) > (require 'notmuch-hello) > > -(unless (fboundp 'window-body-width) > - ;; Compatibility for Emacs pre-24 > - (defalias 'window-body-width 'window-width)) > +(eval-and-compile > + (unless (fboundp 'window-body-width) > + ;; Compatibility for Emacs pre-24 > + (defalias 'window-body-width 'window-width))) > > ;;;###autoload > (defun notmuch-jump-search () > -- > 1.7.10.4 > > _______________________________________________ > notmuch mailing list > notmuch@notmuchmail.org > http://notmuchmail.org/mailman/listinfo/notmuch _______________________________________________ notmuch mailing list notmuch@notmuchmail.org http://notmuchmail.org/mailman/listinfo/notmuch