12 #define getpid GetCurrentProcessId
17 QString mkdtemp(QString tmpl)
19 static const char letters[] =
20 "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
22 static uint64_t value;
24 const unsigned int ATTEMPTS_MIN = (62 * 62 * 62);
26 if (tmpl.length() < 6 || !tmpl.endsWith("XXXXXX")) {
30 uint64_t random_time_bits = time(NULL);
32 value += (random_time_bits ^ getpid());
35 for (count = 0; count < ATTEMPTS_MIN; value += 7777, ++count) {
38 XXXXXX.append(letters[v % 62]);
40 XXXXXX.append(letters[v % 62]);
42 XXXXXX.append(letters[v % 62]);
44 XXXXXX.append(letters[v % 62]);
46 XXXXXX.append(letters[v % 62]);
48 XXXXXX.append(letters[v % 62]);
50 tmpl.replace(tmpl.length() - 6, 6, XXXXXX);
54 if (dir.mkpath(tmpl)) {