summaryrefslogtreecommitdiff
path: root/src/callproc.c
diff options
context:
space:
mode:
authorGlenn Morris <rgm@gnu.org>2013-02-01 19:38:21 -0800
committerGlenn Morris <rgm@gnu.org>2013-02-01 19:38:21 -0800
commit94fbc901707d7c1fd7ec0471d288e585caf59b34 (patch)
tree6d1d48970b231f2ccd2f7c36e4c7298302c00e93 /src/callproc.c
parent98da8c0f542465341b930d36db8000b5bb2c77c4 (diff)
parent13841bfcc20881a268e3c853f65312390c589700 (diff)
downloademacs-94fbc901707d7c1fd7ec0471d288e585caf59b34.tar.gz
Merge from emacs-24; up to 2012-12-13T09:45:54Z!lekktu@gmail.com
Diffstat (limited to 'src/callproc.c')
-rw-r--r--src/callproc.c48
1 files changed, 27 insertions, 21 deletions
diff --git a/src/callproc.c b/src/callproc.c
index 5eba3271358..9d81bb18295 100644
--- a/src/callproc.c
+++ b/src/callproc.c
@@ -445,28 +445,34 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS) */)
path = Fsubstring (path, make_number (2), Qnil);
new_argv = SAFE_ALLOCA ((nargs > 4 ? nargs - 2 : 2) * sizeof *new_argv);
- if (nargs > 4)
- {
- ptrdiff_t i;
- struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5;
- GCPRO5 (infile, buffer, current_dir, path, error_file);
- argument_coding.dst_multibyte = 0;
- for (i = 4; i < nargs; i++)
- {
- argument_coding.src_multibyte = STRING_MULTIBYTE (args[i]);
- if (CODING_REQUIRE_ENCODING (&argument_coding))
- /* We must encode this argument. */
- args[i] = encode_coding_string (&argument_coding, args[i], 1);
- }
- UNGCPRO;
- for (i = 4; i < nargs; i++)
- new_argv[i - 3] = SSDATA (args[i]);
- new_argv[i - 3] = 0;
- }
- else
- new_argv[1] = 0;
- new_argv[0] = SSDATA (path);
+ {
+ struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5;
+
+ GCPRO5 (infile, buffer, current_dir, path, error_file);
+ if (nargs > 4)
+ {
+ ptrdiff_t i;
+
+ argument_coding.dst_multibyte = 0;
+ for (i = 4; i < nargs; i++)
+ {
+ argument_coding.src_multibyte = STRING_MULTIBYTE (args[i]);
+ if (CODING_REQUIRE_ENCODING (&argument_coding))
+ /* We must encode this argument. */
+ args[i] = encode_coding_string (&argument_coding, args[i], 1);
+ }
+ for (i = 4; i < nargs; i++)
+ new_argv[i - 3] = SSDATA (args[i]);
+ new_argv[i - 3] = 0;
+ }
+ else
+ new_argv[1] = 0;
+ if (STRING_MULTIBYTE (path))
+ path = ENCODE_FILE (path);
+ new_argv[0] = SSDATA (path);
+ UNGCPRO;
+ }
#ifdef MSDOS /* MW, July 1993 */