82 Commits

Author SHA1 Message Date
Matthias Clasen
03766a1a38 Don't use G_DISABLE_DEPRECATED guards around deprecated functions
I'm leaving the old-style deprecation guards in place around
deprecated macros, enumeration values, etc, for now.
2011-11-03 00:04:15 -04:00
Matthias Clasen
269acbe703 Deprecate g_atexit
This function was just not a good idea to begin with.
Its documentation gives plenty of reason not to use it.
2011-10-19 21:03:43 -04:00
Matthias Clasen
67bf0083db Reshuffle some functions between gutils and gfileutils
Move filename-related functions to gfileutils, and move
size formatting functions to gutils.
2011-10-17 01:30:31 -04:00
Matthias Clasen
6c1d768f7b Also clean up includes 2011-10-16 18:43:22 -04:00
Matthias Clasen
e7b4319d61 Move version APIs out of gutils
Just another cleanup.
2011-10-16 17:01:26 -04:00
Matthias Clasen
45f221c32f Move GTrashStack out of gutils.[hc]
Reducing the mess in gutils, and moving docs inline
at the same time. Double win.
2011-10-16 16:52:24 -04:00
Matthias Clasen
7a9987d35d Move environment-related functions into their own files
gutils.[hc] is a bit of a grab bag, so lets start cleaning
things up by moving all the environment-related functions
into separate genviron.[hc] files.

The private _g_getenv_nomalloc has been moved to its sole caller.
2011-10-15 16:13:08 -04:00
Dan Winship
409d93148f gutils: Add functions for working with environment arrays
When spawning a child process, it is not safe to call setenv() before
the fork() (because setenv() isn't thread-safe), but it's also not
safe to call it after the fork() (because it's not async-signal-safe).
So the only safe way to alter the environment for a child process from
a threaded program is to pass a fully-formed envp array to
exec*/g_spawn*/etc.

So, add g_environ_getenv(), g_environ_setenv(), and
g_environ_unsetenv(), which act like their namesakes, but work on
arbitrary arrays rather than working directly on the environment.

http://bugzilla.gnome.org/show_bug.cgi?id=659326
2011-10-15 15:54:45 -04:00
Matthias Clasen
7455dd370e Make single includes mandatory
This has been the official line since 2.17, which seems plenty
long enough for a transition phase.
2011-10-12 00:25:38 -04:00
Chun-wei Fan
08d6e1147d Use GLIB_DEPRECATED instead of G_GNUC_DEPRECATED in our headers
This will let others opt out of seeing GLib deprecation warnings
by defining GLIB_DISABLE_DEPRECATION_WARNINGS.

https://bugzilla.gnome.org/show_bug.cgi?id=661438
2011-10-11 13:42:59 -04:00
Matthias Clasen
f9b29ca034 Add G_GNUC_DEPRECATED to deprecated APIs in glib 2011-10-08 23:16:01 -04:00
Ryan Lortie
4f36eb0f6d Reword some docs comments to avoid 'Returns ...'
If gtk-doc sees 'Returns ...' written in the text of the documentation
for a macro, it thinks that you are talking about the return value.

Avoid doing that and use 'Returns:' explicitly if we mean to.
2011-07-22 15:47:24 +02:00
Matthias Clasen
adc325fac0 Move version docs inline 2011-07-17 23:50:31 -04:00
Ryan Lortie
8073759f8c Remove all uses of G_CONST_RETURN
Just use 'const'.

https://bugzilla.gnome.org/show_bug.cgi?id=644611
2011-06-09 11:15:40 -04:00
Matthias Clasen
7648415a50 Move gutils docs inline 2011-06-08 23:44:39 -04:00
Matthias Clasen
594bf7460a Fix parameter documentation for many functions
Use the opt-out mechanism introduced in gtk-doc 1.16 to work
around problems with the _utf8 renaming games that the win32
port is playing in our headers.

https://bugzilla.gnome.org/show_bug.cgi?id=638449
2011-06-04 14:43:52 -04:00
Emmanuele Bassi
08f0a31289 Revert "Remove all uses of G_CONST_RETURN"
This reverts commit 36741245cca56e979fe85e3de676fb3912058f2c.

The removal has not been discussed, except on Bugzilla:

https://bugzilla.gnome.org/show_bug.cgi?id=644611
2011-03-15 09:03:28 +00:00
Ryan Lortie
36741245cc Remove all uses of G_CONST_RETURN
Just use 'const'.
2011-03-15 01:32:22 -04:00
Christian Persch
3d824065b8 Add g_get_locale_variants()
Make _g_compute_locale_variants() public as g_get_locale_variants().

Bug #635998.
2011-01-05 22:57:20 +01:00
Ryan Lortie
ba9fccf71e g_get_user_runtime_dir(): New function
Get the value of the XDG_RUNTIME_DIR environment variable.
2010-11-06 17:35:10 -04:00
Ryan Lortie
29ce7385bb Add g_get_environ(): portable access to 'environ'
Return a copy of 'environ' on platforms where that is possible, or do
something else on other platforms.
2010-10-28 22:20:56 -04:00
Hannes Müller
a1b015f7b7 avoid warning in gutils.h when using gcc with -Wconversion
https://bugzilla.gnome.org/show_bug.cgi?id=619026
2010-08-05 23:18:45 +02:00
Haakon Sporsheim
e8ccfd1bb2 Avoid compilation warning from MSVC
Signed-off-by: Tor Lillqvist <tml@iki.fi>
2010-01-05 11:32:59 +02:00
Tor Lillqvist
6e86c9a6aa Avoid gcc warning about redeclaration of atexit() on MinGW 2009-11-10 01:40:01 +02:00
Tor Lillqvist
1b298d6a1b Avoid gcc warning on Windows
Avoid "function declaration isn't a prototype" warnings from gcc 4.4
in the Windows-specific code.
2009-08-14 23:04:55 +03:00
Alexander Larsson
91bdccff75 Add g_reload_user_special_dirs_cache (#541276)
This is useful for nautilus that changes the xdg-user-dirs files.
2009-06-15 13:18:22 +02:00
Tor Lillqvist
739a81e08a Bug 570501 - g_win32_get_system_data_dirs uses invalid conversion of
2009-02-23  Tor Lillqvist  <tml@novell.com>

	Bug 570501 - g_win32_get_system_data_dirs uses invalid conversion
	of function pointer to object pointer

	* glib/gutils.c (g_win32_get_system_data_dirs_for_module): Change
	the type of the function's parameter to be explicitly a function
	pointer.

	* glib/gutils.h (_g_win32_get_system_data_dirs): Modify
	declaration and the only caller, the inline
	_g_win32_get_system_data_dirs(), accordingly. Add comments
	pointing out these are internal GLib functions.


svn path=/trunk/; revision=7899
2009-02-23 09:52:48 +00:00
Behdad Esfahbod
6d0e4aa2cf Bug 562638 – GDebugKey key member should be const
2008-11-28  Behdad Esfahbod  <behdad@gnome.org>

        Bug 562638 – GDebugKey key member should be const

        * glib/gutils.h: Change GDebugKey key member from gchar * to
        const gchar *.


svn path=/trunk/; revision=7709
2008-11-29 01:21:11 +00:00
Tor Lillqvist
e55fca9533 glib/gutils.h Deprecate G_WIN32_DLLMAIN_FOR_DLL_NAME(),
2008-09-13  Tor Lillqvist  <tml@novell.com>

	* glib/gutils.h
	* glib/gwin32.h: Deprecate G_WIN32_DLLMAIN_FOR_DLL_NAME(),
	g_win32_get_package_installation_directory() and
	g_win32_get_package_installation_subdirectory() as their
	documentation has warned for a while. Sorry that I forgot to do
	this before 2.18.0.

	* glib/gwin32.c (g_win32_get_package_installation_directory):
	Print a warning if a non-NULL package parameter is passed to this
	function, as that is deprecated usage, as the documentation says.


svn path=/trunk/; revision=7480
2008-09-13 20:23:17 +00:00
Michael Natterer
e0aa9d8a61 #define __GLIB_H_INSIDE__ around including everything.
2008-05-05  Michael Natterer  <mitch@imendio.com>

	* glib/glib.h: #define __GLIB_H_INSIDE__ around including
	everything.

	* glib/*.h: check for that define instead of __G_LIB_H__ if
	G_DISABLE_SINGLE_INCLUDES is defined.

	* glib/gdatasetprivate.h: #include <glib.h> instead of
	<glib/gdataset.h>


svn path=/trunk/; revision=6875
2008-05-05 15:02:15 +00:00
10:39:17 Tim Janik
e4b7751f44 reapply inlining fix from r6333 to fix: Bug 522292 - Gives warnings in
2008-03-31 10:39:17  Tim Janik  <timj@imendio.com>

        * glib/gutils.h: reapply inlining fix from r6333 to fix:
        Bug 522292 - Gives warnings in glib/gutils.h with GCC in C99 mode
        and again:
        Bug 315437 - extern inline -> static inline



svn path=/trunk/; revision=6789
2008-03-31 08:52:23 +00:00
Sebastian Dröge
16484fd175 Bug 522292 - Gives warnings in glib/gutils.h with GCC in C99 mode
* glib/gutils.h: Use "__attribute__ ((__gnu_inline__))" for inlining
if either __GNUC_STDC_INLINE__ or __GNUC_GNU_INLINE__ are defined. In
gcc version prior to 4.3 no correct C99-inline was implemented which
has semantic differences to GNU inline.

svn path=/trunk/; revision=6733
2008-03-18 20:06:04 +00:00
Michael Natterer
f4bb21aa1d make it possible to disable single-file includes by defining
2008-03-14  Michael Natterer  <mitch@imendio.com>

	* glib/*.h: make it possible to disable single-file includes by
	defining G_DISABLE_SINGLE_INCLUDES when building against GLib.
	Approved by Tim Janik.

	* glib/glib.h: include <glib/gslice.h>.

	* glib/gi18n.h
	* glib/gi18n-lib.h
	* glib/gprintf.h: include <glib.h> so the above works when these
	files are included without including <glib.h> first.


svn path=/trunk/; revision=6713
2008-03-14 19:30:38 +00:00
Matthias Clasen
f3a2e2143f Add a version of G_INLINE_FUNC for __GNUC__ && __GNUC_STDC_INLINE__, patch
2008-03-03  Matthias Clasen  <mclasen@redhat.com>

        * glib/gutils.h: Add a version of G_INLINE_FUNC for
        __GNUC__ && __GNUC_STDC_INLINE__, patch by Jakub Jelinek


svn path=/trunk/; revision=6616
2008-03-03 14:42:32 +00:00
Tor Lillqvist
811b86fa56 Mention G_WIN32_DLLMAIN_FOR_DLL_NAME() will be deprecated in the future.
2008-02-24  Tor Lillqvist  <tml@novell.com>

	* glib/gutils.h: Mention G_WIN32_DLLMAIN_FOR_DLL_NAME() will be
	deprecated in the future.

	* glib/gutils.c: Drop use of G_WIN32_DLLMAIN_FOR_DLL_NAME(). Use a
	minimal DllMain() instead that just saves the DLL handle.
	(g_win32_get_system_data_dirs_for_module, _glib_get_locale_dir)
	(get_module_share_dir): Use
	g_win32_get_package_installation_directory_of_module().


svn path=/trunk/; revision=6570
2008-02-24 01:07:41 +00:00
16:51:23 Tim Janik
d83d3a382c don't define __GNUC_PREREQ which is not in the glib namespace. for gcc,
2008-01-18 16:51:23  Tim Janik  <timj@imendio.com>

        * glib/gutils.h: don't define __GNUC_PREREQ which is not in the glib
        namespace. for gcc, define G_INLINE_FUNC to "static inline" as with
        all other C compilers, because newer GCC versions incompatibly
        changed "extern inline" semantics.



svn path=/trunk/; revision=6333
2008-01-18 15:51:49 +00:00
Matthias Clasen
3f15a98f8d Cope with gcc 4.3 changed 'extern inline' semantics. (#315437, patch by
2008-01-06  Matthias Clasen  <mclasen@redhat.com>

        * glib/gutils.h: Cope with gcc 4.3 changed 'extern inline'
        semantics.  (#315437, patch by Loïc Minier)



svn path=/trunk/; revision=6254
2008-01-07 03:08:37 +00:00
Matthias Clasen
97850735fa Fix doc formatting
svn path=/trunk/; revision=5769
2007-09-16 18:32:51 +00:00
Matthias Clasen
d154485bc7 Add support for a number of special directories, as defined by the
2007-06-04  Matthias Clasen  <mclasen@redhat.com>

        Add support for a number of special directories, as
        defined by the xdg-user-dirs specification.  (#432651,
        Bastien Nocera, Emmanuele Bassi, Michael Natterer)

        * glib/glib.symbols:
        * glib/gutils.[hc]: Add the GUserDirectory enum and
        g_get_user_special_dir(), with implementations based
        on the xdg-user-dirs spec and on native interfaces
        for Win32 and Carbon.

        * configure.in: Add Carbon checks.

        * tests/tetsglib.c: Test g_get_user_special_dir().


svn path=/trunk/; revision=5528
2007-06-04 14:54:49 +00:00
Behdad Esfahbod
6b6fd9bac8 Use a more optimized g_bit_storage() when gcc is available. (#371670,
2007-01-09  Behdad Esfahbod  <behdad@gnome.org>

        * glib/gutils.h: Use a more optimized g_bit_storage() when gcc is
        available.  (#371670, Daniel Elstner)


svn path=/trunk/; revision=5234
2007-01-09 19:05:36 +00:00
Behdad Esfahbod
048efdfbd5 Fix bug in g_bit_nth_lsf (#371631) and use __builtin_clzl for
2007-01-03  Behdad Esfahbod  <behdad@gnome.org>

        * glib/gutils.h: Fix bug in g_bit_nth_lsf (#371631) and use 
        __builtin_clzl for g_bit_storage if available (#371670).

        * tests/Makefile.am:
        * tests/bit-test.c: New test, to test g_bit_* operations against
        naive and builtin implementations.


svn path=/trunk/; revision=5200
2007-01-03 20:08:53 +00:00
Tor Lillqvist
a45be29beb Use only the wide character API here, too.
2006-12-28  Tor Lillqvist  <tml@novell.com>

	* glib/gutils.h (G_WIN32_DLLMAIN_FOR_DLL_NAME): Use only the wide
	character API here, too.
2006-12-28 15:41:28 +00:00
Matthias Clasen
ed9c3c2696 Fix some typos. (#351741, Kjartan Maraas)
2006-08-26  Matthias Clasen  <mclasen@redhat.com>

	* glib/gutils.h:
	* glib/gscanner.c: Fix some typos.  (#351741, Kjartan Maraas)
2006-08-26 04:03:37 +00:00
Tim Janik
75db578288 initialize GSlice config from G_SLICE environemtn variable. we support
Mon Jan 23 16:46:20 2006  Tim Janik  <timj@imendio.com>

        * glib/gslice.c (slice_config_init): initialize GSlice config from
        G_SLICE environemtn variable. we support G_SLICE=always-malloc
        currently, which forces all g_slice_*() allocations to use the system
        malloc instead.

        * glib/gutils.c:
        g_parse_debug_string(): added a note about not using g_malloc() here.
        _g_getenv_nomalloc(): getenv() variant that doesn't use g_malloc or
        g_slice. contains only guesswork in the WIN32 branch.
2006-01-23 15:51:06 +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
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
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
2def3c144f Minor comment improvement.
2005-04-19  Tor Lillqvist  <tml@novell.com>

	* glib/gutils.h: Minor comment improvement.

2005-04-18  Tor Lillqvist  <tml@novell.com>

	* glib/gfileutils.c: No <sys/wait.h> on Win32. Definition of
	save_errno was missing in one place.
2005-04-19 08:08:36 +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
153215759c Use wide char API if available, and store dll name in UTF-8.
2005-04-08  Tor Lillqvist  <tml@novell.com>

	* glib/gutils.h (G_WIN32_DLLMAIN_FOR_DLL_NAME): Use wide char API
	if available, and store dll name in UTF-8.
2005-04-07 23:46:38 +00:00