Code Duplication    Length = 17-18 lines in 2 locations

src/wp-includes/class-json.php 2 locations

@@ 405-421 (lines=17) @@
402
                            $ascii .= sprintf('\u%04s', bin2hex($utf16));
403
                            break;
404
405
                        case (($ord_var_c & 0xFC) == 0xF8):
406
                            // characters U-00200000 - U-03FFFFFF, mask 111110XX
407
                            // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
408
                            if ($c+4 >= $strlen_var) {
409
                                $c += 4;
410
                                $ascii .= '?';
411
                                break;
412
                            }
413
                            $char = pack('C*', $ord_var_c,
414
                                         ord($var{$c + 1}),
415
                                         ord($var{$c + 2}),
416
                                         ord($var{$c + 3}),
417
                                         ord($var{$c + 4}));
418
                            $c += 4;
419
                            $utf16 = $this->utf82utf16($char);
420
                            $ascii .= sprintf('\u%04s', bin2hex($utf16));
421
                            break;
422
423
                        case (($ord_var_c & 0xFE) == 0xFC):
424
                        if ($c+5 >= $strlen_var) {
@@ 423-440 (lines=18) @@
420
                            $ascii .= sprintf('\u%04s', bin2hex($utf16));
421
                            break;
422
423
                        case (($ord_var_c & 0xFE) == 0xFC):
424
                        if ($c+5 >= $strlen_var) {
425
                                $c += 5;
426
                                $ascii .= '?';
427
                                break;
428
                            }
429
                            // characters U-04000000 - U-7FFFFFFF, mask 1111110X
430
                            // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
431
                            $char = pack('C*', $ord_var_c,
432
                                         ord($var{$c + 1}),
433
                                         ord($var{$c + 2}),
434
                                         ord($var{$c + 3}),
435
                                         ord($var{$c + 4}),
436
                                         ord($var{$c + 5}));
437
                            $c += 5;
438
                            $utf16 = $this->utf82utf16($char);
439
                            $ascii .= sprintf('\u%04s', bin2hex($utf16));
440
                            break;
441
                    }
442
                }
443
                return  '"'.$ascii.'"';