-rw-r--r-- | core/applets/vmemo/vmemo.cpp | 73 | ||||
-rw-r--r-- | noncore/apps/opie-console/TEHistory.cpp | 27 |
2 files changed, 72 insertions, 28 deletions
diff --git a/core/applets/vmemo/vmemo.cpp b/core/applets/vmemo/vmemo.cpp index 8ba1eb7..1a8f154 100644 --- a/core/applets/vmemo/vmemo.cpp +++ b/core/applets/vmemo/vmemo.cpp | |||
@@ -331,8 +331,28 @@ bool VMemo::startRecording() { | |||
331 | 331 | ||
332 | // open tmp file here | 332 | // open tmp file here |
333 | char *pointer; | 333 | char *tmpFilePath = 0; |
334 | pointer=tmpnam(NULL); | 334 | char *tmpDir = getenv("TMPDIR"); |
335 | odebug << "Opening tmp file " << pointer << "" << oendl; | 335 | if (tmpDir && *tmpDir != '\0') { |
336 | tmpFilePath = new char[strlen(tmpDir) + strlen("/vmemo-wav-XXXXXX") + 1]; | ||
337 | strcpy(tmpFilePath, tmpDir); | ||
338 | free(tmpDir); | ||
339 | } else { | ||
340 | tmpFilePath = new char[strlen("/tmp/vmemo-wav-XXXXXX") + 1]; | ||
341 | strcpy(tmpFilePath, "/tmp"); | ||
342 | } | ||
343 | strcat(tmpFilePath, "/vmemo-wav-XXXXXX"); | ||
344 | mode_t currUmask = umask(S_IRWXO | S_IRWXG); | ||
345 | int tmpFd = mkstemp(tmpFilePath); | ||
346 | umask(currUmask); | ||
347 | if (tmpFd == -1) { | ||
348 | owarn << "Could not open temp file with template " << tmpFilePath | ||
349 | << oendl; | ||
350 | delete [] tmpFilePath; | ||
351 | return false; | ||
352 | } else | ||
353 | odebug << "Opened temp file " << tmpFilePath << "" << oendl; | ||
354 | |||
355 | close(tmpFd); | ||
336 | 356 | ||
337 | if(openWAV(pointer ) == -1) { | 357 | if(openWAV(tmpFilePath ) == -1) { |
338 | 358 | ||
@@ -346,23 +366,26 @@ bool VMemo::startRecording() { | |||
346 | 366 | ||
347 | QString cmd; | 367 | if( fileName.find(".wav",0,true) == -1) |
348 | if( fileName.find(".wav",0,true) == -1) | 368 | fileName += ".wav"; |
349 | fileName += ".wav"; | ||
350 | 369 | ||
351 | cmd.sprintf("mv %s "+fileName, pointer); | 370 | int retVal = rename(tmpFilePath, fileName.local8Bit()); |
352 | // move tmp file to regular file here | 371 | if (retVal == -1) { |
353 | 372 | owarn << "Could not move " << tmpFilePath << " to " << fileName | |
354 | system(cmd.latin1()); | 373 | << oendl; |
355 | 374 | delete [] tmpFilePath; | |
356 | QArray<int> cats(1); | 375 | return false; |
357 | cats[0] = config.readNumEntry("Category", 0); | 376 | } |
358 | 377 | delete [] tmpFilePath; | |
359 | QString dlName("vm_"); | 378 | |
360 | dlName += date; | 379 | QArray<int> cats(1); |
361 | DocLnk l; | 380 | cats[0] = config.readNumEntry("Category", 0); |
362 | l.setFile(fileName); | 381 | |
363 | l.setName(dlName); | 382 | QString dlName("vm_"); |
364 | l.setType("audio/x-wav"); | 383 | dlName += date; |
365 | l.setCategories(cats); | 384 | DocLnk l; |
366 | l.writeLink(); | 385 | l.setFile(fileName); |
367 | return true; | 386 | l.setName(dlName); |
387 | l.setType("audio/x-wav"); | ||
388 | l.setCategories(cats); | ||
389 | l.writeLink(); | ||
390 | return true; | ||
368 | } else | 391 | } else |
diff --git a/noncore/apps/opie-console/TEHistory.cpp b/noncore/apps/opie-console/TEHistory.cpp index 317ce57..e2be42a 100644 --- a/noncore/apps/opie-console/TEHistory.cpp +++ b/noncore/apps/opie-console/TEHistory.cpp | |||
@@ -23,2 +23,3 @@ | |||
23 | #include <sys/types.h> | 23 | #include <sys/types.h> |
24 | #include <sys/stat.h> | ||
24 | #include <unistd.h> | 25 | #include <unistd.h> |
@@ -98,5 +99,25 @@ void HistoryBuffer::setScroll(bool on) | |||
98 | assert( length == 0); | 99 | assert( length == 0); |
99 | FILE* tmp = tmpfile(); if (!tmp) { perror("konsole: cannot open temp file.\n"); return; } | 100 | char* tmpDir = getenv("TMPDIR"); |
100 | ion = dup(fileno(tmp)); if (ion<0) perror("konsole: cannot dup temp file.\n"); | 101 | char* tmpFilePath = 0; |
101 | fclose(tmp); | 102 | if (tmpDir && *tmpDir != '\0') { |
103 | tmpFilePath = new char[strlen(tmpDir) + strlen("/opie-console-HistoryBuffer-XXXXXX") + 1]; | ||
104 | strcpy(tmpFilePath, tmpDir); | ||
105 | free(tmpDir); | ||
106 | } else { | ||
107 | tmpFilePath = new char[strlen("/tmp/opie-console-HistoryBuffer-XXXXXX") + 1]; | ||
108 | strcpy(tmpFilePath, "/tmp"); | ||
109 | } | ||
110 | strcat(tmpFilePath, "/opie-console-HistoryBuffer-XXXXXX"); | ||
111 | mode_t currUmask = umask(S_IRWXO | S_IRWXG); | ||
112 | int tmpfd = mkstemp(tmpFilePath); | ||
113 | delete [] tmpFilePath; | ||
114 | umask(currUmask); | ||
115 | if (tmpfd == -1) { | ||
116 | perror("konsole: cannot open temp file.\n"); | ||
117 | return; | ||
118 | } | ||
119 | ion = dup(tmpfd); | ||
120 | if (ion<0) | ||
121 | perror("konsole: cannot dup temp file.\n"); | ||
122 | close(tmpfd); | ||
102 | } | 123 | } |