X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gmessages.c;h=390885f5c042ba9685c351b7a8467c34bd500501;hb=c9bd7542e1a28ba9de60048361c0a97d251833e7;hp=5f60218bf09d36761bd3b57a931d4cbe86b7dae7;hpb=30a1e1addb131e3e200f91e9f93e3fc0709f3809;p=platform%2Fupstream%2Fglib.git diff --git a/gmessages.c b/gmessages.c index 5f60218..390885f 100644 --- a/gmessages.c +++ b/gmessages.c @@ -2,23 +2,23 @@ * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald * * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public + * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ /* - * Modified by the GLib Team and others 1997-1999. See the AUTHORS + * Modified by the GLib Team and others 1997-2000. See the AUTHORS * file for a list of people on the GLib Team. See the ChangeLog * files for a list of changes. These files are distributed with * GLib at ftp://ftp.gtk.org/pub/gtk/. @@ -92,6 +92,9 @@ static GPrivate* g_log_depth = NULL; # define STRICT # include # include /* For _getpid() */ + +static gboolean alloc_console_called = FALSE; + /* Just use stdio. If we're out of memory, we're hosed anyway. */ #undef write static inline int @@ -100,6 +103,7 @@ write (FILE *fd, int len) { fwrite (buf, len, 1, fd); + fflush (fd); return len; } @@ -108,12 +112,16 @@ ensure_stdout_valid (void) { HANDLE handle; - handle = GetStdHandle (STD_OUTPUT_HANDLE); - - if (handle == INVALID_HANDLE_VALUE) + if (!alloc_console_called) { - AllocConsole (); - freopen ("CONOUT$", "w", stdout); + handle = GetStdHandle (STD_OUTPUT_HANDLE); + + if (handle == INVALID_HANDLE_VALUE) + { + AllocConsole (); + alloc_console_called = TRUE; + freopen ("CONOUT$", "w", stdout); + } } } #else