Re: Command "read -N " doesn't respect UTF-8 encoding

2020-10-26 Thread Chet Ramey
On 10/24/20 3:51 PM, i...@kablex.ru wrote:

> Bash Version: 4.3
> Patch Level: 30
> Release Status: release
> 
> Description:
> UTF-8 string piped to read command goes corrupt with -N option, e.g.
>   printf "привет"|(read -N 100500 var_text; printf  "$var_text" )
>  returns some corrupt output "�#��#��#��#��#��#�"

Thanks for the report. This was fixed in bash-5.0.


-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRUc...@case.eduhttp://tiswww.cwru.edu/~chet/



Re: Command "read -N " doesn't respect UTF-8 encoding

2020-10-24 Thread Lawrence Velázquez
> On Oct 24, 2020, at 3:51 PM, i...@kablex.ru wrote:
> 
> Configuration Information [Automatically generated, do not change]:
> Machine: x86_64
> OS: linux-gnu
> Compiler: gcc
> Compilation CFLAGS:  -DPROGRAM='bash' -DCONF_HOSTTYPE='x86_64' 
> -DCONF_OSTYPE='linux-gnu' -DCONF_MACHTYPE='x86_$
> uname output: Linux bitrix-lamp 3.16.0-4-amd64 #1 SMP Debian 3.16.43-2+deb8u5 
> (2017-09-19) x86_64 GNU/Linux
> Machine Type: x86_64-pc-linux-gnu
> 
> Bash Version: 4.3
> Patch Level: 30
> Release Status: release
> 
> Description:
>UTF-8 string piped to read command goes corrupt with -N option, e.g.
>  printf "привет"|(read -N 100500 var_text; printf  "$var_text" )
> returns some corrupt output "�#��#��#��#��#��#�"
>  while
>  printf "привет"|(read -n 100500 var_text; printf  "$var_text" )
> returns correct output "привет"
> 
> 
> Repeat-By:
>as described above

FWIW your test case seems to work fine with a modern bash.

% bash --version | head -n 1
GNU bash, version 5.0.17(1)-release (x86_64-apple-darwin18.7.0)
% bash --norc <<\EOF
heredoc> printf "привет"|(read -N 100500 var_text; printf "$var_text" )
heredoc> EOF
привет%


--
vq


Command "read -N " doesn't respect UTF-8 encoding

2020-10-24 Thread info
Configuration Information [Automatically generated, do not change]:
Machine: x86_64
OS: linux-gnu
Compiler: gcc
Compilation CFLAGS:  -DPROGRAM='bash' -DCONF_HOSTTYPE='x86_64' 
-DCONF_OSTYPE='linux-gnu' -DCONF_MACHTYPE='x86_$
uname output: Linux bitrix-lamp 3.16.0-4-amd64 #1 SMP Debian 3.16.43-2+deb8u5 
(2017-09-19) x86_64 GNU/Linux
Machine Type: x86_64-pc-linux-gnu

Bash Version: 4.3
Patch Level: 30
Release Status: release

Description:
UTF-8 string piped to read command goes corrupt with -N option, e.g.
  printf "привет"|(read -N 100500 var_text; printf  "$var_text" )
 returns some corrupt output 
"�#��#��#��#��#��#�"
  while
  printf "привет"|(read -n 100500 var_text; printf  "$var_text" )
 returns correct output "привет"


Repeat-By:
as described above