60 Commits

Author SHA1 Message Date
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