Associate subdirector of whitespace trims trailing whites with pinking shears.

git-svn-id: http://svn.automattic.com/wordpress/trunk@12042 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
ryan 2009-10-15 20:26:21 +00:00
parent 83c2393f43
commit bf96c01551
12 changed files with 195 additions and 195 deletions

View File

@ -29,7 +29,7 @@
if (!defined('PCLZIP_READ_BLOCK_SIZE')) { if (!defined('PCLZIP_READ_BLOCK_SIZE')) {
define( 'PCLZIP_READ_BLOCK_SIZE', 2048 ); define( 'PCLZIP_READ_BLOCK_SIZE', 2048 );
} }
// ----- File list separator // ----- File list separator
// In version 1.x of PclZip, the separator for file list is a space // In version 1.x of PclZip, the separator for file list is a space
// (which is not a very smart choice, specifically for windows paths !). // (which is not a very smart choice, specifically for windows paths !).
@ -68,7 +68,7 @@
// ----- Optional threshold ratio for use of temporary files // ----- Optional threshold ratio for use of temporary files
// Pclzip sense the size of the file to add/extract and decide to // Pclzip sense the size of the file to add/extract and decide to
// use or not temporary file. The algorythm is looking for // use or not temporary file. The algorythm is looking for
// memory_limit of PHP and apply a ratio. // memory_limit of PHP and apply a ratio.
// threshold = memory_limit * ratio. // threshold = memory_limit * ratio.
// Recommended values are under 0.5. Default 0.47. // Recommended values are under 0.5. Default 0.47.
@ -152,7 +152,7 @@
define( 'PCLZIP_OPT_ADD_TEMP_FILE_ON', 77021 ); // alias define( 'PCLZIP_OPT_ADD_TEMP_FILE_ON', 77021 ); // alias
define( 'PCLZIP_OPT_TEMP_FILE_OFF', 77022 ); define( 'PCLZIP_OPT_TEMP_FILE_OFF', 77022 );
define( 'PCLZIP_OPT_ADD_TEMP_FILE_OFF', 77022 ); // alias define( 'PCLZIP_OPT_ADD_TEMP_FILE_OFF', 77022 ); // alias
// ----- File description attributes // ----- File description attributes
define( 'PCLZIP_ATT_FILE_NAME', 79001 ); define( 'PCLZIP_ATT_FILE_NAME', 79001 );
define( 'PCLZIP_ATT_FILE_NEW_SHORT_NAME', 79002 ); define( 'PCLZIP_ATT_FILE_NEW_SHORT_NAME', 79002 );
@ -198,7 +198,7 @@
// ----- Internal error handling // ----- Internal error handling
var $error_code = 1; var $error_code = 1;
var $error_string = ''; var $error_string = '';
// ----- Current status of the magic_quotes_runtime // ----- Current status of the magic_quotes_runtime
// This value store the php configuration for magic_quotes // This value store the php configuration for magic_quotes
// The class can then disable the magic_quotes and reset it after // The class can then disable the magic_quotes and reset it after
@ -332,7 +332,7 @@
} }
} }
} }
// ----- Look for default option values // ----- Look for default option values
$this->privOptionDefaultThreshold($v_options); $this->privOptionDefaultThreshold($v_options);
@ -341,16 +341,16 @@
$v_att_list = array(); $v_att_list = array();
$v_filedescr_list = array(); $v_filedescr_list = array();
$p_result_list = array(); $p_result_list = array();
// ----- Look if the $p_filelist is really an array // ----- Look if the $p_filelist is really an array
if (is_array($p_filelist)) { if (is_array($p_filelist)) {
// ----- Look if the first element is also an array // ----- Look if the first element is also an array
// This will mean that this is a file description entry // This will mean that this is a file description entry
if (isset($p_filelist[0]) && is_array($p_filelist[0])) { if (isset($p_filelist[0]) && is_array($p_filelist[0])) {
$v_att_list = $p_filelist; $v_att_list = $p_filelist;
} }
// ----- The list is a list of string names // ----- The list is a list of string names
else { else {
$v_string_list = $p_filelist; $v_string_list = $p_filelist;
@ -368,7 +368,7 @@
PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid variable type p_filelist"); PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid variable type p_filelist");
return 0; return 0;
} }
// ----- Reformat the string list // ----- Reformat the string list
if (sizeof($v_string_list) != 0) { if (sizeof($v_string_list) != 0) {
foreach ($v_string_list as $v_string) { foreach ($v_string_list as $v_string) {
@ -379,7 +379,7 @@
} }
} }
} }
// ----- For each file in the list check the attributes // ----- For each file in the list check the attributes
$v_supported_attributes $v_supported_attributes
= array ( PCLZIP_ATT_FILE_NAME => 'mandatory' = array ( PCLZIP_ATT_FILE_NAME => 'mandatory'
@ -528,16 +528,16 @@
$v_att_list = array(); $v_att_list = array();
$v_filedescr_list = array(); $v_filedescr_list = array();
$p_result_list = array(); $p_result_list = array();
// ----- Look if the $p_filelist is really an array // ----- Look if the $p_filelist is really an array
if (is_array($p_filelist)) { if (is_array($p_filelist)) {
// ----- Look if the first element is also an array // ----- Look if the first element is also an array
// This will mean that this is a file description entry // This will mean that this is a file description entry
if (isset($p_filelist[0]) && is_array($p_filelist[0])) { if (isset($p_filelist[0]) && is_array($p_filelist[0])) {
$v_att_list = $p_filelist; $v_att_list = $p_filelist;
} }
// ----- The list is a list of string names // ----- The list is a list of string names
else { else {
$v_string_list = $p_filelist; $v_string_list = $p_filelist;
@ -555,14 +555,14 @@
PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid variable type '".gettype($p_filelist)."' for p_filelist"); PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid variable type '".gettype($p_filelist)."' for p_filelist");
return 0; return 0;
} }
// ----- Reformat the string list // ----- Reformat the string list
if (sizeof($v_string_list) != 0) { if (sizeof($v_string_list) != 0) {
foreach ($v_string_list as $v_string) { foreach ($v_string_list as $v_string) {
$v_att_list[][PCLZIP_ATT_FILE_NAME] = $v_string; $v_att_list[][PCLZIP_ATT_FILE_NAME] = $v_string;
} }
} }
// ----- For each file in the list check the attributes // ----- For each file in the list check the attributes
$v_supported_attributes $v_supported_attributes
= array ( PCLZIP_ATT_FILE_NAME => 'mandatory' = array ( PCLZIP_ATT_FILE_NAME => 'mandatory'
@ -996,7 +996,7 @@
// Options : // Options :
// PCLZIP_OPT_BY_INDEX : // PCLZIP_OPT_BY_INDEX :
// PCLZIP_OPT_BY_NAME : // PCLZIP_OPT_BY_NAME :
// PCLZIP_OPT_BY_EREG : // PCLZIP_OPT_BY_EREG :
// PCLZIP_OPT_BY_PREG : // PCLZIP_OPT_BY_PREG :
// Return Values : // Return Values :
// 0 on failure, // 0 on failure,
@ -1064,7 +1064,7 @@
// -------------------------------------------------------------------------------- // --------------------------------------------------------------------------------
function deleteByIndex($p_index) function deleteByIndex($p_index)
{ {
$p_list = $this->delete(PCLZIP_OPT_BY_INDEX, $p_index); $p_list = $this->delete(PCLZIP_OPT_BY_INDEX, $p_index);
// ----- Return // ----- Return
@ -1114,7 +1114,7 @@
if (($this->zip_fd = @fopen($this->zipname, 'rb')) == 0) if (($this->zip_fd = @fopen($this->zipname, 'rb')) == 0)
{ {
$this->privSwapBackMagicQuotes(); $this->privSwapBackMagicQuotes();
// ----- Error log // ----- Error log
PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open archive \''.$this->zipname.'\' in binary read mode'); PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open archive \''.$this->zipname.'\' in binary read mode');
@ -1426,7 +1426,7 @@
function privParseOptions(&$p_options_list, $p_size, &$v_result_list, $v_requested_options=false) function privParseOptions(&$p_options_list, $p_size, &$v_result_list, $v_requested_options=false)
{ {
$v_result=1; $v_result=1;
// ----- Read the options // ----- Read the options
$i=0; $i=0;
while ($i<$p_size) { while ($i<$p_size) {
@ -1466,13 +1466,13 @@
PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'");
return PclZip::errorCode(); return PclZip::errorCode();
} }
// ----- Check for incompatible options // ----- Check for incompatible options
if (isset($v_result_list[PCLZIP_OPT_TEMP_FILE_OFF])) { if (isset($v_result_list[PCLZIP_OPT_TEMP_FILE_OFF])) {
PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Option '".PclZipUtilOptionText($p_options_list[$i])."' can not be used with option 'PCLZIP_OPT_TEMP_FILE_OFF'"); PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Option '".PclZipUtilOptionText($p_options_list[$i])."' can not be used with option 'PCLZIP_OPT_TEMP_FILE_OFF'");
return PclZip::errorCode(); return PclZip::errorCode();
} }
// ----- Check the value // ----- Check the value
$v_value = $p_options_list[$i+1]; $v_value = $p_options_list[$i+1];
if ((!is_integer($v_value)) || ($v_value<0)) { if ((!is_integer($v_value)) || ($v_value<0)) {
@ -1491,7 +1491,7 @@
PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Option '".PclZipUtilOptionText($p_options_list[$i])."' can not be used with option 'PCLZIP_OPT_TEMP_FILE_OFF'"); PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Option '".PclZipUtilOptionText($p_options_list[$i])."' can not be used with option 'PCLZIP_OPT_TEMP_FILE_OFF'");
return PclZip::errorCode(); return PclZip::errorCode();
} }
$v_result_list[$p_options_list[$i]] = true; $v_result_list[$p_options_list[$i]] = true;
break; break;
@ -1506,7 +1506,7 @@
PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Option '".PclZipUtilOptionText($p_options_list[$i])."' can not be used with option 'PCLZIP_OPT_TEMP_FILE_THRESHOLD'"); PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Option '".PclZipUtilOptionText($p_options_list[$i])."' can not be used with option 'PCLZIP_OPT_TEMP_FILE_THRESHOLD'");
return PclZip::errorCode(); return PclZip::errorCode();
} }
$v_result_list[$p_options_list[$i]] = true; $v_result_list[$p_options_list[$i]] = true;
break; break;
@ -1655,7 +1655,7 @@
// ----- Return // ----- Return
return PclZip::errorCode(); return PclZip::errorCode();
} }
// ----- Reduce the index list // ----- Reduce the index list
// each index item in the list must be a couple with a start and // each index item in the list must be a couple with a start and
// an end value : [0,3], [5-5], [8-10], ... // an end value : [0,3], [5-5], [8-10], ...
@ -1666,10 +1666,10 @@
// ----- Explode the item // ----- Explode the item
$v_item_list = explode("-", $v_work_list[$j]); $v_item_list = explode("-", $v_work_list[$j]);
$v_size_item_list = sizeof($v_item_list); $v_size_item_list = sizeof($v_item_list);
// ----- TBC : Here we might check that each item is a // ----- TBC : Here we might check that each item is a
// real integer ... // real integer ...
// ----- Look for single value // ----- Look for single value
if ($v_size_item_list == 1) { if ($v_size_item_list == 1) {
// ----- Set the option value // ----- Set the option value
@ -1703,7 +1703,7 @@
} }
$v_sort_value = $v_result_list[$p_options_list[$i]][$j]['start']; $v_sort_value = $v_result_list[$p_options_list[$i]][$j]['start'];
} }
// ----- Sort the items // ----- Sort the items
if ($v_sort_flag) { if ($v_sort_flag) {
// TBC : To Be Completed // TBC : To Be Completed
@ -1806,10 +1806,10 @@
} }
} }
} }
// ----- Look for default values // ----- Look for default values
if (!isset($v_result_list[PCLZIP_OPT_TEMP_FILE_THRESHOLD])) { if (!isset($v_result_list[PCLZIP_OPT_TEMP_FILE_THRESHOLD])) {
} }
// ----- Return // ----- Return
@ -1826,17 +1826,17 @@
function privOptionDefaultThreshold(&$p_options) function privOptionDefaultThreshold(&$p_options)
{ {
$v_result=1; $v_result=1;
if (isset($p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD]) if (isset($p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD])
|| isset($p_options[PCLZIP_OPT_TEMP_FILE_OFF])) { || isset($p_options[PCLZIP_OPT_TEMP_FILE_OFF])) {
return $v_result; return $v_result;
} }
// ----- Get 'memory_limit' configuration value // ----- Get 'memory_limit' configuration value
$v_memory_limit = ini_get('memory_limit'); $v_memory_limit = ini_get('memory_limit');
$v_memory_limit = trim($v_memory_limit); $v_memory_limit = trim($v_memory_limit);
$last = strtolower(substr($v_memory_limit, -1)); $last = strtolower(substr($v_memory_limit, -1));
if($last == 'g') if($last == 'g')
//$v_memory_limit = $v_memory_limit*1024*1024*1024; //$v_memory_limit = $v_memory_limit*1024*1024*1024;
$v_memory_limit = $v_memory_limit*1073741824; $v_memory_limit = $v_memory_limit*1073741824;
@ -1845,15 +1845,15 @@
$v_memory_limit = $v_memory_limit*1048576; $v_memory_limit = $v_memory_limit*1048576;
if($last == 'k') if($last == 'k')
$v_memory_limit = $v_memory_limit*1024; $v_memory_limit = $v_memory_limit*1024;
$p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD] = floor($v_memory_limit*PCLZIP_TEMPORARY_FILE_RATIO); $p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD] = floor($v_memory_limit*PCLZIP_TEMPORARY_FILE_RATIO);
// ----- Sanity check : No threshold if value lower than 1M // ----- Sanity check : No threshold if value lower than 1M
if ($p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD] < 1048576) { if ($p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD] < 1048576) {
unset($p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD]); unset($p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD]);
} }
// ----- Return // ----- Return
return $v_result; return $v_result;
} }
@ -1870,10 +1870,10 @@
function privFileDescrParseAtt(&$p_file_list, &$p_filedescr, $v_options, $v_requested_options=false) function privFileDescrParseAtt(&$p_file_list, &$p_filedescr, $v_options, $v_requested_options=false)
{ {
$v_result=1; $v_result=1;
// ----- For each file in the list check the attributes // ----- For each file in the list check the attributes
foreach ($p_file_list as $v_key => $v_value) { foreach ($p_file_list as $v_key => $v_value) {
// ----- Check if the option is supported // ----- Check if the option is supported
if (!isset($v_requested_options[$v_key])) { if (!isset($v_requested_options[$v_key])) {
// ----- Error log // ----- Error log
@ -1892,7 +1892,7 @@
} }
$p_filedescr['filename'] = PclZipUtilPathReduction($v_value); $p_filedescr['filename'] = PclZipUtilPathReduction($v_value);
if ($p_filedescr['filename'] == '') { if ($p_filedescr['filename'] == '') {
PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid empty filename for attribute '".PclZipUtilOptionText($v_key)."'"); PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid empty filename for attribute '".PclZipUtilOptionText($v_key)."'");
return PclZip::errorCode(); return PclZip::errorCode();
@ -1973,10 +1973,10 @@
} }
} }
} }
// end foreach // end foreach
} }
// ----- Return // ----- Return
return $v_result; return $v_result;
} }
@ -1989,7 +1989,7 @@
// or a string to be added as file. For any other type of files (link, other) // or a string to be added as file. For any other type of files (link, other)
// just ignore the item. // just ignore the item.
// Then prepare the information that will be stored for that file. // Then prepare the information that will be stored for that file.
// When its a folder, expand the folder with all the files that are in that // When its a folder, expand the folder with all the files that are in that
// folder (recursively). // folder (recursively).
// Parameters : // Parameters :
// Return Values : // Return Values :
@ -1999,20 +1999,20 @@
function privFileDescrExpand(&$p_filedescr_list, &$p_options) function privFileDescrExpand(&$p_filedescr_list, &$p_options)
{ {
$v_result=1; $v_result=1;
// ----- Create a result list // ----- Create a result list
$v_result_list = array(); $v_result_list = array();
// ----- Look each entry // ----- Look each entry
for ($i=0; $i<sizeof($p_filedescr_list); $i++) { for ($i=0; $i<sizeof($p_filedescr_list); $i++) {
// ----- Get filedescr // ----- Get filedescr
$v_descr = $p_filedescr_list[$i]; $v_descr = $p_filedescr_list[$i];
// ----- Reduce the filename // ----- Reduce the filename
$v_descr['filename'] = PclZipUtilTranslateWinPath($v_descr['filename'], false); $v_descr['filename'] = PclZipUtilTranslateWinPath($v_descr['filename'], false);
$v_descr['filename'] = PclZipUtilPathReduction($v_descr['filename']); $v_descr['filename'] = PclZipUtilPathReduction($v_descr['filename']);
// ----- Look for real file or folder // ----- Look for real file or folder
if (file_exists($v_descr['filename'])) { if (file_exists($v_descr['filename'])) {
if (@is_file($v_descr['filename'])) { if (@is_file($v_descr['filename'])) {
@ -2030,12 +2030,12 @@
continue; continue;
} }
} }
// ----- Look for string added as file // ----- Look for string added as file
else if (isset($v_descr['content'])) { else if (isset($v_descr['content'])) {
$v_descr['type'] = 'virtual_file'; $v_descr['type'] = 'virtual_file';
} }
// ----- Missing file // ----- Missing file
else { else {
// ----- Error log // ----- Error log
@ -2044,13 +2044,13 @@
// ----- Return // ----- Return
return PclZip::errorCode(); return PclZip::errorCode();
} }
// ----- Calculate the stored filename // ----- Calculate the stored filename
$this->privCalculateStoredFilename($v_descr, $p_options); $this->privCalculateStoredFilename($v_descr, $p_options);
// ----- Add the descriptor in result list // ----- Add the descriptor in result list
$v_result_list[sizeof($v_result_list)] = $v_descr; $v_result_list[sizeof($v_result_list)] = $v_descr;
// ----- Look for folder // ----- Look for folder
if ($v_descr['type'] == 'folder') { if ($v_descr['type'] == 'folder') {
// ----- List of items in folder // ----- List of items in folder
@ -2063,10 +2063,10 @@
if (($v_item_handler == '.') || ($v_item_handler == '..')) { if (($v_item_handler == '.') || ($v_item_handler == '..')) {
continue; continue;
} }
// ----- Compose the full filename // ----- Compose the full filename
$v_dirlist_descr[$v_dirlist_nb]['filename'] = $v_descr['filename'].'/'.$v_item_handler; $v_dirlist_descr[$v_dirlist_nb]['filename'] = $v_descr['filename'].'/'.$v_item_handler;
// ----- Look for different stored filename // ----- Look for different stored filename
// Because the name of the folder was changed, the name of the // Because the name of the folder was changed, the name of the
// files/sub-folders also change // files/sub-folders also change
@ -2079,34 +2079,34 @@
$v_dirlist_descr[$v_dirlist_nb]['new_full_name'] = $v_item_handler; $v_dirlist_descr[$v_dirlist_nb]['new_full_name'] = $v_item_handler;
} }
} }
$v_dirlist_nb++; $v_dirlist_nb++;
} }
@closedir($v_folder_handler); @closedir($v_folder_handler);
} }
else { else {
// TBC : unable to open folder in read mode // TBC : unable to open folder in read mode
} }
// ----- Expand each element of the list // ----- Expand each element of the list
if ($v_dirlist_nb != 0) { if ($v_dirlist_nb != 0) {
// ----- Expand // ----- Expand
if (($v_result = $this->privFileDescrExpand($v_dirlist_descr, $p_options)) != 1) { if (($v_result = $this->privFileDescrExpand($v_dirlist_descr, $p_options)) != 1) {
return $v_result; return $v_result;
} }
// ----- Concat the resulting list // ----- Concat the resulting list
$v_result_list = array_merge($v_result_list, $v_dirlist_descr); $v_result_list = array_merge($v_result_list, $v_dirlist_descr);
} }
else { else {
} }
// ----- Free local array // ----- Free local array
unset($v_dirlist_descr); unset($v_dirlist_descr);
} }
} }
// ----- Get the result list // ----- Get the result list
$p_filedescr_list = $v_result_list; $p_filedescr_list = $v_result_list;
@ -2125,7 +2125,7 @@
{ {
$v_result=1; $v_result=1;
$v_list_detail = array(); $v_list_detail = array();
// ----- Magic quotes trick // ----- Magic quotes trick
$this->privDisableMagicQuotes(); $this->privDisableMagicQuotes();
@ -2455,7 +2455,7 @@
// Function : privAddFileList() // Function : privAddFileList()
// Description : // Description :
// Parameters : // Parameters :
// $p_filedescr_list : An array containing the file description // $p_filedescr_list : An array containing the file description
// or directory names to add in the zip // or directory names to add in the zip
// $p_result_list : list of added files with their properties (specially the status field) // $p_result_list : list of added files with their properties (specially the status field)
// Return Values : // Return Values :
@ -2473,7 +2473,7 @@
// ----- Format the filename // ----- Format the filename
$p_filedescr_list[$j]['filename'] $p_filedescr_list[$j]['filename']
= PclZipUtilTranslateWinPath($p_filedescr_list[$j]['filename'], false); = PclZipUtilTranslateWinPath($p_filedescr_list[$j]['filename'], false);
// ----- Skip empty file names // ----- Skip empty file names
// TBC : Can this be possible ? not checked in DescrParseAtt ? // TBC : Can this be possible ? not checked in DescrParseAtt ?
@ -2525,7 +2525,7 @@
function privAddFile($p_filedescr, &$p_header, &$p_options) function privAddFile($p_filedescr, &$p_header, &$p_options)
{ {
$v_result=1; $v_result=1;
// ----- Working variable // ----- Working variable
$p_filename = $p_filedescr['filename']; $p_filename = $p_filedescr['filename'];
@ -2537,8 +2537,8 @@
// ----- Return // ----- Return
return PclZip::errorCode(); return PclZip::errorCode();
} }
// ----- Look for a stored different filename // ----- Look for a stored different filename
/* TBC : Removed /* TBC : Removed
if (isset($p_filedescr['stored_filename'])) { if (isset($p_filedescr['stored_filename'])) {
$v_stored_filename = $p_filedescr['stored_filename']; $v_stored_filename = $p_filedescr['stored_filename'];
@ -2573,20 +2573,20 @@
$p_header['external'] = 0x00000000; $p_header['external'] = 0x00000000;
$p_header['size'] = filesize($p_filename); $p_header['size'] = filesize($p_filename);
} }
// ----- Look for regular folder // ----- Look for regular folder
else if ($p_filedescr['type']=='folder') { else if ($p_filedescr['type']=='folder') {
$p_header['external'] = 0x00000010; $p_header['external'] = 0x00000010;
$p_header['mtime'] = filemtime($p_filename); $p_header['mtime'] = filemtime($p_filename);
$p_header['size'] = filesize($p_filename); $p_header['size'] = filesize($p_filename);
} }
// ----- Look for virtual file // ----- Look for virtual file
else if ($p_filedescr['type'] == 'virtual_file') { else if ($p_filedescr['type'] == 'virtual_file') {
$p_header['external'] = 0x00000000; $p_header['external'] = 0x00000000;
$p_header['size'] = strlen($p_filedescr['content']); $p_header['size'] = strlen($p_filedescr['content']);
} }
// ----- Look for filetime // ----- Look for filetime
if (isset($p_filedescr['mtime'])) { if (isset($p_filedescr['mtime'])) {
@ -2637,7 +2637,7 @@
if ($p_header['stored_filename'] == "") { if ($p_header['stored_filename'] == "") {
$p_header['status'] = "filtered"; $p_header['status'] = "filtered";
} }
// ----- Check the path length // ----- Check the path length
if (strlen($p_header['stored_filename']) > 0xFF) { if (strlen($p_header['stored_filename']) > 0xFF) {
$p_header['status'] = 'filename_too_long'; $p_header['status'] = 'filename_too_long';
@ -2649,7 +2649,7 @@
// ----- Look for a file // ----- Look for a file
if ($p_filedescr['type'] == 'file') { if ($p_filedescr['type'] == 'file') {
// ----- Look for using temporary file to zip // ----- Look for using temporary file to zip
if ( (!isset($p_options[PCLZIP_OPT_TEMP_FILE_OFF])) if ( (!isset($p_options[PCLZIP_OPT_TEMP_FILE_OFF]))
&& (isset($p_options[PCLZIP_OPT_TEMP_FILE_ON]) && (isset($p_options[PCLZIP_OPT_TEMP_FILE_ON])
|| (isset($p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD]) || (isset($p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD])
&& ($p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD] <= $p_header['size'])) ) ) { && ($p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD] <= $p_header['size'])) ) ) {
@ -2658,7 +2658,7 @@
return $v_result; return $v_result;
} }
} }
// ----- Use "in memory" zip algo // ----- Use "in memory" zip algo
else { else {
@ -2676,14 +2676,14 @@
// ----- Calculate the CRC // ----- Calculate the CRC
$p_header['crc'] = @crc32($v_content); $p_header['crc'] = @crc32($v_content);
// ----- Look for no compression // ----- Look for no compression
if ($p_options[PCLZIP_OPT_NO_COMPRESSION]) { if ($p_options[PCLZIP_OPT_NO_COMPRESSION]) {
// ----- Set header parameters // ----- Set header parameters
$p_header['compressed_size'] = $p_header['size']; $p_header['compressed_size'] = $p_header['size'];
$p_header['compression'] = 0; $p_header['compression'] = 0;
} }
// ----- Look for normal compression // ----- Look for normal compression
else { else {
// ----- Compress the content // ----- Compress the content
@ -2693,7 +2693,7 @@
$p_header['compressed_size'] = strlen($v_content); $p_header['compressed_size'] = strlen($v_content);
$p_header['compression'] = 8; $p_header['compression'] = 8;
} }
// ----- Call the header generation // ----- Call the header generation
if (($v_result = $this->privWriteFileHeader($p_header)) != 1) { if (($v_result = $this->privWriteFileHeader($p_header)) != 1) {
@fclose($v_file); @fclose($v_file);
@ -2709,19 +2709,19 @@
// ----- Look for a virtual file (a file from string) // ----- Look for a virtual file (a file from string)
else if ($p_filedescr['type'] == 'virtual_file') { else if ($p_filedescr['type'] == 'virtual_file') {
$v_content = $p_filedescr['content']; $v_content = $p_filedescr['content'];
// ----- Calculate the CRC // ----- Calculate the CRC
$p_header['crc'] = @crc32($v_content); $p_header['crc'] = @crc32($v_content);
// ----- Look for no compression // ----- Look for no compression
if ($p_options[PCLZIP_OPT_NO_COMPRESSION]) { if ($p_options[PCLZIP_OPT_NO_COMPRESSION]) {
// ----- Set header parameters // ----- Set header parameters
$p_header['compressed_size'] = $p_header['size']; $p_header['compressed_size'] = $p_header['size'];
$p_header['compression'] = 0; $p_header['compression'] = 0;
} }
// ----- Look for normal compression // ----- Look for normal compression
else { else {
// ----- Compress the content // ----- Compress the content
@ -2731,7 +2731,7 @@
$p_header['compressed_size'] = strlen($v_content); $p_header['compressed_size'] = strlen($v_content);
$p_header['compression'] = 8; $p_header['compression'] = 8;
} }
// ----- Call the header generation // ----- Call the header generation
if (($v_result = $this->privWriteFileHeader($p_header)) != 1) { if (($v_result = $this->privWriteFileHeader($p_header)) != 1) {
@fclose($v_file); @fclose($v_file);
@ -2796,7 +2796,7 @@
function privAddFileUsingTempFile($p_filedescr, &$p_header, &$p_options) function privAddFileUsingTempFile($p_filedescr, &$p_header, &$p_options)
{ {
$v_result=PCLZIP_ERR_NO_ERROR; $v_result=PCLZIP_ERR_NO_ERROR;
// ----- Working variable // ----- Working variable
$p_filename = $p_filedescr['filename']; $p_filename = $p_filedescr['filename'];
@ -2891,7 +2891,7 @@
// ----- Unlink the temporary file // ----- Unlink the temporary file
@unlink($v_gzip_temp_name); @unlink($v_gzip_temp_name);
// ----- Return // ----- Return
return $v_result; return $v_result;
} }
@ -2908,7 +2908,7 @@
function privCalculateStoredFilename(&$p_filedescr, &$p_options) function privCalculateStoredFilename(&$p_filedescr, &$p_options)
{ {
$v_result=1; $v_result=1;
// ----- Working variables // ----- Working variables
$p_filename = $p_filedescr['filename']; $p_filename = $p_filedescr['filename'];
if (isset($p_options[PCLZIP_OPT_ADD_PATH])) { if (isset($p_options[PCLZIP_OPT_ADD_PATH])) {
@ -2936,7 +2936,7 @@
// ----- Remove drive letter if any // ----- Remove drive letter if any
$v_stored_filename = PclZipUtilTranslateWinPath($p_filedescr['new_full_name']); $v_stored_filename = PclZipUtilTranslateWinPath($p_filedescr['new_full_name']);
} }
// ----- Look for path and/or short name change // ----- Look for path and/or short name change
else { else {
@ -2966,7 +2966,7 @@
if ( (substr($p_filename, 0, 2) == "./") if ( (substr($p_filename, 0, 2) == "./")
|| (substr($p_remove_dir, 0, 2) == "./")) { || (substr($p_remove_dir, 0, 2) == "./")) {
if ( (substr($p_filename, 0, 2) == "./") if ( (substr($p_filename, 0, 2) == "./")
&& (substr($p_remove_dir, 0, 2) != "./")) { && (substr($p_remove_dir, 0, 2) != "./")) {
$p_remove_dir = "./".$p_remove_dir; $p_remove_dir = "./".$p_remove_dir;
@ -2989,10 +2989,10 @@
} }
} }
} }
// ----- Remove drive letter if any // ----- Remove drive letter if any
$v_stored_filename = PclZipUtilTranslateWinPath($v_stored_filename); $v_stored_filename = PclZipUtilTranslateWinPath($v_stored_filename);
// ----- Look for path to add // ----- Look for path to add
if ($p_add_dir != "") { if ($p_add_dir != "") {
if (substr($p_add_dir, -1) == "/") if (substr($p_add_dir, -1) == "/")
@ -3005,7 +3005,7 @@
// ----- Filename (reduce the path of stored name) // ----- Filename (reduce the path of stored name)
$v_stored_filename = PclZipUtilPathReduction($v_stored_filename); $v_stored_filename = PclZipUtilPathReduction($v_stored_filename);
$p_filedescr['stored_filename'] = $v_stored_filename; $p_filedescr['stored_filename'] = $v_stored_filename;
// ----- Return // ----- Return
return $v_result; return $v_result;
} }
@ -3156,7 +3156,7 @@
{ {
// ----- Magic quotes trick // ----- Magic quotes trick
$this->privSwapBackMagicQuotes(); $this->privSwapBackMagicQuotes();
// ----- Error log // ----- Error log
PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open archive \''.$this->zipname.'\' in binary read mode'); PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open archive \''.$this->zipname.'\' in binary read mode');
@ -3387,7 +3387,7 @@
// ----- Look for extract by ereg rule // ----- Look for extract by ereg rule
// ereg() is deprecated with PHP 5.3 // ereg() is deprecated with PHP 5.3
/* /*
else if ( (isset($p_options[PCLZIP_OPT_BY_EREG])) else if ( (isset($p_options[PCLZIP_OPT_BY_EREG]))
&& ($p_options[PCLZIP_OPT_BY_EREG] != "")) { && ($p_options[PCLZIP_OPT_BY_EREG] != "")) {
@ -3409,7 +3409,7 @@
// ----- Look for extract by index rule // ----- Look for extract by index rule
else if ( (isset($p_options[PCLZIP_OPT_BY_INDEX])) else if ( (isset($p_options[PCLZIP_OPT_BY_INDEX]))
&& ($p_options[PCLZIP_OPT_BY_INDEX] != 0)) { && ($p_options[PCLZIP_OPT_BY_INDEX] != 0)) {
// ----- Look if the index is in the list // ----- Look if the index is in the list
for ($j=$j_start; ($j<sizeof($p_options[PCLZIP_OPT_BY_INDEX])) && (!$v_extract); $j++) { for ($j=$j_start; ($j<sizeof($p_options[PCLZIP_OPT_BY_INDEX])) && (!$v_extract); $j++) {
@ -3442,7 +3442,7 @@
&& ($p_options[PCLZIP_OPT_STOP_ON_ERROR]===true)) { && ($p_options[PCLZIP_OPT_STOP_ON_ERROR]===true)) {
$this->privSwapBackMagicQuotes(); $this->privSwapBackMagicQuotes();
PclZip::privErrorLog(PCLZIP_ERR_UNSUPPORTED_COMPRESSION, PclZip::privErrorLog(PCLZIP_ERR_UNSUPPORTED_COMPRESSION,
"Filename '".$v_header['stored_filename']."' is " "Filename '".$v_header['stored_filename']."' is "
."compressed by an unsupported compression " ."compressed by an unsupported compression "
@ -3451,7 +3451,7 @@
return PclZip::errorCode(); return PclZip::errorCode();
} }
} }
// ----- Check encrypted files // ----- Check encrypted files
if (($v_extract) && (($v_header['flag'] & 1) == 1)) { if (($v_extract) && (($v_header['flag'] & 1) == 1)) {
$v_header['status'] = 'unsupported_encryption'; $v_header['status'] = 'unsupported_encryption';
@ -3483,7 +3483,7 @@
$v_extract = false; $v_extract = false;
} }
// ----- Look for real extraction // ----- Look for real extraction
if ($v_extract) if ($v_extract)
{ {
@ -3532,7 +3532,7 @@
// ----- Next extracted file // ----- Next extracted file
$v_nb_extracted++; $v_nb_extracted++;
// ----- Look for user callback abort // ----- Look for user callback abort
if ($v_result1 == 2) { if ($v_result1 == 2) {
break; break;
@ -3668,12 +3668,12 @@
if ($p_path != '') { if ($p_path != '') {
$p_entry['filename'] = $p_path."/".$p_entry['filename']; $p_entry['filename'] = $p_path."/".$p_entry['filename'];
} }
// ----- Check a base_dir_restriction // ----- Check a base_dir_restriction
if (isset($p_options[PCLZIP_OPT_EXTRACT_DIR_RESTRICTION])) { if (isset($p_options[PCLZIP_OPT_EXTRACT_DIR_RESTRICTION])) {
$v_inclusion $v_inclusion
= PclZipUtilPathInclusion($p_options[PCLZIP_OPT_EXTRACT_DIR_RESTRICTION], = PclZipUtilPathInclusion($p_options[PCLZIP_OPT_EXTRACT_DIR_RESTRICTION],
$p_entry['filename']); $p_entry['filename']);
if ($v_inclusion == 0) { if ($v_inclusion == 0) {
PclZip::privErrorLog(PCLZIP_ERR_DIRECTORY_RESTRICTION, PclZip::privErrorLog(PCLZIP_ERR_DIRECTORY_RESTRICTION,
@ -3700,7 +3700,7 @@
$p_entry['status'] = "skipped"; $p_entry['status'] = "skipped";
$v_result = 1; $v_result = 1;
} }
// ----- Look for abort result // ----- Look for abort result
if ($v_result == 2) { if ($v_result == 2) {
// ----- This status is internal and will be changed in 'skipped' // ----- This status is internal and will be changed in 'skipped'
@ -3727,7 +3727,7 @@
// ----- Change the file status // ----- Change the file status
$p_entry['status'] = "already_a_directory"; $p_entry['status'] = "already_a_directory";
// ----- Look for PCLZIP_OPT_STOP_ON_ERROR // ----- Look for PCLZIP_OPT_STOP_ON_ERROR
// For historical reason first PclZip implementation does not stop // For historical reason first PclZip implementation does not stop
// when this kind of error occurs. // when this kind of error occurs.
@ -3800,10 +3800,10 @@
$v_dir_to_check = dirname($p_entry['filename']); $v_dir_to_check = dirname($p_entry['filename']);
if (($v_result = $this->privDirCheck($v_dir_to_check, (($p_entry['external']&0x00000010)==0x00000010))) != 1) { if (($v_result = $this->privDirCheck($v_dir_to_check, (($p_entry['external']&0x00000010)==0x00000010))) != 1) {
// ----- Change the file status // ----- Change the file status
$p_entry['status'] = "path_creation_fail"; $p_entry['status'] = "path_creation_fail";
// ----- Return // ----- Return
//return $v_result; //return $v_result;
$v_result = 1; $v_result = 1;
@ -3842,7 +3842,7 @@
$v_binary_data = pack('a'.$v_read_size, $v_buffer); $v_binary_data = pack('a'.$v_read_size, $v_buffer);
@fwrite($v_dest_file, $v_binary_data, $v_read_size); @fwrite($v_dest_file, $v_binary_data, $v_read_size);
*/ */
@fwrite($v_dest_file, $v_buffer, $v_read_size); @fwrite($v_dest_file, $v_buffer, $v_read_size);
$v_size -= $v_read_size; $v_size -= $v_read_size;
} }
@ -3851,7 +3851,7 @@
// ----- Change the file mtime // ----- Change the file mtime
touch($p_entry['filename'], $p_entry['mtime']); touch($p_entry['filename'], $p_entry['mtime']);
} }
else { else {
@ -3864,7 +3864,7 @@
// ----- Look for using temporary file to unzip // ----- Look for using temporary file to unzip
if ( (!isset($p_options[PCLZIP_OPT_TEMP_FILE_OFF])) if ( (!isset($p_options[PCLZIP_OPT_TEMP_FILE_OFF]))
&& (isset($p_options[PCLZIP_OPT_TEMP_FILE_ON]) && (isset($p_options[PCLZIP_OPT_TEMP_FILE_ON])
|| (isset($p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD]) || (isset($p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD])
&& ($p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD] <= $p_entry['size'])) ) ) { && ($p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD] <= $p_entry['size'])) ) ) {
@ -3873,42 +3873,42 @@
return $v_result; return $v_result;
} }
} }
// ----- Look for extract in memory // ----- Look for extract in memory
else { else {
// ----- Read the compressed file in a buffer (one shot) // ----- Read the compressed file in a buffer (one shot)
$v_buffer = @fread($this->zip_fd, $p_entry['compressed_size']); $v_buffer = @fread($this->zip_fd, $p_entry['compressed_size']);
// ----- Decompress the file // ----- Decompress the file
$v_file_content = @gzinflate($v_buffer); $v_file_content = @gzinflate($v_buffer);
unset($v_buffer); unset($v_buffer);
if ($v_file_content === FALSE) { if ($v_file_content === FALSE) {
// ----- Change the file status // ----- Change the file status
// TBC // TBC
$p_entry['status'] = "error"; $p_entry['status'] = "error";
return $v_result; return $v_result;
} }
// ----- Opening destination file // ----- Opening destination file
if (($v_dest_file = @fopen($p_entry['filename'], 'wb')) == 0) { if (($v_dest_file = @fopen($p_entry['filename'], 'wb')) == 0) {
// ----- Change the file status // ----- Change the file status
$p_entry['status'] = "write_error"; $p_entry['status'] = "write_error";
return $v_result; return $v_result;
} }
// ----- Write the uncompressed data // ----- Write the uncompressed data
@fwrite($v_dest_file, $v_file_content, $p_entry['size']); @fwrite($v_dest_file, $v_file_content, $p_entry['size']);
unset($v_file_content); unset($v_file_content);
// ----- Closing the destination file // ----- Closing the destination file
@fclose($v_dest_file); @fclose($v_dest_file);
} }
// ----- Change the file mtime // ----- Change the file mtime
@ -3929,7 +3929,7 @@
if ($p_entry['status'] == "aborted") { if ($p_entry['status'] == "aborted") {
$p_entry['status'] = "skipped"; $p_entry['status'] = "skipped";
} }
// ----- Look for post-extract callback // ----- Look for post-extract callback
elseif (isset($p_options[PCLZIP_CB_POST_EXTRACT])) { elseif (isset($p_options[PCLZIP_CB_POST_EXTRACT])) {
@ -3962,7 +3962,7 @@
function privExtractFileUsingTempFile(&$p_entry, &$p_options) function privExtractFileUsingTempFile(&$p_entry, &$p_options)
{ {
$v_result=1; $v_result=1;
// ----- Creates a temporary file // ----- Creates a temporary file
$v_gzip_temp_name = PCLZIP_TEMPORARY_DIR.uniqid('pclzip-').'.gz'; $v_gzip_temp_name = PCLZIP_TEMPORARY_DIR.uniqid('pclzip-').'.gz';
if (($v_dest_file = @fopen($v_gzip_temp_name, "wb")) == 0) { if (($v_dest_file = @fopen($v_gzip_temp_name, "wb")) == 0) {
@ -4023,7 +4023,7 @@
// ----- Delete the temporary file // ----- Delete the temporary file
@unlink($v_gzip_temp_name); @unlink($v_gzip_temp_name);
// ----- Return // ----- Return
return $v_result; return $v_result;
} }
@ -4101,7 +4101,7 @@
// ----- Read the compressed file in a buffer (one shot) // ----- Read the compressed file in a buffer (one shot)
$v_buffer = @fread($this->zip_fd, $p_entry['compressed_size']); $v_buffer = @fread($this->zip_fd, $p_entry['compressed_size']);
// ----- Decompress the file // ----- Decompress the file
$v_file_content = gzinflate($v_buffer); $v_file_content = gzinflate($v_buffer);
unset($v_buffer); unset($v_buffer);
@ -4180,7 +4180,7 @@
$p_entry['status'] = "skipped"; $p_entry['status'] = "skipped";
$v_result = 1; $v_result = 1;
} }
// ----- Look for abort result // ----- Look for abort result
if ($v_result == 2) { if ($v_result == 2) {
// ----- This status is internal and will be changed in 'skipped' // ----- This status is internal and will be changed in 'skipped'
@ -4202,41 +4202,41 @@
// ----- Look for not compressed file // ----- Look for not compressed file
// if ($p_entry['compressed_size'] == $p_entry['size']) // if ($p_entry['compressed_size'] == $p_entry['size'])
if ($p_entry['compression'] == 0) { if ($p_entry['compression'] == 0) {
// ----- Reading the file // ----- Reading the file
$p_string = @fread($this->zip_fd, $p_entry['compressed_size']); $p_string = @fread($this->zip_fd, $p_entry['compressed_size']);
} }
else { else {
// ----- Reading the file // ----- Reading the file
$v_data = @fread($this->zip_fd, $p_entry['compressed_size']); $v_data = @fread($this->zip_fd, $p_entry['compressed_size']);
// ----- Decompress the file // ----- Decompress the file
if (($p_string = @gzinflate($v_data)) === FALSE) { if (($p_string = @gzinflate($v_data)) === FALSE) {
// TBC // TBC
} }
} }
// ----- Trace // ----- Trace
} }
else { else {
// TBC : error : can not extract a folder in a string // TBC : error : can not extract a folder in a string
} }
} }
// ----- Change abort status // ----- Change abort status
if ($p_entry['status'] == "aborted") { if ($p_entry['status'] == "aborted") {
$p_entry['status'] = "skipped"; $p_entry['status'] = "skipped";
} }
// ----- Look for post-extract callback // ----- Look for post-extract callback
elseif (isset($p_options[PCLZIP_CB_POST_EXTRACT])) { elseif (isset($p_options[PCLZIP_CB_POST_EXTRACT])) {
// ----- Generate a local information // ----- Generate a local information
$v_local_header = array(); $v_local_header = array();
$this->privConvertHeader2FileInfo($p_entry, $v_local_header); $this->privConvertHeader2FileInfo($p_entry, $v_local_header);
// ----- Swap the content to header // ----- Swap the content to header
$v_local_header['content'] = $p_string; $v_local_header['content'] = $p_string;
$p_string = ''; $p_string = '';
@ -4496,7 +4496,7 @@
} }
if ($p_local_header['filename_len'] != $p_central_header['filename_len']) { if ($p_local_header['filename_len'] != $p_central_header['filename_len']) {
} }
// ----- Look for flag bit 3 // ----- Look for flag bit 3
if (($p_local_header['flag'] & 8) == 8) { if (($p_local_header['flag'] & 8) == 8) {
$p_local_header['size'] = $p_central_header['size']; $p_local_header['size'] = $p_central_header['size'];
@ -4582,9 +4582,9 @@
// ----- Add the byte // ----- Add the byte
//$v_bytes = ($v_bytes << 8) | Ord($v_byte); //$v_bytes = ($v_bytes << 8) | Ord($v_byte);
// Note we mask the old value down such that once shifted we can never end up with more than a 32bit number // Note we mask the old value down such that once shifted we can never end up with more than a 32bit number
// Otherwise on systems where we have 64bit integers the check below for the magic number will fail. // Otherwise on systems where we have 64bit integers the check below for the magic number will fail.
$v_bytes = ( ($v_bytes & 0xFFFFFF) << 8) | Ord($v_byte); $v_bytes = ( ($v_bytes & 0xFFFFFF) << 8) | Ord($v_byte);
// ----- Compare the bytes // ----- Compare the bytes
if ($v_bytes == 0x504b0506) if ($v_bytes == 0x504b0506)
@ -4862,7 +4862,7 @@
// ----- Return // ----- Return
return $v_result; return $v_result;
} }
// ----- Check that local file header is same as central file header // ----- Check that local file header is same as central file header
if ($this->privCheckFileHeaders($v_local_header, if ($this->privCheckFileHeaders($v_local_header,
$v_header_list[$i]) != 1) { $v_header_list[$i]) != 1) {
@ -4946,11 +4946,11 @@
// TBC : I should test the result ... // TBC : I should test the result ...
//@rename($v_zip_temp_name, $this->zipname); //@rename($v_zip_temp_name, $this->zipname);
PclZipUtilRename($v_zip_temp_name, $this->zipname); PclZipUtilRename($v_zip_temp_name, $this->zipname);
// ----- Destroy the temporary archive // ----- Destroy the temporary archive
unset($v_temp_zip); unset($v_temp_zip);
} }
// ----- Remove every files : reset the file // ----- Remove every files : reset the file
else if ($v_central_dir['entries'] != 0) { else if ($v_central_dir['entries'] != 0) {
$this->privCloseFd(); $this->privCloseFd();
@ -5437,7 +5437,7 @@
} }
} }
} }
// ----- Look for skip // ----- Look for skip
if ($v_skip > 0) { if ($v_skip > 0) {
while ($v_skip > 0) { while ($v_skip > 0) {
@ -5470,7 +5470,7 @@
function PclZipUtilPathInclusion($p_dir, $p_path) function PclZipUtilPathInclusion($p_dir, $p_path)
{ {
$v_result = 1; $v_result = 1;
// ----- Look for path beginning by ./ // ----- Look for path beginning by ./
if ( ($p_dir == '.') if ( ($p_dir == '.')
|| ((strlen($p_dir) >=2) && (substr($p_dir, 0, 2) == './'))) { || ((strlen($p_dir) >=2) && (substr($p_dir, 0, 2) == './'))) {
@ -5638,7 +5638,7 @@
// -------------------------------------------------------------------------------- // --------------------------------------------------------------------------------
function PclZipUtilOptionText($p_option) function PclZipUtilOptionText($p_option)
{ {
$v_list = get_defined_constants(); $v_list = get_defined_constants();
for (reset($v_list); $v_key = key($v_list); next($v_list)) { for (reset($v_list); $v_key = key($v_list); next($v_list)) {
$v_prefix = substr($v_key, 0, 10); $v_prefix = substr($v_key, 0, 10);
@ -5649,7 +5649,7 @@
return $v_key; return $v_key;
} }
} }
$v_result = 'Unknown'; $v_result = 'Unknown';
return $v_result; return $v_result;

View File

@ -991,7 +991,7 @@ function user_can_access_admin_page() {
* @since 2.7.0 * @since 2.7.0
* *
* @param string $option_group A settings group name. Should correspond to a whitelisted option key name. * @param string $option_group A settings group name. Should correspond to a whitelisted option key name.
* Default whitelisted option key names include "general," "discussion," and "reading," among others. * Default whitelisted option key names include "general," "discussion," and "reading," among others.
* @param string $option_name The name of an option to sanitize and save. * @param string $option_name The name of an option to sanitize and save.
* @param unknown_type $sanitize_callback A callback function that sanitizes the option's value. * @param unknown_type $sanitize_callback A callback function that sanitizes the option's value.
* @return unknown * @return unknown

View File

@ -436,7 +436,7 @@ var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>', pagenow = 'press-thi
<?php } ?> <?php } ?>
jQuery('#title').unbind(); jQuery('#title').unbind();
jQuery('#publish, #save').click(function() { jQuery('#saving').css('display', 'inline'); }); jQuery('#publish, #save').click(function() { jQuery('#saving').css('display', 'inline'); });
$('#tagsdiv-post_tag, #categorydiv').children('h3').click(function(){ $('#tagsdiv-post_tag, #categorydiv').children('h3').click(function(){
$(this).siblings('.inside').toggle(); $(this).siblings('.inside').toggle();
}); });

View File

@ -174,7 +174,7 @@ class WP_oEmbed {
// Example content: http://vimeo.com/api/oembed.xml?url=http%3A%2F%2Fvimeo.com%2F240975 // Example content: http://vimeo.com/api/oembed.xml?url=http%3A%2F%2Fvimeo.com%2F240975
elseif ( function_exists('simplexml_load_string') ) { elseif ( function_exists('simplexml_load_string') ) {
$errors = libxml_use_internal_errors( 'true' ); $errors = libxml_use_internal_errors( 'true' );
$data = simplexml_load_string( $result ); $data = simplexml_load_string( $result );
libxml_use_internal_errors( $errors ); libxml_use_internal_errors( $errors );

View File

@ -896,8 +896,8 @@ function wp_untrash_comment($comment_id) {
$comment['comment_approved'] = $status; $comment['comment_approved'] = $status;
delete_comment_meta($comment_id, '_wp_trash_meta_time'); delete_comment_meta($comment_id, '_wp_trash_meta_time');
delete_comment_meta($comment_id, '_wp_trash_meta_status'); delete_comment_meta($comment_id, '_wp_trash_meta_status');
wp_update_comment($comment); wp_update_comment($comment);

View File

@ -1715,7 +1715,7 @@ function the_author_ID() {
* parameters. * parameters.
* *
* @deprecated 2.9.0 * @deprecated 2.9.0
* *
* @param string $more_link_text Optional. Text to display when more content is available but not displayed. * @param string $more_link_text Optional. Text to display when more content is available but not displayed.
* @param int|bool $stripteaser Optional. Default is 0. * @param int|bool $stripteaser Optional. Default is 0.
* @param string $more_file Optional. * @param string $more_file Optional.

View File

@ -3172,13 +3172,13 @@ function wp_suspend_cache_invalidation($suspend = true) {
} }
function get_site_option( $key, $default = false, $use_cache = true ) { function get_site_option( $key, $default = false, $use_cache = true ) {
// Allow plugins to short-circuit site options. // Allow plugins to short-circuit site options.
$pre = apply_filters( 'pre_site_option_' . $key, false ); $pre = apply_filters( 'pre_site_option_' . $key, false );
if ( false !== $pre ) if ( false !== $pre )
return $pre; return $pre;
$value = get_option($key, $default); $value = get_option($key, $default);
return apply_filters( 'site_option_' . $key, $value ); return apply_filters( 'site_option_' . $key, $value );
} }

View File

@ -560,7 +560,7 @@ function wp_get_attachment_image($attachment_id, $size = 'thumbnail', $icon = fa
* Adds a 'wp-post-image' class to post image thumbnails * Adds a 'wp-post-image' class to post image thumbnails
* Uses the begin_fetch_post_image_html and end_fetch_post_image_html action hooks to * Uses the begin_fetch_post_image_html and end_fetch_post_image_html action hooks to
* dynamically add/remove itself so as to only filter post image thumbnails * dynamically add/remove itself so as to only filter post image thumbnails
* *
* @author Mark Jaquith * @author Mark Jaquith
* @since 2.9.0 * @since 2.9.0
* @param array $attr Attributes including src, class, alt, title * @param array $attr Attributes including src, class, alt, title
@ -573,7 +573,7 @@ function _wp_post_image_class_filter( $attr ) {
/** /**
* Adds _wp_post_image_class_filter to the wp_get_attachment_image_attributes filter * Adds _wp_post_image_class_filter to the wp_get_attachment_image_attributes filter
* *
* @author Mark Jaquith * @author Mark Jaquith
* @since 2.9.0 * @since 2.9.0
*/ */
@ -583,7 +583,7 @@ function _wp_post_image_class_filter_add( $attr ) {
/** /**
* Removes _wp_post_image_class_filter from the wp_get_attachment_image_attributes filter * Removes _wp_post_image_class_filter from the wp_get_attachment_image_attributes filter
* *
* @author Mark Jaquith * @author Mark Jaquith
* @since 2.9.0 * @since 2.9.0
*/ */

View File

@ -81,9 +81,9 @@ function update_metadata($meta_type, $object_id, $meta_key, $meta_value, $prev_v
} }
function delete_metadata($meta_type, $object_id, $meta_key, $meta_value = '', $delete_all = false) { function delete_metadata($meta_type, $object_id, $meta_key, $meta_value = '', $delete_all = false) {
if ( !$meta_type || !$meta_key || (!$delete_all && ! (int)$object_id) ) if ( !$meta_type || !$meta_key || (!$delete_all && ! (int)$object_id) )
return false; return false;
if ( ! $table = _get_meta_table($meta_type) ) if ( ! $table = _get_meta_table($meta_type) )
return false; return false;

View File

@ -473,7 +473,7 @@ function get_post_types( $args = array(), $output = 'names' ) {
* Optional $args contents: * Optional $args contents:
* *
* exclude_from_search - Whether to exclude posts with this post type from search results. Defaults to true. * exclude_from_search - Whether to exclude posts with this post type from search results. Defaults to true.
* *
* @package WordPress * @package WordPress
* @subpackage Post * @subpackage Post
* @since 2.9.0 * @since 2.9.0
@ -2246,7 +2246,7 @@ function &get_page_children($page_id, $pages) {
* *
* It uses auxiliary structure to hold parent-children relationships and * It uses auxiliary structure to hold parent-children relationships and
* runs in O(N) complexity * runs in O(N) complexity
* *
* @since 2.0.0 * @since 2.0.0
* *
* @param array $posts Posts array. * @param array $posts Posts array.
@ -2254,34 +2254,34 @@ function &get_page_children($page_id, $pages) {
* @return array A list arranged by hierarchy. Children immediately follow their parents. * @return array A list arranged by hierarchy. Children immediately follow their parents.
*/ */
function &get_page_hierarchy( &$pages, $page_id = 0 ) { function &get_page_hierarchy( &$pages, $page_id = 0 ) {
if ( empty( $pages ) ) if ( empty( $pages ) )
return null; return null;
$children = array(); $children = array();
foreach ( (array) $pages as $p ) { foreach ( (array) $pages as $p ) {
$parent_id = intval( $p->post_parent ); $parent_id = intval( $p->post_parent );
$children[ $parent_id ][] = $p; $children[ $parent_id ][] = $p;
} }
$result = array(); $result = array();
_page_traverse_name( $page_id, $children, $result ); _page_traverse_name( $page_id, $children, $result );
return $result; return $result;
} }
/** /**
* function to traverse and return all the nested children post names of a root page. * function to traverse and return all the nested children post names of a root page.
* $children contains parent-chilren relations * $children contains parent-chilren relations
* *
*/ */
function _page_traverse_name( $page_id, &$children, &$result ){ function _page_traverse_name( $page_id, &$children, &$result ){
if ( isset( $children[ $page_id ] ) ){ if ( isset( $children[ $page_id ] ) ){
foreach( (array)$children[ $page_id ] as $child ) { foreach( (array)$children[ $page_id ] as $child ) {
$result[ $child->ID ] = $child->post_name; $result[ $child->ID ] = $child->post_name;
_page_traverse_name( $child->ID, $children, $result ); _page_traverse_name( $child->ID, $children, $result );
} }

View File

@ -385,7 +385,7 @@ function wp_default_scripts( &$scripts ) {
$scripts->add( 'set-post-thumbnail-handler', "/wp-admin/js/set-post-thumbnail-handler$suffix.js", array( 'jquery' ), '20091015' ); $scripts->add( 'set-post-thumbnail-handler', "/wp-admin/js/set-post-thumbnail-handler$suffix.js", array( 'jquery' ), '20091015' );
$scripts->add_data( 'set-post-thumbnail-handler', 'group', 1 ); $scripts->add_data( 'set-post-thumbnail-handler', 'group', 1 );
} }
} }

View File

@ -129,7 +129,7 @@ function get_template_directory() {
$template = get_template(); $template = get_template();
$theme_root = get_theme_root( $template ); $theme_root = get_theme_root( $template );
$template_dir = "$theme_root/$template"; $template_dir = "$theme_root/$template";
return apply_filters( 'template_directory', $template_dir, $template, $theme_root ); return apply_filters( 'template_directory', $template_dir, $template, $theme_root );
} }
@ -145,7 +145,7 @@ function get_template_directory_uri() {
$template = get_template(); $template = get_template();
$theme_root_uri = get_theme_root_uri( $template ); $theme_root_uri = get_theme_root_uri( $template );
$template_dir_uri = "$theme_root_uri/$template"; $template_dir_uri = "$theme_root_uri/$template";
return apply_filters( 'template_directory_uri', $template_dir_uri, $template, $theme_root_uri ); return apply_filters( 'template_directory_uri', $template_dir_uri, $template, $theme_root_uri );
} }
@ -266,9 +266,9 @@ function get_themes() {
if ( !$theme_files = search_theme_directories() ) if ( !$theme_files = search_theme_directories() )
return false; return false;
asort( $theme_files ); asort( $theme_files );
foreach ( (array) $theme_files as $theme_file ) { foreach ( (array) $theme_files as $theme_file ) {
$theme_root = $theme_file['theme_root']; $theme_root = $theme_file['theme_root'];
$theme_file = $theme_file['theme_file']; $theme_file = $theme_file['theme_file'];
@ -307,7 +307,7 @@ function get_themes() {
else else
continue; continue;
} }
$template = trim( $template ); $template = trim( $template );
if ( !file_exists("$theme_root/$template/index.php") ) { if ( !file_exists("$theme_root/$template/index.php") ) {
@ -315,9 +315,9 @@ function get_themes() {
if ( file_exists("$theme_root/$parent_dir/$template/index.php") ) { if ( file_exists("$theme_root/$parent_dir/$template/index.php") ) {
$template = "$theme_root/$parent_dir/$template"; $template = "$theme_root/$parent_dir/$template";
} else { } else {
/** /**
* The parent theme doesn't exist in the current theme's folder or sub folder * The parent theme doesn't exist in the current theme's folder or sub folder
* so lets use the theme root for the parent template. * so lets use the theme root for the parent template.
*/ */
$parent_theme_root = $theme_files[$template]['theme_root']; $parent_theme_root = $theme_files[$template]['theme_root'];
if ( file_exists( "$parent_theme_root/$template/index.php" ) ) { if ( file_exists( "$parent_theme_root/$template/index.php" ) ) {
@ -326,12 +326,12 @@ function get_themes() {
$wp_broken_themes[$name] = array('Name' => $name, 'Title' => $title, 'Description' => __('Template is missing.')); $wp_broken_themes[$name] = array('Name' => $name, 'Title' => $title, 'Description' => __('Template is missing.'));
continue; continue;
} }
} }
} else { } else {
$template = trim( $theme_root . '/' . $template ); $template = trim( $theme_root . '/' . $template );
} }
$stylesheet_files = array(); $stylesheet_files = array();
$template_files = array(); $template_files = array();
@ -419,7 +419,7 @@ function get_themes() {
} }
$wp_themes = $themes; $wp_themes = $themes;
return $themes; return $themes;
} }
@ -501,16 +501,16 @@ function get_current_theme() {
*/ */
function register_theme_directory( $directory ) { function register_theme_directory( $directory ) {
global $wp_theme_directories; global $wp_theme_directories;
/* The theme directory should be relative to the content directory */ /* The theme directory should be relative to the content directory */
$registered_directory = WP_CONTENT_DIR . '/' . $directory; $registered_directory = WP_CONTENT_DIR . '/' . $directory;
/* If this folder does not exist, return and do not register */ /* If this folder does not exist, return and do not register */
if ( !file_exists( $registered_directory ) ) if ( !file_exists( $registered_directory ) )
return false; return false;
$wp_theme_directories[] = $registered_directory; $wp_theme_directories[] = $registered_directory;
return true; return true;
} }
@ -523,7 +523,7 @@ function register_theme_directory( $directory ) {
*/ */
function search_theme_directories() { function search_theme_directories() {
global $wp_theme_directories, $wp_broken_themes; global $wp_theme_directories, $wp_broken_themes;
if ( empty( $wp_theme_directories ) ) if ( empty( $wp_theme_directories ) )
return false; return false;
@ -533,9 +533,9 @@ function search_theme_directories() {
/* Loop the registered theme directories and extract all themes */ /* Loop the registered theme directories and extract all themes */
foreach ( (array) $wp_theme_directories as $theme_root ) { foreach ( (array) $wp_theme_directories as $theme_root ) {
$theme_loc = $theme_root; $theme_loc = $theme_root;
/* We don't want to replace all forward slashes, see Trac #4541 */ /* We don't want to replace all forward slashes, see Trac #4541 */
if ( '/' != WP_CONTENT_DIR ) if ( '/' != WP_CONTENT_DIR )
$theme_loc = str_replace(WP_CONTENT_DIR, '', $theme_root); $theme_loc = str_replace(WP_CONTENT_DIR, '', $theme_root);
/* Files in the root of the current theme directory and one subdir down */ /* Files in the root of the current theme directory and one subdir down */
@ -551,7 +551,7 @@ function search_theme_directories() {
$stylish_dir = @ opendir($theme_root . '/' . $theme_dir); $stylish_dir = @ opendir($theme_root . '/' . $theme_dir);
$found_stylesheet = false; $found_stylesheet = false;
while ( ($theme_file = readdir($stylish_dir)) !== false ) { while ( ($theme_file = readdir($stylish_dir)) !== false ) {
if ( $theme_file == 'style.css' ) { if ( $theme_file == 'style.css' ) {
$theme_files[$theme_dir] = array( 'theme_file' => $theme_dir . '/' . $theme_file, 'theme_root' => $theme_root ); $theme_files[$theme_dir] = array( 'theme_file' => $theme_dir . '/' . $theme_file, 'theme_root' => $theme_root );
@ -560,20 +560,20 @@ function search_theme_directories() {
} }
} }
@closedir($stylish_dir); @closedir($stylish_dir);
if ( !$found_stylesheet ) { // look for themes in that dir if ( !$found_stylesheet ) { // look for themes in that dir
$subdir = "$theme_root/$theme_dir"; $subdir = "$theme_root/$theme_dir";
$subdir_name = $theme_dir; $subdir_name = $theme_dir;
$theme_subdir = @ opendir( $subdir ); $theme_subdir = @ opendir( $subdir );
while ( ($theme_dir = readdir($theme_subdir)) !== false ) { while ( ($theme_dir = readdir($theme_subdir)) !== false ) {
if ( is_dir( $subdir . '/' . $theme_dir) && is_readable($subdir . '/' . $theme_dir) ) { if ( is_dir( $subdir . '/' . $theme_dir) && is_readable($subdir . '/' . $theme_dir) ) {
if ( $theme_dir{0} == '.' || $theme_dir == '..' || $theme_dir == 'CVS' ) if ( $theme_dir{0} == '.' || $theme_dir == '..' || $theme_dir == 'CVS' )
continue; continue;
$stylish_dir = @ opendir($subdir . '/' . $theme_dir); $stylish_dir = @ opendir($subdir . '/' . $theme_dir);
$found_stylesheet = false; $found_stylesheet = false;
while ( ($theme_file = readdir($stylish_dir)) !== false ) { while ( ($theme_file = readdir($stylish_dir)) !== false ) {
if ( $theme_file == 'style.css' ) { if ( $theme_file == 'style.css' ) {
$theme_files[$theme_dir] = array( 'theme_file' => $subdir_name . '/' . $theme_dir . '/' . $theme_file, 'theme_root' => $theme_root ); $theme_files[$theme_dir] = array( 'theme_file' => $subdir_name . '/' . $theme_dir . '/' . $theme_file, 'theme_root' => $theme_root );
@ -585,7 +585,7 @@ function search_theme_directories() {
} }
} }
@closedir($theme_subdir); @closedir($theme_subdir);
$wp_broken_themes[$theme_dir] = array('Name' => $theme_dir, 'Title' => $theme_dir, 'Description' => __('Stylesheet is missing.')); $wp_broken_themes[$theme_dir] = array('Name' => $theme_dir, 'Title' => $theme_dir, 'Description' => __('Stylesheet is missing.'));
} }
} }
@ -593,7 +593,7 @@ function search_theme_directories() {
if ( is_dir( $theme_dir ) ) if ( is_dir( $theme_dir ) )
@closedir( $theme_dir ); @closedir( $theme_dir );
} }
return $theme_files; return $theme_files;
} }
@ -610,7 +610,7 @@ function search_theme_directories() {
*/ */
function get_theme_root( $stylesheet_or_template = false ) { function get_theme_root( $stylesheet_or_template = false ) {
$theme_roots = get_theme_roots(); $theme_roots = get_theme_roots();
if ( $theme_roots[$stylesheet_or_template] ) if ( $theme_roots[$stylesheet_or_template] )
$theme_root = WP_CONTENT_DIR . '/' . $theme_roots[$stylesheet_or_template]; $theme_root = WP_CONTENT_DIR . '/' . $theme_roots[$stylesheet_or_template];
else else
@ -631,7 +631,7 @@ function get_theme_root( $stylesheet_or_template = false ) {
*/ */
function get_theme_root_uri( $stylesheet_or_template = false ) { function get_theme_root_uri( $stylesheet_or_template = false ) {
$theme_roots = get_theme_roots(); $theme_roots = get_theme_roots();
if ( $theme_roots[$stylesheet_or_template] ) if ( $theme_roots[$stylesheet_or_template] )
$theme_root_uri = content_url( $theme_roots[$stylesheet_or_template] ); $theme_root_uri = content_url( $theme_roots[$stylesheet_or_template] );
else else
@ -736,7 +736,7 @@ function get_category_template() {
* Works by first retrieving the current tag name, for example 'tag-wordpress.php' and then * Works by first retrieving the current tag name, for example 'tag-wordpress.php' and then
* trying tag ID, for example 'tag-1.php' and will finally fallback to tag.php * trying tag ID, for example 'tag-1.php' and will finally fallback to tag.php
* template, if those files don't exist. * template, if those files don't exist.
* *
* @since 2.3.0 * @since 2.3.0
* @uses apply_filters() Calls 'tag_template' on file path of tag template. * @uses apply_filters() Calls 'tag_template' on file path of tag template.
* *
@ -753,7 +753,7 @@ function get_tag_template() {
if ( $tag_id ) if ( $tag_id )
$templates[] = "tag-$tag_id.php"; $templates[] = "tag-$tag_id.php";
$templates[] = "tag.php"; $templates[] = "tag.php";
$template = locate_template($templates); $template = locate_template($templates);
return apply_filters('tag_template', $template); return apply_filters('tag_template', $template);
} }