splitting: slightly faster string-lines.
							parent
							
								
									5f77fe82f0
								
							
						
					
					
						commit
						da692ff7ec
					
				| 
						 | 
					@ -104,8 +104,15 @@ GENERIC: string-lines ( str -- seq )
 | 
				
			||||||
M: string string-lines
 | 
					M: string string-lines
 | 
				
			||||||
    dup crlf? [
 | 
					    dup crlf? [
 | 
				
			||||||
        "\n" split
 | 
					        "\n" split
 | 
				
			||||||
        [ but-last-slice [ "\r" ?tail drop "\r" split ] map! drop ]
 | 
					        [
 | 
				
			||||||
        [ [ length 1 - ] keep [ "\r" split ] change-nth ]
 | 
					            but-last-slice [
 | 
				
			||||||
 | 
					                dup ?last CHAR: \r = [ but-last ] when
 | 
				
			||||||
 | 
					                [ CHAR: \r = ] split-when
 | 
				
			||||||
 | 
					            ] map! drop
 | 
				
			||||||
 | 
					        ] [
 | 
				
			||||||
 | 
					            [ length 1 - ] keep
 | 
				
			||||||
 | 
					            [ [ CHAR: \r = ] split-when ] change-nth
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
        [ concat ]
 | 
					        [ concat ]
 | 
				
			||||||
        tri
 | 
					        tri
 | 
				
			||||||
    ] [
 | 
					    ] [
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue