mkdtemp() support for QNX platform

Change-Id: I30feebbbcdbe065e899a048da20ac887d4d48a4f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: David Faure <david.faure@kdab.com>
bb10
Rafael Roquetto 2012-01-24 18:14:07 +01:00 committed by Qt by Nokia
parent 4fce5d1795
commit eb60e93d34
1 changed files with 36 additions and 0 deletions

View File

@ -95,6 +95,42 @@ static QString defaultTemplateName()
return QDir::tempPath() + QLatin1Char('/') + baseName + QLatin1String("-XXXXXX");
}
#ifdef Q_OS_QNX
static char *mkdtemp(char *templateName)
{
static const char letters[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
const int length = strlen(templateName);
char *XXXXXX = templateName + length - 6;
if ((length < 6) || strncmp(XXXXXX, "XXXXXX", 6))
return 0;
for (int i = 0; i < 256; ++i) {
int v = qrand();
/* Fill in the random bits. */
XXXXXX[0] = letters[v % 62];
v /= 62;
XXXXXX[1] = letters[v % 62];
v /= 62;
XXXXXX[2] = letters[v % 62];
v /= 62;
XXXXXX[3] = letters[v % 62];
v /= 62;
XXXXXX[4] = letters[v % 62];
v /= 62;
XXXXXX[5] = letters[v % 62];
if (!mkdir(templateName, 0700))
return templateName;
}
return 0;
}
#endif
void QTemporaryDirPrivate::create(const QString &templateName)
{
#ifdef Q_OS_WIN