my understanding is that "read" is not a program but rather a "builtin" function to read words, not lines, but "IFS= read -r linea" was introduced later as the canonical way to read one line of input
The used "-r" option should removes the backslash processing, while with the Input Field "IFS="(1) ... "read" should read from stdin one byte at a time until it finds an unescaped newline character or end-of-input, so it doesn't splits a line into words but rather return the whole line.
If it was C code, it would be a kind of
while (!fof(file))
{
get_line(&linea);
}
But it doesn't operate on a file pointer but rather directly on stdin and there is no select() to mitigate so as far as one knows or can see and this is a problem for Nano when it invokes its input methods linked with ncurses to process the stdin.
Redirecting a compound command causes it to run in a subshell ... that's what makes me perplex: in theory, it should work
(1) "IFS=" means empty string, so no character will be used to split, therefore no splitting will occur