slight speedup in base64
							parent
							
								
									fcb49a3442
								
							
						
					
					
						commit
						b6cc47d2b3
					
				| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
USING: tools.test base64 ;
 | 
			
		||||
USING: kernel tools.test base64 strings ;
 | 
			
		||||
 | 
			
		||||
[ "abcdefghijklmnopqrstuvwxyz" ] [ "abcdefghijklmnopqrstuvwxyz" >base64 base64>
 | 
			
		||||
] unit-test
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -35,13 +35,13 @@ PRIVATE>
 | 
			
		|||
    #! pad string with = when not enough bits
 | 
			
		||||
    dup length dup 3 mod - cut swap
 | 
			
		||||
    [
 | 
			
		||||
        3 group [ encode3 % ] each
 | 
			
		||||
        3 <groups> [ encode3 % ] each
 | 
			
		||||
        dup empty? [ drop ] [ >base64-rem % ] if
 | 
			
		||||
    ] "" make ;
 | 
			
		||||
 | 
			
		||||
: base64> ( base64 -- str )
 | 
			
		||||
    #! input length must be a multiple of 4
 | 
			
		||||
    [
 | 
			
		||||
        [ 4 group [ decode4 % ] each ] keep [ CHAR: = = not ] count-end 
 | 
			
		||||
        [ 4 <groups> [ decode4 % ] each ] keep [ CHAR: = = not ] count-end 
 | 
			
		||||
    ] SBUF" " make swap [ dup pop* ] times >string ;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue