Give subprocess creation a way to find a valid current directory
for subprocesses when the buffer's default-directory is a handled
name.
* fileio.c (Funhandled_file_name_directory): New function.
(Qunhandled_file_name_directory): New file-name-handler operation.
(syms_of_fileio): Defsubr Sunhandled_file_name_directory, and
initialize and staticpro Qunhandled_file_name_directory.
* callproc.c (Fcall_process): Call Funhandled_file_name_directory
on the buffer's default directory. Do it earlier in the function
so there's less to GCPRO.
* process.c (create_process): Don't check the validity of the
buffer's default directory here...
(Fstart_process): Instead, do it here; if we call
Funhandled_file_name_directory here, there's less GCPROing to do.
* fileio.c (find_file_handler): Rename this to
Ffind_file_name_handler, and make it visible to lisp. Add a QUIT
to the loop which scans file-name-handler-alist. All uses
changed.
(syms_of_fileio): Mention this new function in the docstring for
Vfile_name_handler_alist. defsubr Sfind_file_name_handler.
* lisp.h (Ffind_file_name_handler): Added extern declaration.
* dired.c: All uses of find_file_handler changed here too.
* fileio.c (syms_of_fileio): Add staticpros for Qexpand_file_name,
Qdirectory_file_name, Qfile_name_directory,
Qfile_name_nondirectory, Qfile_name_as_directory.