diff options
Diffstat (limited to 'src/syrep.c')
-rw-r--r-- | src/syrep.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/syrep.c b/src/syrep.c index ad7619a..e68e2f1 100644 --- a/src/syrep.c +++ b/src/syrep.c @@ -42,6 +42,12 @@ static int do_diff(void) { goto finish; } + if (args.local_temp_flag && isdirectory(args.inputs[0]) >= 1) { + const char *p = get_attached_filename(args.inputs[0], SYREP_TEMPDIR); + mkdir(p, 0777); + setenv("TMPDIR", p, 1); + } + if (!(path1 = strdup(get_attached_filename(args.inputs[0], SYREP_SNAPSHOTFILENAME)))) goto finish; @@ -100,6 +106,12 @@ static int do_merge(void) { fprintf(stderr, "ERROR: %s is not a directory\n", args.inputs[1]); goto finish; } + + if (args.local_temp_flag) { + const char *p = get_attached_filename(args.inputs[1], SYREP_TEMPDIR); + mkdir(p, 0777); + setenv("TMPDIR", p, 1); + } if (!(path1 = strdup(get_attached_filename(args.inputs[0], SYREP_SNAPSHOTFILENAME)))) goto finish; @@ -154,6 +166,12 @@ static int do_makepatch(void) { goto finish; } + if (args.local_temp_flag) { + const char *p = get_attached_filename(args.inputs[0], SYREP_TEMPDIR); + mkdir(p, 0777); + setenv("TMPDIR", p, 1); + } + if (!(path1 = strdup(get_attached_filename(args.inputs[0], SYREP_SNAPSHOTFILENAME)))) goto finish; @@ -209,6 +227,12 @@ static int do_foreach(int (*func) (struct syrep_db_context *c), int m) { for (i = 0; i < args.inputs_num; i++) { static char saved_cwd[PATH_MAX]; + if (args.local_temp_flag && isdirectory(args.inputs[i]) >= 1) { + const char *p = get_attached_filename(args.inputs[i], SYREP_TEMPDIR); + mkdir(p, 0777); + setenv("TMPDIR", p, 1); + } + if (!(path = strdup(get_attached_filename(args.inputs[i], SYREP_SNAPSHOTFILENAME)))) goto finish; @@ -288,6 +312,12 @@ static int do_update(void) { return 1; } + if (args.local_temp_flag) { + const char *p = get_attached_filename(args.inputs[i], SYREP_TEMPDIR); + mkdir(p, 0777); + setenv("TMPDIR", p, 1); + } + if (!(path = strdup(get_attached_filename(args.inputs[i], SYREP_SNAPSHOTFILENAME)))) goto finish; |