Hi,
Just noticed that AdjustLineBreaks is broken if the Style parameter is set to tlbsCR. (Tested with 3.2.2).
In fpc main this is fixed, in fixes_3_2 this still seems broken.
The fix in main was committed in 1c4151d8 (1 merge reques t!396 Fix, shorten*, and speed up AdjustLineBreaks.( MR by Rika)) In the MR Rika comments: "presently, AdjustLineBreaks might just not work, because it attempts to optimize the case of unchanged string by looking only if the length has changed, which does not account for possible changing lone #13 to #10."
It does not mention that (before the fix)
AdjustLineBreak(SomeStringWithCRLF, tlbsCR) changed the linebreaks to LineFeed instead of CarriageReturn.
I would request that the changes from commit 1c4151d8 are merged to fixes_3_2.
For completeness I attached a sample program demonstrating the error. Run with commandlineparameter --3.2.2 to see 3.2.2 behaviour Run with commandlineparameter --fixes to see fixes_3_2 behaviour Run with commandlineparameter --trunk to see fpc main (with commit 1c4151d8) behaviour
Run without commandline parameter to get the default behaviour of your current compiler.
For both 3.2.2 and fixes code it outputs:
LF: OK: one[LF]two[LF]three
CR: Fail
Expected: one[CR]two[CR]three
Got : one[LF]two[LF]three
CRLF: OK: one[CR][LF]two[CR][LF]three
LF to CR: Fail
Expected: one[CR]two[CR]three
Got : one[LF]two[LF]three
LF->CR->CRLF: OK: one[CR][LF]two[CR][LF]three
CRLF->LF->CR: Fail
Expected: one[CR]two[CR]three
Got : one[LF]two[LF]three
The code for main outputs:
LF: OK: one[LF]two[LF]three
CR: OK: one[CR]two[CR]three
CRLF: OK: one[CR][LF]two[CR][LF]three
LF to CR: OK: one[CR]two[CR]three
LF->CR->CRLF: OK: one[CR][LF]two[CR][LF]three
CRLF->LF->CR: OK: one[CR]two[CR]three
