Make WordPress Core


Ignore:
Timestamp:
05/01/2020 02:24:42 PM (4 years ago)
Author:
desrosj
Message:

External Libraries: Update the SimplePie library to the latest version (1.5.5).

This brings SimplePie in sync with the most up to date version, 1.5.5.

This update brings many bug fixes, small enhancements, and PHP compatibility fixes for newer versions of PHP.

For a full list of changes, see https://github.com/simplepie/simplepie/blob/master/CHANGELOG.md#155-may-1-2020.

Props dshanske, slushman, etruel, wpshades, dmenard, desrosj, hareesh-pillai, stevenkword, jrf, Ipstenu, johnbillion.
Fixes #36669.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/SimplePie/IRI.php

    r22798 r47733  
    66 * Takes the hard work out of managing a complete RSS/Atom solution.
    77 *
    8  * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
     8 * Copyright (c) 2004-2016, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
    99 * All rights reserved.
    1010 *
     
    3434 *
    3535 * @package SimplePie
    36  * @version 1.3.1
    37  * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
     36 * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue
    3837 * @author Ryan Parman
    39  * @author Geoffrey Sneddon
     38 * @author Sam Sneddon
    4039 * @author Ryan McCue
    4140 * @link http://simplepie.org/ SimplePie
     
    4847 * @package SimplePie
    4948 * @subpackage HTTP
    50  * @author Geoffrey Sneddon
     49 * @author Sam Sneddon
    5150 * @author Steve Minutillo
    5251 * @author Ryan McCue
    53  * @copyright 2007-2012 Geoffrey Sneddon, Steve Minutillo, Ryan McCue
     52 * @copyright 2007-2012 Sam Sneddon, Steve Minutillo, Ryan McCue
    5453 * @license http://www.opensource.org/licenses/bsd-license.php
    5554 */
     
    213212            return $this->normalization[$this->scheme][$name];
    214213        }
    215         else
    216         {
    217             return $return;
    218         }
     214
     215        return $return;
    219216    }
    220217
     
    227224    public function __isset($name)
    228225    {
    229         if (method_exists($this, 'get_' . $name) || isset($this->$name))
    230         {
    231             return true;
    232         }
    233         else
    234         {
    235             return false;
    236         }
     226        return method_exists($this, 'get_' . $name) || isset($this->$name);
    237227    }
    238228
     
    258248    {
    259249        $this->set_iri($iri);
     250    }
     251
     252    /**
     253     * Clean up
     254     */
     255    public function __destruct() {
     256        $this->set_iri(null, true);
     257        $this->set_path(null, true);
     258        $this->set_authority(null, true);
    260259    }
    261260
     
    349348                return $target;
    350349            }
    351             else
    352             {
    353                 return false;
    354             }
     350
     351            return false;
    355352        }
    356353    }
     
    389386            return $match;
    390387        }
    391         else
    392         {
    393             // This can occur when a paragraph is accidentally parsed as a URI
    394             return false;
    395         }
     388
     389        // This can occur when a paragraph is accidentally parsed as a URI
     390        return false;
    396391    }
    397392
     
    769764    public function is_valid()
    770765    {
    771         $isauthority = $this->iuserinfo !== null || $this->ihost !== null || $this->port !== null;
    772         if ($this->ipath !== '' &&
    773             (
    774                 $isauthority && (
    775                     $this->ipath[0] !== '/' ||
    776                     substr($this->ipath, 0, 2) === '//'
    777                 ) ||
    778                 (
    779                     $this->scheme === null &&
    780                     !$isauthority &&
    781                     strpos($this->ipath, ':') !== false &&
    782                     (strpos($this->ipath, '/') === false ? true : strpos($this->ipath, ':') < strpos($this->ipath, '/'))
    783                 )
    784             )
    785         )
    786         {
    787             return false;
    788         }
     766        if ($this->ipath === '') return true;
     767
     768        $isauthority = $this->iuserinfo !== null || $this->ihost !== null ||
     769            $this->port !== null;
     770        if ($isauthority && $this->ipath[0] === '/') return true;
     771
     772        if (!$isauthority && (substr($this->ipath, 0, 2) === '//')) return false;
     773
     774        // Relative urls cannot have a colon in the first path segment (and the
     775        // slashes themselves are not included so skip the first character).
     776        if (!$this->scheme && !$isauthority &&
     777            strpos($this->ipath, ':') !== false &&
     778            strpos($this->ipath, '/', 1) !== false &&
     779            strpos($this->ipath, ':') < strpos($this->ipath, '/', 1)) return false;
    789780
    790781        return true;
     
    798789     * @return bool
    799790     */
    800     public function set_iri($iri)
     791    public function set_iri($iri, $clear_cache = false)
    801792    {
    802793        static $cache;
     794        if ($clear_cache)
     795        {
     796            $cache = null;
     797            return;
     798        }
    803799        if (!$cache)
    804800        {
     
    822818            return $return;
    823819        }
    824         else
    825         {
    826             $parsed = $this->parse_iri((string) $iri);
    827             if (!$parsed)
    828             {
    829                 return false;
    830             }
    831 
    832             $return = $this->set_scheme($parsed['scheme'])
    833                 && $this->set_authority($parsed['authority'])
    834                 && $this->set_path($parsed['path'])
    835                 && $this->set_query($parsed['query'])
    836                 && $this->set_fragment($parsed['fragment']);
    837 
    838             $cache[$iri] = array($this->scheme,
    839                                  $this->iuserinfo,
    840                                  $this->ihost,
    841                                  $this->port,
    842                                  $this->ipath,
    843                                  $this->iquery,
    844                                  $this->ifragment,
    845                                  $return);
    846             return $return;
    847         }
     820
     821        $parsed = $this->parse_iri((string) $iri);
     822        if (!$parsed)
     823        {
     824            return false;
     825        }
     826
     827        $return = $this->set_scheme($parsed['scheme'])
     828            && $this->set_authority($parsed['authority'])
     829            && $this->set_path($parsed['path'])
     830            && $this->set_query($parsed['query'])
     831            && $this->set_fragment($parsed['fragment']);
     832
     833        $cache[$iri] = array($this->scheme,
     834                             $this->iuserinfo,
     835                             $this->ihost,
     836                             $this->port,
     837                             $this->ipath,
     838                             $this->iquery,
     839                             $this->ifragment,
     840                             $return);
     841        return $return;
    848842    }
    849843
     
    880874     * @return bool
    881875     */
    882     public function set_authority($authority)
     876    public function set_authority($authority, $clear_cache = false)
    883877    {
    884878        static $cache;
     879        if ($clear_cache)
     880        {
     881            $cache = null;
     882            return;
     883        }
    885884        if (!$cache)
    886885            $cache = array();
     
    902901            return $return;
    903902        }
     903
     904        $remaining = $authority;
     905        if (($iuserinfo_end = strrpos($remaining, '@')) !== false)
     906        {
     907            $iuserinfo = substr($remaining, 0, $iuserinfo_end);
     908            $remaining = substr($remaining, $iuserinfo_end + 1);
     909        }
    904910        else
    905911        {
    906             $remaining = $authority;
    907             if (($iuserinfo_end = strrpos($remaining, '@')) !== false)
    908             {
    909                 $iuserinfo = substr($remaining, 0, $iuserinfo_end);
    910                 $remaining = substr($remaining, $iuserinfo_end + 1);
    911             }
    912             else
    913             {
    914                 $iuserinfo = null;
    915             }
    916             if (($port_start = strpos($remaining, ':', strpos($remaining, ']'))) !== false)
    917             {
    918                 if (($port = substr($remaining, $port_start + 1)) === false)
    919                 {
    920                     $port = null;
    921                 }
    922                 $remaining = substr($remaining, 0, $port_start);
    923             }
    924             else
     912            $iuserinfo = null;
     913        }
     914        if (($port_start = strpos($remaining, ':', strpos($remaining, ']'))) !== false)
     915        {
     916            if (($port = substr($remaining, $port_start + 1)) === false)
    925917            {
    926918                $port = null;
    927919            }
    928 
    929             $return = $this->set_userinfo($iuserinfo) &&
    930                       $this->set_host($remaining) &&
    931                       $this->set_port($port);
    932 
    933             $cache[$authority] = array($this->iuserinfo,
    934                                        $this->ihost,
    935                                        $this->port,
    936                                        $return);
    937 
    938             return $return;
    939         }
     920            $remaining = substr($remaining, 0, $port_start);
     921        }
     922        else
     923        {
     924            $port = null;
     925        }
     926
     927        $return = $this->set_userinfo($iuserinfo) &&
     928                  $this->set_host($remaining) &&
     929                  $this->set_port($port);
     930
     931        $cache[$authority] = array($this->iuserinfo,
     932                                   $this->ihost,
     933                                   $this->port,
     934                                   $return);
     935
     936        return $return;
    940937    }
    941938
     
    10371034            return true;
    10381035        }
    1039         else
    1040         {
    1041             $this->port = null;
    1042             return false;
    1043         }
     1036
     1037        $this->port = null;
     1038        return false;
    10441039    }
    10451040
     
    10501045     * @return bool
    10511046     */
    1052     public function set_path($ipath)
     1047    public function set_path($ipath, $clear_cache = false)
    10531048    {
    10541049        static $cache;
     1050        if ($clear_cache)
     1051        {
     1052            $cache = null;
     1053            return;
     1054        }
    10551055        if (!$cache)
    10561056        {
     
    11671167            $iri .= $this->ipath;
    11681168        }
    1169         elseif (!empty($this->normalization[$this->scheme]['ipath']) && $iauthority !== null && $iauthority !== '')
     1169        elseif (!empty($this->normalization[$this->scheme]['ipath']) && $iauthority !== null && $iauthority !== '')
    11701170        {
    11711171            $iri .= $this->normalization[$this->scheme]['ipath'];
     
    12111211                $iauthority .= $this->ihost;
    12121212            }
    1213             if ($this->port !== null)
     1213            if ($this->port !== null && $this->port !== 0)
    12141214            {
    12151215                $iauthority .= ':' . $this->port;
     
    12171217            return $iauthority;
    12181218        }
    1219         else
    1220         {
    1221             return null;
    1222         }
     1219
     1220        return null;
    12231221    }
    12241222
     
    12331231        if (is_string($iauthority))
    12341232            return $this->to_uri($iauthority);
    1235         else
    1236             return $iauthority;
     1233
     1234        return $iauthority;
    12371235    }
    12381236}
Note: See TracChangeset for help on using the changeset viewer.