diff options
Diffstat (limited to 'src/callproc.c')
-rw-r--r-- | src/callproc.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/callproc.c b/src/callproc.c index 4e81bb62c3a..128bf8825e6 100644 --- a/src/callproc.c +++ b/src/callproc.c @@ -896,9 +896,11 @@ static Lisp_Object delete_temp_file (name) Lisp_Object name; { - /* Use Fdelete_file (indirectly) because that runs a file name handler. - We did that when writing the file, so we should do so when deleting. */ + /* Suppress jka-compr handling, etc. */ + int count = SPECPDL_INDEX (); + specbind (intern ("file-name-handler-alist"), Qnil); internal_delete_file (name); + unbind_to (count, Qnil); return Qnil; } @@ -1009,6 +1011,9 @@ usage: (call-process-region START END PROGRAM &optional DELETE BUFFER DISPLAY &r int count1 = SPECPDL_INDEX (); specbind (intern ("coding-system-for-write"), val); + /* POSIX lets mk[s]temp use "."; don't invoke jka-compr if we + happen to get a ".Z" suffix. */ + specbind (intern ("file-name-handler-alist"), Qnil); Fwrite_region (start, end, filename_string, Qnil, Qlambda, Qnil, Qnil); unbind_to (count1, Qnil); |