Commit Graph

225 Commits

Author SHA1 Message Date
Dan Winship
f8bb08305c gmessages: fix g_test_expect_message() with NULL domains
Allow passing a NULL domain to g_test_expect_message(), and more
importantly, don't crash if a message with a NULL domain gets logged
while there is an expected message.
2013-08-31 11:51:07 -04:00
Dan Winship
4b94c0831e Use 'dumb quotes' rather than `really dumb quotes'
Back in the far-off twentieth century, it was normal on unix
workstations for U+0060 GRAVE ACCENT to be drawn as "‛" and for U+0027
APOSTROPHE to be drawn as "’". This led to the convention of using
them as poor-man's ‛smart quotes’ in ASCII-only text.

However, "'" is now universally drawn as a vertical line, and "`" at a
45-degree angle, making them an `odd couple' when used together.

Unfortunately, there are lots of very old strings in glib, and also
lots of new strings in which people have kept up the old tradition,
perhaps entirely unaware that it used to not look stupid.

Fix this by just using 'dumb quotes' everywhere.

https://bugzilla.gnome.org/show_bug.cgi?id=700746
2013-05-21 11:23:22 -03:00
Colin Walters
f2a9a6142c gmessages: Fix up testing commit to handle fatal masquerading
This makes glib/tests/testing pass again.
2013-05-21 00:07:18 +01:00
Colin Walters
714cbbea52 gtestutils: Ensure test subprocesses don't dump core
Since we expect them to crash, let's not spam the system
core dump collection (systemd, abrt).  At the moment
systemd is not very robust against programs crashing
in loops.

Instead of aborting, we exit(1).

https://bugzilla.gnome.org/show_bug.cgi?id=700714
2013-05-20 19:07:55 +01:00
Dan Winship
960f5500e2 gtestutils: add g_test_trap_subprocess()
g_test_trap_fork() doesn't work on Windows and is potentially flaky on
unix anyway given the fork-but-don't-exec. Replace it with
g_test_trap_subprocess(), which re-spawns the same program with
arguments telling it to run a specific (otherwise-ignored) test case.

Make the existing g_test_trap_fork() unit tests be unix-only (they
never passed on Windows anyway), and add a parallel set of
g_test_trap_subprocess() tests.

Also fix the logic of gtestutils's "-p" argument (which is used by the
subprocess tests); previously if you had tests "/foo/bar" and
"/foo/bar/baz", and ran the test program with "-p /foo/bar/baz", it
would run "/foo/bar" too. Fix that and add tests.

https://bugzilla.gnome.org/show_bug.cgi?id=679683
2013-05-13 12:10:52 -04:00
Colin Walters
090f874626 Handle EINTR for a few more write() calls
https://bugzilla.gnome.org/show_bug.cgi?id=682819
2013-01-25 11:23:48 -05:00
Matthias Clasen
08dce819cc Revert "gtestutils: add g_test_trap_subprocess(), deprecate g_test_trap_fork()"
This reverts commit e3a29184d5.
2012-12-19 15:20:45 -05:00
Dan Winship
e3a29184d5 gtestutils: add g_test_trap_subprocess(), deprecate g_test_trap_fork()
g_test_trap_fork() doesn't work on Windows and is potentially flaky on
unix anyway given the fork-but-don't-exec. Replace it with
g_test_trap_subprocess(), which re-spawns the same program with
arguments telling it to run a specific (otherwise-ignored) test case.

Make the existing g_test_trap_fork() unit tests be unix-only (they
never passed on Windows anyway), and add a parallel set of
g_test_trap_subprocess() tests.

https://bugzilla.gnome.org/show_bug.cgi?id=679683
2012-12-19 14:35:08 -05:00
Dan Winship
e97a2f4195 win32: suppress fatal error dialog box when running tests
When running a test program (ie, if g_test_init() has been called),
don't pop up a dialog box when a fatal error occurs. Just print the
message to stderr and exit.

https://bugzilla.gnome.org/show_bug.cgi?id=679683
2012-12-05 11:15:19 -05:00
Dan Winship
b55e1820a9 g_test_expect_message: fix pattern syntax in example code 2012-11-26 10:47:34 -05:00
Aleksander Morgado
0d22609fe9 gmessages: fix minor typo in documentation 2012-10-30 13:15:23 +01:00
Ryan Lortie
d06c7a911e g_test_expect_message: add some g_return_if_fail
NULL domain is not supported and some might expect this to work, so make
sure they don't get the wrong idea...
2012-08-20 16:26:25 -04:00
Dan Winship
25ac137c0a gtestutils: add g_text_expect_message()
Add g_test_expect_message() and g_test_assert_expected_messages(), to
allow tests of warnings, error messages, return-if-fails, etc.

https://bugzilla.gnome.org/show_bug.cgi?id=679556
2012-08-20 13:54:52 -04:00
Dan Winship
78a8aecbb3 g_logv: only expand the message once
Hoist the g_strdup_printf()'ing out of the loop, since the message is
the same for every handler that gets called.

https://bugzilla.gnome.org/show_bug.cgi?id=679556
2012-08-20 13:49:06 -04:00
Robert Ancell
4143842eb4 Add missing allow-none annotations for function parameters.
Found using:
find . -name '*.c' | xargs grep 'or %NULL' | grep ' \* @' | grep -v '@error' | grep -v allow-none
2012-03-31 20:34:28 +11:00
Ryan Lortie
fbbdf98668 g_log: mask log level before checking prefix flags
We check if the log level is in the "prefixed" list by checking it
against the g_log_msg_prefix bitfield.

Unfortunately we were failing to mask by G_LOG_LEVEL_MASK first, so if
the FATAL bit was set (for example) then it would never match.  This was
the case for g_error().

https://bugzilla.gnome.org/show_bug.cgi?id=672026
2012-03-13 20:15:21 -04:00
Stef Walter
7e92997539 documentation fixes
Fixes for gtk-doc warnings.

http://bugzilla.gnome.org/show_bug.cgi?id=66469

https://bugzilla.gnome.org/show_bug.cgi?id=664699
2011-12-13 23:01:51 -05:00
Matthias Clasen
1a08591c3a Deal gracefully with NULL log domains 2011-11-16 21:42:28 -05:00
Matthias Clasen
d2d62ecfcd Make the default log handler more useful
We make the default log handler only print default and informational
messages if the log domain is explicitly requested.

https://bugzilla.gnome.org/show_bug.cgi?id=661926
2011-11-03 01:50:29 -04:00
Ryan Lortie
2a98cc635e The usual docs unbreaking... 2011-10-19 15:07:22 -04:00
Matthias Clasen
6c1d768f7b Also clean up includes 2011-10-16 18:43:22 -04:00
Matthias Clasen
6ab1c77270 Pass correct data to fatal log handlers
This was pointed out by John Ralls in bug 653052.
He also provided the test case.
2011-10-16 16:24:20 -04:00
Matthias Clasen
6613b2f8fd Move more docs inline 2011-10-12 22:29:53 -04:00
Ryan Lortie
2e5cb6f522 win32 fixes from g_thread_init() deprecation
I can't even begin to imagine how these fell through the cracks...
2011-10-04 15:44:48 -04:00
Ryan Lortie
47444dacc0 Deprecate g_thread_init()
Move the last few things that needed thread-safe initialisation to a
global ctor.

https://bugzilla.gnome.org/show_bug.cgi?id=660744
2011-10-04 15:31:49 -04:00
Ryan Lortie
310c3ed4cc Clean up process of calling g_debug_init()
Make sure that it calls absolutely nothing that may ever recurse back
into GLib again:

  - g_ascii_strcasecmp() is unsafe because it has g_return_if_fail() at
    the top.  As far as I know, the only ASCII character letter that
    would get special treatment here is "i" and that appears in neither
    "help" nor "all".

  - g_getenv() is very complicated on Windows, so use a simple version
    that is sufficient for our purposes.

Now that it's completely safe, we can just call it from g_logv() in the
usual way without all of the hacks.

https://bugzilla.gnome.org/show_bug.cgi?id=660744
2011-10-04 15:31:49 -04:00
Ryan Lortie
2a677d1370 locks: drop _INIT macros
All locks are now zero-initialised, so we can drop the G_*_INIT macros
for them.

Adjust various users around GLib accordingly and change the docs.

https://bugzilla.gnome.org/show_bug.cgi?id=659866
2011-10-02 22:33:10 -04:00
Ryan Lortie
8e43470c38 Stop dithering over GPrivate
Take out the half-private g_private_init() stuff and replace it with a
G_PRIVATE_INIT macro that allows specifying a GDestroyNotify.

Expose the GPrivate structure in a public header.

Add a g_private_replace() to (sort of) match the functionality of
g_static_mutex_set().

Improve the documentation.

Deprecate g_private_new().
2011-10-02 20:04:03 -04:00
Matthias Clasen
ed325b1879 One forgotten moved doc 2011-10-01 23:38:52 -04:00
Ryan Lortie
4596dfbc75 gmessages: do implicit GPrivate initialisation
Initialise the GPrivate implicitly at the site of first use rather than
explicitly from the thread initialisation function.
2011-09-21 16:06:53 -04:00
Ryan Lortie
90679997ec Continue GPrivate rework
We remove the macros while at the same time switching all libglib users
from g_private_new() to g_private_init().  We deal with the strange
expectations of the libglib code that g_private_* should work before the
GPrivate has been initialised with a temporary shim.
2011-09-21 16:06:53 -04:00
Ryan Lortie
2c7388c19a libglib: stop using g_mutex_new
Use G_MUTEX_INIT or g_mutex_init() as appropriate.
2011-09-21 15:55:36 -04:00
Ryan Lortie
43254e8c4c gmessage.c: mark a private function static 2011-09-21 15:27:47 -04:00
Ryan Lortie
8b03fed0cf Remove unused header gdebug.h
This was only included from gmessages.c.  Nuke the unused parts and
merge the rest into gmessages.c.
2011-09-18 22:08:05 -04:00
Ryan Lortie
5dbc12e9f1 Replace @Varargs with @...
to make gtk-doc happy.
2011-07-22 15:47:24 +02:00
Matthias Clasen
4c64e75ec5 Drop the warnings.sgml template 2011-07-19 20:40:28 -04:00
Colin Walters
a04efe6afb Use SIGTRAP (via G_BREAKPOINT()) if G_DEBUG=fatal-warnings
On Linux with gdb, it's much more convenient to debug programs using
G_DEBUG=fatal-warnings if we send SIGTRAP instead of abort() by
default.  The default handler for both is to terminate the process.

In particular this makes it more easily possible to debug a warning
that's not the first in a program; you can skip past it and
go to the warning you care about.

The "aborting..." message is removed since it's no longer accurate,
and anyways was never very useful; crashes should show up in ABRT/apport
type crash catching systems.

https://bugzilla.gnome.org/show_bug.cgi?id=648423
2011-04-28 14:48:48 -04:00
Murray Cumming
30fdc1a799 Docs: Changed can not to cannot. 2011-03-24 09:33:55 +01:00
Matthias Clasen
4368a07e02 Avoid more compiler warnings 2011-02-08 07:41:49 -05:00
Chun-wei Fan
9806040455 Added and Moved checks for includes
Moved checks for G_OS_WIN32 after GLib header includes and added other checks
required for Windows/MSVC builds
2010-11-09 09:53:12 +08:00
Matthias Clasen
5681809448 Remove excessive header inclusions 2010-09-03 20:51:08 -04:00
Ryan Lortie
2e53e50244 glib/: fully remove galias hacks 2010-07-07 19:34:35 -04:00
Matthias Clasen
2f93bea177 Avoid a C99ism
Move a variable declaration to the beginning of the block; see
bug 596561. Also remove a pointless register declaration.
2009-09-29 20:45:26 -04:00
Christian Dywan
278ac0a45d Bug 579050 Allow making selected critical and warning messages non-fatal
Implement g_test_log_set_fatal_handler which is a function similar to
g_log_set_default_handler but for use in unit tests where certain
errors have to be ignored because it is not possible to fix or avoid
them otherwise. A unit test is added.
2009-09-10 16:45:49 +02:00
Matthias Clasen
a6ebda3d69 Copy a va_list when using it multiple times. Reported by Wim Lewis.
* glib/gmessages.c (g_logv): Copy a va_list when using it
        multiple times. Reported by Wim Lewis.


svn path=/trunk/; revision=8021
2009-03-29 19:08:57 +00:00
15:08:59 Tim Janik
cc3de68e21 http://mail.gnome.org/archives/gtk-devel-list/2007-October/msg00089.html
2007-12-10 15:08:59  Tim Janik  <timj@imendio.com>

        * let g_warn_if_fail replace g_assert as discussed here:
          http://mail.gnome.org/archives/gtk-devel-list/2007-October/msg00089.html

        * fix bug #502498: Test framework assertion failures should follow
        gcc error format.

        * gmessages.h, gmessages.c: deprecated g_assert_warning() which is
        unused now. removed g_assert*() definitions whcih are provided by 
        gtestutils.h now. added g_warn_if_reached() and g_warn_if_fail()  
        which are recommended as g_assert/g_assert_not_reached replacements
        for non-test programs.
        added g_warn_message() to implement g_warn_*() macros.
        use emacs-next-error friendly formatting for file:line: for warnings.

        * gtestutils.h, gtestutils.c: use emacs-next-error friendly formatting.
        implement g_assert_not_reached() with g_assertion_message() and
        g_assert() in terms of g_assertion_message_expr() so we'll be able to
        provide assertion messages in test logs.

        * gkeyfile.c, gbookmarkfile.c: changed g_assert*() to g_warn_if_fail()
        or g_return_if_fail() where suitable.

        * gio/: changed g_assert to g_warn_if_fail.



svn path=/trunk/; revision=6086
2007-12-10 14:07:42 +00:00
Matthias Clasen
f90d6d821d Make some structs which are used only once non-static.
2007-01-26  Matthias Clasen <mclasen@redhat.com>

        * gmem.c:
        * gslice.c:
        * gmessages.c:
        * gutils.c: Make some structs which are used only once
        non-static.

svn path=/trunk/; revision=5316
2007-01-26 20:59:54 +00:00
Tor Lillqvist
fd1f409e41 On Win32, if we get a fatal error message while being debugged we break
2006-12-28  Tor Lillqvist  <tml@novell.com>

	* glib/gmessages.c (g_logv): On Win32, if we get a fatal error
	message while being debugged we break into the debugger with
	G_BREAKPOINT(). Don't call abort() if the user is foolhardy enough
	to continue after the breakpoint. The user presumably knows what
	he is doing and deserves what he gets. (#376645, Andreas Köhler)
2006-12-28 14:47:54 +00:00
Sebastian Wilhelmi
e4f8f3b95c Renamed to glib/gthreadprivate.h and moved system thread identifier
2006-05-09  Sebastian Wilhelmi  <wilhelmi@google.com>

	* glib/gthreadinit.h: Renamed to glib/gthreadprivate.h and moved
	system thread identifier comparision and assignment macros from
	glib/gthread.c to glib/gthreadprivate.h.

	* glib/Makefile.am, glib/gatomic.c, glib/gconvert.c, glib/gmain.c,
	glib/gmem.c, glib/gmessages.c, glib/grand.c, glib/gslice.c,
	glib/gthread.c, glib/gutils.c, gthread/gthread-impl.c: Use
	glib/gthreadprivate.h instead of glib/gthreadinit.h.

	* gthread/gthread-impl.c: Use GSystemThread instead of GThread for
	owner determination. This fixes #311043 and is mostly modeled
	after the patch from jylefort@FreeBSD.org.
2006-05-10 00:44:50 +00:00
Tim Janik
733b1789c1 new slice allocator implementation.
Thu Dec  1 17:32:46 2005  Tim Janik  <timj@imendio.com>

        * glib/gslice.[hc]: new slice allocator implementation.

        * tests/slice-test.c: added random slice allocation test.

        * glib/gthread.[hc]: removed newly added private thread mem API.

        * glib/gthreadinit.h:
        * glib/gmessages.c:
        * glib/gthread.c:
        * glib/gmem.c: divided glib threading initialisation into three phases,
        initialisation where private keys and messaging are not available (only
        needed by gmem.c), initialisation without messaging but private keys
        available (gslice.c, gmessage.c), and full fledged initialisers that
        server the rest of glib. initialisation functions got renamed to reflect
        the limitations of their corresponding phases.

        * glib/gmem.c: removed memchunk code, defer allocations to
        g_slice_* instead.

        * glib/gmem.[hc]: removed g_slice_* skeletons.

        * glib/glib.symbols: added g_slice_* symbols.

        * configure.in: check for availability of posix_memalign(3), memalign(3)
        and valloc(3).

        * glib/Makefile.am: added gslice.[hc].
2005-12-01 16:34:33 +00:00
Matthias Clasen
8b14175a3e add new GDebugFlag for fatal_criticals handle G_DEBUG=fatal_criticals, to
2005-11-04  Matthias Clasen  <mclasen@redhat.com>

        * glib/gdebug.h: add new GDebugFlag for fatal_criticals
        * glib/gmessages.c: (_g_debug_init): handle G_DEBUG=fatal_criticals,
        to help find critical warnings in applications.  (#320017,
        Vincent Untz)
2005-11-04 19:05:30 +00:00
Hans Breuer
99563f439c include <process.h> for getpid() include <io.h> for close() etc. add
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-07-02 19:50:29 +00:00
Tor Lillqvist
398008dac5 glib/gmessages.c (g_log_default_handler) Move the Win32 code that asks the
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-20 10:52:38 +00:00
Hans Breuer
6b55164587 handle galiasdef.c (although completely useless for msvc build)
2005-03-18  Hans Breuer  <hans@breuer.org>

	* glib/makefile.msc.in : handle galiasdef.c (although completely
	useless for msvc build)

	* glib/gbacktrace.c glib/gmessage.c : need at least _WIN_VER 0x0401
	for IsDebuggerPresent()

	* gobject/makefile.msc.in : handle gobjectaliasdef.c
2005-03-18 17:44:51 +00:00
Matthias Clasen
608a31b98e Make PLT-reduction work with gcc4, and don't include everything in
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-03-14 04:26:57 +00:00
Tor Lillqvist
b45420bca8 Nah, don't use FatalAppExit(). abort() is better. 2005-01-19 02:27:37 +00:00
Tor Lillqvist
a4bfec4f1d On Win32 call G_BREAKPOINT() if being debugged.
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().
2005-01-19 01:55:40 +00:00
Manish Singh
ccc3c1c409 filter out G_GNUC stuff when doing the compare.
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-11-25 22:09:30 +00:00
Matthias Clasen
0455122b1a Add g_assert_warning.
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-30 02:02:00 +00:00
Tor Lillqvist
7e0e251a98 [Win32] Don't open a console window if standard output or standard error
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.
2004-09-22 21:15:35 +00:00
Matthias Clasen
b61e269d0d Fix the types of some variables to be GLogLevelFlags instead of guint.
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-20 03:53:39 +00:00
Matthias Clasen
dafdffd751 Implement the same PLT reduction technique used in GTK+:
Thu Sep 16 02:03:15 2004  Matthias Clasen  <maclas@gmx.de>

	Implement the same PLT reduction technique used in GTK+:
2004-09-16 06:05:53 +00:00
Matthias Clasen
ac3ffd1794 Strip the prefix "IA__" from function names, since that is what GTK+ uses
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.
2004-09-09 19:41:23 +00:00
Owen Taylor
7782c17f37 Include implementation of g_return_if_fail_internal().
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().
2004-09-09 17:55:05 +00:00
Matthias Clasen
4dcb22c14a New function to install an alternate default log handler. (#66387, Darin
Sun Sep  5 01:46:11 2004  Matthias Clasen  <maclas@gmx.de>

	* glib/glib.def:
	* glib/gmessages.h:
	* glib/gmessages.c (g_log_set_default_handler): New
	function to install an alternate default log
	handler.  (#66387, Darin Adler)
2004-09-05 05:46:33 +00:00
Matthias Clasen
05501852ec Add testcases for g_message() involving non-printable and unsafe
2004-04-22  Matthias Clasen  <mclasen@redhat.com>

	* tests/testglib.c (main): Add testcases for g_message() involving
	non-printable and unsafe characters.

	* glib/gmessages.c (escape_string): Don't assume that
	string->str remains unchanged over g_string_insert()
	calls.  (#139030, Christophe Saout)
2004-04-22 20:17:54 +00:00
Owen Taylor
08fc5350bb Handle invalid UTF-8. (#131218, patch from Matthias Clasen)
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)
2004-03-14 18:59:33 +00:00
Owen Taylor
23137b79d9 Escape control characters in g_logv() output. (#108287, Christian Biere)
Mon Aug 25 12:34:36 2003  Owen Taylor  <otaylor@redhat.com>

        * glib/gmessages.c: Escape control characters in g_logv() output.
        (#108287, Christian Biere)
2003-08-25 16:36:03 +00:00
Tor Lillqvist
200bb7f771 [Win32] Make the fatal error message box easier to notice with
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-08-19 19:12:07 +00:00
Matthias Clasen
ffa186dfc9 Remove the 1024 char limit in the common (non-recursive) case.
2003-07-26  Matthias Clasen  <maclas@gmx.de>

	* glib/gmessages.c (g_logv): Remove the 1024 char limit in the common (non-recursive)
	case.
2003-07-25 23:17:23 +00:00
Matthias Clasen
6710fd6e06 Optimize the common cases (init == NULL or init == "") a bit. replace uses
2003-03-30  Matthias Clasen  <maclas@gmx.de>

	* glib/gstring.c (g_string_new): Optimize the common cases
	(init == NULL or init == "") a bit.
	* glib/gmarkup.c, glib/gmessages.c, glib/gscanner.c,
	glib/gshell.c, glib/gspawn-win32-helper.c, glib/gspawn-win32.c,
	glib/gspawn.c, gobject/gvaluetransform.c: replace uses of
	g_string_new ("") by g_string_new (NULL).  (#106973, Morten Welinder)
2003-03-30 22:02:20 +00:00
Sebastian Wilhelmi
8e91cf9eb9 Fixes for #101264 and #99372:
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-02-14 15:08:46 +00:00
Tor Lillqvist
1377e3d1e7 Check the C stdout and stderr streams for validity, instead of what
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 23:18:44 +00:00
Tor Lillqvist
ac17691afc 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, ensure_stdout_valid): Move the
	alloc_console_called static flag inside these two functions.
2003-01-01 17:00:51 +00:00
Tor Lillqvist
1b68ce7033 New function, parallel to ensure_stdout_valid(). #defined as empty on
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().
2003-01-01 01:19:47 +00:00
Owen Taylor
bbbd329ff5 Patch from Sven Neumann to make the include order consistent. (#71704)
Tue Dec  3 20:22:27 2002  Owen Taylor  <otaylor@redhat.com>

        * glib/*.c: Patch from Sven Neumann to make the
        include order consistent. (#71704)
2002-12-04 01:27:44 +00:00
Matthias Clasen
bc54ea6edf Include a printf implementation supporting C99 snprintf and SUS
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.
2002-11-21 00:35:15 +00:00
Owen Taylor
893b73e27f Update from libcharset CVS. Includes additional encodings for Solaris
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)
2002-05-13 15:51:44 +00:00
Owen Taylor
90d93042c2 Remove warning about g_print, etc, encoding.
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.
2002-03-28 23:24:23 +00:00
Tim Janik
f404089654 convert prtinf() strings to local charset when writing them to stdout or
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.
2002-03-28 20:12:32 +00:00
Tim Janik
f4d7817b13 major cleanups. introduced _g_log_fallback_handler() to handle recursive
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-27 17:57:30 +00:00
Sebastian Wilhelmi
148a846602 Fixed threading issues brought up by #74577. Make g_log_find_domain,
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)
2002-03-14 16:20:42 +00:00
Matthias Clasen
642897a7f3 New header containing GTK_DEBUG-style debugging support for GLib.
* 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-21 23:07:34 +00:00
Tor Lillqvist
de3bfc0a74 Use the #if branch with G_BREAKPOINT() also on Win32. Remove the separate
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-02-14 07:06:56 +00:00
Laszlo Peter
98a36f8237 return 1 more for the trailing \0 when using vsnprintf. (#69474)
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)
2002-01-23 19:38:24 +00:00
Sven Neumann
5647fea14e only include printf_string_upper_bound() if HAVE_C99_VSNPRINTF is not
2001-12-28  Sven Neumann  <sven@gimp.org>

	* glib/gmessages.c: only include printf_string_upper_bound() if
	HAVE_C99_VSNPRINTF is not defined.
2001-12-28 17:47:35 +00:00
Matthias Clasen
39e4c5afe8 The following patch corrects some function attributes. (#61780)
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().
2001-12-06 22:37:05 +00:00
Owen Taylor
f1019c04fc Get rid fo g_log_domain_glib variable in favor of just using a string
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-11-17 23:23:01 +00:00
Daniel Egger
062ecaf1ed Fix non-Intel/-Alpha version of the G_BREAKPOINT macro to include
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.
2001-10-29 18:49:28 +00:00
Joshua N Pritikin
dbf99df7e3 Remove G_HAVE_GINT64 conditionalization.
* glib/gmessages.c glib/gtypes.h: Remove G_HAVE_GINT64
conditionalization.
2001-10-11 03:06:49 +00:00
Owen Taylor
5c12c0acf1 Patch from Matthias Clasen (#59806)
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.
2001-09-19 18:43:22 +00:00
Tim Janik
dc0b74d416 got rid of g_set_error_handler(), g_set_warning_handler(),
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.
2001-09-10 18:03:31 +00:00
Mark Murnane
a0832f025f Changed prototype of printf_string_upper_bound to return gsize. Now
* 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.
2001-07-12 09:23:38 +00:00
Tim Janik
11b0d06eee fix negative exponent handling (numbers<0).
Fri Jul  6 00:02:41 2001  Tim Janik  <timj@gtk.org>

        * glib/gmessages.c (printf_string_upper_bound): fix negative exponent
        handling (numbers<0).

        * glib/gutils.h (g_bit_storage): take a gulong as argument.
        same for g_bit_nth_lsf() and g_bit_nth_msf() as mask.

Tue Jul 10 18:50:16 2001  Tim Janik  <timj@gtk.org>

        * gsignal.h (struct _GSignalQuery): fix misplaced comment.
2001-07-10 22:37:08 +00:00
Tim Janik
0646fe7c88 use G_BREAKPOINT() instead of raise(5).
Sat Jun 23 17:34:38 2001  Tim Janik  <timj@gtk.org>

        * gmessages.c (g_logv): use G_BREAKPOINT() instead of raise(5).
2001-06-23 20:14:48 +00:00
Owen Taylor
f5c28ce4ab Changes for 64-bit cleanliness, loosely based on patch from Mark Murnane.
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-06-23 13:55:09 +00:00
Sebastian Wilhelmi
e2b7bedbde g_thread_create renamed to g_thread_create_full.
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.
2001-05-22 12:06:59 +00:00
Owen Taylor
ac0bbb7605 Avoid using stderr to be as robust as possible in out-of-memory.
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-05-14 14:53:59 +00:00
Havoc Pennington
43d6ef7f16 change env variable to G_MESSAGES_PREFIXED, suggested by Tim
2001-05-10  Havoc Pennington  <hp@pobox.com>

	* gmessages.c (g_log_write_prefix): change env variable to
	G_MESSAGES_PREFIXED, suggested by Tim
2001-05-11 03:07:53 +00:00
Havoc Pennington
ea05dba9b6 Get rid of --enable-msg-prefix
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-05-09 16:36:17 +00:00
Tor Lillqvist
31c5b1899d Cygwin support contributed by Stefan Ondrejicka <ondrej@idata.sk>.
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.
2001-03-09 21:23:33 +00:00
Hans Breuer
d1a05f990e updated for win32 msvc build 2001-02-19 21:51:19 +00:00
Havoc Pennington
1c391cc698 include string.h
2001-02-17  Havoc Pennington  <hp@pobox.com>

	* gthread.c: include string.h

        Applied patch from Soeren Sandmann:

	* testglib.c: const fixes

	* gwin32.h: format cleanups

	* gutils.c (g_atexit): constify a variable
	(g_find_program_in_path): constification
	(g_basename): G_CONST_RETURN
	(g_path_skip_root): G_CONST_RETURN
	(g_getenv): G_CONST_RETURN
	(g_get_user_name): G_CONST_RETURN
	(g_get_real_name): G_CONST_RETURN
	(g_get_home_dir): G_CONST_RETURN
	(g_get_tmp_dir): G_CONST_RETURN
	(g_get_prgname): G_CONST_RETURN
	(_glib_gettext): G_CONST_RETURN

	* gunicode.h: formatting cleanups

	* gstrfuncs.c (g_strerror): G_CONST_RETURN
	(g_strsignal): G_CONST_RETURN

	* gspawn.c (g_execute): const on variables

	* gmessages.c (printf_string_upper_bound): fix const on a variable

	* gmem.c (g_mem_chunk_new): make the "name" arg const
	(struct _GRealMemChunk): make the "name" field const

	* gfileutils.c (g_file_open_tmp): store const return in a const
	gchar* variable

	* gdataset.c (g_quark_to_string): G_CONST_RETURN

2001-02-17  Havoc Pennington  <hp@pobox.com>

        Applied patch from Soeren Sandmann:

	* gvaluetypes.c (g_value_get_string): G_CONST_RETURN

	* gtype.c (g_type_name): G_CONST_RETURN

	* gsignal.c (g_signal_name): G_CONST_RETURN

	* gobject-query.c (main): const fix

2001-02-17  Havoc Pennington  <hp@pobox.com>

        Applied patch from Soeren Sandmann:

	* gmodule.c (g_module_error): G_CONST_RETURN
	(g_module_name): G_CONST_RETURN
2001-02-17 23:30:48 +00:00
Tor Lillqvist
7a19b4cae9 Use a MessageBox for fatal messages. Collect eror message into a buffer,
2000-12-25  Tor Lillqvist  <tml@iki.fi>

	* gmessages.c: (Win32) Use a MessageBox for fatal
	messages. Collect eror message into a buffer, and display that.

	* glib.def: Update.

	* glibconfig.h.win32.in: Update. Remove unused wchar and wctype
	macros, add G_MODULE_SUFFIX.
2000-12-25 22:07:01 +00:00
Tor Lillqvist
b74e7d2f47 Warn if no callback. Call callback correctly. (g_io_win32_create_watch):
2000-12-14  Tor Lillqvist  <tml@iki.fi>

	* giowin32.c (g_io_win32_dispatch): Warn if no callback. Call
	callback correctly.
	(g_io_win32_create_watch): Fix typo.
	(g_io_win32_fd_create_watch): Ditto.
	(g_io_channel_unix_new): If it is a file descriptor (i.e., a Unix
	fd lookalike provided by the C library), call
	g_io_channel_win32_new_fd(). If it is a socket (from WinSock),
	call g_io_cahnnel_win32_new_stream_socket(). Hopefully sockets and
	fds don't overlap. TODO: Implement also datagram sockets.
	(g_io_channel_win32_poll): Call g_main_context_get_poll_func().

	* gcompletion.h: Include <unistd.h> only on Unix. Is this
	inclusion really needed here? OTOH, do include <stddef.h>, for
	size_t.

	* gmessages.c: (Win32) Don't define a function called "write" that
	might clash with the prototype from <io.h>, use a #define.

	* glib.def: Update.

	* gmain.c (g_source_add_poll): Don't return a value from void
	function.
	(g_main_context_get_poll_func): Compile also for non-Win32, as
	presumably was intended. The result var is a GPollFunc, not a
	GPollFunc*. Return the result!

gobject:

 2000-12-14  Tor Lillqvist  <tml@iki.fi>

	* makefile.mingw.in: Update, include parts from Makefile.am to
	build gmarshal.[ch]. Some day, we won't need these separate
	makefiles for Win32 compilation. I hope.

	* makefile.msc.in: Update. No use trying to build gmarshal.[ch]
	here, it would require Unixish tools. MSVC users building from CVS
	sources are out of luck.

	* gobject.def: Update.
2000-12-14 21:02:20 +00:00
Tim Janik
ee23c09e83 added newly added gobject/ headers.
Tue Oct 24 22:09:14 2000  Tim Janik  <timj@gtk.org>

        * glib-object.h: added newly added gobject/ headers.

        * gmesage.c: print g_message() output to stderr instead of stdout.

Wed Oct 25 20:27:02 2000  Tim Janik  <timj@gtk.org>

        * gtype.c (g_type_free_instance): for the moment, freeing object
        structures will fill their memory portion with 0xAA. there's a
        FIXME there, remove this line at a later point.

Tue Oct 24 23:10:26 2000  Tim Janik  <timj@gtk.org>

        * glib-genmarshal.1:
        * glib-genmarshal.c: added publically installed marshaller generator.

        * gtype.h: added G_TYPE_INSTANCE_GET_INTERFACE() to retrive a certain
        interface VTable from instances.

Mon Oct 23 08:28:15 2000  Tim Janik  <timj@gtk.org>

        * gobject.[hc]: new functions for closure maintenance:
        (g_object_watch_closure): maintain validity of the object and
        the closure for objects that are used as data part of a closure.
        (g_cclosure_new_object): convenience function to create C closures
        that have an object as data argument.
        (g_closure_new_object): convenience function to create closures
        that have an object as data argument.

        * gclosure.[hc]: implementation of GClosure mechanism.
        a closure is basically an encapsulation of a callback function
        and its environment. ideally, most places supporting callback
        functions will simply take a GClosure* pointer and thus unify
        callback environments wrg destroy notification etc.
        GClosure provides destroy notifiers for arbitrary data pointers,
        reference counting, invalidation notification (it can be invalidated
        which is merely a deactivate state) and a marshallinbg abstraction.
        GCClosure is also provided in these files, they present a specialized
        GClosure implementation for C language callbacks.

        * genum.c: macro cleanups.

        * gboxed.[hc]: new files, for boxed type abstraction.
        (g_boxed_copy): copy a boxed structure
        (g_boxed_free): free a boxed structure
        (g_value_set_boxed):
        (g_value_get_boxed): standard GValue functions for boxed types
        (g_boxed_type_register_static): convenience function for easy
        introduction of new G_TYPE_BOXED derivatives.

        * gparam.[hc]: introduced g_param_type_register_static(), a short hand
        for creation of new GParamSpec derived types.

        * gtype.[hc]: many fixes, introduced ability to flag individual
        type nodes as ABSTRACT upon registration, added value_peek_pointer()
        to the value table to peek at GValue contents as a pointer for types
        that support this. fixed up GValue checks.

        * gvalue.[hc]: added g_value_fits_pointer() and g_value_get_as_pointer()
        to peek at the value contents as pointer.

        * *.[hc]: adaptions to type macro fixes and changes in the type
        registration API.

        * many const corrections over the place.

Sat Oct 21 02:49:56 2000  Tim Janik  <timj@gtk.org>

        * gtype.c (g_type_conforms_to): this function basically behaves like
        and is_a check, except that it _additionally_ features interfaces
        for instantiatable types. enforce this in the second branch as well
        (`type' conforms_to `type') even if `type' is not an interface type.

Fri Oct 20 15:31:04 2000  Tim Janik  <timj@gtk.org>

        * gvaluetypes.[hc]: added G_TYPE_POINTER implementation from jrb.

        * gtype.[hc]:
        * gobject.c:
        * gvaluetypes.c: added GTypeValueTable.value_peek_pointer and
        suitable implementations of this for G_TYPE_STRING, G_TYPE_OBJECT
        and G_TYPE_POINTER.

Mon Aug 21 04:13:37 2000  Tim Janik  <timj@gtk.org>

        * gbsearcharray.[hc]: long standing needed generic implementation
        of a binary searchable, sorted and dynamically sized array.
2000-10-25 20:36:35 +00:00
Tim Janik
042179dad8 keep *last updated while running through the domain list, so we don't
Sun Aug  6 20:06:02 2000  Tim Janik  <timj@gtk.org>

        * gmessages.c (g_log_domain_check_free): keep *last updated while
        running through the domain list, so we don't screw up the removal,
        patch provided by Gady Kozma <gadykozma@hotmail.com>.

Sun Aug  6 20:03:41 2000  Tim Janik  <timj@gtk.org>

        * gmessages.c (g_log_remove_handler): keep *last updated while running
        through the handler list, so we don't screw up the removal.
2000-08-06 18:09:32 +00:00
Tim Janik
c9bd7542e1 applied patch from Andreas Persenius <ndap@swipnet.se> that updates the
Wed Jul 26 12:59:31 2000  Tim Janik  <timj@gtk.org>

        * *.[hc]: applied patch from Andreas Persenius <ndap@swipnet.se> that
        updates the license headers to the GNU Lesser General Public License,
        as well as updating the copyright year to 2000.
2000-07-26 11:02:02 +00:00
Tor Lillqvist
30cc3ed1fe Don't crash if removing a nonexistent value.
1999-10-31  Tor Lillqvist  <tml@iki.fi>

* gcache.c (g_cache_remove): Don't crash if removing a nonexistent
value.

* gutils.c (gwin_getlocale): New Win32-specific function, returns
a Unixish current locale string (en, zh_TW etc).

* glib.h: Declare it.

* glib.def: Export it.

* testglib.c: Test it.

* gmessages.c (Win32: ensure_stdout_valid): Some improvements,
make sure we don't call AllocConsole several times, which I think
has happened.
1999-10-31 12:15:34 +00:00
Tim Janik
30a1e1addb completly new implementation for printf string upper bounds calculation.
Tue Oct 12 12:16:12 1999  Tim Janik  <timj@gtk.org>

        * gmessages.c (g_printf_string_upper_bound): completly new implementation
        for printf string upper bounds calculation.
        we handle all glibc 2.1 format specifiers now, except for positional
        parameters (%nn$...) and wide char strings, plus some obscure upper
        case variants of the standard conversions. this fixes a lot of
        bugs in the old code, i.e.
        - NULL format strings
        - floats with exponents >+24
        - %G
        - precision specifications in general
        - negative field widths
        - %p for SIZEOF_VOID_P > 4 platforms
        we now issue warnigns in places where the old code would have
        caused buffer overruns anyways. warnings are suppressed when invoked
        from glogv(), to avoid infinite recursions if someone passes a log
        message that comes with really obscure format specifications.

Tue Oct 12 11:49:00 1999  Tim Janik  <timj@gtk.org>

        * gstrfuncs.c: nuked old g_printf_string_upper_bound() version.

Tue Oct 12 03:34:40 1999  Tim Janik  <timj@gtk.org>

        * glib.h: added GFloatIEEE754 and GDoubleIEEE754 unions to access sign,
        mantissa and exponent of IEEE floats and doubles (required by the new
        version of g_printf_string_upper_bound). the unions are endian specific,
        we handle G_LITTLE_ENDIAN and G_BIG_ENDIAN as of currently. ieee floats
        and doubles are supported (used for storage) by at least intel, ppc and
        sparc, reference:
        http://twister.ou.edu/workshop.docs/common-tools/numerical_comp_guide/ncg_math.doc.html

Mon Oct 11 18:01:49 1999  Tim Janik  <timj@gtk.org>

        * configure.in: added additional checks to figure sizes of size_t,
        ptrdiff_t and intmax_t (required by g_printf_string_upper_bound).
1999-10-12 12:08:13 +00:00
Manish Singh
7ea73a0199 G_OS_FOO #defines. I *think* I got the cygwin and beos stuff right, but
I haven't tested it. The respective porters should fix any screwups

-Yosh
1999-10-04 02:32:50 +00:00
Tim Janik
6072e65caf in case we have to abort the program, debugging is enabled and we are not
Mon Sep 13 23:25:59 1999  Tim Janik  <timj@gtk.org>

        * gmessages.c (g_logv): in case we have to abort the program,
        debugging is enabled and we are not called recursively, try
        to abort with raise (SIGTRAP) first, so developers may ignore
        certain failure conditions during debugging stage.
1999-09-13 22:17:27 +00:00
Tim Janik
9c53053abe eliminate memset() call, since string.h has not neccessarily been included
Sun Aug 15 02:47:14 1999  Tim Janik  <timj@gtk.org>

        * glib.h (g_trash_stack_pop): eliminate memset() call, since string.h
        has not neccessarily been included prior to glib.h.

Mon Aug  2 21:03:10 1999  Tim Janik  <timj@gtk.org>

        * configure.in: added --enable-msg-prefix option.

        * gmessages.c (g_log_default_handler): feature "prg_name (pid:%u): "
        if --enable-msg-prefix was selected (use "(process:%u): " if
        g_get_prgname () returns NULL, along the lines of g_on_error_query).
1999-08-15 00:58:48 +00:00
CST 1999 Shawn T. Amundson
b9ef2b41db inserted additional note to look for ChangeLog and AUTHORS file for a log
Wed Feb 24 00:08:42 CST 1999 Shawn T. Amundson <amundson@gtk.org>

        * *.[ch]: inserted additional note to look for ChangeLog and
	  AUTHORS file for a log of modifications.
1999-02-24 06:14:27 +00:00
Tor Lillqvist
0221263645 Don't call ensure_stdout_valid (which would open an unneeded console
* gmessages.c (g_log_default_handler): (Win32:) Don't call
  ensure_stdout_valid (which would open an unneeded console window)
  if we're calling a logging function.  Define ensure_stdout_valid
  as an empty macro on Unix.

* gutils.c (g_get_any_init): (Win32:) Trust HOME first if defined,
  then try HOMEDRIVE and HOMEPATH.
1999-02-02 01:24:34 +00:00
Tor Lillqvist
f477518c3a Merge in current Win32 version. Almost no Unix code touched.
* README.win32: More text.

	* config.h.win32 glibconfig.h.win32: Update to match the
	corresponding generated files on Unix.

	* makefile.msc: Update with new source files, and gthread
 	library. Use the compiler flag -MD instead of using -D_DLL and
	"/nodefaultlib:libc msvcrt.lib" in the link phase.

	* glib.def: Include new functions, drop removed ones.

	* glib.h: Add comments about main loop and polling on Win32. (In
	general, it's only for the GIMP's use.) Add Win32 IO Channel
	functions. Remove the obsoleted old IO Channel stuff (which was
	in #if 0 already).

	* giowin32.c: New file.

	* gmain.c: Include config.h, conditionalize <sys/time.h>
 	inclusion.  Add g_poll implementation for Win32 (only for the
 	GIMP's needs for now, it's hard or even impossible to be as clean
 	and generic as on Unix). Implement g_get_current_time on Win32. If
 	threads aren't supported, don't try to wake up main thread's
 	loop. On Win32, use a semaphore and not a pipe to wake up the main
 	loop.

	* gmessages.c: On Win32, allocate a console window if the standard
	output handle is invalid before writing to stdout, and reopen stdout
	to that console window.

	* giochannel.c: Conditionalize unistd.h inclusion. Some indentation
	cleanup.

	* gstrfuncs.c: Include <signal.h>.

	* gutils.c: On Win32, also check the HOMEDRIVE and HOMEPATH
	environment variables.

	* gmodule-dl.c gmodule-dld.c: In
 	_g_module_build_path, don't add the "lib" prefix and
 	".so" or ".sl" suffix if already there.

	* gmodule-win32.c: Likewise for the ".dll" suffix.

	* gthread-posix.c: Conditionalize <sys/time.h> inclusion.
1999-01-16 23:46:42 +00:00
Owen Taylor
931ea95265 This commit merges the glib-threads branch into the main
branch. See the ChangeLog for details of the changes.

In brief overview:

 - The set of threading functions can be set
 - A default implementation is provided in -lgthread
 - All static data structures are locked using these
   functions if g_thread_init() is called.
1998-12-15 05:28:02 +00:00
Manish Singh
7e04691726 applied glib-tml-981101-1 patch from Tor Lillqvist (ChangeLog entry
* applied glib-tml-981101-1 patch from Tor Lillqvist (ChangeLog
entry appended below)

* testglib.c
* gstrfuncs.c
* glib.h: use G_HAVE_GINT64, since HAVE_GINT64 is gone

* gmessages.c
* gscanner.c: #include <config.h> in here too, for HAVE_UNISTD_H

-Yosh
1998-11-01 04:19:54 +00:00
Tor Lillqvist
a6149403de removed dummy structure definitions for struct _GCache, _GTree, _GTimer,
Tue Oct 27 03:00:50 1998  Tim Janik  <timj@gtk.org>

        * glib.h: removed dummy structure definitions for struct _GCache,
        _GTree, _GTimer, _GMemChunk, _GListAllocator and _GStringChunk.

        * gutils.c: implement glib's inline functions _after_ all include
        statements have been processed.
        removed Tor's MAXPATHLEN check since there already was one supplied
        further down in this file.
        (LibMain): special cased the #ifdef __LCC__ case for NATIVE_WIN32,
        since lcc maybe used on other platforms as well. why in hell is this
        stuff required?
        (g_get_any_init): for windows, if the user name is supplied, use it as
        realname also.
        in general, if there is no homedir specified, use the tmpdir that
        we already figured.

        * gtimer.c (g_timer_elapsed): changed a g_assert() statement to
        g_return_if_fail().

        * applied glib-tml-981020-0.patch for WIN32 portability, added some
        comments and g_return_if_fail() statements, minor indentation fixes.
        ChangeLog entry from Tor Lillqvist is appended.

        * glib.h (struct dirent): use lower case structure members.

        * glib.h:
        * makefile.lcc:
        * makefile.msc:
        s/COMPILING_GLIB/GLIB_COMPILATION/

1998-10-20: Tor Lillqvist <tml@iki.fi>

        * README.win32 glib.def gmodule.def
        * glibconfig.h.win32 gmodule/gmoduleconf.h.win32:
        New files for the Windows port. The .def files list exported
        symbols for the Microsoft linker and compatibles.

        * configure.in:
        Added checks for some platform-dependent headers: pwd.h sys/param.h
        sys/select.h sys/time.h sys/times.h unistd.h, and the function lstat.

        * gerror.c:
        Conditionalized inclusion of system-dependent headers. Changes
        for Windows: no gdb to do a stack trace. Just call abort().

        * glib.h:
        Changes for Windows:

        Added macros G_DIR_SEPARATOR, G_DIR_SEPARATOR_S for
        platform-dependent file name syntax elements. Added macros
        G_SEARCHPATH_SEPARATOR, G_SEARCHPATH_SEPARATOR_S for
        platform-dependent search path syntax conventions.

        Added pragmas for Microsoft C to make it more pedantic.

        Marked GLib's global variables for export from DLL.

        Added the function g_strescape that escapes backslashes.

        Added functions g_path_is_absolute and g_path_skip_root to
        handle platform-dependent file name syntax.

        Added the function g_getenv that expands environment variables
        that contain references to other environment variables, as is
        typical on Windows NT.

        Added the GIOChannel structure which is used to encapsulate the
        IPC mechanism used by the GIMP's plug-ins, and possibly other
        things later. On Unix a GIOChannel encapsulates just a file
        descriptor. On Windows it contains a file handle from _pipe() and a
        few other things related to the implementation of gdk_input_add
        and GIMP plug-in communication. Subject to change.

        Removed duplicate declarations of the version variables.

        For the Microsoft compiler, declare own implementation of
        ftruncate and the <dirent.h> functions.

        * gmem.c:
        Define a symbolic name  for the profiling table size.

        * gmessages.c:
        Conditionalized inclusion of unistd.h. On Windows, output using
        stdio to stdout.

        * gscanner.c:
        Conditionalized inclusion of unistd.h. Added changes for
        Microsoft C. Added CR to the skipped character set. Added small
        workaround for MSC compiler bug in g_scanner_cur_value.

        * gstrfuncs.c:
        Added the function g_strescape, which escapes the backslash
        character. Needed especially when printing Windows filenames.

        * gtimer.c:
        Conditionalized inclusion of unistd.h and sys/time.h. Added
        implementations for Windows.

        * gutils.c:
        Conditionalized inclusion of platform-dependent headers. Use
        the platform-independent file name syntax macros.
        Conditionalize code on platform-dependent features. Added the
        functions g_path_is_absolute g_path_skip_root and g_getenv.
        Added the GIOChannel-related functions. Added
        compiler-dependent Unix compatibility functions for Windows.

        * makefile.lcc makefile.msc:
        New files. Compiler-specific makefiles for LCC-Win32 and
        Microsoft C. Only Microsoft C is actually supported currently.

        * testglib.c:
        Added pathname check cases for Windows. Added workaround for
        bug in the Microsoft runtime library. Improved some tests a bit.

Tue Oct 27 04:00:11 1998  Tim Janik  <timj@gtk.org>

        * testgmodule.c (main): changed the #ifdef WIN32 test to NATIVE_WIN32,
        this needs to be more constistent throughout the code, do we go for
        NATIVE_WIN32 or WIN32?

        * gmodule.c (LibMain): special cased the #ifdef __LCC__ case for
        NATIVE_WIN32, since lcc maybe used on other platforms as well.
        * libgplugin_a.c (LibMain):
        * libgplugin_b.c (LibMain):
        likewise. not sure i like this special requirement for lcc in here.

        * gmodule-dl.c (_g_module_build_path):
        feature empty "" directories and prepend the module name with "lib".

        * gmodule-dld.c (_g_module_build_path):
        * gmodule-win32.c (_g_module_build_path):
        feature empty "" directories.

        * we need some more magic in the _g_module_build_path variants
        so we don't append/prepend lib and .so, .sl or .dll for those names
        that already contain it.

        * applied patch from Tor Lillqvist for g_module_build_path() and
        windows support.

1998-10-20: Tor Lillqvist <tml@iki.fi>

        * gmodule/gmodule-win32.c:
        New file.

        * gmodule/gmodule.c gmodule/gmodule.h:
        Added the funcion g_module_build_path that builds the path to
        a module file, decorating the name according to the system's
        conventions.  Added the Windows implementation.

        * gmodule/libgplugin_a.c gmodule/libgplugin_b.c:
        Added LibMain for LCC-Win32.

        * gmodule/testgmodule.c:
        Handle Windows dll names.
1998-10-27 04:11:34 +00:00
Tim Janik
0b42c37e7d check for all three inline keywords individually.
Mon Sep  7 07:53:21 1998  Tim Janik  <timj@gtk.org>

        * configure.in: check for all three inline keywords individually.

        * glib.h: inlining hassle. for compilers that don't allow the `inline'
        keyword, mostly because of strict ANSI C compliance or dumbness, we try
        to fall back to either `__inline__' or `__inline'.
        we define G_CAN_INLINE, if the compiler seems to be actually *capable*
        to do function inlining, in which case inline function bodys do make
        sense. we also define G_INLINE_FUNC to properly export the function
        prototypes if no inlinig can be performed. we special case most of the
        stuff, so inline functions can have a normal implementation by defining
        G_INLINE_FUNC to extern and G_CAN_INLINE to 1.

        * ltconfig: (compiler PIC flag test): special case linux for non
        aout systems to honour lcc's position independant code (cases
        "linux*aout)" and "linux*)" got added). (this needs to go into
        libtool which does an advanced test, checking for __LCC__).

        * autogen.sh: take $CC=lcc into account by invoking automake with
        --include-deps so lcc isn't scared by gcc's auto-dependancy
        generation code. care about $ACLOCAL_FLAGS. optionally feature
        autoheader.

        * minor fixups in other places to cure some of lcc's warnings.
1998-09-07 09:43:54 +00:00
Tim Janik
b420fa8418 removed this function which was not publically exported in glib.h. to
Mon Aug 24 02:08:56 1998  Tim Janik  <timj@gtk.org>

        * glib.h:
        * gstring.c:
        * gstrfuncs.c:
        (g_vsprintf): removed this function which was not publically
        exported in glib.h. to export it, it should have been named
        differently in the first place, since its semantics differ from
        vsprintf(). apart from that, it was a possible cause for
        problems since it worked on a previously allocated memory area and
        was used in a lot places of glib. exporting it would have been a
        guararant for problems with threaded programs.
        (g_printf_string_upper_bound): exported this function to return
        a string size, guarranteed to be big enough to hold the fully
        expanded format+args string. added 'q', 'L' and 'll' flag handling.
        in fact, the newly allocated area is in most cases much bigger than
        required.
        (g_strdup_vprintf()): new function returning a newly allocated string
        containing the contents of *format and associated args (size is
        calculated with g_printf_string_upper_bound()).
        (g_strdup_printf): new function which wraps g_strdup_vprintf().

        * configure.in: check for va_copy() or __va_copy() alternatively.
        check whether va_lists can be copyied by value.

        * glib.h: provide a definition for G_VA_COPY.

        * glib.h:
        * gmessages.c:
        (g_logv):
        (g_vsnprintf):
        pass va_lists by value, not by reference, since this causes problems
        on platforms that implement va_list as as arrays. internaly, use
        G_VA_COPY (new_arg, org_arg); va_end (new_arg); to produce a second
        va_list variable, if multiple passes are required. changed all
        callers.

        * glib.h:
        * gerror.h:
        renamed g_debug() to g_on_error_query(), cleaned up a bit.
        renamed g_stack_trace() to g_on_error_stack_trace() since both
        functions cluttered different namespaces.
        there is an appropriate comment in glib.h now that explains the
        unix and gdb specific dependencies of both functions.
        removed g_attach_process().
        g_on_error_stack_trace() should probably be handled with caution,
        i've seem several different linux versions (2.0.x) become unstable
        after invokation of this function.
1998-08-24 05:26:53 +00:00
Tim Janik
e1f0fb0c1e new function g_log_set_always_fatal() to set an additional fatal_mask for
Tue Aug 18 04:40:17 1998  Tim Janik  <timj@gtk.org>

        * glib.h:
        * gmessages.c: new function g_log_set_always_fatal() to set an
        additional fatal_mask for log levels that are considered to be fatal
        globally (required by gtk). since this mask is not domain-associated,
        it is restricted to the log levels, introduced by glib itself.

        * gmem.c:
        * grel.c:
        * gtree.c (g_tree_node_check):
        don't use g_print() calls for informational/debugging output,
        but log all this stuff through g_log() with G_LOG_LEVEL_INFO.
        libraries shouldn't use printf(), g_print() or g_printerr() at all.
1998-08-18 03:50:35 +00:00
Tim Janik
e93e494518 feature an extra MODULES parameter, so glib-config can be invoked with the
Mon Aug 17 01:46:14 1998  Tim Janik  <timj@gtk.org>

        * glib.m4: feature an extra MODULES parameter, so glib-config can
        be invoked with the "gmodule" argument.

        * glib.h: changed the log level to G_LOG_LEVEL_CRITICAL for all
        g_return*_if_fail statements, and made them issue a message
        like "assertion `%s' failed".

        * gmessages.c (g_logv): ugh, don't pass log_domain as NULL to
        g_log_find_domain.
1998-08-17 00:00:51 +00:00
Tim Janik
d5803865b4 version bump to 1.1.3, binary age 0, interface age 0.
Sun Aug 16 20:28:27 1998  Tim Janik  <timj@gtk.org>

        * version bump to 1.1.3, binary age 0, interface age 0.

        * glib.h: be nice to platforms that don't have gint64 and don't
        issue #warning on every compilation. since glib doesn't require
        gint64 itself, packages that need gint64 should test for this
        themselves.

        * glib.h:
        * gutils.c: added a new function g_vsnprintf().

Fri Aug 14 16:41:53 1998  Tim Janik  <timj@gtk.org>

        * glib.h: added static inline functions for bit mask tests:
        g_bit_nth_lsf, g_bit_nth_msf and g_bit_storage.

Fri Aug 13 14:23:37 1998  Tim Janik  <timj@gtk.org>

        * glib.h:
        * gmessages.c:
        revised the message handling system, which is now based on a new
        mechanism g_log*. most of the assertment macros got adapted to
        feature the new g_log() call with an additional specification of
        the log level in a preprocessor macro G_LOG_DOMAIN. if G_LOG_DOMAIN
        is undefined upon the includion of glib.h, it'll be defined with a
        value of (NULL) and thus preserves the original bahaviour for
        warning and error messages. the message handler setting functions
        for g_warning, g_error and g_message are only provided for backwards
        compatibility and might get removed somewhen.

        * Makefile.am: feature the G_LOG_DOMAIN macro to set the log domain
        to "GLib" upon compilation. we currently have to add this definition
        to the DEFS variable.
        * testglib.c: we need an ugly #undef G_LOG_DOMAIN at the start
        of this file currently, since automake doesn't support per target
        _CFLAGS yet.

        * glib.h: changed some gints to gbooleans, made a few const corrections,
        removed some superfluous G_STMT_START{}G_STMT_END wrappers, added some
        in other required places.

        * gnode.c:
        (g_node_prepend):
        (g_node_insert_before):
        (g_node_insert):
        (g_node_append_data):
        (g_node_prepend_data):
        (g_node_insert_data_before):
        (g_node_insert_data):
        (g_node_append):
        return (node), so these macros/functions can be usefully chained with
        g_node_new().

[GModule]
Fri Aug 14 02:24:39 1998  Tim Janik  <timj@gtk.org>

        * Makefile.am: feature the G_LOG_DOMAIN macro to set the log domain
        to "GModule" upon compilation. we currently have to add this definition
        to the DEFS variable.
        * testgmodule.c: we need an ugly #undef G_LOG_DOMAIN at the start
        of this file currently, since automake doesn't support per target
        _CFLAGS yet.
1998-08-16 21:14:11 +00:00
Owen Taylor
2e0320d57e Initial revision 1998-06-10 23:21:14 +00:00