Commit Graph

28 Commits

Author SHA1 Message Date
2bc406f65e LIB: fix file type indicators
It seems that PF.regularFileMode matches across symlinks and sockets
too, so we just examine the constructors instead.

Fixes #25
2015-12-30 02:32:48 +01:00
f2fb4e0be0 LIB: improve safety by ignoring invalid file names for file operations 2015-12-27 20:17:14 +01:00
9445574097 LIB: improve documentation on pattern synonyms 2015-12-27 20:03:38 +01:00
5d44243689 LIB: remove obsolete bifunctor stuff 2015-12-27 19:50:24 +01:00
6651fbcbce LIB: fix packModTime error 2015-12-27 19:50:09 +01:00
54af33f3a7 LIB/GTK: remove the rest of the directory package 2015-12-27 19:26:58 +01:00
aba62f03f2 GTK: implement selecting multiple rows (and operations on them)
Not all operations yet support it and will throw an InvalidOperation
error in that case.
2015-12-27 18:17:33 +01:00
5afc25d2d1 LIB: improve error handling
* close all directory streams in case of IOErrors
* raise error on invalid input types in File operations
* properly catch eXDEV in moveFile instead of all errors
2015-12-27 16:25:24 +01:00
400a0242d6 LIB/GTK: refactor ViewPatterns/PatternSynonyms 2015-12-26 22:00:08 +01:00
83816ef1a6 LIB: fix isBrokenSymlink 2015-12-26 21:59:17 +01:00
3bd201f1b6 LIB: add more useful pattern synonyms 2015-12-26 20:28:00 +01:00
0ec4aaac54 LIB/GTK: reduce usage of System.Directory (directory package) 2015-12-26 16:02:25 +01:00
c98db302ba LIB: normalize instead of canonicalizePath'
We shouldn't follow symlinks in our internal paths, because that makes
us lose information. However, we normalize where we could have passed
user input, so we don't end up with ill-formed anchors/names.
2015-12-25 15:18:05 +01:00
b9e4b96c4a Add GPL-2 license headers 2015-12-24 18:25:05 +01:00
5c8907143a LIB: add symlink helpers 2015-12-24 17:45:04 +01:00
2ca7df5696 LIB: style formatting 2015-12-24 05:53:11 +01:00
47aee871be LIB/GTK: improve our ViewPatterns/PatternSynonyms + refactor 2015-12-24 03:11:17 +01:00
5f183bef3f LIB/GTK: use new data structure with explicit SymLink constructor
This still needs a lot of work to function consistently, but it's better
than the old approach.
2015-12-23 22:50:04 +01:00
09821f8fc2 LIB: implement file moving operations 2015-12-23 16:08:39 +01:00
6b89dd8564 LIB: make pattern IsSymL more lazy 2015-12-22 19:50:24 +01:00
eba0c95f8c LIB: simplify symlink pattern matching via ViewPatterns/PatternSynonyms 2015-12-22 19:40:29 +01:00
2486d83260 LIB/GTK: use AnchoredFile in IO.File
What's the point of having it anyway if we don't?
2015-12-22 14:15:48 +01:00
433cb164a6 LIB: improve symlink handling 2015-12-21 18:32:53 +01:00
988350967a LIB: wrap canonicalizePath so it doesn't follow the last symlink component
canonicalizePath tries to remove as many symlink components as possible,
but this is not what we want for a lot of operations like copying
files. So instead we preserve the last path component if it's a symlink
and canonicalize it's parent filepath.
2015-12-21 17:15:31 +01:00
0867c8b2e3 LIB/GTK: add '.' and '..' files, remove fsState and improve safety
We use canonicalizePaths where we need well-formed paths and cannot
rely on the input being sane.
2015-12-21 05:41:12 +01:00
fe6145d5be LIB/GTK: change DirTree again
we now have:
* AnchoredFile -- for representing a file with context
* File         -- for representing a file only

Both representations mean "file" in the broader sense, including
directories.
2015-12-21 00:41:02 +01:00
3ba647d172 LIB/GTK: rewrite to use more atomic operations/data structures
This is a little bit less fancy, but avoids lazy IO. It depends a
little bit more on FilePath, but that also allows for a more general
interface.
2015-12-20 00:30:52 +01:00
d13cdac9e0 Initial commit 2015-12-17 04:42:22 +01:00