about summary refs log tree commit diff stats
path: root/data/progressives.txtpb
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2025-10-01 23:14:50 -0400
committerStar Rauchenberger <fefferburbia@gmail.com>2025-10-01 23:14:50 -0400
commitf057724014f8d74fb776a48651c08b51d01fc89e (patch)
tree52d178bafae2129ee96ceeb0ddf47c661b1c62f3 /data/progressives.txtpb
parentb145f9abf63dea7ca4a9f52a0e722bb3c9e07dd3 (diff)
downloadlingo2-archipelago-f057724014f8d74fb776a48651c08b51d01fc89e.tar.gz
lingo2-archipelago-f057724014f8d74fb776a48651c08b51d01fc89e.tar.bz2
lingo2-archipelago-f057724014f8d74fb776a48651c08b51d01fc89e.zip
Add warning about worldports + cc colors v7.0.1
Diffstat (limited to 'data/progressives.txtpb')
0 files changed, 0 insertions, 0 deletions
/a> 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4                                                        |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group                                |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license,       |
// | that is bundled with this package in the file LICENSE, and is        |
// | available at through the world-wide-web at                           |
// | http://www.php.net/license/3_0.txt.                                  |
// | If you did not receive a copy of the PHP license and are unable to   |
// | obtain it through the world-wide-web, please send a note to          |
// | license@php.net so we can mail you a copy immediately.               |
// +----------------------------------------------------------------------+
// | Authors: Philippe Jausions <Philippe.Jausions@11abacus.com>          |
// |          Aidan Lister <aidan@php.net>                                |
// +----------------------------------------------------------------------+
//
// $Id: version_compare.php,v 1.1 2005/07/11 16:34:36 ggiunta Exp $


/**
 * Replace version_compare()
 *
 * @category    PHP
 * @package     PHP_Compat
 * @link        http://php.net/function.version_compare
 * @author      Philippe Jausions <Philippe.Jausions@11abacus.com>
 * @author      Aidan Lister <aidan@php.net>
 * @version     $Revision: 1.1 $
 * @since       PHP 4.1.0
 * @require     PHP 4.0.0 (user_error)
 */
if (!function_exists('version_compare')) {
    function version_compare($version1, $version2, $operator = '<')
    {
        // Check input
        if (!is_scalar($version1)) {
            user_error('version_compare() expects parameter 1 to be string, ' .
                gettype($version1) . ' given', E_USER_WARNING);
            return;
        }

        if (!is_scalar($version2)) {
            user_error('version_compare() expects parameter 2 to be string, ' .
                gettype($version2) . ' given', E_USER_WARNING);
            return;
        }

        if (!is_scalar($operator)) {
            user_error('version_compare() expects parameter 3 to be string, ' .
                gettype($operator) . ' given', E_USER_WARNING);
            return;
        }

        // Standardise versions
        $v1 = explode('.',
            str_replace('..', '.',
                preg_replace('/([^0-9\.]+)/', '.$1.',
                    str_replace(array('-', '_', '+'), '.',
                        trim($version1)))));

        $v2 = explode('.',
            str_replace('..', '.',
                preg_replace('/([^0-9\.]+)/', '.$1.',
                    str_replace(array('-', '_', '+'), '.',
                        trim($version2)))));

        // Replace empty entries at the start of the array
        while (empty($v1[0]) && array_shift($v1)) {}
        while (empty($v2[0]) && array_shift($v2)) {}

        // Release state order
        // '#' stands for any number
        $versions = array(
            'dev'   => 0,
            'alpha' => 1,
            'a'     => 1,
            'beta'  => 2,
            'b'     => 2,
            'RC'    => 3,
            '#'     => 4,
            'p'     => 5,
            'pl'    => 5);

        // Loop through each segment in the version string
        $compare = 0;
        for ($i = 0, $x = min(count($v1), count($v2)); $i < $x; $i++) {
            if ($v1[$i] == $v2[$i]) {
                continue;
            }
            $i1 = $v1[$i];
            $i2 = $v2[$i];
            if (is_numeric($i1) && is_numeric($i2)) {
                $compare = ($i1 < $i2) ? -1 : 1;
                break;
            }
            // We use the position of '#' in the versions list
            // for numbers... (so take care of # in original string)
            if ($i1 == '#') {
                $i1 = '';
            } elseif (is_numeric($i1)) {
                $i1 = '#';
            }
            if ($i2 == '#') {
                $i2 = '';
            } elseif (is_numeric($i2)) {
                $i2 = '#';
            }
            if (isset($versions[$i1]) && isset($versions[$i2])) {
                $compare = ($versions[$i1] < $versions[$i2]) ? -1 : 1;
            } elseif (isset($versions[$i1])) {
                $compare = 1;
            } elseif (isset($versions[$i2])) {
                $compare = -1;
            } else {
                $compare = 0;
            }

            break;
        }

        // If previous loop didn't find anything, compare the "extra" segments
        if ($compare == 0) {
            if (count($v2) > count($v1)) {
                if (isset($versions[$v2[$i]])) {
                    $compare = ($versions[$v2[$i]] < 4) ? 1 : -1;
                } else {
                    $compare = -1;
                }
            } elseif (count($v2) < count($v1)) {
                if (isset($versions[$v1[$i]])) {
                    $compare = ($versions[$v1[$i]] < 4) ? -1 : 1;
                } else {
                    $compare = 1;
                }
            }
        }

        // Compare the versions
        if (func_num_args() > 2) {
            switch ($operator) {
                case '>':
                case 'gt':
                    return (bool) ($compare > 0);
                    break;
                case '>=':
                case 'ge':
                    return (bool) ($compare >= 0);
                    break;
                case '<=':
                case 'le':
                    return (bool) ($compare <= 0);
                    break;
                case '==':
                case '=':
                case 'eq':
                    return (bool) ($compare == 0);
                    break;
                case '<>':
                case '!=':
                case 'ne':
                    return (bool) ($compare != 0);
                    break;
                case '':
                case '<':
                case 'lt':
                    return (bool) ($compare < 0);
                    break;
                default:
                    return;
            }
        }

        return $compare;
    }
}

?>