Sven Neumann writes:
> Almost all of the messages that cause this problem don't come from the
> GIMP application. They are created by libraries that we are using and
> these libaries aren't necessarily using g_print() and g_printerr().
Nope, you have it backwards. 3rd-party libraries who write to stdout
directly don't cause them.
> Also I don't see why we should be redirecting stdout and stderr.
> Everything that shows up there is strictly just for the eyes of
Some clarification here: The GIMP executable is linked as a "GUI"
application. This means that it doesn't have any console window when
it starts. stdout and stderr are not connected to anything. Writing to
them doesn't go anywhere, and certainly doesn't open a console window
for the application.
It's the g_print() etc functions that explicitly open a new console
window if stdout (or stderr) isn't connected to a valid file handle.
It would be possible to make it impossible to close the console window
that GLib opens, by removing the close button from it. Then users
would know just to minimize it if they aren't interested in the
messages. See my last comment in bug #141102.
> We use g_message() for all messages that are meant to be
> seen by users. Such messages then are processed by the following logic:
> If GIMP was started with the --console-messages command-line
> option, the messages go the console (stdout iirc).
Hmm, if most GIMP users on X11 start GIMP through some window manager
whose stdout isn't visible, is that option then really supposed to
mean "don't show messages"?
I guess there is a mismatch in the ways of thinking here: GIMP thinks
that writing to stdout means the output will mostly go somewhere where
the user doens't see it, unless he explicitly does something unusual
(starts GIMP from the command line).
The Win32 code in GLib again thinks that g_print() etc messages are
*important*, and supposed to be shown to the user in some way, even
opening a new console window if there isn't one already. If the user
wants to redirect stdout and stderr (to NUL: or a file), he can do it
from the command line.
Gimp-developer mailing list