252 Commits

Author SHA1 Message Date
Matthias Clasen
02978fff17 Update NEWS 2010-11-29 01:16:02 -05: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
Tor Lillqvist
0940828418 Clarify docs for g_path_is_absolute() semantics on Windows 2010-11-04 22:18:42 +02: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
Tor Lillqvist
9d80c36141 Use CSIDL_LOCAL_APPDATA on Windows
Make g_get_user_data_dir() return the CSIDL_LOCAL_APPDATA folder on
Windows, and not CSIDL_PERSONAL. On Windows 7, that corresponds to the
subfolders AppData\Local vs. Documents under the profile ("home")
folder. This matches what Qt does, for instance, and has been widely
requested.

Also make g_get_user_config_dir() return this and not the (roaming)
CSIDL_APPDATA folder. The reason for this change is that it would be
surprising and hard to justify if g_get_user_data_dir() returned the
local application data folder while g_get_user_config_dir() would
return the roaming one. Nothing in the function names or the XDG specs
suggests that any roaming vs. local dichotomy would be involved.

Document the new semantics and the fact that these two functions now
return the same directory on Windows.

Note that in reality, code that really truly wants to support Windows
as well as possible probably will not use these GLib functions anyway,
but Win32 APIs directly to be sure what it is doing...

Should hopefully satisfy complaints in bug #620710 and related bugs.
2010-10-18 14:43:21 +03:00
Tor Lillqvist
548ddd5fe9 Fix build on Windows and possibly other non-Linux platforms
Include glibconfig.h in files that test G_OS_WIN32. Include headers
for GLib APIs used conditionally where needed.
2010-09-06 15:57:32 +03:00
Matthias Clasen
f13d561211 More header inclusion cleanup 2010-09-05 00:23:03 -04:00
Tor Lillqvist
6ddef375c8 Recuce DLL hijack risk on Windows
Don't call LoadLibrary() on shell32.dll or kernel32.dll. kernel32.dll
is always loaded. Shell32.dll is also already loaded as glib links to
functions in it. So just call GetModuleHandle() on them.

For mlang.dll in win_iconv.c and winhttp.dll in gwinhttpvfs.c, always
try loading them from a complete path, from the Windows system
directory.

Use the "tool help" API to enumerate modules in gmodule-win32.c. It is
present in all Windows versions since Windows 2000, which is all we
support anyway. Thus no need to look that API up dynamically. Just
link to it normally. We can bin the fallback code that attempts to use
the psapi API.
2010-09-02 22:36:47 +03:00
Matthias Clasen
8803182f4a Guarantee that g_get_tmp_dir () doesn't return an empty string
If it does, g_file_open_tmp() would be in trouble. Pointed
out by Morten Welinder in bug 627969.
2010-08-25 20:04:45 -04:00
Ryan Lortie
2e53e50244 glib/: fully remove galias hacks 2010-07-07 19:34:35 -04:00
Tor Lillqvist
507c266c3b Plug memory leak on Windows
Intern the string returned from g_win32_getlocale() and then free it.
Fixes bug #621168.
2010-06-10 11:54:35 +03:00
Javier Jardón
a131beda54 [docs] Improve the g_get_system_config_dirs() docs.
The retrieved list of directories is XDG_CONFIG_DIRS,
Also mention the retrieved directory on Windows: CSIDL_COMMON_APPDATA
2010-06-06 05:26:38 +02:00
Javier Jardón
e08c7b86c4 [docs] Improve the g_get_system_data_dirs() docs.
The retrieved list of directories is XDG_DATA_DIRS
2010-06-06 05:15:22 +02:00
Javier Jardón
07777db60d [docs] Improve the g_get_user_cache_dir() docs
The retrieved directory is XDG_CACHE_HOME on UNIX platforms.
Also mention the retrieved directory on Windows: CSIDL_INTERNET_CACHE.
2010-06-06 05:05:15 +02:00
Javier Jardón
e40b5ae3ef [docs] Improve the g_get_user_data_dir() docs
The retrieved directory is XDG_DATA_HOME on UNIX platforms.
Also mention the retrieved directory on Windows: CSIDL_PERSONAL.
2010-06-06 04:57:46 +02:00
Javier Jardón
b2718ee71a [docs] Improve the g_get_user_config_dir() docs a bit
The retrieved directory is XDG_CONFIG_HOME on UNIX platforms.
Also mention the retrieved directory on Windows: CSIDL_APPDATA.
2010-06-05 18:40:07 +02:00
Matthias Clasen
7db8b92b97 Revert the g_set_prgname change
This change breaks our API and causes warnings from essentially all applications.
See bug 563627.
2009-12-21 09:16:32 -05:00
Sven Herzberg
3dab24828e make sure g_set_prgname() gets called only once
* glib/gutils.c: copy the call-once statement from g_set_application_name();
  Fixes Bug #563627: g_get_prgname() threadsafety
2009-10-23 16:23:46 +02: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
David Zeuthen
49dfb50afc Bug 580453 – Hash and equal functions for gint64 and gdouble 2009-04-27 13:27:44 -04: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
5d5526c1a3 Bug 562639 – g_parse_debug_flags() parsing "help"
2008-11-28  Behdad Esfahbod  <behdad@gnome.org>

        Bug 562639 – g_parse_debug_flags() parsing "help"

        * glib/gutils.c (g_parse_debug_string): Print available keys if
        string is "help".


svn path=/trunk/; revision=7710
2008-11-29 01:40:38 +00:00
Matthias Clasen
6417df2a91 Bug 559110 – Do not include libintl.h after glibintl.h
2008-11-28  Matthias Clasen  <mclasen@redhat.com>

        Bug 559110 – Do not include libintl.h after glibintl.h

        * glib/glibintl.h: Define bind_textdomain_codeset in the DISABLE_NLS
        branch. Patch by Peter Kjellerstedt.

        * glib/gutil.c: Don't include libintl.h directly.


svn path=/trunk/; revision=7688
2008-11-28 06:24:51 +00:00
Tor Lillqvist
bc8e1dd8c1 glib/gutils.c (_glib_get_dll_directory) Be a bit less restrictive, look
2008-09-19  Tor Lillqvist  <tml@novell.com>

	* glib/gutils.c (_glib_get_dll_directory)
	* glib/gspawn-win32.c (do_spawn_with_pipes): Be a bit less
	restrictive, look for the helper programs in the same folder where
	the GLib DLL is, not necessarily in a "bin" subfolder of the top
	GLib installation folder.


svn path=/trunk/; revision=7511
2008-09-19 10:20:41 +00:00
Matthias Clasen
11cc2e2aeb Fix up docs
svn path=/trunk/; revision=7424
2008-09-02 16:48:40 +00:00
Tor Lillqvist
80ecc30841 glib/glib.symbols glib/gconvert.c glib/gdir.c glib/gfileutils.c
2008-07-27  Tor Lillqvist  <tml@novell.com>

	* glib/glib.symbols
	* glib/gconvert.c
	* glib/gdir.c
	* glib/gfileutils.c
	* glib/giowin32.c
	* glib/gspawn-win32.c
	* glib/gutils.c
	* glib/gwin32.c: Bypass the Windows "ABI compatibility" symbols on
	_WIN64. As there hasn't been any widely deployed 64-bit Windows
	builds of the really old GLib (pre-2.8.1) versions those refer to,
	there is no need to have the "ABI compatibility" versions in the
	DLL.

	* glib/makegalias.pl: Handle #ifndef _WIN64: Just output it, too.


svn path=/trunk/; revision=7257
2008-07-27 17:15:16 +00:00
Behdad Esfahbod
e0916c3f54 Bug 503071 – Application direction changes to right to left even if
2008-06-11  Behdad Esfahbod  <behdad@gnome.org>

        Bug 503071 – Application direction changes to right to left even if
        theres no translation

        * glib/gi18n-lib.h:
        * glib/glib.symbols:
        * glib/gstrfuncs.h:
        * glib/gstrfuncs.c:
        Add new functions g_dgettext() and g_dngettext().

        * glib/gutils.c (glib_gettext):
        * glib/gfileutils.c (g_format_size_for_display):
        * glib/goption.c (dgettext_swapped):
        Use the new functions.


svn path=/trunk/; revision=7020
2008-06-11 23:37:49 +00:00
Matthias Clasen
12fe21210e Improve the docs
svn path=/trunk/; revision=7003
2008-06-11 16:17:56 +00:00
14:31:18 Tim Janik
8fb03be5a9 Bug 503071 - Application direction changes to right to left even if theres
2008-05-20 14:31:18  Tim Janik  <timj@imendio.com>

        * reverted recent unapproved changes by Yair Hershkovitz, regarding:
        Bug 503071 - Application direction changes to right to left even if theres no translation.



svn path=/trunk/; revision=6919
2008-05-20 13:03:15 +00:00
Tor Lillqvist
e9f4abe46c Bug 530457 - G_USER_DIRECTORY_DOWNLOAD folder improperly mapped
2008-05-12  Tor Lillqvist  <tml@novell.com>

	Bug 530457 - G_USER_DIRECTORY_DOWNLOAD folder improperly mapped

	* glib/gutils.c (load_user_special_dirs): When running on Vista or
	later, use SHGetKnownFolderPath() to get the FOLDERID_Downloads
	folder for G_USER_DIRECTORY_DOWNLOAD, and FOLDERID_Public for
	G_USER_DIRECTORY_PUBLIC_SHARE.


svn path=/trunk/; revision=6883
2008-05-12 06:58:50 +00:00
Yair Hershkovitz
7ab77ec9cd Bug 503071 - Application direction changes to right to left even if theres
2008-05-11  Yair Hershkovitz  <yairhr@gmail.com>

        Bug 503071 - Application direction changes to right to left even if
        theres no translation. 

        * glib/gi18n.c: g_i18n_init() for initializing the glib i18n,
        checking if a translation is available for the calling app. wrappers for
        gettext, dgettext and dpgettext to check first if the application
        should be translated.

        * glib/gi18n.h: symbol declaration for gettext wrappers.

        * glib/gi18n-lib.h: include gi18n.h instead of libintl.h.

        * glib/gstrfuncs.c: moved g_dpgettext() to glib/gi18n.c.

        * glib/gutils.c: use g_dgettext() instead of dgettext().

        * glib/glibintl.h: include gi18n.h.

        * glib.symbols: added gettext wrappers.

        * glib/Makefile.am: added gi18n.c.


svn path=/trunk/; revision=6882
2008-05-11 09:34:29 +00:00
Tor Lillqvist
285b31e7a5 Don't enforce shared library build only on Windows. It might well make
2008-04-03  Tor Lillqvist  <tml@novell.com>

	* configure.in: Don't enforce shared library build only on
	Windows. It might well make sense to build static libraries in
	some use cases.

	* glib/gutils.c: Don't compile the DllMain if building libglib
	statically. Also in that case don't return NULL from
	_glib_get_installation_directory(), but return the installation
	directory of the program's .exe file.


svn path=/trunk/; revision=6818
2008-04-03 20:17:15 +00:00
Matthias Clasen
f0c679e3bf Simple fixes to help building GLib on embedded systems without NLS.
2008-03-30  Matthias Clasen  <mclasen@redhat.com>

        * glib/glibintl.h:
        * glib/gstrfuncs.c:
        * glib/gutils.c: Simple fixes to help building GLib on
        embedded systems without NLS.  (#524350, Peter Kjellerstedt)

svn path=/trunk/; revision=6779
2008-03-31 03:52:57 +00:00
Tor Lillqvist
17640e78d3 New internal function.
2008-02-24  Tor Lillqvist  <tml@novell.com>

	* glib/gutils.c (_glib_get_installation_directory): New internal function.

	* glib/gspawn-win32.c: When spawning the helper process, use an
	explicit full path. (#518292)

	* glib/gspawn-win32.c
	* glib/gspawn-win32-helper.c: Fix race condition when using the
	helper process: When the helper process writes the handle of the
	actual started user process to the parent process, it must be
	duplicated in the parent process with DuplicateHandle() so that it
	is a valid handle in that process. However, if the helper process
	has happened to exit before the DuplicateHandle() call, the
	duplication will fail. Thus we must synchronise the helper
	process's exit. Use another pipe for this.

	Take care not to inherit the writing end of this pipe to the
	helper process. Also, in the helper process, take care not to
	inherit either of the pipes used for communication with the parent
	process to the started user process.


svn path=/trunk/; revision=6575
2008-02-24 21:15:47 +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
Hans Breuer
521e741d56 define CSIDL_MYPICTURES if not available use G_STRFUNC instead of compiler
2008-02-17  Hans Breuer  <hans@breuer.org>

	* glib/gutils.c : define CSIDL_MYPICTURES if not available
	* gthread/gthread-win32.c : use G_STRFUNC instead of compiler 
	specific __FUNCTION__


svn path=/trunk/; revision=6526
2008-02-17 12:49:12 +00:00
Wouter Bolsterlee
ca25b31ee3 Fixed gtk-doc warnings by updating the documentation of various functions.
2008-01-30  Wouter Bolsterlee  <wbolster@svn.gnome.org>

	* glib/gchecksum.c:
	* glib/gtestutils.c:
	* glib/gutils.c:

	Fixed gtk-doc warnings by updating the documentation of
	various functions.

svn path=/trunk/; revision=6429
2008-01-30 20:52:13 +00:00
Mathias Hasselmann
f87b822b21 Allow NULL strings in g_parse_debug_string. (#503862, Matthew Barnes)
* glib/gutils.c:
Allow NULL strings in g_parse_debug_string. (#503862, Matthew Barnes)

svn path=/trunk/; revision=6137
2007-12-16 15:04:51 +00:00
Matthias Clasen
01f1f9ce56 Fix up some doc comments, avoid C99 comments
2007-11-28  Matthias Clasen  <mclasen@redhat.com>

        * glib/gtestutils.c: Fix up some doc comments, avoid C99 comments

        * glib/gconvert.c: De-doc-commentify static functions to
        shut up gtk-doc.

        * glib/gutils.c: Fix the glib_gettext doc comment.


svn path=/trunk/; revision=5982
2007-11-28 18:53:22 +00:00
Alexander Larsson
6ae887bb9b Add in the new symbols
2007-11-28  Alexander Larsson  <alexl@redhat.com>

        * glib/glib.symbols:
	Add in the new symbols
	
        * glib/gurifuncs.c:
	Use the aliases framework
	
        * glib/glibintl.h:
        * glib/gutils.c:
	Make the alias stuff work now that glib_gettext
	is exported to libgio. 


svn path=/trunk/; revision=5973
2007-11-28 14:35:14 +00:00
Tor Lillqvist
007d3ad28a Use either lib/locale or share/locale depending on which one is in
2007-11-27  Tor Lillqvist  <tml@novell.com>

	* glib/gutils.c (_glib_get_locale_dir) [Win32]: Use either
	lib/locale or share/locale depending on which one is in
	GLIB_LOCALE_DIR. When the configury recognizes GNU gettext (based
	on the _nl_msg_cat_cntr variable, eek), share/locale gets used.

	* glib-zip.in: Likewise, look for message catalogs either in
	lib/locale or share/locale.


svn path=/trunk/; revision=5944
2007-11-26 22:32:12 +00:00
Alexander Larsson
8bdbcb9213 gio/ docs/reference/gio Merged gio-standalone into glib.
2007-11-26  Alexander Larsson  <alexl@redhat.com>

        * Makefile.am:
        * configure.in:
        * gio-2.0-uninstalled.pc.in:
        * gio-2.0.pc.in: 
        * gio-unix-2.0-uninstalled.pc.in:
        * gio-unix-2.0.pc.in:
	* gio/
	* docs/reference/gio
	Merged gio-standalone into glib.
	
        * glib/glibintl.h:
        * glib/gutils.c:
	Export glib_gettext so that gio can use it
	Add P_ (using same domain for now)
	Add I_ as g_intern_static_string


svn path=/trunk/; revision=5940
2007-11-26 16:12:50 +00:00
Matthias Clasen
d2f111fca7 Require gtk-doc 1.8.
2007-11-25  Matthias Clasen  <mclasen@redhat.com>

        * configure.in: Require gtk-doc 1.8.

        * glib/gasyncqueue.c:
        * glib/gdate.c:
        * glib/gfileutils.c:
        * glib/gmain.c:
        * glib/gmarkup.c:
        * glib/gregex.c:
        * glib/gtestutils.c:
        * glib/gutils.c: Use gtk-doc abbreviations for
        examples in doc comments.


svn path=/trunk/; revision=5933
2007-11-25 06:05:06 +00:00
Matthias Clasen
dbfdac8d22 Fix the doc wording. (#491957, Areg Beketovski)
2007-11-08  Matthias Clasen <mclasen@redhat.com>

        * glib/gmain.c (g_main_context_release): Fix the doc
        wording.  (#491957, Areg Beketovski)



svn path=/trunk/; revision=5836
2007-11-09 03:01:01 +00:00
Tor Lillqvist
43c16432fc Plug small one-time leak on Windows. (#488068, Daniel Atallah)
2007-10-22  Tor Lillqvist  <tml@novell.com>

	* glib/gutils.c (_glib_gettext): Plug small one-time leak on
	Windows. (#488068, Daniel Atallah)


svn path=/trunk/; revision=5795
2007-10-22 20:13:55 +00:00
Tor Lillqvist
75f974d1d9 Drop leftover use of a union.
2007-08-01  Tor Lillqvist  <tml@novell.com>

	* glib/gutils.c (get_special_folder): Drop leftover use of a
	union.


svn path=/trunk/; revision=5661
2007-08-01 09:49:02 +00:00
Matthias Clasen
c03ddad312 More docs
svn path=/trunk/; revision=5580
2007-06-18 19:12:10 +00:00
Matthias Clasen
7a6d2233e4 Prevent segfaults on long paths. (#447935, Robby Griffin)
2007-06-17  Matthias Clasen  <mclasen@redhat.com>

        * glib/gutils (g_get_current_dir): Prevent segfaults on
        long paths.  (#447935, Robby Griffin)


svn path=/trunk/; revision=5574
2007-06-18 16:35:41 +00:00
Emmanuele Bassi
72024709cc Remove the cache expiration logic: it makes g_get_user_special_dir() not
2007-06-11  Emmanuele Bassi  <ebassi@gnome.org>

	* glib/gutils.c (maybe_expire_user_special_dirs),
	(g_get_user_special_dir): Remove the cache expiration logic: it
	makes g_get_user_special_dir() not thread-safe. Document the fact
	that on some platform the value might be changed by the user and
	that GLib won't be able to reflect the change.

svn path=/trunk/; revision=5550
2007-06-11 15:31:29 +00:00
Matthias Clasen
fc0295e4cd Fix a thinko
svn path=/trunk/; revision=5545
2007-06-06 19:15:00 +00:00