Subject: Re: 23.1; shell-command overwrites whole buffer

From: Chong Yidong <[email-masked]>
Date: Sat, 14 Nov 2009 11:09:30 -0500

>   M-: (shell-command "date" (get-buffer "*scratch*"))
>
> results in the prior contents of the *scratch* buffer being
> overwritten.  This seems to contradict the last sentence in the
> following paragraph of the docstring for shell-command:
>
>     The optional second argument output-buffer, if non-nil, says to
>     put the output in some other buffer.  If output-buffer is a buffer
>     or buffer name, put the output there.  If output-buffer is not a
>     buffer and not nil, insert output in current buffer.  (This cannot
>     be done asynchronously.)  In either case, the output is inserted
>     after point (leaving mark after it).

Thanks for the bug report.  This is really a documentation bug, because
shell-command has always erased the buffer since the first version of
Emacs, and other code depends on this behavior.  I've amended the
docstring to mention that the buffer is erased.