Commit Graph

252 Commits

Author SHA1 Message Date
Vadim Zeitlin
9b31387508 Merge the changes from 3.0 branch.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75178 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-11-12 18:06:37 +00:00
Vadim Zeitlin
5bd6ad08a7 Add wxFileName::SetPermissions().
This is a simple wrapper for the POSIX chmod().

Closes #12951.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74639 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-08-07 11:08:28 +00:00
Vadim Zeitlin
3f66f6a5b3 Remove all lines containing cvs/svn "$Id$" keyword.
This keyword is not expanded by Git which means it's not replaced with the
correct revision value in the releases made using git-based scripts and it's
confusing to have lines with unexpanded "$Id$" in the released files. As
expanding them with Git is not that simple (it could be done with git archive
and export-subst attribute) and there are not many benefits in having them in
the first place, just remove all these lines.

If nothing else, this will make an eventual transition to Git simpler.

Closes #14487.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-26 16:02:46 +00:00
Vadim Zeitlin
55ab731681 Fix FILETIME <-> wxDateTime conversions while DST is in effect in wxMSW.
The result was (consistently, so the tests still passed) off by an hour when
the program was ran while DST was in effect. Fix this by avoiding the use of
FileTimeToLocalFileTime() and LocalFileTimeToFileTime() and just directly
converting FILETIME values to wxDateTime. Not only this is more correct but
it's also simpler and more efficient as well.

Also add a unit test for wxFileName::SetTimes() too.

Closes #13098.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74423 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-06 18:21:10 +00:00
Vadim Zeitlin
3cca1b3d8b No real changes, just use wxString::clear() instead of assignment.
Consistently use clear() everywhere instead of assigning wxEmptyString in some
places and wxT("") in some others to a string in order to clear it.

See #15091.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73632 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-03-09 15:08:40 +00:00
Vadim Zeitlin
6aa4e3989f Return false from wxFileName::AppendDir() and InsertDir() on failure.
Give the caller a way to know whether the directory was valid or not.

Closes #15091.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73631 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-03-09 15:08:36 +00:00
Vadim Zeitlin
a246ab8b5e Attempt to fix MSVC6 compilation after the previous commit.
Include <shlobj.h> before our wx/msw/missing.h, otherwise many things were
redefined.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73345 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-01-04 22:14:47 +00:00
Vadim Zeitlin
6fdda829b4 Including wx/msw/missing.h to define INVALID_FILE_ATTRIBUTES for MSVC6.
This header is also needed in filename.cpp (see r73317 for a previous commit
fixing the same problem in filefn.cpp).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73344 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-01-04 20:13:03 +00:00
Vadim Zeitlin
58263bb4c3 Make wxFILE_EXISTS_SYMLINK work on its own, without wxFILE_EXISTS_NO_FOLLOW.
Include the wxFILE_EXISTS_NO_FOLLOW bit in wxFILE_EXISTS_SYMLINK definition to
allow using just wxFileName::Exists(wxFILE_EXISTS_SYMLINK) which used to never
work because the link was followed.

Closes #14777.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72777 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-25 22:30:43 +00:00
Vadim Zeitlin
25db2c25bc Don't follow symlinks in wxFileName::Rmdir(wxPATH_RMDIR_RECURSIVE).
Following symlinks, possibly leading outside of the directory being removed,
is at best surprising and at worst dangerous, so don't do it and just mimic
the behaviour of "rm -rf", i.e. remove everything inside this directory,
including the symlinks themselves, but don't follow them.

Closes #14649.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72742 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-23 23:58:17 +00:00
Vadim Zeitlin
988f7eec77 Revert accidental incompatible change to wxFileName::DirExists().
The non-static version tests for the existence of the directory part of the
object only as is explicitly mentioned in the documentation, so do the test on
GetPath() and not GetFullPath() as we did since r72707.

Also add a unit test for this behaviour.

Closes #14771.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72718 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-22 15:51:26 +00:00
Vadim Zeitlin
c50db84779 Allow testing for existence of specific file types in wxFileName.
Add "flags" parameter to wxFileName::Exists() to allow testing for the
existing of files of specific type: not only regular or directory but also
symlink, device, FIFO or socket.

And also to pass wxFILE_EXISTS_NO_FOLLOW flag inhibiting following the
symlinks without using DontFollowLink().

Closes #14542.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72707 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-19 22:02:15 +00:00
Vadim Zeitlin
1e9b3eff21 Fix bug in wxFileName::Exists("/").
Don't remove too many trailing slashes, the lone slash of "/" should remain.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72703 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-18 23:41:08 +00:00
Vadim Zeitlin
c063adebba Add support for symlinks to wxFileName.
Allow to work with the symlinks themselves and not the file they reference by
calling the new wxFileName::DontFollowLink().

Update Unix wxDir implementation to not treat symlinks to directories as
directories, this ensures that we don't recurse into the directories outside
of the original parent accidentally.

Closes #14542.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72680 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-15 01:09:01 +00:00
Vadim Zeitlin
9696657f22 Fix testing for existence of paths with trailing separators in wxMSW.
We removed the trailing separators, that prevented GetFileAttributes() from
working correctly, from the path but then didn't pass the modified path to it
but the original one. Fix this and do use the updated path.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72571 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-28 23:48:09 +00:00
Vadim Zeitlin
9c505a36e7 Use wxString::t_str(), not fn_str(), with Windows API functions.
fn_str() is supposed to be used with the CRT functions taking file names only,
not Windows API functions that always take LPCTSTR with all compilers/CRT
versions.

Closes #14433.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71891 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-06-30 16:33:32 +00:00
Vadim Zeitlin
37424888b8 No real changes, just fix some typos in comments.
Closes #14276.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71375 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-05-07 13:12:27 +00:00
Vadim Zeitlin
2415cf6725 Remove support for MetroWerks CodeWarrior compiler.
This compiler doesn't exist any more and was probably unsupported even in 2.8,
let alone 2.9, so remove all the __MWERKS__ tests to simplify things.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71102 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-05 18:40:11 +00:00
Vadim Zeitlin
d98a58c543 Use __WINDOWS__ for OS kind checks and reserve __WXMSW__ for GUI toolkit.
This change prepares the way for using wxGTK under Windows as this would
still define __WINDOWS__ but use __WXGTK__ instead of __WXMSW__.

Closes #14064.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70796 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-03-04 00:29:31 +00:00
Vadim Zeitlin
1b4bff8262 Add minimal support for building non-GUI parts of wxWidgets for Android.
Recognize __ANDROID__ in wx/platform.h and include the appropriate headers
from wx/android.

Also fix a couple of compilation errors (in filename.cpp) and warnings (in
event.h) which only appear when building for Android.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70703 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-26 20:24:25 +00:00
Vadim Zeitlin
4dfc0ca0c5 Suppress harmless MSVC warnings about int to bool conversions.
Convert int to bool explicitly to avoid MSVC warning C4800.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70692 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-25 23:49:53 +00:00
Vadim Zeitlin
7c9b6c9111 Compare file inodes if possible in wxFileName::SameAs().
This allows to correctly return when the two files with different names
actually refer to the same file system object.

Closes #910.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70687 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-25 23:49:35 +00:00
Vadim Zeitlin
996d3fe3f8 Added wxFileName::Exists().
This function checks for existence of anything with the given name, not
necessarily just a file or a directory.

Extend the unit test to verify that it returns true for /dev/null on Unix
systems.

Closes #953.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70600 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-15 15:39:46 +00:00
Vadim Zeitlin
901504c383 Refactor wxFileName existence checking code.
Merge FileExists() and DirExists() together in a single
wxFileSystemObjectExists() helper in preparation for adding a function
checking for the existence of any kind of file system object.

There should be no changes for MSW/Unix but OS/2 file detection was changed
slightly to always use DosQueryPathInfo() instead of using it only for the
directories and stat() for files. Not sure if this is the right thing to do
there but it seems like the code should work.

Also add a simple unit test for these functions.

See #953.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70599 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-15 15:39:41 +00:00
Vadim Zeitlin
d8b130867c Set the file name for temporary wxFFile objects.
Pass the name of the temporary file to wxFFile::Attach(). This allows to give
more useful error messages if any operation on this file fails later.

Closes #13903.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70492 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-01-31 19:38:45 +00:00
Vadim Zeitlin
bd362275b8 Remove Palm OS port.
The platform targeted by this port doesn't exist any more and the port never
achieved really working state so remove the code to avoid having to maintain
it.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70345 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-01-15 01:05:28 +00:00
Vadim Zeitlin
6235846c0c Don't duplicate INVALID_FILE_ATTRIBUTES definition.
Move it in wx/msw/missing.h header instead of defining it in two different
places.

Closes #12964.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66996 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-22 13:26:06 +00:00
Vadim Zeitlin
f822acceee Don't consider extra ".." an error in wxFileName::Normalize().
The path being normalized could have come from user and there doesn't seem to
be any point in complaining about too many ".."s in it when we can handle them
correctly instead.

So simply ignore the extra ".."s for the absolute paths and keep them
unchanged for the relative ones instead of returning an error.

See #10960.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66218 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-20 23:53:28 +00:00
Vadim Zeitlin
715e4f7e3e Fix Cygwin 1.7 build.
Avoid using Cygwin sockets as our code assumes that we use WinSock API under
Windows currently (this might change in the future) by defining
__USE_W32_SOCKETS.

Use new, safer and more efficient cygwin_conv_path() function.

Use t_str() instead of fn_str() with Windows API taking file names, under
Cygwin they are different and using fn_str() is incorrect.

A few other minor fixes.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65057 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-23 23:32:46 +00:00
Stefan Csomor
088a36424c no trailing slash for OSX_CARBON
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64640 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-06-20 14:46:44 +00:00
Vadim Zeitlin
02f35bffeb Ensure that wxFileName::GetTempDir() doesn't return trailing slashes.
Sanitize the value returned by GetTempDir() to ensure that it doesn't have any
trailing path separators. This happened at least under OS X where standard
TMPDIR has a trailing slash and was inconsistent with the behaviour under the
other platforms.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64638 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-06-20 11:46:49 +00:00
Václav Slavík
142ae7b388 Don't include wx/msw/private.h from dynlib.h.
Because it's private header and introduces dependency on window.h.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64139 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-25 12:07:37 +00:00
Vadim Zeitlin
7f19ef40eb Work around "possibly uninitialized variable" warning in wxFileName.
Initialize multiplier to its default value in GetHumanReadableSize() to avoid
a "warning: 'multiplier' may be used uninitialized in this function" from g++.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63892 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-07 12:43:29 +00:00
Francesco Montorsi
2febffbac7 fix typos introduced by error in r63870 (see #10673)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63886 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-06 22:51:11 +00:00
Vadim Zeitlin
b2edb8f3c5 Add support for IEC and SI size units to wxFileName::GetHumanReadableSize().
Allow choosing the multiplier to use (1000 or 1024) and the names of the units
(SI or IEC). By default, still use traditional convention, i.e. multiplier of
1024 but SI unit names. This will probably need to be changed to use IEC units
in the future.

Also added unit test for this function.

Closes #10673.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63870 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-06 14:53:04 +00:00
Stefan Csomor
766fc09288 avoiding string conversions on 1st param of wxStat, as the latter is having a param of wxString now always and does the conversion internally
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62834 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-09 07:38:22 +00:00
Vadim Zeitlin
e01a788ee0 Add support for MSW unique volume names to wxFileName.
Recognize the paths starting with "\\?\Volume{GUID}" under MSW and provide a
way to test for them.

Closes #8874.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62782 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-05 17:31:00 +00:00
Vadim Zeitlin
85b1997c09 Define INVALID_FILE_ATTRIBUTES in filename.cpp too.
Fix VC6 compilation: INVALID_FILE_ATTRIBUTES is not defined in its headers so
we need to do it ourselves (this was done in filefn.cpp before but part of the
code using this constant was moved to filename.cpp in r62735 so now we need to
define it here too).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62737 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-28 03:37:41 +00:00
Vadim Zeitlin
5bb596668f Implement wx{File,Dir}Exists() in terms of wxFileName methods.
Use wxFileName from the global functions instead of using global functions in
wxFileName methods as wxFileName is the preferred API for all these
operations.

Closes #11488.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62735 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-28 02:40:08 +00:00
Vadim Zeitlin
f3c74c8df9 Don't change file access time implicitly when setting it explicitly.
wxFileHandle helper class used in wxFileName::SetTimes() under MSW modified
the file access time by setting it to the current time because it opened the
file in a wrong mode.

Closes #10567.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62705 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-24 00:01:25 +00:00
Vadim Zeitlin
0f506ded1a Fix handling of invalid paths with multiple columns in wxFileName.
SplitVolume() didn't handle colons in the initial position correctly which
surprised SetPath() and led to accessing an out-of-range string element. Fix
SplitVolume() and also add a check to SetPath() itself as it seems like it
could be called with a path containing the volume only.

Closes #11453.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62677 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-18 03:45:32 +00:00
Vadim Zeitlin
7b611a3ae9 Recognize UNCs starting with forward slashes too in wxFileName.
Treat \\share\path and //share/path in the same way (for wxPATH_DOS paths).

Add a test for UNC parsing to the unit test.

Closes #11376.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62561 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-05 14:59:39 +00:00
Jouk Jansen
4c9147881b omitting assert that makes no sense for OpenVMS
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62505 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-28 12:05:18 +00:00
Vadim Zeitlin
9a83f86094 Globally replace _T() with wxT().
Standardize on using a single macro across all wxWidgets sources and solve the name clash with Sun CC standard headers (see #10660).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61508 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-23 20:30:22 +00:00
Vadim Zeitlin
43b2d5e7c3 Put braces around all calls to wxLogFunctions() inside an if statement.
This suppresses all the remaining g++ -Wparentheses warnings and uses consistent style everywhere.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61475 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-20 16:47:54 +00:00
Vadim Zeitlin
be5be16a23 interpret ~ specially only when it is the first character of the path (closes #10948, see #10941)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61271 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-01 09:07:38 +00:00
Vadim Zeitlin
d9e80dce15 make more wxFileName methods const (closes #10887)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61022 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-12 15:28:45 +00:00
Vadim Zeitlin
89391a4ea1 make wxFileName::{Mk,Rm}dir() const (closes #10868)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61002 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-11 16:11:07 +00:00
Vadim Zeitlin
181dd701fa implement deprecated wxStripExtension() in terms of new wxFileName::StripExtension() (closes #10634)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59868 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-26 15:55:01 +00:00
Vadim Zeitlin
4b6a582bef replace more __WXDEBUG__ occurrences with wxDEBUG_LEVEL
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59725 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-22 12:53:48 +00:00