2005-07-01 Hans Breuer <hans@breuer.org>
* glib/gmessages.c : include <process.h> for getpid()
* glib/gmappedfile.c : include <io.h> for close() etc.
* glib/makefile.msc.in : add gmappedfile.obj
2005-03-20 Tor Lillqvist <tml@novell.com>
* glib/gmessages.c (g_log_default_handler)
* glib/gutils.c (g_get_prgname): Move the Win32 code that asks the
program name from the system to g_get_prgname(). Do output the pid
also on Win32 (useful in case there are several instances of the
same program running).
2005-03-13 Matthias Clasen <mclasen@redhat.com>
Make PLT-reduction work with gcc4, and don't include
everything in galias.h:
* glib/glib.symbols: Group symbols by header and source file.
* glib/makegalias.pl: Protect definitions by the same
preprocessor symbols used to guard the headers. Move
the alias declarations to a separate file which is
produced when calling makegalias.pl -def
* glib/Makefile.am (galiasdef.c): Add a rule to generate this
file.
* glib/*.c: Include galias.h after the other GLib headers,
include galiasdef.c at the bottom.
2005-01-19 Tor Lillqvist <tml@novell.com>
* glib/gbacktrace.c (g_on_error_stack_trace): On Win32 call
G_BREAKPOINT() if being debugged.
* glib/gmessages.c (g_logv): For fatal messages on Win32, use
G_BREAKPOINT() also without G_ENABLE_DEBUG, but only if being
debugged. Suggestion by Ulf Lamping. Otherwise use FatalAppExit().
Thu Nov 25 14:02:43 2004 Manish Singh <yosh@gimp.org>
* glib/abicheck.sh: filter out G_GNUC stuff when doing the compare.
* glib/gmessages.c (g_assert_warning): call abort() at the end, so
gcc doesn't warn.
2004-09-29 Matthias Clasen <mclasen@redhat.com>
* glib/glib.symbols: Add g_assert_warning.
* glib/gmessages.h:
* glib/gmessages.c (g_assert_warning): Treat g_assert
in the same way as g_return_if_fail and move the string
constants into a helper function, which also takes
care of removing the "IA__" prefix from internal aliases.
2004-09-22 Tor Lillqvist <tml@iki.fi>
* glib/gmessages.c: [Win32] Don't open a console window if
standard output or standard error are invalid (as they are for GUI
applications). These console windows that open up unexpectedly
have caused endless amounts of confusion among end-users.
Don't output the process id on Windows. Only output the program
name. If not set with g_set_prgname(), fetch the application
executable's name and use that.
Sun Sep 19 23:52:35 2004 Matthias Clasen <maclas@gmx.de>
* glib/gmessages.c (mklevel_prefix):
* glib/gmessages.c (g_logv): Fix the types of some variables
to be GLogLevelFlags instead of guint. (#153042, Philippe Blain)
2004-09-09 Matthias Clasen <mclasen@redhat.com>
* glib/gmessages.c (g_return_if_fail_warning): Strip the
prefix "IA__" from function names, since that is what
GTK+ uses for the PLT-reduction aliases.
Thu Sep 9 13:52:26 2004 Owen Taylor <otaylor@redhat.com>
* glib/gmessages.c (g_return_if_fail_warning):
Include implementation of g_return_if_fail_internal().
Sun Mar 14 13:56:48 2004 Owen Taylor <otaylor@redhat.com>
* glib/gmessages.c (escape_string): Handle invalid
UTF-8. (#131218, patch from Matthias Clasen)
2003-08-19 Tor Lillqvist <tml@iki.fi>
* glib/gmessages.c (g_logv): [Win32] Make the fatal error message
box easier to notice with MB_SETFOREGROUND. Also use MB_ICONERROR
to get a nice stop-sign icon.
2003-02-14 Sebastian Wilhelmi <seppi@seppi.de>
Fixes for #101264 and #99372:
* glib/gconvert.h, glib/gmain.c, glib/gmem.c, glib/gmessages.c,
glib/grand.c: Include gthreadinit.h and rename the thread
initialization functions a bit and let them start with _, so that
later we can stop exporting them.
* glib/gmem.c, glib/gmessages.c: Move the g_private_new() calls to
new functions. They have to be called after setting
g_threads_got_initialized to TRUE (see #101264).
* glib/gthread.c: Include gthreadinit.h. Renamed g_mutex_init() to
g_thread_init_glib(). Call the thread initialization functions
(which are not allowed to call g_private_new), then set
g_threads_got_initialized to TRUE, then call the other thread
initialization functions (which must not call anything but
g_private_new()).
* glib/gthreadinit.h: New private header to cleanly declare all
thread initialization functions.
* gthread/gthread-impl.c: Include gthreadinit.h. In
g_thread_init() just call g_thread_init_glib(), which in turn calls the
other functions (see #99372).
* glib/Makefile.am: Added gthreadinit.h.
2003-01-01 Tor Lillqvist <tml@iki.fi>
* glib/gmessages.c (ensure_stdout_valid, ensure_stderr_valid):
Check the C stdout and stderr streams for validity, instead of
what GetStdHandle() returns.
2003-01-01 Tor Lillqvist <tml@iki.fi>
* glib/gmessages.c (ensure_stderr_valid, ensure_stdout_valid): Move the
alloc_console_called static flag inside these two functions.
2003-01-01 Tor Lillqvist <tml@iki.fi>
* glib/gmessages.c (ensure_stderr_valid): New function, parallel
to ensure_stdout_valid(). #defined as empty on Unix.
(mklevel_prefix): Do use either stderr or stdout on Windows,
too. Otherwise g_warning() messages (that are just warnings, by
definition) will get mixed with proper stdout output. Noticed in
GIMP's gimpconfig-dump.
(strdup_convert, mklevel_prefix, g_printerr): Call
ensure_stderr_valid() before trying to use stderr.
(g_logv): [Win32] Convert message to current codepage before
display with MessageBox().
positional parameters: (#79488)
* glib/gstrfuncs.c:
* glib/gspawn-win32.c:
* glib/gscanner.c:
* glib/gconvert.c:
* glib/gbacktrace.c: Use _g_printf wrappers.
* glib/gutils.c (g_vsnprintf): Simplify, since we can assume C99
snprintf semantics now.
* glib/gmessages.c (printf_string_upper_bound): No longer needed,
since we can assume C99 snprintf semantics now.
(g_logv): Simplify.
* acinclude.m4 (AC_FUNC_PRINTF_UNIX98): New macro to check wether
printf supports SUS positional parameters.
* configure.in: New option --enable-included-printf to force
compilation of trio; otherwise trio is compiled if the system
printf misses either C99 snprintf semantics of SUS positional
parameters.
* glib/Makefile.am (SUBDIRS): Conditionally compile trio.
(libglib_2_0_la_SOURCES): Add gprintf.c and gprintfint.h.
(glibsubinclude_HEADERS): Add gprintf.h.
* glib/gprintfint.h: New private wrapping either system printf
or trio printf variants in _g_printf wrappers for use inside glib.
* glib/gprintf.h: New public header declaring g_printf variants.
* glib/gprintf.c: Corresponding implementations.
* glib/trio/*: New directory, containing the trio-1.9 sources.
* glib/tmpl/string_utils.sgml: Add note on including gprintf.h,
move some docs inline.
* glib/glib-sections.txt: Add g_printf, g_vprintf, g_fprintf,
g_vfprintf, g_sprintf, g_vsprintf.
Mon May 13 11:42:23 2002 Owen Taylor <otaylor@redhat.com>
* glib/libcharset/*: Update from libcharset CVS.
Includes additional encodings for Solaris (#80396,
Qingjiang Yuan)
* configure.in: Add getc_unlocked to CHECK_FUNCS().
* glib/gmessages.c (strdup_convert): If
g_convert_with_fallback() fails, print the error
message to stderr the first time, then return
the original string. (#78197)
Thu Mar 28 18:22:53 2002 Owen Taylor <otaylor@redhat.com>
* README: Remove warning about g_print, etc, encoding.
* NEWS: Updates.
* glib/gmessages.c (g_log_default_handler): Use %lu
(plus a cast) when printing out pid_t arguments.
(#76770, Morten Welinder)
* glib/gstrfuncs.c (g_strdup_vprintf): Check the
result of vasprintf(), return NULL on failure.
(#76802, Akira Tagoh)
* tests/testglib.c (TEST): Supress a warning with
some GCC versions.
Thu Mar 28 20:31:51 2002 Tim Janik <timj@gtk.org>
* glib/gmessages.c:
(g_print):
(g_printerr): convert prtinf() strings to local charset
when writing them to stdout or stderr.
Wed Mar 27 18:42:22 2002 Tim Janik <timj@gtk.org>
* gmessages.[hc]:
major cleanups. introduced _g_log_fallback_handler() to handle
recursive messages which really doesn't call any GLib functions.
this allowes the default handler to use normal GLib functions and
also fixes user supplied log level handlers.
fixed locking issues, based on a patch from Sebastian Willhelmi,
attached to #74356. translate log messages from UTF-8, based
on the same patch. save fatal and recursion flags across flag
loop. use new integer format code from above patch.
move GLib functions out of locked mutex state to avoid deadlocks.
move the level prefix and filedescriptor logic into mklevel_prefix().
move _g_debug_init() into a place where we can figure and handle
recursion.
2002-03-14 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib/gmessages.c: Fixed threading issues brought up by
#74577. Make g_log_find_domain, g_log_domain_new,
g_log_domain_check_free and g_log_domain_get_handler require being
called with g_messages_lock held and remove all internal locking
in them. Then added proper locking to g_log_set_handler,
g_log_remove_handler and g_logv. Problem spotted by Miroslaw
Dobrzanski-Neumann <mne@mosaic-ag.com>. (#74577)
* glib/gdebug.h: New header containing GTK_DEBUG-style debugging
support for GLib. Currently only the fatal_warnings debug option exists.
* glib/gmessages.c (g_log_msg_prefix_init): New one-shot function
for parsing G_MESSAGES_PREFIXED.
(_g_debug_init): New one-shot function for parsing G_DEBUG.
(g_log_write_prefix): Use g_log_msg_prefix_init().
(g_messages_init): Use g_log_msg_prefix_init() and _g_debug_init().
* glib/Makefile.am (libglib_1_3_la_SOURCES): Add gdebug.h.
* glib/Makefile.am (IGNORE_HFILES): Add gdebug.h.
* glib/running.sgml: Document the G_DEBUG environment variable.
* glib/tmpl/threads.sgml: Replace g_thread_wait() by
g_thread_join() in two places.
2002-02-14 Tor Lillqvist <tml@iki.fi>
* glib/gmessages.c (g_logv): Use the #if branch with
G_BREAKPOINT() also on Win32. Remove the separate __asm int 3 for
MSVC, G_BREAKPOINT() does exactly that.
2002-01-23 Laszlo Peter <laca@ireland.sun.com>
* glib/gmessages.c (g_printf_string_upper_bound): return 1 more
for the trailing \0 when using vsnprintf. (#69474)
The following patch corrects some function attributes. (#61780)
* glib/ghash.h (g_int_equal, g_int_hash): These are not const.
* glib/glibintl.h (_glib_gettext): Add G_GNUC_FORMAT(1).
* glib/gmacros.h: Use reserved symbols in function attribute macros.
The following patch avoids manual printf()-format parsing
if a C99-conforming vsnprintf() is available. (#55106)
* acinclude.m4 (AC_FUNC_VSNPRINTF_C99): New macro to test for a
C99 conforming vsnprintf.
* configure.in: Use AC_FUNC_VSNPRINTF_C99.
* glib/gmessages.c (g_printf_string_upper_bound): Use C99 vsnprintf().
Sat Nov 17 17:21:57 2001 Owen Taylor <otaylor@redhat.com>
* glib/Makefile.am glib/*.c glib/gmessages.h: Get
rid fo g_log_domain_glib variable in favor of just
using a string constant.
2001-10-29 Daniel Egger <degger@fhm.edu>
* glib/gbacktrace.h: Fix non-Intel/-Alpha version of the
G_BREAKPOINT macro to include <signal.h> and use SIGTRAP.
* glib/gmessages.c: Conditionalise definition of args2
depending on the definition of HAVE_VSNPRINTF to avoid
compiler warning.
* gobject/testgruntime.c
* tests/patterntest.c: Include <string.h> to avoid warnings.
Wed Sep 19 14:17:31 2001 Owen Taylor <otaylor@redhat.com>
Patch from Matthias Clasen (#59806)
* configure.in: Check for vasprintf().
* glib/gmem.[ch]: Add g_mem_vtable_is_set() to be used
for efficiency hacks to avoid extra copies when not
needed.
* glib/gstrfuncs.c: Use vasprintf() to implement
g_strdup_printf() when available.
* glib/gmessages.c (g_logv): Avoid using
printf_string_upper_bound() when we have have vsnprintf.
* glib/gmessages.c (printf_string_upper_bound): Don't
segfault when warning about positional parameters.
Mon Sep 10 17:13:36 2001 Tim Janik <timj@gtk.org>
* glib/gmessages.h: got rid of g_set_error_handler(),
g_set_warning_handler(), g_set_message_handler().
Wed Sep 5 05:24:07 2001 Tim Janik <timj@gtk.org>
* gobject/tmpl/gboxed.sgml: documented some functions.
* gobject/tmpl/objects.sgml: some fixups.
Mon Sep 10 19:27:47 2001 Tim Janik <timj@gtk.org>
* gtype.[hc]:
g_type_add_interface*(): implement the ability to add an interface to
a type whose parents already conform to this interface.
such "overriding" interfaces, when initialized, are not just initialized
with 0, but with a copy of the interface they override.
g_type_interface_peek_parent(): new function, return the interface
that this interface "overrides", if any.
* testgruntime.c: test new interface stuff.
* glib/gmessages.c: Changed prototype of printf_string_upper_bound
to return gsize. Now matches the actual function body.
* glib/gstrfuncs.c (g_strrstr_len): Changed type of parameter #2
from gint to gssize. Now matches the prototype in gstrfuncs.h.
Wed Jun 20 12:00:54 2001 Owen Taylor <otaylor@redhat.com>
Changes for 64-bit cleanliness, loosely based on patch
from Mark Murnane.
* gconvert.c (g_convert/g_convert_with_fallback): Remove
workarounds for since-fixed GNU libc bugs. Minor
doc fix.
* gconvert.[ch]: Change gint to gsize/gssize as
appropriate.
* gconvert.c (g_locale/filename_to/from_utf8): Fix incorrect
computation of bytes_read / bytes_written.
* gfileutils.[ch] (g_file_get_contents): Make length
out parameter 'gsize *len'.
* ghook.c (g_hook_compare_ids): Don't compare a
and b as 'a - b'.
* gmacros.h (GSIZE_TO_POINTER): Add GPOINTER_TO_SIZE,
GSIZE_TO_POINTER.
* gmain.c (g_timeout_prepare): Rewrite to avoid
overflows. (Fixes bug when system clock skews
backwards more than 24 days.)
* gmarkup.[ch]: Make lengths passed to callbacks
gsize, length for g_markup_parse-context_parse(),
g_markup_escape_text() gssize.
* gmessages.[ch] (g_printf_string_upper_bound): Change
return value to gsize.
* gmessages.c (printf_string_upper_bound): Remove
a ridiculous use of 'inline' on a 300 line function.
* gstring.[ch]: Represent size of string as a gsize,
not gint. Make parameters to functions take gsize,
or gssize where -1 is allowed.
* gstring.c (g_string_erase): Make
g_string_erase (string, pos, -1) a synonym for
g_string_truncate for consistency with other G*
APIs.
* gstrfuncs.[ch]: Make all functions taking a string
length, take a gsize, or gssize if -1 is allowed.
(g_strstr_len, g_strrstr_len). Also fix some boundary
conditions in g_str[r]str[_len].
* gutf8.c tests/unicode-encoding.c: Make parameters that
are byte lengths gsize, gssize as appropriate. Make
character offsets, other counts, glong.
* gasyncqueue.c gcompletion.c
timeloop.c timeloop-basic.c gutils.c gspawn.c.
Small 64 bit cleanliness fixups.
* glist.c (g_list_sort2, g_list_sort_real): Fix functions
that should have been static.
* gdate.c (g_date_fill_parse_tokens): Fix extra
declaration that was shadowing another.
* tests/module-test.c: Include string.h
Mon Jun 18 15:43:29 2001 Owen Taylor <otaylor@redhat.com>
* gutf8.c (g_get_charset): Make argument
G_CONST_RETURN char **.
2001-05-22 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib.def: g_thread_create renamed to g_thread_create_full.
* gthread.c: memcpy is not necessary here. We can simply use
struct assignment.
* gmessages.c: Fix compilation error on win32. Added
GFileDescriptor, wich is gint on Unix and FILE* on win32.
Thu May 10 23:21:30 2001 Owen Taylor <otaylor@redhat.com>
* gmessages.c (g_log_write_prefix): Avoid using stderr
to be as robust as possible in out-of-memory.
* gmessages.c (g_log_default_handler): Remove some dead
code.
* gutils.c (g_parse_debug_string): Fix to avoid mallocs.
2001-04-26 Havoc Pennington <hp@redhat.com>
* configure.in: Get rid of --enable-msg-prefix
* gmessages.c: make whether to prefix the messages with
appname/pid a runtime setting, not a compile-time setting. Change
default to include prefix for debug/warning/error type messages.
2001-02-21 Tor Lillqvist <tml@iki.fi>
Cygwin support contributed by Stefan Ondrejicka
<ondrej@idata.sk>. Hopefully I got it all in while simultaneously
adding support for auto*/libtool for mingw.
* Makefile.am: Changes for auto* support on Cygwin and Win32. Do
still distribute the hand-written makefiles and *.win32.in files,
though. Use GIO, GSPAWN and PLATFORMDEP macros set by configure.
Use -no-undefined. Pass -export-symbols glib.def to libtool.
* configure.in: Define G_PLATFORM_WIN32 on both pure Win32 (mingw)
and Cygwin. Add AC_CYGWIN, AC_EXEEXT and AC_LIBTOOL_WIN32_DLL
calls for Cygwin and mingw support. Check for %I64u guint64
format (in MS C library). Set G_MODULE_IMPL on mingw and
Cygwin. Use ac_object and ac_exeext. Set GIO, GSPAWN, PLATFORMDEP
and G_LIBS_EXTRA. Compile timeloop only on Unix. Define OS_WIN32
automake conditional on Win32.
* glib.h: Include gwin32.h also on Cygwin.
* gfileutils.c (get_contents_posix): Use O_BINARY (defined as 0 on
Unix) for Cygwin's sake.
* gtimer.c (GETTIME): Reduce #ifdefs, use a macro GETTIME().
* gconvert.c
* gthread.c
* gutf8.c
* gutils.c: For code needed both on Cygwin and native Win32,
test for G_PLATFORM_WIN32.
* gmarkup.h: Use G_BEGIN_DECLS and G_END_DECLS.
* gtypes.h: Refine GLIB_VAR definition. Also check for DLL_EXPORT
in case compiling a static library on Win32 or Cygwin.
* gwin32.c: No <direct.h> on Cygwin. No need for ftruncate() or
dirent emulation on Cygwin.
(get_package_directory_from_module) Convert return value from
GetModuleFileName() to POSIX path on Cygwin.
* tests/Makefile.am (progs_LDADD): Link with libglib, libgthread
and libgmodule as appropriate. Use -no-undefined.
* gbacktrace.c: Move #ifdefs around a bit on Win32.
* gshell.c (unquote_string_inplace): Make static.