--- Begin Message ---
Subject: |
23.4; shell-command-on-region does not {de,en}code as documented |
Date: |
Mon, 9 Apr 2012 13:09:07 +0200 |
shell-command-on-region (M-|) does not do the {de,en}coding of I/O to the process as documented.
It says (if I read it correctly) that it will use buffer-file-coding-system (at least unless coding-system-for-{read,write} are set) for output to and input from (if doing substitution with a prefix argument) the process.
However, it "just" calls call-process-region which will use default-process-coding-system rather than buffer-file-coding-system.
To try, 'emacs -q', switch to an empty buffer, and:
C-x RET f iso-8859-7 RET C-SPC C-u M-| echo -e '\0245' RET
This does not insert a drachma sign.
However, if you run (setq default-process-coding-system '(iso-8859-7 iso-8859-7)) first, it does indeed produce a drachma.
Output encoding works the same way.
- Gustav
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#11208: 23.4; shell-command-on-region does not {de,en}code as documented |
Date: |
Mon, 09 Apr 2012 19:58:50 +0300 |
> Date: Mon, 9 Apr 2012 13:09:07 +0200
> From: Gustav Hållberg <address@hidden>
>
> shell-command-on-region (M-|) does not do the {de,en}coding of I/O to the
> process as documented.
>
> It says (if I read it correctly) that it will use buffer-file-coding-system
> (at least unless coding-system-for-{read,write} are set) for output to and
> input from (if doing substitution with a prefix argument) the process.
>
> However, it "just" calls call-process-region which will use
> default-process-coding-system rather than buffer-file-coding-system.
Thanks, I made the doc string match the implementation.
The fix is committed as revision 107794 on the emacs-24 branch, and
will be in Emacs 24.1.
--- End Message ---