* Different behaviour when interpreting a here-document between 5.3 and 5.5.1
@ 2018-04-19 21:52 Enrico Maria Crisostomo
2018-04-19 23:48 ` Bart Schaefer
2018-04-20 22:04 ` Enrico Maria Crisostomo
0 siblings, 2 replies; 3+ messages in thread
From: Enrico Maria Crisostomo @ 2018-04-19 21:52 UTC (permalink / raw)
To: zsh-users
Hi,
I'm struggling with an apparently simple problem. A script of mine has a function that writes a here-document whose lines end with a backslash. The script has been working fine until zsh has been updated recently.
The relevant part of the code is the following
mp_calculate_checksums()
{
cat <<EOF
checksums rmd160 ${CHECKSUM_RMD160} \\
sha256 ${CHECKSUM_SHA256} \\
size ${CHECKSUM_SIZE}
EOF
}
The expected output is something like:
checksums rmd160 281d97a37125fca07ff81a72ac337f6a23f5d2b0 \
sha256 233cd8724fd95e10b82ed62c692e7e79cca9114b49be834e65cd05b529d8ba70 \
size 31
When running the same script on 5.5.1, I get a single line of output, as if the last backslash of \\ were escaping the newline.
checksums rmd160 281d97a37125fca07ff81a72ac337f6a23f5d2b0 \ sha256 233cd8724fd95e10b82ed62c692e7e79cca9114b49be834e65cd05b529d8ba70 \ size 31
I haven't been able to troubleshoot it so far, and the zsh documentation seems to imply that the correct behaviour is the former, not the latter.
Thanks in advance for you help,
--
Enrico
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Different behaviour when interpreting a here-document between 5.3 and 5.5.1
2018-04-19 21:52 Different behaviour when interpreting a here-document between 5.3 and 5.5.1 Enrico Maria Crisostomo
@ 2018-04-19 23:48 ` Bart Schaefer
2018-04-20 22:04 ` Enrico Maria Crisostomo
1 sibling, 0 replies; 3+ messages in thread
From: Bart Schaefer @ 2018-04-19 23:48 UTC (permalink / raw)
To: Zsh Users
On Thu, Apr 19, 2018 at 2:52 PM, Enrico Maria Crisostomo
<enrico.m.crisostomo@gmail.com> wrote:
> cat <<EOF
> checksums rmd160 ${CHECKSUM_RMD160} \\
> sha256 ${CHECKSUM_SHA256} \\
> size ${CHECKSUM_SIZE}
> EOF
Yeah, this is commit 47aa6095 aka workers/42355. It's recognizing
backslash-newline but not whether the backslash is itself escaped.
The NEWS file should have mentioned the change to here-documents, I
think. However, not catching the double backslash is a bug. However,
part 2, figuring this out requires scanning backwards to see if you
have an even or odd number of trailing backlashes, or scanning forward
and tokenizing while consuming the document. Bleah.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Different behaviour when interpreting a here-document between 5.3 and 5.5.1
2018-04-19 21:52 Different behaviour when interpreting a here-document between 5.3 and 5.5.1 Enrico Maria Crisostomo
2018-04-19 23:48 ` Bart Schaefer
@ 2018-04-20 22:04 ` Enrico Maria Crisostomo
1 sibling, 0 replies; 3+ messages in thread
From: Enrico Maria Crisostomo @ 2018-04-20 22:04 UTC (permalink / raw)
To: zsh-users
> On 19 Apr 2018, at 23:52, Enrico Maria Crisostomo <enrico.m.crisostomo@gmail.com> wrote:
>
> Hi,
>
> I'm struggling with an apparently simple problem. A script of mine has a function that writes a here-document whose lines end with a backslash. The script has been working fine until zsh has been updated recently.
>
> The relevant part of the code is the following
>
> mp_calculate_checksums()
> {
> cat <<EOF
> checksums rmd160 ${CHECKSUM_RMD160} \\
> sha256 ${CHECKSUM_SHA256} \\
> size ${CHECKSUM_SIZE}
> EOF
> }
>
> The expected output is something like:
>
> checksums rmd160 281d97a37125fca07ff81a72ac337f6a23f5d2b0 \
> sha256 233cd8724fd95e10b82ed62c692e7e79cca9114b49be834e65cd05b529d8ba70 \
> size 31
>
> When running the same script on 5.5.1, I get a single line of output, as if the last backslash of \\ were escaping the newline.
>
> checksums rmd160 281d97a37125fca07ff81a72ac337f6a23f5d2b0 \ sha256 233cd8724fd95e10b82ed62c692e7e79cca9114b49be834e65cd05b529d8ba70 \ size 31
>
> I haven't been able to troubleshoot it so far, and the zsh documentation seems to imply that the correct behaviour is the former, not the latter.
>
> Thanks in advance for you help,
> --
> Enrico
Thanks for your answer, Bart. Apologies for manually quoting it, but I haven't received a mail from the mailing list, so I can't reply:
> Yeah, this is commit 47aa6095 aka workers/42355. It's recognizing
> backslash-newline but not whether the backslash is itself escaped.
>
> The NEWS file should have mentioned the change to here-documents, I
> think. However, not catching the double backslash is a bug. However,
> part 2, figuring this out requires scanning backwards to see if you
> have an even or odd number of trailing backlashes, or scanning forward
> and tokenizing while consuming the document. Bleah.
Should I file a bug report, write to zsh-workers, or do something else? Or may I consider that your answering the mail is equivalent to a bug having been open?
Thanks,
--
Enrico
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2018-04-20 22:05 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-04-19 21:52 Different behaviour when interpreting a here-document between 5.3 and 5.5.1 Enrico Maria Crisostomo
2018-04-19 23:48 ` Bart Schaefer
2018-04-20 22:04 ` Enrico Maria Crisostomo
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).