summaryrefslogtreecommitdiff
path: root/src/fileops.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/fileops.c')
-rw-r--r--src/fileops.c64
1 files changed, 2 insertions, 62 deletions
diff --git a/src/fileops.c b/src/fileops.c
index d754c49ee..5dd4a3806 100644
--- a/src/fileops.c
+++ b/src/fileops.c
@@ -25,11 +25,11 @@ int gitfo_mkdir_2file(const char *file_path)
return GIT_SUCCESS;
}
-static int creat_tempfile(char *path_out, const char *tmp_dir, const char *filename)
+int gitfo_mktemp(char *path_out, const char *filename)
{
int fd;
- git__joinpath(path_out, tmp_dir, filename);
+ strcpy(path_out, filename);
strcat(path_out, "_git2_XXXXXX");
#if defined(_MSC_VER)
@@ -46,66 +46,6 @@ static int creat_tempfile(char *path_out, const char *tmp_dir, const char *filen
return fd >= 0 ? fd : GIT_EOSERR;
}
-static const char *find_tmpdir(void)
-{
- static int tmpdir_not_found = 0;
- static char temp_dir[GIT_PATH_MAX];
- static const char *env_vars[] = {
- "TEMP", "TMP", "TMPDIR"
- };
-
- unsigned int i, j;
- char test_file[GIT_PATH_MAX];
-
- if (tmpdir_not_found)
- return NULL;
-
- if (temp_dir[0] != '\0')
- return temp_dir;
-
- for (i = 0; i < ARRAY_SIZE(env_vars); ++i) {
- char *env_path;
-
- env_path = getenv(env_vars[i]);
- if (env_path == NULL)
- continue;
-
- strcpy(temp_dir, env_path);
-
- /* Fix backslashes because Windows environment vars
- * are probably fucked up */
- for (j = 0; j < strlen(temp_dir); ++j)
- if (temp_dir[j] == '\\')
- temp_dir[j] = '/';
-
- if (creat_tempfile(test_file, temp_dir, "writetest") >= 0) {
- gitfo_unlink(test_file);
- return temp_dir;
- }
- }
-
- /* last resort: current folder. */
- strcpy(temp_dir, "./");
- if (creat_tempfile(test_file, temp_dir, "writetest") >= 0) {
- gitfo_unlink(test_file);
- return temp_dir;
- }
-
- tmpdir_not_found = 1;
- return NULL;
-}
-
-int gitfo_creat_tmp(char *path_out, const char *filename)
-{
- const char *tmp_dir;
-
- tmp_dir = find_tmpdir();
- if (tmp_dir == NULL)
- return GIT_EOSERR;
-
- return creat_tempfile(path_out, tmp_dir, filename);
-}
-
int gitfo_open(const char *path, int flags)
{
int fd = open(path, flags | O_BINARY);