Code Duplication    Length = 44-44 lines in 2 locations

class/pcltar.lib.php 2 locations

@@ 2143-2186 (lines=44) @@
2140
                // ----- Do the extraction
2141
                if ($v_extract_file && ('5' != $v_header['typeflag'])) {
2142
                    // ----- Open the destination file in write mode
2143
                    if (0 == ($v_dest_file = @fopen($v_header['filename'], 'wb'))) {
2144
                        TrFctMessage(__FILE__, __LINE__, 2, 'Error while opening ' . $v_header['filename'] . ' in write binary mode');
2145
2146
                        // ----- Change the file status
2147
                        $v_header['status'] = 'write_error';
2148
2149
                        // ----- Jump to next file
2150
                        TrFctMessage(__FILE__, __LINE__, 2, 'Jump to next file');
2151
                        if ('tar' === $p_tar_mode) {
2152
                            fseek($v_tar, ftell($v_tar) + (ceil($v_header['size'] / 512) * 512));
2153
                        } else {
2154
                            gzseek($v_tar, gztell($v_tar) + (ceil($v_header['size'] / 512) * 512));
2155
                        }
2156
                    } else {
2157
                        TrFctMessage(__FILE__, __LINE__, 2, 'Start extraction of ' . $v_header['filename'] . '');
2158
2159
                        // ----- Read data
2160
                        $n = floor($v_header['size'] / 512);
2161
                        for ($i = 0; $i < $n; ++$i) {
2162
                            TrFctMessage(__FILE__, __LINE__, 3, 'Read complete 512 bytes block number ' . ($i + 1));
2163
                            if ('tar' === $p_tar_mode) {
2164
                                $v_content = fread($v_tar, 512);
2165
                            } else {
2166
                                $v_content = gzread($v_tar, 512);
2167
                            }
2168
                            fwrite($v_dest_file, $v_content, 512);
2169
                        }
2170
                        if (0 != ($v_header['size'] % 512)) {
2171
                            TrFctMessage(__FILE__, __LINE__, 3, 'Read last ' . ($v_header['size'] % 512) . ' bytes in a 512 block');
2172
                            if ('tar' === $p_tar_mode) {
2173
                                $v_content = fread($v_tar, 512);
2174
                            } else {
2175
                                $v_content = gzread($v_tar, 512);
2176
                            }
2177
                            fwrite($v_dest_file, $v_content, $v_header['size'] % 512);
2178
                        }
2179
2180
                        // ----- Close the destination file
2181
                        fclose($v_dest_file);
2182
2183
                        // ----- Change the file mode, mtime
2184
                        touch($v_header['filename'], $v_header['mtime']);
2185
                        //chmod($v_header['filename'], decoct($v_header['mode']));
2186
                    }
2187
2188
                    // ----- Check the file size
2189
                    clearstatcache();
@@ 2657-2700 (lines=44) @@
2654
        // ----- Do the real bytes extraction (if not a directory)
2655
        if ($v_extract_file && ('5' != $v_header['typeflag'])) {
2656
            // ----- Open the destination file in write mode
2657
            if (0 == ($v_dest_file = @fopen($v_header['filename'], 'wb'))) {
2658
                TrFctMessage(__FILE__, __LINE__, 2, 'Error while opening ' . $v_header['filename'] . ' in write binary mode');
2659
2660
                // ----- Change the file status
2661
                $v_header['status'] = 'write_error';
2662
2663
                // ----- Jump to next file
2664
                TrFctMessage(__FILE__, __LINE__, 2, 'Jump to next file');
2665
                if ('tar' === $p_tar_mode) {
2666
                    fseek($v_tar, ftell($v_tar) + (ceil($v_header['size'] / 512) * 512));
2667
                } else {
2668
                    gzseek($v_tar, gztell($v_tar) + (ceil($v_header['size'] / 512) * 512));
2669
                }
2670
            } else {
2671
                TrFctMessage(__FILE__, __LINE__, 2, 'Start extraction of ' . $v_header['filename'] . '');
2672
2673
                // ----- Read data
2674
                $n = floor($v_header['size'] / 512);
2675
                for ($i = 0; $i < $n; ++$i) {
2676
                    TrFctMessage(__FILE__, __LINE__, 3, 'Read complete 512 bytes block number ' . ($i + 1));
2677
                    if ('tar' === $p_tar_mode) {
2678
                        $v_content = fread($v_tar, 512);
2679
                    } else {
2680
                        $v_content = gzread($v_tar, 512);
2681
                    }
2682
                    fwrite($v_dest_file, $v_content, 512);
2683
                }
2684
                if (0 != ($v_header['size'] % 512)) {
2685
                    TrFctMessage(__FILE__, __LINE__, 3, 'Read last ' . ($v_header['size'] % 512) . ' bytes in a 512 block');
2686
                    if ('tar' === $p_tar_mode) {
2687
                        $v_content = fread($v_tar, 512);
2688
                    } else {
2689
                        $v_content = gzread($v_tar, 512);
2690
                    }
2691
                    fwrite($v_dest_file, $v_content, $v_header['size'] % 512);
2692
                }
2693
2694
                // ----- Close the destination file
2695
                fclose($v_dest_file);
2696
2697
                // ----- Change the file mode, mtime
2698
                touch($v_header['filename'], $v_header['mtime']);
2699
                //chmod($v_header['filename'], decoct($v_header['mode']));
2700
            }
2701
2702
            // ----- Check the file size
2703
            clearstatcache();