Subject: bug#11421: call-process behavior wrt. to read only buffers depends on coding system for read operations

From: Rob Browning <[email-masked]>
Date: Sun, 06 May 2012 11:06:26 -0500

(If possible, please preserve the 651420-forwarded address in any replies.)

It appears that depending on the LOCALE setting, Emacs 23.4 may or may
not signal a "buffer is read-only" error.  At least here, this can be
demonstrated as follows.

Save to ./test.el:

  (let ((buf (get-buffer-create "xxx")))
    (with-current-buffer buf
      (compilation-mode))
    (let ((coding-system-for-read 'iso-latin-1-unix))
      (condition-case err
	  (progn
	    (call-process "/bin/cat" "/proc/cpuinfo" buf t)
	    (message "iso-latin-1-unix: No call-process error"))
	(error
	 (message "iso-latin-1-unix: call-process error: %s %s"
		  (car err) (cdr err)))))
    (let ((coding-system-for-read 'utf-8-unix))
      (condition-case err
	  (progn
	    (call-process "/bin/cat" "/proc/cpuinfo" buf t)
	    (message "utf-8-unix: No call-process error"))
	(error
	 (message "utf-8-unix: call-process error: %s %s"
		  (car err) (cdr err))))))

Run:

  emacs -q --no-site-file -batch -l ./test.el

which should produce something like this:

  iso-latin-1-unix: call-process error: buffer-read-only (xxx)
  utf-8-unix: No call-process error

Additional information may be found here:

  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=651420

Thanks
-- 
Rob Browning
rlb @defaultvalue.org and @debian.org
GPG as of 2002-11-03 14DD 432F AE39 534D B592 F9A0 25C8 D377 8C7E 73A4