5

When running a process from a timer, this message is printed a lot.

Is there a way to suppress the message entirely?

For reference see: https://emacs.stackexchange.com/a/50681/2418

ideasman42
  • 8,375
  • 1
  • 28
  • 105
  • 3
    Well the message is there for a reason -- Emacs has been told to wait for output from a process for an *unlimited duration, without allowing the user to interrupt*. Instead of suppressing the message, perhaps it would make best sense to avoid it from being issued in the first place. – phils Feb 18 '20 at 10:48
  • Right, this should be worked around somehow, the issue is - I have no idea how. I wanted to run a spell checker on a timer, which seems to be possible to do `wcheck` package does it, however the code is fairly complex and I'd need to spend much more time digging into it to figure out how it works. – ideasman42 Feb 18 '20 at 22:53

1 Answers1

0

From what I can tell the answer is no.

However, this can be worked around (albeit a hack).

  • Disable logging.
  • Run the operation which causes the message.
  • Clear the message.
  • Enable logging again.
ideasman42
  • 8,375
  • 1
  • 28
  • 105
  • 1
    There is also `inhibit-message` (still a hack, just slightly more concise). – npostavs May 26 '19 at 14:03
  • 1
    This happens not to work in this case, I think because the message call is from C code. – ideasman42 May 26 '19 at 14:09
  • 1
    Hmm, I thought the point of `inhibit-message` is that it should work on C code, unlike advising `message` which doesn't. Although looking at its docstring, I notice `inhibit-message` doesn't inhibit logging, just the display. So if you want to keep the log clear too, it's not really that much more concise. – npostavs May 26 '19 at 14:32
  • 1
    @npostavs `(let ((inhibit-message t) (message-log-max nil)) ...)` is the best way I know of to do both. – phils Feb 18 '20 at 10:40