]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/iniconf.cpp
Added chapter on collection and container classes to contents
[wxWidgets.git] / src / msw / iniconf.cpp
index f3d0a6727bdde376d28e5107415288a76190c825..eca894e0db11ffff6ef3354cbe44a3ce9e927210 100644 (file)
   #include  "wx/utils.h"
 #endif  //WX_PRECOMP
 
+// Doesn't yet compile in Unicode mode
+
+#if wxUSE_CONFIG && !wxUSE_UNICODE
+
 #include  "wx/dynarray.h"
 #include  "wx/log.h"
 #include  "wx/config.h"
@@ -60,29 +64,38 @@ wxIniConfig::wxIniConfig(const wxString& strAppName,
                          const wxString& localFilename,
                          const wxString& globalFilename,
                          long style)
-           : wxConfigBase(!strAppName && wxTheApp ? wxTheApp->GetAppName()
+           : wxConfigBase(strAppName, strVendor, localFilename, globalFilename, style)
+
+#if 0 // This is too complex for some compilers, e.g. BC++ 5.01
+           : wxConfigBase((strAppName.IsEmpty() && wxTheApp) ? wxTheApp->GetAppName()
                                                : strAppName,
-                          !strVendor ? (wxTheApp ? wxTheApp->GetVendorName()
+                          strVendor.IsEmpty() ? (wxTheApp ? wxTheApp->GetVendorName()
                                                   : strAppName)
                                       : strVendor,
                           localFilename, globalFilename, style)
+#endif
 {
+    if (strAppName.IsEmpty() && wxTheApp)
+        SetAppName(wxTheApp->GetAppName());
+    if (strVendor.IsEmpty() && wxTheApp)
+        SetVendorName(wxTheApp->GetVendorName());
+
     m_strLocalFilename = localFilename;
     if (m_strLocalFilename.IsEmpty())
     {
-        m_strLocalFilename = GetAppName() + ".ini";
+        m_strLocalFilename = GetAppName() + wxT(".ini");
     }
 
     // append the extension if none given and it's not an absolute file name
     // (otherwise we assume that they know what they're doing)
     if ( !wxIsPathSeparator(m_strLocalFilename[0u]) &&
-        m_strLocalFilename.Find('.') == wxNOT_FOUND )
+        m_strLocalFilename.Find(wxT('.')) == wxNOT_FOUND )
     {
-        m_strLocalFilename << ".ini";
+        m_strLocalFilename << wxT(".ini");
     }
 
     // set root path
-    SetPath("");
+    SetPath(wxT(""));
 }
 
 wxIniConfig::~wxIniConfig()
@@ -344,16 +357,22 @@ bool wxIniConfig::Read(const wxString& szKey, long *pl) const
 
   // is it really nMagic?
   lVal = GetPrivateProfileInt(m_strGroup, strKey, nMagic2, m_strLocalFilename);
-  if ( lVal == nMagic2 ) {
+  if ( lVal != nMagic2 ) {
     // the nMagic it returned was indeed read from the file
     *pl = lVal;
     return TRUE;
   }
 
+  // CS : I have no idea why they should look up in win.ini
+  // and if at all they have to do the same procedure using the two magic numbers
+  // otherwise it always returns true, even if the key was not there at all
+#if 0
   // no, it was just returning the default value, so now look in win.ini
 *pl = GetProfileInt(GetVendorName(), GetKeyName(szKey), *pl);
+ *pl = GetProfileInt(GetVendorName(), GetKeyName(szKey), *pl);
 
   return TRUE;
+#endif
+  return FALSE ;
 }
 
 bool wxIniConfig::Write(const wxString& szKey, const wxString& szValue)
@@ -365,7 +384,7 @@ bool wxIniConfig::Write(const wxString& szKey, const wxString& szValue)
                                        szValue, m_strLocalFilename) != 0;
 
   if ( !bOk )
-    wxLogLastError("WritePrivateProfileString");
+    wxLogLastError(wxT("WritePrivateProfileString"));
 
   return bOk;
 }
@@ -409,7 +428,7 @@ bool wxIniConfig::DeleteEntry(const wxString& szKey, bool bGroupIfEmptyAlso)
                                        NULL, m_strLocalFilename) != 0;
 
   if ( !bOk )
-    wxLogLastError("WritePrivateProfileString");
+    wxLogLastError(wxT("WritePrivateProfileString"));
 
   return bOk;
 }
@@ -424,7 +443,7 @@ bool wxIniConfig::DeleteGroup(const wxString& szKey)
                                        NULL, m_strLocalFilename) != 0;
 
   if ( !bOk )
-    wxLogLastError("WritePrivateProfileString");
+    wxLogLastError(wxT("WritePrivateProfileString"));
 
   return bOk;
 }
@@ -443,11 +462,11 @@ bool wxIniConfig::DeleteAll()
   size_t nRc = GetWindowsDirectory(szBuf, WXSIZEOF(szBuf));
   if ( nRc == 0 )
   {
-    wxLogLastError("GetWindowsDirectory");
+    wxLogLastError(wxT("GetWindowsDirectory"));
   }
   else if ( nRc > WXSIZEOF(szBuf) )
   {
-    wxFAIL_MSG("buffer is too small for Windows directory.");
+    wxFAIL_MSG(wxT("buffer is too small for Windows directory."));
   }
 
   wxString strFile = szBuf;
@@ -472,3 +491,6 @@ bool wxIniConfig::RenameGroup(const wxString& oldName, const wxString& newName)
     // Not implemented
     return FALSE;
 }
+
+#endif
+    // wxUSE_CONFIG && wxUSE_UNICODE