377 Commits

Author SHA1 Message Date
Ross Burton
fada30c956 Small doc updates 2005-08-03 20:24:18 +00:00
Matthias Clasen
35425ca9d6 Ignore anomalous environment entries which are not of the form
2005-07-10  Matthias Clasen  <mclasen@redhat.com>

	* glib/gutils.c (g_listenv): Ignore anomalous environment
	entries which are not of the form variable=value.  (#309859,
	Morten Welinder)
2005-07-10 04:44:27 +00:00
Matthias Clasen
b78a0792a4 Apply a patch which may make GLib work on BeOS again. (#309157, Kian
2005-06-30  Matthias Clasen  <mclasen@redhat.com>

	Apply a patch which may make GLib work on BeOS again.
	(#309157, Kian Duffy)

	* glib/gmain.c: Update the BeOS includes.

	* glib/gstdio.c:
	* glib/gutils.c (g_find_program_in_path):
	* glib/gbacktrace.c (g_on_error_stack_trace): Use the UNIX
	implementation on BeOS, as well.

	* configure.in: Don't put glib 1.0 into G_MODULE_LIBS, even
	on BeOS.
2005-06-30 19:43:48 +00:00
Tor Lillqvist
adb066fa11 Add Since: 2.8 to g_get_host_name(). 2005-06-22 09:02:41 +00:00
Tor Lillqvist
477989f555 New function. Returns the machine's name, or one of its names. Document
2005-06-22  Tor Lillqvist  <tml@novell.com>

	* glib/gutils.c (g_get_host_name): New function. Returns the
	machine's name, or one of its names. Document that it is
	best-effort only, and not guaranteed to be unique or anything.
	(g_get_any_init): Get the host name here. On Unix use
	gethostname(), on Windows use GetComputerName(). (#5200)

	* glib/gutils.h
	* glib/glib.symbols: Add here, too.

	* tests/testglib.c: Test it.
2005-06-22 08:54:28 +00:00
Tor Lillqvist
b8d34f6609 New helper function on Win32, returns the root of the drive (or possibly
2005-06-08  Tor Lillqvist  <tml@novell.com>

	* glib/gutils.c (get_windows_directory_root): New helper function
	on Win32, returns the root of the drive (or possibly share) where
	the Windows directory is. (In the case of Terminal Server sessions
	the Windows directory is a per-user folder.)
	(g_get_any_init): Use get_windows_directory_root() as last resort
	for both temp directory and home directory. g_get_home_dir() now
	never returns NULL on Win32. Don't look at HOMEDRIVE and
	HOMEPATH. HOME, USERPROFILE, CSIDL_PROFILE and Windows directory
	drive root should be enough.
2005-06-08 20:03:12 +00:00
Matthias Clasen
6bdf0d9a44 Fix some typos 2005-05-01 21:40:46 +00:00
Tor Lillqvist
dc11b4370f Don't call g_set_error() unless the GError pointer is non-NULL. This
2005-04-27  Tor Lillqvist  <tml@novell.com>

	* glib/gconvert.c (open_converter, g_convert_with_iconv): Don't
	call g_set_error() unless the GError pointer is non-NULL. This
	avoids infinite recursion problems in certain rare situations on
	Windows, when g_locale_from_utf8() is called from
	_glib_get_locale_dir() after the change below. It's the
	_glib_gettext() calls to translate error messages that are
	parameters to g_set_error() that cause the recursion, not
	g_set_error() itself.

	* glib/gwin32.c (g_win32_locale_filename_from_utf8): New
	function. Converts a filename to the system codepage, and if a
	straight conversion isn't possible (because the filename contains
	characters not in the system codepage), try looking up the
	filename (which should refer to an existing file for this to
	succeed) with short (8.3) pathname components.

	* glib/gutils.c (_glib_get_locale_dir): No need to cache the
	result, this function is normally called only once. Return the
	path to the locale directory in system codepage, not UTF-8. The
	path is passed to bindtextdomain(), which doesn't use UTF-8 file
	names. Use g_win32_locale_filename_from_utf8(). (#301772)

	Don't do run-time lookup of message catalog directory on
	Cygwin. Cygwin is supposed to look and feel like Unix, and on Unix
	we use paths fixed at configure time.
2005-04-27 09:50:09 +00:00
Tor Lillqvist
853114e68b Include <process.h> on Win32 for getpid(). (#173094)
2005-04-09  Tor Lillqvist  <tml@novell.com>

	* glib/gutils.c: Include <process.h> on Win32 for getpid(). (#173094)
2005-04-09 01:21:29 +00:00
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