GNU bug report logs - #31148
26.1; require w32 errors

Previous Next

Package: emacs;

Reported by: Alex Branham <alex.branham <at> gmail.com>

Date: Fri, 13 Apr 2018 14:52:01 UTC

Severity: normal

Merged with 6997, 32157

Found in versions 24.0.50, 26.1

Fixed in version 27.1

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

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Alex Branham <alex.branham <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 31148 <at> debbugs.gnu.org
Subject: bug#31148: 26.1; require w32 errors
Date: Fri, 13 Apr 2018 12:45:37 -0500
On Fri 13 Apr 2018 at 12:22, Eli Zaretskii <eliz <at> gnu.org> wrote:

>> From: Alex Branham <alex.branham <at> gmail.com>
>> Cc: 31148 <at> debbugs.gnu.org
>> Date: Fri, 13 Apr 2018 10:15:59 -0500
>>
>> >> (require 'w32-fns nil t)
>> >>
>> >> It produces an error void-function set-message-beep. This is reproducible for me from emacs -q.
>> >
>> > Don't do that, then, unless you are in a w32 Emacs.
>>
>> What's the recommended way for packages to rely on these functions then?
>> It seems annoying to wrap every call to w32-functions in
>> (if (fboundp ...) (w32-...))
>
> I don't understand the question.  w32-fns.el is preloaded on
> MS-Windows, so packages that rely on some function from there can
> simply call them.
>
> IOW, why would you want to 'require' w32-fns?

I'm going through and editing some older ESS code, and they make checks
like this:

(if (not (w32-shell-dos-semantics))
      (add-hook 'comint-output-filter-functions 'ess-bugs-exit-notify-sh))

Which causes errors on non-windows machines unless you wrap the call to
w32-shell-dos-semantics in (and (fboundp ...)), which looks weird to me:

(if (not (and
           (fboundp 'w32-shell-dos-semantics)
           (w32-shell-dos-semantics)))
      (add-hook 'comint-output-filter-functions 'ess-bugs-exit-notify-sh))

They also have code like:

(if (ess-microsoft-p)
  (w32-short-file-name ...))

which causes byte compiler warnings about w32 being undefined. I guess
the best/only way to get rid of these is to (declare-function ... ),
right?

Thanks,
Alex




This bug report was last modified 6 years and 306 days ago.

Previous Next


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