GNU bug report logs - #63432
30.0.50; Handle current-prefix-arg in async-shell-command

Previous Next

Package: emacs;

Reported by: Gabriel <gabriel376 <at> hotmail.com>

Date: Wed, 10 May 2023 23:10:02 UTC

Severity: normal

Found in version 30.0.50

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #8 received at 63432 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Gabriel <gabriel376 <at> hotmail.com>
Cc: 63432 <at> debbugs.gnu.org
Subject: Re: bug#63432: 30.0.50;
 Handle current-prefix-arg in async-shell-command
Date: Sat, 13 May 2023 16:43:42 +0300
> From: Gabriel <gabriel376 <at> hotmail.com>
> Date: Wed, 10 May 2023 20:04:24 -0300
> 
> Steps:
> 1) emacs -Q from master branch (3adc1e7f379)
> 2) C-u M-& "ls"
>    Error: shell-command: Wrong type argument: stringp, (4)
> 
> Cause:
> When called interactively, `async-shell-command' pass argument
> OUTPUT-BUFFER as `current-prefix-arg' to `shell-command'.  As per
> docstring of `shell-command':
> 
>   "If OUTPUT-BUFFER is not a buffer and not nil (which happens
>   interactively when the prefix argument is given), insert the output in
>   current buffer after point leaving mark after it.  This cannot be done
>   asynchronously."

Yes, this bug was there since the day async-shell-command was added to
Emacs.

> diff --git a/lisp/simple.el b/lisp/simple.el
> index 58517dd81f9..ba832581955 100644
> --- a/lisp/simple.el
> +++ b/lisp/simple.el
> @@ -4499,10 +4499,12 @@ async-shell-command
>  				((eq major-mode 'dired-mode)
>  				 (dired-get-filename nil t)))))
>  			  (and filename (file-relative-name filename))))
> -    current-prefix-arg
> +    nil
>      shell-command-default-error-buffer))
>    (unless (string-match "&[ \t]*\\'" command)
>      (setq command (concat command " &")))
> +  (when (and output-buffer (numberp output-buffer))
> +    (error "Invalid output buffer"))
>    (shell-command command output-buffer error-buffer))

Thanks, but I don't understand why we need the error message.  Isn't
it enough to pass nil as 2nd argument to shell-command?




This bug report was last modified 2 years and 11 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.