[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#52509: 27.2; `call-process-region' won't accept nil as START argumen
From: |
Stephen Berman |
Subject: |
bug#52509: 27.2; `call-process-region' won't accept nil as START argument |
Date: |
Wed, 15 Dec 2021 15:09:08 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) |
On Wed, 15 Dec 2021 18:59:59 +0800 LdBeth <andpuke@foxmail.com> wrote:
> The docstring of `call-process-region' writes:
>
> START and END are normally buffer positions specifying the part of the
> buffer to send to the process.
> If START is nil, that means to use the entire buffer contents; END is
> ignored.
> If START is a string, then send that string to the process
> instead of any buffer contents; END is ignored.
> The remaining arguments are optional.
> Delete the text if fourth arg DELETE is non-nil.
>
> To reproduce this bug, define these functions:
>
> ```
> (defun this-works ()
> (call-process-region (point-min) (point-max) "/bin/cat"
> t t))
>
> (defun this-wont ()
> (call-process-region nil 0 "/bin/cat"
> t t))
> ```
>
> and use `M-:` to execute these two function. The second one would give
> the error trace:
>
> ```
> Debugger entered--Lisp error: (wrong-type-argument integer-or-marker-p nil)
> call-process-region(nil 0 "/bin/cat" t t)
> this-wont()
> eval((this-wont) t)
> eval-expression((this-wont) nil nil 127)
> funcall-interactively(eval-expression (this-wont) nil nil 127)
> call-interactively(eval-expression nil nil)
> command-execute(eval-expression)
> ```
>
> While if my understanding to the docstring is right, these two should
> give identical effect.
>
> The Emacs version I'm using is 27.2, however I suspect this can also
> be reproduced in master branch.
Nope:
commit 42306747d8dece897805e89c36c3741bfb8d5e7c
Author: Philipp Stephani <phst@google.com>
Commit: Philipp Stephani <phst@google.com>
CommitDate: Sun Apr 12 19:04:11 2020 +0200
Fix error in 'call-process-region' when START is nil (Bug#40576)
Steve Berman