22 lines
		
	
	
		
			528 B
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			22 lines
		
	
	
		
			528 B
		
	
	
	
		
			Factor
		
	
	
! Copyright (C) 2009 Daniel Ehrenberg, Slava Pestov
 | 
						|
! See http://factorcode.org/license.txt for BSD license.
 | 
						|
USING: io kernel sequences splitting ;
 | 
						|
IN: io.crlf
 | 
						|
 | 
						|
: crlf ( -- )
 | 
						|
    "\r\n" write ;
 | 
						|
 | 
						|
: read-crlf ( -- seq )
 | 
						|
    "\r" read-until
 | 
						|
    [ CHAR: \r assert= read1 CHAR: \n assert= ] [ f like ] if* ;
 | 
						|
 | 
						|
: read-?crlf ( -- seq )
 | 
						|
    "\r\n" read-until
 | 
						|
    [ CHAR: \r = [ read1 CHAR: \n assert= ] when ] [ f like ] if* ;
 | 
						|
 | 
						|
: crlf>lf ( str -- str' )
 | 
						|
    CHAR: \r swap remove ;
 | 
						|
 | 
						|
: lf>crlf ( str -- str' )
 | 
						|
    "\n" split "\r\n" join ;
 |