]> git.saurik.com Git - wxWidgets.git/commitdiff
minor fix to wxFileName::MakeRelativeTo(), removed broken and misleading IsWild(...
authorVadim Zeitlin <vadim@wxwidgets.org>
Fri, 5 Apr 2002 11:14:09 +0000 (11:14 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Fri, 5 Apr 2002 11:14:09 +0000 (11:14 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14948 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/latex/wx/filename.tex
include/wx/filename.h
samples/console/console.cpp
src/common/filename.cpp

index 2e2b4ce5380e8ba59318b267e58879d82713a609..4c50db430f9ecbfb54c7c9b87fd81dcd69c195c8 100644 (file)
@@ -94,8 +94,7 @@ does.
 
 Other functions returning information about the file format provided by this
 class are \helpref{GetVolumeSeparator}{wxfilenamegetvolumeseparator},\rtfsp
-\helpref{IsPathSeparator}{wxfilenameispathseparator} and\rtfsp
-\helpref{IsWild}{wxfilenameiswild}.
+\helpref{IsPathSeparator}{wxfilenameispathseparator}.
 
 \helpref{IsRelative}{wxfilenameisrelative}
 
@@ -477,11 +476,15 @@ Returns {\tt TRUE} if the char is a path separator for this format.
 
 Returns {\tt TRUE} if this filename is not absolute.
 
-\membersection{wxFileName::IsWild}\label{wxfilenameiswild}
+\membersection{wxFileName::IsDir}\label{wxfilenameisdir}
 
-\func{bool}{IsWild}{\param{wxPathFormat }{format = wxPATH\_NATIVE}}
+\constfunc{bool}{IsDir}{\void}
 
-FIXME: what exactly does this do?
+Returns {\tt TRUE} if this object represents a directory, {\tt FALSE} otherwise
+(i.e. if it is a file). Note that this method doesn't test whether the
+directory or file really exists, you should use 
+\helpref{DirExists}{wxfilenamedirexists} or 
+\helpref{FileExists}{wxfilenamefileexists} for this.
 
 \membersection{wxFileName::MakeRelativeTo}\label{wxfilenamemakerelativeto}
 
index 9553b4c0e88854242631db301d6259e8b16fc623..9768a8739530c7d3fb219baa2f58ecfaac583acb 100644 (file)
@@ -296,9 +296,6 @@ public:
     // is the char a path separator for this format?
     static bool IsPathSeparator(wxChar ch, wxPathFormat format = wxPATH_NATIVE);
 
-    // FIXME: what exactly does this do?
-    bool IsWild( wxPathFormat format = wxPATH_NATIVE );
-
     // Dir accessors
     void AppendDir( const wxString &dir );
     void PrependDir( const wxString &dir );
@@ -344,6 +341,9 @@ public:
     // Return the long form of the path (returns identity on non-Windows platforms)
     wxString GetLongPath() const;
 
+    // Is this a file or directory (not necessarily an existing one)
+    bool IsDir() const { return m_name.empty() && m_ext.empty(); }
+
     // various helpers
 
         // get the canonical path format for this platform
index 518f525f3caff419b98e43b43811124fc1d6c2c3..53990de434bb43a85091f3fcb74c47ccf0e761ef 100644 (file)
@@ -91,7 +91,7 @@
     #undef TEST_ALL
     static const bool TEST_ALL = TRUE;
 #else
-    #define TEST_THREADS
+    #define TEST_FILENAME
 
     static const bool TEST_ALL = FALSE;
 #endif
@@ -802,7 +802,7 @@ static struct FileNameInfo
     { _T("c:\\Windows\\command.com"), _T("c"), _T("\\Windows"), _T("command"), _T("com"), TRUE, wxPATH_DOS },
     { _T("\\\\server\\foo.bar"), _T("server"), _T("\\"), _T("foo"), _T("bar"), TRUE, wxPATH_DOS },
 
-    // wxFileName support for Mac file names is broken crurently
+    // wxFileName support for Mac file names is broken currently
 #if 0
     // Mac file names
     { _T("Volume:Dir:File"), _T("Volume"), _T("Dir"), _T("File"), _T(""), TRUE, wxPATH_MAC },
@@ -900,7 +900,12 @@ static void TestFileNameTemp()
     for ( size_t n = 0; n < WXSIZEOF(tmpprefixes); n++ )
     {
         wxString path = wxFileName::CreateTempFileName(tmpprefixes[n]);
-        if ( !path.empty() )
+        if ( path.empty() )
+        {
+            // "error" is not in upper case because it may be ok
+            printf("Prefix '%s'\t-> error\n", tmpprefixes[n]);
+        }
+        else
         {
             printf("Prefix '%s'\t-> temp file '%s'\n",
                    tmpprefixes[n], path.c_str());
index bc37751bbf05fc99be2226df95d9659c31446f73..486f75b109691c5546f070d48dd6ff220a0a9e61 100644 (file)
@@ -955,6 +955,17 @@ bool wxFileName::MakeRelativeTo(const wxString& pathBase, wxPathFormat format)
         m_dirs.Insert(wxT(".."), 0u);
     }
 
+    if ( format == wxPATH_UNIX || format == wxPATH_DOS )
+    {
+        // a directory made relative with respect to itself is '.' under Unix
+        // and DOS, by definition (but we don't have to insert "./" for the
+        // files)
+        if ( m_dirs.IsEmpty() && IsDir() )
+        {
+            m_dirs.Add(_T('.'));
+        }   
+    }
+
     m_relative = TRUE;
 
     // we were modified
@@ -1048,13 +1059,6 @@ bool wxFileName::IsPathSeparator(wxChar ch, wxPathFormat format)
     return GetPathSeparators(format).Find(ch) != wxNOT_FOUND;
 }
 
-bool wxFileName::IsWild( wxPathFormat WXUNUSED(format) )
-{
-    // FIXME: this is probably false for Mac and this is surely wrong for most
-    //        of Unix shells (think about "[...]")
-    return m_name.find_first_of(_T("*?")) != wxString::npos;
-}
-
 // ----------------------------------------------------------------------------
 // path components manipulation
 // ----------------------------------------------------------------------------