(directory_files_internal_unwind, directory_files_internal)
authorYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Sun, 27 Aug 2006 07:08:39 +0000 (07:08 +0000)
committerYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Sun, 27 Aug 2006 07:08:39 +0000 (07:08 +0000)
(file_name_completion): Add BLOCK_INPUT around opendir/closedir.

src/dired.c

index 17a80a3..b469d68 100644 (file)
@@ -134,7 +134,9 @@ directory_files_internal_unwind (dh)
      Lisp_Object dh;
 {
   DIR *d = (DIR *) XSAVE_VALUE (dh)->pointer;
+  BLOCK_INPUT;
   closedir (d);
+  UNBLOCK_INPUT;
   return Qnil;
 }
 
@@ -196,7 +198,9 @@ directory_files_internal (directory, full, match, nosort, attrs, id_format)
   /* Now *bufp is the compiled form of MATCH; don't call anything
      which might compile a new regexp until we're done with the loop!  */
 
+  BLOCK_INPUT;
   d = opendir (SDATA (dirfilename));
+  UNBLOCK_INPUT;
   if (d == NULL)
     report_file_error ("Opening directory", Fcons (directory, Qnil));
 
@@ -321,7 +325,9 @@ directory_files_internal (directory, full, match, nosort, attrs, id_format)
        }
     }
 
+  BLOCK_INPUT;
   closedir (d);
+  UNBLOCK_INPUT;
 
   /* Discard the unwind protect.  */
   specpdl_ptr = specpdl + count;
@@ -508,7 +514,9 @@ file_name_completion (file, dirname, all_flag, ver_flag)
     {
       int inner_count = SPECPDL_INDEX ();
 
+      BLOCK_INPUT;
       d = opendir (SDATA (Fdirectory_file_name (encoded_dir)));
+      UNBLOCK_INPUT;
       if (!d)
        report_file_error ("Opening directory", Fcons (dirname, Qnil));