Commit Graph

73 Commits

Author SHA1 Message Date
Alexander Larsson
14d58d51a3 Local file implementation of GFileIOStream and ops
This implements all the GIOStream file ops for local files.
We use the "fallback to output stream" for all GFileIOStream ops.
Some helpers stuff was added to the local input and output streams
so they could be reused.
2009-05-13 14:42:57 +02:00
Matthias Clasen
25ff8ee748 Don't lie about ext4 filesystems
When returning a filesystem type id, say "ext3/ext4" instead of "ext3",
since both use the same superblock magic, so we can't discriminate
them without more work.
2009-04-03 00:23:54 -04:00
Alexander Larsson
1ce74b0dd3 On trash, if rename fails with EXDEV, return G_IO_ERROR_NOT_SUPPORTED
Sometimes it seems like the trash dir and the file are on the same
filesystem but the rename fails with EXDEV anyway (can happen
e.g. with bind mounts or multiple mounts of the same device). In this
case we want to return the right error so that apps can fallback to
regular delete.
2009-04-02 19:01:56 +02:00
Alexander Larsson
70a276eca3 Bug 573843 – g_get_current_dir returns non-absolute path
2009-03-04  Alexander Larsson  <alexl@redhat.com>

	Bug 573843 – g_get_current_dir returns non-absolute path

	* glocalfile.c (canonicalize_filename):
	Handle the case where g_get_current_dir() returns a non-absolute path.


svn path=/trunk/; revision=7958
2009-03-04 13:47:53 +00:00
Alexander Larsson
0b9f24c1e1 Handle filesystems no supporting reporting how much is free. This fixes
2009-03-03  Alexander Larsson  <alexl@redhat.com>

	* glocalfile.c (g_local_file_query_filesystem_info):
	Handle filesystems no supporting reporting how much is free.
	This fixes bug 573454 where the filesystem not supporting this
	is the gvfs smb backend over the fuse filesystem.



svn path=/trunk/; revision=7951
2009-03-03 14:40:44 +00:00
Alexander Larsson
319d60e444 Remove accidentally commited spew
2009-02-23  Alexander Larsson  <alexl@redhat.com>

	* glocalfile.c:
	Remove accidentally commited spew



svn path=/trunk/; revision=7903
2009-02-23 15:12:39 +00:00
Matthias Clasen
f548330275 Fix "it's" vs "its" confusion throughout the source. Patch by Will
* Fix "it's" vs "its" confusion throughout the source. Patch
        by Will Thompson.


svn path=/trunk/; revision=7897
2009-02-23 04:30:06 +00:00
Alexander Larsson
39b3b41484 Bug 515777 - incorrect date&time on copy
2008-12-09  Alexander Larsson  <alexl@redhat.com>

	Bug 515777 - incorrect date&time on copy
	
        * glocalfile.c:
        (g_local_file_class_init):
	Copy mtime by default
	
        * gfile.c:
	Change docs about G_FILE_COPY_ALL_METADATA to not mention
	mtime as an example.



svn path=/trunk/; revision=7738
2008-12-09 11:15:36 +00:00
Matthias Clasen
d4d876846e Bug 548163 – Nautilus displays wrong error message for too long file
names

        * glocalfile.c (g_local_file_set_display_name): Correctly set
        error conditions if the new name is e.g. too long. Reported
        by Leonardo Ferreira Fontenelle.


svn path=/trunk/; revision=7696
2008-11-28 08:05:49 +00:00
Cosimo Cecchi
d20bf1076b Bug 561375 – Leaks mountpoint description
2008-11-21  Cosimo Cecchi  <cosimoc@gnome.org>

	Bug 561375 – Leaks mountpoint description

	* glocalfile.c: (get_mount_info): don't leak the mountpoint description
	string.

svn path=/trunk/; revision=7662
2008-11-21 00:01:22 +00:00
Grahame Bowland
df719f749c Bug 558185 – 'parent' variable in
2008-10-31  Grahame Bowland  <grahame@angrygoats.net>

	Bug 558185 – 'parent' variable in g_local_file_get_child_for_display_name() 
	hits g_object_unref(NULL) assertion

	* gio/glocalfile.c: 
	- remove unused variable. Patch by Matt Johnston <matt@ucc.asn.au>

svn path=/trunk/; revision=7636
2008-10-31 02:23:55 +00:00
Federico Mena Quintero
7b46b2a43b Fix leak inside g_local_file_get_parse_name()
Signed-off-by: Federico Mena Quintero <federico@novell.com>

svn path=/trunk/; revision=7629
2008-10-27 20:42:32 +00:00
Tor Lillqvist
801da1dfc1 Avoid a g_critical(). Pass a large enough result buffer to
2008-09-30  Tor Lillqvist  <tml@novell.com>

	* glocalfile.c (get_volume_for_path) [Win32]: Avoid a
	g_critical(). Pass a large enough result buffer to
	GetVolumePathNameW(). Just use MAX_PATH.


svn path=/trunk/; revision=7561
2008-09-30 10:47:06 +00:00
Loïc Minier
83e4fb4f9b Bug 535124 – umask 002 not being applied for new directories, new files
2008-08-08  Loïc Minier  <lool@dooz.org>

	Bug 535124 – umask 002 not being applied for new directories, new
	files get the correct umask

	* glocalfile.c: (g_local_file_make_directory): Use 0777 instead of
	0755 as umask

svn path=/trunk/; revision=7323
2008-08-08 09:26:51 +00:00
Matthias Clasen
563eb12748 Use a configure check for structfs.f_bavail.
* glocalfile.c: Use a configure check for structfs.f_bavail.


svn path=/trunk/; revision=7144
2008-07-02 16:49:04 +00:00
Cody Russell
3d93bf6968 Moved all relevant typedefs into these files.
2008-07-01  Cody Russell  <bratsche@gnome.org>

        * gio/gioenums.h:
        * gio/giotypes.h:
	Moved all relevant typedefs into these	files.

        * gio/*.[ch]:
	Updated wrt added files.

        Split types into separate file	for easier maintainership. (#538564)


svn path=/trunk/; revision=7127
2008-07-01 06:32:35 +00:00
Johan Dahlin
761424465a Include "config.h" instead of <config.h> Command used: find -name
2008-06-21  Johan Dahlin  <jdahlin@async.com.br>

    * *.[ch]: Include "config.h" instead of <config.h>
    Command used:
    find -name \*.[ch]|xargs perl -p -i -e 's/^#include <config.h>/#include "config.h"/g'
    Rubberstamped by Mitch


svn path=/trunk/; revision=7092
2008-06-22 15:10:51 +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
Tor Lillqvist
cc8adfaeb8 Bug 538362 - Get Win32 icons back in the file chooser
2008-06-16  Tor Lillqvist  <tml@novell.com>

	Bug 538362 - Get Win32 icons back in the file chooser

	* gcontenttype.c (g_content_type_get_icon): Look up the icon
	corresponding to a file extension in the Registry. Patch by Hans
	Breuer.
	(get_registry_classes_key): Handle also REG_EXPAND_SZ type values.
	
2008-06-16  Tor Lillqvist  <tml@novell.com>

	Patches by Hans Breuer:

	* glocalfile.c (is_xp_or_later): Handle compiling against older
	SDK headers with missing VerifyVersionInfo().  Conditioned on
	_MSC_VER, but should probably use some better test.
	* glocalfile.c (g_local_file_query_filesystem_info): Don't test
	uninitialised statfs_result variable on Win32.



svn path=/trunk/; revision=7049
2008-06-16 13:23:14 +00:00
Michael Natterer
a4427bfff5 chain up unconditionally in finalize() and dispose(). Also don't
2008-06-16  Michael Natterer  <mitch@imendio.com>

	* *.c: chain up unconditionally in finalize() and dispose(). Also
	don't dereference these function pointers when calling them since
	that has no meaning at all.


svn path=/trunk/; revision=7048
2008-06-16 09:54:04 +00:00
Ross Burton
3480685d4e Bug 536252 – GFileEnumerator should allow access to the containing GFile
2008-06-16  Ross Burton  <ross@burtonini.com>

	Bug 536252 – GFileEnumerator should allow access to the containing
	GFile
	
	* gio/gfileenumerator.c:
	* gio/gfileenumerator.h:
	* gio/gfile.h:
	Add g_file_enumerator_get_container() and a container writeable
	construct-only property.  Also shuffle around typedefs to make it
	compile.
	
	* gio/glocalfileenumerator.c:
	* gio/glocalfileenumerator.h:
	* gio/glocalfile.c:
	Instead of a string filename take a GFile in the constructor and
	use it to set the container property.
	
	* gio/gio.symbols:
	* docs/reference/gio/gio-sections.txt:
	Update with new API.

svn path=/trunk/; revision=7044
2008-06-16 08:49:08 +00:00
Matthias Clasen
bb5bfd3546 revert unintended change
svn path=/trunk/; revision=6998
2008-06-11 14:25:18 +00:00
Matthias Clasen
a0c45852e1 Bug 536641 – Filesystem querying in gio does not list AFS and autofs
file systems

        * glocalfile.c (get_fs_type): Add afs and autofs.
        Patch by Danny Baumann.


svn path=/trunk/; revision=6988
2008-06-10 15:37:41 +00:00
simon.zheng
58e4b46343 Fix #533369. Check whether memeber statvfs.f_basetype available or not.
2008-05-27  simon.zheng  <simon.zheng@sun.com>

	* configure.in: Fix #533369. Check whether memeber statvfs.f_basetype 
        available or not.
	* gio/glocalfile.c: (g_local_file_query_filesystem_info):
        Fix #533369. Make G_FILE_ATTRIBUTE_FILESYSTEM_TYPE work on Solaris.


svn path=/trunk/; revision=6939
2008-05-27 07:51:13 +00:00
Ross Burton
8b6fdb362f Fix typo in error message (#534764).
2008-05-25  Ross Burton  <ross@burtonini.com>

	* glocalfile.c:
	Fix typo in error message (#534764).

svn path=/trunk/; revision=6928
2008-05-25 18:31:42 +00:00
Matthias Clasen
a30f8df3c8 fix free space information for ncpfs
svn path=/trunk/; revision=6902
2008-05-17 06:08:08 +00:00
Matthias Clasen
67b2f9a99b Bug 530196 – _g_local_file_has_trash_dir() doesn't handle st_dev == 0
* glocalfile.c (_g_local_file_has_trash_dir): Handle the case that
        st_dev might be zero.



svn path=/trunk/; revision=6901
2008-05-17 06:01:43 +00:00
Alexander Larsson
fe68fc7496 Don't leak parent.
2008-03-31  Alexander Larsson  <alexl@redhat.com>

	* glocalfile.c (get_parent):
	Don't leak parent.
	


svn path=/trunk/; revision=6801
2008-03-31 20:04:24 +00:00
Alexander Larsson
b4e4bbd594 Reuse old string instead of adding new one.
2008-03-28  Alexander Larsson  <alexl@redhat.com>

	* glocalfile.c (g_local_file_move):
	Reuse old string instead of adding new one.



svn path=/trunk/; revision=6762
2008-03-28 11:44:04 +00:00
Alexander Larsson
9dfce3a26a Return G_IO_ERROR_IS_DIRECTORY, not G_IO_ERROR_WOULD_MERGE when moving
2008-03-27  Alexander Larsson  <alexl@redhat.com>

	* glocalfile.c (g_local_file_move):
	Return G_IO_ERROR_IS_DIRECTORY, not G_IO_ERROR_WOULD_MERGE when moving
	file over directory. This is according to the docs and what the move via
	copy+remove fallback does.



svn path=/trunk/; revision=6758
2008-03-27 20:13:00 +00:00
Alexander Larsson
7437486b36 Use right define name for f_fstypename member check
2008-03-14  Alexander Larsson  <alexl@redhat.com>

        * glocalfile.c:
        (g_local_file_query_filesystem_info):
	Use right define name for f_fstypename member check

2008-03-14  Alexander Larsson  <alexl@redhat.com>

        * configure.in:
	Add required includes for f_fstypename member check.
	

svn path=/trunk/; revision=6703
2008-03-14 09:19:09 +00:00
Tor Lillqvist
5fe2e21960 Implement as empty, returning FALSE, on Win32.
2008-03-12  Tor Lillqvist  <tml@novell.com>

	* glocalfile.c (_g_local_file_has_trash_dir): Implement as empty,
	returning FALSE, on Win32.


svn path=/trunk/; revision=6689
2008-03-12 13:16:54 +00:00
Alexander Larsson
c5a10d2650 Correctly implement can_trash by actually looking for a trash dir, not
2008-03-11  Alexander Larsson  <alexl@redhat.com>

        * glocalfile.c:
        * glocalfileinfo.[ch]:
	Correctly implement can_trash by actually
	looking for a trash dir, not just assuming
	one exists.


svn path=/trunk/; revision=6679
2008-03-11 14:48:28 +00:00
Tor Lillqvist
93bd705e78 Define FILE_READ_ONLY_VOLUME if it is missing from winnt.h. (#521145)
2008-03-08  Tor Lillqvist  <tml@novell.com>

	* glocalfile.c: Define FILE_READ_ONLY_VOLUME if it is missing from
	winnt.h. (#521145)


svn path=/trunk/; revision=6643
2008-03-08 16:06:00 +00:00
Alexander Larsson
3cacbe8178 Use struct statfs.f_fstypename if availible (e.g. on OpenBSD) Patch from
2008-03-07  Alexander Larsson  <alexl@redhat.com>

        * glocalfile.c:
        (g_local_file_query_filesystem_info):
	Use struct statfs.f_fstypename if availible (e.g. on OpenBSD)
	Patch from Jasper Lievisse Adriaanse


svn path=/trunk/; revision=6638
2008-03-07 14:36:15 +00:00
Alexander Larsson
f0e54fd328 Handle filesystems (like ntfs-3g) that return EEXIST instead of ENOTEMPTY
2008-02-26  Alexander Larsson  <alexl@redhat.com>

        * glocalfile.c:
        (g_local_file_delete):
	Handle filesystems (like ntfs-3g) that return EEXIST instead
	of ENOTEMPTY (#518816)


svn path=/trunk/; revision=6598
2008-02-27 11:16:58 +00:00
Wouter Bolsterlee
8b294f1f9d Fixup translator comments (#518578).
2008-02-25  Wouter Bolsterlee  <wbolster@svn.gnome.org>

	* gfile.c (g_file_find_enclosing_mount):
	* ginputstream.c (g_input_stream_set_pending):
	* glocalfile.c (g_local_file_find_enclosing_mount):
	* gmount.c (g_mount_unmount), (g_mount_eject), (g_mount_remount):
	* goutputstream.c (g_output_stream_set_pending):

	Fixup translator comments (#518578).

svn path=/trunk/; revision=6591
2008-02-25 14:31:19 +00:00
Wouter Bolsterlee
a9a0498007 Fix a few typos in translator comments and documentation.
2008-02-25  Wouter Bolsterlee  <wbolster@svn.gnome.org>

	* gfile.c (g_file_find_enclosing_mount):
	* giomodule.c:
	* glocalfile.c (g_local_file_find_enclosing_mount):
	* goutputstream.c:

	Fix a few typos in translator comments and documentation.

svn path=/trunk/; revision=6590
2008-02-25 14:04:38 +00:00
Alexander Larsson
9edb46455c Add translator comments (#518578)
2008-02-25  Alexander Larsson  <alexl@redhat.com>

        * gfile.c:
        * ginputstream.c:
        * glocalfile.c:
        * gmount.c:
        * goutputstream.c:
	Add translator comments (#518578)


svn path=/trunk/; revision=6589
2008-02-25 13:47:00 +00:00
Alexander Larsson
493cbfa607 Make new strings reuse old ones.
2008-02-25  Alexander Larsson  <alexl@redhat.com>

        * glocalfile.c:
	Make new strings reuse old ones.


svn path=/trunk/; revision=6581
2008-02-25 09:11:09 +00:00
Alexander Larsson
1d568f35d1 Implement trashing and filesystem::readonly for win32 (#517235) Patch from
2008-02-25  Alexander Larsson  <alexl@redhat.com>

        * glocalfile.c:
	Implement trashing and filesystem::readonly for win32 (#517235)
	Patch from Yevgen Muntyan


svn path=/trunk/; revision=6578
2008-02-25 08:15:35 +00:00
Alexander Larsson
6dc9b7ee00 Add new g_file_has_prefix that does the same as g_file_contains_file.
2008-02-21  Alexander Larsson  <alexl@redhat.com>

        * gfile.[ch]:
        * gio.symbols:
	Add new g_file_has_prefix that does the same as g_file_contains_file.
	Deprecate g_file_contains_file and add a macro that converts
	it to g_file_has_prefix.
	The reason for this change is that the contains_file() name seems to
	imply that this does more work than what it does, but its really only
	a name match (from #517086)
	
        * gdummyfile.c:
        * glocalfile.c:
        * tests/g-file.c:
	Update to match the above change.


svn path=/trunk/; revision=6546
2008-02-21 09:09:59 +00:00
Alexander Larsson
3b1b6a9722 Use g_unlink/g_rename instead of unlink/rename; do not pass raw filenames
2008-02-18  Alexander Larsson  <alexl@redhat.com>

        * glocalfile.c:
        * glocalfileinfo.c:
        * glocalfileoutputstream.c:
	Use g_unlink/g_rename instead of unlink/rename;
	do not pass raw filenames to g_set_error. (#517239)
	Patch from Yevgen Muntyan.


svn path=/trunk/; revision=6533
2008-02-18 15:35:16 +00:00
Alexander Larsson
b221d1b36d Open files with O_BINARY on windows. (#517140)
2008-02-18  Alexander Larsson  <alexl@redhat.com>

        * glocalfile.c:
        * glocalfileoutputstream.c:
	Open files with O_BINARY on windows. (#517140)


svn path=/trunk/; revision=6531
2008-02-18 10:10:58 +00:00
Alexander Larsson
8a9c5b6d3c Copy permissions with file on copy (#514084) This is what cp does and
2008-02-14  Alexander Larsson  <alexl@redhat.com>

        * glocalfile.c:
	Copy permissions with file on copy (#514084)
	This is what cp does and makes sure e.g. the
	exec permissions are kept.
	Its kinda weird in that it keeps the permission bits
	the same while the uid and gid are different. However
	the new uid is the user so its not a security issue,
	and I've heard no complaints about cp on this issue.



svn path=/trunk/; revision=6514
2008-02-14 11:00:09 +00:00
Christian Persch
37ac644bd1 Save errno before calling other funcs that potentially alter it. Bug
* gio/gdesktopappinfo.c: (ensure_dir):
	* gio/glocalfile.c: (g_local_file_query_filesystem_info),
	(g_local_file_read), (g_local_file_delete), (g_local_file_trash),
	(g_local_file_move):
	* gio/glocalfileinfo.c: (set_xattr), (_g_local_file_info_get),
	(_g_local_file_info_get_from_fd), (set_unix_mode),
	(set_unix_uid_gid), (set_symlink), (set_mtime_atime):
	* gio/glocalfileinputstream.c: (g_local_file_input_stream_read),
	(g_local_file_input_stream_skip),
	(g_local_file_input_stream_close),
	(g_local_file_input_stream_seek):
	* gio/glocalfileoutputstream.c:
	(g_local_file_output_stream_write),
	(g_local_file_output_stream_close),
	(g_local_file_output_stream_seek),
	(g_local_file_output_stream_truncate), (copy_file_data),
	(handle_overwrite_open):
	* gio/gunixinputstream.c: (g_unix_input_stream_read),
	(g_unix_input_stream_close), (read_async_cb), (close_async_cb):
	* gio/gunixoutputstream.c: (g_unix_output_stream_write),
	(g_unix_output_stream_close), (write_async_cb), (close_async_cb):
	Save
	errno before calling other funcs that potentially alter it. Bug
	#514766.

svn path=/trunk/; revision=6466
2008-02-06 15:10:08 +00:00
Alexander Larsson
2185733235 Don't succeed with trash if newly created trash dir has the wrong owner.
2008-02-06  Alexander Larsson  <alexl@redhat.com>

	* glocalfile.c (g_local_file_trash):
	Don't succeed with trash if newly created
	trash dir has the wrong owner. (#514696)


svn path=/trunk/; revision=6459
2008-02-06 10:06:54 +00:00
Alexander Larsson
c6af0efb11 Don't spew warnings when destination is not a GLocalFile.
2008-02-05  Alexander Larsson  <alexl@redhat.com>

	* glocalfile.c (g_local_file_move):
	Don't spew warnings when destination is not
	a GLocalFile.


svn path=/trunk/; revision=6451
2008-02-05 10:11:12 +00:00
Matthias Clasen
c923700b3d Avoid trivial differences in translatable strings
svn path=/trunk/; revision=6386
2008-01-27 21:58:53 +00:00
Matthias Clasen
af7645a498 String fixes
svn path=/trunk/; revision=6370
2008-01-25 06:10:29 +00:00