Use a history file with readline, so that readline history is carried over from one...
authorTim Starling <tstarling@users.mediawiki.org>
Tue, 22 Jul 2008 21:47:53 +0000 (21:47 +0000)
committerTim Starling <tstarling@users.mediawiki.org>
Tue, 22 Jul 2008 21:47:53 +0000 (21:47 +0000)
maintenance/eval.php

index 4f14a3b..a990a4d 100644 (file)
@@ -39,8 +39,24 @@ if ( isset( $options['d'] ) ) {
        }
 }
 
+if ( function_exists( 'readline_add_history' ) 
+       && function_exists( 'posix_isatty' ) && posix_isatty( 0 /*STDIN*/ ) ) 
+{
+       $useReadline = true;
+} else {
+       $useReadline = false;
+}
+
+if ( $useReadline ) {
+       $historyFile = "{$_ENV['HOME']}/.mweval_history";
+       readline_read_history( $historyFile );
+}
 
 while ( ( $line = readconsole( '> ' ) ) !== false ) {
+       if ( $useReadline ) {
+               readline_add_history( $line );
+               readline_write_history( $historyFile );
+       }
        $val = eval( $line . ";" );
        if( is_null( $val ) ) {
                echo "\n";
@@ -49,9 +65,6 @@ while ( ( $line = readconsole( '> ' ) ) !== false ) {
        } else {
                var_dump( $val );
        }
-       if ( function_exists( "readline_add_history" ) ) {
-               readline_add_history( $line );
-       }
 }
 
 print "\n";