#include "wx/log.h"
-// No, Cygwin doesn't appear to have fnmatch.h after all.
-#if defined(HAVE_FNMATCH_H)
- #include "fnmatch.h"
-#endif
-
#ifdef __WINDOWS__
#include "wx/msw/private.h"
#include "wx/msw/mslu.h"
}
// Add paths e.g. from the PATH environment variable
-void wxPathList::AddEnvList (const wxString& envVariable)
+void wxPathList::AddEnvList (const wxString& WXUNUSED_IN_WINCE(envVariable))
{
// No environment variables on WinCE
#ifndef __WXWINCE__
delete [] s;
}
-#else // __WXWINCE__
- wxUnusedVar(envVariable);
-#endif // !__WXWINCE__/__WXWINCE__
+#endif // !__WXWINCE__
}
// Given a full filename (with path), ensure that that file can
The call wxExpandPath can convert these back!
*/
wxChar *
-wxContractPath (const wxString& filename, const wxString& envname, const wxString& user)
+wxContractPath (const wxString& filename,
+ const wxString& WXUNUSED_IN_WINCE(envname),
+ const wxString& user)
{
static wxChar dest[_MAXPATHLEN];
wxStrcat (tcp, wxT("}"));
wxStrcat (tcp, wxFileFunctionsBuffer);
}
-#else
- wxUnusedVar(envname);
#endif
// Handle User's home (ignore root homes!)
#if defined(__WXPALMOS__)
return 0;
#elif defined(__WXWINCE__)
- FILETIME creationTime, lastAccessTime, lastWriteTime;
- HANDLE fileHandle = ::CreateFile(filename, GENERIC_READ, FILE_SHARE_READ, NULL,
- 0, FILE_ATTRIBUTE_NORMAL, 0);
- if (fileHandle == INVALID_HANDLE_VALUE)
+ FILETIME ftLastWrite;
+ AutoHANDLE hFile(::CreateFile(filename, GENERIC_READ, FILE_SHARE_READ,
+ NULL, 0, FILE_ATTRIBUTE_NORMAL, 0));
+
+ if ( !hFile.IsOk() )
return 0;
- else
+
+ if ( !::GetFileTime(hFile, NULL, NULL, &ftLastWrite) )
+ return 0;
+
+ // sure we want to translate to local time here?
+ FILETIME ftLocal;
+ if ( !::FileTimeToLocalFileTime(&ftLastWrite, &ftLocal) )
{
- if (GetFileTime(fileHandle, & creationTime, & lastAccessTime, & lastWriteTime))
- {
- CloseHandle(fileHandle);
+ wxLogLastError(_T("FileTimeToLocalFileTime"));
+ }
- wxDateTime dateTime;
- FILETIME ftLocal;
- if ( !::FileTimeToLocalFileTime(&lastWriteTime, &ftLocal) )
- {
- wxLogLastError(_T("FileTimeToLocalFileTime"));
- }
+ // FILETIME is a counted in 100-ns since 1601-01-01, convert it to
+ // number of seconds since 1970-01-01
+ ULARGE_INTEGER uli;
+ uli.LowPart = ftLocal.dwLowDateTime;
+ uli.HighPart = ftLocal.dwHighDateTime;
- SYSTEMTIME st;
- if ( !::FileTimeToSystemTime(&ftLocal, &st) )
- {
- wxLogLastError(_T("FileTimeToSystemTime"));
- }
+ ULONGLONG ull = uli.QuadPart;
+ ull /= wxULL(10000000); // number of 100ns intervals in 1s
+ ull -= wxULL(11644473600); // 1970-01-01 - 1601-01-01 in seconds
- dateTime.Set(st.wDay, wxDateTime::Month(st.wMonth - 1), st.wYear,
- st.wHour, st.wMinute, st.wSecond, st.wMilliseconds);
- return dateTime.GetTicks();
- }
- else
- return 0;
- }
+ return wx_static_cast(time_t, ull);
#else
wxStructStat buf;
- wxStat( filename, &buf);
+ if ( wxStat( filename, &buf) != 0 )
+ return 0;
return buf.st_mtime;
#endif
// Returns 0 if none or if there's a problem.
// filterStr is in the form: "All files (*.*)|*.*|JPEG Files (*.jpeg)|*.jpeg"
-int WXDLLEXPORT wxParseCommonDialogsFilter(const wxString& filterStr, wxArrayString& descriptions, wxArrayString& filters)
+int WXDLLEXPORT wxParseCommonDialogsFilter(const wxString& filterStr,
+ wxArrayString& descriptions,
+ wxArrayString& filters)
{
descriptions.Clear();
filters.Clear();