mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-30 04:10:54 -08:00
* process.c (Fstart_process):
* callproc.c (Fcall_process): Handle the case where Funhandled_file_name_directory returns nil.
This commit is contained in:
parent
f9ffa1eabb
commit
ca3199106f
5 changed files with 24 additions and 10 deletions
|
|
@ -2800,10 +2800,12 @@ making connections when they don't exist.
|
|||
@end defun
|
||||
|
||||
@defun unhandled-file-name-directory filename
|
||||
This function returns the name of a directory that is not magic. It
|
||||
uses the directory part of @var{filename} if that is not magic. For a
|
||||
magic file name, it invokes the file name handler, which therefore
|
||||
decides what value to return.
|
||||
This function returns the name of a directory that is not magic.
|
||||
It uses the directory part of @var{filename} if that is not magic.
|
||||
For a magic file name, it invokes the file name handler, which
|
||||
therefore decides what value to return. If @var{filename} is not
|
||||
accessible from a local process, then the file name handler should
|
||||
indicate it by returning nil.
|
||||
|
||||
This is useful for running a subprocess; every subprocess must have a
|
||||
non-magic directory to serve as its current directory, and this function
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
2008-02-06 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* process.c (Fstart_process):
|
||||
* callproc.c (Fcall_process): Handle the case where
|
||||
Funhandled_file_name_directory returns nil.
|
||||
|
||||
* font.h (enum lgstring_indices, enum lglyph_indices): New enums.
|
||||
(LGSTRING_SLOT, LGSTRING_SET_SLOT): New macros.
|
||||
* font.c (check_gstring): Use them and AREF to access the vector before
|
||||
|
|
|
|||
|
|
@ -376,9 +376,12 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS) */)
|
|||
|
||||
GCPRO4 (infile, buffer, current_dir, error_file);
|
||||
|
||||
current_dir
|
||||
= expand_and_dir_to_file (Funhandled_file_name_directory (current_dir),
|
||||
Qnil);
|
||||
current_dir = Funhandled_file_name_directory (current_dir);
|
||||
if (NILP (current_dir))
|
||||
/* If the file name handler says that current_dir is unreachable, use
|
||||
a sensible default. */
|
||||
current_dir = build_string ("~/");
|
||||
current_dir = expand_and_dir_to_file (current_dir, Qnil);
|
||||
if (NILP (Ffile_accessible_directory_p (current_dir)))
|
||||
report_file_error ("Setting current directory",
|
||||
Fcons (current_buffer->directory, Qnil));
|
||||
|
|
|
|||
|
|
@ -532,6 +532,8 @@ A `directly usable' directory name is one that may be used without the
|
|||
intervention of any file handler.
|
||||
If FILENAME is a directly usable file itself, return
|
||||
\(file-name-directory FILENAME).
|
||||
If FILENAME refers to a file which is not accessible from a local process,
|
||||
then this should return nil.
|
||||
The `call-process' and `start-process' functions use this function to
|
||||
get a current directory to run processes in. */)
|
||||
(filename)
|
||||
|
|
|
|||
|
|
@ -1614,9 +1614,12 @@ usage: (start-process NAME BUFFER PROGRAM &rest PROGRAM-ARGS) */)
|
|||
|
||||
GCPRO2 (buffer, current_dir);
|
||||
|
||||
current_dir
|
||||
= expand_and_dir_to_file (Funhandled_file_name_directory (current_dir),
|
||||
Qnil);
|
||||
current_dir = Funhandled_file_name_directory (current_dir);
|
||||
if (NILP (current_dir))
|
||||
/* If the file name handler says that current_dir is unreachable, use
|
||||
a sensible default. */
|
||||
current_dir = build_string ("~/");
|
||||
current_dir = expand_and_dir_to_file (current_dir, Qnil);
|
||||
if (NILP (Ffile_accessible_directory_p (current_dir)))
|
||||
report_file_error ("Setting current directory",
|
||||
Fcons (current_buffer->directory, Qnil));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue