diff options
author | Karoly Lorentey <lorentey@elte.hu> | 2006-01-30 18:06:22 +0000 |
---|---|---|
committer | Karoly Lorentey <lorentey@elte.hu> | 2006-01-30 18:06:22 +0000 |
commit | e31331e5cb40d3e56e4160229b33f2dad9d5e4ab (patch) | |
tree | 29d504a565260e6ba5d2972ec742a25574b7357a /src/callproc.c | |
parent | 9688ff534500a278871366f699cd0ead3524b68a (diff) | |
parent | 75e49434a5b90f797fe9b0250d426793793fb8e7 (diff) | |
download | emacs-e31331e5cb40d3e56e4160229b33f2dad9d5e4ab.tar.gz emacs-e31331e5cb40d3e56e4160229b33f2dad9d5e4ab.tar.bz2 emacs-e31331e5cb40d3e56e4160229b33f2dad9d5e4ab.zip |
Merged from miles@gnu.org--gnu-2005 (patch 187, 704)
Patches applied:
* emacs@sv.gnu.org/emacs--devo--0--base-0
tag of miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-704
* emacs@sv.gnu.org/emacs--devo--0--patch-1
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-2
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-3
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-4
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-5
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-6
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-7
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-8
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-9
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-10
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-11
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-12
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-13
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-14
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-15
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-16
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-17
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-18
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-19
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-20
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-21
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-22
Install ERC.
* emacs@sv.gnu.org/emacs--devo--0--patch-23
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-24
Fix ERC compiler warnings.
* emacs@sv.gnu.org/emacs--devo--0--patch-25
Use utf-8 encoding in ERC ChangeLogs.
* emacs@sv.gnu.org/emacs--devo--0--patch-26
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-27
Merge ERC-related Viper hacks into Viper.
* emacs@sv.gnu.org/emacs--devo--0--patch-28
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-29
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-30
Merge from erc--main--0
* emacs@sv.gnu.org/gnus--rel--5.10--base-0
tag of miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-187
* emacs@sv.gnu.org/gnus--rel--5.10--patch-1
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-2
Merge from emacs--devo--0
* emacs@sv.gnu.org/gnus--rel--5.10--patch-3
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-4
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-5
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-6
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-7
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-704
Update from CVS
* miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-187
Update from CVS
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-501
Diffstat (limited to 'src/callproc.c')
-rw-r--r-- | src/callproc.c | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/src/callproc.c b/src/callproc.c index eebbabb2739..71071217208 100644 --- a/src/callproc.c +++ b/src/callproc.c @@ -362,11 +362,11 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS) */) protected by the caller, so all we really have to worry about is buffer. */ { - struct gcpro gcpro1, gcpro2, gcpro3; + struct gcpro gcpro1, gcpro2, gcpro3, gcpro4; current_dir = current_buffer->directory; - GCPRO3 (infile, buffer, current_dir); + GCPRO4 (infile, buffer, current_dir, error_file); current_dir = expand_and_dir_to_file (Funhandled_file_name_directory (current_dir), @@ -375,6 +375,12 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS) */) report_file_error ("Setting current directory", Fcons (current_buffer->directory, Qnil)); + if (STRING_MULTIBYTE (infile)) + infile = ENCODE_FILE (infile); + if (STRING_MULTIBYTE (current_dir)) + current_dir = ENCODE_FILE (current_dir); + if (STRINGP (error_file) && STRING_MULTIBYTE (error_file)) + error_file = ENCODE_FILE (error_file); UNGCPRO; } @@ -383,6 +389,7 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS) */) filefd = emacs_open (SDATA (infile), O_RDONLY, 0); if (filefd < 0) { + infile = DECODE_FILE (infile); report_file_error ("Opening process input file", Fcons (infile, Qnil)); } /* Search for program; barf if not found. */ @@ -540,14 +547,13 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS) */) #ifdef MSDOS unlink (tempfile); #endif - report_file_error ("Cannot redirect stderr", - Fcons ((NILP (error_file) - ? build_string (NULL_DEVICE) : error_file), - Qnil)); + if (NILP (error_file)) + error_file = build_string (NULL_DEVICE); + else if (STRINGP (error_file)) + error_file = DECODE_FILE (error_file); + report_file_error ("Cannot redirect stderr", Fcons (error_file, Qnil)); } - current_dir = ENCODE_FILE (current_dir); - #ifdef MAC_OS8 { /* Call run_mac_command in sysdep.c here directly instead of doing |