<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[38394] trunk: Bootstrap: add `composer.lock` and `src/wp-vendor` files.</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta" style="font-size: 105%">
<dt style="float: left; width: 6em; font-weight: bold">Revision</dt> <dd><a style="font-weight: bold" href="https://core.trac.wordpress.org/changeset/38394">38394</a><script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","description":"Review this Commit","action":{"@type":"ViewAction","url":"https://core.trac.wordpress.org/changeset/38394","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>wonderboymusic</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2016-08-27 03:48:08 +0000 (Sat, 27 Aug 2016)</dd>
</dl>
<pre style='padding-left: 1em; margin: 2em 0; border-left: 2px solid #ccc; line-height: 1.25; font-size: 105%; font-family: sans-serif'>Bootstrap: add `composer.lock` and `src/wp-vendor` files. Nothing is using this code yet, just going through the motions. Ignore the files in `src/wp-vendor/composer` that will explode in PHP 5.2.
See <a href="https://core.trac.wordpress.org/ticket/36335">#36335</a>.</pre>
<h3>Added Paths</h3>
<ul>
<li><a href="#trunkcomposerlock">trunk/composer.lock</a></li>
<li>trunk/src/wp-vendor/</li>
<li><a href="#trunksrcwpvendorautoload_52php">trunk/src/wp-vendor/autoload_52.php</a></li>
<li>trunk/src/wp-vendor/composer/</li>
<li><a href="#trunksrcwpvendorcomposerClassLoader52php">trunk/src/wp-vendor/composer/ClassLoader52.php</a></li>
<li><a href="#trunksrcwpvendorcomposerLICENSE">trunk/src/wp-vendor/composer/LICENSE</a></li>
<li><a href="#trunksrcwpvendorcomposerautoload_classmapphp">trunk/src/wp-vendor/composer/autoload_classmap.php</a></li>
<li><a href="#trunksrcwpvendorcomposerautoload_namespacesphp">trunk/src/wp-vendor/composer/autoload_namespaces.php</a></li>
<li><a href="#trunksrcwpvendorcomposerautoload_psr4php">trunk/src/wp-vendor/composer/autoload_psr4.php</a></li>
<li><a href="#trunksrcwpvendorcomposerautoload_real_52php">trunk/src/wp-vendor/composer/autoload_real_52.php</a></li>
<li><a href="#trunksrcwpvendorcomposerinstalledjson">trunk/src/wp-vendor/composer/installed.json</a></li>
<li>trunk/src/wp-vendor/xrstf/</li>
<li>trunk/src/wp-vendor/xrstf/composer-php52/</li>
<li><a href="#trunksrcwpvendorxrstfcomposerphp52LICENSE">trunk/src/wp-vendor/xrstf/composer-php52/LICENSE</a></li>
<li><a href="#trunksrcwpvendorxrstfcomposerphp52READMEmd">trunk/src/wp-vendor/xrstf/composer-php52/README.md</a></li>
<li><a href="#trunksrcwpvendorxrstfcomposerphp52composerjson">trunk/src/wp-vendor/xrstf/composer-php52/composer.json</a></li>
<li>trunk/src/wp-vendor/xrstf/composer-php52/lib/</li>
<li>trunk/src/wp-vendor/xrstf/composer-php52/lib/xrstf/</li>
<li>trunk/src/wp-vendor/xrstf/composer-php52/lib/xrstf/Composer52/</li>
<li><a href="#trunksrcwpvendorxrstfcomposerphp52libxrstfComposer52AutoloadGeneratorphp">trunk/src/wp-vendor/xrstf/composer-php52/lib/xrstf/Composer52/AutoloadGenerator.php</a></li>
<li><a href="#trunksrcwpvendorxrstfcomposerphp52libxrstfComposer52ClassLoaderphp">trunk/src/wp-vendor/xrstf/composer-php52/lib/xrstf/Composer52/ClassLoader.php</a></li>
<li><a href="#trunksrcwpvendorxrstfcomposerphp52libxrstfComposer52Generatorphp">trunk/src/wp-vendor/xrstf/composer-php52/lib/xrstf/Composer52/Generator.php</a></li>
</ul>
<h3>Property Changed</h3>
<ul>
<li><a href="#trunk">trunk/</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<span class="cx" style="display: block; padding: 0 10px">Index: trunk
</span><span class="cx" style="display: block; padding: 0 10px">===================================================================
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">--- trunk 2016-08-27 03:35:35 UTC (rev 38393)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+++ trunk 2016-08-27 03:48:08 UTC (rev 38394)
</ins><a id="trunk"></a>
<div class="propset"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Property changes: trunk</h4>
<pre class="diff"><span>
</span></pre></div>
<a id="svnignore"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: svn:ignore</h4></div>
<span class="cx" style="display: block; padding: 0 10px"> npm-debug.log
</span><span class="cx" style="display: block; padding: 0 10px"> build
</span><span class="cx" style="display: block; padding: 0 10px"> wp-cli.local.yml
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+# Composer-generated files that do not pass the 5.2 linter
+src/wp-vendor/autoload.php
+src/wp-vendor/composer/autoload_real.php
+src/wp-vendor/composer/autoload_static.php
+src/wp-vendor/composer/ClassLoader.php
</ins><a id="trunkcomposerlock"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/composer.lock</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/composer.lock (rev 0)
+++ trunk/composer.lock 2016-08-27 03:48:08 UTC (rev 38394)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,50 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+{
+ "_readme": [
+ "This file locks the dependencies of your project to a known state",
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
+ "This file is @generated automatically"
+ ],
+ "hash": "a72f57ac77499086388d3fd01787fc07",
+ "content-hash": "4b675f5b2ea4e6f58fcbdf81132e35bb",
+ "packages": [
+ {
+ "name": "xrstf/composer-php52",
+ "version": "v1.0.20",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer-php52/composer-php52.git",
+ "reference": "bd41459d5e27df8d33057842b32377c39e97a5a8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer-php52/composer-php52/zipball/bd41459d5e27df8d33057842b32377c39e97a5a8",
+ "reference": "bd41459d5e27df8d33057842b32377c39e97a5a8",
+ "shasum": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-default": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "xrstf\\Composer52": "lib/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "time": "2016-04-16 21:52:24"
+ }
+ ],
+ "packages-dev": [],
+ "aliases": [],
+ "minimum-stability": "stable",
+ "stability-flags": [],
+ "prefer-stable": false,
+ "prefer-lowest": false,
+ "platform": [],
+ "platform-dev": []
+}
</ins></span></pre></div>
<a id="trunksrcwpvendorautoload_52php"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/src/wp-vendor/autoload_52.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-vendor/autoload_52.php (rev 0)
+++ trunk/src/wp-vendor/autoload_52.php 2016-08-27 03:48:08 UTC (rev 38394)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,7 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+
+// autoload_52.php generated by xrstf/composer-php52
+
+require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
+
+return ComposerAutoloaderInit5759bae7e770c5001f6b93d9ea09c420::getLoader();
</ins></span></pre></div>
<a id="trunksrcwpvendorcomposerClassLoader52php"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/src/wp-vendor/composer/ClassLoader52.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-vendor/composer/ClassLoader52.php (rev 0)
+++ trunk/src/wp-vendor/composer/ClassLoader52.php 2016-08-27 03:48:08 UTC (rev 38394)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,271 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+/*
+ * Copyright (c) 2013, Christoph Mewes, http://www.xrstf.de
+ *
+ * This file is released under the terms of the MIT license. You can find the
+ * complete text in the attached LICENSE file or online at:
+ *
+ * http://www.opensource.org/licenses/mit-license.php
+ *
+ * --------------------------------------------------------------------------
+ *
+ * 99% of this is copied as-is from the original Composer source code and is
+ * released under MIT license as well. Copyright goes to:
+ *
+ * - Fabien Potencier <fabien@symfony.com>
+ * - Jordi Boggiano <j.boggiano@seld.be>
+ */
+
+class xrstf_Composer52_ClassLoader {
+ private $prefixes = array();
+ private $fallbackDirs = array();
+ private $useIncludePath = false;
+ private $classMap = array();
+ private $classMapAuthoratative = false;
+ private $allowUnderscore = false;
+
+ /**
+ * @param boolean $flag true to allow class names with a leading underscore, false to disable
+ */
+ public function setAllowUnderscore($flag) {
+ $this->allowUnderscore = (boolean) $flag;
+ }
+
+ /**
+ * @return array
+ */
+ public function getPrefixes() {
+ return $this->prefixes;
+ }
+
+ /**
+ * Turns off searching the prefix and fallback directories for classes
+ * that have not been registered with the class map.
+ *
+ * @param bool $classMapAuthoratative
+ */
+ public function setClassMapAuthoritative($classMapAuthoratative) {
+ $this->classMapAuthoratative = $classMapAuthoratative;
+ }
+
+ /**
+ * Should class lookup fail if not found in the current class map?
+ *
+ * @return bool
+ */
+ public function getClassMapAuthoratative() {
+ return $this->classMapAuthoratative;
+ }
+
+ /**
+ * @return array
+ */
+ public function getFallbackDirs() {
+ return $this->fallbackDirs;
+ }
+
+ /**
+ * @return array
+ */
+ public function getClassMap() {
+ return $this->classMap;
+ }
+
+ /**
+ * @param array $classMap class to filename map
+ */
+ public function addClassMap(array $classMap) {
+ if ($this->classMap) {
+ $this->classMap = array_merge($this->classMap, $classMap);
+ }
+ else {
+ $this->classMap = $classMap;
+ }
+ }
+
+ /**
+ * Registers a set of classes, merging with any others previously set.
+ *
+ * @param string $prefix the classes prefix
+ * @param array|string $paths the location(s) of the classes
+ * @param bool $prepend prepend the location(s)
+ */
+ public function add($prefix, $paths, $prepend = false) {
+ if (!$prefix) {
+ if ($prepend) {
+ $this->fallbackDirs = array_merge(
+ (array) $paths,
+ $this->fallbackDirs
+ );
+ }
+ else {
+ $this->fallbackDirs = array_merge(
+ $this->fallbackDirs,
+ (array) $paths
+ );
+ }
+
+ return;
+ }
+
+ if (!isset($this->prefixes[$prefix])) {
+ $this->prefixes[$prefix] = (array) $paths;
+ return;
+ }
+
+ if ($prepend) {
+ $this->prefixes[$prefix] = array_merge(
+ (array) $paths,
+ $this->prefixes[$prefix]
+ );
+ }
+ else {
+ $this->prefixes[$prefix] = array_merge(
+ $this->prefixes[$prefix],
+ (array) $paths
+ );
+ }
+ }
+
+ /**
+ * Registers a set of classes, replacing any others previously set.
+ *
+ * @param string $prefix the classes prefix
+ * @param array|string $paths the location(s) of the classes
+ */
+ public function set($prefix, $paths) {
+ if (!$prefix) {
+ $this->fallbackDirs = (array) $paths;
+ return;
+ }
+
+ $this->prefixes[$prefix] = (array) $paths;
+ }
+
+ /**
+ * Turns on searching the include path for class files.
+ *
+ * @param bool $useIncludePath
+ */
+ public function setUseIncludePath($useIncludePath) {
+ $this->useIncludePath = $useIncludePath;
+ }
+
+ /**
+ * Can be used to check if the autoloader uses the include path to check
+ * for classes.
+ *
+ * @return bool
+ */
+ public function getUseIncludePath() {
+ return $this->useIncludePath;
+ }
+
+ /**
+ * Registers this instance as an autoloader.
+ */
+ public function register() {
+ spl_autoload_register(array($this, 'loadClass'), true);
+ }
+
+ /**
+ * Unregisters this instance as an autoloader.
+ */
+ public function unregister() {
+ spl_autoload_unregister(array($this, 'loadClass'));
+ }
+
+ /**
+ * Loads the given class or interface.
+ *
+ * @param string $class the name of the class
+ * @return bool|null true, if loaded
+ */
+ public function loadClass($class) {
+ if ($file = $this->findFile($class)) {
+ include $file;
+ return true;
+ }
+ }
+
+ /**
+ * Finds the path to the file where the class is defined.
+ *
+ * @param string $class the name of the class
+ * @return string|null the path, if found
+ */
+ public function findFile($class) {
+ if ('\\' === $class[0]) {
+ $class = substr($class, 1);
+ }
+
+ if (isset($this->classMap[$class])) {
+ return $this->classMap[$class];
+ }
+ elseif ($this->classMapAuthoratative) {
+ return false;
+ }
+
+ $classPath = $this->getClassPath($class);
+
+ foreach ($this->prefixes as $prefix => $dirs) {
+ if (0 === strpos($class, $prefix)) {
+ foreach ($dirs as $dir) {
+ if (file_exists($dir.DIRECTORY_SEPARATOR.$classPath)) {
+ return $dir.DIRECTORY_SEPARATOR.$classPath;
+ }
+ }
+ }
+ }
+
+ foreach ($this->fallbackDirs as $dir) {
+ if (file_exists($dir.DIRECTORY_SEPARATOR.$classPath)) {
+ return $dir.DIRECTORY_SEPARATOR.$classPath;
+ }
+ }
+
+ if ($this->useIncludePath && $file = self::resolveIncludePath($classPath)) {
+ return $file;
+ }
+
+ return $this->classMap[$class] = false;
+ }
+
+ private function getClassPath($class) {
+ if (false !== $pos = strrpos($class, '\\')) {
+ // namespaced class name
+ $classPath = str_replace('\\', DIRECTORY_SEPARATOR, substr($class, 0, $pos)).DIRECTORY_SEPARATOR;
+ $className = substr($class, $pos + 1);
+ }
+ else {
+ // PEAR-like class name
+ $classPath = null;
+ $className = $class;
+ }
+
+ $className = str_replace('_', DIRECTORY_SEPARATOR, $className);
+
+ // restore the prefix
+ if ($this->allowUnderscore && DIRECTORY_SEPARATOR === $className[0]) {
+ $className[0] = '_';
+ }
+
+ $classPath .= $className.'.php';
+
+ return $classPath;
+ }
+
+ public static function resolveIncludePath($classPath) {
+ $paths = explode(PATH_SEPARATOR, get_include_path());
+
+ foreach ($paths as $path) {
+ $path = rtrim($path, '/\\');
+
+ if ($file = file_exists($path.DIRECTORY_SEPARATOR.$file)) {
+ return $file;
+ }
+ }
+
+ return false;
+ }
+}
</ins></span></pre></div>
<a id="trunksrcwpvendorcomposerLICENSE"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/src/wp-vendor/composer/LICENSE</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-vendor/composer/LICENSE (rev 0)
+++ trunk/src/wp-vendor/composer/LICENSE 2016-08-27 03:48:08 UTC (rev 38394)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,21 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+Copyright (c) 2016 Nils Adermann, Jordi Boggiano
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
</ins></span></pre></div>
<a id="trunksrcwpvendorcomposerautoload_classmapphp"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/src/wp-vendor/composer/autoload_classmap.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-vendor/composer/autoload_classmap.php (rev 0)
+++ trunk/src/wp-vendor/composer/autoload_classmap.php 2016-08-27 03:48:08 UTC (rev 38394)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,201 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+
+// autoload_classmap.php @generated by Composer
+
+$vendorDir = dirname(dirname(__FILE__));
+$baseDir = dirname(dirname($vendorDir));
+
+return array(
+ 'Automatic_Upgrader_Skin' => $baseDir . '/src/wp-admin/includes/class-automatic-upgrader-skin.php',
+ 'Bulk_Plugin_Upgrader_Skin' => $baseDir . '/src/wp-admin/includes/class-bulk-plugin-upgrader-skin.php',
+ 'Bulk_Theme_Upgrader_Skin' => $baseDir . '/src/wp-admin/includes/class-bulk-theme-upgrader-skin.php',
+ 'Bulk_Upgrader_Skin' => $baseDir . '/src/wp-admin/includes/class-bulk-upgrader-skin.php',
+ 'Core_Upgrader' => $baseDir . '/src/wp-admin/includes/class-core-upgrader.php',
+ 'Custom_Background' => $baseDir . '/src/wp-admin/custom-background.php',
+ 'Custom_Image_Header' => $baseDir . '/src/wp-admin/custom-header.php',
+ 'File_Upload_Upgrader' => $baseDir . '/src/wp-admin/includes/class-file-upload-upgrader.php',
+ 'IXR_Base64' => $baseDir . '/src/wp-includes/IXR/class-IXR-base64.php',
+ 'IXR_Client' => $baseDir . '/src/wp-includes/IXR/class-IXR-client.php',
+ 'IXR_ClientMulticall' => $baseDir . '/src/wp-includes/IXR/class-IXR-clientmulticall.php',
+ 'IXR_Date' => $baseDir . '/src/wp-includes/IXR/class-IXR-date.php',
+ 'IXR_Error' => $baseDir . '/src/wp-includes/IXR/class-IXR-error.php',
+ 'IXR_IntrospectionServer' => $baseDir . '/src/wp-includes/IXR/class-IXR-introspectionserver.php',
+ 'IXR_Message' => $baseDir . '/src/wp-includes/IXR/class-IXR-message.php',
+ 'IXR_Request' => $baseDir . '/src/wp-includes/IXR/class-IXR-request.php',
+ 'IXR_Server' => $baseDir . '/src/wp-includes/IXR/class-IXR-server.php',
+ 'IXR_Value' => $baseDir . '/src/wp-includes/IXR/class-IXR-value.php',
+ 'Language_Pack_Upgrader' => $baseDir . '/src/wp-admin/includes/class-language-pack-upgrader.php',
+ 'Language_Pack_Upgrader_Skin' => $baseDir . '/src/wp-admin/includes/class-language-pack-upgrader-skin.php',
+ 'PHPMailer' => $baseDir . '/src/wp-includes/class-phpmailer.php',
+ 'POP3' => $baseDir . '/src/wp-includes/class-pop3.php',
+ 'PasswordHash' => $baseDir . '/src/wp-includes/class-phpass.php',
+ 'PclZip' => $baseDir . '/src/wp-admin/includes/class-pclzip.php',
+ 'Plugin_Installer_Skin' => $baseDir . '/src/wp-admin/includes/class-plugin-installer-skin.php',
+ 'Plugin_Upgrader' => $baseDir . '/src/wp-admin/includes/class-plugin-upgrader.php',
+ 'Plugin_Upgrader_Skin' => $baseDir . '/src/wp-admin/includes/class-plugin-upgrader-skin.php',
+ 'Requests' => $baseDir . '/src/wp-includes/class-requests.php',
+ 'SMTP' => $baseDir . '/src/wp-includes/class-smtp.php',
+ 'Services_JSON' => $baseDir . '/src/wp-includes/class-json.php',
+ 'Services_JSON_Error' => $baseDir . '/src/wp-includes/class-json.php',
+ 'SimplePie' => $baseDir . '/src/wp-includes/class-simplepie.php',
+ 'Theme_Installer_Skin' => $baseDir . '/src/wp-admin/includes/class-theme-installer-skin.php',
+ 'Theme_Upgrader' => $baseDir . '/src/wp-admin/includes/class-theme-upgrader.php',
+ 'Theme_Upgrader_Skin' => $baseDir . '/src/wp-admin/includes/class-theme-upgrader-skin.php',
+ 'WP' => $baseDir . '/src/wp-includes/class-wp.php',
+ 'WP_Admin_Bar' => $baseDir . '/src/wp-includes/class-wp-admin-bar.php',
+ 'WP_Ajax_Response' => $baseDir . '/src/wp-includes/class-wp-ajax-response.php',
+ 'WP_Ajax_Upgrader_Skin' => $baseDir . '/src/wp-admin/includes/class-wp-ajax-upgrader-skin.php',
+ 'WP_Automatic_Updater' => $baseDir . '/src/wp-admin/includes/class-wp-automatic-updater.php',
+ 'WP_Comment' => $baseDir . '/src/wp-includes/class-wp-comment.php',
+ 'WP_Comment_Query' => $baseDir . '/src/wp-includes/class-wp-comment-query.php',
+ 'WP_Comments_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-comments-list-table.php',
+ 'WP_Customize_Background_Image_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-background-image-control.php',
+ 'WP_Customize_Background_Image_Setting' => $baseDir . '/src/wp-includes/customize/class-wp-customize-background-image-setting.php',
+ 'WP_Customize_Color_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-color-control.php',
+ 'WP_Customize_Control' => $baseDir . '/src/wp-includes/class-wp-customize-control.php',
+ 'WP_Customize_Cropped_Image_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-cropped-image-control.php',
+ 'WP_Customize_Filter_Setting' => $baseDir . '/src/wp-includes/customize/class-wp-customize-filter-setting.php',
+ 'WP_Customize_Header_Image_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-header-image-control.php',
+ 'WP_Customize_Header_Image_Setting' => $baseDir . '/src/wp-includes/customize/class-wp-customize-header-image-setting.php',
+ 'WP_Customize_Image_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-image-control.php',
+ 'WP_Customize_Manager' => $baseDir . '/src/wp-includes/class-wp-customize-manager.php',
+ 'WP_Customize_Media_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-media-control.php',
+ 'WP_Customize_Nav_Menu_Auto_Add_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-nav-menu-auto-add-control.php',
+ 'WP_Customize_Nav_Menu_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-nav-menu-control.php',
+ 'WP_Customize_Nav_Menu_Item_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-nav-menu-item-control.php',
+ 'WP_Customize_Nav_Menu_Item_Setting' => $baseDir . '/src/wp-includes/customize/class-wp-customize-nav-menu-item-setting.php',
+ 'WP_Customize_Nav_Menu_Location_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-nav-menu-location-control.php',
+ 'WP_Customize_Nav_Menu_Name_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-nav-menu-name-control.php',
+ 'WP_Customize_Nav_Menu_Section' => $baseDir . '/src/wp-includes/customize/class-wp-customize-nav-menu-section.php',
+ 'WP_Customize_Nav_Menu_Setting' => $baseDir . '/src/wp-includes/customize/class-wp-customize-nav-menu-setting.php',
+ 'WP_Customize_Nav_Menus' => $baseDir . '/src/wp-includes/class-wp-customize-nav-menus.php',
+ 'WP_Customize_Nav_Menus_Panel' => $baseDir . '/src/wp-includes/customize/class-wp-customize-nav-menus-panel.php',
+ 'WP_Customize_New_Menu_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-new-menu-control.php',
+ 'WP_Customize_New_Menu_Section' => $baseDir . '/src/wp-includes/customize/class-wp-customize-new-menu-section.php',
+ 'WP_Customize_Panel' => $baseDir . '/src/wp-includes/class-wp-customize-panel.php',
+ 'WP_Customize_Partial' => $baseDir . '/src/wp-includes/customize/class-wp-customize-partial.php',
+ 'WP_Customize_Section' => $baseDir . '/src/wp-includes/class-wp-customize-section.php',
+ 'WP_Customize_Selective_Refresh' => $baseDir . '/src/wp-includes/customize/class-wp-customize-selective-refresh.php',
+ 'WP_Customize_Setting' => $baseDir . '/src/wp-includes/class-wp-customize-setting.php',
+ 'WP_Customize_Sidebar_Section' => $baseDir . '/src/wp-includes/customize/class-wp-customize-sidebar-section.php',
+ 'WP_Customize_Site_Icon_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-site-icon-control.php',
+ 'WP_Customize_Theme_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-theme-control.php',
+ 'WP_Customize_Themes_Section' => $baseDir . '/src/wp-includes/customize/class-wp-customize-themes-section.php',
+ 'WP_Customize_Upload_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-upload-control.php',
+ 'WP_Customize_Widgets' => $baseDir . '/src/wp-includes/class-wp-customize-widgets.php',
+ 'WP_Date_Query' => $baseDir . '/src/wp-includes/date.php',
+ 'WP_Dependencies' => $baseDir . '/src/wp-includes/class.wp-dependencies.php',
+ 'WP_Embed' => $baseDir . '/src/wp-includes/class-wp-embed.php',
+ 'WP_Error' => $baseDir . '/src/wp-includes/class-wp-error.php',
+ 'WP_Feed_Cache' => $baseDir . '/src/wp-includes/class-wp-feed-cache.php',
+ 'WP_Feed_Cache_Transient' => $baseDir . '/src/wp-includes/class-wp-feed-cache-transient.php',
+ 'WP_Filesystem_Base' => $baseDir . '/src/wp-admin/includes/class-wp-filesystem-base.php',
+ 'WP_Filesystem_Direct' => $baseDir . '/src/wp-admin/includes/class-wp-filesystem-direct.php',
+ 'WP_Filesystem_FTPext' => $baseDir . '/src/wp-admin/includes/class-wp-filesystem-ftpext.php',
+ 'WP_Filesystem_SSH2' => $baseDir . '/src/wp-admin/includes/class-wp-filesystem-ssh2.php',
+ 'WP_Filesystem_ftpsockets' => $baseDir . '/src/wp-admin/includes/class-wp-filesystem-ftpsockets.php',
+ 'WP_HTTP_Fsockopen' => $baseDir . '/src/wp-includes/class-wp-http-streams.php',
+ 'WP_HTTP_IXR_Client' => $baseDir . '/src/wp-includes/class-wp-http-ixr-client.php',
+ 'WP_HTTP_Proxy' => $baseDir . '/src/wp-includes/class-wp-http-proxy.php',
+ 'WP_HTTP_Requests_Response' => $baseDir . '/src/wp-includes/class-wp-http-requests-response.php',
+ 'WP_HTTP_Response' => $baseDir . '/src/wp-includes/class-wp-http-response.php',
+ 'WP_Http' => $baseDir . '/src/wp-includes/class-http.php',
+ 'WP_Http_Cookie' => $baseDir . '/src/wp-includes/class-wp-http-cookie.php',
+ 'WP_Http_Curl' => $baseDir . '/src/wp-includes/class-wp-http-curl.php',
+ 'WP_Http_Encoding' => $baseDir . '/src/wp-includes/class-wp-http-encoding.php',
+ 'WP_Http_Streams' => $baseDir . '/src/wp-includes/class-wp-http-streams.php',
+ 'WP_Image_Editor' => $baseDir . '/src/wp-includes/class-wp-image-editor.php',
+ 'WP_Image_Editor_GD' => $baseDir . '/src/wp-includes/class-wp-image-editor-gd.php',
+ 'WP_Image_Editor_Imagick' => $baseDir . '/src/wp-includes/class-wp-image-editor-imagick.php',
+ 'WP_Importer' => $baseDir . '/src/wp-admin/includes/class-wp-importer.php',
+ 'WP_Internal_Pointers' => $baseDir . '/src/wp-admin/includes/class-wp-internal-pointers.php',
+ 'WP_Links_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-links-list-table.php',
+ 'WP_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-list-table.php',
+ 'WP_Locale' => $baseDir . '/src/wp-includes/class-wp-locale.php',
+ 'WP_MS_Sites_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-ms-sites-list-table.php',
+ 'WP_MS_Themes_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-ms-themes-list-table.php',
+ 'WP_MS_Users_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-ms-users-list-table.php',
+ 'WP_MatchesMapRegex' => $baseDir . '/src/wp-includes/class-wp-matchesmapregex.php',
+ 'WP_Media_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-media-list-table.php',
+ 'WP_Meta_Query' => $baseDir . '/src/wp-includes/class-wp-meta-query.php',
+ 'WP_Metadata_Lazyloader' => $baseDir . '/src/wp-includes/class-wp-metadata-lazyloader.php',
+ 'WP_Nav_Menu_Widget' => $baseDir . '/src/wp-includes/widgets/class-wp-nav-menu-widget.php',
+ 'WP_Network' => $baseDir . '/src/wp-includes/class-wp-network.php',
+ 'WP_Network_Query' => $baseDir . '/src/wp-includes/class-wp-network-query.php',
+ 'WP_Plugin_Install_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-plugin-install-list-table.php',
+ 'WP_Plugins_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-plugins-list-table.php',
+ 'WP_Post' => $baseDir . '/src/wp-includes/class-wp-post.php',
+ 'WP_Post_Comments_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-post-comments-list-table.php',
+ 'WP_Post_Type' => $baseDir . '/src/wp-includes/class-wp-post-type.php',
+ 'WP_Posts_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-posts-list-table.php',
+ 'WP_Press_This' => $baseDir . '/src/wp-admin/includes/class-wp-press-this.php',
+ 'WP_Query' => $baseDir . '/src/wp-includes/class-wp-query.php',
+ 'WP_REST_Request' => $baseDir . '/src/wp-includes/rest-api/class-wp-rest-request.php',
+ 'WP_REST_Response' => $baseDir . '/src/wp-includes/rest-api/class-wp-rest-response.php',
+ 'WP_REST_Server' => $baseDir . '/src/wp-includes/rest-api/class-wp-rest-server.php',
+ 'WP_Rewrite' => $baseDir . '/src/wp-includes/class-wp-rewrite.php',
+ 'WP_Role' => $baseDir . '/src/wp-includes/class-wp-role.php',
+ 'WP_Roles' => $baseDir . '/src/wp-includes/class-wp-roles.php',
+ 'WP_Screen' => $baseDir . '/src/wp-admin/includes/class-wp-screen.php',
+ 'WP_Scripts' => $baseDir . '/src/wp-includes/class.wp-scripts.php',
+ 'WP_Session_Tokens' => $baseDir . '/src/wp-includes/class-wp-session-tokens.php',
+ 'WP_SimplePie_File' => $baseDir . '/src/wp-includes/class-wp-simplepie-file.php',
+ 'WP_SimplePie_Sanitize_KSES' => $baseDir . '/src/wp-includes/class-wp-simplepie-sanitize-kses.php',
+ 'WP_Site' => $baseDir . '/src/wp-includes/class-wp-site.php',
+ 'WP_Site_Icon' => $baseDir . '/src/wp-admin/includes/class-wp-site-icon.php',
+ 'WP_Site_Query' => $baseDir . '/src/wp-includes/class-wp-site-query.php',
+ 'WP_Styles' => $baseDir . '/src/wp-includes/class.wp-styles.php',
+ 'WP_Tax_Query' => $baseDir . '/src/wp-includes/class-wp-tax-query.php',
+ 'WP_Term' => $baseDir . '/src/wp-includes/class-wp-term.php',
+ 'WP_Term_Query' => $baseDir . '/src/wp-includes/class-wp-term-query.php',
+ 'WP_Terms_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-terms-list-table.php',
+ 'WP_Text_Diff_Renderer_Table' => $baseDir . '/src/wp-includes/class-wp-text-diff-renderer-table.php',
+ 'WP_Text_Diff_Renderer_inline' => $baseDir . '/src/wp-includes/class-wp-text-diff-renderer-inline.php',
+ 'WP_Theme' => $baseDir . '/src/wp-includes/class-wp-theme.php',
+ 'WP_Theme_Install_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-theme-install-list-table.php',
+ 'WP_Themes_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-themes-list-table.php',
+ 'WP_Upgrader' => $baseDir . '/src/wp-admin/includes/class-wp-upgrader.php',
+ 'WP_Upgrader_Skin' => $baseDir . '/src/wp-admin/includes/class-wp-upgrader-skin.php',
+ 'WP_User' => $baseDir . '/src/wp-includes/class-wp-user.php',
+ 'WP_User_Meta_Session_Tokens' => $baseDir . '/src/wp-includes/class-wp-user-meta-session-tokens.php',
+ 'WP_User_Query' => $baseDir . '/src/wp-includes/class-wp-user-query.php',
+ 'WP_Users_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-users-list-table.php',
+ 'WP_Widget' => $baseDir . '/src/wp-includes/class-wp-widget.php',
+ 'WP_Widget_Archives' => $baseDir . '/src/wp-includes/widgets/class-wp-widget-archives.php',
+ 'WP_Widget_Area_Customize_Control' => $baseDir . '/src/wp-includes/customize/class-wp-widget-area-customize-control.php',
+ 'WP_Widget_Calendar' => $baseDir . '/src/wp-includes/widgets/class-wp-widget-calendar.php',
+ 'WP_Widget_Categories' => $baseDir . '/src/wp-includes/widgets/class-wp-widget-categories.php',
+ 'WP_Widget_Factory' => $baseDir . '/src/wp-includes/class-wp-widget-factory.php',
+ 'WP_Widget_Form_Customize_Control' => $baseDir . '/src/wp-includes/customize/class-wp-widget-form-customize-control.php',
+ 'WP_Widget_Links' => $baseDir . '/src/wp-includes/widgets/class-wp-widget-links.php',
+ 'WP_Widget_Meta' => $baseDir . '/src/wp-includes/widgets/class-wp-widget-meta.php',
+ 'WP_Widget_Pages' => $baseDir . '/src/wp-includes/widgets/class-wp-widget-pages.php',
+ 'WP_Widget_RSS' => $baseDir . '/src/wp-includes/widgets/class-wp-widget-rss.php',
+ 'WP_Widget_Recent_Comments' => $baseDir . '/src/wp-includes/widgets/class-wp-widget-recent-comments.php',
+ 'WP_Widget_Recent_Posts' => $baseDir . '/src/wp-includes/widgets/class-wp-widget-recent-posts.php',
+ 'WP_Widget_Search' => $baseDir . '/src/wp-includes/widgets/class-wp-widget-search.php',
+ 'WP_Widget_Tag_Cloud' => $baseDir . '/src/wp-includes/widgets/class-wp-widget-tag-cloud.php',
+ 'WP_Widget_Text' => $baseDir . '/src/wp-includes/widgets/class-wp-widget-text.php',
+ 'WP_oEmbed' => $baseDir . '/src/wp-includes/class-oembed.php',
+ 'WP_oEmbed_Controller' => $baseDir . '/src/wp-includes/class-wp-oembed-controller.php',
+ 'Walker' => $baseDir . '/src/wp-includes/class-wp-walker.php',
+ 'Walker_Category' => $baseDir . '/src/wp-includes/class-walker-category.php',
+ 'Walker_CategoryDropdown' => $baseDir . '/src/wp-includes/class-walker-category-dropdown.php',
+ 'Walker_Category_Checklist' => $baseDir . '/src/wp-admin/includes/class-walker-category-checklist.php',
+ 'Walker_Comment' => $baseDir . '/src/wp-includes/class-walker-comment.php',
+ 'Walker_Nav_Menu' => $baseDir . '/src/wp-includes/class-walker-nav-menu.php',
+ 'Walker_Nav_Menu_Checklist' => $baseDir . '/src/wp-admin/includes/class-walker-nav-menu-checklist.php',
+ 'Walker_Nav_Menu_Edit' => $baseDir . '/src/wp-admin/includes/class-walker-nav-menu-edit.php',
+ 'Walker_Page' => $baseDir . '/src/wp-includes/class-walker-page.php',
+ 'Walker_PageDropdown' => $baseDir . '/src/wp-includes/class-walker-page-dropdown.php',
+ '_WP_Dependency' => $baseDir . '/src/wp-includes/class-wp-dependency.php',
+ '_WP_Editors' => $baseDir . '/src/wp-includes/class-wp-editor.php',
+ '_WP_List_Table_Compat' => $baseDir . '/src/wp-admin/includes/class-wp-list-table-compat.php',
+ 'ftp' => $baseDir . '/src/wp-admin/includes/class-ftp.php',
+ 'ftp_base' => $baseDir . '/src/wp-admin/includes/class-ftp.php',
+ 'ftp_pure' => $baseDir . '/src/wp-admin/includes/class-ftp-pure.php',
+ 'ftp_sockets' => $baseDir . '/src/wp-admin/includes/class-ftp-sockets.php',
+ 'phpmailerException' => $baseDir . '/src/wp-includes/class-phpmailer.php',
+ 'wp_xmlrpc_server' => $baseDir . '/src/wp-includes/class-wp-xmlrpc-server.php',
+ 'wpdb' => $baseDir . '/src/wp-includes/wp-db.php',
+);
</ins></span></pre></div>
<a id="trunksrcwpvendorcomposerautoload_namespacesphp"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/src/wp-vendor/composer/autoload_namespaces.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-vendor/composer/autoload_namespaces.php (rev 0)
+++ trunk/src/wp-vendor/composer/autoload_namespaces.php 2016-08-27 03:48:08 UTC (rev 38394)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,10 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+
+// autoload_namespaces.php @generated by Composer
+
+$vendorDir = dirname(dirname(__FILE__));
+$baseDir = dirname(dirname($vendorDir));
+
+return array(
+ 'xrstf\\Composer52' => array($vendorDir . '/xrstf/composer-php52/lib'),
+);
</ins></span></pre></div>
<a id="trunksrcwpvendorcomposerautoload_psr4php"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/src/wp-vendor/composer/autoload_psr4.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-vendor/composer/autoload_psr4.php (rev 0)
+++ trunk/src/wp-vendor/composer/autoload_psr4.php 2016-08-27 03:48:08 UTC (rev 38394)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,9 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+
+// autoload_psr4.php @generated by Composer
+
+$vendorDir = dirname(dirname(__FILE__));
+$baseDir = dirname(dirname($vendorDir));
+
+return array(
+);
</ins></span></pre></div>
<a id="trunksrcwpvendorcomposerautoload_real_52php"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/src/wp-vendor/composer/autoload_real_52.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-vendor/composer/autoload_real_52.php (rev 0)
+++ trunk/src/wp-vendor/composer/autoload_real_52.php 2016-08-27 03:48:08 UTC (rev 38394)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,44 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+
+// autoload_real_52.php generated by xrstf/composer-php52
+
+class ComposerAutoloaderInit5759bae7e770c5001f6b93d9ea09c420 {
+ private static $loader;
+
+ public static function loadClassLoader($class) {
+ if ('xrstf_Composer52_ClassLoader' === $class) {
+ require dirname(__FILE__).'/ClassLoader52.php';
+ }
+ }
+
+ /**
+ * @return xrstf_Composer52_ClassLoader
+ */
+ public static function getLoader() {
+ if (null !== self::$loader) {
+ return self::$loader;
+ }
+
+ spl_autoload_register(array('ComposerAutoloaderInit5759bae7e770c5001f6b93d9ea09c420', 'loadClassLoader'), true /*, true */);
+ self::$loader = $loader = new xrstf_Composer52_ClassLoader();
+ spl_autoload_unregister(array('ComposerAutoloaderInit5759bae7e770c5001f6b93d9ea09c420', 'loadClassLoader'));
+
+ $vendorDir = dirname(dirname(__FILE__));
+ $baseDir = dirname(dirname($vendorDir));
+ $dir = dirname(__FILE__);
+
+ $map = require $dir.'/autoload_namespaces.php';
+ foreach ($map as $namespace => $path) {
+ $loader->add($namespace, $path);
+ }
+
+ $classMap = require $dir.'/autoload_classmap.php';
+ if ($classMap) {
+ $loader->addClassMap($classMap);
+ }
+
+ $loader->register(true);
+
+ return $loader;
+ }
+}
</ins></span></pre></div>
<a id="trunksrcwpvendorcomposerinstalledjson"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/src/wp-vendor/composer/installed.json</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-vendor/composer/installed.json (rev 0)
+++ trunk/src/wp-vendor/composer/installed.json 2016-08-27 03:48:08 UTC (rev 38394)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,35 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+[
+ {
+ "name": "xrstf/composer-php52",
+ "version": "v1.0.20",
+ "version_normalized": "1.0.20.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer-php52/composer-php52.git",
+ "reference": "bd41459d5e27df8d33057842b32377c39e97a5a8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer-php52/composer-php52/zipball/bd41459d5e27df8d33057842b32377c39e97a5a8",
+ "reference": "bd41459d5e27df8d33057842b32377c39e97a5a8",
+ "shasum": ""
+ },
+ "time": "2016-04-16 21:52:24",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-default": "1.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "psr-0": {
+ "xrstf\\Composer52": "lib/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ]
+ }
+]
</ins></span></pre></div>
<a id="trunksrcwpvendorxrstfcomposerphp52LICENSE"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/src/wp-vendor/xrstf/composer-php52/LICENSE</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-vendor/xrstf/composer-php52/LICENSE (rev 0)
+++ trunk/src/wp-vendor/xrstf/composer-php52/LICENSE 2016-08-27 03:48:08 UTC (rev 38394)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,19 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+Copyright (c) 2013 Christoph Mewes
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
</ins></span></pre></div>
<a id="trunksrcwpvendorxrstfcomposerphp52READMEmd"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/src/wp-vendor/xrstf/composer-php52/README.md</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-vendor/xrstf/composer-php52/README.md (rev 0)
+++ trunk/src/wp-vendor/xrstf/composer-php52/README.md 2016-08-27 03:48:08 UTC (rev 38394)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,37 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+PHP 5.2 Autoloading for Composer
+================================
+
+This package provides an easy way to get a PHP 5.2 compatible autoloader out of Composer. The generated autoloader is fully compatible to the original and is written into separate files, each ending with `_52.php`.
+
+Legacy
+------
+
+Please do not use this, if you can avoid it. It's a horrible hack, often breaks and is extremely tied to Composer's interna. This package was originally developed in 2012, when PHP 5.2 was much more common on cheap webhosts.
+
+In 2016, this package has been moved from Bitbucket to a Github organization, because the original developer could no longer reliably maintain it. This is the reason for this legacy package name ``xrstf/...``.
+
+Usage
+-----
+
+In your project's `composer.json`, add the following lines:
+
+```json
+{
+ "require": {
+ "xrstf/composer-php52": "1.*"
+ },
+ "scripts": {
+ "post-install-cmd": [
+ "xrstf\\Composer52\\Generator::onPostInstallCmd"
+ ],
+ "post-update-cmd": [
+ "xrstf\\Composer52\\Generator::onPostInstallCmd"
+ ],
+ "post-autoload-dump": [
+ "xrstf\\Composer52\\Generator::onPostInstallCmd"
+ ]
+ }
+}
+```
+
+After the next update/install, you will have a `vendor/autoload_52.php` file, that you can simply include and use in PHP 5.2 projects.
</ins></span></pre></div>
<a id="trunksrcwpvendorxrstfcomposerphp52composerjson"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/src/wp-vendor/xrstf/composer-php52/composer.json</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-vendor/xrstf/composer-php52/composer.json (rev 0)
+++ trunk/src/wp-vendor/xrstf/composer-php52/composer.json 2016-08-27 03:48:08 UTC (rev 38394)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,26 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+{
+ "name": "xrstf/composer-php52",
+ "license": "MIT",
+ "support": {
+ "source": "https://github.com/composer-php52/composer-php52",
+ "issues": "https://github.com/composer-php52/composer-php52/issues"
+ },
+ "autoload": {
+ "psr-0": {
+ "xrstf\\Composer52": "lib/"
+ }
+ },
+ "scripts": {
+ "post-install-cmd": [
+ "xrstf\\Composer52\\Generator::onPostInstallCmd"
+ ],
+ "post-update-cmd": [
+ "xrstf\\Composer52\\Generator::onPostInstallCmd"
+ ]
+ },
+ "extra": {
+ "branch-alias": {
+ "dev-default": "1.x-dev"
+ }
+ }
+}
</ins></span></pre></div>
<a id="trunksrcwpvendorxrstfcomposerphp52libxrstfComposer52AutoloadGeneratorphp"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/src/wp-vendor/xrstf/composer-php52/lib/xrstf/Composer52/AutoloadGenerator.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-vendor/xrstf/composer-php52/lib/xrstf/Composer52/AutoloadGenerator.php (rev 0)
+++ trunk/src/wp-vendor/xrstf/composer-php52/lib/xrstf/Composer52/AutoloadGenerator.php 2016-08-27 03:48:08 UTC (rev 38394)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,346 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+/*
+ * Copyright (c) 2013, Christoph Mewes, http://www.xrstf.de
+ *
+ * This file is released under the terms of the MIT license. You can find the
+ * complete text in the attached LICENSE file or online at:
+ *
+ * http://www.opensource.org/licenses/mit-license.php
+ *
+ * --------------------------------------------------------------------------
+ *
+ * 99% of this is copied as-is from the original Composer source code and is
+ * released under MIT license as well. Copyright goes to:
+ *
+ * - Igor Wiedler <igor@wiedler.ch>
+ * - Jordi Boggiano <j.boggiano@seld.be>
+ */
+
+namespace xrstf\Composer52;
+
+use Composer\Autoload\AutoloadGenerator as BaseGenerator;
+use Composer\Autoload\ClassMapGenerator;
+use Composer\Config;
+use Composer\Installer\InstallationManager;
+use Composer\Package\AliasPackage;
+use Composer\Package\PackageInterface;
+use Composer\Repository\InstalledRepositoryInterface;
+use Composer\Util\Filesystem;
+
+class AutoloadGenerator extends BaseGenerator {
+
+ /**
+ * @var bool
+ */
+ private $classMapAuthoritative = false;
+
+ public function __construct() {
+ // do nothing (but keep this constructor so we can build an instance without the need for an event dispatcher)
+ }
+
+ /**
+ * Whether or not generated autoloader considers the class map
+ * authoritative.
+ *
+ * @param bool $classMapAuthoritative
+ */
+ public function setClassMapAuthoritative($classMapAuthoritative)
+ {
+ $this->classMapAuthoritative = (boolean) $classMapAuthoritative;
+ }
+
+ public function dump(Config $config, InstalledRepositoryInterface $localRepo, PackageInterface $mainPackage, InstallationManager $installationManager, $targetDir, $scanPsr0Packages = false, $suffix = '') {
+ if ($this->classMapAuthoritative) {
+ // Force scanPsr0Packages when classmap is authoritative
+ $scanPsr0Packages = true;
+ }
+
+ $filesystem = new Filesystem();
+ $filesystem->ensureDirectoryExists($config->get('vendor-dir'));
+
+ $cwd = getcwd();
+ $basePath = $filesystem->normalizePath($cwd);
+ $vendorPath = $filesystem->normalizePath(realpath($config->get('vendor-dir')));
+ $targetDir = $vendorPath.'/'.$targetDir;
+ $filesystem->ensureDirectoryExists($targetDir);
+
+ $useGlobalIncludePath = (bool) $config->get('use-include-path');
+ $prependAutoloader = $config->get('prepend-autoloader') === false ? 'false' : 'true';
+ $classMapAuthoritative = $config->get('classmap-authoritative');
+
+ $vendorPathCode = $filesystem->findShortestPathCode(realpath($targetDir), $vendorPath, true);
+ $vendorPathToTargetDirCode = $filesystem->findShortestPathCode($vendorPath, realpath($targetDir), true);
+
+ $appBaseDirCode = $filesystem->findShortestPathCode($vendorPath, $basePath, true);
+ $appBaseDirCode = str_replace('__DIR__', '$vendorDir', $appBaseDirCode);
+
+ // add 5.2 compat
+ $vendorPathCode = str_replace('__DIR__', 'dirname(__FILE__)', $vendorPathCode);
+ $vendorPathToTargetDirCode = str_replace('__DIR__', 'dirname(__FILE__)', $vendorPathToTargetDirCode);
+
+ $packageMap = $this->buildPackageMap($installationManager, $mainPackage, $localRepo->getCanonicalPackages());
+ $autoloads = $this->parseAutoloads($packageMap, $mainPackage);
+
+ // add custom psr-0 autoloading if the root package has a target dir
+ $targetDirLoader = null;
+ $mainAutoload = $mainPackage->getAutoload();
+ if ($mainPackage->getTargetDir() && !empty($mainAutoload['psr-0'])) {
+ $levels = count(explode('/', $filesystem->normalizePath($mainPackage->getTargetDir())));
+ $prefixes = implode(', ', array_map(function ($prefix) {
+ return var_export($prefix, true);
+ }, array_keys($mainAutoload['psr-0'])));
+
+ $baseDirFromTargetDirCode = $filesystem->findShortestPathCode($targetDir, $basePath, true);
+
+ $targetDirLoader = <<<EOF
+
+ public static function autoload(\$class) {
+ \$dir = $baseDirFromTargetDirCode.'/';
+ \$prefixes = array($prefixes);
+
+ foreach (\$prefixes as \$prefix) {
+ if (0 !== strpos(\$class, \$prefix)) {
+ continue;
+ }
+
+ \$path = explode(DIRECTORY_SEPARATOR, self::getClassPath(\$class));
+ \$path = \$dir.implode('/', array_slice(\$path, $levels));
+
+ if (!\$path = self::resolveIncludePath(\$path)) {
+ return false;
+ }
+
+ require \$path;
+ return true;
+ }
+ }
+
+EOF;
+ }
+
+ $filesCode = "";
+ $autoloads['files'] = new \RecursiveIteratorIterator(new \RecursiveArrayIterator($autoloads['files']));
+ foreach ($autoloads['files'] as $functionFile) {
+ // don't include file if it is using PHP 5.3+ syntax
+ // https://bitbucket.org/xrstf/composer-php52/issue/4
+ if ($this->isPHP53($functionFile)) {
+ $filesCode .= '// require '.$this->getPathCode($filesystem, $basePath, $vendorPath, $functionFile)."; // disabled because of PHP 5.3 syntax\n";
+ }
+ else {
+ $filesCode .= ' require '.$this->getPathCode($filesystem, $basePath, $vendorPath, $functionFile).";\n";
+ }
+ }
+
+ if (!$suffix) {
+ $suffix = md5(uniqid('', true));
+ }
+
+ $includePathFile = $this->getIncludePathsFile($packageMap, $filesystem, $basePath, $vendorPath, $vendorPathCode, $appBaseDirCode);
+
+ file_put_contents($vendorPath.'/autoload_52.php', $this->getAutoloadFile($vendorPathToTargetDirCode, $suffix));
+ file_put_contents($targetDir.'/autoload_real_52.php', $this->getAutoloadRealFile(true, (bool) $includePathFile, $targetDirLoader, $filesCode, $vendorPathCode, $appBaseDirCode, $suffix, $useGlobalIncludePath, $prependAutoloader));
+
+ // use stream_copy_to_stream instead of copy
+ // to work around https://bugs.php.net/bug.php?id=64634
+ $sourceLoader = fopen(__DIR__.'/ClassLoader.php', 'r');
+ $targetLoader = fopen($targetDir.'/ClassLoader52.php', 'w+');
+ stream_copy_to_stream($sourceLoader, $targetLoader);
+ fclose($sourceLoader);
+ fclose($targetLoader);
+ unset($sourceLoader, $targetLoader);
+ }
+
+ protected function isPHP53($file) {
+ $tokens = token_get_all(file_get_contents($file));
+ $php53 = array(T_DIR, T_GOTO, T_NAMESPACE, T_NS_C, T_NS_SEPARATOR, T_USE);
+
+ // PHP 5.4+
+ if (defined('T_TRAIT')) {
+ $php53[] = T_TRAIT;
+ $php53[] = T_TRAIT_C;
+ $php53[] = T_TRAIT_C;
+ }
+
+ // PHP 5.5+
+ if (defined('T_FINALLY')) {
+ $php53[] = T_FINALLY;
+ $php53[] = T_YIELD;
+ }
+
+ foreach ($tokens as $token) {
+ if (is_array($token) && in_array($token[0], $php53)) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ protected function getIncludePathsFile(array $packageMap, Filesystem $filesystem, $basePath, $vendorPath, $vendorPathCode, $appBaseDirCode) {
+ $includePaths = array();
+
+ foreach ($packageMap as $item) {
+ list($package, $installPath) = $item;
+
+ if (null !== $package->getTargetDir() && strlen($package->getTargetDir()) > 0) {
+ $installPath = substr($installPath, 0, -strlen('/'.$package->getTargetDir()));
+ }
+
+ foreach ($package->getIncludePaths() as $includePath) {
+ $includePath = trim($includePath, '/');
+ $includePaths[] = empty($installPath) ? $includePath : $installPath.'/'.$includePath;
+ }
+ }
+
+ if (!$includePaths) {
+ return;
+ }
+
+ $includePathsFile = <<<EOF
+<?php
+
+// include_paths_52.php generated by xrstf/composer-php52
+
+\$vendorDir = $vendorPathCode;
+\$baseDir = $appBaseDirCode;
+
+return array(
+
+EOF;
+
+ foreach ($includePaths as $path) {
+ $includePathsFile .= "\t" . $this->getPathCode($filesystem, $basePath, $vendorPath, $path) . ",\n";
+ }
+
+ return $includePathsFile . ");\n";
+ }
+
+ protected function getAutoloadFile($vendorPathToTargetDirCode, $suffix) {
+ return <<<AUTOLOAD
+<?php
+
+// autoload_52.php generated by xrstf/composer-php52
+
+require_once $vendorPathToTargetDirCode.'/autoload_real_52.php';
+
+return ComposerAutoloaderInit$suffix::getLoader();
+
+AUTOLOAD;
+ }
+
+ protected function getAutoloadRealFile($useClassMap, $useIncludePath, $targetDirLoader, $filesCode, $vendorPathCode, $appBaseDirCode, $suffix, $useGlobalIncludePath, $prependAutoloader, $staticPhpVersion = 70000) {
+ // TODO the class ComposerAutoloaderInit should be revert to a closure
+ // when APC has been fixed:
+ // - https://github.com/composer/composer/issues/959
+ // - https://bugs.php.net/bug.php?id=52144
+ // - https://bugs.php.net/bug.php?id=61576
+ // - https://bugs.php.net/bug.php?id=59298
+
+ if ($filesCode) {
+ $filesCode = "\n\n".rtrim($filesCode);
+ }
+
+ $file = <<<HEADER
+<?php
+
+// autoload_real_52.php generated by xrstf/composer-php52
+
+class ComposerAutoloaderInit$suffix {
+ private static \$loader;
+
+ public static function loadClassLoader(\$class) {
+ if ('xrstf_Composer52_ClassLoader' === \$class) {
+ require dirname(__FILE__).'/ClassLoader52.php';
+ }
+ }
+
+ /**
+ * @return xrstf_Composer52_ClassLoader
+ */
+ public static function getLoader() {
+ if (null !== self::\$loader) {
+ return self::\$loader;
+ }
+
+ spl_autoload_register(array('ComposerAutoloaderInit$suffix', 'loadClassLoader'), true /*, true */);
+ self::\$loader = \$loader = new xrstf_Composer52_ClassLoader();
+ spl_autoload_unregister(array('ComposerAutoloaderInit$suffix', 'loadClassLoader'));
+
+ \$vendorDir = $vendorPathCode;
+ \$baseDir = $appBaseDirCode;
+ \$dir = dirname(__FILE__);
+
+
+HEADER;
+
+ if ($useIncludePath) {
+ $file .= <<<'INCLUDE_PATH'
+ $includePaths = require $dir.'/include_paths.php';
+ array_push($includePaths, get_include_path());
+ set_include_path(implode(PATH_SEPARATOR, $includePaths));
+
+
+INCLUDE_PATH;
+ }
+
+ $file .= <<<'PSR0'
+ $map = require $dir.'/autoload_namespaces.php';
+ foreach ($map as $namespace => $path) {
+ $loader->add($namespace, $path);
+ }
+
+
+PSR0;
+
+ if ($useClassMap) {
+ $file .= <<<'CLASSMAP'
+ $classMap = require $dir.'/autoload_classmap.php';
+ if ($classMap) {
+ $loader->addClassMap($classMap);
+ }
+
+
+CLASSMAP;
+ }
+
+ if ($this->classMapAuthoritative) {
+ $file .= <<<'CLASSMAPAUTHORITATIVE'
+ $loader->setClassMapAuthoritative(true);
+
+CLASSMAPAUTHORITATIVE;
+ }
+
+ if ($useGlobalIncludePath) {
+ $file .= <<<'INCLUDEPATH'
+ $loader->setUseIncludePath(true);
+
+
+INCLUDEPATH;
+ }
+
+ if ($targetDirLoader) {
+ $file .= <<<REGISTER_AUTOLOAD
+ spl_autoload_register(array('ComposerAutoloaderInit$suffix', 'autoload'), true);
+
+
+REGISTER_AUTOLOAD;
+
+ }
+
+ $file .= <<<METHOD_FOOTER
+ \$loader->register($prependAutoloader);{$filesCode}
+
+ return \$loader;
+ }
+
+METHOD_FOOTER;
+
+ $file .= $targetDirLoader;
+
+ return $file . <<<FOOTER
+}
+
+FOOTER;
+
+ }
+}
</ins></span></pre></div>
<a id="trunksrcwpvendorxrstfcomposerphp52libxrstfComposer52ClassLoaderphp"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/src/wp-vendor/xrstf/composer-php52/lib/xrstf/Composer52/ClassLoader.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-vendor/xrstf/composer-php52/lib/xrstf/Composer52/ClassLoader.php (rev 0)
+++ trunk/src/wp-vendor/xrstf/composer-php52/lib/xrstf/Composer52/ClassLoader.php 2016-08-27 03:48:08 UTC (rev 38394)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,271 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+/*
+ * Copyright (c) 2013, Christoph Mewes, http://www.xrstf.de
+ *
+ * This file is released under the terms of the MIT license. You can find the
+ * complete text in the attached LICENSE file or online at:
+ *
+ * http://www.opensource.org/licenses/mit-license.php
+ *
+ * --------------------------------------------------------------------------
+ *
+ * 99% of this is copied as-is from the original Composer source code and is
+ * released under MIT license as well. Copyright goes to:
+ *
+ * - Fabien Potencier <fabien@symfony.com>
+ * - Jordi Boggiano <j.boggiano@seld.be>
+ */
+
+class xrstf_Composer52_ClassLoader {
+ private $prefixes = array();
+ private $fallbackDirs = array();
+ private $useIncludePath = false;
+ private $classMap = array();
+ private $classMapAuthoratative = false;
+ private $allowUnderscore = false;
+
+ /**
+ * @param boolean $flag true to allow class names with a leading underscore, false to disable
+ */
+ public function setAllowUnderscore($flag) {
+ $this->allowUnderscore = (boolean) $flag;
+ }
+
+ /**
+ * @return array
+ */
+ public function getPrefixes() {
+ return $this->prefixes;
+ }
+
+ /**
+ * Turns off searching the prefix and fallback directories for classes
+ * that have not been registered with the class map.
+ *
+ * @param bool $classMapAuthoratative
+ */
+ public function setClassMapAuthoritative($classMapAuthoratative) {
+ $this->classMapAuthoratative = $classMapAuthoratative;
+ }
+
+ /**
+ * Should class lookup fail if not found in the current class map?
+ *
+ * @return bool
+ */
+ public function getClassMapAuthoratative() {
+ return $this->classMapAuthoratative;
+ }
+
+ /**
+ * @return array
+ */
+ public function getFallbackDirs() {
+ return $this->fallbackDirs;
+ }
+
+ /**
+ * @return array
+ */
+ public function getClassMap() {
+ return $this->classMap;
+ }
+
+ /**
+ * @param array $classMap class to filename map
+ */
+ public function addClassMap(array $classMap) {
+ if ($this->classMap) {
+ $this->classMap = array_merge($this->classMap, $classMap);
+ }
+ else {
+ $this->classMap = $classMap;
+ }
+ }
+
+ /**
+ * Registers a set of classes, merging with any others previously set.
+ *
+ * @param string $prefix the classes prefix
+ * @param array|string $paths the location(s) of the classes
+ * @param bool $prepend prepend the location(s)
+ */
+ public function add($prefix, $paths, $prepend = false) {
+ if (!$prefix) {
+ if ($prepend) {
+ $this->fallbackDirs = array_merge(
+ (array) $paths,
+ $this->fallbackDirs
+ );
+ }
+ else {
+ $this->fallbackDirs = array_merge(
+ $this->fallbackDirs,
+ (array) $paths
+ );
+ }
+
+ return;
+ }
+
+ if (!isset($this->prefixes[$prefix])) {
+ $this->prefixes[$prefix] = (array) $paths;
+ return;
+ }
+
+ if ($prepend) {
+ $this->prefixes[$prefix] = array_merge(
+ (array) $paths,
+ $this->prefixes[$prefix]
+ );
+ }
+ else {
+ $this->prefixes[$prefix] = array_merge(
+ $this->prefixes[$prefix],
+ (array) $paths
+ );
+ }
+ }
+
+ /**
+ * Registers a set of classes, replacing any others previously set.
+ *
+ * @param string $prefix the classes prefix
+ * @param array|string $paths the location(s) of the classes
+ */
+ public function set($prefix, $paths) {
+ if (!$prefix) {
+ $this->fallbackDirs = (array) $paths;
+ return;
+ }
+
+ $this->prefixes[$prefix] = (array) $paths;
+ }
+
+ /**
+ * Turns on searching the include path for class files.
+ *
+ * @param bool $useIncludePath
+ */
+ public function setUseIncludePath($useIncludePath) {
+ $this->useIncludePath = $useIncludePath;
+ }
+
+ /**
+ * Can be used to check if the autoloader uses the include path to check
+ * for classes.
+ *
+ * @return bool
+ */
+ public function getUseIncludePath() {
+ return $this->useIncludePath;
+ }
+
+ /**
+ * Registers this instance as an autoloader.
+ */
+ public function register() {
+ spl_autoload_register(array($this, 'loadClass'), true);
+ }
+
+ /**
+ * Unregisters this instance as an autoloader.
+ */
+ public function unregister() {
+ spl_autoload_unregister(array($this, 'loadClass'));
+ }
+
+ /**
+ * Loads the given class or interface.
+ *
+ * @param string $class the name of the class
+ * @return bool|null true, if loaded
+ */
+ public function loadClass($class) {
+ if ($file = $this->findFile($class)) {
+ include $file;
+ return true;
+ }
+ }
+
+ /**
+ * Finds the path to the file where the class is defined.
+ *
+ * @param string $class the name of the class
+ * @return string|null the path, if found
+ */
+ public function findFile($class) {
+ if ('\\' === $class[0]) {
+ $class = substr($class, 1);
+ }
+
+ if (isset($this->classMap[$class])) {
+ return $this->classMap[$class];
+ }
+ elseif ($this->classMapAuthoratative) {
+ return false;
+ }
+
+ $classPath = $this->getClassPath($class);
+
+ foreach ($this->prefixes as $prefix => $dirs) {
+ if (0 === strpos($class, $prefix)) {
+ foreach ($dirs as $dir) {
+ if (file_exists($dir.DIRECTORY_SEPARATOR.$classPath)) {
+ return $dir.DIRECTORY_SEPARATOR.$classPath;
+ }
+ }
+ }
+ }
+
+ foreach ($this->fallbackDirs as $dir) {
+ if (file_exists($dir.DIRECTORY_SEPARATOR.$classPath)) {
+ return $dir.DIRECTORY_SEPARATOR.$classPath;
+ }
+ }
+
+ if ($this->useIncludePath && $file = self::resolveIncludePath($classPath)) {
+ return $file;
+ }
+
+ return $this->classMap[$class] = false;
+ }
+
+ private function getClassPath($class) {
+ if (false !== $pos = strrpos($class, '\\')) {
+ // namespaced class name
+ $classPath = str_replace('\\', DIRECTORY_SEPARATOR, substr($class, 0, $pos)).DIRECTORY_SEPARATOR;
+ $className = substr($class, $pos + 1);
+ }
+ else {
+ // PEAR-like class name
+ $classPath = null;
+ $className = $class;
+ }
+
+ $className = str_replace('_', DIRECTORY_SEPARATOR, $className);
+
+ // restore the prefix
+ if ($this->allowUnderscore && DIRECTORY_SEPARATOR === $className[0]) {
+ $className[0] = '_';
+ }
+
+ $classPath .= $className.'.php';
+
+ return $classPath;
+ }
+
+ public static function resolveIncludePath($classPath) {
+ $paths = explode(PATH_SEPARATOR, get_include_path());
+
+ foreach ($paths as $path) {
+ $path = rtrim($path, '/\\');
+
+ if ($file = file_exists($path.DIRECTORY_SEPARATOR.$file)) {
+ return $file;
+ }
+ }
+
+ return false;
+ }
+}
</ins></span></pre></div>
<a id="trunksrcwpvendorxrstfcomposerphp52libxrstfComposer52Generatorphp"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/src/wp-vendor/xrstf/composer-php52/lib/xrstf/Composer52/Generator.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-vendor/xrstf/composer-php52/lib/xrstf/Composer52/Generator.php (rev 0)
+++ trunk/src/wp-vendor/xrstf/composer-php52/lib/xrstf/Composer52/Generator.php 2016-08-27 03:48:08 UTC (rev 38394)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,39 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+/*
+ * Copyright (c) 2013, Christoph Mewes, http://www.xrstf.de
+ *
+ * This file is released under the terms of the MIT license. You can find the
+ * complete text in the attached LICENSE file or online at:
+ *
+ * http://www.opensource.org/licenses/mit-license.php
+ */
+
+namespace xrstf\Composer52;
+
+use Composer\Repository\CompositeRepository;
+use Composer\Script\Event;
+
+class Generator {
+ public static function onPostInstallCmd(Event $event) {
+ $composer = $event->getComposer();
+ $installationManager = $composer->getInstallationManager();
+ $repoManager = $composer->getRepositoryManager();
+ $localRepo = $repoManager->getLocalRepository();
+ $package = $composer->getPackage();
+ $config = $composer->getConfig();
+
+ // We can't gain access to the Command's input object, so we have to look
+ // for -o / --optimize-autoloader ourselves. Sadly, neither getopt() works
+ // (always returns an empty array), nor does Symfony's Console Input, as
+ // it expects a full definition of the current command line and we can't
+ // provide that.
+
+ $args = $_SERVER['argv'];
+ $optimize = in_array('-o', $args) || in_array('--optimize-autoloader', $args) || in_array('--optimize', $args);
+
+ $suffix = $config->get('autoloader-suffix');
+
+ $generator = new AutoloadGenerator();
+ $generator->dump($config, $localRepo, $package, $installationManager, 'composer', $optimize, $suffix);
+ }
+}
</ins></span></pre>
</div>
</div>
</body>
</html>