147 Commits

Author SHA1 Message Date
Alexander Larsson
6cff88ba18 Bug 575555 – Use fsync() when replacing files to avoid data loss on
2009-03-16  Alexander Larsson  <alexl@redhat.com>

	Bug 575555 – Use fsync() when replacing files to avoid data loss on crash

        * configure.in:
	Look for fsync().

        * glib/gfileutils.c:
        (write_to_temp_file):
	fsync temp file if destination file exists

2009-03-16  Alexander Larsson  <alexl@redhat.com>

	Bug 575555 – Use fsync() when replacing files to avoid data loss on crash

        * glocalfileoutputstream.c:
        (g_local_file_output_stream_close):
        (_g_local_file_output_stream_replace):
	fsync temp file before closing if replacing target file

	

svn path=/trunk/; revision=7991
2009-03-16 16:03:13 +00:00
Matthias Clasen
8ad668c7f0 Improve docs
svn path=/trunk/; revision=7896
2009-02-23 04:23:14 +00:00
Tor Lillqvist
48e6a374bc Bug 566348 - g_file_open_tmp uses the wrong g_mkstemp on win32
2009-01-05  Tor Lillqvist  <tml@iki.fi>

	Bug 566348 - g_file_open_tmp uses the wrong g_mkstemp on win32

	* glib/gfileutils.c: Move the binary compatibility versions of
	g_file_test(), g_file_get_contents(), g_mkstemp() and
	g_file_open_tmp() last in the file. Remove the restriction that
	the XXXXXX is last in the template in the binary compatibility
	version of g_mkstemp(). Thanks to Morten Welinder and Jody
	Goldberg.


svn path=/trunk/; revision=7770
2009-01-05 10:08:00 +00:00
Matthias Clasen
0f6b25ca96 Fix some compiler warnings
svn path=/trunk/; revision=7755
2008-12-31 05:51:47 +00:00
Christophe Fergeau
6a19b99a9d Bug 555224 – Improve g_format_size_for_display doc
* glib/gfileutils.c: change g_format_size_for_display API doc to
explicitly say that the returned string has to be freed. Change
spelling of "newly allocated" to "newly-allocated" in g_file_read_link
API doc to be more consistent with what is done in that file.

svn path=/trunk/; revision=7572
2008-10-06 18:50:39 +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
Matthias Clasen
6c2c99aa0e Detect overflow and error out. Reported by Morten Welinder.
* glib/gfileutils.c (get_contents_stdio): Detect overflow and
        error out. Reported by Morten Welinder.


svn path=/trunk/; revision=7194
2008-07-16 21:42:48 +00:00
Christian Persch
9c17697b56 Use g_set_error_literal where appropriate. Patch from bug #535947.
svn path=/trunk/; revision=7051
2008-06-16 16:53:58 +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
a41fa14e4b small doc improvement
svn path=/trunk/; revision=6924
2008-05-24 18:32:09 +00:00
Murray Cumming
d4b9875df1 Fixed some minor typos in the documentation.
2008-01-18  Murray Cumming  <murrayc@murrayc.com>

* glib/gfileutils.c:
* glib/gsequence.c:
* glib/gstring.c: Fixed some minor typos in the documentation.

svn path=/trunk/; revision=6332
2008-01-18 09:41:46 +00:00
Alexander Larsson
de9c37dd91 Rename g_format_file_size_for_display to g_format_size_for_display.
2007-12-19  Alexander Larsson  <alexl@redhat.com>

        * glib/gfileutils.[ch]:
        * glib/glib.symbols:
        Rename g_format_file_size_for_display to g_format_size_for_display.



svn path=/trunk/; revision=6158
2007-12-19 13:25:09 +00:00
Hans Breuer
b877c83cdc removed -GD to compile with msvc9 (vs2008) with less complains
2007-12-09  Hans Breuer  <hans@breuer.org>

	* **/makefile.msc glib/makefile.msc.in : removed -GD to compile
	with msvc9 (vs2008) with less complains
	
	* glibconfig.h.win32.in : #define G_HAVE_ISO_VARARGS 1 for
	msv8 (vs2005) and above
	
	* glib/gfileutils.c : s/stricmp/_stricmp/
	* msvc_recommended_pragmas.h : work around Microsoft's premature 
	attempt to deprecate the C-Library

	* tests/makefile.msc.in : added checksum-test


svn path=/trunk/; revision=6076
2007-12-09 14:38:26 +00:00
Alexander Larsson
68c74ba68f Move g_format_file_size_for_display from gio to glib
2007-11-27  Alexander Larsson  <alexl@redhat.com>

        * gio/gfileinfo.[ch]:
        * glib/gfileutils.[ch]:
        Move g_format_file_size_for_display from gio to glib


svn path=/trunk/; revision=5954
2007-11-27 14:30:31 +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
Ryan Lortie
702549ddc1 save errno to prevent it being clobbered by call to
2007-07-09  Ryan Lortie  <desrt@desrt.ca>

        * glib/gfileutils.c (write_to_temp_file): save errno to prevent it
        being clobbered by call to g_filename_display_name().  Bug #453796.


svn path=/trunk/; revision=5608
2007-07-09 05:32:15 +00:00
Matthias Clasen
98d552e0cd Consistently use gsize rather than size_t. (#333310, Morten Welinder)
2006-12-27  Matthias Clasen  <mclasen@redhat.com>

        * glib/gconvert.[hc]:
        * glib/gfileutils.c:
        * glib/giochannel.c:
        * glib/goption.c:
        * glib/gspawn.c:
        * glib/gunicollate.c:
        * glib/gutils.c:
        * tests/timeloop-basic.c:
        Consistently use gsize rather than size_t.  (#333310,
        Morten Welinder)
2006-12-28 04:48:06 +00:00
Tor Lillqvist
da422c0060 Remove support for Windows 9x/ME, as will be done also in Pango and GTK+.
2006-08-29  Tor Lillqvist  <tml@novell.com>

	Remove support for Windows 9x/ME, as will be done also in Pango
	and GTK+. GTK+ hasn't worked on Win9x since 2.6 or 2.8 anyway, so
	it's pretty pointless to keep the Win9x code in here either. If
	somebody is interested, the code can always be found in older GLib
	versions, and in CVS.

	* glib/gdir.c
	* glib/gfileutils.c
	* glib/gspawn-win32-helper.c
	* glib/gspawn-win32.c
	* glib/gstdio.c
	* glib/gutils.c
	* glib/gwin32.c
	* glib/gwin32.h: Remove the G_WIN32_IS_NT_BASED() and
	G_WIN32_HAVE_WIDECHAR_API() tests and their false (Win9x)
	branches, and any variables or static functions used only by the
	Win9x branches.

	* glib/gwin32.c (g_win32_windows_version_init): Call g_error() if
	run on Win9x.
2006-08-29 22:45:00 +00:00
Matthias Clasen
6cc8a27894 Add tests.
2006-06-16  Matthias Clasen  <mclasen@redhat.com>

	* tests/file-test.c (test_mkstemp): Add tests.

	* glib/gfileutils.c (g_mkstemp): Allow the XXXXXX to occur
	inside the template, not just at the end.
2006-06-16 15:12:32 +00:00
Matthias Clasen
b58fb2bdb5 Move short_month_names and long_month_names to bss.
2006-04-04  Matthias Clasen  <mclasen@redhat.com>

        * glib/gdate.c: Move short_month_names and long_month_names
        to bss.

        * glib/gspawn-win32.c (g_spawn_error_quark):
        * glib/gspawn.c (g_spawn_error_quark):
        * glib/gshell.c (g_shell_error_quark):
        * glib/gmarkup.c (g_markup_error_quark):
        * glib/goption.c (g_option_error_quark):
        * glib/gkeyfile.c (g_key_file_error_quark):
        * glib/giochannel.c (g_io_channel_error_quark):
        * glib/gfileutils.c (g_file_error_quark):
        * glib/gconvert.c (g_convert_error_quark):
        * glib/gbookmarkfile.c (g_bookmark_file_error_quark):
        * glib/gthread.c (g_thread_error_quark): No point in making
        the error path fast by caching quarks.

        * glib/gbookmarkfile.c: Make the parser struct const.
2006-04-04 04:37:39 +00:00
Matthias Clasen
1fe373b279 Don't fork a new process just to fix the permissions of the created temp
2005-12-03  Matthias Clasen  <mclasen@redhat.com>

	* glib/gfileutils.c: Don't fork a new process just to
	fix the permissions of the created temp file.  (#321318,
	Alexis S. L. Carvalho)
2005-12-03 06:10:52 +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
b36f775177 Fix a typo. (#310243, Richard Laager)
2005-07-13  Matthias Clasen  <mclasen@redhat.com>

	* glib/gfileutils.c (g_mkdir_with_parents): Fix a
	typo.  (#310243, Richard Laager)
2005-07-13 18:59:46 +00:00
Tor Lillqvist
80d0d5690f glib/Makefile.am gmodule/Makefile.am Current GNU tools do understand the
2005-06-24  Tor Lillqvist  <tml@novell.com>

	* glib/Makefile.am
	* gmodule/Makefile.am
	* gobject/Makefile.am: Current GNU tools do understand the
	PRIVATE keyword.

	* glib/gfileutils.c (g_mkdir_with_parents): Return error with
	EINVAL also for empty pathnames.
	(g_build_pathname_va): Fix typo.
2005-06-24 13:26:45 +00:00
Manish Singh
20c16cd277 g_build_filename_va is only use in the G_OS_WIN32 case, so compile it
Thu Jun 23 15:52:08 2005  Manish Singh  <yosh@gimp.org>

        * glib/gfileutils.c: g_build_filename_va is only use in the G_OS_WIN32
        case, so compile it conditionally.
2005-06-23 22:52:49 +00:00
Matthias Clasen
a6312099c7 Add some language-binding friendly variants 2005-06-23 05:50:53 +00:00
Tor Lillqvist
b8c119f901 glib/gfileutils.c glib/gfileutils.h glib/glib.symbols Rename g_makepath()
2005-06-22  Tor Lillqvist  <tml@novell.com>

	* glib/gfileutils.c
	* glib/gfileutils.h
	* glib/glib.symbols
	* tests/testglib.c: Rename g_makepath() to g_mkdir_with_parents().
2005-06-22 18:55:33 +00:00
Tor Lillqvist
1833a93ddd New function. Creates a directory including intermediate parent
2005-06-22  Tor Lillqvist  <tml@novell.com>

	* glib/gfileutils.c (g_makepath): New function. Creates a
	directory including intermediate parent directories as
	needed. (#60509)

	* glib/gfileutils.h: Declare it.

	* glib/glib.symbols: Add it.

	* tests/testglib.c: Test it.
2005-06-22 09:43:37 +00:00
Owen Taylor
2ae1a46b4c Add g_object_add/remove_toggle_ref() functions to get notification when a
2005-05-05  Owen Taylor  <otaylor@redhat.com>

        * gobject.[ch] gobject.symbols: Add
        g_object_add/remove_toggle_ref() functions to get notification
        when a reference count is the last remaining reference; this
        enables better memory management for language bindings.
        (http://mail.gnome.org/archives/gtk-devel-list/2005-April/msg00095.html)

2005-05-05  Owen Taylor  <otaylor@redhat.com>

        * glib/gdataset.[ch] glib/gdatasetprivate.h: Add
        g_datalist_set/unset_flags(), g_datalist_get_flags() functions
        to squeeze some bits into a GDataSet... this is needed for
        efficient implementation of toggle references in GObject.

        * tests/gobject/references.c tests/gobject/Makefile.am:
        Add a test case for weak and toggle references.

        * glib/gfileutils.[ch]: Rename g_file_replace() back
        to g_file_set_contents().

        * glib/glib.symbols: Update.

2005-05-05  Owen Taylor  <otaylor@redhat.com>

        * glib/Makefile.am glib/glib-sections.txt gobject/gobject-sections.txt:
        Update

        * gobject/tmpl/objects.sgml: Document toggle-references.
2005-05-05 14:57:29 +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
Soeren Sandmann
da536e7e42 Save the errno in various places
Sat Apr 16 20:15:44 2005  Soeren Sandmann  <sandmann@redhat.com>

	* glib/gfileutils.c (g_file_replace): Save the errno in various
	places

	* glib/gfileutils.c (set_umask_permissions): Fork a child and do
	chmod() to the umask() permissions there.
2005-04-17 00:16:51 +00:00
Matthias Clasen
4fe1315d5e Avoid memory leaks in borderline cases. (#172612, Morten Welinder)
2005-04-05  Matthias Clasen  <mclasen@redhat.com>

	* glib/gfileutils.c (get_contents_stdio): Avoid memory
	leaks in borderline cases.  (#172612, Morten Welinder)
2005-04-05 04:09:49 +00:00
Sven Neumann
ec2d35edc3 handle the unlikely case that no bytes are read from the file and allocate
2005-03-30  Sven Neumann  <sven@gimp.org>

	* glib/gfileutils.c (get_contents_stdio): handle the unlikely case
	that no bytes are read from the file and allocate an empty string.
2005-03-30 21:59:40 +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
Soeren Sandmann
858107437b Don't try and generate a dotfile from the name -- it doesn't work with
Fri Mar 11 23:51:12 2005  Soeren Sandmann  <sandmann@redhat.com>

	* glib/gfileutils.c (write_to_temp_file): Don't try and generate
	a dotfile from the name -- it doesn't work with absolute
	paths. Also make documentation indicate that symlinks will be
	overwritten. Both pointed out by Alexis S. L. Carvalho.
2005-03-12 05:45:32 +00:00
Sven Neumann
aec8923fa6 delay memory allocation until after the first read. Saves a bunch of
2005-03-10  Sven Neumann  <sven@gimp.org>

	* glib/gfileutils.c (get_contents_stdio): delay memory allocation
	until after the first read. Saves a bunch of reallocs. Also
	increased the buffer size to 4096 bytes. (bug #165954)

	* tests/file-test.c (test_get_contents): added a (very basic) test
	for g_file_get_contents().
2005-03-10 12:56:01 +00:00
Sven Neumann
cd8a0ac41f avoid unnecessary filename conversions.
2005-03-09  Sven Neumann  <sven@gimp.org>

	* glib/gfileutils.c (g_file_replace): avoid unnecessary filename
	conversions.
2005-03-09 11:22:09 +00:00
Søren Sandmann
331548d91c New API. A function to atomically create a file.
Tue Mar  8 15:46:54 2005  Søren Sandmann  <sandmann@redhat.com>

	* glib/gfileutils.c (g_file_replace): New API. A function to
	atomically create a file.
2005-03-08 20:51:49 +00:00
Tor Lillqvist
ec66d4530e Use g_fopen(). (#168341, Daniel Atallah)
2005-02-24  Tor Lillqvist  <tml@novell.com>

	* glib/gfileutils.c (get_contents_win32): Use g_fopen(). (#168341,
	Daniel Atallah)
2005-02-24 23:46:36 +00:00
Tor Lillqvist
fc67e936f8 In the Win32 ABI stability version, call g_file_get_contents_utf8(), not
2005-02-05  Tor Lillqvist  <tml@novell.com>

	* glib/gfileutils.c (g_file_get_contents): In the Win32 ABI
	stability version, call g_file_get_contents_utf8(), not
	itself. (#166386)
2005-02-05 22:09:11 +00:00
Tor Lillqvist
031ebdd193 Don't use potentially incorrect errno in several places. (#165951)
2005-02-02  Tor Lillqvist  <tml@novell.com>

	* glib/gfileutils.c: Don't use potentially incorrect errno in
	several places. (#165951)
	(g_mkstemp): Set errno appropriately.
2005-02-02 23:28:18 +00:00
Hans Breuer
c21df964da make it compile with mvc6 default sdk, (#define INVALID_FILE_ATTRIBUTES,
2005-01-09  Hans Breuer  <hans@breuer.org>

	* glib/gfileutils.c : make it compile with mvc6 default sdk,
	(#define INVALID_FILE_ATTRIBUTES, FILE_ATTRIBUTE_DEVICE)
2005-01-09 21:43:40 +00:00
Tor Lillqvist
f45d2ee724 Include <io.h> on Windows for prototypes. (#163390, Kazuki Iwamoto)
2005-01-09  Tor Lillqvist  <tlillqvist@novell.com>

	* glib/gfileutils.c: Include <io.h> on Windows for
	prototypes. (#163390, Kazuki Iwamoto)
2005-01-09 01:18:32 +00:00
Matthias Clasen
30425906b5 Clarify the documentation. (#162251, Mariano Suárez-Alvarez)
2005-01-03  Matthias Clasen  <mclasen@redhat.com>

	* glib/gfileutils.c (g_file_get_contents): Clarify the
	documentation.  (#162251, Mariano Suárez-Alvarez)
2005-01-03 18:56:20 +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
7e6be89c62 Rewrite the Win32 version to use GetFileAttributes() instead of stat().
2004-12-31  Tor Lillqvist  <tml@iki.fi>

	* glib/gfileutils.c (g_file_test): Rewrite the Win32 version to
	use GetFileAttributes() instead of stat(). stat() is unreliable
	for corner cases like '\\server\share' or '.\'. Part of fixing
	#161797. When testing for executability, in addition to the fixed
	set of executable file name extensions also check the PATHEXT
	environment variable.
2004-12-31 01:15:15 +00:00
Matthias Clasen
647aba60aa Typo fix. 2004-12-30 05:18:56 +00:00
Tor Lillqvist
912ba0d43c Document that the result is guaranteed to be non-NULL.
2004-11-04  Tor Lillqvist  <tml@iki.fi>

	* glib/gconvert.c (g_filename_display_name): Document that the
	result is guaranteed to be non-NULL.

	* glib/gfileutils.c (get_contents_stdio, get_contents_regfile,
	get_contents_posix, get_contents_win32, g_file_open_tmp,
	g_file_read_link): Use g_filename_display_name() for error
	messages.
	(g_mkstemp): Document that the template should be in the GLib file
	name encoding.
	(g_file_open_tmp): Ditto. Also document that the actual name
	returned is also in the GLib file name encoding.
2004-11-04 00:37:47 +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
Manish Singh
5c38cfa58d rm autom4te.cache, since it might interfere with differing autoconf
Mon Oct 25 15:05:18 2004  Manish Singh  <yosh@gimp.org>

        * autogen.sh: rm autom4te.cache, since it might interfere with
        differing autoconf versions.

        * tests/child-test.c: use GINT_TO_POINTER for g_child_watch_add
        user data.

        * glib/gfileutils.c: G_IS_DIR_SEPARATOR is defined in gutils.h now,
        don't redefine it here.
2004-10-25 22:08:37 +00:00