Skip to content

Commit 4f0de63

Browse files
authored
Merge pull request #1709 from heinezen/fix/tempfile-linker
Fix definition of static functions for creating temp files/dirs
2 parents 1085ff3 + c0c082a commit 4f0de63

File tree

3 files changed

+14
-7
lines changed

3 files changed

+14
-7
lines changed

libopenage/util/file.cpp

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414

1515
#include "util/filelike/native.h"
1616
#include "util/filelike/python.h"
17+
#include "util/fslike/directory.h"
1718
#include "util/path.h"
1819
#include "util/strings.h"
19-
#include "util/fslike/directory.h"
2020

2121

2222
namespace openage::util {
@@ -122,13 +122,20 @@ std::ostream &operator<<(std::ostream &stream, const File &file) {
122122
return stream;
123123
}
124124

125-
static File get_temp_file() {
125+
File File::get_temp_file(bool executable) {
126126
fslike::Directory temp_dir = fslike::Directory::get_temp_directory();
127127
std::string file_name = std::tmpnam(nullptr);
128128
std::ostringstream dir_path;
129129
temp_dir.repr(dir_path);
130-
mode_t mode = 0777;
131-
File file_wrapper = File(dir_path.str() + file_name, mode);
130+
131+
if (executable) {
132+
// 0755 == rwxr-xr-x
133+
File file_wrapper = File(dir_path.str() + file_name, 0755);
134+
return file_wrapper;
135+
}
136+
137+
// 0644 == rw-r--r--
138+
File file_wrapper = File(dir_path.str() + file_name, 0644);
132139
return file_wrapper;
133140
}
134141

libopenage/util/file.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ class OAAPI File {
100100
std::vector<std::string> get_lines();
101101
std::shared_ptr<filelike::FileLike> get_fileobj() const;
102102

103-
static File get_temp_file();
103+
static File get_temp_file(bool executable = false);
104104

105105
protected:
106106
std::shared_ptr<filelike::FileLike> filelike;

libopenage/util/fslike/directory.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
#include <cstdio>
1212
#include <dirent.h>
1313
#include <fcntl.h>
14-
#include <iostream>
1514
#include <filesystem>
15+
#include <iostream>
1616
#include <sys/stat.h>
1717
#include <sys/types.h>
1818
#include <utility>
@@ -293,7 +293,7 @@ std::ostream &Directory::repr(std::ostream &stream) {
293293
return stream;
294294
}
295295

296-
static Directory get_temp_directory() {
296+
Directory Directory::get_temp_directory() {
297297
std::string temp_dir_path = std::filesystem::temp_directory_path() / std::tmpnam(nullptr);
298298
bool create = true;
299299
Directory directory = Directory(temp_dir_path, create);

0 commit comments

Comments
 (0)