368 Commits

Author SHA1 Message Date
Tor Lillqvist
5a88294fc3 Improve g_get_system_data_dirs() on Windows. A library that calls
2005-04-08  Tor Lillqvist  <tml@novell.com>

	Improve g_get_system_data_dirs() on Windows. A library that calls
	g_get_system_data_dirs() might be installed in a different
	top-level prefix than GLib or the application being run.

	* glib/gutils.h (g_win32_get_system_data_dirs): New static
	function defined in this header. Calls
	g_win32_get_system_data_dirs_for_module() passing the address of
	itself as parameter. g_get_system_data_dirs() is #defined as this
	function.

	* glib/gutils.c (g_win32_get_system_data_dirs_for_module): New
	function. If the address parameter is non-NULL, the corresponding
	module's installation location is used for one of the returned
	path names, in addition to the COMMON_APPDATA, COMMON_DOCUMENTS,
	glib top-level and application top-level folders.
	(g_get_system_data_dirs): Now just for backward compatibility on
	Win32. Just call g_win32_get_system_data_dirs_for_module(NULL).

	* glib/glib.symbols: Add g_win32_get_system_data_dirs_for_module.
2005-04-08 12:03:16 +00:00
Tor Lillqvist
30942cba28 Not used on Windows. (unalias_lang): Don't do anything on Windows, there
2005-04-08  Tor Lillqvist  <tml@novell.com>

	* glib/gutils.c (read_aliases): Not used on Windows.
	(unalias_lang): Don't do anything on Windows, there is no
	/usr/share/locale/locale.alias file..
2005-04-08 06:48:17 +00:00
5
224e0b76f6 Declare glib_top_share_dir and exe_top_share_dir only in G_OS_WIN32.
Thu Apr  7 22:51:15 2005  <yosh@gimp.org>

        * glib/gutils.c (g_get_system_data_dirs): Declare glib_top_share_dir
        and exe_top_share_dir only in G_OS_WIN32.
2005-04-08 05:52:20 +00:00
Tor Lillqvist
93fc6a6c1f After investigating more closely the actual use cases of this function, I
2005-04-08  Tor Lillqvist  <tml@novell.com>

	* glib/gutils.c (g_get_system_data_dirs): After investigating more
	closely the actual use cases of this function, I understand better
	what it should do. In addition to the Windows COMMON_APPDATA and
	COMMON_DOCUMENTS folders, also return the "share" subfolders of
	GLib's installation location and the application .exe's
	installation location, hoping that either matches what the
	function's caller is looking for.
2005-04-08 00:40:02 +00:00
Tor Lillqvist
6e51f47e13 [Win32] Fix corner case bug when environment variable value is exactly one
2005-03-23  Tor Lillqvist  <tml@novell.com>

	* glib/gutils.c (g_getenv): [Win32] Fix corner case bug when
	environment variable value is exactly one character.
2005-03-23 14:53:35 +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
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
1607e3f1d0 [Win32] Don't leak return value from get_special_folder(). (#169348,
2005-03-09  Tor Lillqvist  <tml@novell.com>

	* glib/gutils.c (g_get_user_data_dir, g_get_user_config_dir,
	g_get_user_cache_dir, g_get_system_data_dirs,
	g_get_system_config_dirs): [Win32] Don't leak return value from
	get_special_folder(). (#169348, Daniel Atallah) Guard against
	g_home_dir being NULL, use g_tmp_dir/g_user_name in that case.
2005-03-09 02:08:34 +00:00
Matthias Clasen
44c788a9d0 Mark the last paragraph of the docs as Windows-specific. (#169433)
2005-03-07  Matthias Clasen  <mclasen@redhat.com>

	* glib/gutils.c (g_find_program_in_path): Mark the last
	paragraph of the docs as Windows-specific.  (#169433)
2005-03-07 13:49:24 +00:00
Matthias Clasen
f18cab0ce3 New function to list all environment variables. (#166327, Hans Petter
2005-02-07  Matthias Clasen  <mclasen@redhat.com>

	* glib/glib.symbols:
	* glib/gutils.h:
	* glib/gutils.c (g_listenv): New function to list all
	environment variables.  (#166327, Hans Petter Jansson)
2005-02-08 04:28:31 +00:00
Matthias Clasen
5a866843df Move doc comments inline.
2005-02-02  Matthias Clasen  <mclasen@redhat.com>

	* glib/gutils.c: Move doc comments inline.

	* glib/ghash.h: Adjust some argument names.

	* configure.in: Give meaningful names to g_memmove()
	arguments.
2005-02-02 06:07:14 +00:00
Matthias Clasen
f0630a9106 Don't return directories. (#160738, Tommi Komulainen)
2005-01-03  Matthias Clasen  <mclasen@redhat.com>

	* glib/gutils.c (g_find_program_in_path): Don't return
	directories.  (#160738, Tommi Komulainen)
2005-01-03 19:57:20 +00:00
Matthias Clasen
59e5059f05 Clarify the docs. (#162747, Crispin Flowerday)
2005-01-02  Matthias Clasen  <mclasen@redhat.com>

	* glib/gutils.c (g_setenv, g_unsetenv): Clarify the
	docs.  (#162747, Crispin Flowerday)
2005-01-03 04:21:24 +00:00
Tor Lillqvist
66f109711a Make the g_getenv() ABI backward compatibility wrapper more robust.
2005-01-01  Tor Lillqvist  <tml@iki.fi>

	* glib/gutils.c: Make the g_getenv() ABI backward compatibility
	wrapper more robust.
2005-01-01 16:55:10 +00:00
Tor Lillqvist
714887d0fa glib/glib.symbols glib/gutils.h Make also g_getenv(), g_setenv(),
2005-01-01  Tor Lillqvist  <tml@iki.fi>

	* glib/glib.symbols
	* glib/gutils.h
	* glib/gutils.c: Make also g_getenv(), g_setenv(), g_unsetenv()
	and g_find_program_in_path() take and return UTF-8 strings on
	Win32. Implement DLL ABI backward compatility for them, too. Move
	all the DLL ABI stability wrappers to the end of the file. Use
	wide character API when available in inner_find_program_in_path().

	* glib/gfileutils.c: With the UTF-8ness of g_getenv() above, just
	use g_getenv() to get PATHEXT. (Yeah, it's probably overdoing it
	to consider somebody actually having anything else than ASCII
	in PATHEXT, but...)
2005-01-01 02:09:51 +00:00
Tor Lillqvist
ae9d96865d Use GetCurrentDirectory() directly for simpler buffer length management. I
2004-12-30  Tor Lillqvist  <tml@iki.fi>

	* glib/gutils.c (g_get_current_dir): Use GetCurrentDirectory()
	directly for simpler buffer length management. I don't trust
	getcwd() getting it right all the time.
2004-12-30 17:48:23 +00:00
Tor Lillqvist
b76a6afcb8 Require UNC paths to start with exactly two slashes. (g_get_current_dir):
2004-12-30  Tor Lillqvist  <tml@iki.fi>

	* glib/gutils.c (g_path_skip_root): Require UNC paths to start
	with exactly two slashes.
	(g_get_current_dir): Use wide character API when available.
	(g_path_get_dirname): Handle UNC paths better. Part of fix for
	#161797.
2004-12-30 02:00:49 +00:00
Matthias Clasen
10632e416f Update the returned value after locale changes. (#160271, Christian
2004-12-07  Matthias Clasen  <mclasen@redhat.com>

	* glib/gutils.c (g_get_language_names): Update the returned
	value after locale changes.  (#160271, Christian Persch)
	(_g_utils_thread_init): Initialize the language name cache
	before going threaded.

	* glib/gthread.c (g_thread_init_glib): Call _g_utils_thread_init().

	* glib/gthreadinit.h: Add _g_utils_thread_init().
2004-12-07 15:20:15 +00:00
Matthias Clasen
0860274eea Don't forget to initialize g_system_config_dirs. (#160213, Frederic
2004-12-02  Matthias Clasen  <mclasen@redhat.com>

	* glib/gutils.c (g_get_system_config_dirs): Don't forget to
	initialize g_system_config_dirs.  (#160213, Frederic Crozat)
2004-12-02 14:27:31 +00:00
Tor Lillqvist
75a1d303ef glib/gutils.[hc] [Win32] Make also g_get_user_name() and g_get_real() name
2004-11-28  Tor Lillqvist  <tml@iki.fi>

	* glib/gutils.[hc]
	* glib/glib.symbols: [Win32] Make also g_get_user_name() and
	g_get_real() name return UTF-8. As for the similar changes to fix
	#101792, for DLL ABI stability we use preprocessor defines to get
	the new UTF-8 versions, and keep the old names for versions
	returning strings in the system codepage.

	Fix g_get_tmp_dir() and g_get_home_dir() to actually return UTF-8
	as was intended in the fix for bug #101792. (#159664, noticed by
	Robert Ögren)
2004-11-28 18:39:24 +00:00
Matthias Clasen
6a1d7478d7 Work around an bug in Mac OS < 10.3. (#156446, Dave MacLachlan)
2004-11-07  Matthias Clasen  <mclasen@redhat.com>

	* glib/gutils.c (g_get_any_init): Work around an bug
	in Mac OS < 10.3.  (#156446, Dave MacLachlan)
2004-11-07 06:29:58 +00:00
Matthias Clasen
286d84fcb0 glib/gdebug.h glib/gutils.c gobject/gtype.c gthread/gthread-posix.c
2004-11-01  Matthias Clasen  <mclasen@redhat.com>

	* glib/gconvert.c:
	* glib/gdebug.h
	* glib/gutils.c
	* gobject/gtype.c
	* gthread/gthread-posix.c
	* tests/timeloop-closure.c
	* tests/timeloop.c: Fix sparse warnings.  (#157014, Kjartan Maraas)
2004-11-01 18:47:12 +00:00
Hans Breuer
aa410edee6 updated [and finally fixed my script to produce ready to go de-in(ed)
2004-10-29  Hans Breuer  <hans@breuer.org>

	* glibconfig.h */makefile.msc.in : updated [and finally fixed my
	script to produce ready to go de-in(ed) files, w/o autotools]

	* */*.rc.in : updated copyrights to 2004

	* glib/gutils.c : some CSIDL_* defines lacking from older SDK;
	use the same fallback mecahnism as on *NIX where ever applicable
2004-10-29 20:58:04 +00:00
Matthias Clasen
8a7eecd7c6 Introduce the idea of a filename encoding, which is *literally* the
2004-10-27  Matthias Clasen  <mclasen@redhat.com>

	Introduce the idea of a filename encoding, which is
	*literally* the filename encoding on Unix. On windows,
	use the Unicode name converted to UTF-8. (#156325,
	Tor Lillqvist, Owen Taylor)

	* glib/gdir.[hc]:
	* glib/gconvert.[hc]:
	* glib/gfileutils.[hc]:
	* glib/gutils.[hc]:
	* glib/giowin32.c: On Windows, keep old ABI versions
	of GLib pathname api for DLL ABI stability. Use different
	names for the new-style UTF-8 versions. Hide this through
	a #define.

	* glib/gstdio.[hc]: New files containing wrappers for
	POSIX pathname api.

	* glib/glib.symbols: Add new symbols.

	* glib/makegalias.pl: Drop Win32 specific .def syntax,
	include gstdio.h
2004-10-27 16:46:29 +00:00
Matthias Clasen
ee36299b55 Don't include ctype.h needlessly. (#156424, Morten Welinder)
2004-10-26  Matthias Clasen  <mclasen@redhat.com>

	* glib/gutils.c:
	* glib/gkeyfile.c: Don't include ctype.h needlessly.  (#156424,
	Morten Welinder)
2004-10-26 05:23:40 +00:00
Matthias Clasen
bfa8a37a9e Add a parser for desktop entries and similar files with a .ini-like
2004-10-23  Matthias Clasen  <mclasen@redhat.com>

	* glib/gkeyfile.h:
	* glib/gkeyfile.c: Add a parser for desktop entries and
	similar files with a .ini-like syntax.  (#139974, Ray Strode)

	* glib/glib.h: Include gkeyfile.h

	* glib/Makefile.am (libglib_2_0_la_SOURCES): Add gkeyfile.c
	(glibsubinclude_HEADERS): Add gkeyfile.h

	* glib/gutils.c (_g_compute_locale_variants): Make this
	non-static and use it in gkeyfile.c
2004-10-23 06:16:42 +00:00
Matthias Clasen
4293525fc8 Make public. (#155589, Tim-Philipp Müller)
2004-10-17  Matthias Clasen  <mclasen@redhat.com>

	* glib/gutils.h (G_IS_DIR_SEPARATOR):
	* glib/gutils.c: Make public.  (#155589, Tim-Philipp Müller)
2004-10-17 06:46:16 +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
ea01de53fe Clarify the relation of g_get_home_dir() and $HOME. 2004-09-09 14:06:20 +00:00
Tor Lillqvist
cbadee0812 On Win32, as last resort call g_win32_getlocale() to get the current
2004-09-08  Tor Lillqvist  <tml@iki.fi>

	* glib/gutils.c (guess_category_value): On Win32, as last resort
	call g_win32_getlocale() to get the current thread locale. There
	usually aren't any POSIXish LANG or LC_* environment variables
	present on Windows machines.

	* glib/glib.def: Add g_get_language_names.
2004-09-08 22:44:22 +00:00
Matthias Clasen
d209e108b1 Add a function to return a list of applicable locale names. (#95587,
2004-09-07  Matthias Clasen  <mclasen@redhat.com>

	* glib/gutils.h:
	* glib/gutils.c (g_get_language_names): Add a function to
	return a list of applicable locale names.  (#95587,
	Hidetoshi Tajima)
	(guess_category_value, compute_locale_variants):
	(explode_locale, unalias_lang, read_aliases): Helper
	functions for g_get_language_names()

	* tests/testglib.c (main): Show the results of
	g_get_language_names()
2004-09-07 18:37:10 +00:00
Tor Lillqvist
a56aee27f6 Win32 equivalences of the XDG folders
2004-08-25  Tor Lillqvist  <tml@iki.fi>

	Win32 equivalences of the XDG folders

	* glib/gutils.c (get_special_folder): New function, calls
	SHGetSpecialFolderLocation() to get path to places like the My
	Documents folder.
	(g_get_any_init): Use CSIDL_PROFILE as HOME if not
	overridden by env vars.
	(g_get_user_data_dir): Use CSIDL_PERSONAL.
	(g_get_user_config_dir): Use CSIDL_APPDATA.
	(g_get_user_cache_dir): Use CSIDL_INTERNET_CACHE. Debatable...
	(g_get_system_data_dirs): Use CSIDL_COMMON_APPDATA and
	CSIDL_COMMON_DOCUMENTS.
	(g_get_system_config_dirs): Use CSIDL_COMMON_APPDATA.

	* configure.in: Add -lole32 to G_LIBS_EXTRA for mingw.

	* glib/glib.def: Add the new functions.
2004-08-25 00:39:13 +00:00
Matthias Clasen
ea92e29add Don't call g_get_home_dir() while holding the g_utils_global lock, simply
Mon Aug 23 01:35:18 2004  Matthias Clasen  <maclas@gmx.de>

	* glib/gutils.c (g_get_user_cache_dir):
	* glib/gutils.c (g_get_user_config_dir):
	* glib/gutils.c (g_get_user_data_dir): Don't call g_get_home_dir()
	while holding the g_utils_global lock, simply use g_home_dir.
	(#150695, Jody Goldberg)
2004-08-23 05:36:48 +00:00
Ray Strode
305e8c86d9 Add new XDG basedir API (bug 139973).
2004-08-11  Ray Strode  <rstrode@redhat.com>

	* docs/reference/glib/glib-sections.txt:
	* glib/gutils.[ch] (g_get_user_data_dir),
	(g_get_user_config_dir), (g_get_user_cache_dir),
	(g_get_system_data_dirs), (g_get_system_config_dirs):
	Add new XDG basedir API (bug 139973).
2004-08-11 17:53:05 +00:00
Hans Breuer
838a02bc3f updated
2004-08-06  Hans Breuer  <hans@breuer.org>

	* glib/makefile.msc.in glib/glib.def : updated

	* glib/gutils.c : avoid 'inconsitent dll linkage' by not
	defining extern char** environ with msvc
2004-08-06 18:22:46 +00:00
Ray Strode
cf12bdfcd1 strdup result so caller doesn't free internally managed memory.
Thu Aug  5 20:53:00 2004  Ray Strode  <rstrode@redhat.com>

	* glib/gutils.h (g_get_codeset): strdup result so caller
	doesn't free internally managed memory.
2004-08-05 20:53:25 +00:00
Matthias Clasen
a62fd5ec60 New function to check the version of GLib at runtime. (#149175, Michael
Tue Aug  3 14:58:20 2004  Matthias Clasen  <maclas@gmx.de>

	* glib/gutils.h:
	* glib/gutils.c (glib_check_version): New function to
	check the version of GLib at runtime.  (#149175, Michael Natterer)
2004-08-03 19:41:02 +00:00
Tor Lillqvist
0a397f1a22 Check home for being NULL. (#143812)
2004-06-06  Tor Lillqvist  <tml@iki.fi>

	* glib/gutils.c (g_get_any_init): Check home for being
	NULL. (#143812)
2004-06-06 17:16:58 +00:00
Tor Lillqvist
38bb555ce3 [Win32] Only believe HOME if it is an absolute path and exists. (#138618)
2004-05-15  Tor Lillqvist  <tml@iki.fi>

	* glib/gutils.c (g_get_any_init): [Win32] Only believe HOME if it
	is an absolute path and exists. (#138618)
2004-05-15 03:24:16 +00:00
Matthias Clasen
1d4458c448 Merge from 2.4:
Sat May  8 23:02:26 2004  Matthias Clasen  <maclas@gmx.de>

	Merge from 2.4:

	* glib/gutils.h: Remove vestigial g_get_codeset().
	* glib/gutils.c (g_get_codeset): Call g_get_charset().
2004-05-09 03:08:19 +00:00
Tor Lillqvist
421e7fdfad Fix Win32 behaviour in some cases where a drive letter is present. For
2004-03-21  Tor Lillqvist  <tml@iki.fi>

	* glib/gutils.c (g_path_get_dirname): Fix Win32 behaviour in some
	cases where a drive letter is present. For 'a:' or 'a:foo', return
	'a:.'. This is mostly just for consistency with the behaviour
	without a drive letter. But very important is to for 'a:\foo' or
	'a:\', return 'a:\', and not 'a:'. (Ditto for forward slashes
	instead of backslashes.) (#137316)

	* tests/dirname-test.c (main): More complete testing on
	Win32. If a test fails, include expected and actual result in
	error message.
2004-03-21 21:43:13 +00:00
Matthias Clasen
d73f478058 Sigh, protect against pw->pw_gecos being "" as well. (#132317, Kaj-Michael
Fri Jan 23 22:49:52 2004  Matthias Clasen  <maclas@gmx.de>

	* glib/gutils.c (g_get_any_init): Sigh, protect against
	pw->pw_gecos being "" as well.  (#132317, Kaj-Michael Lang)
2004-01-23 21:49:21 +00:00
Matthias Clasen
6726db0afb Protect against pw->pw_gecos being NULL.
Thu Jan 22 20:50:55 2004  Matthias Clasen  <maclas@gmx.de>

	* glib/gutils.c (g_get_any_init): Protect against
	pw->pw_gecos being NULL.
2004-01-22 19:48:33 +00:00
Matthias Clasen
1107a9f41a Don't treat the Win32 user name like a gecos field, and when extracting a
Thu Jan 22 00:41:34 2004  Matthias Clasen  <maclas@gmx.de>

	* glib/gutils.c (g_get_any_init): Don't treat the Win32
	user name like a gecos field, and when extracting a real
	name from a gecos field, replace '&' by the capitalized
	user name (a traditional passwd feature).
	(#118973, reported by Soeren Boll Overgaard)
2004-01-21 23:41:46 +00:00
Tor Lillqvist
5d097b8591 Force shared library (DLL) only on Windows. (I don't think that is
2003-10-24  Tor Lillqvist  <tml@iki.fi>

	* configure.in: Force shared library (DLL) only on Windows.
	(I don't think that is controversial?) Remove unnecessary
	AC_LIBTOOL_WIN32_DLL. Don't use -D_REENTRANT on
	Win32, it is not used by mingw or MSVC headers.

	* config.h.win32.in
	* glibconfig.h.win32.in: Match what configure produces.

	* glib/gconvert.c
	* glib/gutils.c: Mark a couple of functions and variables that
	aren't public as static.

	* glib/gnulib/g-gnulib.h: Undef HAVE_SNPRINTF before (re)defining
	it potentially differently, to silence compiler.

	* glib/glib.def: Add some missing entries.

	* tests/gobject/Makefile.am (LDADD): Reorder, put libgobject after
	libtestgobject.

	* tests/gobject/ifaceproperties.c (main): NULL-terminate arg list
	to g_object_set() and _get().
2003-10-24 03:41:22 +00:00
Tor Lillqvist
55d624d80c Fix #117925 (Dov Grobgeld):
2003-08-16  Tor Lillqvist  <tml@iki.fi>

	Fix #117925 (Dov Grobgeld):

	* glib/gutils.c (g_find_program_in_path, g_basename,
	g_path_get_basename, g_path_is_absolute, g_path_skip_root,
	g_path_get_dirname, g_get_any_init): On Win32, look also for
	slashes ('/') as pathname separators.

	* glib/gfileutils.c (g_file_open_tmp): Ditto. If the template
	contains a pathname separator, include the actual one in the error
	message, instead of always the canonical one.

	(g_build_filename): Separate implementation on Win32 that looks
	for either slash or backslash. Document Unix/Windows differences.

	* tests/testglib.c
	* tests/strfunc-test.c: Test above functionality on Win32.
2003-08-16 19:45:25 +00:00
Tor Lillqvist
6489e6a5d5 Don't use a cache of variable name to value mappings on Win32, as that
2003-08-10  Tor Lillqvist  <tml@iki.fi>

	* glib/gutils.c (g_getenv): Don't use a cache of variable name to
	value mappings on Win32, as that breaks g_setenv() and
	g_unsetenv(). Only call ExpandEnvironmentStrings() if necessary,
	and in that case return a quarkified string. It is still
	questionable how necessary expanding embedded environment variable
	references is. Possibly the whole Win32-specific g_getenv()
	implementation could be removed. (#119520)
2003-08-10 08:04:10 +00:00
Tor Lillqvist
63d5300574 Fix syntax error in the !HAVE_SETENV case.
2003-08-08  Tor Lillqvist  <tml@iki.fi>

	* glib/gutils.c (g_setenv): Fix syntax error in the !HAVE_SETENV
	case.
2003-08-08 20:38:15 +00:00
Matthias Clasen
96838a7a88 Add tests for '=' in names and values.
2003-08-07  Matthias Clasen  <maclas@gmx.de>

	* tests/env-test.c: Add tests for '=' in names and values.

	* glib/gutils.c (g_setenv, g_unsetenv): Check that the variable name doesn't contain '='. Add a
	declaration for environ.  (#119338)
2003-08-07 21:51:38 +00:00
Matthias Clasen
b3814b0cdc Small doc additions. 2003-07-30 19:00:36 +00:00