#if defined(__WXMAC__)
#include "wx/mac/private.h" // includes mac headers
+ #include "wx/filename.h" // for MacSetTypeAndCreator
#endif
#if defined(__WXMSW__)
void wxFileConfig::Init()
{
m_pCurrentGroup =
- m_pRootGroup = new wxFileConfigGroup(NULL, wxT(""), this);
+ m_pRootGroup = new wxFileConfigGroup(NULL, wxEmptyString, this);
m_linesHead =
m_linesTail = NULL;
// It's not an error if (one of the) file(s) doesn't exist.
// parse the global file
- if ( !m_strGlobalFile.IsEmpty() && wxFile::Exists(m_strGlobalFile) )
+ if ( !m_strGlobalFile.empty() && wxFile::Exists(m_strGlobalFile) )
{
wxTextFile fileGlobal(m_strGlobalFile);
}
// parse the local file
- if ( !m_strLocalFile.IsEmpty() && wxFile::Exists(m_strLocalFile) )
+ if ( !m_strLocalFile.empty() && wxFile::Exists(m_strLocalFile) )
{
wxTextFile fileLocal(m_strLocalFile);
if ( fileLocal.Open(m_conv/*ignored in ANSI build*/) )
m_conv(conv)
{
// Make up names for files if empty
- if ( m_strLocalFile.IsEmpty() && (style & wxCONFIG_USE_LOCAL_FILE) )
+ if ( m_strLocalFile.empty() && (style & wxCONFIG_USE_LOCAL_FILE) )
m_strLocalFile = GetLocalFileName(GetAppName());
- if ( m_strGlobalFile.IsEmpty() && (style & wxCONFIG_USE_GLOBAL_FILE) )
+ if ( m_strGlobalFile.empty() && (style & wxCONFIG_USE_GLOBAL_FILE) )
m_strGlobalFile = GetGlobalFileName(GetAppName());
// Check if styles are not supplied, but filenames are, in which case
// add the correct styles.
- if ( !m_strLocalFile.IsEmpty() )
+ if ( !m_strLocalFile.empty() )
SetStyle(GetStyle() | wxCONFIG_USE_LOCAL_FILE);
- if ( !m_strGlobalFile.IsEmpty() )
+ if ( !m_strGlobalFile.empty() )
SetStyle(GetStyle() | wxCONFIG_USE_GLOBAL_FILE);
// if the path is not absolute, prepend the standard directory to it
// UNLESS wxCONFIG_USE_RELATIVE_PATH style is set
if ( !(style & wxCONFIG_USE_RELATIVE_PATH) )
{
- if ( !m_strLocalFile.IsEmpty() && !wxIsAbsolutePath(m_strLocalFile) )
+ if ( !m_strLocalFile.empty() && !wxIsAbsolutePath(m_strLocalFile) )
{
wxString strLocal = m_strLocalFile;
m_strLocalFile = GetLocalDir();
m_strLocalFile << strLocal;
}
- if ( !m_strGlobalFile.IsEmpty() && !wxIsAbsolutePath(m_strGlobalFile) )
+ if ( !m_strGlobalFile.empty() && !wxIsAbsolutePath(m_strGlobalFile) )
{
wxString strGlobal = m_strGlobalFile;
m_strGlobalFile = GetGlobalDir();
SetStyle(GetStyle() | wxCONFIG_USE_LOCAL_FILE);
m_pCurrentGroup =
- m_pRootGroup = new wxFileConfigGroup(NULL, wxT(""), this);
+ m_pRootGroup = new wxFileConfigGroup(NULL, wxEmptyString, this);
m_linesHead =
m_linesTail = NULL;
{
wxArrayString aParts;
- if ( strPath.IsEmpty() ) {
+ if ( strPath.empty() ) {
SetRootPath();
return;
}
szValue.c_str(),
GetPath().c_str() );
- if ( strName.IsEmpty() )
+ if ( strName.empty() )
{
// setting the value of a group is an error
- wxASSERT_MSG( wxIsEmpty(szValue), wxT("can't set value of a group!") );
+ wxASSERT_MSG( szValue.empty(), wxT("can't set value of a group!") );
// ... except if it's empty in which case it's a way to force it's creation
}
m_strLocalFile =
- m_strGlobalFile = wxT("");
+ m_strGlobalFile = wxEmptyString;
}
Init();
int nLine)
: m_strName(strName)
{
- wxASSERT( !strName.IsEmpty() );
+ wxASSERT( !strName.empty() );
m_pParent = pParent;
m_nLine = nLine;
}
else // this entry didn't exist in the local file
{
- // add a new line to the file
+ // add a new line to the file: note the hack for the root group
+ // which is special in that it doesn't have its own group line
+ // (something like "[/]") and so the line we get for it may be not
+ // its line at all if it doesn't have any entries
+ //
+ // this is definitely not the right place to fix it but changing
+ // the root group to have NULL m_pLine will probably break too
+ // much stuff elsewhere so I don't dare to do it...
wxFileConfigLineList *line = Group()->GetLastEntryLine();
+ if ( !Group()->Parent() && line == Group()->GetGroupLine() )
+ {
+ // prepend the first root group entry to the head of the list
+ line = NULL;
+ }
m_pLine = Group()->Config()->LineListInsert(strLine, line);
Group()->SetLastEntry(this);
wxString strResult;
strResult.Alloc(str.Len());
- bool bQuoted = !str.IsEmpty() && str[0] == '"';
+ bool bQuoted = !str.empty() && str[0] == '"';
for ( size_t n = bQuoted ? 1 : 0; n < str.Len(); n++ ) {
if ( str[n] == wxT('\\') ) {