2676 Commits

Author SHA1 Message Date
Matthias Clasen
3fef89349b Doc fixes 2005-09-20 05:50:24 +00:00
Tim Janik
a2ff6e7982 applied a patch from matthias which checks on the upper bound of
Mon Sep 19 17:23:23 2005  Tim Janik  <timj@imendio.com>

        * glib/gpattern.c: applied a patch from matthias which checks on the
        upper bound of GPatternSpec length to optimize matches.
        cosmetic fixups.

        * tests/patterntest.c: added more match cases.
2005-09-19 15:27:17 +00:00
Tor Lillqvist
3fc9c7a45a Add warning to doc comment that these functions should not be used on
2005-09-16  Tor Lillqvist  <tml@novell.com>

	* glib/gstrfuncs.c (g_ascii_strcasecmp, g_ascii_strncasecmp): Add
	warning to doc comment that these functions should not be used on
	encodings like CP932.
2005-09-15 23:41:25 +00:00
Matthias Clasen
81719cc164 Add a test for grup names of length 1.
2005-09-14  Matthias Clasen  <mclasen@redhat.com>

	* tests/keyfile-test.c: Add a test for grup names of length 1.

	* glib/gkeyfile.c (g_key_file_line_is_group): Accept group names
	of length 1.  (#316309)
2005-09-14 18:04:53 +00:00
Matthias Clasen
047558bc21 Clarify docs.
2005-09-12  Matthias Clasen  <mclasen@redhat.com>

	* glib/gmarkup.c (g_markup_escape_text): Clarify docs.
2005-09-12 18:23:43 +00:00
Kjartan Maraas
2d3fff85d7 Remove some dead code. Closes bug #315278.
2005-09-11  Kjartan Maraas  <kmaraas@gnome.org>

	* glib/gmain.c: (g_child_watch_prepare), (g_child_watch_check),
	(child_watch_helper_thread): Remove some dead code. Closes
	bug #315278.
2005-09-11 15:20:52 +00:00
Tor Lillqvist
17045b64d3 Create also a console version of the gspawn-win32-helper program,
2005-09-07  Tor Lillqvist  <tml@novell.com>

	* glib/Makefile.am: Create also a console version of the
	gspawn-win32-helper program, gspawn-win32-helper-console.exe.
	It's otherwise identical to gspawn-win32-helper.exe, except marked
	as a console application (linked without the -mwindows option).

	* glib/gspawn-win32.c (do_spawn_directly, do_spawn_with_pipes):
	Drop the dont_wait parameter. Its truth value correlated 100% with
	the NULLness of the exit_status parameter anyway, so it's enough
	to check whether exit_status is NULL. Invert the sense of the
	dont_return_handle parameter and rename it to do_return_handle, to
	make the code easier to read by avoiding double negations.

	(g_spawn_sync_utf8, g_spawn_async_with_pipes_utf8): Modify calls
	to do_spawn_with_pipes() accordingly.

	(do_spawn_with_pipes): If we have a console, use the console
	version of the helper program, otherwise use the GUI one. This
	avoids extra console windows opening up in some situations. (In
	case a console application uses the GUI gspawn-win32-helper.exe to
	spawn another console application we would get a separate console
	for the spawned console application).

	* glib-zip.in: Distribute also gspawn-win32-helper-console.exe.
2005-09-07 10:10:49 +00:00
Matthias Clasen
38094ffb5c Report an error if the file is too large. (#315275, Kjartan Maraas)
2005-09-05  Matthias Clasen  <mclasen@redhat.com>

	* glib/gmappedfile.c (g_mapped_file_new): Report an error
	if the file is too large.  (#315275, Kjartan Maraas)
2005-09-05 18:20:24 +00:00
Matthias Clasen
1c0b689399 The return value of read() is signed. (#315273, Kjartan Maraas)
2005-09-05  Matthias Clasen  <mclasen@redhat.com>

	* glib/gkeyfile.c (g_key_file_load_from_fd): The return value
	of read() is signed.  (#315273, Kjartan Maraas)
2005-09-05 17:55:11 +00:00
Tor Lillqvist
130763338c Wrapping atexit() is a bad idea on Windows, where the EXE and each DLL
2005-08-31  Tor Lillqvist  <tml@novell.com>

	* glib/gutils.h: Wrapping atexit() is a bad idea on Windows, where
	the EXE and each DLL have their own atexit function chains.

	#define g_atexit as atexit instead. This means it has a
	better chance of doing what the caller wants. For instance,
	gtkhtml calls g_atexit() registering a function in gtkhtml
	itself. This caused a crash when g_atexit() was implemented as a
	function in the GLib DLL. The gtkhtml DLL was already unloaded by
	the time the GLib DLL got unloaded.

	* glib/gutils.c: #undef the #define mentioned above, to also get a
	real g_atexit() into the DLL for backward compatibility. Document
	the Windows behaviour of g_atexit(), and document the varying ways
	atexit() can behave in the context of dynamically loaded modules
	on Unix.
2005-08-31 21:02:47 +00:00
Matthias Clasen
70af0de0ef Add functions to intern strings.
2005-08-31  Matthias Clasen  <mclasen@redhat.com>

	* glib/glib.symbols:
	* glib/gquark.h:
	* glib/gdataset.c: Add functions to intern strings.
2005-08-31 14:25:45 +00:00
Matthias Clasen
f60ede1724 Unify some near-duplicate strings. (#314654, Clytie Siddall)
2005-08-28  Matthias Clasen  <mclasen@redhat.com>

	* glib/giochannel.c: Unify some near-duplicate strings. (#314654,
	Clytie Siddall)
2005-08-28 06:11:55 +00:00
Tor Lillqvist
4362cb6f26 Improve error reporting. Slight refactoring.
2005-08-26  Tor Lillqvist  <tml@novell.com>

	* glib/gspawn-win32.c: Improve error reporting. Slight refactoring.
2005-08-26 01:43:11 +00:00
Tor Lillqvist
41e833ae4c Make also the g_spawn*() functions take parameters in the GLib file name
2005-08-25  Tor Lillqvist  <tml@novell.com>

	Make also the g_spawn*() functions take parameters in the GLib
	file name encoding, i.e. UTF-8, on Windows. Has no impact on Unix
	API or ABI. Like the other GLib API that was earlier changed to
	use UTF-8 on Windows, the names of the functions that take UTF-8
	have _utf8 suffixes added by using preprocessor macros in the
	header file. The old names are kept for functions with the old
	behaviour, taking parameters in the system codepage, for DLL ABI
	stability.

	* glib/gspawn.h: On Win32 add the suffix _utf8 to the names of the
	g_spawn*() functions.

	* glib/gspawn-win32.c: Use wide-char API on NT-based
	Windows. Convert parameters from UTF-8 to wide chars (NT) or
	system codepage (Win9x) and call the C library _wspawn*() or
	spawn*() functions respectvely. Add DLL ABI stability versions
	that take parameters in the system codepage.

	* glib/gspawn-win32-helper.c: On NT-based Windows use the
	wide-char versions of argv and envp, and use wide-char API to
	change directory and spawn the program to run. Remove the verbose
	debugging output, it was too complex to modify for the wide-char
	features. (Just add temporary debugging printouts if needed, no
	need to have them permanently in the source.)

	* glib/gspawn.c: Corresponding documentation updates.

	* glib/glib.symbols: Corresponding changes: Mark the ABI stability
	symbols as PRIVATE, add the new _utf8-suffixed ones.
2005-08-25 23:28:24 +00:00
Stepan Kasal
d923d1f03f (G_MININT64): Cast to gint64. 2005-08-24 14:14:02 +00:00
Matthias Clasen
4adde8fdca Fix the crt_externs.h include 2005-08-24 03:11:45 +00:00
Hans Breuer
0b106554ac link with ws2_32.lib
2005-08-20  Hans Breuer  <hans@breuer.org>

	* glib/makefile.msc.in : link with ws2_32.lib
2005-08-20 13:26:19 +00:00
Tor Lillqvist
3c449f00cc Check for <sys/wait.h>
2005-08-18  Tor Lillqvist  <tml@novell.com>

	* configure.in: Check for <sys/wait.h>

	* glib/gbacktrace.c: Include <sys/wait.h> on if HAVE_SYS_WAIT_H.
2005-08-18 13:08:18 +00:00
Ross Burton
efa05f88ef Optimise single-character insertions 2005-08-18 09:30:24 +00:00
Matthias Clasen
a1ab92582c Check for crt_externs.h and _NSGetEnviron.
2005-08-17  Matthias Clasen  <mclasen@redhat.com>

	* configure.in: Check for crt_externs.h and _NSGetEnviron.

	* glib/gutils.c: On Darwin, include crt-externs.h and
	define environ using _NSGetEnviron().  (#313731)
2005-08-17 18:31:08 +00:00
Stepan Kasal
63828e25ec Move the body of the big if... (g_get_any_init_do): ... to this new
2005-08-16  Stepan Kasal  <kasal@ucw.cz>

	* glib/gutils.c (g_get_any_init): Move the body of the big if...
	(g_get_any_init_do): ... to this new function.
	(g_get_any_init): Declare as inline.
	(g_get_any_init_locked): New inline function, does the locking.
	Make use of these two throughout the code.
2005-08-17 12:00:51 +00:00
Matthias Clasen
56a63c1568 Wait for the child process and then simply return. This makes The "S"
2005-08-15  Matthias Clasen  <mclasen@redhat.com>

	* glib/gbacktrace.c (g_on_error_stack_trace): Wait for
	the child process and then simply return. This makes
	The "S" option work as documented in g_on_error_query().
	(#313125, Matthew F. Barnes)
2005-08-15 19:32:32 +00:00
Matthias Clasen
8c663934ca Update the link to Unicode category values. (#313369, Behnam Esfahbod)
2005-08-15  Matthias Clasen  <mclasen@redhat.com>

	* glib/gunicode.h: Update the link to Unicode category
	values.  (#313369, Behnam Esfahbod)
2005-08-15 18:49:11 +00:00
Matthias Clasen
95ffa1e5af Clarify docs a little. (#311727, Tristan van Berkom)
2005-08-15  Matthias Clasen  <mclasen@redhat.com>

	* glib/gqueue.c (g_queue_find_custom): Clarify docs
	a little.  (#311727, Tristan van Berkom)
2005-08-15 18:28:12 +00:00
Matthias Clasen
30828b953a Fix abi checks for ia64. 2005-08-15 05:00:57 +00:00
Tor Lillqvist
535939a144 Use "localhost" as fallback for g_get_host_name(), not "unknown".
2005-08-11  Tor Lillqvist  <tml@novell.com>

	* glib/gutils.c (g_get_any_init): Use "localhost" as fallback for
	g_get_host_name(), not "unknown".
2005-08-10 21:13:29 +00:00
Stepan Kasal
0169468c8c Fix typos: invokation -> invocation. 2005-08-10 10:46:55 +00:00
Matthias Clasen
833abd554a Take a va_list*, not a va_list, to avoid compiler warnings about
2005-08-10  Matthias Clasen  <mclasen@redhat.com>

	* glib/gfileutils.c (g_build_path_va, g_build_pathname_va):
	Take a va_list*, not a va_list, to avoid compiler warnings
	about uninitialized variables.
2005-08-10 04:07:47 +00:00
Matthias Clasen
f3d4fb75b8 Initialize variables to not make gcc nervous.
2005-08-08  Matthias Clasen  <mclasen@redhat.com>

	* glib/gutils.c (_g_compute_locale_variants): Initialize
	variables to not make gcc nervous.
2005-08-09 02:45:20 +00:00
Manish Singh
6c538d33ee remove stray -V option to grep so it actually works.
2005-08-08  Manish Singh  <yosh@gimp.org>

        * glib/abicheck.sh: remove stray -V option to grep so it actually
        works.
2005-08-09 00:25:18 +00:00
Matthias Clasen
717f3d4abb Enable the endianness test.
2005-08-08  Matthias Clasen  <mclasen@redhat.com>

	* tests/convert-test.c: Enable the endianness test.

	* glib/gconvert.c: Make the caching of iconv descriptors
	optional.

	* configure.in: Add an --enable-iconv-cache option, and
	default to disabling iconv caching on new enough glibc.
	Somebody with access to Solaris systems will need to test
	if opening/closing of iconv descriptors is enough of
	a performance problem to warrant the caching on that
	platform. Note that the caching is causing correctness
	problems in some corner cases, thus turning it off
	is desirable unless it has severe performance implications.
2005-08-08 19:50:38 +00:00
Matthias Clasen
cb3f32383e Improve ABI checking 2005-08-06 15:26:49 +00:00
Matthias Clasen
8e7a50ab42 Always export g_atomic_int_get and g_atomic_pointer_get as functions, even
2005-08-04  Matthias Clasen  <mclasen@redhat.com>

	* glib/glib.symbols:
	* glib/gatomic.[hc]: Always export g_atomic_int_get and
	g_atomic_pointer_get as functions, even if we have macros,
	to avoid changing the ABI depending on configuration.

	* glib/gatomic.c: Fix the s390 implementations of
	g_atomic_pointer_compare_and_exchange.
2005-08-04 17:21:03 +00:00
Tor Lillqvist
9c45222942 Move the G_BEGIN_DECLS/G_END_DECLS pair outside the #if/#else/#endif
2005-08-04  Tor Lillqvist  <tml@novell.com>

	* glib/gstdio.h: Move the G_BEGIN_DECLS/G_END_DECLS pair outside
	the #if/#else/#endif block. Otherwise we had G_BEGIN_DECLS without
	matching G_END_DECLS on Unix, and G_END_DECLS without matching
	G_BEGIN_DECLS on Win32.
2005-08-04 17:07:21 +00:00
Ross Burton
fada30c956 Small doc updates 2005-08-03 20:24:18 +00:00
Matthias Clasen
4f016b4824 Add native atomic operations for s390.
2005-08-03  Matthias Clasen  <mclasen@redhat.com>

        * glib/gatomic.c: Add native atomic operations
        for s390.

        * configure.in: ... and use them on s390.
2005-08-03 20:18:15 +00:00
Ross Burton
bbecb798e2 Fix Docbook tag typo 2005-08-03 19:44:52 +00:00
Matthias Clasen
b8fb9fd074 Add G_BEGIN_DECLS/G_END_DECLS. (#312424)
2005-08-03  Matthias Clasen  <mclasen@redhat.com>

	* glib/gstdio.h: Add G_BEGIN_DECLS/G_END_DECLS.  (#312424)
2005-08-03 13:59:43 +00:00
Matthias Clasen
74ff285644 Don't go in an infinite loop if the input text ends in an incomplete
2005-08-02  Matthias Clasen  <mclasen@redhat.com>

	* glib/gconvert.c (g_convert_with_iconv): Don't go in an
	infinite loop if the input text ends in an incomplete multibyte
	character.  (#312402, Sebastian Bacher)
2005-08-02 21:10:16 +00:00
Matthias Clasen
02bc22d1ca Remove accidental documentation redundancies 2005-08-02 15:45:08 +00:00
Matthias Clasen
de298ae712 Cleanup converter state after the conversion. Document streaming
2005-08-02  Matthias Clasen  <mclasen@redhat.com>

	* glib/gconvert.c (g_convert_with_iconv, g_convert_with_fallback):
	Cleanup converter state after the conversion. Document streaming
	conversion pitfalls.  (#311337)
2005-08-02 14:58:20 +00:00
Tim Janik
2d1cf6c139 moved G_DATALIST_*_POINTER() macros here, because proper use requires the
Sun Jul 31 01:50:20 2005  Tim Janik  <timj@gtk.org>

        * glib/gdataset.c:
        moved G_DATALIST_*_POINTER() macros here, because proper use requires
        the global g_dataset_global mutex to be acquired.
        g_datalist_id_get_data():
        g_datalist_unset_flags():
        g_datalist_set_flags(): properly acquire and release dataset mutex.

        * glib/gdatasetprivate.h: implement G_DATALIST_GET_FLAGS() via atomic
        pointer access to account for memory barriers. moved all other macros.
2005-07-31 00:05:39 +00:00
Matthias Clasen
5f70ee19f8 Include glibintl.h, not gi18n.h, noticed by Dan Winship.
2005-07-26  Matthias Clasen  <mclasen@redhat.com>

	* glib/goption.c: Include glibintl.h, not gi18n.h, noticed
	by Dan Winship.
2005-07-26 19:41:05 +00:00
Matthias Clasen
27096aedb5 Fix a typo in the docs. (#311569, Ross Burton)
2005-07-26  Matthias Clasen  <mclasen@redhat.com>

	* glib/ghash.c (g_hash_table_foreach): Fix a typo in the
	docs.  (#311569, Ross Burton)
2005-07-26 15:49:15 +00:00
Matthias Clasen
8412914dcd Remove debugging spew 2005-07-20 17:12:45 +00:00
Matthias Clasen
8ac11176ab Don't get stuck in here if immediate is TRUE. (#310954, Hong Jen Yee)
2005-07-20  Matthias Clasen  <mclasen@redhat.com>

	* glib/gthreadpool.c (g_thread_pool_free): Don't get
	stuck in here if immediate is TRUE.  (#310954,
	Hong Jen Yee)

	* tests/threadpool-test.c (main): Test immediate == TRUE.
2005-07-20 17:06:02 +00:00
Tor Lillqvist
f0a0fe7a44 Make this an inline function. Define it only if G_CAN_INLINE and not C++.
2005-07-20  Tor Lillqvist  <tml@novell.com>

	* glib/gutils.h (g_win32_get_system_data_dirs): Make this an
	inline function. Define it only if G_CAN_INLINE and not
	C++. (#173098)
2005-07-20 08:37:13 +00:00
Matthias Clasen
912e4ea3cb Avoid an unnecessary strlen if len is -1. (#169692, Benoit Dejean)
2005-07-19  Matthias Clasen  <mclasen@redhat.com>

        * glib/gstring.c (g_string_chunk_insert_len): Avoid
        an unnecessary strlen if len is -1.  (#169692,
        Benoit Dejean)
2005-07-19 19:05:19 +00:00
Matthias Clasen
cf17bb79d2 Fix g_atomic_pointer_compare_and_exchange on sparc64. (#167572, Gert
2005-07-19  Matthias Clasen  <mclasen@redhat.com>

        * glib/gatomic.c (g_atomic_pointer_compare_and_exchange):
        Fix g_atomic_pointer_compare_and_exchange on sparc64.
        (#167572, Gert Doering)
2005-07-19 15:30:23 +00:00
Matthias Clasen
39ea11ce6b Make refcounting threadsafe by using atomic operations. (#166020, Wim
2005-07-15  Matthias Clasen  <mclasen@redhat.com>

	Make refcounting threadsafe by using atomic
	operations.  (#166020, Wim Taymans)

	* gobject.c: Use a recursive lock to protect the
	notify queue.
	(g_object_unref): Get rid of g_object_last_unref and
	do the last unref handling in g_object_unref.
	(g_object_ref, g_object_unref): Use atomic operations.

	* gsignal.c (struct _HandlerMatch): Use a full integer
	for the ref_count field.
	(handler_ref, handler_unref_R): Use atomic operations.

	* gparam.c (g_param_spec_ref, g_param_spec_unref):
	Use atomic operations instead of a lock to make the
	refcounting threadsafe.

	* gclosure.c (g_closure_ref, g_closure_unref): Use atomic
	operations. This is more complicated here, since the
	refcount is stored in a bitfield, so we also have
	to access all other bitfield members atomically.

	* gsignal.c (handlers_find): Read the meta_marshal flag
	of the closure atomically.

	* tests/Makefile.am (SUBDIRS): Add tests/refcount

	* configure.in: Add tests/refcount

	* tests/refcount/properties.c: Test property changes
	from multiple threads.

	* tests/refcount/signals.c: Test signal emission from
	multiple threads.

	* tests/refcount/objects.c: Test refcounting from
	multiple threads.

	* tests/refcount/objects2.c:
	* tests/refcount/properties2.c: Tests to measure the
	overhead of threadsafe refcounting.

	* glib/giochannel.c (g_io_channel_ref, g_io_channel_unref):
	Use atomic operations to make refcounting
	threadsafe.  (#166020, Wim Taymans)
2005-07-15 16:51:10 +00:00