]> code.delx.au - gnu-emacs/blobdiff - src/callproc.c
Groff \# comments.
[gnu-emacs] / src / callproc.c
index 9f90e9d75379c92c2172927e35fe7f38694b8aad..90e5b11a9a2efafd0e536495a5c5dc63d1afd9e9 100644 (file)
@@ -1,6 +1,6 @@
 /* Synchronous subprocess invocation for GNU Emacs.
    Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1999, 2000, 2001,
-                 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+                 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -203,6 +203,10 @@ t (mix it with ordinary output), or a file name string.
 Fourth arg DISPLAY non-nil means redisplay buffer as output is inserted.
 Remaining arguments are strings passed as command arguments to PROGRAM.
 
+If executable PROGRAM can't be found as an executable, `call-process'
+signals a Lisp error.  `call-process' reports errors in execution of
+the program only through its return and output.
+
 If BUFFER is 0, `call-process' returns immediately with value nil.
 Otherwise it waits for PROGRAM to terminate
 and returns a numeric exit status or a signal description string.
@@ -295,6 +299,10 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS)  */)
              val = Qnil;
          }
        setup_coding_system (Fcheck_coding_system (val), &argument_coding);
+       if (argument_coding.common_flags & CODING_ASCII_INCOMPATIBLE_MASK)
+         setup_coding_system (Qraw_text, &argument_coding);
+       if (argument_coding.eol_type == CODING_EOL_UNDECIDED)
+         argument_coding.eol_type = system_eol_type;
       }
   }
 
@@ -1096,7 +1104,11 @@ usage: (call-process-region START END PROGRAM &optional DELETE BUFFER DISPLAY &r
 
 #ifdef HAVE_MKSTEMP
  {
-   int fd = mkstemp (tempfile);
+   int fd;
+
+   BLOCK_INPUT;
+   fd = mkstemp (tempfile);
+   UNBLOCK_INPUT;
    if (fd == -1)
      report_file_error ("Failed to open temporary file",
                        Fcons (Vtemp_file_name_pattern, Qnil));
@@ -1470,7 +1482,7 @@ getenv_internal (var, varlen, value, valuelen)
 DEFUN ("getenv-internal", Fgetenv_internal, Sgetenv_internal, 1, 1, 0,
        doc: /* Return the value of environment variable VAR, as a string.
 VAR should be a string.  Value is nil if VAR is undefined in the environment.
-This function consults the variable ``process-environment'' for its value.  */)
+This function consults the variable `process-environment' for its value.  */)
      (var)
      Lisp_Object var;
 {
@@ -1657,7 +1669,8 @@ syms_of_callproc ()
 
   DEFVAR_LISP ("shell-file-name", &Vshell_file_name,
               doc: /* *File name to load inferior shells from.
-Initialized from the SHELL environment variable.  */);
+Initialized from the SHELL environment variable, or to a system-dependent
+default if SHELL is not set.  */);
 
   DEFVAR_LISP ("exec-path", &Vexec_path,
               doc: /* *List of directories to search programs to run in subprocesses.
@@ -1679,12 +1692,12 @@ These are files intended for Emacs to use while it runs.  */);
 
   DEFVAR_LISP ("doc-directory", &Vdoc_directory,
               doc: /* Directory containing the DOC file that comes with GNU Emacs.
-This is usually the same as data-directory.  */);
+This is usually the same as `data-directory'.  */);
 
   DEFVAR_LISP ("configure-info-directory", &Vconfigure_info_directory,
               doc: /* For internal use by the build procedure only.
 This is the name of the directory in which the build procedure installed
-Emacs's info files; the default value for Info-default-directory-list
+Emacs's info files; the default value for `Info-default-directory-list'
 includes this.  */);
   Vconfigure_info_directory = build_string (PATH_INFO);