+ // We specifically exclude wxPATH_NORM_LONG here as it can take a long time
+ // (several seconds) for network file paths under MSW, resulting in huge
+ // delays when opening a program using wxFileHistory. We also exclude
+ // wxPATH_NORM_ENV_VARS as the file names here are supposed to be "real"
+ // file names and not have any environment variables in them.
+ wxFileName fnNorm(fn);
+ fnNorm.Normalize(wxPATH_NORM_DOTS |
+ wxPATH_NORM_TILDE |
+ wxPATH_NORM_CASE |
+ wxPATH_NORM_ABSOLUTE);
+ return fnNorm.GetFullPath();
+}
+
+void wxFileHistoryBase::AddFileToHistory(const wxString& file)
+{
+ // Check if we don't already have this file. Notice that we avoid
+ // wxFileName::operator==(wxString) here as it converts the string to
+ // wxFileName and then normalizes it using all normalizations which is too
+ // slow (see the comment above), so we use our own quick normalization
+ // functions and a string comparison.