]> git.saurik.com Git - wxWidgets.git/commitdiff
don't call stat() *and* lstat() (as if the file dialog wasn't already slow enough...
authorVadim Zeitlin <vadim@wxwidgets.org>
Sun, 12 Jan 2003 14:24:32 +0000 (14:24 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sun, 12 Jan 2003 14:24:32 +0000 (14:24 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@18692 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/generic/filedlgg.cpp

index 8e8f0365c42d3d5670e6b88d831aefd8e0fb3f35..0fdf57d687be8c1b599bff527c4ff209d82a8872 100644 (file)
@@ -445,37 +445,29 @@ wxFileData::wxFileData( const wxString &name, const wxString &fname )
     if (name.length() == 2 && name[1u] == wxT(':'))
     {
         m_isDir = TRUE;
-        m_isExe = m_isLink = FALSE;
+        m_isExe =
+        m_isLink = FALSE;
         m_size = 0;
         return;
     }
-#endif
+#endif // __DOS__ || __WINDOWS__
 
     wxStructStat buff;
-    wxStat( m_fileName, &buff );
 
 #if defined(__UNIX__) && (!defined( __EMX__ ) && !defined(__VMS))
-    struct stat lbuff;
-    lstat( m_fileName.fn_str(), &lbuff );
-    m_isLink = S_ISLNK( lbuff.st_mode );
-    struct tm *t = localtime( &lbuff.st_mtime );
-#else
+    lstat( m_fileName.fn_str(), &buff );
+    m_isLink = S_ISLNK( buff.st_mode );
+#else // no lstat()
+    wxStat( m_fileName, &buff );
     m_isLink = FALSE;
-    struct tm *t = localtime( &buff.st_mtime );
 #endif
 
-//  struct passwd *user = getpwuid( buff.st_uid );
-//  struct group *grp = getgrgid( buff.st_gid );
-
-#ifdef __VISUALC__
-    m_isDir = ((buff.st_mode & _S_IFDIR ) == _S_IFDIR );
-#else
-       m_isDir = S_ISDIR( buff.st_mode );
-#endif // VC++
-    m_isExe = ((buff.st_mode & wxS_IXUSR ) == wxS_IXUSR );
+    m_isDir = (buff.st_mode & S_IFDIR) != 0;
+    m_isExe = (buff.st_mode & wxS_IXUSR) != 0;
 
     m_size = buff.st_size;
 
+    const struct tm * const t = localtime( &buff.st_mtime );
     m_hour = t->tm_hour;
     m_minute = t->tm_min;
     m_month = t->tm_mon+1;
@@ -483,21 +475,10 @@ wxFileData::wxFileData( const wxString &name, const wxString &fname )
     m_year = t->tm_year;
     m_year += 1900;
 
-    char buffer[10];
-    sprintf( buffer, "%c%c%c",
-     ((( buff.st_mode & wxS_IRUSR ) == wxS_IRUSR ) ? 'r' : '-'),
-     ((( buff.st_mode & wxS_IWUSR ) == wxS_IWUSR ) ? 'w' : '-'),
-     ((( buff.st_mode & wxS_IXUSR ) == wxS_IXUSR ) ? 'x' : '-') );
-#if wxUSE_UNICODE
-    m_permissions = wxConvUTF8.cMB2WC( buffer );
-#else
-    m_permissions = buffer;
-#endif
-
-//    m_permissions.sprintf( wxT("%c%c%c"),
-//     ((( buff.st_mode & S_IRUSR ) == S_IRUSR ) ? wxT('r') : wxT('-')),
-//     ((( buff.st_mode & S_IWUSR ) == S_IWUSR ) ? wxT('w') : wxT('-')),
-//     ((( buff.st_mode & S_IXUSR ) == S_IXUSR ) ? wxT('x') : wxT('-')) );
+    m_permissions.Printf(_T("%c%c%c"),
+                         buff.st_mode & wxS_IRUSR ? _T('r') : _T('-'),
+                         buff.st_mode & wxS_IWUSR ? _T('w') : _T('-'),
+                         buff.st_mode & wxS_IXUSR ? _T('x') : _T('-'));
 }
 
 wxString wxFileData::GetName() const
@@ -1311,13 +1292,13 @@ void wxFileDialog::OnTextChange( wxCommandEvent &WXUNUSED(event) )
         // not get the file whose name they typed.
         if (m_list->GetSelectedItemCount() > 0)
         {
-           long item = m_list->GetNextItem(-1, wxLIST_NEXT_ALL,
+            long item = m_list->GetNextItem(-1, wxLIST_NEXT_ALL,
                 wxLIST_STATE_SELECTED);
             while ( item != -1 )
-           {
+            {
                 m_list->SetItemState(item,0, wxLIST_STATE_SELECTED);
                 item = m_list->GetNextItem(item, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
-           }
+            }
         }
     }
 }