> > (apply #'message format args) > > (unless byte-compile--interactive > > (message nil))) > > This is the problem: in order to "not emit a message" this code emits > the message and then immediately hides it by emitting "the empty > message" on top of it. > > Why not just do: > > (when byte-compile--interactive > (apply #'message format args)) Don't we have a new inhibit-messages variable? Why not use it? (let ((inhibit-messages (not byte-compile--interactive))) (apply #'message format args))