Commit 5437e9f9 authored by Jim Blandy's avatar Jim Blandy

New macros NULL_DEVICE and EXEC_SUFFIXES, to give the name of the

	equivalent of /dev/null, and the suffixes used by executable
	files.  This is simple, and helps people porting Emacs to other
	operating systems.
	* process.h (NULL_DEVICE): Give this a default value.
	* process.c (Fstart_process): Pass EXEC_SUFFIXES to openp.
	(Fprocess_send_eof): Use NULL_DEVICE instead of "/dev/null".
	* callproc.c (Fcall_process): Pass EXEC_SUFFIXES to openp.
	Use NULL_DEVICE instead of "/dev/null".
parent 9115e938
......@@ -151,11 +151,7 @@ If you quit, the process is killed with SIGINT, or SIGKILL if you quit again.")
CHECK_STRING (infile, 1);
}
else
#ifdef VMS
infile = build_string ("NLA0:");
#else
infile = build_string ("/dev/null");
#endif /* not VMS */
infile = build_string (NULL_DEVICE);
if (nargs >= 3)
{
......@@ -220,7 +216,7 @@ If you quit, the process is killed with SIGINT, or SIGKILL if you quit again.")
report_file_error ("Opening process input file", Fcons (infile, Qnil));
}
/* Search for program; barf if not found. */
openp (Vexec_path, args[0], "", &path, 1);
openp (Vexec_path, args[0], EXEC_SUFFIXES, &path, 1);
if (NILP (path))
{
close (filefd);
......@@ -229,7 +225,7 @@ If you quit, the process is killed with SIGINT, or SIGKILL if you quit again.")
new_argv[0] = XSTRING (path)->data;
if (XTYPE (buffer) == Lisp_Int)
fd[1] = open ("/dev/null", O_WRONLY), fd[0] = -1;
fd[1] = open (NULL_DEVICE, O_WRONLY), fd[0] = -1;
else
{
pipe (fd);
......
......@@ -1034,7 +1034,7 @@ Remaining arguments are strings to give program as arguments.")
if (new_argv[0][0] != '/')
{
tem = Qnil;
openp (Vexec_path, program, "", &tem, 1);
openp (Vexec_path, program, EXEC_SUFFIXES, &tem, 1);
if (NILP (tem))
report_file_error ("Searching for program", Fcons (program, Qnil));
new_argv[0] = XSTRING (tem)->data;
......@@ -2597,7 +2597,7 @@ nil, indicating the current buffer's process.")
else
{
close (XPROCESS (proc)->outfd);
XFASTINT (XPROCESS (proc)->outfd) = open ("/dev/null", O_WRONLY);
XFASTINT (XPROCESS (proc)->outfd) = open (NULL_DEVICE, O_WRONLY);
}
#endif /* VMS */
#endif /* did not do TOICREMOTE */
......
......@@ -91,3 +91,14 @@ extern char *synch_process_death;
this is exit code of synchronous subprocess. */
extern int synch_process_retcode;
/* The name of the file open to get a null file, or a data sink.
VMS, MS-DOS, and OS/2 redefine this. */
#ifndef NULL_DEVICE
#define NULL_DEVICE "/dev/null"
#endif
/* A string listing the possible suffixes used for executable files,
separated by colons. VMS, MS-DOS, and OS/2 redefine this. */
#ifndef EXEC_SUFFIXES
#define EXEC_SUFFIXES ""
#endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment