LGTM, but: why do you need to say it's inserted after point, since the buffer is erased anyway? > +Any other value, excluding nil, means to insert the output > +in the current buffer after START. "Any other non-nil value"? I read this wrong on the first read. Doesn't matter much though. Clément. On 2016-07-10 18:41, Tino Calancha wrote: > > Doc strings don't specify correctly when the buffer > is erased, in what buffer position the output is > inserted or when the mark is set. > > emacs -Q > ;; Evaluate following two forms > (progn > (switch-to-buffer (get-buffer-create "*out*")) > (insert (format "1 2\n\n\n\nfoo\n")) ; point is at 12 > (shell-command-on-region 1 4 "printf 'bar\n'" t)) ; point is at 5 > > (progn > (switch-to-buffer (get-buffer-create "*out*")) > (shell-command "date" t)) ; buffer is not erased > > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; > >> From 90915fdad69939886a3a1dcc377453b2e98b2089 Mon Sep 17 00:00:00 2001 > From: Tino Calancha > Date: Mon, 11 Jul 2016 01:33:22 +0900 > Subject: [PATCH] * lisp/simple.el (shell-command, shell-command-on-region): > Fix doc strings > > --- > lisp/simple.el | 18 +++++++++--------- > 1 file changed, 9 insertions(+), 9 deletions(-) > > diff --git a/lisp/simple.el b/lisp/simple.el > index ba026af..cb8c0ce 100644 > --- a/lisp/simple.el > +++ b/lisp/simple.el > @@ -3235,11 +3235,11 @@ 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 buffer is first erased, and the output is > -inserted after point (leaving mark after it). > +If OUTPUT-BUFFER is a buffer or buffer name, erase that buffer > +and insert the output there after point. > +If OUTPUT-BUFFER is not a buffer and not nil, insert the output > +in current buffer after point leaving mark after it. > +(This cannot be done asynchronously). > > If the command terminates without error, but generates output, > and you did not specify \"insert it in the current buffer\", > @@ -3504,10 +3504,10 @@ shell-command-on-region > > Optional fourth arg OUTPUT-BUFFER specifies where to put the > command's output. If the value is a buffer or buffer name, > -put the output there. If the value is nil, use the buffer > -`*Shell Command Output*'. Any other value, excluding nil, > -means to insert the output in the current buffer. In either case, > -the output is inserted after point (leaving mark after it). > +erase that buffer and insert the output there. > +If the value is nil, use the buffer `*Shell Command Output*'. > +Any other value, excluding nil, means to insert the output > +in the current buffer after START. > > Optional fifth arg REPLACE, if non-nil, means to insert the > output in place of text from START to END, putting point and mark