I received the following report via the Debian bug tracking system.
It is reproducible in the trunk.
Package: emacs22
Version: 22.2+2-5
After running the following program:
(let* ((coding-system-for-read 'binary)
(coding-system-for-write 'binary)
(p (start-process "foo" "*foo*" "od" "-td1")))
(process-send-string p "\r\n")
(process-send-eof p))
;; => #<process foo>
the `*foo*' buffer contains:
--cut: *foo*--
0000000 10 10
0000002
Process foo finished
--cut: *foo*--
While I'd expect the following instead:
--cut: *foo*--
0000000 13 10
0000002
Process foo finished
--cut: *foo*--
Compare:
(let ((coding-system-for-read 'binary)
(coding-system-for-write 'binary))
(save-excursion
(set-buffer "*foo*")
(let* ((start (point))
(end (progn (insert "\r\n") (point))))
(call-process-region start end "od" t t t "-td1"))))
--cut: *foo*--
0000000 13 10
0000002
--cut: *foo*--
send again, the "plain text only" format has some problem...