static wxString FilterInEntryName(const wxString& str);
static wxString FilterOutEntryName(const wxString& str);
+// get the name to use in wxFileConfig ctor
+static wxString GetAppName(const wxString& appname);
+
// ============================================================================
// implementation
// ============================================================================
wxFileConfig::wxFileConfig(const wxString& appName, const wxString& vendorName,
const wxString& strLocal, const wxString& strGlobal,
long style)
- : wxConfigBase(!appName && wxTheApp ? wxTheApp->GetAppName()
- : appName,
- vendorName, strLocal, strGlobal, style),
+ : wxConfigBase(::GetAppName(appName), vendorName,
+ strLocal, strGlobal,
+ style),
m_strLocalFile(strLocal), m_strGlobalFile(strGlobal)
{
// Make up names for files if empty
return FALSE;
}
- strName = FilterOutEntryName(strName);
-
ConfigEntry *pEntry = m_pCurrentGroup->FindEntry(strName);
if ( pEntry == NULL )
pEntry = m_pCurrentGroup->AddEntry(strName);
// this group wasn't present in local config file, add it now
if ( pParent != NULL ) {
wxString strFullName;
- strFullName << _T("[") << (GetFullName().c_str() + 1) << _T("]"); // +1: no '/'
+ strFullName << _T("[")
+ // +1: no '/'
+ << FilterOutEntryName(GetFullName().c_str() + 1)
+ << _T("]");
m_pLine = m_pConfig->LineListInsert(strFullName,
pParent->GetLastGroupLine());
pParent->SetLastGroup(this); // we're surely after all the others
if ( bUser ) {
wxString strVal = FilterOutValue(strValue);
wxString strLine;
- strLine << m_strName << _T(" = ") << strVal;
+ strLine << FilterOutEntryName(m_strName) << _T(" = ") << strVal;
if ( m_pLine != NULL ) {
// entry was read from the local config file, just modify the line
return strResult;
}
+// we can't put ?: in the ctor initializer list because it confuses some
+// broken compilers (Borland C++)
+static wxString GetAppName(const wxString& appName)
+{
+ if ( !appName && wxTheApp )
+ return wxTheApp->GetAppName();
+ else
+ return appName;
+}