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