<commit_before><?php

/* $Id$ */

error_reporting(1803);

if (ini_get('date.timezone') === '' && function_exists('date_default_timezone_set')) {
    date_default_timezone_set('UTC');
}

$pear_dir = dirname(__FILE__);
ini_set('include_path', '');
if (function_exists('mb_internal_encoding')) {
    mb_internal_encoding('ASCII');
}
set_time_limit(0);
include_once 'PEAR.php';
include_once 'PEAR/Installer.php';
include_once 'PEAR/Registry.php';
include_once 'PEAR/PackageFile.php';
include_once 'PEAR/Downloader/Package.php';
include_once 'PEAR/Frontend.php';
$a = true;
if (!PEAR::loadExtension('xml')) {
    $a = false;
    echo "[PEAR] xml extension is required\n";
}
if (!PEAR::loadExtension('pcre')) {
    $a = false;
    echo "[PEAR] pcre extension is required\n";
}
if (!$a) {
    return -1;
}

$force = false;
$install_files = array();
array_shift($argv);
$debug = false;
for ($i = 0; $i < sizeof($argv); $i++) {
    $arg = $argv[$i];
    $bn = basename($arg);
    if (ereg('package-(.*)\.xml$', $bn, $matches) ||
        ereg('([A-Za-z0-9_:]+)-.*\.(tar|tgz)$', $bn, $matches)) {
        $install_files[$matches[1]] = $arg;
    } elseif ($arg == '-a') {
        $cache_dir = $argv[$i+1];
        $i++;
    } elseif ($arg == '--force') {
        $force = true;
    } elseif ($arg == '-d') {
        $with_dir = $argv[$i+1];
        $i++;
    } elseif ($arg == '-b') {
        $bin_dir = $argv[$i+1];
        $i++;
    } elseif ($arg == '-c') {
        $cfg_dir = $argv[$i+1];
        $i++;
    } elseif ($arg == '-w') {
        $www_dir = $argv[$i+1];
        $i++;
    } elseif ($arg == '-p') {
        $php_bin = $argv[$i+1];
        $i++;
    } elseif ($arg == '-o') {
        $download_dir = $argv[$i+1];
        $i++;
    } elseif ($arg == '-t') {
        $temp_dir = $argv[$i+1];
        $i++;
    } elseif ($arg == '--debug') {
        $debug = 1;
    } elseif ($arg == '--extremedebug') {
        $debug = 2;
    }
}

$config = PEAR_Config::singleton();

if (PEAR::isError($config)) {
    $locs = PEAR_Config::getDefaultConfigFiles();
    die("ERROR: One of $locs[user] or $locs[system] is corrupt, please remove them and try again");
}

// make sure we use only default values
$config_layers = $config->getLayers();
foreach ($config_layers as $layer) {
    if ($layer == 'default') continue;
    $config->removeLayer($layer);
}
$keys = $config->getKeys();
if ($debug) {
    $config->set('verbose', 5, 'default');
} else {
    $config->set('verbose', 0, 'default');
}
// PEAR executables
if (!empty($bin_dir)) {
    $config->set('bin_dir', $bin_dir, 'default');
}

// Cache files
if (!empty($cache_dir)) {
    $config->set('cache_dir', $cache_dir, 'default');
}

// Config files
if (!empty($cfg_dir)) {
    $config->set('cfg_dir', $cfg_dir, 'default');
}

// Web files
if (!empty($www_dir)) {
    $config->set('www_dir', $www_dir, 'default');
}

// Downloaded files
if (!empty($download_dir)) {
    $config->set('download_dir', $download_dir, 'default');
}

// Temporary files
if (!empty($temp_dir)) {
    $config->set('temp_dir', $temp_dir, 'default');
}

// User supplied a dir prefix
if (!empty($with_dir)) {
    $ds = DIRECTORY_SEPARATOR;
    $config->set('php_dir', $with_dir, 'default');
    $config->set('doc_dir', $with_dir . $ds . 'doc', 'default');
    $config->set('data_dir', $with_dir . $ds . 'data', 'default');
    $config->set('test_dir', $with_dir . $ds . 'test', 'default');
    if (empty($www_dir)) {
        $config->set('www_dir', $with_dir . $ds . 'htdocs', 'default');
    }
    if (empty($cfg_dir)) {
        $config->set('cfg_dir', $with_dir . $ds . 'cfg', 'default');
    }
    if (!is_writable($config->get('cache_dir'))) {
        include_once 'System.php';
        $cdir = System::mktemp(array('-d', 'pear'));
        if (PEAR::isError($cdir)) {
            $ui->outputData("[PEAR] cannot make new temporary directory: " . $cdir);
            die(1);
        }
        $oldcachedir = $config->get('cache_dir');
        $config->set('cache_dir', $cdir);
    }
}
if (!empty($php_bin)) {
    $config->set('php_bin', $php_bin);
}
/* Print PEAR Conf (useful for debuging do NOT REMOVE) */
if ($debug) {
    sort($keys);
    foreach ($keys as $key) {
        echo $key . '    ' .
            $config->getPrompt($key) . ": " . $config->get($key, null, 'default') . "\n";
    }
    if ($debug == 2) { // extreme debugging
        exit;
    }
}
// end print
<commit_msg>add php_prefix/php_suffix saving.  This finally fixes PHP Bug #43857<commit_after><?php

/* $Id$ */

error_reporting(1803);

if (ini_get('date.timezone') === '' && function_exists('date_default_timezone_set')) {
    date_default_timezone_set('UTC');
}

$pear_dir = dirname(__FILE__);
ini_set('include_path', '');
if (function_exists('mb_internal_encoding')) {
    mb_internal_encoding('ASCII');
}
set_time_limit(0);
include_once 'PEAR.php';
include_once 'PEAR/Installer.php';
include_once 'PEAR/Registry.php';
include_once 'PEAR/PackageFile.php';
include_once 'PEAR/Downloader/Package.php';
include_once 'PEAR/Frontend.php';
$a = true;
if (!PEAR::loadExtension('xml')) {
    $a = false;
    echo "[PEAR] xml extension is required\n";
}
if (!PEAR::loadExtension('pcre')) {
    $a = false;
    echo "[PEAR] pcre extension is required\n";
}
if (!$a) {
    return -1;
}

$force = false;
$install_files = array();
array_shift($argv);
$debug = false;
for ($i = 0; $i < sizeof($argv); $i++) {
    $arg = $argv[$i];
    $bn = basename($arg);
    if (ereg('package-(.*)\.xml$', $bn, $matches) ||
        ereg('([A-Za-z0-9_:]+)-.*\.(tar|tgz)$', $bn, $matches)) {
        $install_files[$matches[1]] = $arg;
    } elseif ($arg == '-a') {
        $cache_dir = $argv[$i+1];
        $i++;
    } elseif ($arg == '--force') {
        $force = true;
    } elseif ($arg == '-dp') {
        $prefix = $argv[$i+1];
        $i++;
    } elseif ($arg == '-ds') {
        $suffix = $argv[$i+1];
        $i++;
    } elseif ($arg == '-d') {
        $with_dir = $argv[$i+1];
        $i++;
    } elseif ($arg == '-b') {
        $bin_dir = $argv[$i+1];
        $i++;
    } elseif ($arg == '-c') {
        $cfg_dir = $argv[$i+1];
        $i++;
    } elseif ($arg == '-w') {
        $www_dir = $argv[$i+1];
        $i++;
    } elseif ($arg == '-p') {
        $php_bin = $argv[$i+1];
        $i++;
    } elseif ($arg == '-o') {
        $download_dir = $argv[$i+1];
        $i++;
    } elseif ($arg == '-t') {
        $temp_dir = $argv[$i+1];
        $i++;
    } elseif ($arg == '--debug') {
        $debug = 1;
    } elseif ($arg == '--extremedebug') {
        $debug = 2;
    }
}

$config = PEAR_Config::singleton();

if (PEAR::isError($config)) {
    $locs = PEAR_Config::getDefaultConfigFiles();
    die("ERROR: One of $locs[user] or $locs[system] is corrupt, please remove them and try again");
}

// make sure we use only default values
$config_layers = $config->getLayers();
foreach ($config_layers as $layer) {
    if ($layer == 'default') continue;
    $config->removeLayer($layer);
}
$keys = $config->getKeys();
if ($debug) {
    $config->set('verbose', 5, 'default');
} else {
    $config->set('verbose', 0, 'default');
}
// PEAR executables
if (!empty($bin_dir)) {
    $config->set('bin_dir', $bin_dir, 'default');
}

// Cache files
if (!empty($cache_dir)) {
    $config->set('cache_dir', $cache_dir, 'default');
}

// Config files
if (!empty($cfg_dir)) {
    $config->set('cfg_dir', $cfg_dir, 'default');
}

// Web files
if (!empty($www_dir)) {
    $config->set('www_dir', $www_dir, 'default');
}

// Downloaded files
if (!empty($download_dir)) {
    $config->set('download_dir', $download_dir, 'default');
}

// Temporary files
if (!empty($temp_dir)) {
    $config->set('temp_dir', $temp_dir, 'default');
}

// User supplied a dir prefix
if (!empty($with_dir)) {
    $ds = DIRECTORY_SEPARATOR;
    $config->set('php_dir', $with_dir, 'default');
    $config->set('doc_dir', $with_dir . $ds . 'doc', 'default');
    $config->set('data_dir', $with_dir . $ds . 'data', 'default');
    $config->set('test_dir', $with_dir . $ds . 'test', 'default');
    if (empty($www_dir)) {
        $config->set('www_dir', $with_dir . $ds . 'htdocs', 'default');
    }
    if (empty($cfg_dir)) {
        $config->set('cfg_dir', $with_dir . $ds . 'cfg', 'default');
    }
    if (!is_writable($config->get('cache_dir'))) {
        include_once 'System.php';
        $cdir = System::mktemp(array('-d', 'pear'));
        if (PEAR::isError($cdir)) {
            $ui->outputData("[PEAR] cannot make new temporary directory: " . $cdir);
            die(1);
        }
        $oldcachedir = $config->get('cache_dir');
        $config->set('cache_dir', $cdir);
    }
}

// PHP executable
if (!empty($php_bin)) {
    $config->set('php_bin', $php_bin);
}

// PHP prefix
if (isset($prefix)) {
    if ($prefix != 'a') {
        if ($prefix[0] == 'a') {
            $prefix = substr($prefix, 1);
        }
        $config->set('php_prefix', $prefix, 'system');
    }
}

// PHP suffix
if (isset($suffix)) {
    if ($suffix != 'a') {
        if ($suffix[0] == 'a') {
            $suffix = substr($suffix, 1);
        }
        $config->set('php_suffix', $suffix, 'system');
    }
}
echo "dangit\n";
exit;

/* Print PEAR Conf (useful for debuging do NOT REMOVE) */
if ($debug) {
    sort($keys);
    foreach ($keys as $key) {
        echo $key . '    ' .
            $config->getPrompt($key) . ": " . $config->get($key, null, 'default') . "\n";
    }
    if ($debug == 2) { // extreme debugging
        exit;
    }
}
// end print

{'fraction_non_alphanumeric': 0.2274741506646972, 'fraction_numerical': 0.006224941970879932, 'mean_word_length': 2.8992184286301934, 'pattern_counts': {'":': 2, '<': 7, '<?xml version=': 0, '>': 53, 'https://': 0, 'lorem ipsum': 0, 'www.': 12, 'xml': 6}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 12, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1627870', 'n_tokens_mistral': 3506, 'n_tokens_neox': 3492, 'n_words': 717}