@@ -331,106 +331,6 @@ flb_sds_t flb_sds_cat_utf8(flb_sds_t *sds, const char *str, int str_len)
331
331
flb_sds_len_set (s , offset );
332
332
s [head -> len ] = '\0' ;
333
333
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 ;
434
334
}
435
335
436
336
flb_sds_t flb_sds_printf (flb_sds_t * sds , const char * fmt , ...)
0 commit comments