summaryrefslogtreecommitdiff
path: root/src/callproc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/callproc.c')
-rw-r--r--src/callproc.c9
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);