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();
@@ 2674-2717 (lines=44) @@
2671
        // ----- Do the real bytes extraction (if not a directory)
2672
        if ($v_extract_file && ($v_header['typeflag'] != '5')) {
2673
            // ----- Open the destination file in write mode
2674
            if (($v_dest_file = @fopen($v_header['filename'], 'wb')) == 0) {
2675
                TrFctMessage(__FILE__, __LINE__, 2, 'Error while opening ' . $v_header['filename'] . ' in write binary mode');
2676
2677
                // ----- Change the file status
2678
                $v_header['status'] = 'write_error';
2679
2680
                // ----- Jump to next file
2681
                TrFctMessage(__FILE__, __LINE__, 2, 'Jump to next file');
2682
                if ($p_tar_mode === 'tar') {
2683
                    fseek($v_tar, ftell($v_tar) + (ceil($v_header['size'] / 512) * 512));
2684
                } else {
2685
                    gzseek($v_tar, gztell($v_tar) + (ceil($v_header['size'] / 512) * 512));
2686
                }
2687
            } else {
2688
                TrFctMessage(__FILE__, __LINE__, 2, 'Start extraction of ' . $v_header['filename'] . '');
2689
2690
                // ----- Read data
2691
                $n = floor($v_header['size'] / 512);
2692
                for ($i = 0; $i < $n; ++$i) {
2693
                    TrFctMessage(__FILE__, __LINE__, 3, 'Read complete 512 bytes block number ' . ($i + 1));
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, 512);
2700
                }
2701
                if (($v_header['size'] % 512) != 0) {
2702
                    TrFctMessage(__FILE__, __LINE__, 3, 'Read last ' . ($v_header['size'] % 512) . ' bytes in a 512 block');
2703
                    if ($p_tar_mode === 'tar') {
2704
                        $v_content = fread($v_tar, 512);
2705
                    } else {
2706
                        $v_content = gzread($v_tar, 512);
2707
                    }
2708
                    fwrite($v_dest_file, $v_content, $v_header['size'] % 512);
2709
                }
2710
2711
                // ----- Close the destination file
2712
                fclose($v_dest_file);
2713
2714
                // ----- Change the file mode, mtime
2715
                touch($v_header['filename'], $v_header['mtime']);
2716
                //chmod($v_header['filename'], decoct($v_header['mode']));
2717
            }
2718
2719
            // ----- Check the file size
2720
            clearstatcache();