aboutsummaryrefslogtreecommitdiff
path: root/php/readline.php
blob: 5e335019fa3ea10b6f43f3d5591d5ce0223a95e9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php

$HISTORY_FILE = $_SERVER['HOME'] . "/.mal-history";

function mal_readline($prompt) {
    global $HISTORY_FILE;
    static $history_loaded = false;

    // Load the history file
    if (! $history_loaded) {
        $history_loaded = true;
        if ($file = fopen($HISTORY_FILE, "r")) {
            while (!feof($file)) {
                $line = fgets($file);
                if ($line) { readline_add_history($line); }
            }
            fclose($file);
        }
    }

    $line = readline($prompt);
    if ($line === false) { return NULL; }
    readline_add_history($line);

    // Append to the history file
    if ($file = fopen($HISTORY_FILE, "a")) {
        fputs($file, $line . "\n");
        fclose($file);
    }

    return $line;
}

?>