File tree Expand file tree Collapse file tree 1 file changed +18
-17
lines changed Expand file tree Collapse file tree 1 file changed +18
-17
lines changed Original file line number Diff line number Diff line change 2525 */ 
2626
2727#include  <string.h> 
28+ #include  <unistd.h> 
29+ #include  "py/mpconfig.h" 
2830#include  "py/mphal.h" 
2931
3032/* 
3335 * implementation below can be used. 
3436 */ 
3537
38+ // CIRCUITPY-CHANGE: changes 
3639// Send "cooked" string of given length, where every occurrence of 
37- // LF character is replaced with CR LF ("\n" is converted to "\r\n"). 
38- // This is an optimised version to reduce the number of calls made 
39- // to mp_hal_stdout_tx_strn. 
40+ // LF character is replaced with CR LF. 
4041void  mp_hal_stdout_tx_strn_cooked (const  char  * str , size_t  len ) {
41-     const  char  * last  =  str ;
42-     while  (len -- ) {
43-         if  (* str  ==  '\n' ) {
44-             if  (str  >  last ) {
45-                 mp_hal_stdout_tx_strn (last , str  -  last );
46-             }
47-             mp_hal_stdout_tx_strn ("\r\n" , 2 );
48-             ++ str ;
49-             last  =  str ;
50-         } else  {
51-             ++ str ;
42+     bool  last_cr  =  false;
43+     while  (len  >  0 ) {
44+         size_t  i  =  0 ;
45+         if  (str [0 ] ==  '\n'  &&  !last_cr ) {
46+             mp_hal_stdout_tx_strn ("\r" , 1 );
47+             i  =  1 ;
5248        }
53-     }
54-     if  (str  >  last ) {
55-         mp_hal_stdout_tx_strn (last , str  -  last );
49+         // Lump all characters on the next line together. 
50+         while  ((last_cr  ||  str [i ] !=  '\n' ) &&  i  <  len ) {
51+             last_cr  =  str [i ] ==  '\r' ;
52+             i ++ ;
53+         }
54+         mp_hal_stdout_tx_strn (str , i );
55+         str  =  & str [i ];
56+         len  -=  i ;
5657    }
5758}
5859
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments