From: Stefan Monnier Date: Fri, 5 Sep 2014 01:20:51 +0000 (-0400) Subject: * lisp/subr.el (call-process-shell-command, process-file-shell-command): X-Git-Tag: emacs-25.0.90~2635^2~679^2~349 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=04b134e174b7ce4ce49f26c56791d92dd08fbee1;p=emacs.git * lisp/subr.el (call-process-shell-command, process-file-shell-command): Make the `args' obsolete. (start-process-shell-command, start-file-process-shell-command): Use `declare'. Fixes: debbugs:18409 --- diff --git a/etc/NEWS b/etc/NEWS index bb5e2ab72c0..bdda3ed0672 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -200,6 +200,9 @@ position list returned for such events is now nil. * Lisp Changes in Emacs 24.5 +*** call-process-shell-command and process-file-shell-command +don't take "&rest args" an more. + ** New function `funcall-interactively', which works like `funcall' but makes `called-interactively-p' treat the function as (you guessed it) called interactively. diff --git a/lisp/ChangeLog b/lisp/ChangeLog index dc0c06709d5..2cc27412da4 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,10 @@ +2014-09-05 Stefan Monnier + + * subr.el (call-process-shell-command, process-file-shell-command): + Make the `args' obsolete (bug#18409). + (start-process-shell-command, start-file-process-shell-command): + Use `declare'. + 2014-09-05 Jay Belanger * calc/calc-forms.el (math-normalize-hms): Do a better check for diff --git a/lisp/subr.el b/lisp/subr.el index d085095f372..317b2401bd3 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -2877,23 +2877,21 @@ COMMAND is the shell command to run. An old calling convention accepted any number of arguments after COMMAND, which were just concatenated to COMMAND. This is still supported but strongly discouraged." - ;; We used to use `exec' to replace the shell with the command, - ;; but that failed to handle (...) and semicolon, etc. + (declare (advertised-calling-convention (name buffer command) "23.1")) + ;; We used to use `exec' to replace the shell with the command, + ;; but that failed to handle (...) and semicolon, etc. (start-process name buffer shell-file-name shell-command-switch (mapconcat 'identity args " "))) -(set-advertised-calling-convention 'start-process-shell-command - '(name buffer command) "23.1") (defun start-file-process-shell-command (name buffer &rest args) "Start a program in a subprocess. Return the process object for it. Similar to `start-process-shell-command', but calls `start-file-process'." + (declare (advertised-calling-convention (name buffer command) "23.1")) (start-file-process name buffer (if (file-remote-p default-directory) "/bin/sh" shell-file-name) (if (file-remote-p default-directory) "-c" shell-command-switch) (mapconcat 'identity args " "))) -(set-advertised-calling-convention 'start-file-process-shell-command - '(name buffer command) "23.1") (defun call-process-shell-command (command &optional infile buffer display &rest args) @@ -2909,13 +2907,18 @@ STDERR-FILE may be nil (discard standard error output), 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 additional arguments for COMMAND. Wildcards and redirection are handled as usual in the shell. If BUFFER is 0, `call-process-shell-command' returns immediately with value nil. Otherwise it waits for COMMAND to terminate and returns a numeric exit status or a signal description string. -If you quit, the process is killed with SIGINT, or SIGKILL if you quit again." +If you quit, the process is killed with SIGINT, or SIGKILL if you quit again. + +An old calling convention accepted any number of arguments after DISPLAY, +which were just concatenated to COMMAND. This is still supported but strongly +discouraged." + (declare (advertised-calling-convention + (command &optional infile buffer display) "24.5")) ;; We used to use `exec' to replace the shell with the command, ;; but that failed to handle (...) and semicolon, etc. (call-process shell-file-name @@ -2927,6 +2930,8 @@ If you quit, the process is killed with SIGINT, or SIGKILL if you quit again." &rest args) "Process files synchronously in a separate process. Similar to `call-process-shell-command', but calls `process-file'." + (declare (advertised-calling-convention + (command &optional infile buffer display) "24.5")) (process-file (if (file-remote-p default-directory) "/bin/sh" shell-file-name) infile buffer display