107 Commits

Author SHA1 Message Date
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
04077ff5c5 More include cleanups 2010-09-03 23:03:14 -04:00
Matthias Clasen
b52cdaf2f0 Improve g_file_set_contents docs
Mention that the temporary filename is longer than the passed-in
filename, so people can avoid passing a name that is already
NAME_MAX long.
2010-08-26 00:00:56 -04:00
Ryan Lortie
2e53e50244 glib/: fully remove galias hacks 2010-07-07 19:34:35 -04:00
Christian Persch
b3156508c4 Add TB and PB cases to g_format_size_for_display 2009-11-26 10:20:12 +01:00
Carlo Bramini
b64ee1f020 Make g_file_test() behave on Windows more like as on POSIX
Patch from bug #572252.
2009-11-03 14:30:16 +02:00
Matthias Clasen
53fc10d269 Fix a lot of clang complaints
Mostly dead assignments.
2009-09-18 19:20:06 -04:00
Matthias Clasen
05c2aeaf33 Add a Since: tag 2009-09-04 20:41:25 -04:00
Benjamin Otte
24bec5c5bd Bug 594034 - Add g_mkstemp_full()
This function exposes more variables than g_mkstemp() and therefor
allows more flexibility when creating temporary files.
The intended use is gio's code for g_file_replace() (see next patch)
2009-09-04 22:45:07 +02:00
Alexander Larsson
d20a188b12 Only fsync if the existing file is > 0 bytes
This means we don't sync in the case where we created an (empty)
temp file and now replace it with the data.

This fixes (among other things) the performance of trashing files.
2009-08-11 20:26:12 +02:00
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