X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b5299791f4f00fc34907fc66ad03043ecca22b31..ccdcde00d9ae27ca20ff6c3c9495918a0ec725aa:/src/unix/snglinst.cpp diff --git a/src/unix/snglinst.cpp b/src/unix/snglinst.cpp index 80bf0d1629..9cc4155e80 100644 --- a/src/unix/snglinst.cpp +++ b/src/unix/snglinst.cpp @@ -44,7 +44,7 @@ #include #include -#include +#include // for S_I[RW]USR #include // for kill() #include @@ -153,13 +153,12 @@ LockResult wxSingleInstanceCheckerImpl::CreateLockFile() // try to open the file m_fdLock = open(m_nameLock, O_WRONLY | O_CREAT | O_EXCL, - S_IREAD | S_IWRITE); + S_IRUSR | S_IWUSR); if ( m_fdLock != -1 ) { // try to lock it - int rc = wxLockFile(m_fdLock, LOCK); - if ( rc == 0 ) + if ( wxLockFile(m_fdLock, LOCK) == 0 ) { // fine, we have the exclusive lock to the file, write our PID // into it @@ -167,7 +166,7 @@ LockResult wxSingleInstanceCheckerImpl::CreateLockFile() // use char here, not wxChar! char buf[256]; // enough for any PID size - int len = sprintf(buf, "%d", m_pidLocker) + 1; + int len = sprintf(buf, "%d", (int)m_pidLocker) + 1; if ( write(m_fdLock, buf, len) != len ) { @@ -188,7 +187,7 @@ LockResult wxSingleInstanceCheckerImpl::CreateLockFile() close(m_fdLock); m_fdLock = -1; - if ( rc != EACCES && rc != EAGAIN ) + if ( errno != EACCES && errno != EAGAIN ) { wxLogSysError(_("Failed to lock the lock file '%s'"), m_nameLock.c_str()); @@ -254,7 +253,7 @@ bool wxSingleInstanceCheckerImpl::Create(const wxString& name) } else { - if ( sscanf(buf, "%d", &m_pidLocker) == 1 ) + if ( sscanf(buf, "%d", (int *)&m_pidLocker) == 1 ) { if ( kill(m_pidLocker, 0) != 0 ) { @@ -332,7 +331,12 @@ bool wxSingleInstanceChecker::Create(const wxString& name, wxString fullname = path; if ( fullname.empty() ) { - fullname << wxGetHomeDir() << _T('/'); + fullname = wxGetHomeDir(); + } + + if ( fullname.Last() != _T('/') ) + { + fullname += _T('/'); } fullname << name;