@@ -331,106 +331,6 @@ flb_sds_t flb_sds_cat_utf8(flb_sds_t *sds, const char *str, int str_len)
331331 flb_sds_len_set (s , offset );
332332 s [head -> len ] = '\0' ;
333333 return s ;
334-
335-
336-
337- for (i = 0 ; i < str_len ; i ++ ) {
338- if (flb_sds_avail (s ) < 8 ) {
339- tmp = flb_sds_increase (s , 8 );
340- if (tmp == NULL ) {
341- return NULL ;
342- }
343- * sds = s = tmp ;
344- head = FLB_SDS_HEADER (s );
345- }
346-
347- c = (unsigned char )str [i ];
348- if (c == '\\' || c == '"' ) {
349- s [head -> len ++ ] = '\\' ;
350- s [head -> len ++ ] = c ;
351- }
352- else if (c >= '\b' && c <= '\r' ) {
353- s [head -> len ++ ] = '\\' ;
354- switch (c ) {
355- case '\n' :
356- s [head -> len ++ ] = 'n' ;
357- break ;
358- case '\t' :
359- s [head -> len ++ ] = 't' ;
360- break ;
361- case '\b' :
362- s [head -> len ++ ] = 'b' ;
363- break ;
364- case '\f' :
365- s [head -> len ++ ] = 'f' ;
366- break ;
367- case '\r' :
368- s [head -> len ++ ] = 'r' ;
369- break ;
370- case '\v' :
371- s [head -> len ++ ] = 'u' ;
372- s [head -> len ++ ] = '0' ;
373- s [head -> len ++ ] = '0' ;
374- s [head -> len ++ ] = '0' ;
375- s [head -> len ++ ] = 'b' ;
376- break ;
377- }
378- }
379- else if (c < 32 || c == 0x7f ) {
380- s [head -> len ++ ] = '\\' ;
381- s [head -> len ++ ] = 'u' ;
382- s [head -> len ++ ] = '0' ;
383- s [head -> len ++ ] = '0' ;
384- s [head -> len ++ ] = int2hex [ (unsigned char ) ((c & 0xf0 ) >> 4 )];
385- s [head -> len ++ ] = int2hex [ (unsigned char ) (c & 0x0f )];
386- }
387- else if (c >= 0x80 ) {
388- hex_bytes = flb_utf8_len (str + i );
389- state = FLB_UTF8_ACCEPT ;
390- cp = 0 ;
391- for (b = 0 ; b < hex_bytes ; b ++ ) {
392- p = (const unsigned char * ) str + i + b ;
393- if (p >= (unsigned char * ) (str + str_len )) {
394- break ;
395- }
396- ret = flb_utf8_decode (& state , & cp , * p );
397- if (ret == 0 ) {
398- break ;
399- }
400- }
401-
402- if (state != FLB_UTF8_ACCEPT ) {
403- /* Invalid UTF-8 hex, just skip utf-8 bytes */
404- flb_warn ("[pack] invalid UTF-8 bytes, skipping" );
405- break ;
406- }
407-
408- s [head -> len ++ ] = '\\' ;
409- s [head -> len ++ ] = 'u' ;
410- if (cp > 0xFFFF ) {
411- c = (unsigned char ) ((cp & 0xf00000 ) >> 20 );
412- if (c > 0 ) {
413- s [head -> len ++ ] = int2hex [c ];
414- }
415- c = (unsigned char ) ((cp & 0x0f0000 ) >> 16 );
416- if (c > 0 ) {
417- s [head -> len ++ ] = int2hex [c ];
418- }
419- }
420- s [head -> len ++ ] = int2hex [ (unsigned char ) ((cp & 0xf000 ) >> 12 )];
421- s [head -> len ++ ] = int2hex [ (unsigned char ) ((cp & 0x0f00 ) >> 8 )];
422- s [head -> len ++ ] = int2hex [ (unsigned char ) ((cp & 0xf0 ) >> 4 )];
423- s [head -> len ++ ] = int2hex [ (unsigned char ) (cp & 0x0f )];
424- i += (hex_bytes - 1 );
425- }
426- else {
427- s [head -> len ++ ] = c ;
428- }
429- }
430-
431- s [head -> len ] = '\0' ;
432-
433- return s ;
434334}
435335
436336flb_sds_t flb_sds_printf (flb_sds_t * sds , const char * fmt , ...)
0 commit comments