#elif defined(__WXSTUBS__)
wxASSERT_MSG( FALSE, wxT("TODO") ) ;
#elif defined(__WXMAC__)
- {
- short vRefNum ;
- long dirID ;
-
- if ( FindFolder( (short) kOnSystemDisk, kPreferencesFolderType, kDontCreateFolder, &vRefNum, &dirID) == noErr)
- {
- FSSpec file ;
- if ( FSMakeFSSpec( vRefNum , dirID , "\p" , &file ) == noErr )
- {
- strDir = wxMacFSSpec2UnixFilename( &file ) + "/" ;
- }
- }
- }
+ strDir = wxMacFindFolder( (short) kOnSystemDisk, kPreferencesFolderType, kDontCreateFolder ) ;
#else // Windows
wxChar szWinDir[MAX_PATH];
::GetWindowsDirectory(szWinDir, MAX_PATH);
#ifndef __WXMAC__
wxGetHomeDir(&strDir);
-#ifndef __VMS__
-# ifdef __UNIX__
- if (strDir.Last() != wxT('/')) strDir << wxT('/');
+#ifdef __UNIX__
+#ifdef __VMS
+ if (strDir.Last() != wxT(']'))
+#endif
+ if (strDir.Last() != wxT('/')) strDir << wxT('/');
#else
if (strDir.Last() != wxT('\\')) strDir << wxT('\\');
#endif
-#endif
#else
// no local dir concept on mac
return GetGlobalDir() ;
#ifdef __VMS__ // On VMS I saw the problem that the home directory was appended
// twice for the configuration file. Does that also happen for other
// platforms?
- wxString str = wxT( ' ' );
+ wxString str = wxT( '.' );
#else
wxString str = GetLocalDir();
#endif
- #ifdef __UNIX__
+ #if defined( __UNIX__ ) && !defined( __VMS )
str << wxT('.');
#endif
pEnd = pStart;
while ( *++pEnd != wxT(']') ) {
- if ( *pEnd == wxT('\n') || *pEnd == wxT('\0') )
+ if ( *pEnd == wxT('\\') ) {
+ // the next char is escaped, so skip it even if it is ']'
+ pEnd++;
+ }
+
+ if ( *pEnd == wxT('\n') || *pEnd == wxT('\0') ) {
+ // we reached the end of line, break out of the loop
break;
+ }
}
if ( *pEnd != wxT(']') ) {
bool ret = file.Commit();
-#ifdef __WXMAC__
+#if defined(__WXMAC__) && !defined(__UNIX__)
if ( ret )
{
FSSpec spec ;
FSpSetFInfo( &spec , &finfo ) ;
}
}
-#endif // __WXMAC__
+#endif // __WXMAC__ && !__UNIX__
#ifdef __UNIX__
// restore the old umask if we changed it