summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-05-15 14:10:16 -0500
committerSlávek Banko <slavek.banko@axis.cz>2012-06-02 19:05:43 +0200
commit865951eebf3ebc98584451702554f2509972ae2c (patch)
tree0af21331fb16475d7cc7f65fdad5cd1de4951c39
parent6545cbf647692554e98651255b3f6a297d166c67 (diff)
downloadtdelibs-865951eebf3ebc98584451702554f2509972ae2c.tar.gz
tdelibs-865951eebf3ebc98584451702554f2509972ae2c.zip
Fix creation of profile directory in system root (part 2)
This closes Bug 293 (part of the original commit) (cherry picked from commit d3a9d56143cf668c7d29b26a324a424d02036371)
-rw-r--r--kdecore/kconfigbackend.cpp17
-rw-r--r--kdecore/kconfigbase.cpp10
-rw-r--r--kdecore/kstandarddirs.cpp50
3 files changed, 48 insertions, 29 deletions
diff --git a/kdecore/kconfigbackend.cpp b/kdecore/kconfigbackend.cpp
index d2ee19f47..5939c6d9d 100644
--- a/kdecore/kconfigbackend.cpp
+++ b/kdecore/kconfigbackend.cpp
@@ -247,17 +247,22 @@ void KConfigBackEnd::changeFileName(const TQString &_fileName,
mfileName = _fileName;
resType = _resType;
useKDEGlobals = _useKDEGlobals;
- if (mfileName.isEmpty())
+ if (mfileName.isEmpty()) {
mLocalFileName = TQString::null;
- else if (!TQDir::isRelativePath(mfileName))
+ }
+ else if (!TQDir::isRelativePath(mfileName)) {
mLocalFileName = mfileName;
- else
- mLocalFileName = KGlobal::dirs()->saveLocation(resType) + mfileName;
+ }
+ else {
+ mLocalFileName = KGlobal::dirs()->saveLocation(resType, TQString(), false) + mfileName;
+ }
- if (useKDEGlobals)
+ if (useKDEGlobals) {
mGlobalFileName = KGlobal::dirs()->saveLocation("config", TQString(), false) + TQString::fromLatin1("kdeglobals");
- else
+ }
+ else {
mGlobalFileName = TQString::null;
+ }
d->localLastModified = TQDateTime();
d->localLastSize = 0;
diff --git a/kdecore/kconfigbase.cpp b/kdecore/kconfigbase.cpp
index 9ad660037..c5c0a4e25 100644
--- a/kdecore/kconfigbase.cpp
+++ b/kdecore/kconfigbase.cpp
@@ -1139,16 +1139,18 @@ static TQString translatePath( TQString path )
// return original path, if it refers to another type of URL (e.g. http:/), or
// if the path is already relative to another directory
- if (!startsWithFile && path[0] != '/' ||
- startsWithFile && path[5] != '/')
+ if (((!startsWithFile) && (path[0] != '/')) || (startsWithFile && (path[5] != '/'))) {
return path;
+ }
- if (startsWithFile)
+ if (startsWithFile) {
path.remove(0,5); // strip leading "file:/" off the string
+ }
// keep only one single '/' at the beginning - needed for cleanHomeDirPath()
- while (path[0] == '/' && path[1] == '/')
+ while (path[0] == '/' && path[1] == '/') {
path.remove(0,1);
+ }
// we can not use KGlobal::dirs()->relativeLocation("home", path) here,
// since it would not recognize paths without a trailing '/'.
diff --git a/kdecore/kstandarddirs.cpp b/kdecore/kstandarddirs.cpp
index be48f78fb..47c1aee66 100644
--- a/kdecore/kstandarddirs.cpp
+++ b/kdecore/kstandarddirs.cpp
@@ -48,7 +48,6 @@
#include "kstandarddirs.h"
#include "kconfig.h"
-#include "kdebug.h"
#include "kinstance.h"
#include "kshell.h"
#include "ksimpleconfig.h"
@@ -415,7 +414,7 @@ TQString KStandardDirs::findResourceDir( const char *type,
{
#ifndef NDEBUG
if (filename.isEmpty()) {
- kdWarning() << "filename for type " << type << " in KStandardDirs::findResourceDir is not supposed to be empty!!" << endl;
+ printf("filename for type %s in KStandardDirs::findResourceDir is not supposed to be empty!!", type);
return TQString::null;
}
#endif
@@ -431,7 +430,7 @@ TQString KStandardDirs::findResourceDir( const char *type,
#ifdef Q_WS_WIN //this ensures we're using installed .la files
if ((*it).isEmpty() && filename.right(3)==".la") {
#ifndef NDEBUG
- kdDebug() << "KStandardDirs::findResourceDir() found .la in cwd: skipping. (fname=" << filename << ")" << endl;
+ printf("KStandardDirs::findResourceDir() found .la in cwd: skipping. (fname=%s)\n", filename.ascii());
#endif
continue;
}
@@ -442,7 +441,7 @@ TQString KStandardDirs::findResourceDir( const char *type,
#ifndef NDEBUG
if(false && strcmp(type, "locale"))
- kdDebug() << "KStdDirs::findResDir(): can't find \"" << filename << "\" in type \"" << type << "\"." << endl;
+ printf("KStdDirs::findResDir(): can't find \"%s\" in type \"%s\".\n", filename.ascii(), type);
#endif
return TQString::null;
@@ -451,13 +450,17 @@ TQString KStandardDirs::findResourceDir( const char *type,
bool KStandardDirs::exists(const TQString &fullPath)
{
KDE_struct_stat buff;
- if (access(TQFile::encodeName(fullPath), R_OK) == 0 && KDE_stat( TQFile::encodeName(fullPath), &buff ) == 0)
+ if ((access(TQFile::encodeName(fullPath), R_OK) == 0) && (KDE_stat( TQFile::encodeName(fullPath), &buff ) == 0)) {
if (fullPath.at(fullPath.length() - 1) != QChar('/')) {
if (S_ISREG( buff.st_mode ))
return true;
- } else
- if (S_ISDIR( buff.st_mode ))
+ }
+ else {
+ if (S_ISDIR( buff.st_mode )) {
return true;
+ }
+ }
+ }
return false;
}
@@ -500,7 +503,7 @@ static void lookupDirectory(const TQString& path, const TQString &relPart,
TQString pathfn = path + fn;
if ( KDE_stat( TQFile::encodeName(pathfn), &buff ) != 0 ) {
- kdDebug() << "Error stat'ing " << pathfn << " : " << perror << endl;
+ printf("Error stat'ing %s : %d\n", pathfn.ascii(), errno);
continue; // Couldn't stat (e.g. no read permissions)
}
if ( recursive ) {
@@ -599,7 +602,7 @@ static void lookupPrefix(const TQString& prefix, const TQString& relpath,
TQString rfn = relPart+fn;
fn = prefix + fn;
if ( KDE_stat( TQFile::encodeName(fn), &buff ) != 0 ) {
- kdDebug() << "Error statting " << fn << " : " << perror << endl;
+ printf("Error statting %s : %d\n", fn.ascii(), errno);
continue; // Couldn't stat (e.g. no permissions)
}
if ( S_ISDIR( buff.st_mode ))
@@ -767,17 +770,23 @@ void KStandardDirs::createSpecialResource(const char *type)
srv = findExe(TQString::fromLatin1("lnusertemp"));
if (!srv.isEmpty())
{
- system(TQFile::encodeName(srv)+" "+type);
- result = readlink(TQFile::encodeName(dir).data(), link, 1023);
+ if (system(TQFile::encodeName(srv)+" "+type) < 0 ) {
+ result = readlink(TQFile::encodeName(dir).data(), link, 1023);
+ }
+ else {
+ result = -1;
+ }
}
}
if (result > 0)
{
link[result] = 0;
- if (link[0] == TQChar('/').latin1())
+ if (link[0] == TQChar('/').latin1()) {
dir = TQFile::decodeName(link);
- else
+ }
+ else {
dir = TQDir::cleanDirPath(dir+TQFile::decodeName(link));
+ }
}
#endif
addResourceDir(type, dir+QChar('/'));
@@ -1130,7 +1139,7 @@ TQString KStandardDirs::saveLocation(const char *type,
if (KDE_stat(TQFile::encodeName(fullPath), &st) != 0 || !(S_ISDIR(st.st_mode))) {
if(!create) {
#ifndef NDEBUG
- kdDebug() << TQString("save location %1 doesn't exist").arg(fullPath) << endl;
+ printf("%s", TQString("save location %1 doesn't exist\n").arg(fullPath).ascii());
#endif
return fullPath;
}
@@ -1139,8 +1148,9 @@ TQString KStandardDirs::saveLocation(const char *type,
}
dircache.remove(type);
}
- if (!fullPath.endsWith("/"))
+ if (!fullPath.endsWith("/")) {
fullPath += "/";
+ }
return fullPath;
}
@@ -1261,8 +1271,9 @@ TQString KStandardDirs::kfsstnd_defaultprefix()
#else //UNIX
s->defaultprefix = KDEDIR;
#endif
- if (s->defaultprefix.isEmpty())
- kdWarning() << "KStandardDirs::kfsstnd_defaultprefix(): default KDE prefix not found!" << endl;
+ if (s->defaultprefix.isEmpty()) {
+ printf("KStandardDirs::kfsstnd_defaultprefix(): default TDE prefix not found!\n");
+ }
return s->defaultprefix;
}
@@ -1278,8 +1289,9 @@ TQString KStandardDirs::kfsstnd_defaultbindir()
if (s->defaultbindir.isEmpty())
s->defaultbindir = kfsstnd_defaultprefix() + TQString::fromLatin1("/bin");
#endif
- if (s->defaultbindir.isEmpty())
- kdWarning() << "KStandardDirs::kfsstnd_defaultbindir(): default binary KDE dir not found!" << endl;
+ if (s->defaultbindir.isEmpty()) {
+ printf("KStandardDirs::kfsstnd_defaultbindir(): default binary TDE dir not found!\n");
+ }
return s->defaultbindir;
}