@@ -621,9 +621,10 @@ private function buildTableRows(array $rows): TableRows
621
621
if (!strstr ($ cell ?? '' , "\n" )) {
622
622
continue ;
623
623
}
624
- $ escaped = implode ("\n" , array_map ([OutputFormatter::class, 'escapeTrailingBackslash ' ], explode ("\n" , $ cell )));
624
+ $ eol = str_contains ($ cell ?? '' , "\r\n" ) ? "\r\n" : "\n" ;
625
+ $ escaped = implode ($ eol , array_map ([OutputFormatter::class, 'escapeTrailingBackslash ' ], explode ($ eol , $ cell )));
625
626
$ cell = $ cell instanceof TableCell ? new TableCell ($ escaped , ['colspan ' => $ cell ->getColspan ()]) : $ escaped ;
626
- $ lines = explode ("\n" , str_replace ("\n" , " <fg=default;bg=default></> \n" , $ cell ));
627
+ $ lines = explode ($ eol , str_replace ($ eol , ' <fg=default;bg=default></> ' . $ eol , $ cell ));
627
628
foreach ($ lines as $ lineKey => $ line ) {
628
629
if ($ colspan > 1 ) {
629
630
$ line = new TableCell ($ line , ['colspan ' => $ colspan ]);
@@ -685,8 +686,9 @@ private function fillNextRows(array $rows, int $line): array
685
686
$ nbLines = $ cell ->getRowspan () - 1 ;
686
687
$ lines = [$ cell ];
687
688
if (strstr ($ cell , "\n" )) {
688
- $ lines = explode ("\n" , str_replace ("\n" , "<fg=default;bg=default> \n</> " , $ cell ));
689
- $ nbLines = \count ($ lines ) > $ nbLines ? substr_count ($ cell , "\n" ) : $ nbLines ;
689
+ $ eol = str_contains ($ cell , "\r\n" ) ? "\r\n" : "\n" ;
690
+ $ lines = explode ($ eol , str_replace ($ eol , '<fg=default;bg=default> ' .$ eol .'</> ' , $ cell ));
691
+ $ nbLines = \count ($ lines ) > $ nbLines ? substr_count ($ cell , $ eol ) : $ nbLines ;
690
692
691
693
$ rows [$ line ][$ column ] = new TableCell ($ lines [0 ], ['colspan ' => $ cell ->getColspan (), 'style ' => $ cell ->getStyle ()]);
692
694
unset($ lines [0 ]);
0 commit comments