189 |
{ |
{ |
190 |
char *diffout; |
char *diffout; |
191 |
int retval; |
int retval; |
|
bool save_noexec; |
|
192 |
|
|
193 |
/* Remember that the first word in the `call_diff_setup' string is used |
/* Remember that the first word in the `call_diff_setup' string is used |
194 |
now only for diagnostic messages -- CVS no longer forks to run |
now only for diagnostic messages -- CVS no longer forks to run |
217 |
else if (retval == 2) |
else if (retval == 2) |
218 |
error (1, 0, "diff3 failed."); |
error (1, 0, "diff3 failed."); |
219 |
|
|
220 |
save_noexec = noexec; |
force_copy_file (diffout, dest); |
|
noexec = false; |
|
|
copy_file (diffout, dest); |
|
|
noexec = save_noexec; |
|
221 |
|
|
222 |
/* Clean up. */ |
/* Clean up. */ |
223 |
{ |
if (CVS_UNLINK (diffout) < 0 && !existence_error (errno)) |
224 |
int save_noexec = noexec; |
error (0, errno, "cannot remove temp file `%s'", diffout); |
225 |
noexec = 0; |
free (diffout); |
|
if (unlink_file (diffout) < 0) |
|
|
{ |
|
|
if (!existence_error (errno)) |
|
|
error (0, errno, "cannot remove temp file `%s'", diffout); |
|
|
} |
|
|
free (diffout); |
|
|
noexec = save_noexec; |
|
|
} |
|
226 |
|
|
227 |
return retval; |
return retval; |
228 |
} |
} |