|
From: | Chet Ramey |
Subject: | Re: Why does "mapfile -d delim" (delim != '\n') use unbuffered read? |
Date: | Mon, 3 May 2021 14:40:11 -0400 |
User-agent: | Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.10.0 |
On 5/3/21 10:14 AM, Chet Ramey wrote:
This treatment of `mapfile' for "delim != '\n'" exists since the mapfile delimiter is first introduced by commit 25a0eacfe "commit bash-20140625 snapshot". Would it be a problem to change to the buffered read also for non-LF delimiters? If we could remove the above two lines (i.e., if (delim != '\n') unbuffered_read = 1;), I'd be very happy...Try it out and see.
I should have mentioned up front that this will not work in the general case on at least macOS, the BSDs, and (I believe) AIX. It won't work on any system that doesn't return -1/ESPIPE when you try to lseek on a terminal device. Glibc does; the above systems don't; POSIX makes the behavior undefined. -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, UTech, CWRU chet@case.edu http://tiswww.cwru.edu/~chet/
[Prev in Thread] | Current Thread | [Next in Thread] |