Code Duplication    Length = 44-44 lines in 2 locations

class/pcltar.lib.php 2 locations

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