[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Bug: long strings with REALLY long delimiters…
- From: Martin <eden_martin_fuhrspam@...>
- Date: Mon, 17 Dec 2018 05:42:22 +0300
On 12/15/18 12:33 AM, Andrew Gierth wrote:
>>>>>> "dyngeccetor8" == dyngeccetor8 <dyngeccetor8@disroot.org> writes:
>
> >>> https://github.com/martin-eden/workshop/blob/master/formats/lua/quote_string/intact.lua#L16
>
> dyngeccetor8> Sadly, link now points to current version.
>
> I don't think this is quite right for the case where the string starts
> with \r not followed by \n.
>
> According to the docs, long strings don't preserve the exact bytes of
> newline sequences, but they recognize any of \r, \n, \r\n, \n\r as being
> newlines. So if the string starts with \r alone, your code does not
> insert a \n, and the \r will be eaten when reading the string back in.
> If on the other hand you added a \n, then the \n\r would still be
> treated as a single newline, and it would still be eaten.
>
I agree. I'll handle this case in next commits. Thank you for discovering!
> I think what you need to do is: if the first character of the string is
> either \r or \n, then duplicate it.
Yes, it does the job but takes time to understand why exactly.
-- Martin