GNU bug report logs -
#52509
27.2; `call-process-region' won't accept nil as START argument
Previous Next
Reported by: LdBeth <andpuke <at> foxmail.com>
Date: Wed, 15 Dec 2021 12:56:03 UTC
Severity: normal
Tags: moreinfo
Found in version 27.2
Fixed in version 28.1
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
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.
--
LDB
This bug report was last modified 3 years and 248 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.