catalog/ 0000755 5773401 0100224 00000000000 10625430715 014160 5 ustar tonerlogics pg116757 0000000 0000000 catalog/libs/ 0000755 5773401 0100224 00000000000 10625430434 015107 5 ustar tonerlogics pg116757 0000000 0000000 catalog/libs/PEAR/ 0000755 5773401 0100224 00000000000 10625430312 015631 5 ustar tonerlogics pg116757 0000000 0000000 catalog/libs/PEAR/.registry/ 0000755 5773401 0100224 00000000000 10625427740 017572 5 ustar tonerlogics pg116757 0000000 0000000 catalog/libs/PEAR/.registry/.channel.pecl.php.net/ 0000755 5773401 0100224 00000000000 10625423062 023546 5 ustar tonerlogics pg116757 0000000 0000000 catalog/libs/PEAR/.registry/.channel.__uri/ 0000755 5773401 0100224 00000000000 10625423062 022345 5 ustar tonerlogics pg116757 0000000 0000000 catalog/libs/PEAR/.registry/archive_tar.reg 0000644 5773401 0100224 00000021170 10625427730 022560 0 ustar tonerlogics pg116757 0000000 0000000 a:24:{s:7:"attribs";a:6:{s:15:"packagerversion";s:8:"1.5.0RC2";s:7:"version";s:3:"2.0";s:5:"xmlns";s:35:"http://pear.php.net/dtd/package-2.0";s:11:"xmlns:tasks";s:33:"http://pear.php.net/dtd/tasks-1.0";s:9:"xmlns:xsi";s:41:"http://www.w3.org/2001/XMLSchema-instance";s:18:"xsi:schemaLocation";s:147:"http://pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 http://pear.php.net/dtd/package-2.0.xsd";}s:4:"name";s:11:"Archive_Tar";s:7:"channel";s:12:"pear.php.net";s:7:"summary";s:25:"Tar file management class";s:11:"description";s:257:"This class provides handling of tar files in PHP.
It supports creating, listing, extracting and adding to tar files.
Gzip support is available if PHP has the zlib extension built-in or
loaded. Bz2 compression is also supported with the bz2 extension loaded.";s:4:"lead";a:2:{i:0;a:4:{s:4:"name";s:14:"Gregory Beaver";s:4:"user";s:6:"cellog";s:5:"email";s:14:"cellog@php.net";s:6:"active";s:3:"yes";}i:1;a:4:{s:4:"name";s:14:"Vincent Blavet";s:4:"user";s:7:"vblavet";s:5:"email";s:22:"vincent@phpconcept.net";s:6:"active";s:2:"no";}}s:6:"helper";a:4:{s:4:"name";s:11:"Stig Bakken";s:4:"user";s:3:"ssb";s:5:"email";s:12:"stig@php.net";s:6:"active";s:2:"no";}s:4:"date";s:10:"2007-01-03";s:4:"time";s:8:"15:31:40";s:7:"version";a:2:{s:7:"release";s:5:"1.3.2";s:3:"api";s:5:"1.3.2";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:26:"http://www.php.net/license";}s:8:"_content";s:11:"PHP License";}s:5:"notes";s:485:"Correct Bug #4016
Remove duplicate remove error display with '@'
Correct Bug #3909 : Check existence of OS_WINDOWS constant
Correct Bug #5452 fix for "lone zero block" when untarring packages
Change filemode (from pear-core/Archive/Tar.php v.1.21)
Correct Bug #6486 Can not extract symlinks
Correct Bug #6933 Archive_Tar (Tar file management class) Directory traversal
Correct Bug #8114 Files added on-the-fly not storing date
Correct Bug #9352 Bug on _dirCheck function over nfs path";s:8:"contents";a:1:{s:3:"dir";a:2:{s:7:"attribs";a:1:{s:4:"name";s:1:"/";}s:4:"file";a:2:{i:0;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"06409d39f4268a9aa9e2924c7f397a38";s:4:"name";s:15:"Archive/Tar.php";s:4:"role";s:3:"php";}}i:1;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"29b03715377b18b1fafcff98a99cc9a7";s:4:"name";s:20:"docs/Archive_Tar.txt";s:4:"role";s:3:"doc";}}}}}s:10:"compatible";a:4:{s:4:"name";s:4:"PEAR";s:7:"channel";s:12:"pear.php.net";s:3:"min";s:5:"1.4.0";s:3:"max";s:8:"1.5.0RC2";}s:12:"dependencies";a:1:{s:8:"required";a:2:{s:3:"php";a:1:{s:3:"min";s:5:"4.0.0";}s:13:"pearinstaller";a:1:{s:3:"min";s:7:"1.4.0b1";}}}s:10:"phprelease";s:0:"";s:9:"changelog";a:1:{s:7:"release";a:10:{i:0;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"1.3.1";s:3:"api";s:5:"1.3.1";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2005-03-17";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:26:"http://www.php.net/license";}s:8:"_content";s:11:"PHP License";}s:5:"notes";s:17:"Correct Bug #3855";}i:1;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"1.3.0";s:3:"api";s:5:"1.3.0";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2005-03-06";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:26:"http://www.php.net/license";}s:8:"_content";s:11:"PHP License";}s:5:"notes";s:40:"Bugs correction (2475, 2488, 2135, 2176)";}i:2;a:5:{s:7:"version";a:2:{s:7:"release";s:3:"1.2";s:3:"api";s:3:"1.2";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2004-05-08";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:26:"http://www.php.net/license";}s:8:"_content";s:11:"PHP License";}s:5:"notes";s:71:"Add support for other separator than the space char and bug
correction";}i:3;a:5:{s:7:"version";a:2:{s:7:"release";s:3:"1.1";s:3:"api";s:3:"1.1";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2003-05-28";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:26:"http://www.php.net/license";}s:8:"_content";s:11:"PHP License";}s:5:"notes";s:141:"* Add support for BZ2 compression
* Add support for add and extract without using temporary files : methods addString() and extractInString()";}i:4;a:5:{s:7:"version";a:2:{s:7:"release";s:3:"1.0";s:3:"api";s:3:"1.0";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2003-01-24";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:26:"http://www.php.net/license";}s:8:"_content";s:11:"PHP License";}s:5:"notes";s:23:"Change status to stable";}i:5;a:5:{s:7:"version";a:2:{s:7:"release";s:7:"0.10-b1";s:3:"api";s:7:"0.10-b1";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:4:"date";s:10:"2003-01-08";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:26:"http://www.php.net/license";}s:8:"_content";s:11:"PHP License";}s:5:"notes";s:59:"Add support for long filenames (greater than 99 characters)";}i:6;a:5:{s:7:"version";a:2:{s:7:"release";s:3:"0.9";s:3:"api";s:3:"0.9";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2002-05-27";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:26:"http://www.php.net/license";}s:8:"_content";s:11:"PHP License";}s:5:"notes";s:25:"Auto-detect gzip'ed files";}i:7;a:5:{s:7:"version";a:2:{s:7:"release";s:3:"0.4";s:3:"api";s:3:"0.4";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2002-05-20";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:26:"http://www.php.net/license";}s:8:"_content";s:11:"PHP License";}s:5:"notes";s:51:"Windows bugfix: use forward slashes inside archives";}i:8;a:5:{s:7:"version";a:2:{s:7:"release";s:3:"0.2";s:3:"api";s:3:"0.2";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2002-02-18";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:26:"http://www.php.net/license";}s:8:"_content";s:11:"PHP License";}s:5:"notes";s:29:"From initial commit to stable";}i:9;a:5:{s:7:"version";a:2:{s:7:"release";s:3:"0.3";s:3:"api";s:3:"0.3";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2002-04-13";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:26:"http://www.php.net/license";}s:8:"_content";s:11:"PHP License";}s:5:"notes";s:47:"Windows bugfix: used wrong directory separators";}}}s:8:"filelist";a:2:{s:15:"Archive/Tar.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"06409d39f4268a9aa9e2924c7f397a38";s:4:"name";s:15:"Archive/Tar.php";s:4:"role";s:3:"php";s:12:"installed_as";s:54:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\Archive\Tar.php";}s:20:"docs/Archive_Tar.txt";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"29b03715377b18b1fafcff98a99cc9a7";s:4:"name";s:20:"docs/Archive_Tar.txt";s:4:"role";s:3:"doc";s:12:"installed_as";s:76:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\Archive_Tar\docs\Archive_Tar.txt";}}s:12:"_lastversion";s:5:"1.3.2";s:7:"dirtree";a:4:{s:46:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\Archive";b:1;s:46:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\Archive";b:1;s:60:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\Archive_Tar\docs";b:1;s:60:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\docs\Archive_Tar\docs";b:1;}s:3:"old";a:7:{s:7:"version";s:5:"1.3.2";s:12:"release_date";s:10:"2007-01-03";s:13:"release_state";s:6:"stable";s:15:"release_license";s:11:"PHP License";s:13:"release_notes";s:485:"Correct Bug #4016
Remove duplicate remove error display with '@'
Correct Bug #3909 : Check existence of OS_WINDOWS constant
Correct Bug #5452 fix for "lone zero block" when untarring packages
Change filemode (from pear-core/Archive/Tar.php v.1.21)
Correct Bug #6486 Can not extract symlinks
Correct Bug #6933 Archive_Tar (Tar file management class) Directory traversal
Correct Bug #8114 Files added on-the-fly not storing date
Correct Bug #9352 Bug on _dirCheck function over nfs path";s:12:"release_deps";a:2:{i:0;a:4:{s:4:"type";s:3:"php";s:3:"rel";s:2:"ge";s:7:"version";s:5:"4.0.0";s:8:"optional";s:2:"no";}i:1;a:6:{s:4:"type";s:3:"pkg";s:7:"channel";s:12:"pear.php.net";s:4:"name";s:4:"PEAR";s:3:"rel";s:2:"ge";s:7:"version";s:7:"1.4.0b1";s:8:"optional";s:2:"no";}}s:11:"maintainers";a:3:{i:0;a:5:{s:4:"name";s:14:"Gregory Beaver";s:5:"email";s:14:"cellog@php.net";s:6:"active";s:3:"yes";s:6:"handle";s:6:"cellog";s:4:"role";s:4:"lead";}i:1;a:5:{s:4:"name";s:14:"Vincent Blavet";s:5:"email";s:22:"vincent@phpconcept.net";s:6:"active";s:2:"no";s:6:"handle";s:7:"vblavet";s:4:"role";s:4:"lead";}i:2;a:5:{s:4:"name";s:11:"Stig Bakken";s:5:"email";s:12:"stig@php.net";s:6:"active";s:2:"no";s:6:"handle";s:3:"ssb";s:4:"role";s:6:"helper";}}}s:10:"xsdversion";s:3:"2.0";s:13:"_lastmodified";i:1171608472;} catalog/libs/PEAR/.registry/console_getopt.reg 0000644 5773401 0100224 00000004417 10625427731 023323 0 ustar tonerlogics pg116757 0000000 0000000 a:17:{s:8:"provides";a:0:{}s:8:"filelist";a:1:{s:18:"Console/Getopt.php";a:3:{s:4:"role";s:3:"php";s:6:"md5sum";s:32:"99ed4904b93b15a81ea9c8566c3ffc78";s:12:"installed_as";s:57:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\Console\Getopt.php";}}s:10:"xsdversion";s:3:"1.0";s:15:"packagerversion";s:5:"1.4.9";s:7:"package";s:14:"Console_Getopt";s:7:"summary";s:26:"Command-line option parser";s:11:"description";s:83:"This is a PHP implementation of "getopt" supporting both
short and long options.
";s:11:"maintainers";a:3:{i:0;a:4:{s:6:"handle";s:6:"andrei";s:4:"name";s:15:"Andrei Zmievski";s:5:"email";s:14:"andrei@php.net";s:4:"role";s:4:"lead";}i:1;a:4:{s:6:"handle";s:3:"ssb";s:4:"name";s:11:"Stig Bakken";s:5:"email";s:12:"stig@php.net";s:4:"role";s:9:"developer";}i:2;a:4:{s:6:"handle";s:6:"cellog";s:4:"name";s:11:"Greg Beaver";s:5:"email";s:14:"cellog@php.net";s:4:"role";s:6:"helper";}}s:7:"version";s:5:"1.2.1";s:12:"release_date";s:10:"2006-12-08";s:15:"release_license";s:11:"PHP License";s:13:"release_state";s:6:"stable";s:13:"release_notes";s:130:"Fixed bugs #4448 (Long parameter values truncated with longoption parameter) and #7444 (Trailing spaces after php closing tag)
";s:9:"changelog";a:5:{i:0;a:4:{s:7:"version";s:3:"1.2";s:12:"release_date";s:10:"2003-12-11";s:13:"release_state";s:6:"stable";s:13:"release_notes";s:75:"Fix to preserve BC with 1.0 and allow correct behaviour for new users
";}i:1;a:4:{s:7:"version";s:3:"1.0";s:12:"release_date";s:10:"2002-09-13";s:13:"release_state";s:6:"stable";s:13:"release_notes";s:20:"Stable release
";}i:2;a:4:{s:7:"version";s:4:"0.11";s:12:"release_date";s:10:"2002-05-26";s:13:"release_state";s:4:"beta";s:13:"release_notes";s:95:"POSIX getopt compatibility fix: treat first element of args
array as command name
";}i:3;a:4:{s:7:"version";s:4:"0.10";s:12:"release_date";s:10:"2002-05-12";s:13:"release_state";s:4:"beta";s:13:"release_notes";s:19:"Packaging fix
";}i:4;a:4:{s:7:"version";s:3:"0.9";s:12:"release_date";s:10:"2002-05-12";s:13:"release_state";s:4:"beta";s:13:"release_notes";s:21:"Initial release
";}}s:12:"_lastversion";s:5:"1.2.1";s:7:"dirtree";a:2:{s:46:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\Console";b:1;s:46:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\Console";b:1;}s:13:"_lastmodified";i:1171608473;} catalog/libs/PEAR/.registry/html_template_it.reg 0000644 5773401 0100224 00000043623 10625427732 023635 0 ustar tonerlogics pg116757 0000000 0000000 a:17:{s:8:"provides";a:44:{s:22:"class;HTML_Template_IT";a:3:{s:4:"type";s:5:"class";s:4:"name";s:16:"HTML_Template_IT";s:8:"explicit";b:1;}s:36:"function;HTML_Template_IT::setOption";a:3:{s:4:"type";s:8:"function";s:4:"name";s:27:"HTML_Template_IT::setOption";s:8:"explicit";b:1;}s:37:"function;HTML_Template_IT::setOptions";a:3:{s:4:"type";s:8:"function";s:4:"name";s:28:"HTML_Template_IT::setOptions";s:8:"explicit";b:1;}s:31:"function;HTML_Template_IT::show";a:3:{s:4:"type";s:8:"function";s:4:"name";s:22:"HTML_Template_IT::show";s:8:"explicit";b:1;}s:30:"function;HTML_Template_IT::get";a:3:{s:4:"type";s:8:"function";s:4:"name";s:21:"HTML_Template_IT::get";s:8:"explicit";b:1;}s:32:"function;HTML_Template_IT::parse";a:3:{s:4:"type";s:8:"function";s:4:"name";s:23:"HTML_Template_IT::parse";s:8:"explicit";b:1;}s:44:"function;HTML_Template_IT::parseCurrentBlock";a:3:{s:4:"type";s:8:"function";s:4:"name";s:35:"HTML_Template_IT::parseCurrentBlock";s:8:"explicit";b:1;}s:38:"function;HTML_Template_IT::setVariable";a:3:{s:4:"type";s:8:"function";s:4:"name";s:29:"HTML_Template_IT::setVariable";s:8:"explicit";b:1;}s:42:"function;HTML_Template_IT::setCurrentBlock";a:3:{s:4:"type";s:8:"function";s:4:"name";s:33:"HTML_Template_IT::setCurrentBlock";s:8:"explicit";b:1;}s:37:"function;HTML_Template_IT::touchBlock";a:3:{s:4:"type";s:8:"function";s:4:"name";s:28:"HTML_Template_IT::touchBlock";s:8:"explicit";b:1;}s:31:"function;HTML_Template_IT::init";a:3:{s:4:"type";s:8:"function";s:4:"name";s:22:"HTML_Template_IT::init";s:8:"explicit";b:1;}s:31:"function;HTML_Template_IT::free";a:3:{s:4:"type";s:8:"function";s:4:"name";s:22:"HTML_Template_IT::free";s:8:"explicit";b:1;}s:38:"function;HTML_Template_IT::setTemplate";a:3:{s:4:"type";s:8:"function";s:4:"name";s:29:"HTML_Template_IT::setTemplate";s:8:"explicit";b:1;}s:43:"function;HTML_Template_IT::loadTemplatefile";a:3:{s:4:"type";s:8:"function";s:4:"name";s:34:"HTML_Template_IT::loadTemplatefile";s:8:"explicit";b:1;}s:34:"function;HTML_Template_IT::setRoot";a:3:{s:4:"type";s:8:"function";s:4:"name";s:25:"HTML_Template_IT::setRoot";s:8:"explicit";b:1;}s:49:"function;HTML_Template_IT::buildBlockvariablelist";a:3:{s:4:"type";s:8:"function";s:4:"name";s:40:"HTML_Template_IT::buildBlockvariablelist";s:8:"explicit";b:1;}s:45:"function;HTML_Template_IT::getGlobalvariables";a:3:{s:4:"type";s:8:"function";s:4:"name";s:36:"HTML_Template_IT::getGlobalvariables";s:8:"explicit";b:1;}s:37:"function;HTML_Template_IT::findBlocks";a:3:{s:4:"type";s:8:"function";s:4:"name";s:28:"HTML_Template_IT::findBlocks";s:8:"explicit";b:1;}s:34:"function;HTML_Template_IT::getFile";a:3:{s:4:"type";s:8:"function";s:4:"name";s:25:"HTML_Template_IT::getFile";s:8:"explicit";b:1;}s:39:"function;HTML_Template_IT::errorMessage";a:3:{s:4:"type";s:8:"function";s:4:"name";s:30:"HTML_Template_IT::errorMessage";s:8:"explicit";b:1;}s:23:"class;HTML_Template_ITX";a:4:{s:4:"type";s:5:"class";s:4:"name";s:17:"HTML_Template_ITX";s:7:"extends";s:16:"HTML_Template_IT";s:8:"explicit";b:1;}s:32:"function;HTML_Template_ITX::init";a:3:{s:4:"type";s:8:"function";s:4:"name";s:23:"HTML_Template_ITX::init";s:8:"explicit";b:1;}s:40:"function;HTML_Template_ITX::replaceBlock";a:3:{s:4:"type";s:8:"function";s:4:"name";s:31:"HTML_Template_ITX::replaceBlock";s:8:"explicit";b:1;}s:44:"function;HTML_Template_ITX::replaceBlockfile";a:3:{s:4:"type";s:8:"function";s:4:"name";s:35:"HTML_Template_ITX::replaceBlockfile";s:8:"explicit";b:1;}s:36:"function;HTML_Template_ITX::addBlock";a:3:{s:4:"type";s:8:"function";s:4:"name";s:27:"HTML_Template_ITX::addBlock";s:8:"explicit";b:1;}s:40:"function;HTML_Template_ITX::addBlockfile";a:3:{s:4:"type";s:8:"function";s:4:"name";s:31:"HTML_Template_ITX::addBlockfile";s:8:"explicit";b:1;}s:45:"function;HTML_Template_ITX::placeholderExists";a:3:{s:4:"type";s:8:"function";s:4:"name";s:36:"HTML_Template_ITX::placeholderExists";s:8:"explicit";b:1;}s:43:"function;HTML_Template_ITX::performCallback";a:3:{s:4:"type";s:8:"function";s:4:"name";s:34:"HTML_Template_ITX::performCallback";s:8:"explicit";b:1;}s:44:"function;HTML_Template_ITX::getFunctioncalls";a:3:{s:4:"type";s:8:"function";s:4:"name";s:35:"HTML_Template_ITX::getFunctioncalls";s:8:"explicit";b:1;}s:46:"function;HTML_Template_ITX::setFunctioncontent";a:3:{s:4:"type";s:8:"function";s:4:"name";s:37:"HTML_Template_ITX::setFunctioncontent";s:8:"explicit";b:1;}s:47:"function;HTML_Template_ITX::setCallbackFunction";a:3:{s:4:"type";s:8:"function";s:4:"name";s:38:"HTML_Template_ITX::setCallbackFunction";s:8:"explicit";b:1;}s:51:"function;HTML_Template_ITX::setCallbackFuntiontable";a:3:{s:4:"type";s:8:"function";s:4:"name";s:42:"HTML_Template_ITX::setCallbackFuntiontable";s:8:"explicit";b:1;}s:43:"function;HTML_Template_ITX::removeBlockData";a:3:{s:4:"type";s:8:"function";s:4:"name";s:34:"HTML_Template_ITX::removeBlockData";s:8:"explicit";b:1;}s:40:"function;HTML_Template_ITX::getBlocklist";a:3:{s:4:"type";s:8:"function";s:4:"name";s:31:"HTML_Template_ITX::getBlocklist";s:8:"explicit";b:1;}s:39:"function;HTML_Template_ITX::blockExists";a:3:{s:4:"type";s:8:"function";s:4:"name";s:30:"HTML_Template_ITX::blockExists";s:8:"explicit";b:1;}s:45:"function;HTML_Template_ITX::getBlockvariables";a:3:{s:4:"type";s:8:"function";s:4:"name";s:36:"HTML_Template_ITX::getBlockvariables";s:8:"explicit";b:1;}s:47:"function;HTML_Template_ITX::BlockvariableExists";a:3:{s:4:"type";s:8:"function";s:4:"name";s:38:"HTML_Template_ITX::BlockvariableExists";s:8:"explicit";b:1;}s:45:"function;HTML_Template_ITX::buildFunctionlist";a:3:{s:4:"type";s:8:"function";s:4:"name";s:36:"HTML_Template_ITX::buildFunctionlist";s:8:"explicit";b:1;}s:36:"function;HTML_Template_ITX::getValue";a:3:{s:4:"type";s:8:"function";s:4:"name";s:27:"HTML_Template_ITX::getValue";s:8:"explicit";b:1;}s:55:"function;HTML_Template_ITX::deleteFromBlockvariablelist";a:3:{s:4:"type";s:8:"function";s:4:"name";s:46:"HTML_Template_ITX::deleteFromBlockvariablelist";s:8:"explicit";b:1;}s:51:"function;HTML_Template_ITX::updateBlockvariablelist";a:3:{s:4:"type";s:8:"function";s:4:"name";s:42:"HTML_Template_ITX::updateBlockvariablelist";s:8:"explicit";b:1;}s:49:"function;HTML_Template_ITX::findPlaceholderBlocks";a:3:{s:4:"type";s:8:"function";s:4:"name";s:40:"HTML_Template_ITX::findPlaceholderBlocks";s:8:"explicit";b:1;}s:35:"function;HTML_Template_ITX::warning";a:3:{s:4:"type";s:8:"function";s:4:"name";s:26:"HTML_Template_ITX::warning";s:8:"explicit";b:1;}s:14:"class;IT_Error";a:4:{s:4:"type";s:5:"class";s:4:"name";s:8:"IT_Error";s:7:"extends";s:10:"PEAR_Error";s:8:"explicit";b:1;}}s:8:"filelist";a:23:{s:6:"IT.php";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:13:"HTML/Template";s:6:"md5sum";s:32:"5b034e239aff955692281191318754e4";s:12:"installed_as";s:59:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\HTML\Template\IT.php";}s:7:"ITX.php";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:13:"HTML/Template";s:6:"md5sum";s:32:"3dd802be714a2366531c89933da23a04";s:12:"installed_as";s:60:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\HTML\Template\ITX.php";}s:12:"IT_Error.php";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:13:"HTML/Template";s:6:"md5sum";s:32:"347113315197afdc4ba98815a21f14ab";s:12:"installed_as";s:65:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\HTML\Template\IT_Error.php";}s:7:"LICENSE";a:4:{s:4:"role";s:3:"doc";s:14:"baseinstalldir";s:13:"HTML/Template";s:6:"md5sum";s:32:"f8790e48b597dff12a643e08e9be3fab";s:12:"installed_as";s:68:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\HTML_Template_IT\LICENSE";}s:29:"tests/templates/addblock.html";a:4:{s:4:"role";s:4:"test";s:14:"baseinstalldir";s:13:"HTML/Template";s:6:"md5sum";s:32:"e50de49b74a1d96bb77ddae2d0abdfc3";s:12:"installed_as";s:91:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\HTML_Template_IT\tests\templates\addblock.html";}s:35:"tests/templates/blockiteration.html";a:4:{s:4:"role";s:4:"test";s:14:"baseinstalldir";s:13:"HTML/Template";s:6:"md5sum";s:32:"22e56437378e53d08ba07d3dd2aa4b85";s:12:"installed_as";s:97:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\HTML_Template_IT\tests\templates\blockiteration.html";}s:27:"tests/templates/blocks.html";a:4:{s:4:"role";s:4:"test";s:14:"baseinstalldir";s:13:"HTML/Template";s:6:"md5sum";s:32:"4173bf97eec43787532e247ef9b2611a";s:12:"installed_as";s:89:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\HTML_Template_IT\tests\templates\blocks.html";}s:28:"tests/templates/globals.html";a:4:{s:4:"role";s:4:"test";s:14:"baseinstalldir";s:13:"HTML/Template";s:6:"md5sum";s:32:"2611d6ec574a65716f1bc2ca95cb8c63";s:12:"installed_as";s:90:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\HTML_Template_IT\tests\templates\globals.html";}s:30:"tests/templates/__include.html";a:4:{s:4:"role";s:4:"test";s:14:"baseinstalldir";s:13:"HTML/Template";s:6:"md5sum";s:32:"310552db4653b34dbb0f993847572fc5";s:12:"installed_as";s:92:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\HTML_Template_IT\tests\templates\__include.html";}s:28:"tests/templates/include.html";a:4:{s:4:"role";s:4:"test";s:14:"baseinstalldir";s:13:"HTML/Template";s:6:"md5sum";s:32:"db5b226eff0218c831749c07042529f2";s:12:"installed_as";s:90:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\HTML_Template_IT\tests\templates\include.html";}s:37:"tests/templates/loadtemplatefile.html";a:4:{s:4:"role";s:4:"test";s:14:"baseinstalldir";s:13:"HTML/Template";s:6:"md5sum";s:32:"d9a6425eebdfc6981465b4a228dbee51";s:12:"installed_as";s:99:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\HTML_Template_IT\tests\templates\loadtemplatefile.html";}s:33:"tests/templates/replaceblock.html";a:4:{s:4:"role";s:4:"test";s:14:"baseinstalldir";s:13:"HTML/Template";s:6:"md5sum";s:32:"5c7e2e9c32306db4b6667d2b57f1c0ac";s:12:"installed_as";s:95:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\HTML_Template_IT\tests\templates\replaceblock.html";}s:30:"tests/Console_TestListener.php";a:4:{s:4:"role";s:4:"test";s:14:"baseinstalldir";s:13:"HTML/Template";s:6:"md5sum";s:32:"9bd9d964363904b5026972dff0d198da";s:12:"installed_as";s:92:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\HTML_Template_IT\tests\Console_TestListener.php";}s:25:"tests/IT_api_testcase.php";a:4:{s:4:"role";s:4:"test";s:14:"baseinstalldir";s:13:"HTML/Template";s:6:"md5sum";s:32:"e624be47a36948a1e44d231260de808a";s:12:"installed_as";s:87:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\HTML_Template_IT\tests\IT_api_testcase.php";}s:27:"tests/IT_usage_testcase.php";a:4:{s:4:"role";s:4:"test";s:14:"baseinstalldir";s:13:"HTML/Template";s:6:"md5sum";s:32:"3836b3fc1dd5a2a4d09258be575736c9";s:12:"installed_as";s:89:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\HTML_Template_IT\tests\IT_usage_testcase.php";}s:26:"tests/ITX_api_testcase.php";a:4:{s:4:"role";s:4:"test";s:14:"baseinstalldir";s:13:"HTML/Template";s:6:"md5sum";s:32:"8def35e6dae4a5db15ec026bc616a3d3";s:12:"installed_as";s:88:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\HTML_Template_IT\tests\ITX_api_testcase.php";}s:28:"tests/ITX_usage_testcase.php";a:4:{s:4:"role";s:4:"test";s:14:"baseinstalldir";s:13:"HTML/Template";s:6:"md5sum";s:32:"ec630d63df8163f75c4aa3b1e3051d2d";s:12:"installed_as";s:90:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\HTML_Template_IT\tests\ITX_usage_testcase.php";}s:14:"tests/test.php";a:4:{s:4:"role";s:4:"test";s:14:"baseinstalldir";s:13:"HTML/Template";s:6:"md5sum";s:32:"7a2c8eab843daf1cb9acebfd7fa5913d";s:12:"installed_as";s:76:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\HTML_Template_IT\tests\test.php";}s:22:"examples/sample_it.php";a:4:{s:4:"role";s:3:"doc";s:14:"baseinstalldir";s:13:"HTML/Template";s:6:"md5sum";s:32:"ba285cf25750a900690f2388ee31a103";s:12:"installed_as";s:83:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\HTML_Template_IT\examples\sample_it.php";}s:36:"examples/sample_itx_addblockfile.php";a:4:{s:4:"role";s:3:"doc";s:14:"baseinstalldir";s:13:"HTML/Template";s:6:"md5sum";s:32:"4b2a932053e321a0cf9ced5295113f09";s:12:"installed_as";s:97:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\HTML_Template_IT\examples\sample_itx_addblockfile.php";}s:31:"examples/templates/main.tpl.htm";a:4:{s:4:"role";s:3:"doc";s:14:"baseinstalldir";s:13:"HTML/Template";s:6:"md5sum";s:32:"834e1e6d40b2f34906aa17f9969bd891";s:12:"installed_as";s:92:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\HTML_Template_IT\examples\templates\main.tpl.htm";}s:44:"examples/templates/addblockfile_list.tpl.htm";a:4:{s:4:"role";s:3:"doc";s:14:"baseinstalldir";s:13:"HTML/Template";s:6:"md5sum";s:32:"342278cc5fe8ca6c66591cd5ee389402";s:12:"installed_as";s:105:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\HTML_Template_IT\examples\templates\addblockfile_list.tpl.htm";}s:44:"examples/templates/addblockfile_main.tpl.htm";a:4:{s:4:"role";s:3:"doc";s:14:"baseinstalldir";s:13:"HTML/Template";s:6:"md5sum";s:32:"697f694a67db6b96d247a24bdfd44f9b";s:12:"installed_as";s:105:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\HTML_Template_IT\examples\templates\addblockfile_main.tpl.htm";}}s:10:"xsdversion";s:3:"1.0";s:15:"packagerversion";s:5:"1.4.9";s:7:"package";s:16:"HTML_Template_IT";s:7:"summary";s:20:"Integrated Templates";s:11:"description";s:1198:"HTML_Template_IT:
Simple template API.
The Isotemplate API is somewhat tricky for a beginner although it is the best
one you can build. template::parse() [phplib template = Isotemplate] requests
you to name a source and a target where the current block gets parsed into.
Source and target can be block names or even handler names. This API gives you
a maximum of fexibility but you always have to know what you do which is
quite unusual for php skripter like me.
I noticed that I do not any control on which block gets parsed into which one.
If all blocks are within one file, the script knows how they are nested and in
which way you have to parse them. IT knows that inner1 is a child of block2, there's
no need to tell him about this.
Features :
* Nested blocks
* Include external file
* Custom tags format (default {mytag})
HTML_Template_ITX :
With this class you get the full power of the phplib template class.
You may have one file with blocks in it but you have as well one main file
and multiple files one for each block. This is quite usefull when you have
user configurable websites. Using blocks not in the main template allows
you to modify some parts of your layout easily.
";s:11:"maintainers";a:3:{i:0;a:4:{s:6:"handle";s:2:"uw";s:4:"name";s:10:"Ulf Wendel";s:5:"email";s:20:"ulf.wendel@phpdoc.de";s:4:"role";s:9:"developer";}i:1;a:4:{s:6:"handle";s:6:"pajoye";s:4:"name";s:17:"Pierre-Alain Joye";s:5:"email";s:14:"pajoye@php.net";s:4:"role";s:4:"lead";}i:2;a:4:{s:6:"handle";s:3:"dsp";s:4:"name";s:17:"David Soria Parra";s:5:"email";s:11:"dsp@php.net";s:4:"role";s:4:"lead";}}s:7:"version";s:5:"1.2.1";s:12:"release_date";s:10:"2006-08-25";s:15:"release_license";s:20:"Modified BSD license";s:13:"release_state";s:6:"stable";s:13:"release_notes";s:369:"- Deprecate $callbackobject parameter in setCallbackFunction
- Introduce $expandCallbackParameters parameter to setCallbackFunction to support
callbacks that expect to get the parameters in a regular way, not as an array
- #7651, allow dots in placeholder and block names
- #7611, wrong array initialized, the same object cannot be
used for multiple templates
";s:9:"changelog";a:7:{i:0;a:4:{s:7:"version";s:5:"1.2.0";s:12:"release_date";s:10:"2006-08-17";s:13:"release_state";s:4:"beta";s:13:"release_notes";s:280:"- Deprecate $callbackobject parameter in setCallbackFunction
- Introduce $expandCallbackParameters parameter to setCallbackFunction to support
callbacks that expect to get the parameters in a regular way, not as an array
- #7651, allow dots in placeholder and block names
";}i:1;a:4:{s:7:"version";s:5:"1.1.5";s:12:"release_date";s:10:"2006-06-13";s:13:"release_state";s:6:"stable";s:13:"release_notes";s:95:"- #7611, wrong array initialized, the same object cannot be
used for multiple templates
";}i:2;a:4:{s:7:"version";s:5:"1.1.4";s:12:"release_date";s:10:"2006-04-12";s:13:"release_state";s:6:"stable";s:13:"release_notes";s:215:"- #6084, fread raises warning when used with empty files
- #7359, remove notices when a block is not yet defined
- fix a bug introduced with some cleanup commit, in some cases,
callbacks did not work anymore
";}i:3;a:4:{s:7:"version";s:5:"1.1.3";s:12:"release_date";s:10:"2005-11-01";s:13:"release_state";s:6:"stable";s:13:"release_notes";s:96:"- Change to the new BSD License
(see http://www.opensource.org/licenses/bsd-license.php)
";}i:4;a:4:{s:7:"version";s:5:"1.1.2";s:12:"release_date";s:10:"2005-10-28";s:13:"release_state";s:6:"stable";s:13:"release_notes";s:254:"- Comply better with the coding standards (dufuz@php.net)
- Fixed Bug #5774 ITX->buildFunctionlist, forced to use {} as delimiters
instead of the user defined once (dufuz@php.net)
- Fixed Bug #5642 Undefined variable: blockname (dufuz@php.net)
";}i:5;a:4:{s:7:"version";s:5:"1.1.1";s:12:"release_date";s:10:"2003-08-21";s:13:"release_state";s:6:"stable";s:13:"release_notes";s:167:"- fix #4590, case sensitive method name getFile fix
- fix #1453, haltOnWarning fix, wrong property name called
- fix #3952, return IT_OK on success in setOptions
";}i:6;a:4:{s:7:"version";s:3:"1.1";s:12:"release_date";s:10:"2003-03-11";s:13:"release_state";s:6:"stable";s:13:"release_notes";s:21:"*BETA* release.
";}}s:12:"_lastversion";s:5:"1.2.1";s:7:"dirtree";a:12:{s:52:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\HTML\Template";b:1;s:52:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\HTML\Template";b:1;s:43:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\HTML";b:1;s:60:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\HTML_Template_IT";b:1;s:77:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\HTML_Template_IT\tests\templates";b:1;s:77:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\tests\HTML_Template_IT\tests\templates";b:1;s:67:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\tests\HTML_Template_IT\tests";b:1;s:67:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\HTML_Template_IT\tests";b:1;s:69:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\HTML_Template_IT\examples";b:1;s:69:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\docs\HTML_Template_IT\examples";b:1;s:79:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\HTML_Template_IT\examples\templates";b:1;s:79:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\docs\HTML_Template_IT\examples\templates";b:1;}s:13:"_lastmodified";i:1171608479;} catalog/libs/PEAR/.registry/mdb2.reg 0000644 5773401 0100224 00000247336 10625427740 021134 0 ustar tonerlogics pg116757 0000000 0000000 a:26:{s:7:"attribs";a:6:{s:15:"packagerversion";s:6:"1.4.11";s:7:"version";s:3:"2.0";s:5:"xmlns";s:35:"http://pear.php.net/dtd/package-2.0";s:11:"xmlns:tasks";s:33:"http://pear.php.net/dtd/tasks-1.0";s:9:"xmlns:xsi";s:41:"http://www.w3.org/2001/XMLSchema-instance";s:18:"xsi:schemaLocation";s:147:"http://pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 http://pear.php.net/dtd/package-2.0.xsd";}s:4:"name";s:4:"MDB2";s:7:"channel";s:12:"pear.php.net";s:7:"extends";s:3:"MDB";s:7:"summary";s:26:"database abstraction layer";s:11:"description";s:1379:"PEAR MDB2 is a merge of the PEAR DB and Metabase php database abstraction layers.
It provides a common API for all supported RDBMS. The main difference to most
other DB abstraction packages is that MDB2 goes much further to ensure
portability. MDB2 provides most of its many features optionally that
can be used to construct portable SQL statements:
* Object-Oriented API
* A DSN (data source name) or array format for specifying database servers
* Datatype abstraction and on demand datatype conversion
* Various optional fetch modes to fix portability issues
* Portable error codes
* Sequential and non sequential row fetching as well as bulk fetching
* Ability to make buffered and unbuffered queries
* Ordered array and associative array for the fetched rows
* Prepare/execute (bind) named and unnamed placeholder emulation
* Sequence/autoincrement emulation
* Replace emulation
* Limited sub select emulation
* Row limit emulation
* Transactions/savepoint support
* Large Object support
* Index/Unique Key/Primary Key support
* Pattern matching abstraction
* Module framework to load advanced functionality on demand
* Ability to read the information schema
* RDBMS management methods (creating, dropping, altering)
* Reverse engineering schemas from an existing database
* SQL function call abstraction
* Full integration into the PEAR Framework
* PHPDoc API documentation";s:4:"lead";a:4:{s:4:"name";s:17:"Lukas Kahwe Smith";s:4:"user";s:6:"lsmith";s:5:"email";s:20:"smith@pooteeweet.org";s:6:"active";s:3:"yes";}s:9:"developer";a:4:{s:4:"name";s:16:"Lorenzo Alberton";s:4:"user";s:5:"quipo";s:5:"email";s:19:"l.alberton@quipo.it";s:6:"active";s:3:"yes";}s:11:"contributor";a:4:{s:4:"name";s:11:"Paul Cooper";s:4:"user";s:3:"pgc";s:5:"email";s:14:"pgc@ucecom.com";s:6:"active";s:3:"yes";}s:6:"helper";a:2:{i:0;a:4:{s:4:"name";s:16:"Daniel Convissor";s:4:"user";s:7:"danielc";s:5:"email";s:15:"danielc@php.net";s:6:"active";s:3:"yes";}i:1;a:4:{s:4:"name";s:14:"David Coallier";s:4:"user";s:6:"davidc";s:5:"email";s:17:"david@jaws.com.mx";s:6:"active";s:3:"yes";}}s:4:"date";s:10:"2006-11-03";s:4:"time";s:8:"14:04:30";s:7:"version";a:2:{s:7:"release";s:5:"2.3.0";s:3:"api";s:5:"2.3.0";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:7:"license";s:11:"BSD License";s:5:"notes";s:3085:"- added charset and collation support to field declaration
- added SQL comments and quoted identifier handling inside prepared statement parser
- expanded length/scale support for numeric types (Request #7170)
- added statement_format option to make it possible to define the name used for
native statements if supported
- fixed bug when setting MDB2_PREPARE_RESULT in autoExecute()
- fixed notice in exec() call in autoExecute()
- reversed if logic in MDB2::fileExists checking to be more fool proof with
safe_mode restrictions (Bug #8296)
- moved CREATE TABLE query generation in a separate method for reuse in the drivers
- added testLOBRead to test multiple LOB reads
- fixed getColumnNames() optional parameter handling (Bug #8857)
- phpdoc fix for fetchCol/fetchAll
- added an extra if in the autoExecute method of the Extended driver (Bug #8878)
- expanded tableInfo() tests
- expanded prepare() tests
- fix the incorrect use of currID() for lastInsertID() emulation (Bug #9107)
- add test for lastInsertID()
- also output php version in test results
- added supported 'new_link'
- dropped use of track_errors because 5.2.0 causes php_errormsg to not get
populated if a custom error handler is set and it was causing issues for
safe_mode users anyways
- added some error handling into the bindValues()/bindParams() methods (Bug #9133)
- bindValue() does not need values by reference
- fix issue in execute() when parameter is a scalar integer of 0 (Bug #9158)
- implemented stream_stat() method (Bug #9092)
- better deal with non scalar arguments in test helper function as 5.2.0 explodes otherwise
- extracted _skipDelimitedStrings() method from prepare()
- added test for _skipDelimitedStrings() method
- migrated to package.xml version 2
open todo items:
- handle autoincrement fields in alterTable()
- add length handling to LOB reverse engineering
- expand charset support in schema management and result set handling (Request #4666)
- add EXPLAIN abstraction
- add cursor support along the lines of PDO (Request #3660 etc.)
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
- add support to export/import in CSV format
- add more functions to the Function module (MD5(), IFNULL(), LENGTH() etc.)
- add support for database/table/row LOCKs
- add support for FOREIGN KEYs and CHECK (ENUM as possible mysql fallback) constraints
- generate STATUS file from test suite results and allow users to submit test results
- explore use of install groups (pear install MDB2#mysql)
- add support for full text index creation and querying
- add tests to check if the RDBMS specific handling with portability options
disabled behaves as expected
- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..)
- add a getTableFieldsDefinitions() method to be used in tableInfo()
- drop ILIKE from matchPattern() and instead add a second parameter to
handle case sensitivity with arbitrary operators
- add charset and collation support to field declaration in all drivers
- handle LOBs in buffered result sets (Request #8793)";s:8:"contents";a:1:{s:3:"dir";a:2:{s:7:"attribs";a:2:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:1:"/";}s:4:"file";a:42:{i:0;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"b5cd8d01a36258caa0c4eb7e3478c219";s:4:"name";s:25:"docs/examples/example.php";s:4:"role";s:3:"doc";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:1;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"9d111ec2aec184bc1ece351aa7a59aaa";s:4:"name";s:30:"docs/examples/example_php5.php";s:4:"role";s:3:"doc";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:2;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"74b2bb45de61eccbffed7d75d5268af9";s:4:"name";s:37:"docs/examples/metapear_test_db.schema";s:4:"role";s:3:"doc";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:3;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"a253b37e185622112acfef6c94b79aef";s:4:"name";s:17:"docs/CONTRIBUTORS";s:4:"role";s:3:"doc";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:4;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"cc1befe78146094be02f89bbb201b4ab";s:4:"name";s:19:"docs/datatypes.html";s:4:"role";s:3:"doc";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:5;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"a70b17bcd8e56911f74a4dff61a3ff8d";s:4:"name";s:16:"docs/MAINTAINERS";s:4:"role";s:3:"doc";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:6;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"c7b68ea23aa2ae6d91913703a2246f15";s:4:"name";s:11:"docs/README";s:4:"role";s:3:"doc";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:7;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"f9858c9327499e60db66621a817c66a4";s:4:"name";s:11:"docs/STATUS";s:4:"role";s:3:"doc";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:8;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"ec0c4383ddfd3af69d577344d0d5b4dd";s:4:"name";s:9:"docs/TODO";s:4:"role";s:3:"doc";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:9;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"8d10cb404138fb05c577d040a34dc566";s:4:"name";s:31:"MDB2/Driver/Datatype/Common.php";s:4:"role";s:3:"php";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:10;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"97bebd544d4da9b698fb40dfc9b5835d";s:4:"name";s:31:"MDB2/Driver/Function/Common.php";s:4:"role";s:3:"php";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:11;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"ef96fac9e21f7b0d875fcd6019e83d76";s:4:"name";s:30:"MDB2/Driver/Manager/Common.php";s:4:"role";s:3:"php";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:12;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"005901a0e84f6ff717e0847f0a3faf14";s:4:"name";s:29:"MDB2/Driver/Native/Common.php";s:4:"role";s:3:"php";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:13;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"046ccbeb045bfa0f6e657d4bf5ea98f2";s:4:"name";s:30:"MDB2/Driver/Reverse/Common.php";s:4:"role";s:3:"php";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:14;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"af81dd360b2d2d09f8c978214b06a553";s:4:"name";s:13:"MDB2/Date.php";s:4:"role";s:3:"php";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:15;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"62a14a62f64ad91e54f055a4da3cd5e3";s:4:"name";s:17:"MDB2/Extended.php";s:4:"role";s:3:"php";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:16;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"023c4bda6db2d8f277d8d3c76dc8f850";s:4:"name";s:17:"MDB2/Iterator.php";s:4:"role";s:3:"php";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:17;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"f3cefd7b2f7a1d5ac52a537aa2bdc495";s:4:"name";s:12:"MDB2/LOB.php";s:4:"role";s:3:"php";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:18;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"01d41e566bdb62c7bcb432c8039dda9a";s:4:"name";s:16:"tests/basic.phpt";s:4:"role";s:4:"test";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:19;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"6f322088ba70dd591a2cff31bf446525";s:4:"name";s:17:"tests/clitest.php";s:4:"role";s:4:"test";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:20;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"c90cdd55233d9ef470150c06a946d213";s:4:"name";s:16:"tests/config.php";s:4:"role";s:4:"test";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:21;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"2a2c534ab4afb0c05ca9d7ca47815bf5";s:4:"name";s:30:"tests/Console_TestListener.php";s:4:"role";s:4:"test";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:22;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"d46a8f267dbd54f0c7ff55e479d33e7e";s:4:"name";s:27:"tests/HTML_TestListener.php";s:4:"role";s:4:"test";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:23;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"98da3f3aba98f4a9adc71a9fd19929de";s:4:"name";s:27:"tests/MDB2_api_testcase.php";s:4:"role";s:4:"test";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:24;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"6f5ca4adb851f22a41f84bd7be1d9b4d";s:4:"name";s:28:"tests/MDB2_bugs_testcase.php";s:4:"role";s:4:"test";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:25;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"f8534befe37efc7f35beb0897b75f951";s:4:"name";s:27:"tests/MDB2_Connect_Test.php";s:4:"role";s:4:"test";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:26;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"593ff9ad532908f16d020ceaa9ab09f8";s:4:"name";s:32:"tests/MDB2_datatype_testcase.php";s:4:"role";s:4:"test";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:27;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"be04baf42175f7bfc55412a08744c4e9";s:4:"name";s:32:"tests/MDB2_extended_testcase.php";s:4:"role";s:4:"test";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:28;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"ca4ad92dd091bc59b0f0be14b8cfdc0c";s:4:"name";s:32:"tests/MDB2_function_testcase.php";s:4:"role";s:4:"test";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:29;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"edb864169081c5b6a2d9b6d5e2f28e83";s:4:"name";s:31:"tests/MDB2_manager_testcase.php";s:4:"role";s:4:"test";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:30;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"22be0efc5b2b81bd6cd6ebe31747445e";s:4:"name";s:30:"tests/MDB2_native_testcase.php";s:4:"role";s:4:"test";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:31;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"6b283c945b2dea2d375aa390087b658d";s:4:"name";s:31:"tests/MDB2_reverse_testcase.php";s:4:"role";s:4:"test";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:32;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"2d4098056e3e1eb2ab73e5803d51c136";s:4:"name";s:23:"tests/MDB2_testcase.php";s:4:"role";s:4:"test";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:33;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"03db646e093383e77f98454ea0876225";s:4:"name";s:29:"tests/MDB2_usage_testcase.php";s:4:"role";s:4:"test";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:34;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"7a13f2bc2d431c365f838d12e7259ec6";s:4:"name";s:12:"tests/README";s:4:"role";s:4:"test";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:35;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"a2c50ccea24f7bdd5439b366608d59d5";s:4:"name";s:14:"tests/test.php";s:4:"role";s:4:"test";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:36;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"dc05c6cc4540981d350ccac2005c2578";s:4:"name";s:20:"tests/testchoose.php";s:4:"role";s:4:"test";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:37;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"3c4d2c9d89398c5692d36299d98f9c6e";s:4:"name";s:15:"tests/tests.css";s:4:"role";s:4:"test";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:38;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"841447ae8672a6779166791d0bf6ec03";s:4:"name";s:19:"tests/testUtils.php";s:4:"role";s:4:"test";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:39;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"c9e7116ea8cad94ec69fa9a5e4d195a6";s:4:"name";s:25:"tests/test_setup.php.dist";s:4:"role";s:4:"test";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:40;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"a5019765abfd14334f25231c61c568ef";s:4:"name";s:7:"LICENSE";s:4:"role";s:4:"data";}}i:41;a:2:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"ae732f6b7abdd7e1246e8112abc91ae6";s:4:"name";s:8:"MDB2.php";s:4:"role";s:3:"php";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}}}}s:12:"dependencies";a:1:{s:8:"required";a:3:{s:3:"php";a:1:{s:3:"min";s:5:"4.3.2";}s:13:"pearinstaller";a:1:{s:3:"min";s:7:"1.4.0b1";}s:7:"package";a:3:{s:4:"name";s:4:"PEAR";s:7:"channel";s:12:"pear.php.net";s:3:"min";s:5:"1.3.6";}}}s:10:"phprelease";s:0:"";s:9:"changelog";a:1:{s:7:"release";a:21:{i:0;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"2.3.0";s:3:"api";s:5:"2.3.0";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2006-11-03";s:7:"license";s:11:"BSD License";s:5:"notes";s:3085:"- added charset and collation support to field declaration
- added SQL comments and quoted identifier handling inside prepared statement parser
- expanded length/scale support for numeric types (Request #7170)
- added statement_format option to make it possible to define the name used for
native statements if supported
- fixed bug when setting MDB2_PREPARE_RESULT in autoExecute()
- fixed notice in exec() call in autoExecute()
- reversed if logic in MDB2::fileExists checking to be more fool proof with
safe_mode restrictions (Bug #8296)
- moved CREATE TABLE query generation in a separate method for reuse in the drivers
- added testLOBRead to test multiple LOB reads
- fixed getColumnNames() optional parameter handling (Bug #8857)
- phpdoc fix for fetchCol/fetchAll
- added an extra if in the autoExecute method of the Extended driver (Bug #8878)
- expanded tableInfo() tests
- expanded prepare() tests
- fix the incorrect use of currID() for lastInsertID() emulation (Bug #9107)
- add test for lastInsertID()
- also output php version in test results
- added supported 'new_link'
- dropped use of track_errors because 5.2.0 causes php_errormsg to not get
populated if a custom error handler is set and it was causing issues for
safe_mode users anyways
- added some error handling into the bindValues()/bindParams() methods (Bug #9133)
- bindValue() does not need values by reference
- fix issue in execute() when parameter is a scalar integer of 0 (Bug #9158)
- implemented stream_stat() method (Bug #9092)
- better deal with non scalar arguments in test helper function as 5.2.0 explodes otherwise
- extracted _skipDelimitedStrings() method from prepare()
- added test for _skipDelimitedStrings() method
- migrated to package.xml version 2
open todo items:
- handle autoincrement fields in alterTable()
- add length handling to LOB reverse engineering
- expand charset support in schema management and result set handling (Request #4666)
- add EXPLAIN abstraction
- add cursor support along the lines of PDO (Request #3660 etc.)
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
- add support to export/import in CSV format
- add more functions to the Function module (MD5(), IFNULL(), LENGTH() etc.)
- add support for database/table/row LOCKs
- add support for FOREIGN KEYs and CHECK (ENUM as possible mysql fallback) constraints
- generate STATUS file from test suite results and allow users to submit test results
- explore use of install groups (pear install MDB2#mysql)
- add support for full text index creation and querying
- add tests to check if the RDBMS specific handling with portability options
disabled behaves as expected
- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..)
- add a getTableFieldsDefinitions() method to be used in tableInfo()
- drop ILIKE from matchPattern() and instead add a second parameter to
handle case sensitivity with arbitrary operators
- add charset and collation support to field declaration in all drivers
- handle LOBs in buffered result sets (Request #8793)";}i:1;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"2.2.2";s:3:"api";s:5:"2.2.2";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2006-09-03";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:1412:"- flip positions property array in prepared statement objects to make it
possible to optionally use the same named placeholder in multiple places
inside a single prepared statement
- expanded prepare tests to cover more edge cases
- renamed valid_types property to valid_default_values in the Datatype module
open todo items:
- handle autoincrement fields in alterTable()
- add length handling to LOB reverse engineering
- expand charset support in schema management and result set handling (Request #4666)
- add EXPLAIN abstraction
- add cursor support along the lines of PDO (Request #3660 etc.)
- expand length/scale support for numeric types (Request #7170)
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
- add support to export/import in CSV format
- add more functions to the Function module (MD5(), IFNULL(), LENGTH() etc.)
- add support for database/table/row LOCKs
- add support for FOREIGN KEYs and CHECK (ENUM as possible mysql fallback) constraints
- generate STATUS file from test suite results and allow users to submit test results
- add a package2.xml and explore use of install groups (pear install MDB2#mysql)
- add support for full text index creation and querying
- add tests to check if the RDBMS specific handling with portability options
disabled behaves as expected
- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..)";}i:2;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"2.2.1";s:3:"api";s:5:"2.2.1";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2006-08-21";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:2632:"- fixed missing code in tableInfo() (Bug #8289)
- fixed handling of indexes and constraints and types in tableInfo() (fixes BC break)
- do not set nested transaction error if error is expected
- explictly default to NULL when the column is NULLable and no default is set
(related to Bug #8359)
- added support for case insensitive matching via ILIKE in matchPattern()
- added getAsKeyword() for generating "AS" keyword as required by the RDBMS
- return an error if a named placeholder name is used twice inside a single statement
- add support for multi column PRIMARY KEYs in createTable()
- added lower() and upper() to the function module
- moved escaping tests to datatype tests
- added summary at the end of a test run for each RDBMS
- explicitly pass the php_type var in all internal loadModule() calls
- added support for 'primary' option in createTable()
- expanded NULL tests
- fixed handling return values when disable_query is set in _doQuery() and _execute()
- check if safe_mode is enabled in fileExists() to determine what algo to use (Bug #8296)
- added a test case for updating LOBs
- added rtrim test case for LOBs
- if result types are specified only rtrim() type 'text' fields (otherwise
it will mean that for some drivers LOB's would get rtrimmed)
- phpdoc fixes to the convertResult*() methods
- added execParam() method and code tweaks for get*() methods in the Extended module
- removed redundant assertions when testing if a given feature is unsupported
- removed tests of portability off (users should just set the given portability
setting they want to test in their test_setup.php)
open todo items:
- handle autoincrement fields in alterTable()
- add length handling to LOB reverse engineering
- expand charset support in schema management and result set handling (Request #4666)
- add EXPLAIN abstraction
- add cursor support along the lines of PDO (Request #3660 etc.)
- expand length/scale support for numeric types (Request #7170)
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
- add support to export/import in CSV format
- add more functions to the Function module (MD5(), IFNULL(), LENGTH() etc.)
- add support for database/table/row LOCKs
- add support for FOREIGN KEYs and CHECK (ENUM as possible mysql fallback) constraints
- generate STATUS file from test suite results and allow users to submit test results
- add a package2.xml and explore use of install groups (pear install MDB2#mysql)
- add support for full text index creation and querying
- add tests to check if the RDBMS specific handling with portability options
disabled behaves as expected";}i:3;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"2.2.0";s:3:"api";s:5:"2.2.0";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2006-07-23";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:3286:"- added MDB2_AUTOQUERY_SELECT (Request #7817)
- added nested transaction support (inspired by ADODB's smart transactions) but
expanded to optionally use SAVEPOINTs *EXPERIMENTAL*
beginNestedTransaction(), completeNestedTransaction(),
failNestedTransaction(), getNestedTransactionError()
- inTransaction() will now return an integer with the nested transaction depth
if a nested transaction has been started
- added setTransactionIsolation()
- added savepoint support to beginTransaction(), commit() and rollback()
- added Native base class for consistency
- added missing colnum parameter to queryOne() [used by getOne()]
- added new tests for get*() Extended module methods
- fixed missing db variable from getValidTypes()
- added testing of a prepared statement with no parameters
- added handling of empty result sets to result set verification in the test suite
- oci8 and ibase (and possibly other rdbms) do not like freeing the statement
before reading the result set (Bug #8068):
* moved statement freeing after reading the result set in get*() Extended methods
* bypass prepared statement API for queries without parameters in autoExecute()
(this means you cannot use parameters with SELECT statements in autoExecute()
on the above mentioned platforms)
- use data type callback in getValidTypes()
- fixed identifier quoting in buildManipSQL() for SELECT statements (thx Kailoran)
- phpdoc and cosmetic fixes in limitQuery()
- added matchPattern() and patternEscapeString(), escapePattern() *EXPERIMENTAL*
- added ability to escape wildcard characters in escape() and quote()
- added debug() call at the end of a query/prepare/execute calling (Request #7933)
- added context array parameter to debug() and make use of it whereever sensible
- added optional method name parameter to raiseError() and use whereever possible
- added a new option "debug_expanded_output" which needs to be set to true to
get additional context information and to get "post" callback calls
- added testPortabilityOptions()
- set length of 8 and fixed for user_password in the test suite
- reworked tableInfo() to use a common implementation based on getTableFieldDefinition()
when a table name is passed (Bug #8124)
- disconnect after changing database/DSN (otherwise transactions may be left open)
open todo items:
- handle autoincrement fields in alterTable()
- add length handling to LOB reverse engineering
- expand charset support in schema management and result set handling (Request #4666)
- add EXPLAIN abstraction
- add cursor support along the lines of PDO (Request #3660 etc.)
- expand length/scale support for numeric types (Request #7170)
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
- add support to export/import in CSV format
- add more functions to the Function module (MD5(), IFNULL(), LENGTH() etc.)
- add support to generating "AS" keyword if required
- add support for database/table/row LOCKs
- add ActiveRecord implementation (probably as a separate package)
- add support for FOREIGN KEYs and CHECK (ENUM as possible mysql fallback) constraints
- extended to support for case insensitive matching via ILIKE/collate in matchPattern()
- generate STATUS file from test suite results and allow users to submit test results";}i:4;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"2.1.0";s:3:"api";s:5:"2.1.0";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2006-06-15";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:1721:"- removed bogus code from execute()
- new test case for floats/decimals and locale
- reworked fix for float/decimal handling
- expanded scientific notation handling
- fixed several minor issues with the datatype tests
- removed use of "*" in all places in the test suite that are followed by a fetch
- tweaked handling of free() for prepared statements
- return error if a prepared statement is attempted to be free'ed or executed again
- added result_wrap_class param to limitQuery()
- added parameter to not quote return value of getBeforeId()
- added setCharset()
- enable transactions by default
- added decimal reverse engineering test
- fixed parameter order in assertions in reverse engineering fields tests
- generalized quoteIdentifier() with a property
- switched most array_key_exists() calls to !empty() to improve readability and performance
- fixed a few edge cases and potential warnings
- added ability to rewrite queries for query(), exec() and prepare() using a debug handler callback
- added 'datatype_map' option (Request #7797)
- added reverse parameter to getColumnNames()
- added 'datatype_map_callback' option
- added getValidTypes() method to handle additional types from the 'datatype_map' option
- set last_query in _execute() to prepared statement (Bug #7856)
- adding random function emulation to generate a float between 0 and 1
- explicitly fetch row id = 1 in LOB tests
- cosmetic fix to prepare() (Bug #7883)
- bumped PHP dependency to 4.3.2 because of LOB stream support
open todo items:
- handle autoincrement fields in alterTable()
- add support for ADODB style "smart transactions":
http://phplens.com/lens/adodb/docs-adodb.htm#ex11
- add length handling to LOB reverse engineering";}i:5;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"2.0.3";s:3:"api";s:5:"2.0.3";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2006-05-22";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:633:"- fix float/decimal handling (Request #3021)
- default to decimal for double (instead of float)
- serialize arrays when no type is explicitly given
- phpdoc fixes
- expanded FLOAT test
- added support for identifier quoting (Request #7671)
- added test class for the Extended module
- added support for DELETE in auto*() methods (Request #5345)
- added "emulate_prepared" option to force prepared statement emulation
open todo items:
- handle autoincrement fields in alterTable()
- add support for ADODB style "smart transactions":
http://phplens.com/lens/adodb/docs-adodb.htm#ex11
- add length handling to LOB reverse engineering";}i:6;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"2.0.2";s:3:"api";s:5:"2.0.2";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2006-05-14";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:2298:"- phpdoc and folding mark fixes (thx Laurent and Stoyan)
- added getTriggerDefinition() in the Reverse module
- added listTableViews() in the Manager module
- explicitly set is_manip parameter to false for transaction debug calls
- various minor tweaks to error messages, phpdoc and adding stub methods to the
common driver
- added row seeking support to fetchOne()
- added ability to hint that a constraint is a primary key in dropConstraint()
- since we no longer complain about primary keys not being called primary we can
remove the necessary hacks in the test suite
- improved LOB tests in the test suite
- do not require Manager module for core API tests
- added support for fixed and variable types for 'text' in declarations,
as well as in reverse engineering (Request #1523)
- updated MAINTAINERS to current status
- readded STATUS document, still needs to be filled with content
- tweaked handling of error objects inside raiseError()
- made _doQuery() return a reference
- added userinfo's to all raiseError calls that previously had none
- added bindValueArray()
- use bindValueArray() instead of bindParamArray() in all internal calls
- removed the skeleton drivers, since its too much work to maintain them
and there are plenty of sample drivers to look at
- fixed example due to API change in MDB2_Schema (Bug #7575)
- added 'prepared_statements' supported meta data setting
- do not retrieve lob in the stream constructor and streams_eof()
- strip of file:// prefix in writeLOBToFile()
- typo fix ressource/resource in LOB array
- removed lob property from the LOB streams wrapper (references are always
shaky business in PHP so lets use them as little as possible)
- fixed _destroyLOB() API to match other private LOB methods
- fixed phpdoc comments of all private LOB methods
- typo fix in autoincrement test
- reworked index/constraint creation to not affected unnecessary reverse tests
Note: Due to changes in generation of declaration statements you may need to
update your test databases (for example by rerunning the MDB2_Schema
installation using the CVS version or a release greater than 0.5.0)
open todo items:
- handle autoincrement fields in alterTable()
- add support for ADODB style "smart transactions":
http://phplens.com/lens/adodb/docs-adodb.htm#ex11";}i:7;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"2.0.1";s:3:"api";s:5:"2.0.1";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2006-04-16";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:1609:"- added new comprehensive tests for the Reverse module
- fixed testcases to pass for mysql[i] (needs pk's to be called "primary") ..
sqlite is probably severely broken for these tests
- added ability to specify port number when using unix sockets in
MDB2::parseDSN() (bug #5982)
- added test for multi_query option
- typo fix in get constraint test
- use ugly fopen() hack in fileExists()
http://marc.theaimsgroup.com/?l=pear-dev&m=114148949106207&w=2
- allow "." and "$" in sequence name (bug #7081)
- aligned _modifyQuery() signature and phpdoc
- added inTransaction() to determine if a transaction is currently open
- added support for tabe options in createTable() (bug ##7079)
- make it possible to overwrite the error code-message map
- added sample sqlite in memory dsn to php5 example
- added 'result_introspection' supported metadata support
- added bindValue() method
- use MDB2_PREPARE_MANIP where we previously were using false
- fixed default values for date and timestamp
- if MDB2_PORTABILITY_EMPTY_TO_NULL is set change '' to ' ' in _getDeclaration()
- refactored class loading into MDB2::loadClass()
- properly quote CURRENT_* for temporal types (bug #6416)
- added connected_server_info to cache server info in getServerInfo()
- reset all connection related properties in disconnect()
- separated result_buffering and prefetching by adding the new result_prefetching option
- set error code in all raiseError() calls
- added support for length in reverse engineering of integer fields
- improve test suite documentation
open todo items:
- handle autoincremement fields in alterTable()";}i:8;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"2.0.0";s:3:"api";s:5:"2.0.0";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2006-02-09";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:79:"- handle null as resource when disable_query option is enabled in result object";}i:9;a:5:{s:7:"version";a:2:{s:7:"release";s:8:"2.0.0RC5";s:3:"api";s:8:"2.0.0RC5";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:4:"date";s:10:"2006-02-05";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:916:"- expanded testing of prepared queries (out of order binding, escape characters
inside the string, lobs without named parameters that match the field name)
- removed ugly hack for quote parameter in quote() since it was insufficient
(escaping also needs to be prevented)
- added support for out of order parameter binding in prepared queries
- expanded testing of prepared queries (out of order binding, escape characters
inside the string, lobs without named parameters that match the field name)
- reset row_limit and row_offset after calling prepare() just like we do for query() and exec()
- cosmetic fix (removed "row_" prefix from "row_limit" and "row_offset")
- now using INT/TINYINT/SMALLINT by default instead of CHAR(1) for the boolean datatype
(BC BREAK!)
- added MDB2_datatype_testcase to test suite
- support an arbitrary number of arguments in concat()
- add property phpdoc comments to LOB.php";}i:10;a:5:{s:7:"version";a:2:{s:7:"release";s:8:"2.0.0RC4";s:3:"api";s:8:"2.0.0RC4";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:4:"date";s:10:"2006-01-13";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:796:"- explicitly pass if the module is phptype specific in all loadModule calls (bug #6226)
- some cleanups in loadModule()
- eliminate possible warnings in execute() and _assignBindColumns()
- do not silence includes when debug option is enabled
- fixed serious bug in autoincrement test
- added dbsyntax to getDSN() string output (feature request #6463)
- fixed signature of executeStoredProc()
- nextResult() returns false if there are no more result sets to read
- renamed _isIndexName() to _fixIndexName()
- _fixIndexName() now just attempts to remove possible formatting
- renamed _isSequenceName() to _fixSequenceName()
- _fixSequenceName() now just attempts to remove possible formatting, and only
returns a boolean if no formatting was applied when the new "check" parameter is set to true";}i:11;a:5:{s:7:"version";a:2:{s:7:"release";s:8:"2.0.0RC3";s:3:"api";s:8:"2.0.0RC3";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:4:"date";s:10:"2005-12-30";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:479:"- added error handling when result set introspection is not supported in _wrapResult()
- fixed example
- removed peardb wrapper (its broken, unmaintained and probably unused)
- added new example using php5 only features
- MDB2_OK is now a boolean true, instead of integer 1
- types can now always be keyed by name or by order
- renamed setResultTypes() in the datatype module to checkResultTypes()
and modified the signature accordingly
- removed no longer used MDB2::isManip()";}i:12;a:5:{s:7:"version";a:2:{s:7:"release";s:8:"2.0.0RC2";s:3:"api";s:8:"2.0.0RC2";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:4:"date";s:10:"2005-12-28";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:616:"- fixed testNow() to use the datatype abstraction
- fixed testGetTableFieldDefinition() to use a blob column instead of a clob
since we default to blob when we cannot differntiate between blob and clob
- split up alterTable() testing into two separate test methods
- removed errorNative() was never implemented, use errorInfo() instead
- fixed major bug in _fixResultArrayValues() that would lead to performance or
incorrect application of portability features
- phpdoc fixes in LOB.php, Iterator.php, Date.php and Extended.php
- removed not required prev() and hasPrev() from the SeekableIterator implementation";}i:13;a:5:{s:7:"version";a:2:{s:7:"release";s:8:"2.0.0RC1";s:3:"api";s:8:"2.0.0RC1";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:4:"date";s:10:"2005-12-21";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:1629:"- added numerous testcases in the manager and reverse module
- unified case fixing in the list*() methods
- case-insensitive comparison in _isSequenceName()
- added getConnection() to fetch a native connection resource
- split index and constraint handling
- quote identifiers where possible inside the manager methods depending on
the new 'quote_identifier' option (defaults to off)
- refactored get*Declaration() methods to use getTypeDeclaration()
- setting in_transaction to false on disconnect
- store if type has changed in compareDefinition()
- added new Function modules to handle difference in SQL functions
- added verious new test cases
- refactored test cases to use an MDB2_testcase base class
- allow empty field parameter in get*ID() methods (bug #5791)
- tweaked error messages for file loads
- split off manipulation queries into exec() method from the query() method *BC BREAK*
- only if result_types is set to false in prepare() method the query will be
handled as a DML statement *BC BREAK*
- use a proper default value if a field is set to not null in _getDeclaration*() (bug #5930)
- added getServerVersion()
- renamed defaultOutput() to getDefaultOutput() *BC BREAK*
- use tableInfo() to automatically determine the result types if type is set to true
- reworked file loading to work around issues in safe_mode with MDB2::fileExists() (bug #6226)
- no need to return by reference in getConnection() (it even seems to work for
mysqli that has objects and not resource connections)
- added "idxname_format" as option similar to "seqname_format"
- fixed bug in API calls inside autoExecute() (bug #6286)";}i:14;a:5:{s:7:"version";a:2:{s:7:"release";s:10:"2.0.0beta6";s:3:"api";s:10:"2.0.0beta6";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:4:"date";s:10:"2005-10-16";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:3425:"Warning: this release features numerous BC breaks!
There have been considerable improvements to the datatype, manager and reverse
modules. Furthermore preliminary support for auto increment and primary keys
has been added. Please note that making a field auto increment implies a single
column primary key on this field.
- increased php dependency to 4.3.0 due to the usage of the streams API since beta5
- moved logic from MDB2::connect() to MDB2::factory(), the only difference is
that MDB2::connect will immediatly try to connect to the database
- MDB2::singleton now uses MDB2::factory()
- added support for auto increment and primary key in schema. (mysql[i])
- alterTable now needs the full definition to work (use getTableFieldDefinition
from Reverse module if you do not have a definition at hand) this eliminates the need
of the declaration part in the alterTable array.
- nicer test chooser. Added some js magic to [un]select all the tests in a group
- fixed typo in _getTextDeclaration()
- fix PHP4.4 breakage
- ensure that types and result_types property in the statement class is an array (bug #4695)
- added support for fetchmode in the iterator class and for any other result wrapper class (bug #4685)
- moved getInsertID() into core as lastInsertID()
- moved getBeforeID() and getAfterID() from core into the extended module
- added base class for all modules (which provides getDBInstance())
- added free() method to remove an instance from the global instance array
- removed schema manager related error codes from MDB2::errorMessage()
- dont set the include path in test suite (people can do that in test_setup.php)
- added missing default numRows() method
- added hack into stream_eof() to handle the BC break in 5.0.x
- removed uncessary duplicate quoting in quote() in the peardb wrapper (bug #5195)
- warning fix in BC hack of connect() in the peardb wrapper
- tweaked error message in setResultTypes()
- removed PDO compatibility code in bindParam and bindCol, now using 0-index numeric keys again
- expect keys in type arrays the same way as they are passed for the values in execute() and bindParamArray()
- add s pattern modifier to preg_replace() call for parameter searches in prepare() (bug #5362)
- moved all private fetch mode fix methods into _fixResultArrayValues() for performance reasons
- added new portability fetch mode MDB2_PORTABILITY_FIX_ASSOC_FIELD_NAMES (to remove database/table qualifiers from assoc indexes)
- renamed MDB2_PORTABILITY_LOWERCASE to MDB2_PORTABILITY_FIX_CASE and use 'field_case' option to determine if to upper- or lowercase (CASE_LOWER/CASE_UPPER)
- ensure that fetchAll always returns an array() even if the result set was empty
- use array_key_exists() instead of isset() where possible
- changed structure of field add/remove/change in alterTable() to match MDB2_Schema
- added default values for supported property
- reworked supports() to return the given value and also return errors for non existant support feature
- reworked subSelect() to use the 'emulated' supports() return value
- removed implementation of createIndex() (now every driver needs to implement it themselves)
- sync fileExists with the LiveUser one, explode instead of split and is_readable instead of file_exists.
- tweaked compare method family to better deal with optional properties
open todo items:
- add test cases for the various module methods
- add getServerVersion()";}i:15;a:5:{s:7:"version";a:2:{s:7:"release";s:10:"2.0.0beta5";s:3:"api";s:10:"2.0.0beta5";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:4:"date";s:10:"2005-06-08";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:1230:"Warning: this release features numerous BC breaks to make the MDB2 API be as
similar as possible as the ext/pdo API! The next release is likely to also break
BC for the same reason. Check php.net/pdo for information on the pdo API.
- refactored LOB support (BC breaks)
- moved all drivers into separate packages MDB2_Driver_* (BC break)
- bindParam() and bindColumn() are now 1-indexed (BC break)
- removed special handling for day light saving time (bug #4341) (BC break)
- ensure SQL injection protection in all _quote() methods
(was missing in some decimal, float, time, date and timestamp implementations)
- renamed getRowCount() to rowCount() for PDO compliance (BC break)
(doesnt take into account the offset anymore)
- added new quote() parameter to remove quotes (ugly hack will get cleaned up)
- renamed execute() to _execute() since common provides some common functionality via execute()
- fixed some issues regarding limit/offset in prepared statements
- fixed bug in _assignBindColumns() when using associative fetches
- support numeric and string keys in types array for prepared queries
- call trigger error if __call() is unable to find a method in any of the modules
- work around php5 bugs in the test suite";}i:16;a:5:{s:7:"version";a:2:{s:7:"release";s:10:"2.0.0beta4";s:3:"api";s:10:"2.0.0beta4";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:4:"date";s:10:"2005-04-29";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:2802:"Warning: this release features numerous BC breaks to make the MDB2 API be as
similar as possible as the ext/pdo API! The next release is likely to also break
BC for the same reason. Check php.net/pdo for information on the pdo API.
- fixed bugs in MDB2_Extended::buildManipSQL() introduced in latest tweaks (bug #3725)
- mysqli has connection objects instead of resources
- fix mssql tableInfo() so flags are returned (bug #3691)
- fixed bug in handling of force_array when 2 or less columns are fetched in fetchAll()
- added map error message for sqlite multi-column unique constraints.
- added listUsers(), listViews(), listFunctions() to oracle manager
- added listFunctions() to pgsql manager
- updated listViews() in pgsql manager
- added __call() support for module handling
- mysql driver now uses mysqli implementations where feasible
- ensure that internal calls to query dont wrap the result
- for some reason mysqli didnt like SELECT LAST_INSERT_ID()
- fixed bug in table alteration when only an index was added
- updated pgsql API calls to 4.2.0 recommended names (bug #3904)
- moved logic to compareDefinitions from the Manager into the Datatype module
to increase flexibility
- extended MDB2::isError() to be able to handle an array or codes
- added error handling into autoPrepare() and autoExecute()
- migrade all MDB2::isError calls that dont check for specific errors codes to PEAR::isError
- don't pass new_link to mysql_pconnect() (bug #3993)
- use MDB2::raiseError() instead of MDB2_Driver_Common::raiseError()
- do not disable result wrapping when doing internal calls to query() (bug #3997)
- _wrapResult() now ensures that the result class is an instance of MDB2_Result_Common
- unbundled the MDB2_Tools_Manager into a separate package PEAR::MDB2_Schema
- improved getTableFieldDefinition() and moved native type mapping to the
datatype module mapNativeDatatype() method (mysql, sqlite, pgsql and ibase drivers)
- fixes for listTables() in sqlite and pgsql driver
- ensure that mysql drivers use the dummy_primary_key property
- severely reworked how data is fetched and buffered and freed in the iterator
- added mapNativeDatatype() to ibase driver
- getTypeDeclaration() => _getTypeDeclaration() in ibase driver
- cosmetic fixes and tweaks (replace(). fetchOne() ..)
- renamed 'seqname_col_name' option to 'seqcol_name'
- moved schema documentation, xml_reverse_engineering.php, MDB.dtd
and MDB.xls to MDB_Schema package
- Mysqli: implicit sequence is named as table by default
- Mysqli: text types now map to clob first
- ensure that types are numerically keyed in setResultTypes()
- added caching to getColumnNames()
- added bindColumn() support
- use MDB2_Schema::factory()
- phpdoc fixes in regards to flipped fetchmode
- remove renegate mysql code in sqlite driver";}i:17;a:5:{s:7:"version";a:2:{s:7:"release";s:10:"2.0.0beta3";s:3:"api";s:10:"2.0.0beta3";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:4:"date";s:10:"2005-03-06";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:7520:"Warning: this release features numerous BC breaks to make the MDB2 API be as
similar as possible as the ext/pdo API! The next release is likely to also break
BC for the same reason. Check php.net/pdo for information on the pdo API.
Oracle NULL in LOB fields is broken.
The fbsql and mssql drivers are likely to be broken as they are largely untested.
MDB2 static class:
- "xxx" out password on connect error in MDB2::connect()
- MDB2::isError now also optionally accepts and error code to check for
- added LOAD DATA (port from DB) and SET to MDB2::isManip()
All drivers:
- use __construct() (PHP4 BC hacks are provided)
- allow null values to be set for options
- ensure we are returning a reference in all relevant places
- allow errorInfo() to be called when no connection has been established yet
- use MDB2_ERROR_UNSUPPORTED instead of MDB2_ERROR_NOT_CAPABLE in common implementations
- readded MDB2_Error as the baseclass for all MDB2 error objects
- updated error mappings from DB
- added MDB2_Driver_Common::getDatabase();
- reworked dsn default handling
- added ability to "xxx" out password in getDSN()
- use _close() method in several places where they previously were not used
- removed redundant code in _close() that dealt with transaction closing already
done in disconnect()
- if the dbsyntax is set in the dsn it will be set in the dbsyntax property
- only disconnect persistant connections if disconnect() has been explicitly
called by the user
- instead of having a generic implemention of disconnect() we will rename
_close() to disconnect() to overwrite the generic implementation
- added support for 'new_link' dsn option for all supported drivers (mysql, oci8, pgsql)
- transaction API moved over to PDO: removed autoCommit(), added beginTransaction()
and refactored commit() (it doesn't start a new transaction automatically anymore)
- reworked handling of uncommited transaction for persistant connections when
a given connection is no longer in use
- added 'disable_query' option to be able to disable the execution of all queries
(this might be useful in conjuntion with a custom debug handler to be able to
dump all queries into a file instead of executing them)
- removed affectedRows() method in favor of returning affectedRows() on query if relevant
- added generic implementation of query() and moved driver specific code into _doQuery()
- added _modifyQuery() to any driver that did not yet have it yet
- standaloneQuery() now also supports SELECT querys
- remove redundant call to commit() since setting autoCommit() already commits in MDB2::replace()
- refactored standaloneQuery(), query(), _doQuery(), _wrapResult(); the most important change are:
result are only wrapped if it is explicitly requested
standaloneQuery() now works just as query() does but with its own connection
- allowing limits of 0 in setLimit()
- explicitly specify colum name in sequence emulation queries
- added getBeforeId() and getAfterId()
- added new supported feature 'auto_increment'
- added default implementation for quoteCLOB() and quoteBLOB()
- reworked quote handling: moved all implementation details into the extension,
made all quote methods private except for quote() itself, honor portability
MDB2_PORTABILITY_EMPTY_TO_NULL in quote(), removed MDB2_TYPE_* constants
- reworked get*Declaration handling: moved all implementation details into the extension,
made all quote methods private except for quote() itself
- placed convert methods after the portability conversions to ensure that the
proper type is maintained after the conversion methods
- dont convert fetched null values in the Datatype module
- removed executeParams() and moved executeMultiple() from extended module
- updated tableInfo() code from DB
- made LIMIT handling more robust by taking some code from DB
All drivers result:
- performance tweak in fetchCol()
- added MDB2_FETCHMODE_OBJECT
- added MDB2_Driver_Result_Common::getRowCounter()
- added rownum handling to fetchRow()
- removed fetch() and resultIsNull()
All drivers prepared statements
- moved prepare/execute API towards PDO
- setParamsArray() can now handle non ordered arrays
- removed requirement for LOB inserts to pass the parameters as an array
- placeholders are now numbered starting from 0 (BC break in setParam() !)
- queries inside the prepared_queries property now start counting at 1 (performance tweak)
- refactored handling of filename LOB values (prefix with 'file://')
- removed _executePrepared(), drivers need to overwrite execute() for now on
- add support for oracle style named parameters and modified test suite accordingly
MySQL driver:
- improved handling of MDB2_PORTABILITY_LOWERCASE in all the reverse
methods inside the mysql driver to work coherently
- fixed several issues in the listTablefields() method of manager drivers
MSSQL driver:
- added code in MDB2_Driver_mssql::connect() to better handle date values
independant of ini and locale settings inside the server
- use comma, rather than colon, to delimit port in MDB2_driver_mssql::connect().
Bug 2140. (danielc)
- unified mssql standalone query with sqlite, mysql and others (not tested on
mssql yet, but since mssql automatically reuses connections per dsn the old
way could gurantee anything different from happening)
PgSQL driver:
- use track_errors to capture error messages in MDB2_driver_pgsql::connect().
Bug 2011. (danielc)
- add port to connect string when protocol is unix in MDB2_driver_pgsql::connect().
Bug 1919. (danielc)
- accommodate changes made to PostgreSQL so "no such field" errors get properly
indicated rather than being mislabeled as "no such table." (danielc)
- added "permission denied" to error regex in pgsql driver.
Bug 2417. (stewart_linux-org-au)
OCI8 driver:
- fixed typo in MDB2_Driver_Manager_oci8::listTables() (fix for bug #2434)
- added emulate_database option (default true) to the Oracle driver that handles
if the database_name should be used for connections of the username
- oci8 driver now uses native bind support for all types in prepare()/execute()
Interbase driver:
- completely revised ibase driver, now passing all tests under php5
Frontbase driver:
- fbsql: use correct error codes. Was using MySQL's codes by mistake.
MySQLi driver:
- added mysqli driver (passes all tests, but doesnt use native prepare yet)
DB wrapper
- fixed a large number of compatibility issues in the PEAR::DB wrapper
Iterator
- fixed several bugs and updated the interface to match the final php5 iterator API
- buffered result sets now implements seekable
- removed unnecessary returns
- throw pear error on rewind in unbuffered result set
- renamed size() to count() to match the upcoming Countable interface
Extended module:
- modified the signature of the auto*() methods to be compatible with DB (bug #3720)
- tweaked buildManipSQL() to not use loops (bug #3721)
MDB_Tools_Manager
- updated raiseError method in the Manager to be compatible with
XML_Parser 1.1.x and return useful error message (fix bug #2055)
- major refactoring of MDB2_Manager resulting in several new methods being available
- fixed error in MDB2_Manager::_escapeSpecialCharacter() that would lead to
incorrect handling of integer values (this needs to be explored in more detail)
- several typo fixes and minor logic errors (among others a fix for bug #2057)
- moved xml dumping in MDB2_Tools_Manager into separate Writer class
- fixed bugs in start value handling in create sequence (bug #3077)";}i:18;a:5:{s:7:"version";a:2:{s:7:"release";s:10:"2.0.0beta2";s:3:"api";s:10:"2.0.0beta2";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:4:"date";s:10:"2004-04-25";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:2601:"The core of MDB2 is now fairly stable API-wise. The modules, especially the
manager and reverse module, might see some API refinement before the first
stable release.
- added listTables() and listTableFields() methods to MDB2_Driver_Manager_mssql
and MDB2_Driver_Manager_oci8
- reversed parameter order of getValue(), type parameter is now optional and
will then be autodetected (BC break!)
- renamed get*Value() to quote*() (BC break!)
- fixed LOB management in MDB2_Driver_ibase
- moved getOne, getRow, getCol, getAll back into the exteneded module (most
users should be able to move to the queryOne, queryRow, queryCol and queryAll
equivalent) (BC break!)
- added getAssoc to the extended module
- fixed bug in MDB2_Driver_Datatype_Common::implodeArray()
- added sequence_col_name option to make the column name inside sequence
emulation tables configurable
- fixed a bug in the MDB2_Driver_oci8 and MDB2_Driver_ibase buffering emulation
when using limit queries
- removed MDB2_PORTABILITY_NULL_TO_EMPTY in favor of MDB2_PORTABILITY_EMPTY_TO_NULL
this means that DB and MDB2 work exactly the opposite now, but it seems more
efficient to do things the way Oracle does since this is the RDBMS which
creates the original issue to begin with (BC break!)
- fixed a typos in getAll, getAssoc and getCol
- test suite: moved set_time_limit() call to the setup script to be easier to customize
- renamed hasMore() to valid() due to changes in the PHP5 iterator API (BC break!)
- renamed toString() to __toString() in order to take advantage of new PHP5
goodness and made it public
- MDB2_Driver_Datatype_Common::setResultTypes() can now handle missing elements
inside type arrays: array(2 => 'boolean', 4 => 'timestamp')
- fixed potential warning due to manipulation query detection in the query*()
and the get*() query+fetch methods
- added tests for fetchAll() and fetchCol()
- performance tweaks for fetchAll() and fetchCol()
- fixed MDB2_Driver_Manager_mysql::listTableIndexes()
- fixed MDB2_Driver_Common::debug()
- renamed MDB2::isResult() to MDB2::isResultCommon()
- added base result class MDB2_Result from which all result sets should be
inherited and added MDB2::isResult() which checks if a given object extends from it
- added 'result_wrap_class' option and optional parameter to query() to enable
wrapping of result classes into an arbitrary class
- added $result_class param to all drivers where it was missing from the
query() and _executePrepared() methods
- applied several fixes to the PEAR::DB wrapper
- fixed a typo in MDB2_Driver_Reverse_pgsql::tableInfo()";}i:19;a:5:{s:7:"version";a:2:{s:7:"release";s:10:"2.0.0beta1";s:3:"api";s:10:"2.0.0beta1";}s:9:"stability";a:2:{s:7:"release";s:5:"alpha";s:3:"api";s:5:"alpha";}s:4:"date";s:10:"2004-03-12";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:1280:"- fixed bug in MDB2::singleton
- fixed minor bugs in prepare/execute
- added PEAR::DB wrapper (not working yet)
- fixed several bugs in the ibase driver
- fixed several PHP5 related issues
- fixed bug in sequence creation on MySQL
- fixed issues with nextid() ondemand handling in conjunction with currId()
- added native currId() implementation for the Oracle driver
- fixed sqlite driver (passes all but the REPLACE test due to a conformance issue in sqlite itself)
- removed decimal_factor property to allow changing of decimal_places option
- using native escape string methods in sqlite and mysql driver
- fixed minor conformance issues in tableInfo() in the oci8 and mysql driver
- removed optimize option and added portability option instead (ported from DB)
- added quoteIdentifier() method (ported from DB)
- added STATUS document to make the status of the drivers more transparent
- fixed a few bugs in querysim driver
- fixed issue in mysql reverse engineering: ensuring the correct case is used when
doing assoc fetches based on portability flag setting
- updated reverse engineering script to the new MDB2 API
- removed broken implementations of currId() in the mssql and fbsql driver
- fixed a few instances of MDB_Common to the new class name of MDB_Driver_Common";}i:20;a:5:{s:7:"version";a:2:{s:7:"release";s:11:"2.0.0alpha1";s:3:"api";s:11:"2.0.0alpha1";}s:9:"stability";a:2:{s:7:"release";s:5:"alpha";s:3:"api";s:5:"alpha";}s:4:"date";s:10:"2004-01-05";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:1845:"This is the first alpha release of MDB2 2.0.
MDB2 2.x breaks backwards compatibility in many ways in order to simplify
the API for both users and drivers developers.
Please note that currently only the MySQL, the PostGreSQL and the Oracle driver
have been tested to pass the test suite.
Here follows a short list of the most important changes:
- all code that is not necessary for basic operation is now separateed
into separate modules which can be loaded with the loadModule() method
- all datatype related methods have been moved to a dataype module with
the notable exception of getValue() and the newly introduced getDeclaration()
- added extended module for highlevel methods
- all manager method are no longer available in the core class and or
now only available in the manager module
- all reverse engineering methods have been taken from the manager class
and are now available through the reverse module
- a new module has been added to allow the addition of methods with
RDBMS specific functionality (like getting the last autoincrement ID)
- LOB handling has been greatly simplified
- several methods names have been shortend
- the fetch.+() methods do not free the result set anymore
- the Manager and the reverse_engineer_xml_schema have been moved into
a Tools directory
- all parameters are now lowercased with underscores as separators
- all drivers now support all of the dsn options that PEAR DB supports
- several methods have been removed because they offered redundant functionality
- changed prepare API type is now passed to prepare and not to setParam*()
- results are now wrapped inside objects and all methods which operate
on resultsets have been moved into respecitive classes
- there are two types of result object: buffered (default) and unbuffered
- totally rewrote buffering and limit emulation";}}}s:8:"filelist";a:42:{s:25:"docs/examples/example.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"b5cd8d01a36258caa0c4eb7e3478c219";s:4:"name";s:25:"docs/examples/example.php";s:4:"role";s:3:"doc";s:12:"installed_as";s:74:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\MDB2\docs\examples\example.php";}s:30:"docs/examples/example_php5.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"9d111ec2aec184bc1ece351aa7a59aaa";s:4:"name";s:30:"docs/examples/example_php5.php";s:4:"role";s:3:"doc";s:12:"installed_as";s:79:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\MDB2\docs\examples\example_php5.php";}s:37:"docs/examples/metapear_test_db.schema";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"74b2bb45de61eccbffed7d75d5268af9";s:4:"name";s:37:"docs/examples/metapear_test_db.schema";s:4:"role";s:3:"doc";s:12:"installed_as";s:86:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\MDB2\docs\examples\metapear_test_db.schema";}s:17:"docs/CONTRIBUTORS";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"a253b37e185622112acfef6c94b79aef";s:4:"name";s:17:"docs/CONTRIBUTORS";s:4:"role";s:3:"doc";s:12:"installed_as";s:66:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\MDB2\docs\CONTRIBUTORS";}s:19:"docs/datatypes.html";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"cc1befe78146094be02f89bbb201b4ab";s:4:"name";s:19:"docs/datatypes.html";s:4:"role";s:3:"doc";s:12:"installed_as";s:68:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\MDB2\docs\datatypes.html";}s:16:"docs/MAINTAINERS";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"a70b17bcd8e56911f74a4dff61a3ff8d";s:4:"name";s:16:"docs/MAINTAINERS";s:4:"role";s:3:"doc";s:12:"installed_as";s:65:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\MDB2\docs\MAINTAINERS";}s:11:"docs/README";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"c7b68ea23aa2ae6d91913703a2246f15";s:4:"name";s:11:"docs/README";s:4:"role";s:3:"doc";s:12:"installed_as";s:60:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\MDB2\docs\README";}s:11:"docs/STATUS";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"f9858c9327499e60db66621a817c66a4";s:4:"name";s:11:"docs/STATUS";s:4:"role";s:3:"doc";s:12:"installed_as";s:60:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\MDB2\docs\STATUS";}s:9:"docs/TODO";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"ec0c4383ddfd3af69d577344d0d5b4dd";s:4:"name";s:9:"docs/TODO";s:4:"role";s:3:"doc";s:12:"installed_as";s:58:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\MDB2\docs\TODO";}s:31:"MDB2/Driver/Datatype/Common.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"8d10cb404138fb05c577d040a34dc566";s:4:"name";s:31:"MDB2/Driver/Datatype/Common.php";s:4:"role";s:3:"php";s:12:"installed_as";s:70:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\MDB2\Driver\Datatype\Common.php";}s:31:"MDB2/Driver/Function/Common.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"97bebd544d4da9b698fb40dfc9b5835d";s:4:"name";s:31:"MDB2/Driver/Function/Common.php";s:4:"role";s:3:"php";s:12:"installed_as";s:70:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\MDB2\Driver\Function\Common.php";}s:30:"MDB2/Driver/Manager/Common.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"ef96fac9e21f7b0d875fcd6019e83d76";s:4:"name";s:30:"MDB2/Driver/Manager/Common.php";s:4:"role";s:3:"php";s:12:"installed_as";s:69:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\MDB2\Driver\Manager\Common.php";}s:29:"MDB2/Driver/Native/Common.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"005901a0e84f6ff717e0847f0a3faf14";s:4:"name";s:29:"MDB2/Driver/Native/Common.php";s:4:"role";s:3:"php";s:12:"installed_as";s:68:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\MDB2\Driver\Native\Common.php";}s:30:"MDB2/Driver/Reverse/Common.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"046ccbeb045bfa0f6e657d4bf5ea98f2";s:4:"name";s:30:"MDB2/Driver/Reverse/Common.php";s:4:"role";s:3:"php";s:12:"installed_as";s:69:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\MDB2\Driver\Reverse\Common.php";}s:13:"MDB2/Date.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"af81dd360b2d2d09f8c978214b06a553";s:4:"name";s:13:"MDB2/Date.php";s:4:"role";s:3:"php";s:12:"installed_as";s:52:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\MDB2\Date.php";}s:17:"MDB2/Extended.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"62a14a62f64ad91e54f055a4da3cd5e3";s:4:"name";s:17:"MDB2/Extended.php";s:4:"role";s:3:"php";s:12:"installed_as";s:56:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\MDB2\Extended.php";}s:17:"MDB2/Iterator.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"023c4bda6db2d8f277d8d3c76dc8f850";s:4:"name";s:17:"MDB2/Iterator.php";s:4:"role";s:3:"php";s:12:"installed_as";s:56:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\MDB2\Iterator.php";}s:12:"MDB2/LOB.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"f3cefd7b2f7a1d5ac52a537aa2bdc495";s:4:"name";s:12:"MDB2/LOB.php";s:4:"role";s:3:"php";s:12:"installed_as";s:51:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\MDB2\LOB.php";}s:16:"tests/basic.phpt";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"01d41e566bdb62c7bcb432c8039dda9a";s:4:"name";s:16:"tests/basic.phpt";s:4:"role";s:4:"test";s:12:"installed_as";s:66:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\MDB2\tests\basic.phpt";}s:17:"tests/clitest.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"6f322088ba70dd591a2cff31bf446525";s:4:"name";s:17:"tests/clitest.php";s:4:"role";s:4:"test";s:12:"installed_as";s:67:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\MDB2\tests\clitest.php";}s:16:"tests/config.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"c90cdd55233d9ef470150c06a946d213";s:4:"name";s:16:"tests/config.php";s:4:"role";s:4:"test";s:12:"installed_as";s:66:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\MDB2\tests\config.php";}s:30:"tests/Console_TestListener.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"2a2c534ab4afb0c05ca9d7ca47815bf5";s:4:"name";s:30:"tests/Console_TestListener.php";s:4:"role";s:4:"test";s:12:"installed_as";s:80:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\MDB2\tests\Console_TestListener.php";}s:27:"tests/HTML_TestListener.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"d46a8f267dbd54f0c7ff55e479d33e7e";s:4:"name";s:27:"tests/HTML_TestListener.php";s:4:"role";s:4:"test";s:12:"installed_as";s:77:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\MDB2\tests\HTML_TestListener.php";}s:27:"tests/MDB2_api_testcase.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"98da3f3aba98f4a9adc71a9fd19929de";s:4:"name";s:27:"tests/MDB2_api_testcase.php";s:4:"role";s:4:"test";s:12:"installed_as";s:77:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\MDB2\tests\MDB2_api_testcase.php";}s:28:"tests/MDB2_bugs_testcase.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"6f5ca4adb851f22a41f84bd7be1d9b4d";s:4:"name";s:28:"tests/MDB2_bugs_testcase.php";s:4:"role";s:4:"test";s:12:"installed_as";s:78:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\MDB2\tests\MDB2_bugs_testcase.php";}s:27:"tests/MDB2_Connect_Test.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"f8534befe37efc7f35beb0897b75f951";s:4:"name";s:27:"tests/MDB2_Connect_Test.php";s:4:"role";s:4:"test";s:12:"installed_as";s:77:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\MDB2\tests\MDB2_Connect_Test.php";}s:32:"tests/MDB2_datatype_testcase.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"593ff9ad532908f16d020ceaa9ab09f8";s:4:"name";s:32:"tests/MDB2_datatype_testcase.php";s:4:"role";s:4:"test";s:12:"installed_as";s:82:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\MDB2\tests\MDB2_datatype_testcase.php";}s:32:"tests/MDB2_extended_testcase.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"be04baf42175f7bfc55412a08744c4e9";s:4:"name";s:32:"tests/MDB2_extended_testcase.php";s:4:"role";s:4:"test";s:12:"installed_as";s:82:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\MDB2\tests\MDB2_extended_testcase.php";}s:32:"tests/MDB2_function_testcase.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"ca4ad92dd091bc59b0f0be14b8cfdc0c";s:4:"name";s:32:"tests/MDB2_function_testcase.php";s:4:"role";s:4:"test";s:12:"installed_as";s:82:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\MDB2\tests\MDB2_function_testcase.php";}s:31:"tests/MDB2_manager_testcase.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"edb864169081c5b6a2d9b6d5e2f28e83";s:4:"name";s:31:"tests/MDB2_manager_testcase.php";s:4:"role";s:4:"test";s:12:"installed_as";s:81:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\MDB2\tests\MDB2_manager_testcase.php";}s:30:"tests/MDB2_native_testcase.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"22be0efc5b2b81bd6cd6ebe31747445e";s:4:"name";s:30:"tests/MDB2_native_testcase.php";s:4:"role";s:4:"test";s:12:"installed_as";s:80:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\MDB2\tests\MDB2_native_testcase.php";}s:31:"tests/MDB2_reverse_testcase.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"6b283c945b2dea2d375aa390087b658d";s:4:"name";s:31:"tests/MDB2_reverse_testcase.php";s:4:"role";s:4:"test";s:12:"installed_as";s:81:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\MDB2\tests\MDB2_reverse_testcase.php";}s:23:"tests/MDB2_testcase.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"2d4098056e3e1eb2ab73e5803d51c136";s:4:"name";s:23:"tests/MDB2_testcase.php";s:4:"role";s:4:"test";s:12:"installed_as";s:73:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\MDB2\tests\MDB2_testcase.php";}s:29:"tests/MDB2_usage_testcase.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"03db646e093383e77f98454ea0876225";s:4:"name";s:29:"tests/MDB2_usage_testcase.php";s:4:"role";s:4:"test";s:12:"installed_as";s:79:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\MDB2\tests\MDB2_usage_testcase.php";}s:12:"tests/README";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"7a13f2bc2d431c365f838d12e7259ec6";s:4:"name";s:12:"tests/README";s:4:"role";s:4:"test";s:12:"installed_as";s:62:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\MDB2\tests\README";}s:14:"tests/test.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"a2c50ccea24f7bdd5439b366608d59d5";s:4:"name";s:14:"tests/test.php";s:4:"role";s:4:"test";s:12:"installed_as";s:64:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\MDB2\tests\test.php";}s:20:"tests/testchoose.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"dc05c6cc4540981d350ccac2005c2578";s:4:"name";s:20:"tests/testchoose.php";s:4:"role";s:4:"test";s:12:"installed_as";s:70:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\MDB2\tests\testchoose.php";}s:15:"tests/tests.css";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"3c4d2c9d89398c5692d36299d98f9c6e";s:4:"name";s:15:"tests/tests.css";s:4:"role";s:4:"test";s:12:"installed_as";s:65:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\MDB2\tests\tests.css";}s:19:"tests/testUtils.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"841447ae8672a6779166791d0bf6ec03";s:4:"name";s:19:"tests/testUtils.php";s:4:"role";s:4:"test";s:12:"installed_as";s:69:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\MDB2\tests\testUtils.php";}s:25:"tests/test_setup.php.dist";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"c9e7116ea8cad94ec69fa9a5e4d195a6";s:4:"name";s:25:"tests/test_setup.php.dist";s:4:"role";s:4:"test";s:12:"installed_as";s:75:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\MDB2\tests\test_setup.php.dist";}s:7:"LICENSE";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"a5019765abfd14334f25231c61c568ef";s:4:"name";s:7:"LICENSE";s:4:"role";s:4:"data";s:12:"installed_as";s:56:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\data\MDB2\LICENSE";}s:8:"MDB2.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:6:"md5sum";s:32:"ae732f6b7abdd7e1246e8112abc91ae6";s:4:"name";s:8:"MDB2.php";s:4:"role";s:3:"php";s:12:"installed_as";s:47:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\MDB2.php";}}s:12:"_lastversion";N;s:7:"dirtree";a:21:{s:62:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\MDB2\docs\examples";b:1;s:62:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\docs\MDB2\docs\examples";b:1;s:53:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\docs\MDB2\docs";b:1;s:53:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\MDB2\docs";b:1;s:59:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\MDB2\Driver\Datatype";b:1;s:59:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\MDB2\Driver\Datatype";b:1;s:50:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\MDB2\Driver";b:1;s:43:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\MDB2";b:1;s:59:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\MDB2\Driver\Function";b:1;s:59:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\MDB2\Driver\Function";b:1;s:58:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\MDB2\Driver\Manager";b:1;s:58:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\MDB2\Driver\Manager";b:1;s:57:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\MDB2\Driver\Native";b:1;s:57:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\MDB2\Driver\Native";b:1;s:58:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\MDB2\Driver\Reverse";b:1;s:58:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\MDB2\Driver\Reverse";b:1;s:43:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\MDB2";b:1;s:55:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\MDB2\tests";b:1;s:55:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\tests\MDB2\tests";b:1;s:48:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\data\MDB2";b:1;s:38:"D:\Apache2\htdocs\tshirtshop\libs\PEAR";b:1;}s:3:"old";a:7:{s:7:"version";s:5:"2.3.0";s:12:"release_date";s:10:"2006-11-03";s:13:"release_state";s:6:"stable";s:15:"release_license";s:11:"BSD License";s:13:"release_notes";s:3085:"- added charset and collation support to field declaration
- added SQL comments and quoted identifier handling inside prepared statement parser
- expanded length/scale support for numeric types (Request #7170)
- added statement_format option to make it possible to define the name used for
native statements if supported
- fixed bug when setting MDB2_PREPARE_RESULT in autoExecute()
- fixed notice in exec() call in autoExecute()
- reversed if logic in MDB2::fileExists checking to be more fool proof with
safe_mode restrictions (Bug #8296)
- moved CREATE TABLE query generation in a separate method for reuse in the drivers
- added testLOBRead to test multiple LOB reads
- fixed getColumnNames() optional parameter handling (Bug #8857)
- phpdoc fix for fetchCol/fetchAll
- added an extra if in the autoExecute method of the Extended driver (Bug #8878)
- expanded tableInfo() tests
- expanded prepare() tests
- fix the incorrect use of currID() for lastInsertID() emulation (Bug #9107)
- add test for lastInsertID()
- also output php version in test results
- added supported 'new_link'
- dropped use of track_errors because 5.2.0 causes php_errormsg to not get
populated if a custom error handler is set and it was causing issues for
safe_mode users anyways
- added some error handling into the bindValues()/bindParams() methods (Bug #9133)
- bindValue() does not need values by reference
- fix issue in execute() when parameter is a scalar integer of 0 (Bug #9158)
- implemented stream_stat() method (Bug #9092)
- better deal with non scalar arguments in test helper function as 5.2.0 explodes otherwise
- extracted _skipDelimitedStrings() method from prepare()
- added test for _skipDelimitedStrings() method
- migrated to package.xml version 2
open todo items:
- handle autoincrement fields in alterTable()
- add length handling to LOB reverse engineering
- expand charset support in schema management and result set handling (Request #4666)
- add EXPLAIN abstraction
- add cursor support along the lines of PDO (Request #3660 etc.)
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
- add support to export/import in CSV format
- add more functions to the Function module (MD5(), IFNULL(), LENGTH() etc.)
- add support for database/table/row LOCKs
- add support for FOREIGN KEYs and CHECK (ENUM as possible mysql fallback) constraints
- generate STATUS file from test suite results and allow users to submit test results
- explore use of install groups (pear install MDB2#mysql)
- add support for full text index creation and querying
- add tests to check if the RDBMS specific handling with portability options
disabled behaves as expected
- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..)
- add a getTableFieldsDefinitions() method to be used in tableInfo()
- drop ILIKE from matchPattern() and instead add a second parameter to
handle case sensitivity with arbitrary operators
- add charset and collation support to field declaration in all drivers
- handle LOBs in buffered result sets (Request #8793)";s:12:"release_deps";a:3:{i:0;a:4:{s:4:"type";s:3:"php";s:3:"rel";s:2:"ge";s:7:"version";s:5:"4.3.2";s:8:"optional";s:2:"no";}i:1;a:6:{s:4:"type";s:3:"pkg";s:7:"channel";s:12:"pear.php.net";s:4:"name";s:4:"PEAR";s:3:"rel";s:2:"ge";s:7:"version";s:7:"1.4.0b1";s:8:"optional";s:2:"no";}i:2;a:6:{s:4:"type";s:3:"pkg";s:7:"channel";s:12:"pear.php.net";s:4:"name";s:4:"PEAR";s:3:"rel";s:2:"ge";s:7:"version";s:5:"1.3.6";s:8:"optional";s:2:"no";}}s:11:"maintainers";a:5:{i:0;a:5:{s:4:"name";s:17:"Lukas Kahwe Smith";s:5:"email";s:20:"smith@pooteeweet.org";s:6:"active";s:3:"yes";s:6:"handle";s:6:"lsmith";s:4:"role";s:4:"lead";}i:1;a:5:{s:4:"name";s:16:"Lorenzo Alberton";s:5:"email";s:19:"l.alberton@quipo.it";s:6:"active";s:3:"yes";s:6:"handle";s:5:"quipo";s:4:"role";s:9:"developer";}i:2;a:5:{s:4:"name";s:11:"Paul Cooper";s:5:"email";s:14:"pgc@ucecom.com";s:6:"active";s:3:"yes";s:6:"handle";s:3:"pgc";s:4:"role";s:11:"contributor";}i:3;a:5:{s:4:"name";s:16:"Daniel Convissor";s:5:"email";s:15:"danielc@php.net";s:6:"active";s:3:"yes";s:6:"handle";s:7:"danielc";s:4:"role";s:6:"helper";}i:4;a:5:{s:4:"name";s:14:"David Coallier";s:5:"email";s:17:"david@jaws.com.mx";s:6:"active";s:3:"yes";s:6:"handle";s:6:"davidc";s:4:"role";s:6:"helper";}}}s:10:"xsdversion";s:3:"2.0";s:13:"_lastmodified";i:1171608487;} catalog/libs/PEAR/.registry/net_useragent_detect.reg 0000644 5773401 0100224 00000016320 10625427733 024470 0 ustar tonerlogics pg116757 0000000 0000000 a:23:{s:7:"attribs";a:6:{s:15:"packagerversion";s:5:"1.4.6";s:7:"version";s:3:"2.0";s:5:"xmlns";s:35:"http://pear.php.net/dtd/package-2.0";s:11:"xmlns:tasks";s:33:"http://pear.php.net/dtd/tasks-1.0";s:9:"xmlns:xsi";s:41:"http://www.w3.org/2001/XMLSchema-instance";s:18:"xsi:schemaLocation";s:147:"http://pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 http://pear.php.net/dtd/package-2.0.xsd";}s:4:"name";s:20:"Net_UserAgent_Detect";s:7:"channel";s:12:"pear.php.net";s:7:"summary";s:101:"Net_UserAgent_Detect determines the Web browser, version, and platform from an HTTP user agent string";s:11:"description";s:380:"The Net_UserAgent object does a number of tests on an HTTP user
agent string. The results of these tests are available via methods of
the object.
This module is based upon the JavaScript browser detection code
available at http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html.
This module had many influences from the lib/Browser.php code in
version 1.3 of Horde.";s:4:"lead";a:4:{s:4:"name";s:10:"Jason Rust";s:4:"user";s:5:"jrust";s:5:"email";s:13:"jrust@php.net";s:6:"active";s:3:"yes";}s:6:"helper";a:2:{i:0;a:4:{s:4:"name";s:9:"Dan Allen";s:4:"user";s:6:"dallen";s:5:"email";s:14:"dallen@php.net";s:6:"active";s:3:"yes";}i:1;a:4:{s:4:"name";s:11:"David Costa";s:4:"user";s:8:"gurugeek";s:5:"email";s:16:"gurugeek@php.net";s:6:"active";s:3:"yes";}}s:4:"date";s:10:"2006-04-19";s:4:"time";s:8:"11:48:55";s:7:"version";a:2:{s:7:"release";s:5:"2.2.0";s:3:"api";s:5:"2.2.0";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:26:"http://www.php.net/license";}s:8:"_content";s:11:"PHP License";}s:5:"notes";s:322:"* Adding new "browsers" that make it easier to exclude old browsers: belowie6, belowns6, and belowopera8
* Additional browsers now supported: opera8, ie7, icab
* Adding new "feature" which tells if a browser is AJAX enabled: ajax
* IE 5 on Mac is now detected correctly as ie5
* Force override of the user agent now works.";s:8:"contents";a:1:{s:3:"dir";a:2:{s:7:"attribs";a:1:{s:4:"name";s:1:"/";}s:4:"file";a:2:{i:0;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:13:"Net/UserAgent";s:6:"md5sum";s:32:"42ea7cea6bff1e7de820975736ebc0ff";s:4:"name";s:17:"tests/example.php";s:4:"role";s:4:"test";}}i:1;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:13:"Net/UserAgent";s:6:"md5sum";s:32:"286683b74e0e63a81a53fe6f67eacf1d";s:4:"name";s:10:"Detect.php";s:4:"role";s:3:"php";}}}}}s:12:"dependencies";a:1:{s:8:"required";a:2:{s:3:"php";a:1:{s:3:"min";s:5:"4.1.0";}s:13:"pearinstaller";a:1:{s:3:"min";s:7:"1.4.0b1";}}}s:10:"phprelease";s:0:"";s:9:"changelog";a:1:{s:7:"release";a:4:{i:0;a:5:{s:7:"version";a:2:{s:7:"release";s:3:"1.0";s:3:"api";s:3:"1.0";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2002-05-21";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:8:"PHP 2.01";}s:5:"notes";s:45:"This is the initial independent PEAR release.";}i:1;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"2.0.1";s:3:"api";s:5:"2.0.1";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2004-03-11";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:8:"PHP 2.01";}s:5:"notes";s:328:"* Made it PHP5 compatible in a way that is BC
* Added support for Safari
* Bumped konq's javascript version up to 1.4
* Fix bug where w3m caused warnings
* fixed a notice error when the user agent is empty
* Fixed missing windows xp detection and added nested_table_render_bug quirk for netscape 4.8 and below.
* Code cleanups.";}i:2;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"2.1.0";s:3:"api";s:5:"2.1.0";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2005-04-18";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:26:"http://www.php.net/license";}s:8:"_content";s:11:"PHP License";}s:5:"notes";s:384:"* Added support for firefox, opera6, opera7, aol8, webdav, netgem/iplayer, and win2003
* The getQuirk() method now works correctly
* Normally all browser information is cached the first time Net_UserAgent_Detect is run on a page to make it as speedy as possible. However, in some case there is need to clear the cached data. This can now be done by setting the "re-evaluate" option.";}i:3;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"2.2.0";s:3:"api";s:5:"2.2.0";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2006-04-19";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:26:"http://www.php.net/license";}s:8:"_content";s:11:"PHP License";}s:5:"notes";s:322:"* Adding new "browsers" that make it easier to exclude old browsers: belowie6, belowns6, and belowopera8
* Additional browsers now supported: opera8, ie7, icab
* Adding new "feature" which tells if a browser is AJAX enabled: ajax
* IE 5 on Mac is now detected correctly as ie5
* Force override of the user agent now works.";}}}s:8:"filelist";a:2:{s:17:"tests/example.php";a:5:{s:14:"baseinstalldir";s:13:"Net/UserAgent";s:6:"md5sum";s:32:"42ea7cea6bff1e7de820975736ebc0ff";s:4:"name";s:17:"tests/example.php";s:4:"role";s:4:"test";s:12:"installed_as";s:83:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\Net_UserAgent_Detect\tests\example.php";}s:10:"Detect.php";a:5:{s:14:"baseinstalldir";s:13:"Net/UserAgent";s:6:"md5sum";s:32:"286683b74e0e63a81a53fe6f67eacf1d";s:4:"name";s:10:"Detect.php";s:4:"role";s:3:"php";s:12:"installed_as";s:63:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\Net\UserAgent\Detect.php";}}s:12:"_lastversion";s:5:"2.2.0";s:7:"dirtree";a:5:{s:71:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\Net_UserAgent_Detect\tests";b:1;s:71:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\tests\Net_UserAgent_Detect\tests";b:1;s:52:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\Net\UserAgent";b:1;s:52:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\Net\UserAgent";b:1;s:42:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\Net";b:1;}s:3:"old";a:7:{s:7:"version";s:5:"2.2.0";s:12:"release_date";s:10:"2006-04-19";s:13:"release_state";s:6:"stable";s:15:"release_license";s:11:"PHP License";s:13:"release_notes";s:322:"* Adding new "browsers" that make it easier to exclude old browsers: belowie6, belowns6, and belowopera8
* Additional browsers now supported: opera8, ie7, icab
* Adding new "feature" which tells if a browser is AJAX enabled: ajax
* IE 5 on Mac is now detected correctly as ie5
* Force override of the user agent now works.";s:12:"release_deps";a:2:{i:0;a:4:{s:4:"type";s:3:"php";s:3:"rel";s:2:"ge";s:7:"version";s:5:"4.1.0";s:8:"optional";s:2:"no";}i:1;a:6:{s:4:"type";s:3:"pkg";s:7:"channel";s:12:"pear.php.net";s:4:"name";s:4:"PEAR";s:3:"rel";s:2:"ge";s:7:"version";s:7:"1.4.0b1";s:8:"optional";s:2:"no";}}s:11:"maintainers";a:3:{i:0;a:5:{s:4:"name";s:10:"Jason Rust";s:5:"email";s:13:"jrust@php.net";s:6:"active";s:3:"yes";s:6:"handle";s:5:"jrust";s:4:"role";s:4:"lead";}i:1;a:5:{s:4:"name";s:9:"Dan Allen";s:5:"email";s:14:"dallen@php.net";s:6:"active";s:3:"yes";s:6:"handle";s:6:"dallen";s:4:"role";s:6:"helper";}i:2;a:5:{s:4:"name";s:11:"David Costa";s:5:"email";s:16:"gurugeek@php.net";s:6:"active";s:3:"yes";s:6:"handle";s:8:"gurugeek";s:4:"role";s:6:"helper";}}}s:10:"xsdversion";s:3:"2.0";s:13:"_lastmodified";i:1171608481;} catalog/libs/PEAR/.registry/pear.reg 0000644 5773401 0100224 00000122071 10625427737 021231 0 ustar tonerlogics pg116757 0000000 0000000 a:18:{s:8:"provides";a:3:{s:14:"class;OS_Guess";a:3:{s:4:"type";s:5:"class";s:4:"name";s:8:"OS_Guess";s:8:"explicit";b:1;}s:12:"class;System";a:3:{s:4:"type";s:5:"class";s:4:"name";s:6:"System";s:8:"explicit";b:1;}s:17:"function;md5_file";a:3:{s:4:"type";s:8:"function";s:4:"name";s:8:"md5_file";s:8:"explicit";b:1;}}s:8:"filelist";a:96:{s:12:"OS/Guess.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:51:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\OS\Guess.php";}s:27:"PEAR/ChannelFile/Parser.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:66:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\ChannelFile\Parser.php";}s:21:"PEAR/Command/Auth.xml";a:2:{s:4:"role";s:3:"php";s:12:"installed_as";s:60:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Command\Auth.xml";}s:21:"PEAR/Command/Auth.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:60:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Command\Auth.php";}s:22:"PEAR/Command/Build.xml";a:2:{s:4:"role";s:3:"php";s:12:"installed_as";s:61:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Command\Build.xml";}s:22:"PEAR/Command/Build.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:61:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Command\Build.php";}s:25:"PEAR/Command/Channels.xml";a:2:{s:4:"role";s:3:"php";s:12:"installed_as";s:64:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Command\Channels.xml";}s:25:"PEAR/Command/Channels.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:64:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Command\Channels.php";}s:23:"PEAR/Command/Common.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:62:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Command\Common.php";}s:23:"PEAR/Command/Config.xml";a:2:{s:4:"role";s:3:"php";s:12:"installed_as";s:62:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Command\Config.xml";}s:23:"PEAR/Command/Config.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:62:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Command\Config.php";}s:24:"PEAR/Command/Install.xml";a:2:{s:4:"role";s:3:"php";s:12:"installed_as";s:63:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Command\Install.xml";}s:24:"PEAR/Command/Install.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:63:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Command\Install.php";}s:24:"PEAR/Command/Package.xml";a:2:{s:4:"role";s:3:"php";s:12:"installed_as";s:63:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Command\Package.xml";}s:24:"PEAR/Command/Package.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:2:{i:0;a:3:{s:4:"from";s:10:"@DATA-DIR@";s:2:"to";s:8:"data_dir";s:4:"type";s:11:"pear-config";}i:1;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:63:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Command\Package.php";}s:23:"PEAR/Command/Pickle.xml";a:2:{s:4:"role";s:3:"php";s:12:"installed_as";s:62:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Command\Pickle.xml";}s:23:"PEAR/Command/Pickle.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:62:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Command\Pickle.php";}s:25:"PEAR/Command/Registry.xml";a:2:{s:4:"role";s:3:"php";s:12:"installed_as";s:64:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Command\Registry.xml";}s:25:"PEAR/Command/Registry.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:64:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Command\Registry.php";}s:23:"PEAR/Command/Remote.xml";a:2:{s:4:"role";s:3:"php";s:12:"installed_as";s:62:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Command\Remote.xml";}s:23:"PEAR/Command/Remote.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:62:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Command\Remote.php";}s:23:"PEAR/Command/Mirror.xml";a:2:{s:4:"role";s:3:"php";s:12:"installed_as";s:62:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Command\Mirror.xml";}s:23:"PEAR/Command/Mirror.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:62:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Command\Mirror.php";}s:21:"PEAR/Command/Test.xml";a:2:{s:4:"role";s:3:"php";s:12:"installed_as";s:60:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Command\Test.xml";}s:21:"PEAR/Command/Test.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:60:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Command\Test.php";}s:27:"PEAR/Downloader/Package.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:10:"@PEAR-VER@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:66:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Downloader\Package.php";}s:21:"PEAR/Frontend/CLI.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:60:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\CLI.php";}s:30:"PEAR/Installer/Role/Common.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:69:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Installer\Role\Common.php";}s:28:"PEAR/Installer/Role/Data.xml";a:2:{s:4:"role";s:3:"php";s:12:"installed_as";s:67:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Installer\Role\Data.xml";}s:28:"PEAR/Installer/Role/Data.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:67:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Installer\Role\Data.php";}s:27:"PEAR/Installer/Role/Doc.xml";a:2:{s:4:"role";s:3:"php";s:12:"installed_as";s:66:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Installer\Role\Doc.xml";}s:27:"PEAR/Installer/Role/Doc.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:66:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Installer\Role\Doc.php";}s:27:"PEAR/Installer/Role/Ext.xml";a:2:{s:4:"role";s:3:"php";s:12:"installed_as";s:66:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Installer\Role\Ext.xml";}s:27:"PEAR/Installer/Role/Ext.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:66:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Installer\Role\Ext.php";}s:27:"PEAR/Installer/Role/Php.xml";a:2:{s:4:"role";s:3:"php";s:12:"installed_as";s:66:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Installer\Role\Php.xml";}s:27:"PEAR/Installer/Role/Php.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:66:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Installer\Role\Php.php";}s:30:"PEAR/Installer/Role/Script.xml";a:2:{s:4:"role";s:3:"php";s:12:"installed_as";s:69:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Installer\Role\Script.xml";}s:30:"PEAR/Installer/Role/Script.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:69:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Installer\Role\Script.php";}s:27:"PEAR/Installer/Role/Src.xml";a:2:{s:4:"role";s:3:"php";s:12:"installed_as";s:66:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Installer\Role\Src.xml";}s:27:"PEAR/Installer/Role/Src.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:66:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Installer\Role\Src.php";}s:28:"PEAR/Installer/Role/Test.xml";a:2:{s:4:"role";s:3:"php";s:12:"installed_as";s:67:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Installer\Role\Test.xml";}s:28:"PEAR/Installer/Role/Test.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:67:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Installer\Role\Test.php";}s:23:"PEAR/Installer/Role.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:62:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Installer\Role.php";}s:33:"PEAR/PackageFile/Generator/v1.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:10:"@PEAR-VER@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:72:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\PackageFile\Generator\v1.php";}s:33:"PEAR/PackageFile/Generator/v2.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:10:"@PEAR-VER@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:72:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\PackageFile\Generator\v2.php";}s:30:"PEAR/PackageFile/Parser/v1.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:69:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\PackageFile\Parser\v1.php";}s:30:"PEAR/PackageFile/Parser/v2.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:69:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\PackageFile\Parser\v2.php";}s:26:"PEAR/PackageFile/v2/rw.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:65:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\PackageFile\v2\rw.php";}s:33:"PEAR/PackageFile/v2/Validator.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:72:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\PackageFile\v2\Validator.php";}s:23:"PEAR/PackageFile/v1.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:62:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\PackageFile\v1.php";}s:23:"PEAR/PackageFile/v2.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:62:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\PackageFile\v2.php";}s:16:"PEAR/REST/10.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:55:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\REST\10.php";}s:16:"PEAR/REST/11.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:55:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\REST\11.php";}s:34:"PEAR/Task/Postinstallscript/rw.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:73:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Task\Postinstallscript\rw.php";}s:24:"PEAR/Task/Replace/rw.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:63:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Task\Replace\rw.php";}s:24:"PEAR/Task/Unixeol/rw.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:63:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Task\Unixeol\rw.php";}s:27:"PEAR/Task/Windowseol/rw.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:66:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Task\Windowseol\rw.php";}s:20:"PEAR/Task/Common.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:59:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Task\Common.php";}s:31:"PEAR/Task/Postinstallscript.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:70:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Task\Postinstallscript.php";}s:21:"PEAR/Task/Replace.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:60:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Task\Replace.php";}s:21:"PEAR/Task/Unixeol.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:60:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Task\Unixeol.php";}s:24:"PEAR/Task/Windowseol.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:63:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Task\Windowseol.php";}s:23:"PEAR/Validator/PECL.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:62:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Validator\PECL.php";}s:19:"PEAR/Autoloader.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:58:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Autoloader.php";}s:16:"PEAR/Builder.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:10:"@PEAR-VER@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:55:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Builder.php";}s:20:"PEAR/ChannelFile.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:59:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\ChannelFile.php";}s:16:"PEAR/Command.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:55:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Command.php";}s:15:"PEAR/Common.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:54:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Common.php";}s:15:"PEAR/Config.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:54:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Config.php";}s:19:"PEAR/Dependency.php";a:2:{s:4:"role";s:3:"php";s:12:"installed_as";s:58:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Dependency.php";}s:21:"PEAR/DependencyDB.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:60:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\DependencyDB.php";}s:20:"PEAR/Dependency2.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:10:"@PEAR-VER@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:59:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Dependency2.php";}s:19:"PEAR/Downloader.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:58:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Downloader.php";}s:19:"PEAR/ErrorStack.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:58:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\ErrorStack.php";}s:18:"PEAR/Exception.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:57:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Exception.php";}s:17:"PEAR/Frontend.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:56:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend.php";}s:18:"PEAR/Installer.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:57:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Installer.php";}s:17:"PEAR/Packager.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:56:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Packager.php";}s:20:"PEAR/PackageFile.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:10:"@PEAR-VER@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:59:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\PackageFile.php";}s:17:"PEAR/Registry.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:56:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Registry.php";}s:15:"PEAR/Remote.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:54:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Remote.php";}s:13:"PEAR/REST.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:52:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\REST.php";}s:16:"PEAR/RunTest.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:55:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\RunTest.php";}s:17:"PEAR/Validate.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:56:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Validate.php";}s:18:"PEAR/XMLParser.php";a:3:{s:4:"role";s:3:"php";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:57:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\XMLParser.php";}s:19:"scripts/peardev.bat";a:6:{s:4:"role";s:6:"script";s:14:"baseinstalldir";s:1:"/";s:8:"platform";s:7:"windows";s:10:"install-as";s:11:"peardev.bat";s:12:"replacements";a:3:{i:0;a:3:{s:4:"from";s:9:"@bin_dir@";s:2:"to";s:7:"bin_dir";s:4:"type";s:11:"pear-config";}i:1;a:3:{s:4:"from";s:9:"@php_bin@";s:2:"to";s:7:"php_bin";s:4:"type";s:11:"pear-config";}i:2;a:3:{s:4:"from";s:14:"@include_path@";s:2:"to";s:7:"php_dir";s:4:"type";s:11:"pear-config";}}s:12:"installed_as";s:45:"D:\Apache2\htdocs\tshirtshop\libs\peardev.bat";}s:16:"scripts/pear.bat";a:6:{s:4:"role";s:6:"script";s:14:"baseinstalldir";s:1:"/";s:8:"platform";s:7:"windows";s:10:"install-as";s:8:"pear.bat";s:12:"replacements";a:3:{i:0;a:3:{s:4:"from";s:9:"@bin_dir@";s:2:"to";s:7:"bin_dir";s:4:"type";s:11:"pear-config";}i:1;a:3:{s:4:"from";s:9:"@php_bin@";s:2:"to";s:7:"php_bin";s:4:"type";s:11:"pear-config";}i:2;a:3:{s:4:"from";s:14:"@include_path@";s:2:"to";s:7:"php_dir";s:4:"type";s:11:"pear-config";}}s:12:"installed_as";s:42:"D:\Apache2\htdocs\tshirtshop\libs\pear.bat";}s:16:"scripts/pecl.bat";a:6:{s:4:"role";s:6:"script";s:14:"baseinstalldir";s:1:"/";s:8:"platform";s:7:"windows";s:10:"install-as";s:8:"pecl.bat";s:12:"replacements";a:3:{i:0;a:3:{s:4:"from";s:9:"@bin_dir@";s:2:"to";s:7:"bin_dir";s:4:"type";s:11:"pear-config";}i:1;a:3:{s:4:"from";s:9:"@php_bin@";s:2:"to";s:7:"php_bin";s:4:"type";s:11:"pear-config";}i:2;a:3:{s:4:"from";s:14:"@include_path@";s:2:"to";s:7:"php_dir";s:4:"type";s:11:"pear-config";}}s:12:"installed_as";s:42:"D:\Apache2\htdocs\tshirtshop\libs\pecl.bat";}s:19:"scripts/pearcmd.php";a:5:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:1:"/";s:10:"install-as";s:11:"pearcmd.php";s:12:"replacements";a:4:{i:0;a:3:{s:4:"from";s:9:"@php_bin@";s:2:"to";s:7:"php_bin";s:4:"type";s:11:"pear-config";}i:1;a:3:{s:4:"from";s:9:"@php_dir@";s:2:"to";s:7:"php_dir";s:4:"type";s:11:"pear-config";}i:2;a:3:{s:4:"from";s:14:"@pear_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}i:3;a:3:{s:4:"from";s:14:"@include_path@";s:2:"to";s:7:"php_dir";s:4:"type";s:11:"pear-config";}}s:12:"installed_as";s:50:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\pearcmd.php";}s:19:"scripts/peclcmd.php";a:5:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:1:"/";s:10:"install-as";s:11:"peclcmd.php";s:12:"replacements";a:4:{i:0;a:3:{s:4:"from";s:9:"@php_bin@";s:2:"to";s:7:"php_bin";s:4:"type";s:11:"pear-config";}i:1;a:3:{s:4:"from";s:9:"@php_dir@";s:2:"to";s:7:"php_dir";s:4:"type";s:11:"pear-config";}i:2;a:3:{s:4:"from";s:14:"@pear_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}i:3;a:3:{s:4:"from";s:14:"@include_path@";s:2:"to";s:7:"php_dir";s:4:"type";s:11:"pear-config";}}s:12:"installed_as";s:50:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\peclcmd.php";}s:7:"INSTALL";a:3:{s:4:"role";s:3:"doc";s:14:"baseinstalldir";s:1:"/";s:12:"installed_as";s:56:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\PEAR\INSTALL";}s:11:"package.dtd";a:3:{s:4:"role";s:4:"data";s:14:"baseinstalldir";s:1:"/";s:12:"installed_as";s:60:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\data\PEAR\package.dtd";}s:13:"template.spec";a:3:{s:4:"role";s:4:"data";s:14:"baseinstalldir";s:1:"/";s:12:"installed_as";s:62:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\data\PEAR\template.spec";}s:8:"PEAR.php";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:1:"/";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:47:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR.php";}s:6:"README";a:3:{s:4:"role";s:3:"doc";s:14:"baseinstalldir";s:1:"/";s:12:"installed_as";s:55:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\PEAR\README";}s:10:"System.php";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:1:"/";s:12:"replacements";a:1:{i:0;a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}s:12:"installed_as";s:49:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\System.php";}}s:10:"xsdversion";s:3:"1.0";s:15:"packagerversion";s:8:"1.5.0RC3";s:7:"package";s:4:"PEAR";s:7:"summary";s:16:"PEAR Base System";s:11:"description";s:1254:"The PEAR package contains:
* the PEAR installer, for creating, distributing
and installing packages
* the PEAR_Exception PHP5 error handling mechanism
* the PEAR_ErrorStack advanced error handling mechanism
* the PEAR_Error error handling mechanism
* the OS_Guess class for retrieving info about the OS
where PHP is running on
* the System class for quick handling of common operations
with files and directories
* the PEAR base class
New features in a nutshell:
* full support for channels
* pre-download dependency validation
* new package.xml 2.0 format allows tremendous flexibility while maintaining BC
* support for optional dependency groups and limited support for sub-packaging
* robust dependency support
* full dependency validation on uninstall
* remote install for hosts with only ftp access - no more problems with
restricted host installation
* full support for mirroring
* support for bundling several packages into a single tarball
* support for static dependencies on a url-based package
* support for custom file roles and installation tasks
NOTE: users of PEAR_Frontend_Web/PEAR_Frontend_Gtk must upgrade their installations
to the latest version, or PEAR will not upgrade properly
";s:11:"maintainers";a:7:{i:0;a:4:{s:6:"handle";s:6:"cellog";s:4:"name";s:11:"Greg Beaver";s:5:"email";s:14:"cellog@php.net";s:4:"role";s:4:"lead";}i:1;a:4:{s:6:"handle";s:6:"pajoye";s:4:"name";s:17:"Pierre-Alain Joye";s:5:"email";s:14:"pierre@php.net";s:4:"role";s:4:"lead";}i:2;a:4:{s:6:"handle";s:3:"ssb";s:4:"name";s:11:"Stig Bakken";s:5:"email";s:12:"stig@php.net";s:4:"role";s:4:"lead";}i:3;a:4:{s:6:"handle";s:3:"cox";s:4:"name";s:13:"Tomas V.V.Cox";s:5:"email";s:15:"cox@idecnet.com";s:4:"role";s:4:"lead";}i:4;a:4:{s:6:"handle";s:4:"timj";s:4:"name";s:11:"Tim Jackson";s:5:"email";s:12:"timj@php.net";s:4:"role";s:6:"helper";}i:5;a:4:{s:6:"handle";s:5:"toggg";s:4:"name";s:15:"Bertrand Gugger";s:5:"email";s:13:"toggg@php.net";s:4:"role";s:6:"helper";}i:6;a:4:{s:6:"handle";s:2:"mj";s:4:"name";s:13:"Martin Jansen";s:5:"email";s:10:"mj@php.net";s:4:"role";s:6:"helper";}}s:7:"version";s:5:"1.5.0";s:12:"release_date";s:10:"2007-01-23";s:15:"release_license";s:11:"PHP License";s:13:"release_state";s:6:"stable";s:13:"release_notes";s:5090:"Minor feature addition release
The following bugs in 1.5.0RC3 were fixed:
* fix Bug #7941: Bogus error message when uninstalling subpackages
* fix Bug #9761: $php_errormsg not being filled properly
* fix Bug #9763: Upgrading PECL packages fails when chmoding .so
* fix Bug #9791: Warning: Wrong parameter count for
array_key_exists() in PEAR/Builder.php on li
* fix Bug #9824: pear install Structures_DataGrid#renderers recursion crash
* fix Bug #9825: install 2 opt groups leaves duplicate parent package
New features since 1.4.11:
* implement Request #3436: implement staticPop [PEAR_Error_Stack]
* implement Request #6396: add extension enabling in php.ini for 1.5.0
* implement Request #6614: use go-pear style dialogs in PEAR_Command_CLI by default
* implement Request #6702: implement TAP output option for run-tests command
(as defined by http://perldoc.perl.org/Test/Harness/TAP.html)
* implement Request #7090: PEAR_Downloader mustn't contact pear server
when installing local package file
* implement Request #7220: recognize deprecated package/channel and display to user
* implement Request #7352: add a README and an INSTALL by pear
* implement Request #7910: "Last Installed Version" should be
"Previous Installed Version"
* implement Request #7912: PEAR_Exception detect PEAR_Error as $message in
__construct()
* implement Request #8779: add package.xml 2.1 support for zend extensions
* implement Request #8827: add a yesno type handling for post-install scripts
* Structures_Graph is now a required dependency (1.0.2 or newer) for
sorting of dependencies upon installation
* update Archive_Tar recommended version to 1.3.2
* update Console_Getopt recommended version to 1.2.1
Bugs fixed since 1.4.11:
* fix Bug #6788: backtrace memory leak
* fix Bug #6931: pear upgrade PEAR-alpha tries to upgrade to 1.4.0a12
* fix Bug #7021: Everything must be within
* fix Bug #7196: PEAR crashes when using autoload_prepend_file
* fix Bug #7203: pecl install does not use the correct ext_dir
* fix Bug #7207: proxy user/pass is not urldecoded in download
* fix Bug #7219: bogus "will download PEAR 1.4.8" error
* fix Bug #7221: pear install blah-alpha won't install a newer stable
* fix Bug #7351: setting custom config variable in a channel fails
* fix Bug #7368: undefined function: getProvidesextension()
* fix Bug #7385: if post-install script or extension are present
and --packagingroot, fatal erro
* fix Bug #7419: Check inputs in PEAR_PackageFile_v2_rw
* fix Bug #7464: run-scripts causes notices
* fix Bug #7539: if a file has both install-as and ignore notices
* fix Bug #7726: dependency is broken
* fix Bug #7896: can't download packages, neither from cli or from web page.
* fix Bug #7931: hasErrors() with an error level has returned true after invoking pop().
* fix Bug #7940: pear download fails silently
* fix Bug #8254: downloading doesn't work with 302 messages
* fix Bug #8383: No exit code on errors
* fix Bug #8384: PEAR_PackageFile doesn't include error messages from Archive_Tar
* fix Bug #8516: PEAR_Config->get('preferred_mirror', null, 'non-pear.channel')
returns pear
* fix Bug #8617: pear download prints (-1 bytes) if no content-length
has been sent (Bjori, Pierre)
* fix Bug #8620: typo error in PEAR_PackageFile_v2::getConfigureOptions()
* fix Bug #8622: PFM2 - wrong php exclude version is not detected
* fix Bug #8519: typo in PEAR/Start.php OS_WINDOWS not WINDOWS
* fix Bug #8553: PEAR_Installer_Role_Common::processInstallation() does not honor layer
* fix Bug #8571: Sparse error message in registry
* fix Bug #8788: fatal error in Installer.php when task is not found
* fix Bug #8794: upgrade-all including Auth fails with fatal error
* fix Bug #9101: PEAR_Exception::getCauseMessage() failure with a
nested Exception (Adam Harvey)
* fix Bug #9135: pear bundle fails if php_dir is not writeable
* fix Bug #9182: can't add versioning to conflicting deps in PEAR_PF_v2_rw
* fix Bug #9206: PEAR package info is not retrieved correctly for package
with single release
* fix Bug #9208: Typo error on abstract PEAR_Task_Common::validXml() method
* fix Bug #9280: cannot install with --packagingroot package from non-php.net channel
* fix Bug #9307: Validator generates warning on empty tag
* fix Bug #9355: Bug in GLIBC detection (OS/Guess.php), patch proposal
* fix Bug #9551: listing packages in pear.geeklog.net fails
* fix Bug #9660: dependency sorting on installation does not always work
* fix Bug #9688: [PATCH] Fix build of PECL extensions
* fix Bug #9695: sgl-list-all command problem
* fix Bug #9712: pear uninstall --register-only remove file : it should not
* fix Bug #9757: pear does not validate -d input (pear -d php_dir=whatever command)
* fix shell-test command with invalid usage (noticed by Christian Weiske)
* fix notice when running "pear sign" (noticed by Christian Weiske)
";s:12:"release_deps";a:10:{i:1;a:3:{s:4:"type";s:3:"php";s:3:"rel";s:2:"ge";s:7:"version";s:5:"4.3.0";}i:2;a:4:{s:4:"type";s:3:"pkg";s:3:"rel";s:2:"ge";s:7:"version";s:5:"1.3.3";s:4:"name";s:4:"PEAR";}i:3;a:4:{s:4:"type";s:3:"pkg";s:3:"rel";s:2:"ge";s:7:"version";s:5:"1.3.1";s:4:"name";s:11:"Archive_Tar";}i:4;a:4:{s:4:"type";s:3:"pkg";s:3:"rel";s:2:"ge";s:7:"version";s:3:"1.2";s:4:"name";s:14:"Console_Getopt";}i:5;a:4:{s:4:"type";s:3:"pkg";s:3:"rel";s:2:"ge";s:7:"version";s:5:"1.0.2";s:4:"name";s:16:"Structures_Graph";}i:6;a:5:{s:4:"type";s:3:"pkg";s:3:"rel";s:2:"ge";s:7:"version";s:5:"1.4.0";s:8:"optional";s:3:"yes";s:4:"name";s:7:"XML_RPC";}i:7;a:5:{s:4:"type";s:3:"pkg";s:3:"rel";s:2:"ge";s:7:"version";s:5:"0.5.0";s:8:"optional";s:3:"yes";s:4:"name";s:17:"PEAR_Frontend_Web";}i:8;a:5:{s:4:"type";s:3:"pkg";s:3:"rel";s:2:"ge";s:7:"version";s:5:"0.4.0";s:8:"optional";s:3:"yes";s:4:"name";s:17:"PEAR_Frontend_Gtk";}i:9;a:3:{s:4:"type";s:3:"ext";s:3:"rel";s:3:"has";s:4:"name";s:3:"xml";}i:10;a:3:{s:4:"type";s:3:"ext";s:3:"rel";s:3:"has";s:4:"name";s:4:"pcre";}}s:9:"changelog";a:4:{i:0;a:5:{s:7:"version";s:7:"1.5.0a1";s:12:"release_date";s:10:"2006-09-30";s:15:"release_license";s:11:"PHP License";s:13:"release_state";s:5:"alpha";s:13:"release_notes";s:2831:"Minor feature addition/bugfixes
* fix Bug #6788: backtrace memory leak
* fix Bug #6931: pear upgrade PEAR-alpha tries to upgrade to 1.4.0a12
* fix Bug #7021: Everything must be within
* fix Bug #7196: PEAR crashes when using autoload_prepend_file
* fix Bug #7203: pecl install does not use the correct ext_dir
* fix Bug #7207: proxy user/pass is not urldecoded in download
* fix Bug #7219: bogus "will download PEAR 1.4.8" error
* fix Bug #7221: pear install blah-alpha won't install a newer stable
* fix Bug #7351: setting custom config variable in a channel fails
* fix Bug #7368: undefined function: getProvidesextension()
* fix Bug #7385: if post-install script or extension are present
and --packagingroot, fatal erro
* fix Bug #7419: Check inputs in PEAR_PackageFile_v2_rw
* fix Bug #7464: run-scripts causes notices
* fix Bug #7539: if a file has both install-as and ignore notices
* fix Bug #7726: dependency is broken
* fix Bug #7896: can't download packages, neither from cli or from web page.
* fix Bug #7931: hasErrors() with an error level has returned true after invoking pop().
* fix Bug #7940: pear download fails silently
* fix Bug #8254: downloading doesn't work with 302 messages
* fix Bug #8383: No exit code on errors
* fix Bug #8384: PEAR_PackageFile doesn't include error messages from Archive_Tar
* fix Bug #8516: PEAR_Config->get('preferred_mirror', null, 'non-pear.channel')
returns pear
* fix Bug #8617: pear download prints (-1 bytes) if no content-length
has been sent (Bjori, Pierre)
* fix Bug #8620: typo error in PEAR_PackageFile_v2::getConfigureOptions()
* fix Bug #8622: PFM2 - wrong php exclude version is not detected
* fix Bug #8519: typo in PEAR/Start.php OS_WINDOWS not WINDOWS
* fix Bug #8571: Sparse error message in registry
* fix Bug #8788: fatal error in Installer.php when task is not found
* implement Request #3436: implement staticPop [PEAR_Error_Stack]
* implement Request #6396: add extension enabling in php.ini for 1.5.0
* implement Request #6614: use go-pear style dialogs in PEAR_Command_CLI by default
* implement Request #6702: implement TAP output option for run-tests command
(as defined by http://perldoc.perl.org/Test/Harness/TAP.html)
* implement Request #7090: PEAR_Downloader mustn't contact pear server
when installing local package file
* implement Request #7220: recognize deprecated package/channel and display to user
* implement Request #7352: add a README and an INSTALL by pear
* implement Request #7910: "Last Installed Version" should be
"Previous Installed Version"
* implement Request #7912: PEAR_Exception detect PEAR_Error as $message in
__construct()
* implement Request #8779: add package.xml 2.1 support for zend extensions
";}i:1;a:5:{s:7:"version";s:8:"1.5.0RC1";s:12:"release_date";s:10:"2006-11-27";s:15:"release_license";s:11:"PHP License";s:13:"release_state";s:4:"beta";s:13:"release_notes";s:1109:"Minor feature addition, freeze API and prepare for 1.5.0 stable
* fix Bug #8553: PEAR_Installer_Role_Common::processInstallation() does not honor layer
* fix Bug #8794: upgrade-all including Auth fails with fatal error
* fix Bug #9101: PEAR_Exception::getCauseMessage() failure with a
nested Exception (Adam Harvey)
* fix Bug #9135: pear bundle fails if php_dir is not writeable
* fix Bug #9182: can't add versioning to conflicting deps in PEAR_PF_v2_rw
* fix Bug #9206: PEAR package info is not retrieved correctly for package
with single release
* fix Bug #9208: Typo error on abstract PEAR_Task_Common::validXml() method
* fix Bug #9280: cannot install with --packagingroot package from non-php.net channel
* fix Bug #9307: Validator generates warning on empty tag
* fix Bug #9355: Bug in GLIBC detection (OS/Guess.php), patch proposal
* fix shell-test command with invalid usage (noticed by Christian Weiske)
* fix notice when running "pear sign" (noticed by Christian Weiske)
* implement Request #8827: add a yesno type handling for post-install scripts
";}i:2;a:5:{s:7:"version";s:8:"1.5.0RC2";s:12:"release_date";s:10:"2006-12-14";s:15:"release_license";s:11:"PHP License";s:13:"release_state";s:4:"beta";s:13:"release_notes";s:111:"* fully fix Bug #9355: Bug in GLIBC detection
* fix Bug #9551: listing packages in pear.geeklog.net fails
";}i:3;a:5:{s:7:"version";s:8:"1.5.0RC3";s:12:"release_date";s:10:"2007-01-07";s:15:"release_license";s:11:"PHP License";s:13:"release_state";s:4:"beta";s:13:"release_notes";s:554:"* Structures_Graph is now a required dependency (1.0.2 or newer) for
sorting of dependencies upon installation
* update Archive_Tar recommended version to 1.3.2
* update Console_Getopt recommended version to 1.2.1
* fix Bug #9660: dependency sorting on installation does not always work
* fix Bug #9688: [PATCH] Fix build of PECL extensions
* fix Bug #9695: sgl-list-all command problem
* fix Bug #9712: pear uninstall --register-only remove file : it should not
* fix Bug #9757: pear does not validate -d input (pear -d php_dir=whatever command)
";}}s:12:"_lastversion";s:5:"1.5.0";s:7:"dirtree";a:42:{s:41:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\OS";b:1;s:41:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\OS";b:1;s:55:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\ChannelFile";b:1;s:55:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\PEAR\ChannelFile";b:1;s:43:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\PEAR";b:1;s:51:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Command";b:1;s:51:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\PEAR\Command";b:1;s:54:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Downloader";b:1;s:54:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\PEAR\Downloader";b:1;s:52:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend";b:1;s:52:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\PEAR\Frontend";b:1;s:58:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Installer\Role";b:1;s:58:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\PEAR\Installer\Role";b:1;s:53:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\PEAR\Installer";b:1;s:53:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Installer";b:1;s:65:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\PackageFile\Generator";b:1;s:65:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\PEAR\PackageFile\Generator";b:1;s:55:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\PEAR\PackageFile";b:1;s:62:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\PackageFile\Parser";b:1;s:62:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\PEAR\PackageFile\Parser";b:1;s:58:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\PackageFile\v2";b:1;s:58:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\PEAR\PackageFile\v2";b:1;s:55:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\PackageFile";b:1;s:48:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\REST";b:1;s:48:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\PEAR\REST";b:1;s:66:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Task\Postinstallscript";b:1;s:66:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\PEAR\Task\Postinstallscript";b:1;s:48:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\PEAR\Task";b:1;s:56:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Task\Replace";b:1;s:56:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\PEAR\Task\Replace";b:1;s:56:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Task\Unixeol";b:1;s:56:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\PEAR\Task\Unixeol";b:1;s:59:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Task\Windowseol";b:1;s:59:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\PEAR\Task\Windowseol";b:1;s:48:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Task";b:1;s:53:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Validator";b:1;s:53:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\PEAR\Validator";b:1;s:43:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR";b:1;s:33:"D:\Apache2\htdocs\tshirtshop\libs";b:1;s:38:"D:\Apache2\htdocs\tshirtshop\libs\PEAR";b:1;s:48:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\PEAR";b:1;s:48:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\data\PEAR";b:1;}s:13:"_lastmodified";i:1171608471;} catalog/libs/PEAR/.registry/pear_frontend_web.reg 0000644 5773401 0100224 00000036245 10625427741 023767 0 ustar tonerlogics pg116757 0000000 0000000 a:18:{s:8:"provides";a:19:{s:23:"class;PEAR_Frontend_Web";a:4:{s:4:"type";s:5:"class";s:4:"name";s:17:"PEAR_Frontend_Web";s:7:"extends";s:13:"PEAR_Frontend";s:8:"explicit";b:1;}s:37:"function;PEAR_Frontend_Web::setConfig";a:3:{s:4:"type";s:8:"function";s:4:"name";s:28:"PEAR_Frontend_Web::setConfig";s:8:"explicit";b:1;}s:39:"function;PEAR_Frontend_Web::displayLine";a:3:{s:4:"type";s:8:"function";s:4:"name";s:30:"PEAR_Frontend_Web::displayLine";s:8:"explicit";b:1;}s:35:"function;PEAR_Frontend_Web::display";a:3:{s:4:"type";s:8:"function";s:4:"name";s:26:"PEAR_Frontend_Web::display";s:8:"explicit";b:1;}s:39:"function;PEAR_Frontend_Web::userConfirm";a:3:{s:4:"type";s:8:"function";s:4:"name";s:30:"PEAR_Frontend_Web::userConfirm";s:8:"explicit";b:1;}s:40:"function;PEAR_Frontend_Web::displayStart";a:3:{s:4:"type";s:8:"function";s:4:"name";s:31:"PEAR_Frontend_Web::displayStart";s:8:"explicit";b:1;}s:40:"function;PEAR_Frontend_Web::displayError";a:3:{s:4:"type";s:8:"function";s:4:"name";s:31:"PEAR_Frontend_Web::displayError";s:8:"explicit";b:1;}s:45:"function;PEAR_Frontend_Web::displayFatalError";a:3:{s:4:"type";s:8:"function";s:4:"name";s:36:"PEAR_Frontend_Web::displayFatalError";s:8:"explicit";b:1;}s:43:"function;PEAR_Frontend_Web::displayErrorImg";a:3:{s:4:"type";s:8:"function";s:4:"name";s:34:"PEAR_Frontend_Web::displayErrorImg";s:8:"explicit";b:1;}s:38:"function;PEAR_Frontend_Web::outputData";a:3:{s:4:"type";s:8:"function";s:4:"name";s:29:"PEAR_Frontend_Web::outputData";s:8:"explicit";b:1;}s:40:"function;PEAR_Frontend_Web::startSession";a:3:{s:4:"type";s:8:"function";s:4:"name";s:31:"PEAR_Frontend_Web::startSession";s:8:"explicit";b:1;}s:40:"function;PEAR_Frontend_Web::finishOutput";a:3:{s:4:"type";s:8:"function";s:4:"name";s:31:"PEAR_Frontend_Web::finishOutput";s:8:"explicit";b:1;}s:49:"function;PEAR_Frontend_Web::runPostinstallScripts";a:3:{s:4:"type";s:8:"function";s:4:"name";s:40:"PEAR_Frontend_Web::runPostinstallScripts";s:8:"explicit";b:1;}s:42:"function;PEAR_Frontend_Web::skipParamgroup";a:3:{s:4:"type";s:8:"function";s:4:"name";s:33:"PEAR_Frontend_Web::skipParamgroup";s:8:"explicit";b:1;}s:44:"function;PEAR_Frontend_Web::runInstallScript";a:3:{s:4:"type";s:8:"function";s:4:"name";s:35:"PEAR_Frontend_Web::runInstallScript";s:8:"explicit";b:1;}s:41:"function;PEAR_Frontend_Web::confirmDialog";a:3:{s:4:"type";s:8:"function";s:4:"name";s:32:"PEAR_Frontend_Web::confirmDialog";s:8:"explicit";b:1;}s:38:"function;PEAR_Frontend_Web::userDialog";a:3:{s:4:"type";s:8:"function";s:4:"name";s:29:"PEAR_Frontend_Web::userDialog";s:8:"explicit";b:1;}s:31:"function;PEAR_Frontend_Web::log";a:3:{s:4:"type";s:8:"function";s:4:"name";s:22:"PEAR_Frontend_Web::log";s:8:"explicit";b:1;}s:46:"function;PEAR_Frontend_Web::outputFrontendFile";a:3:{s:4:"type";s:8:"function";s:4:"name";s:37:"PEAR_Frontend_Web::outputFrontendFile";s:8:"explicit";b:1;}}s:8:"filelist";a:38:{s:16:"WebInstaller.php";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"3fc68406519a99e5156d1d24a4771e34";s:12:"installed_as";s:60:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\WebInstaller.php";}s:16:"Frontend/Web.php";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"45a6f10f93d1da4be088c0d0d21350b3";s:12:"installed_as";s:60:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web.php";}s:23:"Frontend/Web/config.gif";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"89fbaf12b03630cde8fab8f582a2013e";s:12:"installed_as";s:67:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web\config.gif";}s:25:"Frontend/Web/download.gif";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"917c5480d7887a45fb7ee9e75ffdc90f";s:12:"installed_as";s:69:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web\download.gif";}s:22:"Frontend/Web/error.gif";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"b7910926d28d2174f766edcd5b0203f3";s:12:"installed_as";s:66:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web\error.gif";}s:21:"Frontend/Web/info.gif";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"a9fd915f941d8b2767a86a7b86c1157d";s:12:"installed_as";s:65:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web\info.gif";}s:25:"Frontend/Web/infoplus.gif";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"25ea72ec541af2d75e1c6084bb51c799";s:12:"installed_as";s:69:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web\infoplus.gif";}s:24:"Frontend/Web/install.gif";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"bf40b1ad414777f2ec1ffd8f49db8cb8";s:12:"installed_as";s:68:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web\install.gif";}s:29:"Frontend/Web/install_fail.gif";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"3d5ed1a26b7ba8c9d144d289e40359dd";s:12:"installed_as";s:73:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web\install_fail.gif";}s:27:"Frontend/Web/install_ok.gif";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"b1bd4bab6452562b624834691a2537c6";s:12:"installed_as";s:71:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web\install_ok.gif";}s:29:"Frontend/Web/install_wait.gif";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"7b0098f037a686f02b925333a30161e9";s:12:"installed_as";s:73:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web\install_wait.gif";}s:22:"Frontend/Web/login.gif";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"06f6632208ac488b25c582100d97d03d";s:12:"installed_as";s:66:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web\login.gif";}s:23:"Frontend/Web/logout.gif";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"b6ec4b263faa470ff1150637b0d7c63e";s:12:"installed_as";s:67:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web\logout.gif";}s:23:"Frontend/Web/manual.gif";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"5ba6a3c23adbac610cc2d5059402a0d2";s:12:"installed_as";s:67:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web\manual.gif";}s:26:"Frontend/Web/pearsmall.gif";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"1f0ca8116ffeafac272a3f1a8325e408";s:12:"installed_as";s:70:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web\pearsmall.gif";}s:22:"Frontend/Web/trash.gif";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"5c897611197c28498c03da298e5558d7";s:12:"installed_as";s:66:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web\trash.gif";}s:24:"Frontend/Web/package.jpg";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"a059eafc2fb95b0ca42977e29d391cff";s:12:"installed_as";s:68:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web\package.jpg";}s:25:"Frontend/Web/category.jpg";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"77605580daff87d2ea0855db327aab3c";s:12:"installed_as";s:69:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web\category.jpg";}s:24:"Frontend/Web/pkglist.png";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"3bed4b639af3ba0b136c0201ac505a7b";s:12:"installed_as";s:68:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web\pkglist.png";}s:26:"Frontend/Web/pkgsearch.png";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"7f8ff108546c678f59f6b8c88ab43c92";s:12:"installed_as";s:70:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web\pkgsearch.png";}s:22:"Frontend/Web/style.css";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"d305a1953c27a074c245603aab0666af";s:12:"installed_as";s:66:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web\style.css";}s:22:"Frontend/Web/dhtml.css";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"0a6b2a4e941c8229b3070b3e24cc9a39";s:12:"installed_as";s:66:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web\dhtml.css";}s:21:"Frontend/Web/dhtml.js";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"25d19b42fd0dd1434b331b7197039733";s:12:"installed_as";s:65:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web\dhtml.js";}s:23:"Frontend/Web/nodhtml.js";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"83392507cc422df1b57ee7c383d3706d";s:12:"installed_as";s:67:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web\nodhtml.js";}s:32:"Frontend/Web/bottom.inc.tpl.html";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"13eecadf30a737dc9fa71deb6c9994b5";s:12:"installed_as";s:76:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web\bottom.inc.tpl.html";}s:34:"Frontend/Web/channel.info.tpl.html";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"6c0fbe65f855ba51bba40e2d1242c1f4";s:12:"installed_as";s:78:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web\channel.info.tpl.html";}s:34:"Frontend/Web/channel.list.tpl.html";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"d5afa67d3361db5ba5fbddc2a7469bed";s:12:"installed_as";s:78:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web\channel.list.tpl.html";}s:33:"Frontend/Web/error.popup.tpl.html";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"06563e065a5601403bd3ab0d268e8711";s:12:"installed_as";s:77:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web\error.popup.tpl.html";}s:27:"Frontend/Web/error.tpl.html";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"18f41fcd2e3cd6ddb4e1ca1a4592eb6d";s:12:"installed_as";s:71:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web\error.tpl.html";}s:32:"Frontend/Web/footer.inc.tpl.html";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"4d214dd44eaca17a5b8c100a0cee7ebc";s:12:"installed_as";s:76:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web\footer.inc.tpl.html";}s:32:"Frontend/Web/header.inc.tpl.html";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"700fe24d300daea65e89da7aff494e70";s:12:"installed_as";s:76:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web\header.inc.tpl.html";}s:26:"Frontend/Web/info.tpl.html";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"885b1c72febb4ab63fee4614a1b67b2d";s:12:"installed_as";s:70:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web\info.tpl.html";}s:34:"Frontend/Web/package.info.tpl.html";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"92e8cc6e41243f5e93ce828bfe28e9a5";s:12:"installed_as";s:78:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web\package.info.tpl.html";}s:34:"Frontend/Web/package.list.tpl.html";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"78fecd1689673297260090c2810f7723";s:12:"installed_as";s:78:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web\package.list.tpl.html";}s:27:"Frontend/Web/start.tpl.html";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"ad8444920426a7565fc720517882051c";s:12:"installed_as";s:71:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web\start.tpl.html";}s:29:"Frontend/Web/top.inc.tpl.html";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"e196e59a33eb6fa48b6b28c3320cba0a";s:12:"installed_as";s:73:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web\top.inc.tpl.html";}s:32:"Frontend/Web/userDialog.tpl.html";a:4:{s:4:"role";s:3:"php";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"ae504f0df333244b4085e4eb229e5a11";s:12:"installed_as";s:76:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web\userDialog.tpl.html";}s:16:"docs/example.php";a:5:{s:4:"role";s:3:"doc";s:14:"baseinstalldir";s:4:"PEAR";s:6:"md5sum";s:32:"ae87762a71b6aa0c11c6c398f5235748";s:12:"replacements";a:5:{i:0;a:3:{s:4:"from";s:9:"@php_bin@";s:2:"to";s:7:"php_bin";s:4:"type";s:11:"pear-config";}i:1;a:3:{s:4:"from";s:9:"@bin_dir@";s:2:"to";s:7:"bin_dir";s:4:"type";s:11:"pear-config";}i:2;a:3:{s:4:"from";s:9:"@php_dir@";s:2:"to";s:7:"php_dir";s:4:"type";s:11:"pear-config";}i:3;a:3:{s:4:"from";s:14:"@pear_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}i:4;a:3:{s:4:"from";s:14:"@include_path@";s:2:"to";s:7:"php_dir";s:4:"type";s:11:"pear-config";}}s:12:"installed_as";s:78:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\PEAR_Frontend_Web\docs\example.php";}}s:10:"xsdversion";s:3:"1.0";s:15:"packagerversion";s:5:"1.4.9";s:7:"package";s:17:"PEAR_Frontend_Web";s:7:"summary";s:25:"HTML (Web) PEAR Installer";s:11:"description";s:38:"Web Interface to the PEAR Installer
";s:11:"maintainers";a:4:{i:0;a:4:{s:6:"handle";s:8:"dickmann";s:4:"name";s:18:"Christian Dickmann";s:5:"email";s:16:"dickmann@php.net";s:4:"role";s:4:"lead";}i:1;a:4:{s:6:"handle";s:6:"pajoye";s:4:"name";s:17:"Pierre-Alain Joye";s:5:"email";s:17:"pajoye@pearfr.org";s:4:"role";s:4:"lead";}i:2;a:4:{s:6:"handle";s:6:"cellog";s:4:"name";s:14:"Gregory Beaver";s:5:"email";s:14:"cellog@php.net";s:4:"role";s:9:"developer";}i:3;a:4:{s:6:"handle";s:3:"ssb";s:4:"name";s:11:"Stig Bakken";s:5:"email";s:12:"stig@php.net";s:4:"role";s:6:"helper";}}s:7:"version";s:5:"0.5.1";s:12:"release_date";s:10:"2006-04-18";s:15:"release_license";s:11:"PHP License";s:13:"release_state";s:5:"alpha";s:13:"release_notes";s:210:"- #6995 missing require_once in Web.php
- #6993 prevents large response time, create the cache_dir
if it does not exist
- #7319, bad display of errors when the install cmd failed
- remove Pager dependency
";s:12:"release_deps";a:3:{i:1;a:3:{s:4:"type";s:3:"pkg";s:3:"rel";s:3:"has";s:4:"name";s:20:"Net_UserAgent_Detect";}i:2;a:3:{s:4:"type";s:3:"pkg";s:3:"rel";s:3:"has";s:4:"name";s:16:"HTML_Template_IT";}i:3;a:4:{s:4:"type";s:3:"pkg";s:3:"rel";s:2:"ge";s:7:"version";s:5:"1.4.6";s:4:"name";s:4:"PEAR";}}s:9:"changelog";a:3:{i:0;a:3:{s:7:"version";s:5:"0.5.0";s:12:"release_date";s:10:"2005-03-02";s:13:"release_notes";s:117:"Major features addition: channel support
Also, support for post-install scripts on install, and package.xml 2.0
";}i:1;a:3:{s:7:"version";s:3:"0.3";s:12:"release_date";s:10:"2003-05-28";s:13:"release_notes";s:144:"Bugfixes release:
- Fix a bug while using both CLI and Web installer
(Invalid characters, bug #23516)
- Installs correctly the CLI tools
";}i:2;a:3:{s:7:"version";s:3:"0.4";s:12:"release_date";s:10:"2003-06-07";s:13:"release_notes";s:185:"Bugfixes release:
- Remove Pager dep
- Should work well on non apache system (ie IIS)
- The 'installed packages' is now the entry page
(no more remote connection during startup)
";}}s:12:"_lastversion";s:5:"0.5.1";s:7:"dirtree";a:8:{s:43:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR";b:1;s:43:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\PEAR";b:1;s:52:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend";b:1;s:52:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\PEAR\Frontend";b:1;s:56:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\PEAR\Frontend\Web";b:1;s:56:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\PEAR\Frontend\Web";b:1;s:66:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\PEAR_Frontend_Web\docs";b:1;s:66:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\docs\PEAR_Frontend_Web\docs";b:1;}s:13:"_lastmodified";i:1171608484;} catalog/libs/PEAR/.registry/structures_graph.reg 0000644 5773401 0100224 00000052460 10625427742 023706 0 ustar tonerlogics pg116757 0000000 0000000 a:22:{s:7:"attribs";a:6:{s:15:"packagerversion";s:5:"1.5.0";s:7:"version";s:3:"2.0";s:5:"xmlns";s:35:"http://pear.php.net/dtd/package-2.0";s:11:"xmlns:tasks";s:33:"http://pear.php.net/dtd/tasks-1.0";s:9:"xmlns:xsi";s:41:"http://www.w3.org/2001/XMLSchema-instance";s:18:"xsi:schemaLocation";s:159:"http://pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 http://pear.php.net/dtd/package-2.0.xsd";}s:4:"name";s:16:"Structures_Graph";s:7:"channel";s:12:"pear.php.net";s:7:"summary";s:40:"Graph datastructure manipulation library";s:11:"description";s:293:"Structures_Graph is a package for creating and manipulating graph datastructures. It allows building of directed
and undirected graphs, with data and metadata stored in nodes. The library provides functions for graph traversing
as well as for characteristic extraction from the graph topology.";s:4:"lead";a:4:{s:4:"name";s:16:"Sérgio Carvalho";s:4:"user";s:9:"sergiosgc";s:5:"email";s:32:"sergio.carvalho@portugalmail.com";s:6:"active";s:3:"yes";}s:4:"date";s:10:"2007-02-01";s:4:"time";s:8:"17:45:32";s:7:"version";a:2:{s:7:"release";s:5:"1.0.2";s:3:"api";s:5:"1.0.0";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:47:"http://opensource.org/licenses/lgpl-license.php";}s:8:"_content";s:4:"LGPL";}s:5:"notes";s:130:"- Bug #9682 only variables can be returned by reference
- fix Bug #9661 notice in Structures_Graph_Manipulator_Topological::sort()";s:8:"contents";a:1:{s:3:"dir";a:2:{s:7:"attribs";a:2:{s:14:"baseinstalldir";s:0:"";s:4:"name";s:1:"/";}s:4:"file";a:32:{i:0;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"039cb8781dae7b5f5661dc2892fb53b5";s:4:"name";s:26:"docs/html/media/banner.css";s:4:"role";s:3:"doc";}}i:1;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"8ff124484e8a009f94a8d0b4d9b8b1cd";s:4:"name";s:30:"docs/html/media/stylesheet.css";s:4:"role";s:3:"doc";}}i:2;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"a17210dd27171316f5cb446a5bef59ab";s:4:"name";s:48:"docs/html/Structures_Graph/Structures_Graph.html";s:4:"role";s:3:"doc";}}i:3;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"1ed0ac55530b7504c00df35f335e7ef3";s:4:"name";s:72:"docs/html/Structures_Graph/Structures_Graph_Manipulator_AcyclicTest.html";s:4:"role";s:3:"doc";}}i:4;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"fefb65755d57a87d2736e058a1095b03";s:4:"name";s:78:"docs/html/Structures_Graph/Structures_Graph_Manipulator_TopologicalSorter.html";s:4:"role";s:3:"doc";}}i:5;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"afb0e3afb91beafd1bc16a07ac31c826";s:4:"name";s:53:"docs/html/Structures_Graph/Structures_Graph_Node.html";s:4:"role";s:3:"doc";}}i:6;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"3fa477998b281061361c4d98fb78c3a8";s:4:"name";s:61:"docs/html/Structures_Graph/tutorial_Structures_Graph.pkg.html";s:4:"role";s:3:"doc";}}i:7;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"c46e6566be5249811667ddc7decf405f";s:4:"name";s:77:"docs/html/Structures_Graph/_Structures_Graph_Manipulator_AcyclicTest_php.html";s:4:"role";s:3:"doc";}}i:8;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"c45890d45dd42dc56adb71988c3a45c1";s:4:"name";s:83:"docs/html/Structures_Graph/_Structures_Graph_Manipulator_TopologicalSorter_php.html";s:4:"role";s:3:"doc";}}i:9;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"09cb6d17f96553bfb66b99c502676844";s:4:"name";s:58:"docs/html/Structures_Graph/_Structures_Graph_Node_php.html";s:4:"role";s:3:"doc";}}i:10;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"78e1e7ec43a6e754cf4d5dace48fe18c";s:4:"name";s:53:"docs/html/Structures_Graph/_Structures_Graph_php.html";s:4:"role";s:3:"doc";}}i:11;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"d0ada99c3b7e95b23461cc3e713f0c3d";s:4:"name";s:42:"docs/html/classtrees_Structures_Graph.html";s:4:"role";s:3:"doc";}}i:12;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"898dd26ccc1c1572d36e9879afcb5d39";s:4:"name";s:27:"docs/html/elementindex.html";s:4:"role";s:3:"doc";}}i:13;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"19dd287d44163d2abde1a1d8d52521f8";s:4:"name";s:44:"docs/html/elementindex_Structures_Graph.html";s:4:"role";s:3:"doc";}}i:14;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"ae809f6ebbf632351648c340d2d6acd4";s:4:"name";s:21:"docs/html/errors.html";s:4:"role";s:3:"doc";}}i:15;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"db3206e7d176ae78fd04f22acead5ffa";s:4:"name";s:20:"docs/html/index.html";s:4:"role";s:3:"doc";}}i:16;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"4ec087627323546610b64d69a6aafca6";s:4:"name";s:34:"docs/html/li_Structures_Graph.html";s:4:"role";s:3:"doc";}}i:17;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"005081a4c5d60afcbabc1f4909ebfcad";s:4:"name";s:23:"docs/html/packages.html";s:4:"role";s:3:"doc";}}i:18;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"a7a1b748bbda6dfa1632bf6078fc8bb6";s:4:"name";s:23:"docs/html/todolist.html";s:4:"role";s:3:"doc";}}i:19;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"628eb6532a8047bf5962fe24c1c245df";s:4:"name";s:52:"docs/tutorials/Structures_Graph/Structures_Graph.pkg";s:4:"role";s:3:"doc";}}i:20;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"ce2da39dbb75e21074eb5e96231a3379";s:4:"name";s:16:"docs/generate.sh";s:4:"role";s:3:"doc";}}i:21;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"f0aff5a1efd188d63b4b8b9e9e840b97";s:4:"name";s:44:"Structures/Graph/Manipulator/AcyclicTest.php";s:4:"role";s:3:"php";}}i:22;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"0492e677436d29228df93dca23629e06";s:4:"name";s:50:"Structures/Graph/Manipulator/TopologicalSorter.php";s:4:"role";s:3:"php";}}i:23;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"7e28e01ebfa273e5df2eb1ef7a356635";s:4:"name";s:25:"Structures/Graph/Node.php";s:4:"role";s:3:"php";}}i:24;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"4f25a6275af156f6f8e7b4309cb9f40d";s:4:"name";s:20:"Structures/Graph.php";s:4:"role";s:3:"php";}}i:25;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"63dfc6f0f14e18c13d8a8415c3fe049d";s:4:"name";s:29:"tests/testCase/BasicGraph.php";s:4:"role";s:4:"test";}}i:26;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"1b9e35896d229b84601e6754cd44e339";s:4:"name";s:19:"tests/all-tests.php";s:4:"role";s:4:"test";}}i:27;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"d41d8cd98f00b204e9800998ecf8427e";s:4:"name";s:12:"tests/README";s:4:"role";s:4:"test";}}i:28;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"ab23406ec7bfbb2029ca536378ff57db";s:4:"name";s:17:"genpackage.xml.pl";s:4:"role";s:4:"data";}}i:29;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"7fbc338309ac38fefcd64b04bb903e34";s:4:"name";s:7:"LICENSE";s:4:"role";s:4:"data";}}i:30;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"6e782f281c7d0ce27e54b574247073cb";s:4:"name";s:10:"package.sh";s:4:"role";s:4:"data";}}i:31;a:1:{s:7:"attribs";a:4:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"b81f67f7b5600231735243be73625e54";s:4:"name";s:10:"publish.sh";s:4:"role";s:4:"data";}}}}}s:12:"dependencies";a:1:{s:8:"required";a:2:{s:3:"php";a:1:{s:3:"min";s:5:"4.2.0";}s:13:"pearinstaller";a:1:{s:3:"min";s:5:"1.4.3";}}}s:10:"phprelease";s:0:"";s:9:"changelog";a:1:{s:7:"release";a:5:{s:7:"version";a:2:{s:7:"release";s:5:"1.0.2";s:3:"api";s:5:"1.0.0";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2007-01-07";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:47:"http://opensource.org/licenses/lgpl-license.php";}s:8:"_content";s:4:"LGPL";}s:5:"notes";s:130:"- Bug #9682 only variables can be returned by reference
- fix Bug #9661 notice in Structures_Graph_Manipulator_Topological::sort()";}}s:8:"filelist";a:32:{s:26:"docs/html/media/banner.css";a:5:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"039cb8781dae7b5f5661dc2892fb53b5";s:4:"name";s:26:"docs/html/media/banner.css";s:4:"role";s:3:"doc";s:12:"installed_as";s:87:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\Structures_Graph\docs\html\media\banner.css";}s:30:"docs/html/media/stylesheet.css";a:5:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"8ff124484e8a009f94a8d0b4d9b8b1cd";s:4:"name";s:30:"docs/html/media/stylesheet.css";s:4:"role";s:3:"doc";s:12:"installed_as";s:91:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\Structures_Graph\docs\html\media\stylesheet.css";}s:48:"docs/html/Structures_Graph/Structures_Graph.html";a:5:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"a17210dd27171316f5cb446a5bef59ab";s:4:"name";s:48:"docs/html/Structures_Graph/Structures_Graph.html";s:4:"role";s:3:"doc";s:12:"installed_as";s:109:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\Structures_Graph\docs\html\Structures_Graph\Structures_Graph.html";}s:72:"docs/html/Structures_Graph/Structures_Graph_Manipulator_AcyclicTest.html";a:5:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"1ed0ac55530b7504c00df35f335e7ef3";s:4:"name";s:72:"docs/html/Structures_Graph/Structures_Graph_Manipulator_AcyclicTest.html";s:4:"role";s:3:"doc";s:12:"installed_as";s:133:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\Structures_Graph\docs\html\Structures_Graph\Structures_Graph_Manipulator_AcyclicTest.html";}s:78:"docs/html/Structures_Graph/Structures_Graph_Manipulator_TopologicalSorter.html";a:5:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"fefb65755d57a87d2736e058a1095b03";s:4:"name";s:78:"docs/html/Structures_Graph/Structures_Graph_Manipulator_TopologicalSorter.html";s:4:"role";s:3:"doc";s:12:"installed_as";s:139:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\Structures_Graph\docs\html\Structures_Graph\Structures_Graph_Manipulator_TopologicalSorter.html";}s:53:"docs/html/Structures_Graph/Structures_Graph_Node.html";a:5:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"afb0e3afb91beafd1bc16a07ac31c826";s:4:"name";s:53:"docs/html/Structures_Graph/Structures_Graph_Node.html";s:4:"role";s:3:"doc";s:12:"installed_as";s:114:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\Structures_Graph\docs\html\Structures_Graph\Structures_Graph_Node.html";}s:61:"docs/html/Structures_Graph/tutorial_Structures_Graph.pkg.html";a:5:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"3fa477998b281061361c4d98fb78c3a8";s:4:"name";s:61:"docs/html/Structures_Graph/tutorial_Structures_Graph.pkg.html";s:4:"role";s:3:"doc";s:12:"installed_as";s:122:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\Structures_Graph\docs\html\Structures_Graph\tutorial_Structures_Graph.pkg.html";}s:77:"docs/html/Structures_Graph/_Structures_Graph_Manipulator_AcyclicTest_php.html";a:5:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"c46e6566be5249811667ddc7decf405f";s:4:"name";s:77:"docs/html/Structures_Graph/_Structures_Graph_Manipulator_AcyclicTest_php.html";s:4:"role";s:3:"doc";s:12:"installed_as";s:138:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\Structures_Graph\docs\html\Structures_Graph\_Structures_Graph_Manipulator_AcyclicTest_php.html";}s:83:"docs/html/Structures_Graph/_Structures_Graph_Manipulator_TopologicalSorter_php.html";a:5:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"c45890d45dd42dc56adb71988c3a45c1";s:4:"name";s:83:"docs/html/Structures_Graph/_Structures_Graph_Manipulator_TopologicalSorter_php.html";s:4:"role";s:3:"doc";s:12:"installed_as";s:144:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\Structures_Graph\docs\html\Structures_Graph\_Structures_Graph_Manipulator_TopologicalSorter_php.html";}s:58:"docs/html/Structures_Graph/_Structures_Graph_Node_php.html";a:5:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"09cb6d17f96553bfb66b99c502676844";s:4:"name";s:58:"docs/html/Structures_Graph/_Structures_Graph_Node_php.html";s:4:"role";s:3:"doc";s:12:"installed_as";s:119:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\Structures_Graph\docs\html\Structures_Graph\_Structures_Graph_Node_php.html";}s:53:"docs/html/Structures_Graph/_Structures_Graph_php.html";a:5:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"78e1e7ec43a6e754cf4d5dace48fe18c";s:4:"name";s:53:"docs/html/Structures_Graph/_Structures_Graph_php.html";s:4:"role";s:3:"doc";s:12:"installed_as";s:114:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\Structures_Graph\docs\html\Structures_Graph\_Structures_Graph_php.html";}s:42:"docs/html/classtrees_Structures_Graph.html";a:5:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"d0ada99c3b7e95b23461cc3e713f0c3d";s:4:"name";s:42:"docs/html/classtrees_Structures_Graph.html";s:4:"role";s:3:"doc";s:12:"installed_as";s:103:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\Structures_Graph\docs\html\classtrees_Structures_Graph.html";}s:27:"docs/html/elementindex.html";a:5:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"898dd26ccc1c1572d36e9879afcb5d39";s:4:"name";s:27:"docs/html/elementindex.html";s:4:"role";s:3:"doc";s:12:"installed_as";s:88:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\Structures_Graph\docs\html\elementindex.html";}s:44:"docs/html/elementindex_Structures_Graph.html";a:5:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"19dd287d44163d2abde1a1d8d52521f8";s:4:"name";s:44:"docs/html/elementindex_Structures_Graph.html";s:4:"role";s:3:"doc";s:12:"installed_as";s:105:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\Structures_Graph\docs\html\elementindex_Structures_Graph.html";}s:21:"docs/html/errors.html";a:5:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"ae809f6ebbf632351648c340d2d6acd4";s:4:"name";s:21:"docs/html/errors.html";s:4:"role";s:3:"doc";s:12:"installed_as";s:82:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\Structures_Graph\docs\html\errors.html";}s:20:"docs/html/index.html";a:5:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"db3206e7d176ae78fd04f22acead5ffa";s:4:"name";s:20:"docs/html/index.html";s:4:"role";s:3:"doc";s:12:"installed_as";s:81:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\Structures_Graph\docs\html\index.html";}s:34:"docs/html/li_Structures_Graph.html";a:5:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"4ec087627323546610b64d69a6aafca6";s:4:"name";s:34:"docs/html/li_Structures_Graph.html";s:4:"role";s:3:"doc";s:12:"installed_as";s:95:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\Structures_Graph\docs\html\li_Structures_Graph.html";}s:23:"docs/html/packages.html";a:5:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"005081a4c5d60afcbabc1f4909ebfcad";s:4:"name";s:23:"docs/html/packages.html";s:4:"role";s:3:"doc";s:12:"installed_as";s:84:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\Structures_Graph\docs\html\packages.html";}s:23:"docs/html/todolist.html";a:5:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"a7a1b748bbda6dfa1632bf6078fc8bb6";s:4:"name";s:23:"docs/html/todolist.html";s:4:"role";s:3:"doc";s:12:"installed_as";s:84:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\Structures_Graph\docs\html\todolist.html";}s:52:"docs/tutorials/Structures_Graph/Structures_Graph.pkg";a:5:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"628eb6532a8047bf5962fe24c1c245df";s:4:"name";s:52:"docs/tutorials/Structures_Graph/Structures_Graph.pkg";s:4:"role";s:3:"doc";s:12:"installed_as";s:113:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\Structures_Graph\docs\tutorials\Structures_Graph\Structures_Graph.pkg";}s:16:"docs/generate.sh";a:5:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"ce2da39dbb75e21074eb5e96231a3379";s:4:"name";s:16:"docs/generate.sh";s:4:"role";s:3:"doc";s:12:"installed_as";s:77:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\Structures_Graph\docs\generate.sh";}s:44:"Structures/Graph/Manipulator/AcyclicTest.php";a:5:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"f0aff5a1efd188d63b4b8b9e9e840b97";s:4:"name";s:44:"Structures/Graph/Manipulator/AcyclicTest.php";s:4:"role";s:3:"php";s:12:"installed_as";s:83:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\Structures\Graph\Manipulator\AcyclicTest.php";}s:50:"Structures/Graph/Manipulator/TopologicalSorter.php";a:5:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"0492e677436d29228df93dca23629e06";s:4:"name";s:50:"Structures/Graph/Manipulator/TopologicalSorter.php";s:4:"role";s:3:"php";s:12:"installed_as";s:89:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\Structures\Graph\Manipulator\TopologicalSorter.php";}s:25:"Structures/Graph/Node.php";a:5:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"7e28e01ebfa273e5df2eb1ef7a356635";s:4:"name";s:25:"Structures/Graph/Node.php";s:4:"role";s:3:"php";s:12:"installed_as";s:64:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\Structures\Graph\Node.php";}s:20:"Structures/Graph.php";a:5:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"4f25a6275af156f6f8e7b4309cb9f40d";s:4:"name";s:20:"Structures/Graph.php";s:4:"role";s:3:"php";s:12:"installed_as";s:59:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\Structures\Graph.php";}s:29:"tests/testCase/BasicGraph.php";a:5:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"63dfc6f0f14e18c13d8a8415c3fe049d";s:4:"name";s:29:"tests/testCase/BasicGraph.php";s:4:"role";s:4:"test";s:12:"installed_as";s:91:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\Structures_Graph\tests\testCase\BasicGraph.php";}s:19:"tests/all-tests.php";a:5:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"1b9e35896d229b84601e6754cd44e339";s:4:"name";s:19:"tests/all-tests.php";s:4:"role";s:4:"test";s:12:"installed_as";s:81:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\Structures_Graph\tests\all-tests.php";}s:12:"tests/README";a:5:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"d41d8cd98f00b204e9800998ecf8427e";s:4:"name";s:12:"tests/README";s:4:"role";s:4:"test";s:12:"installed_as";s:74:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\Structures_Graph\tests\README";}s:17:"genpackage.xml.pl";a:5:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"ab23406ec7bfbb2029ca536378ff57db";s:4:"name";s:17:"genpackage.xml.pl";s:4:"role";s:4:"data";s:12:"installed_as";s:78:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\data\Structures_Graph\genpackage.xml.pl";}s:7:"LICENSE";a:5:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"7fbc338309ac38fefcd64b04bb903e34";s:4:"name";s:7:"LICENSE";s:4:"role";s:4:"data";s:12:"installed_as";s:68:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\data\Structures_Graph\LICENSE";}s:10:"package.sh";a:5:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"6e782f281c7d0ce27e54b574247073cb";s:4:"name";s:10:"package.sh";s:4:"role";s:4:"data";s:12:"installed_as";s:71:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\data\Structures_Graph\package.sh";}s:10:"publish.sh";a:5:{s:14:"baseinstalldir";s:0:"";s:6:"md5sum";s:32:"b81f67f7b5600231735243be73625e54";s:4:"name";s:10:"publish.sh";s:4:"role";s:4:"data";s:12:"installed_as";s:71:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\data\Structures_Graph\publish.sh";}}s:12:"_lastversion";s:5:"1.0.2";s:7:"dirtree";a:22:{s:76:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\Structures_Graph\docs\html\media";b:1;s:76:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\docs\Structures_Graph\docs\html\media";b:1;s:70:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\docs\Structures_Graph\docs\html";b:1;s:65:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\docs\Structures_Graph\docs";b:1;s:87:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\Structures_Graph\docs\html\Structures_Graph";b:1;s:87:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\docs\Structures_Graph\docs\html\Structures_Graph";b:1;s:70:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\Structures_Graph\docs\html";b:1;s:92:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\Structures_Graph\docs\tutorials\Structures_Graph";b:1;s:92:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\docs\Structures_Graph\docs\tutorials\Structures_Graph";b:1;s:75:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\docs\Structures_Graph\docs\tutorials";b:1;s:65:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\docs\Structures_Graph\docs";b:1;s:67:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\Structures\Graph\Manipulator";b:1;s:67:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\Structures\Graph\Manipulator";b:1;s:55:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\Structures\Graph";b:1;s:49:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\Structures";b:1;s:55:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\Structures\Graph";b:1;s:49:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\Structures";b:1;s:76:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\Structures_Graph\tests\testCase";b:1;s:76:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\tests\Structures_Graph\tests\testCase";b:1;s:67:"D:\Apache2\htdocs\tshirtshop\libs/PEAR\tests\Structures_Graph\tests";b:1;s:67:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\tests\Structures_Graph\tests";b:1;s:60:"D:\Apache2\htdocs\tshirtshop\libs\PEAR\data\Structures_Graph";b:1;}s:3:"old";a:7:{s:7:"version";s:5:"1.0.2";s:12:"release_date";s:10:"2007-02-01";s:13:"release_state";s:6:"stable";s:15:"release_license";s:4:"LGPL";s:13:"release_notes";s:130:"- Bug #9682 only variables can be returned by reference
- fix Bug #9661 notice in Structures_Graph_Manipulator_Topological::sort()";s:12:"release_deps";a:2:{i:0;a:4:{s:4:"type";s:3:"php";s:3:"rel";s:2:"ge";s:7:"version";s:5:"4.2.0";s:8:"optional";s:2:"no";}i:1;a:6:{s:4:"type";s:3:"pkg";s:7:"channel";s:12:"pear.php.net";s:4:"name";s:4:"PEAR";s:3:"rel";s:2:"ge";s:7:"version";s:5:"1.4.3";s:8:"optional";s:2:"no";}}s:11:"maintainers";a:1:{i:0;a:5:{s:4:"name";s:16:"Sérgio Carvalho";s:5:"email";s:32:"sergio.carvalho@portugalmail.com";s:6:"active";s:3:"yes";s:6:"handle";s:9:"sergiosgc";s:4:"role";s:4:"lead";}}}s:10:"xsdversion";s:3:"2.0";s:13:"_lastmodified";i:1171608477;} catalog/libs/PEAR/cache/ 0000755 5773401 0100224 00000000000 10625423063 016701 5 ustar tonerlogics pg116757 0000000 0000000 catalog/libs/PEAR/.channels/ 0000755 5773401 0100224 00000000000 10625427723 017516 5 ustar tonerlogics pg116757 0000000 0000000 catalog/libs/PEAR/.channels/.alias/ 0000755 5773401 0100224 00000000000 10625427721 020663 5 ustar tonerlogics pg116757 0000000 0000000 catalog/libs/PEAR/.channels/.alias/pear.txt 0000644 5773401 0100224 00000000014 10625427721 022346 0 ustar tonerlogics pg116757 0000000 0000000 pear.php.net catalog/libs/PEAR/.channels/.alias/pecl.txt 0000644 5773401 0100224 00000000014 10625427722 022343 0 ustar tonerlogics pg116757 0000000 0000000 pecl.php.net catalog/libs/PEAR/.channels/pear.php.net.reg 0000644 5773401 0100224 00000002676 10625427723 022532 0 ustar tonerlogics pg116757 0000000 0000000 a:5:{s:4:"name";s:12:"pear.php.net";s:14:"suggestedalias";s:4:"pear";s:7:"summary";s:40:"PHP Extension and Application Repository";s:7:"servers";a:1:{s:7:"primary";a:2:{s:6:"xmlrpc";a:1:{s:8:"function";a:10:{i:0;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:9:"logintest";}i:1;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:26:"package.listLatestReleases";}i:2;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:15:"package.listAll";}i:3;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:12:"package.info";}i:4;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:22:"package.getDownloadURL";}i:5;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.1";}s:8:"_content";s:22:"package.getDownloadURL";}i:6;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:25:"package.getDepDownloadURL";}i:7;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.1";}s:8:"_content";s:25:"package.getDepDownloadURL";}i:8;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:14:"package.search";}i:9;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:15:"channel.listAll";}}}s:4:"rest";a:1:{s:7:"baseurl";a:2:{i:0;a:2:{s:7:"attribs";a:1:{s:4:"type";s:7:"REST1.0";}s:8:"_content";s:25:"http://pear.php.net/rest/";}i:1;a:2:{s:7:"attribs";a:1:{s:4:"type";s:7:"REST1.1";}s:8:"_content";s:25:"http://pear.php.net/rest/";}}}}}s:13:"_lastmodified";s:31:"Fri, 16 Feb 2007 12:56:20 +1100";} catalog/libs/PEAR/.channels/pecl.php.net.reg 0000644 5773401 0100224 00000003050 10625427723 022511 0 ustar tonerlogics pg116757 0000000 0000000 a:6:{s:4:"name";s:12:"pecl.php.net";s:14:"suggestedalias";s:4:"pecl";s:7:"summary";s:31:"PHP Extension Community Library";s:7:"servers";a:1:{s:7:"primary";a:2:{s:6:"xmlrpc";a:1:{s:8:"function";a:10:{i:0;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:9:"logintest";}i:1;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:26:"package.listLatestReleases";}i:2;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:15:"package.listAll";}i:3;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:12:"package.info";}i:4;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:22:"package.getDownloadURL";}i:5;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.1";}s:8:"_content";s:22:"package.getDownloadURL";}i:6;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:25:"package.getDepDownloadURL";}i:7;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.1";}s:8:"_content";s:25:"package.getDepDownloadURL";}i:8;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:14:"package.search";}i:9;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:15:"channel.listAll";}}}s:4:"rest";a:1:{s:7:"baseurl";a:2:{i:0;a:2:{s:7:"attribs";a:1:{s:4:"type";s:7:"REST1.0";}s:8:"_content";s:25:"http://pecl.php.net/rest/";}i:1;a:2:{s:7:"attribs";a:1:{s:4:"type";s:7:"REST1.1";}s:8:"_content";s:25:"http://pecl.php.net/rest/";}}}}}s:15:"validatepackage";a:2:{s:8:"_content";s:19:"PEAR_Validator_PECL";s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}}s:13:"_lastmodified";s:31:"Fri, 16 Feb 2007 12:56:20 +1100";} catalog/libs/PEAR/.channels/__uri.reg 0000644 5773401 0100224 00000000447 10625427724 021320 0 ustar tonerlogics pg116757 0000000 0000000 a:4:{s:4:"name";s:5:"__uri";s:7:"servers";a:1:{s:7:"primary";a:1:{s:6:"xmlrpc";a:1:{s:8:"function";a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:4:"****";}}}}s:7:"summary";s:34:"Pseudo-channel for static packages";s:13:"_lastmodified";s:31:"Fri, 16 Feb 2007 12:56:20 +1100";} catalog/libs/PEAR/.depdb 0000644 5773401 0100224 00000005517 10625427724 016735 0 ustar tonerlogics pg116757 0000000 0000000 a:3:{s:8:"_version";s:3:"1.0";s:12:"dependencies";a:1:{s:12:"pear.php.net";a:3:{s:4:"pear";a:7:{i:0;a:3:{s:3:"dep";a:3:{s:4:"name";s:4:"PEAR";s:7:"channel";s:12:"pear.php.net";s:3:"min";s:5:"1.3.3";}s:4:"type";s:8:"required";s:5:"group";b:0;}i:1;a:3:{s:3:"dep";a:3:{s:4:"name";s:11:"Archive_Tar";s:7:"channel";s:12:"pear.php.net";s:3:"min";s:5:"1.3.1";}s:4:"type";s:8:"required";s:5:"group";b:0;}i:2;a:3:{s:3:"dep";a:3:{s:4:"name";s:14:"Console_Getopt";s:7:"channel";s:12:"pear.php.net";s:3:"min";s:3:"1.2";}s:4:"type";s:8:"required";s:5:"group";b:0;}i:3;a:3:{s:3:"dep";a:3:{s:4:"name";s:16:"Structures_Graph";s:7:"channel";s:12:"pear.php.net";s:3:"min";s:5:"1.0.2";}s:4:"type";s:8:"required";s:5:"group";b:0;}i:4;a:3:{s:3:"dep";a:3:{s:4:"name";s:7:"XML_RPC";s:7:"channel";s:12:"pear.php.net";s:3:"min";s:5:"1.4.0";}s:4:"type";s:8:"optional";s:5:"group";b:0;}i:5;a:3:{s:3:"dep";a:3:{s:4:"name";s:17:"PEAR_Frontend_Web";s:7:"channel";s:12:"pear.php.net";s:3:"min";s:5:"0.5.0";}s:4:"type";s:8:"optional";s:5:"group";b:0;}i:6;a:3:{s:3:"dep";a:3:{s:4:"name";s:17:"PEAR_Frontend_Gtk";s:7:"channel";s:12:"pear.php.net";s:3:"min";s:5:"0.4.0";}s:4:"type";s:8:"optional";s:5:"group";b:0;}}s:17:"pear_frontend_web";a:3:{i:0;a:3:{s:3:"dep";a:2:{s:4:"name";s:20:"Net_UserAgent_Detect";s:7:"channel";s:12:"pear.php.net";}s:4:"type";s:8:"required";s:5:"group";b:0;}i:1;a:3:{s:3:"dep";a:2:{s:4:"name";s:16:"HTML_Template_IT";s:7:"channel";s:12:"pear.php.net";}s:4:"type";s:8:"required";s:5:"group";b:0;}i:2;a:3:{s:3:"dep";a:3:{s:4:"name";s:4:"PEAR";s:7:"channel";s:12:"pear.php.net";s:3:"min";s:5:"1.4.6";}s:4:"type";s:8:"required";s:5:"group";b:0;}}s:4:"mdb2";a:1:{i:0;a:3:{s:3:"dep";a:3:{s:4:"name";s:4:"PEAR";s:7:"channel";s:12:"pear.php.net";s:3:"min";s:5:"1.3.6";}s:4:"type";s:8:"required";s:5:"group";b:0;}}}}s:8:"packages";a:1:{s:12:"pear.php.net";a:9:{s:4:"pear";a:3:{i:0;a:2:{s:7:"channel";s:12:"pear.php.net";s:7:"package";s:4:"pear";}i:1;a:2:{s:7:"channel";s:12:"pear.php.net";s:7:"package";s:17:"pear_frontend_web";}i:2;a:2:{s:7:"channel";s:12:"pear.php.net";s:7:"package";s:4:"mdb2";}}s:11:"archive_tar";a:1:{i:0;a:2:{s:7:"channel";s:12:"pear.php.net";s:7:"package";s:4:"pear";}}s:14:"console_getopt";a:1:{i:0;a:2:{s:7:"channel";s:12:"pear.php.net";s:7:"package";s:4:"pear";}}s:16:"structures_graph";a:1:{i:0;a:2:{s:7:"channel";s:12:"pear.php.net";s:7:"package";s:4:"pear";}}s:7:"xml_rpc";a:1:{i:0;a:2:{s:7:"channel";s:12:"pear.php.net";s:7:"package";s:4:"pear";}}s:17:"pear_frontend_web";a:1:{i:0;a:2:{s:7:"channel";s:12:"pear.php.net";s:7:"package";s:4:"pear";}}s:17:"pear_frontend_gtk";a:1:{i:0;a:2:{s:7:"channel";s:12:"pear.php.net";s:7:"package";s:4:"pear";}}s:20:"net_useragent_detect";a:1:{i:0;a:2:{s:7:"channel";s:12:"pear.php.net";s:7:"package";s:17:"pear_frontend_web";}}s:16:"html_template_it";a:1:{i:0;a:2:{s:7:"channel";s:12:"pear.php.net";s:7:"package";s:17:"pear_frontend_web";}}}}} catalog/libs/PEAR/.depdblock 0000644 5773401 0100224 00000000000 10625427724 017564 0 ustar tonerlogics pg116757 0000000 0000000 catalog/libs/PEAR/.filemap 0000644 5773401 0100224 00000031431 10625427726 017270 0 ustar tonerlogics pg116757 0000000 0000000 a:5:{s:3:"php";a:146:{s:16:"\Archive/Tar.php";s:11:"archive_tar";s:18:"Console/Getopt.php";s:14:"console_getopt";s:20:"HTML/Template\IT.php";s:16:"html_template_it";s:21:"HTML/Template\ITX.php";s:16:"html_template_it";s:26:"HTML/Template\IT_Error.php";s:16:"html_template_it";s:32:"\MDB2/Driver/Datatype/Common.php";s:4:"mdb2";s:32:"\MDB2/Driver/Function/Common.php";s:4:"mdb2";s:31:"\MDB2/Driver/Manager/Common.php";s:4:"mdb2";s:30:"\MDB2/Driver/Native/Common.php";s:4:"mdb2";s:31:"\MDB2/Driver/Reverse/Common.php";s:4:"mdb2";s:14:"\MDB2/Date.php";s:4:"mdb2";s:18:"\MDB2/Extended.php";s:4:"mdb2";s:18:"\MDB2/Iterator.php";s:4:"mdb2";s:13:"\MDB2/LOB.php";s:4:"mdb2";s:9:"\MDB2.php";s:4:"mdb2";s:24:"Net/UserAgent\Detect.php";s:20:"net_useragent_detect";s:12:"OS/Guess.php";s:4:"pear";s:27:"PEAR/ChannelFile/Parser.php";s:4:"pear";s:21:"PEAR/Command/Auth.xml";s:4:"pear";s:21:"PEAR/Command/Auth.php";s:4:"pear";s:22:"PEAR/Command/Build.xml";s:4:"pear";s:22:"PEAR/Command/Build.php";s:4:"pear";s:25:"PEAR/Command/Channels.xml";s:4:"pear";s:25:"PEAR/Command/Channels.php";s:4:"pear";s:23:"PEAR/Command/Common.php";s:4:"pear";s:23:"PEAR/Command/Config.xml";s:4:"pear";s:23:"PEAR/Command/Config.php";s:4:"pear";s:24:"PEAR/Command/Install.xml";s:4:"pear";s:24:"PEAR/Command/Install.php";s:4:"pear";s:24:"PEAR/Command/Package.xml";s:4:"pear";s:24:"PEAR/Command/Package.php";s:4:"pear";s:23:"PEAR/Command/Pickle.xml";s:4:"pear";s:23:"PEAR/Command/Pickle.php";s:4:"pear";s:25:"PEAR/Command/Registry.xml";s:4:"pear";s:25:"PEAR/Command/Registry.php";s:4:"pear";s:23:"PEAR/Command/Remote.xml";s:4:"pear";s:23:"PEAR/Command/Remote.php";s:4:"pear";s:23:"PEAR/Command/Mirror.xml";s:4:"pear";s:23:"PEAR/Command/Mirror.php";s:4:"pear";s:21:"PEAR/Command/Test.xml";s:4:"pear";s:21:"PEAR/Command/Test.php";s:4:"pear";s:27:"PEAR/Downloader/Package.php";s:4:"pear";s:21:"PEAR/Frontend/CLI.php";s:4:"pear";s:30:"PEAR/Installer/Role/Common.php";s:4:"pear";s:28:"PEAR/Installer/Role/Data.xml";s:4:"pear";s:28:"PEAR/Installer/Role/Data.php";s:4:"pear";s:27:"PEAR/Installer/Role/Doc.xml";s:4:"pear";s:27:"PEAR/Installer/Role/Doc.php";s:4:"pear";s:27:"PEAR/Installer/Role/Ext.xml";s:4:"pear";s:27:"PEAR/Installer/Role/Ext.php";s:4:"pear";s:27:"PEAR/Installer/Role/Php.xml";s:4:"pear";s:27:"PEAR/Installer/Role/Php.php";s:4:"pear";s:30:"PEAR/Installer/Role/Script.xml";s:4:"pear";s:30:"PEAR/Installer/Role/Script.php";s:4:"pear";s:27:"PEAR/Installer/Role/Src.xml";s:4:"pear";s:27:"PEAR/Installer/Role/Src.php";s:4:"pear";s:28:"PEAR/Installer/Role/Test.xml";s:4:"pear";s:28:"PEAR/Installer/Role/Test.php";s:4:"pear";s:23:"PEAR/Installer/Role.php";s:4:"pear";s:33:"PEAR/PackageFile/Generator/v1.php";s:4:"pear";s:33:"PEAR/PackageFile/Generator/v2.php";s:4:"pear";s:30:"PEAR/PackageFile/Parser/v1.php";s:4:"pear";s:30:"PEAR/PackageFile/Parser/v2.php";s:4:"pear";s:26:"PEAR/PackageFile/v2/rw.php";s:4:"pear";s:33:"PEAR/PackageFile/v2/Validator.php";s:4:"pear";s:23:"PEAR/PackageFile/v1.php";s:4:"pear";s:23:"PEAR/PackageFile/v2.php";s:4:"pear";s:16:"PEAR/REST/10.php";s:4:"pear";s:16:"PEAR/REST/11.php";s:4:"pear";s:34:"PEAR/Task/Postinstallscript/rw.php";s:4:"pear";s:24:"PEAR/Task/Replace/rw.php";s:4:"pear";s:24:"PEAR/Task/Unixeol/rw.php";s:4:"pear";s:27:"PEAR/Task/Windowseol/rw.php";s:4:"pear";s:20:"PEAR/Task/Common.php";s:4:"pear";s:31:"PEAR/Task/Postinstallscript.php";s:4:"pear";s:21:"PEAR/Task/Replace.php";s:4:"pear";s:21:"PEAR/Task/Unixeol.php";s:4:"pear";s:24:"PEAR/Task/Windowseol.php";s:4:"pear";s:23:"PEAR/Validator/PECL.php";s:4:"pear";s:19:"PEAR/Autoloader.php";s:4:"pear";s:16:"PEAR/Builder.php";s:4:"pear";s:20:"PEAR/ChannelFile.php";s:4:"pear";s:16:"PEAR/Command.php";s:4:"pear";s:15:"PEAR/Common.php";s:4:"pear";s:15:"PEAR/Config.php";s:4:"pear";s:19:"PEAR/Dependency.php";s:4:"pear";s:21:"PEAR/DependencyDB.php";s:4:"pear";s:20:"PEAR/Dependency2.php";s:4:"pear";s:19:"PEAR/Downloader.php";s:4:"pear";s:19:"PEAR/ErrorStack.php";s:4:"pear";s:18:"PEAR/Exception.php";s:4:"pear";s:17:"PEAR/Frontend.php";s:4:"pear";s:18:"PEAR/Installer.php";s:4:"pear";s:17:"PEAR/Packager.php";s:4:"pear";s:20:"PEAR/PackageFile.php";s:4:"pear";s:17:"PEAR/Registry.php";s:4:"pear";s:15:"PEAR/Remote.php";s:4:"pear";s:13:"PEAR/REST.php";s:4:"pear";s:16:"PEAR/RunTest.php";s:4:"pear";s:17:"PEAR/Validate.php";s:4:"pear";s:18:"PEAR/XMLParser.php";s:4:"pear";s:20:"\scripts/pearcmd.php";s:4:"pear";s:20:"\scripts/peclcmd.php";s:4:"pear";s:9:"\PEAR.php";s:4:"pear";s:11:"\System.php";s:4:"pear";s:21:"PEAR\WebInstaller.php";s:17:"pear_frontend_web";s:21:"PEAR\Frontend/Web.php";s:17:"pear_frontend_web";s:28:"PEAR\Frontend/Web/config.gif";s:17:"pear_frontend_web";s:30:"PEAR\Frontend/Web/download.gif";s:17:"pear_frontend_web";s:27:"PEAR\Frontend/Web/error.gif";s:17:"pear_frontend_web";s:26:"PEAR\Frontend/Web/info.gif";s:17:"pear_frontend_web";s:30:"PEAR\Frontend/Web/infoplus.gif";s:17:"pear_frontend_web";s:29:"PEAR\Frontend/Web/install.gif";s:17:"pear_frontend_web";s:34:"PEAR\Frontend/Web/install_fail.gif";s:17:"pear_frontend_web";s:32:"PEAR\Frontend/Web/install_ok.gif";s:17:"pear_frontend_web";s:34:"PEAR\Frontend/Web/install_wait.gif";s:17:"pear_frontend_web";s:27:"PEAR\Frontend/Web/login.gif";s:17:"pear_frontend_web";s:28:"PEAR\Frontend/Web/logout.gif";s:17:"pear_frontend_web";s:28:"PEAR\Frontend/Web/manual.gif";s:17:"pear_frontend_web";s:31:"PEAR\Frontend/Web/pearsmall.gif";s:17:"pear_frontend_web";s:27:"PEAR\Frontend/Web/trash.gif";s:17:"pear_frontend_web";s:29:"PEAR\Frontend/Web/package.jpg";s:17:"pear_frontend_web";s:30:"PEAR\Frontend/Web/category.jpg";s:17:"pear_frontend_web";s:29:"PEAR\Frontend/Web/pkglist.png";s:17:"pear_frontend_web";s:31:"PEAR\Frontend/Web/pkgsearch.png";s:17:"pear_frontend_web";s:27:"PEAR\Frontend/Web/style.css";s:17:"pear_frontend_web";s:27:"PEAR\Frontend/Web/dhtml.css";s:17:"pear_frontend_web";s:26:"PEAR\Frontend/Web/dhtml.js";s:17:"pear_frontend_web";s:28:"PEAR\Frontend/Web/nodhtml.js";s:17:"pear_frontend_web";s:37:"PEAR\Frontend/Web/bottom.inc.tpl.html";s:17:"pear_frontend_web";s:39:"PEAR\Frontend/Web/channel.info.tpl.html";s:17:"pear_frontend_web";s:39:"PEAR\Frontend/Web/channel.list.tpl.html";s:17:"pear_frontend_web";s:38:"PEAR\Frontend/Web/error.popup.tpl.html";s:17:"pear_frontend_web";s:32:"PEAR\Frontend/Web/error.tpl.html";s:17:"pear_frontend_web";s:37:"PEAR\Frontend/Web/footer.inc.tpl.html";s:17:"pear_frontend_web";s:37:"PEAR\Frontend/Web/header.inc.tpl.html";s:17:"pear_frontend_web";s:31:"PEAR\Frontend/Web/info.tpl.html";s:17:"pear_frontend_web";s:39:"PEAR\Frontend/Web/package.info.tpl.html";s:17:"pear_frontend_web";s:39:"PEAR\Frontend/Web/package.list.tpl.html";s:17:"pear_frontend_web";s:32:"PEAR\Frontend/Web/start.tpl.html";s:17:"pear_frontend_web";s:34:"PEAR\Frontend/Web/top.inc.tpl.html";s:17:"pear_frontend_web";s:37:"PEAR\Frontend/Web/userDialog.tpl.html";s:17:"pear_frontend_web";s:45:"\Structures/Graph/Manipulator/AcyclicTest.php";s:16:"structures_graph";s:51:"\Structures/Graph/Manipulator/TopologicalSorter.php";s:16:"structures_graph";s:26:"\Structures/Graph/Node.php";s:16:"structures_graph";s:21:"\Structures/Graph.php";s:16:"structures_graph";}s:3:"doc";a:40:{s:32:"archive_tar\docs/Archive_Tar.txt";s:11:"archive_tar";s:24:"html_template_it\LICENSE";s:16:"html_template_it";s:39:"html_template_it\examples/sample_it.php";s:16:"html_template_it";s:53:"html_template_it\examples/sample_itx_addblockfile.php";s:16:"html_template_it";s:48:"html_template_it\examples/templates/main.tpl.htm";s:16:"html_template_it";s:61:"html_template_it\examples/templates/addblockfile_list.tpl.htm";s:16:"html_template_it";s:61:"html_template_it\examples/templates/addblockfile_main.tpl.htm";s:16:"html_template_it";s:30:"mdb2\docs/examples/example.php";s:4:"mdb2";s:35:"mdb2\docs/examples/example_php5.php";s:4:"mdb2";s:42:"mdb2\docs/examples/metapear_test_db.schema";s:4:"mdb2";s:22:"mdb2\docs/CONTRIBUTORS";s:4:"mdb2";s:24:"mdb2\docs/datatypes.html";s:4:"mdb2";s:21:"mdb2\docs/MAINTAINERS";s:4:"mdb2";s:16:"mdb2\docs/README";s:4:"mdb2";s:16:"mdb2\docs/STATUS";s:4:"mdb2";s:14:"mdb2\docs/TODO";s:4:"mdb2";s:12:"pear\INSTALL";s:4:"pear";s:11:"pear\README";s:4:"pear";s:34:"pear_frontend_web\docs/example.php";s:17:"pear_frontend_web";s:43:"structures_graph\docs/html/media/banner.css";s:16:"structures_graph";s:47:"structures_graph\docs/html/media/stylesheet.css";s:16:"structures_graph";s:65:"structures_graph\docs/html/Structures_Graph/Structures_Graph.html";s:16:"structures_graph";s:89:"structures_graph\docs/html/Structures_Graph/Structures_Graph_Manipulator_AcyclicTest.html";s:16:"structures_graph";s:95:"structures_graph\docs/html/Structures_Graph/Structures_Graph_Manipulator_TopologicalSorter.html";s:16:"structures_graph";s:70:"structures_graph\docs/html/Structures_Graph/Structures_Graph_Node.html";s:16:"structures_graph";s:78:"structures_graph\docs/html/Structures_Graph/tutorial_Structures_Graph.pkg.html";s:16:"structures_graph";s:94:"structures_graph\docs/html/Structures_Graph/_Structures_Graph_Manipulator_AcyclicTest_php.html";s:16:"structures_graph";s:100:"structures_graph\docs/html/Structures_Graph/_Structures_Graph_Manipulator_TopologicalSorter_php.html";s:16:"structures_graph";s:75:"structures_graph\docs/html/Structures_Graph/_Structures_Graph_Node_php.html";s:16:"structures_graph";s:70:"structures_graph\docs/html/Structures_Graph/_Structures_Graph_php.html";s:16:"structures_graph";s:59:"structures_graph\docs/html/classtrees_Structures_Graph.html";s:16:"structures_graph";s:44:"structures_graph\docs/html/elementindex.html";s:16:"structures_graph";s:61:"structures_graph\docs/html/elementindex_Structures_Graph.html";s:16:"structures_graph";s:38:"structures_graph\docs/html/errors.html";s:16:"structures_graph";s:37:"structures_graph\docs/html/index.html";s:16:"structures_graph";s:51:"structures_graph\docs/html/li_Structures_Graph.html";s:16:"structures_graph";s:40:"structures_graph\docs/html/packages.html";s:16:"structures_graph";s:40:"structures_graph\docs/html/todolist.html";s:16:"structures_graph";s:69:"structures_graph\docs/tutorials/Structures_Graph/Structures_Graph.pkg";s:16:"structures_graph";s:33:"structures_graph\docs/generate.sh";s:16:"structures_graph";}s:4:"test";a:40:{s:46:"html_template_it\tests/templates/addblock.html";s:16:"html_template_it";s:52:"html_template_it\tests/templates/blockiteration.html";s:16:"html_template_it";s:44:"html_template_it\tests/templates/blocks.html";s:16:"html_template_it";s:45:"html_template_it\tests/templates/globals.html";s:16:"html_template_it";s:47:"html_template_it\tests/templates/__include.html";s:16:"html_template_it";s:45:"html_template_it\tests/templates/include.html";s:16:"html_template_it";s:54:"html_template_it\tests/templates/loadtemplatefile.html";s:16:"html_template_it";s:50:"html_template_it\tests/templates/replaceblock.html";s:16:"html_template_it";s:47:"html_template_it\tests/Console_TestListener.php";s:16:"html_template_it";s:42:"html_template_it\tests/IT_api_testcase.php";s:16:"html_template_it";s:44:"html_template_it\tests/IT_usage_testcase.php";s:16:"html_template_it";s:43:"html_template_it\tests/ITX_api_testcase.php";s:16:"html_template_it";s:45:"html_template_it\tests/ITX_usage_testcase.php";s:16:"html_template_it";s:31:"html_template_it\tests/test.php";s:16:"html_template_it";s:21:"mdb2\tests/basic.phpt";s:4:"mdb2";s:22:"mdb2\tests/clitest.php";s:4:"mdb2";s:21:"mdb2\tests/config.php";s:4:"mdb2";s:35:"mdb2\tests/Console_TestListener.php";s:4:"mdb2";s:32:"mdb2\tests/HTML_TestListener.php";s:4:"mdb2";s:32:"mdb2\tests/MDB2_api_testcase.php";s:4:"mdb2";s:33:"mdb2\tests/MDB2_bugs_testcase.php";s:4:"mdb2";s:32:"mdb2\tests/MDB2_Connect_Test.php";s:4:"mdb2";s:37:"mdb2\tests/MDB2_datatype_testcase.php";s:4:"mdb2";s:37:"mdb2\tests/MDB2_extended_testcase.php";s:4:"mdb2";s:37:"mdb2\tests/MDB2_function_testcase.php";s:4:"mdb2";s:36:"mdb2\tests/MDB2_manager_testcase.php";s:4:"mdb2";s:35:"mdb2\tests/MDB2_native_testcase.php";s:4:"mdb2";s:36:"mdb2\tests/MDB2_reverse_testcase.php";s:4:"mdb2";s:28:"mdb2\tests/MDB2_testcase.php";s:4:"mdb2";s:34:"mdb2\tests/MDB2_usage_testcase.php";s:4:"mdb2";s:17:"mdb2\tests/README";s:4:"mdb2";s:19:"mdb2\tests/test.php";s:4:"mdb2";s:25:"mdb2\tests/testchoose.php";s:4:"mdb2";s:20:"mdb2\tests/tests.css";s:4:"mdb2";s:24:"mdb2\tests/testUtils.php";s:4:"mdb2";s:30:"mdb2\tests/test_setup.php.dist";s:4:"mdb2";s:38:"net_useragent_detect\tests/example.php";s:20:"net_useragent_detect";s:46:"structures_graph\tests/testCase/BasicGraph.php";s:16:"structures_graph";s:36:"structures_graph\tests/all-tests.php";s:16:"structures_graph";s:29:"structures_graph\tests/README";s:16:"structures_graph";}s:4:"data";a:7:{s:12:"mdb2\LICENSE";s:4:"mdb2";s:16:"pear\package.dtd";s:4:"pear";s:18:"pear\template.spec";s:4:"pear";s:34:"structures_graph\genpackage.xml.pl";s:16:"structures_graph";s:24:"structures_graph\LICENSE";s:16:"structures_graph";s:27:"structures_graph\package.sh";s:16:"structures_graph";s:27:"structures_graph\publish.sh";s:16:"structures_graph";}s:6:"script";a:3:{s:20:"\scripts/peardev.bat";s:4:"pear";s:17:"\scripts/pear.bat";s:4:"pear";s:17:"\scripts/pecl.bat";s:4:"pear";}} catalog/libs/PEAR/.lock 0000644 5773401 0100224 00000000000 10625427725 016566 0 ustar tonerlogics pg116757 0000000 0000000 catalog/libs/PEAR/Archive/ 0000755 5773401 0100224 00000000000 10625427743 017230 5 ustar tonerlogics pg116757 0000000 0000000 catalog/libs/PEAR/Archive/Tar.php 0000644 5773401 0100224 00000167330 10625427746 020504 0 ustar tonerlogics pg116757 0000000 0000000 |
// +----------------------------------------------------------------------+
//
// $Id: Tar.php,v 1.39 2006/12/22 19:20:08 cellog Exp $
require_once 'PEAR.php';
define ('ARCHIVE_TAR_ATT_SEPARATOR', 90001);
define ('ARCHIVE_TAR_END_BLOCK', pack("a512", ''));
/**
* Creates a (compressed) Tar archive
*
* @author Vincent Blavet
* @version $Revision: 1.39 $
* @package Archive
*/
class Archive_Tar extends PEAR
{
/**
* @var string Name of the Tar
*/
var $_tarname='';
/**
* @var boolean if true, the Tar file will be gzipped
*/
var $_compress=false;
/**
* @var string Type of compression : 'none', 'gz' or 'bz2'
*/
var $_compress_type='none';
/**
* @var string Explode separator
*/
var $_separator=' ';
/**
* @var file descriptor
*/
var $_file=0;
/**
* @var string Local Tar name of a remote Tar (http:// or ftp://)
*/
var $_temp_tarname='';
// {{{ constructor
/**
* Archive_Tar Class constructor. This flavour of the constructor only
* declare a new Archive_Tar object, identifying it by the name of the
* tar file.
* If the compress argument is set the tar will be read or created as a
* gzip or bz2 compressed TAR file.
*
* @param string $p_tarname The name of the tar archive to create
* @param string $p_compress can be null, 'gz' or 'bz2'. This
* parameter indicates if gzip or bz2 compression
* is required. For compatibility reason the
* boolean value 'true' means 'gz'.
* @access public
*/
function Archive_Tar($p_tarname, $p_compress = null)
{
$this->PEAR();
$this->_compress = false;
$this->_compress_type = 'none';
if (($p_compress === null) || ($p_compress == '')) {
if (@file_exists($p_tarname)) {
if ($fp = @fopen($p_tarname, "rb")) {
// look for gzip magic cookie
$data = fread($fp, 2);
fclose($fp);
if ($data == "\37\213") {
$this->_compress = true;
$this->_compress_type = 'gz';
// No sure it's enought for a magic code ....
} elseif ($data == "BZ") {
$this->_compress = true;
$this->_compress_type = 'bz2';
}
}
} else {
// probably a remote file or some file accessible
// through a stream interface
if (substr($p_tarname, -2) == 'gz') {
$this->_compress = true;
$this->_compress_type = 'gz';
} elseif ((substr($p_tarname, -3) == 'bz2') ||
(substr($p_tarname, -2) == 'bz')) {
$this->_compress = true;
$this->_compress_type = 'bz2';
}
}
} else {
if (($p_compress === true) || ($p_compress == 'gz')) {
$this->_compress = true;
$this->_compress_type = 'gz';
} else if ($p_compress == 'bz2') {
$this->_compress = true;
$this->_compress_type = 'bz2';
} else {
die("Unsupported compression type '$p_compress'\n".
"Supported types are 'gz' and 'bz2'.\n");
return false;
}
}
$this->_tarname = $p_tarname;
if ($this->_compress) { // assert zlib or bz2 extension support
if ($this->_compress_type == 'gz')
$extname = 'zlib';
else if ($this->_compress_type == 'bz2')
$extname = 'bz2';
if (!extension_loaded($extname)) {
PEAR::loadExtension($extname);
}
if (!extension_loaded($extname)) {
die("The extension '$extname' couldn't be found.\n".
"Please make sure your version of PHP was built ".
"with '$extname' support.\n");
return false;
}
}
}
// }}}
// {{{ destructor
function _Archive_Tar()
{
$this->_close();
// ----- Look for a local copy to delete
if ($this->_temp_tarname != '')
@unlink($this->_temp_tarname);
$this->_PEAR();
}
// }}}
// {{{ create()
/**
* This method creates the archive file and add the files / directories
* that are listed in $p_filelist.
* If a file with the same name exist and is writable, it is replaced
* by the new tar.
* The method return false and a PEAR error text.
* The $p_filelist parameter can be an array of string, each string
* representing a filename or a directory name with their path if
* needed. It can also be a single string with names separated by a
* single blank.
* For each directory added in the archive, the files and
* sub-directories are also added.
* See also createModify() method for more details.
*
* @param array $p_filelist An array of filenames and directory names, or a
* single string with names separated by a single
* blank space.
* @return true on success, false on error.
* @see createModify()
* @access public
*/
function create($p_filelist)
{
return $this->createModify($p_filelist, '', '');
}
// }}}
// {{{ add()
/**
* This method add the files / directories that are listed in $p_filelist in
* the archive. If the archive does not exist it is created.
* The method return false and a PEAR error text.
* The files and directories listed are only added at the end of the archive,
* even if a file with the same name is already archived.
* See also createModify() method for more details.
*
* @param array $p_filelist An array of filenames and directory names, or a
* single string with names separated by a single
* blank space.
* @return true on success, false on error.
* @see createModify()
* @access public
*/
function add($p_filelist)
{
return $this->addModify($p_filelist, '', '');
}
// }}}
// {{{ extract()
function extract($p_path='')
{
return $this->extractModify($p_path, '');
}
// }}}
// {{{ listContent()
function listContent()
{
$v_list_detail = array();
if ($this->_openRead()) {
if (!$this->_extractList('', $v_list_detail, "list", '', '')) {
unset($v_list_detail);
$v_list_detail = 0;
}
$this->_close();
}
return $v_list_detail;
}
// }}}
// {{{ createModify()
/**
* This method creates the archive file and add the files / directories
* that are listed in $p_filelist.
* If the file already exists and is writable, it is replaced by the
* new tar. It is a create and not an add. If the file exists and is
* read-only or is a directory it is not replaced. The method return
* false and a PEAR error text.
* The $p_filelist parameter can be an array of string, each string
* representing a filename or a directory name with their path if
* needed. It can also be a single string with names separated by a
* single blank.
* The path indicated in $p_remove_dir will be removed from the
* memorized path of each file / directory listed when this path
* exists. By default nothing is removed (empty path '')
* The path indicated in $p_add_dir will be added at the beginning of
* the memorized path of each file / directory listed. However it can
* be set to empty ''. The adding of a path is done after the removing
* of path.
* The path add/remove ability enables the user to prepare an archive
* for extraction in a different path than the origin files are.
* See also addModify() method for file adding properties.
*
* @param array $p_filelist An array of filenames and directory names,
* or a single string with names separated by
* a single blank space.
* @param string $p_add_dir A string which contains a path to be added
* to the memorized path of each element in
* the list.
* @param string $p_remove_dir A string which contains a path to be
* removed from the memorized path of each
* element in the list, when relevant.
* @return boolean true on success, false on error.
* @access public
* @see addModify()
*/
function createModify($p_filelist, $p_add_dir, $p_remove_dir='')
{
$v_result = true;
if (!$this->_openWrite())
return false;
if ($p_filelist != '') {
if (is_array($p_filelist))
$v_list = $p_filelist;
elseif (is_string($p_filelist))
$v_list = explode($this->_separator, $p_filelist);
else {
$this->_cleanFile();
$this->_error('Invalid file list');
return false;
}
$v_result = $this->_addList($v_list, $p_add_dir, $p_remove_dir);
}
if ($v_result) {
$this->_writeFooter();
$this->_close();
} else
$this->_cleanFile();
return $v_result;
}
// }}}
// {{{ addModify()
/**
* This method add the files / directories listed in $p_filelist at the
* end of the existing archive. If the archive does not yet exists it
* is created.
* The $p_filelist parameter can be an array of string, each string
* representing a filename or a directory name with their path if
* needed. It can also be a single string with names separated by a
* single blank.
* The path indicated in $p_remove_dir will be removed from the
* memorized path of each file / directory listed when this path
* exists. By default nothing is removed (empty path '')
* The path indicated in $p_add_dir will be added at the beginning of
* the memorized path of each file / directory listed. However it can
* be set to empty ''. The adding of a path is done after the removing
* of path.
* The path add/remove ability enables the user to prepare an archive
* for extraction in a different path than the origin files are.
* If a file/dir is already in the archive it will only be added at the
* end of the archive. There is no update of the existing archived
* file/dir. However while extracting the archive, the last file will
* replace the first one. This results in a none optimization of the
* archive size.
* If a file/dir does not exist the file/dir is ignored. However an
* error text is send to PEAR error.
* If a file/dir is not readable the file/dir is ignored. However an
* error text is send to PEAR error.
*
* @param array $p_filelist An array of filenames and directory
* names, or a single string with names
* separated by a single blank space.
* @param string $p_add_dir A string which contains a path to be
* added to the memorized path of each
* element in the list.
* @param string $p_remove_dir A string which contains a path to be
* removed from the memorized path of
* each element in the list, when
* relevant.
* @return true on success, false on error.
* @access public
*/
function addModify($p_filelist, $p_add_dir, $p_remove_dir='')
{
$v_result = true;
if (!$this->_isArchive())
$v_result = $this->createModify($p_filelist, $p_add_dir,
$p_remove_dir);
else {
if (is_array($p_filelist))
$v_list = $p_filelist;
elseif (is_string($p_filelist))
$v_list = explode($this->_separator, $p_filelist);
else {
$this->_error('Invalid file list');
return false;
}
$v_result = $this->_append($v_list, $p_add_dir, $p_remove_dir);
}
return $v_result;
}
// }}}
// {{{ addString()
/**
* This method add a single string as a file at the
* end of the existing archive. If the archive does not yet exists it
* is created.
*
* @param string $p_filename A string which contains the full
* filename path that will be associated
* with the string.
* @param string $p_string The content of the file added in
* the archive.
* @return true on success, false on error.
* @access public
*/
function addString($p_filename, $p_string)
{
$v_result = true;
if (!$this->_isArchive()) {
if (!$this->_openWrite()) {
return false;
}
$this->_close();
}
if (!$this->_openAppend())
return false;
// Need to check the get back to the temporary file ? ....
$v_result = $this->_addString($p_filename, $p_string);
$this->_writeFooter();
$this->_close();
return $v_result;
}
// }}}
// {{{ extractModify()
/**
* This method extract all the content of the archive in the directory
* indicated by $p_path. When relevant the memorized path of the
* files/dir can be modified by removing the $p_remove_path path at the
* beginning of the file/dir path.
* While extracting a file, if the directory path does not exists it is
* created.
* While extracting a file, if the file already exists it is replaced
* without looking for last modification date.
* While extracting a file, if the file already exists and is write
* protected, the extraction is aborted.
* While extracting a file, if a directory with the same name already
* exists, the extraction is aborted.
* While extracting a directory, if a file with the same name already
* exists, the extraction is aborted.
* While extracting a file/directory if the destination directory exist
* and is write protected, or does not exist but can not be created,
* the extraction is aborted.
* If after extraction an extracted file does not show the correct
* stored file size, the extraction is aborted.
* When the extraction is aborted, a PEAR error text is set and false
* is returned. However the result can be a partial extraction that may
* need to be manually cleaned.
*
* @param string $p_path The path of the directory where the
* files/dir need to by extracted.
* @param string $p_remove_path Part of the memorized path that can be
* removed if present at the beginning of
* the file/dir path.
* @return boolean true on success, false on error.
* @access public
* @see extractList()
*/
function extractModify($p_path, $p_remove_path)
{
$v_result = true;
$v_list_detail = array();
if ($v_result = $this->_openRead()) {
$v_result = $this->_extractList($p_path, $v_list_detail,
"complete", 0, $p_remove_path);
$this->_close();
}
return $v_result;
}
// }}}
// {{{ extractInString()
/**
* This method extract from the archive one file identified by $p_filename.
* The return value is a string with the file content, or NULL on error.
* @param string $p_filename The path of the file to extract in a string.
* @return a string with the file content or NULL.
* @access public
*/
function extractInString($p_filename)
{
if ($this->_openRead()) {
$v_result = $this->_extractInString($p_filename);
$this->_close();
} else {
$v_result = NULL;
}
return $v_result;
}
// }}}
// {{{ extractList()
/**
* This method extract from the archive only the files indicated in the
* $p_filelist. These files are extracted in the current directory or
* in the directory indicated by the optional $p_path parameter.
* If indicated the $p_remove_path can be used in the same way as it is
* used in extractModify() method.
* @param array $p_filelist An array of filenames and directory names,
* or a single string with names separated
* by a single blank space.
* @param string $p_path The path of the directory where the
* files/dir need to by extracted.
* @param string $p_remove_path Part of the memorized path that can be
* removed if present at the beginning of
* the file/dir path.
* @return true on success, false on error.
* @access public
* @see extractModify()
*/
function extractList($p_filelist, $p_path='', $p_remove_path='')
{
$v_result = true;
$v_list_detail = array();
if (is_array($p_filelist))
$v_list = $p_filelist;
elseif (is_string($p_filelist))
$v_list = explode($this->_separator, $p_filelist);
else {
$this->_error('Invalid string list');
return false;
}
if ($v_result = $this->_openRead()) {
$v_result = $this->_extractList($p_path, $v_list_detail, "partial",
$v_list, $p_remove_path);
$this->_close();
}
return $v_result;
}
// }}}
// {{{ setAttribute()
/**
* This method set specific attributes of the archive. It uses a variable
* list of parameters, in the format attribute code + attribute values :
* $arch->setAttribute(ARCHIVE_TAR_ATT_SEPARATOR, ',');
* @param mixed $argv variable list of attributes and values
* @return true on success, false on error.
* @access public
*/
function setAttribute()
{
$v_result = true;
// ----- Get the number of variable list of arguments
if (($v_size = func_num_args()) == 0) {
return true;
}
// ----- Get the arguments
$v_att_list = &func_get_args();
// ----- Read the attributes
$i=0;
while ($i<$v_size) {
// ----- Look for next option
switch ($v_att_list[$i]) {
// ----- Look for options that request a string value
case ARCHIVE_TAR_ATT_SEPARATOR :
// ----- Check the number of parameters
if (($i+1) >= $v_size) {
$this->_error('Invalid number of parameters for '
.'attribute ARCHIVE_TAR_ATT_SEPARATOR');
return false;
}
// ----- Get the value
$this->_separator = $v_att_list[$i+1];
$i++;
break;
default :
$this->_error('Unknow attribute code '.$v_att_list[$i].'');
return false;
}
// ----- Next attribute
$i++;
}
return $v_result;
}
// }}}
// {{{ _error()
function _error($p_message)
{
// ----- To be completed
$this->raiseError($p_message);
}
// }}}
// {{{ _warning()
function _warning($p_message)
{
// ----- To be completed
$this->raiseError($p_message);
}
// }}}
// {{{ _isArchive()
function _isArchive($p_filename=NULL)
{
if ($p_filename == NULL) {
$p_filename = $this->_tarname;
}
clearstatcache();
return @is_file($p_filename);
}
// }}}
// {{{ _openWrite()
function _openWrite()
{
if ($this->_compress_type == 'gz')
$this->_file = @gzopen($this->_tarname, "wb9");
else if ($this->_compress_type == 'bz2')
$this->_file = @bzopen($this->_tarname, "wb");
else if ($this->_compress_type == 'none')
$this->_file = @fopen($this->_tarname, "wb");
else
$this->_error('Unknown or missing compression type ('
.$this->_compress_type.')');
if ($this->_file == 0) {
$this->_error('Unable to open in write mode \''
.$this->_tarname.'\'');
return false;
}
return true;
}
// }}}
// {{{ _openRead()
function _openRead()
{
if (strtolower(substr($this->_tarname, 0, 7)) == 'http://') {
// ----- Look if a local copy need to be done
if ($this->_temp_tarname == '') {
$this->_temp_tarname = uniqid('tar').'.tmp';
if (!$v_file_from = @fopen($this->_tarname, 'rb')) {
$this->_error('Unable to open in read mode \''
.$this->_tarname.'\'');
$this->_temp_tarname = '';
return false;
}
if (!$v_file_to = @fopen($this->_temp_tarname, 'wb')) {
$this->_error('Unable to open in write mode \''
.$this->_temp_tarname.'\'');
$this->_temp_tarname = '';
return false;
}
while ($v_data = @fread($v_file_from, 1024))
@fwrite($v_file_to, $v_data);
@fclose($v_file_from);
@fclose($v_file_to);
}
// ----- File to open if the local copy
$v_filename = $this->_temp_tarname;
} else
// ----- File to open if the normal Tar file
$v_filename = $this->_tarname;
if ($this->_compress_type == 'gz')
$this->_file = @gzopen($v_filename, "rb");
else if ($this->_compress_type == 'bz2')
$this->_file = @bzopen($v_filename, "rb");
else if ($this->_compress_type == 'none')
$this->_file = @fopen($v_filename, "rb");
else
$this->_error('Unknown or missing compression type ('
.$this->_compress_type.')');
if ($this->_file == 0) {
$this->_error('Unable to open in read mode \''.$v_filename.'\'');
return false;
}
return true;
}
// }}}
// {{{ _openReadWrite()
function _openReadWrite()
{
if ($this->_compress_type == 'gz')
$this->_file = @gzopen($this->_tarname, "r+b");
else if ($this->_compress_type == 'bz2')
$this->_file = @bzopen($this->_tarname, "r+b");
else if ($this->_compress_type == 'none')
$this->_file = @fopen($this->_tarname, "r+b");
else
$this->_error('Unknown or missing compression type ('
.$this->_compress_type.')');
if ($this->_file == 0) {
$this->_error('Unable to open in read/write mode \''
.$this->_tarname.'\'');
return false;
}
return true;
}
// }}}
// {{{ _close()
function _close()
{
//if (isset($this->_file)) {
if (is_resource($this->_file)) {
if ($this->_compress_type == 'gz')
@gzclose($this->_file);
else if ($this->_compress_type == 'bz2')
@bzclose($this->_file);
else if ($this->_compress_type == 'none')
@fclose($this->_file);
else
$this->_error('Unknown or missing compression type ('
.$this->_compress_type.')');
$this->_file = 0;
}
// ----- Look if a local copy need to be erase
// Note that it might be interesting to keep the url for a time : ToDo
if ($this->_temp_tarname != '') {
@unlink($this->_temp_tarname);
$this->_temp_tarname = '';
}
return true;
}
// }}}
// {{{ _cleanFile()
function _cleanFile()
{
$this->_close();
// ----- Look for a local copy
if ($this->_temp_tarname != '') {
// ----- Remove the local copy but not the remote tarname
@unlink($this->_temp_tarname);
$this->_temp_tarname = '';
} else {
// ----- Remove the local tarname file
@unlink($this->_tarname);
}
$this->_tarname = '';
return true;
}
// }}}
// {{{ _writeBlock()
function _writeBlock($p_binary_data, $p_len=null)
{
if (is_resource($this->_file)) {
if ($p_len === null) {
if ($this->_compress_type == 'gz')
@gzputs($this->_file, $p_binary_data);
else if ($this->_compress_type == 'bz2')
@bzwrite($this->_file, $p_binary_data);
else if ($this->_compress_type == 'none')
@fputs($this->_file, $p_binary_data);
else
$this->_error('Unknown or missing compression type ('
.$this->_compress_type.')');
} else {
if ($this->_compress_type == 'gz')
@gzputs($this->_file, $p_binary_data, $p_len);
else if ($this->_compress_type == 'bz2')
@bzwrite($this->_file, $p_binary_data, $p_len);
else if ($this->_compress_type == 'none')
@fputs($this->_file, $p_binary_data, $p_len);
else
$this->_error('Unknown or missing compression type ('
.$this->_compress_type.')');
}
}
return true;
}
// }}}
// {{{ _readBlock()
function _readBlock()
{
$v_block = null;
if (is_resource($this->_file)) {
if ($this->_compress_type == 'gz')
$v_block = @gzread($this->_file, 512);
else if ($this->_compress_type == 'bz2')
$v_block = @bzread($this->_file, 512);
else if ($this->_compress_type == 'none')
$v_block = @fread($this->_file, 512);
else
$this->_error('Unknown or missing compression type ('
.$this->_compress_type.')');
}
return $v_block;
}
// }}}
// {{{ _jumpBlock()
function _jumpBlock($p_len=null)
{
if (is_resource($this->_file)) {
if ($p_len === null)
$p_len = 1;
if ($this->_compress_type == 'gz') {
@gzseek($this->_file, gztell($this->_file)+($p_len*512));
}
else if ($this->_compress_type == 'bz2') {
// ----- Replace missing bztell() and bzseek()
for ($i=0; $i<$p_len; $i++)
$this->_readBlock();
} else if ($this->_compress_type == 'none')
@fseek($this->_file, ftell($this->_file)+($p_len*512));
else
$this->_error('Unknown or missing compression type ('
.$this->_compress_type.')');
}
return true;
}
// }}}
// {{{ _writeFooter()
function _writeFooter()
{
if (is_resource($this->_file)) {
// ----- Write the last 0 filled block for end of archive
$v_binary_data = pack('a1024', '');
$this->_writeBlock($v_binary_data);
}
return true;
}
// }}}
// {{{ _addList()
function _addList($p_list, $p_add_dir, $p_remove_dir)
{
$v_result=true;
$v_header = array();
// ----- Remove potential windows directory separator
$p_add_dir = $this->_translateWinPath($p_add_dir);
$p_remove_dir = $this->_translateWinPath($p_remove_dir, false);
if (!$this->_file) {
$this->_error('Invalid file descriptor');
return false;
}
if (sizeof($p_list) == 0)
return true;
foreach ($p_list as $v_filename) {
if (!$v_result) {
break;
}
// ----- Skip the current tar name
if ($v_filename == $this->_tarname)
continue;
if ($v_filename == '')
continue;
if (!file_exists($v_filename)) {
$this->_warning("File '$v_filename' does not exist");
continue;
}
// ----- Add the file or directory header
if (!$this->_addFile($v_filename, $v_header, $p_add_dir, $p_remove_dir))
return false;
if (@is_dir($v_filename)) {
if (!($p_hdir = opendir($v_filename))) {
$this->_warning("Directory '$v_filename' can not be read");
continue;
}
while (false !== ($p_hitem = readdir($p_hdir))) {
if (($p_hitem != '.') && ($p_hitem != '..')) {
if ($v_filename != ".")
$p_temp_list[0] = $v_filename.'/'.$p_hitem;
else
$p_temp_list[0] = $p_hitem;
$v_result = $this->_addList($p_temp_list,
$p_add_dir,
$p_remove_dir);
}
}
unset($p_temp_list);
unset($p_hdir);
unset($p_hitem);
}
}
return $v_result;
}
// }}}
// {{{ _addFile()
function _addFile($p_filename, &$p_header, $p_add_dir, $p_remove_dir)
{
if (!$this->_file) {
$this->_error('Invalid file descriptor');
return false;
}
if ($p_filename == '') {
$this->_error('Invalid file name');
return false;
}
// ----- Calculate the stored filename
$p_filename = $this->_translateWinPath($p_filename, false);;
$v_stored_filename = $p_filename;
if (strcmp($p_filename, $p_remove_dir) == 0) {
return true;
}
if ($p_remove_dir != '') {
if (substr($p_remove_dir, -1) != '/')
$p_remove_dir .= '/';
if (substr($p_filename, 0, strlen($p_remove_dir)) == $p_remove_dir)
$v_stored_filename = substr($p_filename, strlen($p_remove_dir));
}
$v_stored_filename = $this->_translateWinPath($v_stored_filename);
if ($p_add_dir != '') {
if (substr($p_add_dir, -1) == '/')
$v_stored_filename = $p_add_dir.$v_stored_filename;
else
$v_stored_filename = $p_add_dir.'/'.$v_stored_filename;
}
$v_stored_filename = $this->_pathReduction($v_stored_filename);
if ($this->_isArchive($p_filename)) {
if (($v_file = @fopen($p_filename, "rb")) == 0) {
$this->_warning("Unable to open file '".$p_filename
."' in binary read mode");
return true;
}
if (!$this->_writeHeader($p_filename, $v_stored_filename))
return false;
while (($v_buffer = fread($v_file, 512)) != '') {
$v_binary_data = pack("a512", "$v_buffer");
$this->_writeBlock($v_binary_data);
}
fclose($v_file);
} else {
// ----- Only header for dir
if (!$this->_writeHeader($p_filename, $v_stored_filename))
return false;
}
return true;
}
// }}}
// {{{ _addString()
function _addString($p_filename, $p_string)
{
if (!$this->_file) {
$this->_error('Invalid file descriptor');
return false;
}
if ($p_filename == '') {
$this->_error('Invalid file name');
return false;
}
// ----- Calculate the stored filename
$p_filename = $this->_translateWinPath($p_filename, false);;
if (!$this->_writeHeaderBlock($p_filename, strlen($p_string),
time(), 384, "", 0, 0))
return false;
$i=0;
while (($v_buffer = substr($p_string, (($i++)*512), 512)) != '') {
$v_binary_data = pack("a512", $v_buffer);
$this->_writeBlock($v_binary_data);
}
return true;
}
// }}}
// {{{ _writeHeader()
function _writeHeader($p_filename, $p_stored_filename)
{
if ($p_stored_filename == '')
$p_stored_filename = $p_filename;
$v_reduce_filename = $this->_pathReduction($p_stored_filename);
if (strlen($v_reduce_filename) > 99) {
if (!$this->_writeLongHeader($v_reduce_filename))
return false;
}
$v_info = stat($p_filename);
$v_uid = sprintf("%6s ", DecOct($v_info[4]));
$v_gid = sprintf("%6s ", DecOct($v_info[5]));
$v_perms = sprintf("%6s ", DecOct(fileperms($p_filename)));
$v_mtime = sprintf("%11s", DecOct(filemtime($p_filename)));
if (@is_dir($p_filename)) {
$v_typeflag = "5";
$v_size = sprintf("%11s ", DecOct(0));
} else {
$v_typeflag = '';
clearstatcache();
$v_size = sprintf("%11s ", DecOct(filesize($p_filename)));
}
$v_linkname = '';
$v_magic = '';
$v_version = '';
$v_uname = '';
$v_gname = '';
$v_devmajor = '';
$v_devminor = '';
$v_prefix = '';
$v_binary_data_first = pack("a100a8a8a8a12A12",
$v_reduce_filename, $v_perms, $v_uid,
$v_gid, $v_size, $v_mtime);
$v_binary_data_last = pack("a1a100a6a2a32a32a8a8a155a12",
$v_typeflag, $v_linkname, $v_magic,
$v_version, $v_uname, $v_gname,
$v_devmajor, $v_devminor, $v_prefix, '');
// ----- Calculate the checksum
$v_checksum = 0;
// ..... First part of the header
for ($i=0; $i<148; $i++)
$v_checksum += ord(substr($v_binary_data_first,$i,1));
// ..... Ignore the checksum value and replace it by ' ' (space)
for ($i=148; $i<156; $i++)
$v_checksum += ord(' ');
// ..... Last part of the header
for ($i=156, $j=0; $i<512; $i++, $j++)
$v_checksum += ord(substr($v_binary_data_last,$j,1));
// ----- Write the first 148 bytes of the header in the archive
$this->_writeBlock($v_binary_data_first, 148);
// ----- Write the calculated checksum
$v_checksum = sprintf("%6s ", DecOct($v_checksum));
$v_binary_data = pack("a8", $v_checksum);
$this->_writeBlock($v_binary_data, 8);
// ----- Write the last 356 bytes of the header in the archive
$this->_writeBlock($v_binary_data_last, 356);
return true;
}
// }}}
// {{{ _writeHeaderBlock()
function _writeHeaderBlock($p_filename, $p_size, $p_mtime=0, $p_perms=0,
$p_type='', $p_uid=0, $p_gid=0)
{
$p_filename = $this->_pathReduction($p_filename);
if (strlen($p_filename) > 99) {
if (!$this->_writeLongHeader($p_filename))
return false;
}
if ($p_type == "5") {
$v_size = sprintf("%11s ", DecOct(0));
} else {
$v_size = sprintf("%11s ", DecOct($p_size));
}
$v_uid = sprintf("%6s ", DecOct($p_uid));
$v_gid = sprintf("%6s ", DecOct($p_gid));
$v_perms = sprintf("%6s ", DecOct($p_perms));
$v_mtime = sprintf("%11s", DecOct($p_mtime));
$v_linkname = '';
$v_magic = '';
$v_version = '';
$v_uname = '';
$v_gname = '';
$v_devmajor = '';
$v_devminor = '';
$v_prefix = '';
$v_binary_data_first = pack("a100a8a8a8a12A12",
$p_filename, $v_perms, $v_uid, $v_gid,
$v_size, $v_mtime);
$v_binary_data_last = pack("a1a100a6a2a32a32a8a8a155a12",
$p_type, $v_linkname, $v_magic,
$v_version, $v_uname, $v_gname,
$v_devmajor, $v_devminor, $v_prefix, '');
// ----- Calculate the checksum
$v_checksum = 0;
// ..... First part of the header
for ($i=0; $i<148; $i++)
$v_checksum += ord(substr($v_binary_data_first,$i,1));
// ..... Ignore the checksum value and replace it by ' ' (space)
for ($i=148; $i<156; $i++)
$v_checksum += ord(' ');
// ..... Last part of the header
for ($i=156, $j=0; $i<512; $i++, $j++)
$v_checksum += ord(substr($v_binary_data_last,$j,1));
// ----- Write the first 148 bytes of the header in the archive
$this->_writeBlock($v_binary_data_first, 148);
// ----- Write the calculated checksum
$v_checksum = sprintf("%6s ", DecOct($v_checksum));
$v_binary_data = pack("a8", $v_checksum);
$this->_writeBlock($v_binary_data, 8);
// ----- Write the last 356 bytes of the header in the archive
$this->_writeBlock($v_binary_data_last, 356);
return true;
}
// }}}
// {{{ _writeLongHeader()
function _writeLongHeader($p_filename)
{
$v_size = sprintf("%11s ", DecOct(strlen($p_filename)));
$v_typeflag = 'L';
$v_linkname = '';
$v_magic = '';
$v_version = '';
$v_uname = '';
$v_gname = '';
$v_devmajor = '';
$v_devminor = '';
$v_prefix = '';
$v_binary_data_first = pack("a100a8a8a8a12A12",
'././@LongLink', 0, 0, 0, $v_size, 0);
$v_binary_data_last = pack("a1a100a6a2a32a32a8a8a155a12",
$v_typeflag, $v_linkname, $v_magic,
$v_version, $v_uname, $v_gname,
$v_devmajor, $v_devminor, $v_prefix, '');
// ----- Calculate the checksum
$v_checksum = 0;
// ..... First part of the header
for ($i=0; $i<148; $i++)
$v_checksum += ord(substr($v_binary_data_first,$i,1));
// ..... Ignore the checksum value and replace it by ' ' (space)
for ($i=148; $i<156; $i++)
$v_checksum += ord(' ');
// ..... Last part of the header
for ($i=156, $j=0; $i<512; $i++, $j++)
$v_checksum += ord(substr($v_binary_data_last,$j,1));
// ----- Write the first 148 bytes of the header in the archive
$this->_writeBlock($v_binary_data_first, 148);
// ----- Write the calculated checksum
$v_checksum = sprintf("%6s ", DecOct($v_checksum));
$v_binary_data = pack("a8", $v_checksum);
$this->_writeBlock($v_binary_data, 8);
// ----- Write the last 356 bytes of the header in the archive
$this->_writeBlock($v_binary_data_last, 356);
// ----- Write the filename as content of the block
$i=0;
while (($v_buffer = substr($p_filename, (($i++)*512), 512)) != '') {
$v_binary_data = pack("a512", "$v_buffer");
$this->_writeBlock($v_binary_data);
}
return true;
}
// }}}
// {{{ _readHeader()
function _readHeader($v_binary_data, &$v_header)
{
if (strlen($v_binary_data)==0) {
$v_header['filename'] = '';
return true;
}
if (strlen($v_binary_data) != 512) {
$v_header['filename'] = '';
$this->_error('Invalid block size : '.strlen($v_binary_data));
return false;
}
if (!is_array($v_header)) {
$v_header = array();
}
// ----- Calculate the checksum
$v_checksum = 0;
// ..... First part of the header
for ($i=0; $i<148; $i++)
$v_checksum+=ord(substr($v_binary_data,$i,1));
// ..... Ignore the checksum value and replace it by ' ' (space)
for ($i=148; $i<156; $i++)
$v_checksum += ord(' ');
// ..... Last part of the header
for ($i=156; $i<512; $i++)
$v_checksum+=ord(substr($v_binary_data,$i,1));
$v_data = unpack("a100filename/a8mode/a8uid/a8gid/a12size/a12mtime/"
."a8checksum/a1typeflag/a100link/a6magic/a2version/"
."a32uname/a32gname/a8devmajor/a8devminor",
$v_binary_data);
// ----- Extract the checksum
$v_header['checksum'] = OctDec(trim($v_data['checksum']));
if ($v_header['checksum'] != $v_checksum) {
$v_header['filename'] = '';
// ----- Look for last block (empty block)
if (($v_checksum == 256) && ($v_header['checksum'] == 0))
return true;
$this->_error('Invalid checksum for file "'.$v_data['filename']
.'" : '.$v_checksum.' calculated, '
.$v_header['checksum'].' expected');
return false;
}
// ----- Extract the properties
$v_header['filename'] = trim($v_data['filename']);
if ($this->_maliciousFilename($v_header['filename'])) {
$this->_error('Malicious .tar detected, file "' . $v_header['filename'] .
'" will not install in desired directory tree');
return false;
}
$v_header['mode'] = OctDec(trim($v_data['mode']));
$v_header['uid'] = OctDec(trim($v_data['uid']));
$v_header['gid'] = OctDec(trim($v_data['gid']));
$v_header['size'] = OctDec(trim($v_data['size']));
$v_header['mtime'] = OctDec(trim($v_data['mtime']));
if (($v_header['typeflag'] = $v_data['typeflag']) == "5") {
$v_header['size'] = 0;
}
$v_header['link'] = trim($v_data['link']);
/* ----- All these fields are removed form the header because
they do not carry interesting info
$v_header[magic] = trim($v_data[magic]);
$v_header[version] = trim($v_data[version]);
$v_header[uname] = trim($v_data[uname]);
$v_header[gname] = trim($v_data[gname]);
$v_header[devmajor] = trim($v_data[devmajor]);
$v_header[devminor] = trim($v_data[devminor]);
*/
return true;
}
// }}}
// {{{ _maliciousFilename()
/**
* Detect and report a malicious file name
*
* @param string $file
* @return bool
* @access private
*/
function _maliciousFilename($file)
{
if (strpos($file, '/../') !== false) {
return true;
}
if (strpos($file, '../') === 0) {
return true;
}
return false;
}
// }}}
// {{{ _readLongHeader()
function _readLongHeader(&$v_header)
{
$v_filename = '';
$n = floor($v_header['size']/512);
for ($i=0; $i<$n; $i++) {
$v_content = $this->_readBlock();
$v_filename .= $v_content;
}
if (($v_header['size'] % 512) != 0) {
$v_content = $this->_readBlock();
$v_filename .= $v_content;
}
// ----- Read the next header
$v_binary_data = $this->_readBlock();
if (!$this->_readHeader($v_binary_data, $v_header))
return false;
$v_header['filename'] = $v_filename;
if ($this->_maliciousFilename($v_filename)) {
$this->_error('Malicious .tar detected, file "' . $v_filename .
'" will not install in desired directory tree');
return false;
}
return true;
}
// }}}
// {{{ _extractInString()
/**
* This method extract from the archive one file identified by $p_filename.
* The return value is a string with the file content, or NULL on error.
* @param string $p_filename The path of the file to extract in a string.
* @return a string with the file content or NULL.
* @access private
*/
function _extractInString($p_filename)
{
$v_result_str = "";
While (strlen($v_binary_data = $this->_readBlock()) != 0)
{
if (!$this->_readHeader($v_binary_data, $v_header))
return NULL;
if ($v_header['filename'] == '')
continue;
// ----- Look for long filename
if ($v_header['typeflag'] == 'L') {
if (!$this->_readLongHeader($v_header))
return NULL;
}
if ($v_header['filename'] == $p_filename) {
if ($v_header['typeflag'] == "5") {
$this->_error('Unable to extract in string a directory '
.'entry {'.$v_header['filename'].'}');
return NULL;
} else {
$n = floor($v_header['size']/512);
for ($i=0; $i<$n; $i++) {
$v_result_str .= $this->_readBlock();
}
if (($v_header['size'] % 512) != 0) {
$v_content = $this->_readBlock();
$v_result_str .= substr($v_content, 0,
($v_header['size'] % 512));
}
return $v_result_str;
}
} else {
$this->_jumpBlock(ceil(($v_header['size']/512)));
}
}
return NULL;
}
// }}}
// {{{ _extractList()
function _extractList($p_path, &$p_list_detail, $p_mode,
$p_file_list, $p_remove_path)
{
$v_result=true;
$v_nb = 0;
$v_extract_all = true;
$v_listing = false;
$p_path = $this->_translateWinPath($p_path, false);
if ($p_path == '' || (substr($p_path, 0, 1) != '/'
&& substr($p_path, 0, 3) != "../" && !strpos($p_path, ':'))) {
$p_path = "./".$p_path;
}
$p_remove_path = $this->_translateWinPath($p_remove_path);
// ----- Look for path to remove format (should end by /)
if (($p_remove_path != '') && (substr($p_remove_path, -1) != '/'))
$p_remove_path .= '/';
$p_remove_path_size = strlen($p_remove_path);
switch ($p_mode) {
case "complete" :
$v_extract_all = TRUE;
$v_listing = FALSE;
break;
case "partial" :
$v_extract_all = FALSE;
$v_listing = FALSE;
break;
case "list" :
$v_extract_all = FALSE;
$v_listing = TRUE;
break;
default :
$this->_error('Invalid extract mode ('.$p_mode.')');
return false;
}
clearstatcache();
while (strlen($v_binary_data = $this->_readBlock()) != 0)
{
$v_extract_file = FALSE;
$v_extraction_stopped = 0;
if (!$this->_readHeader($v_binary_data, $v_header))
return false;
if ($v_header['filename'] == '') {
continue;
}
// ----- Look for long filename
if ($v_header['typeflag'] == 'L') {
if (!$this->_readLongHeader($v_header))
return false;
}
if ((!$v_extract_all) && (is_array($p_file_list))) {
// ----- By default no unzip if the file is not found
$v_extract_file = false;
for ($i=0; $i strlen($p_file_list[$i]))
&& (substr($v_header['filename'], 0, strlen($p_file_list[$i]))
== $p_file_list[$i])) {
$v_extract_file = TRUE;
break;
}
}
// ----- It is a file, so compare the file names
elseif ($p_file_list[$i] == $v_header['filename']) {
$v_extract_file = TRUE;
break;
}
}
} else {
$v_extract_file = TRUE;
}
// ----- Look if this file need to be extracted
if (($v_extract_file) && (!$v_listing))
{
if (($p_remove_path != '')
&& (substr($v_header['filename'], 0, $p_remove_path_size)
== $p_remove_path))
$v_header['filename'] = substr($v_header['filename'],
$p_remove_path_size);
if (($p_path != './') && ($p_path != '/')) {
while (substr($p_path, -1) == '/')
$p_path = substr($p_path, 0, strlen($p_path)-1);
if (substr($v_header['filename'], 0, 1) == '/')
$v_header['filename'] = $p_path.$v_header['filename'];
else
$v_header['filename'] = $p_path.'/'.$v_header['filename'];
}
if (file_exists($v_header['filename'])) {
if ( (@is_dir($v_header['filename']))
&& ($v_header['typeflag'] == '')) {
$this->_error('File '.$v_header['filename']
.' already exists as a directory');
return false;
}
if ( ($this->_isArchive($v_header['filename']))
&& ($v_header['typeflag'] == "5")) {
$this->_error('Directory '.$v_header['filename']
.' already exists as a file');
return false;
}
if (!is_writeable($v_header['filename'])) {
$this->_error('File '.$v_header['filename']
.' already exists and is write protected');
return false;
}
if (filemtime($v_header['filename']) > $v_header['mtime']) {
// To be completed : An error or silent no replace ?
}
}
// ----- Check the directory availability and create it if necessary
elseif (($v_result
= $this->_dirCheck(($v_header['typeflag'] == "5"
?$v_header['filename']
:dirname($v_header['filename'])))) != 1) {
$this->_error('Unable to create path for '.$v_header['filename']);
return false;
}
if ($v_extract_file) {
if ($v_header['typeflag'] == "5") {
if (!@file_exists($v_header['filename'])) {
if (!@mkdir($v_header['filename'], 0777)) {
$this->_error('Unable to create directory {'
.$v_header['filename'].'}');
return false;
}
}
} elseif ($v_header['typeflag'] == "2") {
if (!@symlink($v_header['link'], $v_header['filename'])) {
$this->_error('Unable to extract symbolic link {'
.$v_header['filename'].'}');
return false;
}
} else {
if (($v_dest_file = @fopen($v_header['filename'], "wb")) == 0) {
$this->_error('Error while opening {'.$v_header['filename']
.'} in write binary mode');
return false;
} else {
$n = floor($v_header['size']/512);
for ($i=0; $i<$n; $i++) {
$v_content = $this->_readBlock();
fwrite($v_dest_file, $v_content, 512);
}
if (($v_header['size'] % 512) != 0) {
$v_content = $this->_readBlock();
fwrite($v_dest_file, $v_content, ($v_header['size'] % 512));
}
@fclose($v_dest_file);
// ----- Change the file mode, mtime
@touch($v_header['filename'], $v_header['mtime']);
if ($v_header['mode'] & 0111) {
// make file executable, obey umask
$mode = fileperms($v_header['filename']) | (~umask() & 0111);
@chmod($v_header['filename'], $mode);
}
}
// ----- Check the file size
clearstatcache();
if (filesize($v_header['filename']) != $v_header['size']) {
$this->_error('Extracted file '.$v_header['filename']
.' does not have the correct file size \''
.filesize($v_header['filename'])
.'\' ('.$v_header['size']
.' expected). Archive may be corrupted.');
return false;
}
}
} else {
$this->_jumpBlock(ceil(($v_header['size']/512)));
}
} else {
$this->_jumpBlock(ceil(($v_header['size']/512)));
}
/* TBC : Seems to be unused ...
if ($this->_compress)
$v_end_of_file = @gzeof($this->_file);
else
$v_end_of_file = @feof($this->_file);
*/
if ($v_listing || $v_extract_file || $v_extraction_stopped) {
// ----- Log extracted files
if (($v_file_dir = dirname($v_header['filename']))
== $v_header['filename'])
$v_file_dir = '';
if ((substr($v_header['filename'], 0, 1) == '/') && ($v_file_dir == ''))
$v_file_dir = '/';
$p_list_detail[$v_nb++] = $v_header;
if (is_array($p_file_list) && (count($p_list_detail) == count($p_file_list))) {
return true;
}
}
}
return true;
}
// }}}
// {{{ _openAppend()
function _openAppend()
{
if (filesize($this->_tarname) == 0)
return $this->_openWrite();
if ($this->_compress) {
$this->_close();
if (!@rename($this->_tarname, $this->_tarname.".tmp")) {
$this->_error('Error while renaming \''.$this->_tarname
.'\' to temporary file \''.$this->_tarname
.'.tmp\'');
return false;
}
if ($this->_compress_type == 'gz')
$v_temp_tar = @gzopen($this->_tarname.".tmp", "rb");
elseif ($this->_compress_type == 'bz2')
$v_temp_tar = @bzopen($this->_tarname.".tmp", "rb");
if ($v_temp_tar == 0) {
$this->_error('Unable to open file \''.$this->_tarname
.'.tmp\' in binary read mode');
@rename($this->_tarname.".tmp", $this->_tarname);
return false;
}
if (!$this->_openWrite()) {
@rename($this->_tarname.".tmp", $this->_tarname);
return false;
}
if ($this->_compress_type == 'gz') {
while (!@gzeof($v_temp_tar)) {
$v_buffer = @gzread($v_temp_tar, 512);
if ($v_buffer == ARCHIVE_TAR_END_BLOCK) {
// do not copy end blocks, we will re-make them
// after appending
continue;
}
$v_binary_data = pack("a512", $v_buffer);
$this->_writeBlock($v_binary_data);
}
@gzclose($v_temp_tar);
}
elseif ($this->_compress_type == 'bz2') {
while (strlen($v_buffer = @bzread($v_temp_tar, 512)) > 0) {
if ($v_buffer == ARCHIVE_TAR_END_BLOCK) {
continue;
}
$v_binary_data = pack("a512", $v_buffer);
$this->_writeBlock($v_binary_data);
}
@bzclose($v_temp_tar);
}
if (!@unlink($this->_tarname.".tmp")) {
$this->_error('Error while deleting temporary file \''
.$this->_tarname.'.tmp\'');
}
} else {
// ----- For not compressed tar, just add files before the last
// one or two 512 bytes block
if (!$this->_openReadWrite())
return false;
clearstatcache();
$v_size = filesize($this->_tarname);
// We might have zero, one or two end blocks.
// The standard is two, but we should try to handle
// other cases.
fseek($this->_file, $v_size - 1024);
if (fread($this->_file, 512) == ARCHIVE_TAR_END_BLOCK) {
fseek($this->_file, $v_size - 1024);
}
elseif (fread($this->_file, 512) == ARCHIVE_TAR_END_BLOCK) {
fseek($this->_file, $v_size - 512);
}
}
return true;
}
// }}}
// {{{ _append()
function _append($p_filelist, $p_add_dir='', $p_remove_dir='')
{
if (!$this->_openAppend())
return false;
if ($this->_addList($p_filelist, $p_add_dir, $p_remove_dir))
$this->_writeFooter();
$this->_close();
return true;
}
// }}}
// {{{ _dirCheck()
/**
* Check if a directory exists and create it (including parent
* dirs) if not.
*
* @param string $p_dir directory to check
*
* @return bool TRUE if the directory exists or was created
*/
function _dirCheck($p_dir)
{
clearstatcache();
if ((@is_dir($p_dir)) || ($p_dir == ''))
return true;
$p_parent_dir = dirname($p_dir);
if (($p_parent_dir != $p_dir) &&
($p_parent_dir != '') &&
(!$this->_dirCheck($p_parent_dir)))
return false;
if (!@mkdir($p_dir, 0777)) {
$this->_error("Unable to create directory '$p_dir'");
return false;
}
return true;
}
// }}}
// {{{ _pathReduction()
/**
* Compress path by changing for example "/dir/foo/../bar" to "/dir/bar",
* rand emove double slashes.
*
* @param string $p_dir path to reduce
*
* @return string reduced path
*
* @access private
*
*/
function _pathReduction($p_dir)
{
$v_result = '';
// ----- Look for not empty path
if ($p_dir != '') {
// ----- Explode path by directory names
$v_list = explode('/', $p_dir);
// ----- Study directories from last to first
for ($i=sizeof($v_list)-1; $i>=0; $i--) {
// ----- Look for current path
if ($v_list[$i] == ".") {
// ----- Ignore this directory
// Should be the first $i=0, but no check is done
}
else if ($v_list[$i] == "..") {
// ----- Ignore it and ignore the $i-1
$i--;
}
else if ( ($v_list[$i] == '')
&& ($i!=(sizeof($v_list)-1))
&& ($i!=0)) {
// ----- Ignore only the double '//' in path,
// but not the first and last /
} else {
$v_result = $v_list[$i].($i!=(sizeof($v_list)-1)?'/'
.$v_result:'');
}
}
}
$v_result = strtr($v_result, '\\', '/');
return $v_result;
}
// }}}
// {{{ _translateWinPath()
function _translateWinPath($p_path, $p_remove_disk_letter=true)
{
if (defined('OS_WINDOWS') && OS_WINDOWS) {
// ----- Look for potential disk letter
if ( ($p_remove_disk_letter)
&& (($v_position = strpos($p_path, ':')) != false)) {
$p_path = substr($p_path, $v_position+1);
}
// ----- Change potential windows directory separator
if ((strpos($p_path, '\\') > 0) || (substr($p_path, 0,1) == '\\')) {
$p_path = strtr($p_path, '\\', '/');
}
}
return $p_path;
}
// }}}
}
?>
catalog/libs/PEAR/Console/ 0000755 5773401 0100224 00000000000 10625427744 017252 5 ustar tonerlogics pg116757 0000000 0000000 catalog/libs/PEAR/Console/Getopt.php 0000644 5773401 0100224 00000022477 10625427745 021242 0 ustar tonerlogics pg116757 0000000 0000000 |
// +----------------------------------------------------------------------+
//
// $Id: Getopt.php,v 1.29 2006/12/08 17:28:37 andrei Exp $
require_once 'PEAR.php';
/**
* Command-line options parsing class.
*
* @author Andrei Zmievski
*
*/
class Console_Getopt {
/**
* Parses the command-line options.
*
* The first parameter to this function should be the list of command-line
* arguments without the leading reference to the running program.
*
* The second parameter is a string of allowed short options. Each of the
* option letters can be followed by a colon ':' to specify that the option
* requires an argument, or a double colon '::' to specify that the option
* takes an optional argument.
*
* The third argument is an optional array of allowed long options. The
* leading '--' should not be included in the option name. Options that
* require an argument should be followed by '=', and options that take an
* option argument should be followed by '=='.
*
* The return value is an array of two elements: the list of parsed
* options and the list of non-option command-line arguments. Each entry in
* the list of parsed options is a pair of elements - the first one
* specifies the option, and the second one specifies the option argument,
* if there was one.
*
* Long and short options can be mixed.
*
* Most of the semantics of this function are based on GNU getopt_long().
*
* @param array $args an array of command-line arguments
* @param string $short_options specifies the list of allowed short options
* @param array $long_options specifies the list of allowed long options
*
* @return array two-element array containing the list of parsed options and
* the non-option arguments
*
* @access public
*
*/
function getopt2($args, $short_options, $long_options = null)
{
return Console_Getopt::doGetopt(2, $args, $short_options, $long_options);
}
/**
* This function expects $args to start with the script name (POSIX-style).
* Preserved for backwards compatibility.
* @see getopt2()
*/
function getopt($args, $short_options, $long_options = null)
{
return Console_Getopt::doGetopt(1, $args, $short_options, $long_options);
}
/**
* The actual implementation of the argument parsing code.
*/
function doGetopt($version, $args, $short_options, $long_options = null)
{
// in case you pass directly readPHPArgv() as the first arg
if (PEAR::isError($args)) {
return $args;
}
if (empty($args)) {
return array(array(), array());
}
$opts = array();
$non_opts = array();
settype($args, 'array');
if ($long_options) {
sort($long_options);
}
/*
* Preserve backwards compatibility with callers that relied on
* erroneous POSIX fix.
*/
if ($version < 2) {
if (isset($args[0]{0}) && $args[0]{0} != '-') {
array_shift($args);
}
}
reset($args);
while (list($i, $arg) = each($args)) {
/* The special element '--' means explicit end of
options. Treat the rest of the arguments as non-options
and end the loop. */
if ($arg == '--') {
$non_opts = array_merge($non_opts, array_slice($args, $i + 1));
break;
}
if ($arg{0} != '-' || (strlen($arg) > 1 && $arg{1} == '-' && !$long_options)) {
$non_opts = array_merge($non_opts, array_slice($args, $i));
break;
} elseif (strlen($arg) > 1 && $arg{1} == '-') {
$error = Console_Getopt::_parseLongOption(substr($arg, 2), $long_options, $opts, $args);
if (PEAR::isError($error))
return $error;
} else {
$error = Console_Getopt::_parseShortOption(substr($arg, 1), $short_options, $opts, $args);
if (PEAR::isError($error))
return $error;
}
}
return array($opts, $non_opts);
}
/**
* @access private
*
*/
function _parseShortOption($arg, $short_options, &$opts, &$args)
{
for ($i = 0; $i < strlen($arg); $i++) {
$opt = $arg{$i};
$opt_arg = null;
/* Try to find the short option in the specifier string. */
if (($spec = strstr($short_options, $opt)) === false || $arg{$i} == ':')
{
return PEAR::raiseError("Console_Getopt: unrecognized option -- $opt");
}
if (strlen($spec) > 1 && $spec{1} == ':') {
if (strlen($spec) > 2 && $spec{2} == ':') {
if ($i + 1 < strlen($arg)) {
/* Option takes an optional argument. Use the remainder of
the arg string if there is anything left. */
$opts[] = array($opt, substr($arg, $i + 1));
break;
}
} else {
/* Option requires an argument. Use the remainder of the arg
string if there is anything left. */
if ($i + 1 < strlen($arg)) {
$opts[] = array($opt, substr($arg, $i + 1));
break;
} else if (list(, $opt_arg) = each($args))
/* Else use the next argument. */;
else
return PEAR::raiseError("Console_Getopt: option requires an argument -- $opt");
}
}
$opts[] = array($opt, $opt_arg);
}
}
/**
* @access private
*
*/
function _parseLongOption($arg, $long_options, &$opts, &$args)
{
@list($opt, $opt_arg) = explode('=', $arg, 2);
$opt_len = strlen($opt);
for ($i = 0; $i < count($long_options); $i++) {
$long_opt = $long_options[$i];
$opt_start = substr($long_opt, 0, $opt_len);
/* Option doesn't match. Go on to the next one. */
if ($opt_start != $opt)
continue;
$opt_rest = substr($long_opt, $opt_len);
/* Check that the options uniquely matches one of the allowed
options. */
if ($opt_rest != '' && $opt{0} != '=' &&
$i + 1 < count($long_options) &&
$opt == substr($long_options[$i+1], 0, $opt_len)) {
return PEAR::raiseError("Console_Getopt: option --$opt is ambiguous");
}
if (substr($long_opt, -1) == '=') {
if (substr($long_opt, -2) != '==') {
/* Long option requires an argument.
Take the next argument if one wasn't specified. */;
if (!strlen($opt_arg) && !(list(, $opt_arg) = each($args))) {
return PEAR::raiseError("Console_Getopt: option --$opt requires an argument");
}
}
} else if ($opt_arg) {
return PEAR::raiseError("Console_Getopt: option --$opt doesn't allow an argument");
}
$opts[] = array('--' . $opt, $opt_arg);
return;
}
return PEAR::raiseError("Console_Getopt: unrecognized option --$opt");
}
/**
* Safely read the $argv PHP array across different PHP configurations.
* Will take care on register_globals and register_argc_argv ini directives
*
* @access public
* @return mixed the $argv PHP array or PEAR error if not registered
*/
function readPHPArgv()
{
global $argv;
if (!is_array($argv)) {
if (!@is_array($_SERVER['argv'])) {
if (!@is_array($GLOBALS['HTTP_SERVER_VARS']['argv'])) {
return PEAR::raiseError("Console_Getopt: Could not read cmd args (register_argc_argv=Off?)");
}
return $GLOBALS['HTTP_SERVER_VARS']['argv'];
}
return $_SERVER['argv'];
}
return $argv;
}
}
?>
catalog/libs/PEAR/data/ 0000755 5773401 0100224 00000000000 10625427751 016557 5 ustar tonerlogics pg116757 0000000 0000000 catalog/libs/PEAR/data/MDB2/ 0000755 5773401 0100224 00000000000 10625427750 017242 5 ustar tonerlogics pg116757 0000000 0000000 catalog/libs/PEAR/data/MDB2/LICENSE 0000644 5773401 0100224 00000005507 10625427751 020257 0 ustar tonerlogics pg116757 0000000 0000000 // +----------------------------------------------------------------------+
// | Copyright (c) 1998-2006 Manuel Lemos, Tomas V.V.Cox, |
// | Stig. S. Bakken, Lukas Smith |
// | All rights reserved. |
// +----------------------------------------------------------------------+
// | MDB2 is a merge of PEAR DB and Metabases that provides a unified DB |
// | API as well as database abstraction for PHP applications. |
// | This LICENSE is in the BSD license style. |
// | |
// | Redistribution and use in source and binary forms, with or without |
// | modification, are permitted provided that the following conditions |
// | are met: |
// | |
// | Redistributions of source code must retain the above copyright |
// | notice, this list of conditions and the following disclaimer. |
// | |
// | Redistributions in binary form must reproduce the above copyright |
// | notice, this list of conditions and the following disclaimer in the |
// | documentation and/or other materials provided with the distribution. |
// | |
// | Neither the name of Manuel Lemos, Tomas V.V.Cox, Stig. S. Bakken, |
// | Lukas Smith nor the names of his contributors may be used to endorse |
// | or promote products derived from this software without specific prior|
// | written permission. |
// | |
// | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
// | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
// | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS |
// | FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE |
// | REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, |
// | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, |
// | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS|
// | OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED |
// | AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
// | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY|
// | WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
// | POSSIBILITY OF SUCH DAMAGE. |
// +----------------------------------------------------------------------+ catalog/libs/PEAR/data/PEAR/ 0000755 5773401 0100224 00000000000 10625427751 017306 5 ustar tonerlogics pg116757 0000000 0000000 catalog/libs/PEAR/data/PEAR/package.dtd 0000644 5773401 0100224 00000006477 10625427751 021414 0 ustar tonerlogics pg116757 0000000 0000000
catalog/libs/PEAR/data/PEAR/template.spec 0000644 5773401 0100224 00000003725 10625427752 022005 0 ustar tonerlogics pg116757 0000000 0000000 Summary: PEAR: @summary@
Name: @rpm_package@
Version: @version@
Release: 1
License: @release_license@
Group: Development/Libraries
Source: http://@master_server@/get/@package@-%{version}.tgz
BuildRoot: %{_tmppath}/%{name}-root
URL: http://@master_server@/package/@package@
Prefix: %{_prefix}
BuildArchitectures: @arch@
@extra_headers@
%description
@description@
%prep
rm -rf %{buildroot}/*
%setup -c -T
# XXX Source files location is missing here in pear cmd
pear -v -c %{buildroot}/pearrc \
-d php_dir=%{_libdir}/php/pear \
-d doc_dir=/docs \
-d bin_dir=%{_bindir} \
-d data_dir=%{_libdir}/php/pear/data \
-d test_dir=%{_libdir}/php/pear/tests \
-d ext_dir=%{_libdir} \@extra_config@
-s
%build
echo BuildRoot=%{buildroot}
%postun
# if refcount = 0 then package has been removed (not upgraded)
if [ "$1" -eq "0" ]; then
pear uninstall --nodeps -r @possible_channel@@package@
rm @rpm_xml_dir@/@package@.xml
fi
%post
# if refcount = 2 then package has been upgraded
if [ "$1" -ge "2" ]; then
pear upgrade --nodeps -r @rpm_xml_dir@/@package@.xml
else
pear install --nodeps -r @rpm_xml_dir@/@package@.xml
fi
%install
pear -c %{buildroot}/pearrc install --nodeps -R %{buildroot} \
$RPM_SOURCE_DIR/@package@-%{version}.tgz
rm %{buildroot}/pearrc
rm %{buildroot}/%{_libdir}/php/pear/.filemap
rm %{buildroot}/%{_libdir}/php/pear/.lock
rm -rf %{buildroot}/%{_libdir}/php/pear/.registry
if [ "@doc_files@" != "" ]; then
mv %{buildroot}/docs/@package@/* .
rm -rf %{buildroot}/docs
fi
mkdir -p %{buildroot}@rpm_xml_dir@
tar -xzf $RPM_SOURCE_DIR/@package@-%{version}.tgz package@package2xml@.xml
cp -p package@package2xml@.xml %{buildroot}@rpm_xml_dir@/@package@.xml
#rm -rf %{buildroot}/*
#pear -q install -R %{buildroot} -n package@package2xml@.xml
#mkdir -p %{buildroot}@rpm_xml_dir@
#cp -p package@package2xml@.xml %{buildroot}@rpm_xml_dir@/@package@.xml
%files
%defattr(-,root,root)
%doc @doc_files@
/
catalog/libs/PEAR/data/Structures_Graph/ 0000755 5773401 0100224 00000000000 10625427755 022067 5 ustar tonerlogics pg116757 0000000 0000000 catalog/libs/PEAR/data/Structures_Graph/genpackage.xml.pl 0000644 5773401 0100224 00000000642 10625427753 025310 0 ustar tonerlogics pg116757 0000000 0000000 #!/usr/bin/perl
while (<>) {
if (!/FILESGOHERE/) {
print $_;
} else {
open FILELIST,'find Structures -type f | grep -v .arch-ids |';
while () {
$md5sum = `md5sum $_`;
chomp($md5sum);
$md5sum = substr $md5sum, 0, 32;
# $_ =~ s/\//\\\//g;
chomp($_);
print " \n";
}
}
}
catalog/libs/PEAR/data/Structures_Graph/LICENSE 0000644 5773401 0100224 00000063476 10625427754 023113 0 ustar tonerlogics pg116757 0000000 0000000 GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the Lesser GPL. It also counts
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it. You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.
When we speak of free software, we are referring to freedom of use,
not price. Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.
To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights. These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.
To protect each distributor, we want to make it very clear that
there is no warranty for the free library. Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.
Finally, software patents pose a constant threat to the existence of
any free program. We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder. Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.
Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License. This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License. We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.
When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library. The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom. The Lesser General
Public License permits more lax criteria for linking other code with
the library.
We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License. It also provides other free software developers Less
of an advantage over competing non-free programs. These disadvantages
are the reason we use the ordinary General Public License for many
libraries. However, the Lesser license provides advantages in certain
special circumstances.
For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard. To achieve this, non-free programs must be
allowed to use the library. A more frequent case is that a free
library does the same job as widely used non-free libraries. In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.
In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software. For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.
Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (1) uses at run time a
copy of the library already present on the user's computer system,
rather than copying library functions into the executable, and (2)
will operate properly with a modified version of the library, if
the user installs one, as long as the modified version is
interface-compatible with the version that the work was made with.
c) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
d) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
e) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).
To apply these terms, attach the following notices to the library. It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
Copyright (C)
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!
catalog/libs/PEAR/data/Structures_Graph/package.sh 0000644 5773401 0100224 00000003027 10625427754 024017 0 ustar tonerlogics pg116757 0000000 0000000 #!/bin/bash
VERSION=`tla tree-version 2>&1 | sed "s/^.*\([0-9][0-9]*\.[0-9][0-9]*\)$/\1/g"`
TARGET_DIR=BUILD/
TARGET_DIRS=`find Structures -type d | grep -v .arch-ids`
mkdir -p $TARGET_DIR
./genpackage.xml.pl > BUILD/package.xml << EOF
Structures_Graph
Graph datastructure manipulation library
LGPL
Structures_Graph is a package for creating and manipulating graph datastructures. It allows building of directed
and undirected graphs, with data and metadata stored in nodes. The library provides functions for graph traversing
as well as for characteristic extraction from the graph topology.
sergiosgc
Sérgio Carvalho
sergio.carvalho@portugalmail.com
lead
1.0.3
2007-01-30
stable
Version 1.0.3 is functionally equivalent to 1.0.2, but released with a v1.0 package.xml to deal with bug #9965:installation problem
FILESGOHERE
PEAR
EOF
for dir in $TARGET_DIRS
do
mkdir -p $TARGET_DIR/$dir
cp `find $dir -maxdepth 1 -type f | grep -v .arch-ids` $TARGET_DIR/$dir
done
cp LICENSE BUILD
(cd BUILD; pear package)
rm -Rf BUILD/package.xml BUILD/LICENSE BUILD/Structures
catalog/libs/PEAR/data/Structures_Graph/publish.sh 0000644 5773401 0100224 00000000411 10625427755 024065 0 ustar tonerlogics pg116757 0000000 0000000 #!/bin/sh
./package.sh
scp BUILD/*.tgz root@sergiocarvalho.com:/home/httpd/vhosts/com/sergiocarvalho/pear-base/pear
(cd docs; ./generate.sh)
scp -r docs/html/* root@iluvatar.portugalmail.pt:/home/httpd/vhosts/com/sergiocarvalho/pear-base/pear/docs/Structures_Graph
catalog/libs/PEAR/docs/ 0000755 5773401 0100224 00000000000 10625430000 016553 5 ustar tonerlogics pg116757 0000000 0000000 catalog/libs/PEAR/docs/Archive_Tar/ 0000755 5773401 0100224 00000000000 10625427756 020772 5 ustar tonerlogics pg116757 0000000 0000000 catalog/libs/PEAR/docs/Archive_Tar/docs/ 0000755 5773401 0100224 00000000000 10625427760 021715 5 ustar tonerlogics pg116757 0000000 0000000 catalog/libs/PEAR/docs/Archive_Tar/docs/Archive_Tar.txt 0000644 5773401 0100224 00000043673 10625427761 024663 0 ustar tonerlogics pg116757 0000000 0000000 Documentation for class Archive_Tar
===================================
Last update : 2001-08-15
Overview :
----------
The Archive_Tar class helps in creating and managing GNU TAR format
files compressed by GNU ZIP or not.
The class offers basic functions like creating an archive, adding
files in the archive, extracting files from the archive and listing
the archive content.
It also provide advanced functions that allow the adding and
extraction of files with path manipulation.
Sample :
--------
// ----- Creating the object (uncompressed archive)
$tar_object = new Archive_Tar("tarname.tar");
$tar_object->setErrorHandling(PEAR_ERROR_PRINT);
// ----- Creating the archive
$v_list[0]="file.txt";
$v_list[1]="data/";
$v_list[2]="file.log";
$tar_object->create($v_list);
// ----- Adding files
$v_list[0]="dev/file.txt";
$v_list[1]="dev/data/";
$v_list[2]="log/file.log";
$tar_object->add($v_list);
// ----- Adding more files
$tar_object->add("release/newfile.log release/readme.txt");
// ----- Listing the content
if (($v_list = $tar_object->listContent()) != 0)
for ($i=0; $i";
echo " .size :'".$v_list[$i][size]."'
";
echo " .mtime :'".$v_list[$i][mtime]."' (".date("l dS of F Y h:i:s A", $v_list[$i][mtime]).")
";
echo " .mode :'".$v_list[$i][mode]."'
";
echo " .uid :'".$v_list[$i][uid]."'
";
echo " .gid :'".$v_list[$i][gid]."'
";
echo " .typeflag :'".$v_list[$i][typeflag]."'
";
}
// ----- Extracting the archive in directory "install"
$tar_object->extract("install");
Public arguments :
------------------
None
Public Methods :
----------------
Method : Archive_Tar($p_tarname, $compress = null)
Description :
Archive_Tar Class constructor. This flavour of the constructor only
declare a new Archive_Tar object, identifying it by the name of the
tar file.
If the compress argument is set the tar will be read or created as a
gzip or bz2 compressed TAR file.
Arguments :
$p_tarname : A valid filename for the tar archive file.
$p_compress : can be null, 'gz' or 'bz2'. For
compatibility reason it can also be true. This
parameter indicates if gzip or bz2 compression
is required.
Return value :
The Archive_Tar object.
Sample :
$tar_object = new Archive_Tar("tarname.tar");
$tar_object_compressed = new Archive_Tar("tarname.tgz", true);
How it works :
Initialize the object.
Method : create($p_filelist)
Description :
This method creates the archive file and add the files / directories
that are listed in $p_filelist.
If the file already exists and is writable, it is replaced by the
new tar. It is a create and not an add. If the file exists and is
read-only or is a directory it is not replaced. The method return
false and a PEAR error text.
The $p_filelist parameter can be an array of string, each string
representing a filename or a directory name with their path if
needed. It can also be a single string with names separated by a
single blank.
See also createModify() method for more details.
Arguments :
$p_filelist : An array of filenames and directory names, or a single
string with names separated by a single blank space.
Return value :
true on success, false on error.
Sample 1 :
$tar_object = new Archive_Tar("tarname.tar");
$tar_object->setErrorHandling(PEAR_ERROR_PRINT); // Optional error handling
$v_list[0]="file.txt";
$v_list[1]="data/"; (Optional '/' at the end)
$v_list[2]="file.log";
$tar_object->create($v_list);
Sample 2 :
$tar_object = new Archive_Tar("tarname.tar");
$tar_object->setErrorHandling(PEAR_ERROR_PRINT); // Optional error handling
$tar_object->create("file.txt data/ file.log");
How it works :
Just calling the createModify() method with the right parameters.
Method : createModify($p_filelist, $p_add_dir, $p_remove_dir = "")
Description :
This method creates the archive file and add the files / directories
that are listed in $p_filelist.
If the file already exists and is writable, it is replaced by the
new tar. It is a create and not an add. If the file exists and is
read-only or is a directory it is not replaced. The method return
false and a PEAR error text.
The $p_filelist parameter can be an array of string, each string
representing a filename or a directory name with their path if
needed. It can also be a single string with names separated by a
single blank.
The path indicated in $p_remove_dir will be removed from the
memorized path of each file / directory listed when this path
exists. By default nothing is removed (empty path "")
The path indicated in $p_add_dir will be added at the beginning of
the memorized path of each file / directory listed. However it can
be set to empty "". The adding of a path is done after the removing
of path.
The path add/remove ability enables the user to prepare an archive
for extraction in a different path than the origin files are.
See also addModify() method for file adding properties.
Arguments :
$p_filelist : An array of filenames and directory names, or a single
string with names separated by a single blank space.
$p_add_dir : A string which contains a path to be added to the
memorized path of each element in the list.
$p_remove_dir : A string which contains a path to be removed from
the memorized path of each element in the list, when
relevant.
Return value :
true on success, false on error.
Sample 1 :
$tar_object = new Archive_Tar("tarname.tar");
$tar_object->setErrorHandling(PEAR_ERROR_PRINT); // Optional error handling
$v_list[0]="file.txt";
$v_list[1]="data/"; (Optional '/' at the end)
$v_list[2]="file.log";
$tar_object->createModify($v_list, "install");
// files are stored in the archive as :
// install/file.txt
// install/data
// install/data/file1.txt
// install/data/... all the files and sub-dirs of data/
// install/file.log
Sample 2 :
$tar_object = new Archive_Tar("tarname.tar");
$tar_object->setErrorHandling(PEAR_ERROR_PRINT); // Optional error handling
$v_list[0]="dev/file.txt";
$v_list[1]="dev/data/"; (Optional '/' at the end)
$v_list[2]="log/file.log";
$tar_object->createModify($v_list, "install", "dev");
// files are stored in the archive as :
// install/file.txt
// install/data
// install/data/file1.txt
// install/data/... all the files and sub-dirs of data/
// install/log/file.log
How it works :
Open the file in write mode (erasing the existing one if one),
call the _addList() method for adding the files in an empty archive,
add the tar footer (512 bytes block), close the tar file.
Method : addModify($p_filelist, $p_add_dir, $p_remove_dir="")
Description :
This method add the files / directories listed in $p_filelist at the
end of the existing archive. If the archive does not yet exists it
is created.
The $p_filelist parameter can be an array of string, each string
representing a filename or a directory name with their path if
needed. It can also be a single string with names separated by a
single blank.
The path indicated in $p_remove_dir will be removed from the
memorized path of each file / directory listed when this path
exists. By default nothing is removed (empty path "")
The path indicated in $p_add_dir will be added at the beginning of
the memorized path of each file / directory listed. However it can
be set to empty "". The adding of a path is done after the removing
of path.
The path add/remove ability enables the user to prepare an archive
for extraction in a different path than the origin files are.
If a file/dir is already in the archive it will only be added at the
end of the archive. There is no update of the existing archived
file/dir. However while extracting the archive, the last file will
replace the first one. This results in a none optimization of the
archive size.
If a file/dir does not exist the file/dir is ignored. However an
error text is send to PEAR error.
If a file/dir is not readable the file/dir is ignored. However an
error text is send to PEAR error.
If the resulting filename/dirname (after the add/remove option or
not) string is greater than 99 char, the file/dir is
ignored. However an error text is send to PEAR error.
Arguments :
$p_filelist : An array of filenames and directory names, or a single
string with names separated by a single blank space.
$p_add_dir : A string which contains a path to be added to the
memorized path of each element in the list.
$p_remove_dir : A string which contains a path to be removed from
the memorized path of each element in the list, when
relevant.
Return value :
true on success, false on error.
Sample 1 :
$tar_object = new Archive_Tar("tarname.tar");
[...]
$v_list[0]="dev/file.txt";
$v_list[1]="dev/data/"; (Optional '/' at the end)
$v_list[2]="log/file.log";
$tar_object->addModify($v_list, "install");
// files are stored in the archive as :
// install/file.txt
// install/data
// install/data/file1.txt
// install/data/... all the files and sub-dirs of data/
// install/file.log
Sample 2 :
$tar_object = new Archive_Tar("tarname.tar");
[...]
$v_list[0]="dev/file.txt";
$v_list[1]="dev/data/"; (Optional '/' at the end)
$v_list[2]="log/file.log";
$tar_object->addModify($v_list, "install", "dev");
// files are stored in the archive as :
// install/file.txt
// install/data
// install/data/file1.txt
// install/data/... all the files and sub-dirs of data/
// install/log/file.log
How it works :
If the archive does not exists it create it and add the files.
If the archive does exists and is not compressed, it open it, jump
before the last empty 512 bytes block (tar footer) and add the files
at this point.
If the archive does exists and is compressed, a temporary copy file
is created. This temporary file is then 'gzip' read block by block
until the last empty block. The new files are then added in the
compressed file.
The adding of files is done by going through the file/dir list,
adding files per files, in a recursive way through the
directory. Each time a path need to be added/removed it is done
before writing the file header in the archive.
Method : add($p_filelist)
Description :
This method add the files / directories listed in $p_filelist at the
end of the existing archive. If the archive does not yet exists it
is created.
The $p_filelist parameter can be an array of string, each string
representing a filename or a directory name with their path if
needed. It can also be a single string with names separated by a
single blank.
See addModify() method for details and limitations.
Arguments :
$p_filelist : An array of filenames and directory names, or a single
string with names separated by a single blank space.
Return value :
true on success, false on error.
Sample 1 :
$tar_object = new Archive_Tar("tarname.tar");
[...]
$v_list[0]="dev/file.txt";
$v_list[1]="dev/data/"; (Optional '/' at the end)
$v_list[2]="log/file.log";
$tar_object->add($v_list);
Sample 2 :
$tar_object = new Archive_Tar("tarname.tgz", true);
[...]
$v_list[0]="dev/file.txt";
$v_list[1]="dev/data/"; (Optional '/' at the end)
$v_list[2]="log/file.log";
$tar_object->add($v_list);
How it works :
Simply call the addModify() method with the right parameters.
Method : addString($p_filename, $p_string)
Description :
This method add a single string as a file at the
end of the existing archive. If the archive does not yet exists it
is created.
Arguments :
$p_filename : A string which contains the full filename path
that will be associated with the string.
$p_string : The content of the file added in the archive.
Return value :
true on success, false on error.
Sample 1 :
$v_archive = & new Archive_Tar($p_filename);
$v_archive->setErrorHandling(PEAR_ERROR_PRINT);
$v_result = $v_archive->addString('data/test.txt', 'This is the text of the string');
Method : extract($p_path = "")
Description :
This method extract all the content of the archive in the directory
indicated by $p_path.If $p_path is optional, if not set the archive
is extracted in the current directory.
While extracting a file, if the directory path does not exists it is
created.
See extractModify() for details and limitations.
Arguments :
$p_path : Optional path where the files/dir need to by extracted.
Return value :
true on success, false on error.
Sample :
$tar_object = new Archive_Tar("tarname.tar");
$tar_object->extract();
How it works :
Simply call the extractModify() method with appropriate parameters.
Method : extractModify($p_path, $p_remove_path)
Description :
This method extract all the content of the archive in the directory
indicated by $p_path. When relevant the memorized path of the
files/dir can be modified by removing the $p_remove_path path at the
beginning of the file/dir path.
While extracting a file, if the directory path does not exists it is
created.
While extracting a file, if the file already exists it is replaced
without looking for last modification date.
While extracting a file, if the file already exists and is write
protected, the extraction is aborted.
While extracting a file, if a directory with the same name already
exists, the extraction is aborted.
While extracting a directory, if a file with the same name already
exists, the extraction is aborted.
While extracting a file/directory if the destination directory exist
and is write protected, or does not exist but can not be created,
the extraction is aborted.
If after extraction an extracted file does not show the correct
stored file size, the extraction is aborted.
When the extraction is aborted, a PEAR error text is set and false
is returned. However the result can be a partial extraction that may
need to be manually cleaned.
Arguments :
$p_path : The path of the directory where the files/dir need to by
extracted.
$p_remove_path : Part of the memorized path that can be removed if
present at the beginning of the file/dir path.
Return value :
true on success, false on error.
Sample :
// Imagine tarname.tar with files :
// dev/data/file.txt
// dev/data/log.txt
// readme.txt
$tar_object = new Archive_Tar("tarname.tar");
$tar_object->extractModify("install", "dev");
// Files will be extracted there :
// install/data/file.txt
// install/data/log.txt
// install/readme.txt
How it works :
Open the archive and call a more generic function that can extract
only a part of the archive or all the archive.
See extractList() method for more details.
Method : extractInString($p_filename)
Description :
This method extract from the archive one file identified by $p_filename.
The return value is a string with the file content, or NULL on error.
Arguments :
$p_filename : The path of the file to extract in a string.
Return value :
a string with the file content or NULL.
Sample :
// Imagine tarname.tar with files :
// dev/data/file.txt
// dev/data/log.txt
// dev/readme.txt
$v_archive = & new Archive_Tar('tarname.tar');
$v_archive->setErrorHandling(PEAR_ERROR_PRINT);
$v_string = $v_archive->extractInString('dev/readme.txt');
echo $v_string;
Method : listContent()
Description :
This method returns an array of arrays that describe each
file/directory present in the archive.
The array is not sorted, so it show the position of the file in the
archive.
The file informations are :
$file[filename] : Name and path of the file/dir.
$file[mode] : File permissions (result of fileperms())
$file[uid] : user id
$file[gid] : group id
$file[size] : filesize
$file[mtime] : Last modification time (result of filemtime())
$file[typeflag] : "" for file, "5" for directory
Arguments :
Return value :
An array of arrays or 0 on error.
Sample :
$tar_object = new Archive_Tar("tarname.tar");
if (($v_list = $tar_object->listContent()) != 0)
for ($i=0; $i";
echo " .size :'".$v_list[$i][size]."'
";
echo " .mtime :'".$v_list[$i][mtime]."' (".
date("l dS of F Y h:i:s A", $v_list[$i][mtime]).")
";
echo " .mode :'".$v_list[$i][mode]."'
";
echo " .uid :'".$v_list[$i][uid]."'
";
echo " .gid :'".$v_list[$i][gid]."'
";
echo " .typeflag :'".$v_list[$i][typeflag]."'
";
}
How it works :
Call the same function as an extract however with a flag to only go
through the archive without extracting the files.
Method : extractList($p_filelist, $p_path = "", $p_remove_path = "")
Description :
This method extract from the archive only the files indicated in the
$p_filelist. These files are extracted in the current directory or
in the directory indicated by the optional $p_path parameter.
If indicated the $p_remove_path can be used in the same way as it is
used in extractModify() method.
Arguments :
$p_filelist : An array of filenames and directory names, or a single
string with names separated by a single blank space.
$p_path : The path of the directory where the files/dir need to by
extracted.
$p_remove_path : Part of the memorized path that can be removed if
present at the beginning of the file/dir path.
Return value :
true on success, false on error.
Sample :
// Imagine tarname.tar with files :
// dev/data/file.txt
// dev/data/log.txt
// readme.txt
$tar_object = new Archive_Tar("tarname.tar");
$tar_object->extractList("dev/data/file.txt readme.txt", "install",
"dev");
// Files will be extracted there :
// install/data/file.txt
// install/readme.txt
How it works :
Go through the archive and extract only the files present in the
list.
catalog/libs/PEAR/docs/HTML_Template_IT/ 0000755 5773401 0100224 00000000000 10625427764 021575 5 ustar tonerlogics pg116757 0000000 0000000 catalog/libs/PEAR/docs/HTML_Template_IT/examples/ 0000755 5773401 0100224 00000000000 10625427761 023410 5 ustar tonerlogics pg116757 0000000 0000000 catalog/libs/PEAR/docs/HTML_Template_IT/examples/sample_it.php 0000644 5773401 0100224 00000001230 10625427760 026071 0 ustar tonerlogics pg116757 0000000 0000000 array('Stig', 'Bakken'),
'1' => array('Martin', 'Jansen'),
'2' => array('Alexander', 'Merz')
);
$tpl = new HTML_Template_IT('./templates');
$tpl->loadTemplatefile('main.tpl.htm', true, true);
foreach ($data as $name) {
foreach ($name as $cell) {
// Assign data to the inner block
$tpl->setCurrentBlock('cell');
$tpl->setVariable('DATA', $cell);
$tpl->parseCurrentBlock();
}
// Assign data and the inner block to the
// outer block
$tpl->setCurrentBlock('row');
$tpl->parseCurrentBlock();
}
// print the output
$tpl->show();
?>
catalog/libs/PEAR/docs/HTML_Template_IT/examples/sample_itx_addblockfile.php 0000644 5773401 0100224 00000004055 10625427761 030755 0 ustar tonerlogics pg116757 0000000 0000000 'mypackage',
'version' =>'1.0',
'changelog' => array ('fix bug #002',
'add author FOO to AUTHORS')
),
array ('packagename'=>'mypackage',
'version' =>'1.0 RC 1',
'changelog' => array ('fix bug #002',
'added method foo()')
)
);
$tpl = new HTML_Template_ITX('./templates');
$tpl->loadTemplatefile('addblockfile_main.tpl.htm', true, true);
// The complete content of "addblockfile_main.tpl.htm" will be loaded into a block
// called "list_template". The placeholder {DESCRIPTION} will be replaced
// with the added block "list_template".
$tpl->addBlockfile('DESCRIPTION', 'list_template', 'addblockfile_list.tpl.htm');
// we now have the following blocks loaded:
// __global__, row, list_template and listelement
// lets assign the data.
foreach ($data as $entry) {
// assign data to the inner block (listelement) of list_template.
$tpl->setCurrentBlock('listelement');
foreach ($entry['changelog'] as $changelogentry) {
$tpl->setVariable('ENTRY', $changelogentry);
$tpl->parseCurrentBlock();
}
// assign data to the added list_template block
$tpl->setCurrentBlock('list_template');
$tpl->setVariable('LISTNAME', $entry['version']);
$tpl->parseCurrentBlock();
// back in the original templatefile we assign data to the row block
// notice:
// {DESCRIPTION} is not longer available, because it was replaced by the
// list_template block
$tpl->setCurrentBlock('row');
$tpl->setVariable('NAME', $entry['packagename']);
$tpl->parseCurrentBlock();
}
$tpl->show();
?>
catalog/libs/PEAR/docs/HTML_Template_IT/examples/templates/ 0000755 5773401 0100224 00000000000 10625427764 025411 5 ustar tonerlogics pg116757 0000000 0000000 catalog/libs/PEAR/docs/HTML_Template_IT/examples/templates/addblockfile_list.tpl.htm 0000644 5773401 0100224 00000000132 10625427763 032352 0 ustar tonerlogics pg116757 0000000 0000000 {LISTNAME}