]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/iniconf.cpp
Highly experimental, unstable code (for determining the
[wxWidgets.git] / src / msw / iniconf.cpp
index 22199a3f397df2d9307f58f54ea2c72de1bef4de..cc177eab522fe293a0632d4af626dc79940a28e0 100644 (file)
 #endif
 
 #ifndef   WX_PRECOMP
-  #include  <wx/string.h>
-  #include  <wx/intl.h>
-  #include  <wx/event.h>
-  #include  <wx/app.h>
-  #include  <wx/utils.h>
+  #include  "wx/string.h"
+  #include  "wx/intl.h"
+  #include  "wx/event.h"
+  #include  "wx/app.h"
+  #include  "wx/utils.h"
 #endif  //WX_PRECOMP
 
-#include  <wx/dynarray.h>
-#include  <wx/log.h>
-#include  <wx/config.h>
+#include  "wx/dynarray.h"
+#include  "wx/log.h"
+#include  "wx/config.h"
 
-#include  <wx/msw/iniconf.h>
+#include  "wx/msw/iniconf.h"
 
 // _WINDOWS_ is defined when windows.h is included,
 // __WXMSW__ is defined for MS Windows compilation
@@ -60,13 +60,22 @@ 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())
     {
@@ -344,16 +353,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)
@@ -442,9 +457,13 @@ bool wxIniConfig::DeleteAll()
   char szBuf[MAX_PATH];
   size_t nRc = GetWindowsDirectory(szBuf, WXSIZEOF(szBuf));
   if ( nRc == 0 )
+  {
     wxLogLastError("GetWindowsDirectory");
+  }
   else if ( nRc > WXSIZEOF(szBuf) )
+  {
     wxFAIL_MSG("buffer is too small for Windows directory.");
+  }
 
   wxString strFile = szBuf;
   strFile << '\\' << m_strLocalFilename;