[libreadline-java] 13/21: Imported Upstream version 0.8.0.1+dfsg
Tony Mancill
tmancill at moszumanska.debian.org
Sat Mar 22 16:49:33 UTC 2014
This is an automated email from the git hooks/post-receive script.
tmancill pushed a commit to branch master
in repository libreadline-java.
commit e769e8fd585a648b5688e1461d3793f70c3ab88d
Author: tony mancill <tmancill at debian.org>
Date: Fri Mar 21 06:40:19 2014 -0700
Imported Upstream version 0.8.0.1+dfsg
---
contrib/bsh/BshCompleter.java | 38 --
contrib/bsh/Interpreter.java | 1002 ----------------------------------
contrib/bsh/Interpreter.java.diff | 79 ---
contrib/bsh/README | 23 -
contrib/jpython/README | 10 -
contrib/jpython/ReadlineConsole.java | 46 --
contrib/jpython/jpython.diff | 22 -
contrib/jpython/jpython.java | 272 ---------
contrib/jpython/jython-install.txt | 64 ---
contrib/jscheme/SilkCompleter.java | 64 ---
contrib/win32/JavaGetline.dll | Bin 47622 -> 0 bytes
11 files changed, 1620 deletions(-)
diff --git a/contrib/bsh/BshCompleter.java b/contrib/bsh/BshCompleter.java
deleted file mode 100644
index 7a35460..0000000
--- a/contrib/bsh/BshCompleter.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package bsh.util;
-
-import org.gnu.readline.ReadlineCompleter;
-
-/**
- * An adapter for org.gnu.readline's ReadlineCompleter interface to map to
- * BeanShell's NameCompleter interface.
- *
- * @see org.gnu.readline.ReadlineReader
- * @version $Revision: 1.1 $
- * @author Shane Celis <shane at terraspring.com>
- **/
-public class BshCompleter implements ReadlineCompleter {
-
- private NameCompletion completer;
-
- /**
- * Constructs a <code>ReadlineCompleter</code> out of a
- * <code>NameCompleter</code> object.
- **/
- public BshCompleter(NameCompletion completer) {
- this.completer = completer;
- }
-
- /**
- * Returns String of completion if unambiguous, otherwise null
- **/
- public String completer(String text, int state) {
- // Not sure what state is used for in ReadlineCompleter
- String[] completions = completer.completeName(text);
- if (completions.length == 1 && state == 0) {
- return completions[0];
- } else {
- return null; // ambiguous result
- }
- }
-
-}
diff --git a/contrib/bsh/Interpreter.java b/contrib/bsh/Interpreter.java
deleted file mode 100644
index 928d96e..0000000
--- a/contrib/bsh/Interpreter.java
+++ /dev/null
@@ -1,1002 +0,0 @@
-/*****************************************************************************
- * *
- * This file is part of the BeanShell Java Scripting distribution. *
- * Documentation and updates may be found at http://www.beanshell.org/ *
- * *
- * Sun Public License Notice: *
- * *
- * The contents of this file are subject to the Sun Public License Version *
- * 1.0 (the "License"); you may not use this file except in compliance with *
- * the License. A copy of the License is available at http://www.sun.com *
- * *
- * The Original Code is BeanShell. The Initial Developer of the Original *
- * Code is Pat Niemeyer. Portions created by Pat Niemeyer are Copyright *
- * (C) 2000. All Rights Reserved. *
- * *
- * GNU Public License Notice: *
- * *
- * Alternatively, the contents of this file may be used under the terms of *
- * the GNU Lesser General Public License (the "LGPL"), in which case the *
- * provisions of LGPL are applicable instead of those above. If you wish to *
- * allow use of your version of this file only under the terms of the LGPL *
- * and not to allow others to use your version of this file under the SPL, *
- * indicate your decision by deleting the provisions above and replace *
- * them with the notice and other provisions required by the LGPL. If you *
- * do not delete the provisions above, a recipient may use your version of *
- * this file under either the SPL or the LGPL. *
- * *
- * Patrick Niemeyer (pat at pat.net) *
- * Author of Learning Java, O'Reilly & Associates *
- * http://www.pat.net/~pat/ *
- * *
- *****************************************************************************/
-
-package bsh;
-
-import java.util.Vector;
-import java.io.*;
-import java.io.File; // why? I don't know
-import bsh.util.BshCompleter;
-import bsh.util.NameCompletionTable;
-import bsh.classpath.ClassManagerImpl;
-import org.gnu.readline.Readline;
-import org.gnu.readline.ReadlineReader;
-
-/**
- The BeanShell script interpreter.
-
- An instance of Interpreter can be used to source scripts and evaluate
- statements or expressions.
- <p>
- Here are some examples:
-
- <p><blockquote><pre>
- Interpeter bsh = new Interpreter();
-
- // Evaluate statements and expressions
- bsh.eval("foo=Math.sin(0.5)");
- bsh.eval("bar=foo*5; bar=Math.cos(bar);");
- bsh.eval("for(i=0; i<10; i++) { print(\"hello\"); }");
- // same as above using java syntax and apis only
- bsh.eval("for(int i=0; i<10; i++) { System.out.println(\"hello\"); }");
-
- // Source from files or streams
- bsh.source("myscript.bsh"); // or bsh.eval("source(\"myscript.bsh\")");
-
- // Use set() and get() to pass objects in and out of variables
- bsh.set( "date", new Date() );
- Date date = (Date)bsh.get( "date" );
- // This would also work:
- Date date = (Date)bsh.eval( "date" );
-
- bsh.eval("year = date.getYear()");
- Integer year = (Integer)bsh.get("year"); // primitives use wrappers
-
- // With Java1.3+ scripts can implement arbitrary interfaces...
- // Script an awt event handler (or source it from a file, more likely)
- bsh.eval( "actionPerformed( e ) { print( e ); }");
- // Get a reference to the script object (implementing the interface)
- ActionListener scriptedHandler =
- (ActionListener)bsh.eval("return (ActionListener)this");
- // Use the scripted event handler normally...
- new JButton.addActionListener( script );
- </pre></blockquote>
- <p>
-
- In the above examples we showed a single interpreter instance, however
- you may wish to use many instances, depending on the application and how
- you structure your scripts. Interpreter instances are very light weight
- to create, however if you are going to execute the same script repeatedly
- and require maximum performance you should consider scripting the code as
- a method and invoking the scripted method each time on the same interpreter
- instance (using eval()).
- <p>
-
- See the BeanShell User's Manual for more information.
-*/
-public class Interpreter
- implements Runnable, ConsoleInterface /*,Serializable*/
-{
- /* --- Begin static stuff --- */
-
- public static final String VERSION = "1.1a16";
- /*
- Debug utils are static so that they are reachable by code that doesn't
- necessarily have an interpreter reference (e.g. tracing in utils).
- In the future we may want to allow debug/trace to be turned on on
- a per interpreter basis, in which case we'll need to use the parent
- reference in some way to determine the scope of the command that
- turns it on or off...
- */
-
- public static boolean DEBUG, TRACE;
- // This should be per instance
- static PrintStream debug;
- static {
- staticInit();
- }
-
- /** Shared system object visible under bsh.system */
- static This systemObject;
-
- /* --- end static stuff --- */
-
- /* --- Instance data --- */
-
- Parser parser;
- NameSpace globalNameSpace;
- Reader in;
- PrintStream out;
- PrintStream err;
- ConsoleInterface console;
-
- /** If this interpeter is a child of another, the parent */
- Interpreter parent;
-
- /** The name of the file or other source that this interpreter is reading */
- String sourceFileInfo;
-
- /**
- Do we override exit on EOF as normally done in iteractive mode?
- (This is used by Sessiond)
- */
- public boolean noExitOnEOF;
-
- private boolean
- evalOnly, // Interpreter has no input stream, use eval() only
- interactive; // Interpreter has a user, print prompts, etc.
-
- /* --- End instance data --- */
-
- /**
- The main constructor.
- All constructors should now pass through here.
-
- @param namespace If namespace is non-null then this interpreter's
- root namespace will be set to the one provided. If it is null a new
- one will be created for it.
- @param parent The parent interpreter if this interpreter is a child
- of another. May be null.
- @param sourceFileInfo An informative string holding the filename
- or other description of the source from which this interpreter is
- reading... used for debugging. May be null.
- */
- public Interpreter(
- Reader in, PrintStream out, PrintStream err,
- boolean interactive, NameSpace namespace,
- Interpreter parent, String sourceFileInfo )
- {
- parser = new Parser( in );
- long t1=System.currentTimeMillis();
- this.in = in;
- this.out = out;
- this.err = err;
- this.interactive = interactive;
- debug = err;
- this.parent = parent;
- this.sourceFileInfo = sourceFileInfo;
-
- if ( namespace == null )
- this.globalNameSpace = new NameSpace("global");
- else
- this.globalNameSpace = namespace;
-
- // The classes which are imported by default
- globalNameSpace.loadDefaultImports();
-
- /*
- Create the root "bsh" system object if it doesn't exist.
- */
- if ( ! ( getu("bsh") instanceof bsh.This ) )
- initRootSystemObject();
-
- if ( interactive )
- loadRCFiles();
-
- long t2=System.currentTimeMillis();
- Interpreter.debug("Time to initialize interpreter: "+(t2-t1));
- }
-
- public Interpreter(
- Reader in, PrintStream out, PrintStream err,
- boolean interactive, NameSpace namespace)
- {
- this( in, out, err, interactive, namespace, null, null );
- }
-
- public Interpreter(
- Reader in, PrintStream out, PrintStream err, boolean interactive)
- {
- this(in, out, err, interactive, null);
- }
-
- /**
- Construct a new interactive interpreter attached to the specified
- console using the specified parent namespace.
- */
- public Interpreter(ConsoleInterface console, NameSpace globalNameSpace) {
-
- this( console.getIn(), console.getOut(), console.getErr(),
- true, globalNameSpace );
-
- setConsole( console );
- }
-
- /**
- Construct a new interactive interpreter attached to the specified
- console.
- */
-
- public Interpreter(ConsoleInterface console) {
- this(console, null);
- }
-
-
- /**
- Create an interpreter for evaluation only.
- */
- public Interpreter()
- {
- this( new StringReader(""),
- System.out, System.err, false, null );
- evalOnly = true;
- setu( "bsh.evalOnly", new Primitive(true) );
- }
-
- // End constructors
-
- /**
- Attach the console thusly... ;)
- */
- public void setConsole( ConsoleInterface console ) {
- this.console = console;
- setu( "bsh.console", console );
- }
-
- private void initRootSystemObject()
- {
- // bsh
- setu("bsh", new NameSpace( "Bsh Object" ).getThis( this ) );
-
- // init the static shared systemObject if it's not there yet
- if ( systemObject == null )
- systemObject = new NameSpace(
- "Bsh System Object" ).getThis( this );
- // bsh.system
- setu( "bsh.system", systemObject );
-
- // bsh.help
- This helpText = new NameSpace(
- "Bsh Command Help Text" ).getThis( this );
- setu( "bsh.help", helpText );
-
- // bsh.cwd
- try {
- setu( "bsh.cwd", System.getProperty("user.dir") );
- } catch ( SecurityException e ) {
- // applets can't see sys props
- setu( "bsh.cwd", "." );
- }
-
- // bsh.interactive
- setu( "bsh.interactive", new Primitive(interactive) );
- // bsh.evalOnly
- setu( "bsh.evalOnly", new Primitive(evalOnly) );
- }
-
- /**
- Set the global namespace for this interpreter.
- <p>
-
- Note: This is here for completeness. If you're using this a lot
- it may be an indication that you are doing more work than you have
- to. For example, caching the interpreter instance rather than the
- namespace should not add a significant overhead. No state other
- than the debug status is stored in the interpreter.
- <p>
-
- All features of the namespace can also be accessed using the
- interpreter via eval() and the script variable 'this.namespace'
- (or global.namespace as necessary).
- */
- public void setNameSpace( NameSpace globalNameSpace ) {
- this.globalNameSpace = globalNameSpace;
- }
-
- /**
- Get the global namespace of this interpreter.
- <p>
-
- Note: This is here for completeness. If you're using this a lot
- it may be an indication that you are doing more work than you have
- to. For example, caching the interpreter instance rather than the
- namespace should not add a significant overhead. No state other than
- the debug status is stored in the interpreter.
- <p>
-
- All features of the namespace can also be accessed using the
- interpreter via eval() and the script variable 'this.namespace'
- (or global.namespace as necessary).
- */
- public NameSpace getNameSpace() {
- return globalNameSpace;
- }
-
- /**
- Run the text only interpreter on the command line or specify a file.
- */
- public static void main( String [] args )
- {
- if ( args.length > 0 ) {
- String filename = args[0];
-
- String [] bshArgs;
- if ( args.length > 1 ) {
- bshArgs = new String [ args.length -1 ];
- System.arraycopy( args, 1, bshArgs, 0, args.length-1 );
- } else
- bshArgs = new String [0];
-
- Interpreter interpreter = new Interpreter();
- interpreter.setu( "bsh.args", bshArgs );
- try {
- interpreter.source( filename, interpreter.globalNameSpace );
- } catch ( FileNotFoundException e ) {
- System.out.println("File not found: "+e);
- } catch ( EvalError e ) {
- System.out.println("Evaluation Error: "+e);
- } catch ( IOException e ) {
- System.out.println("I/O Error: "+e);
- }
- } else {
- // Workaround for JDK bug 4071281, where system.in.available()
- // returns too large a value. This bug has been fixed in JDK 1.2.
- InputStream src;
- if ( System.getProperty("os.name").startsWith("Windows")
- && System.getProperty("java.version").startsWith("1.1."))
- {
- src = new FilterInputStream(System.in) {
- public int available() throws IOException {
- return 0;
- }
- };
- }
- else
- src = System.in;
-
- Reader in = null;
- boolean usingReadline = false;
- try {
- File history = new File(System.getProperty("user.home") +
- File.separator + ".bsh_history");
- if (!history.exists()) {
- try {
- history.createNewFile();
- } catch(IOException ioe) {
- debug("Unable to create history file: " + history.getAbsolutePath());
- }
- }
- // should I wrap CommandLineReader around it?
- if (history.canWrite() && history.canRead()) {
- in = new ReadlineReader("bsh % ", history,ReadlineLibrary.Editline);
- } else {
- in = new ReadlineReader("bsh % ",ReadlineLibrary.Editline);
- debug("Unable to read/write history file: " + history.getAbsolutePath());
- }
- } catch (IOException ioe) {
- System.err.println("Unable to invoke ReadlineReader " +
- "due to: " + ioe);
- }
- if (in == null)
- in = new CommandLineReader( new InputStreamReader(src));
- else
- usingReadline = true;
- Interpreter interpreter =
- new Interpreter( in, System.out, System.err, true );
- if (usingReadline) {
- NameCompletionTable nct = new NameCompletionTable();
- nct.add(interpreter.getNameSpace());
-
- /** ClassManager does a lot of chatting to the stdout,
- * so this has been commented out for the time being
- **/
-
-// try {
-// BshClassManager bcm = BshClassManager.getClassManager();
-// if (bcm != null) {
-// nct.add(((ClassManagerImpl)bcm).getClassPath());
-// }
-// } catch(ClassPathException cpe) {
-// debug("classpath exception in name compl:" + cpe);
-// }
-
- Readline.setCompleter(new BshCompleter(nct));
- }
- interpreter.run();
- }
- }
-
- /**
- Run interactively. (printing prompts, etc.)
- */
- public void run() {
- if(evalOnly)
- throw new RuntimeException("bsh Interpreter: No stream");
-
- /*
- We'll print our banner using eval(String) in order to
- exercise the parser and get the basic expression classes loaded...
- This ameliorates the delay after typing the first statement.
- */
- if ( interactive )
- try {
- eval("printBanner();");
- } catch ( EvalError e ) {
- println(
- "BeanShell "+VERSION+" - by Pat Niemeyer (pat at pat.net)");
- }
-
- boolean eof = false;
-
- // init the callstack.
- CallStack callstack = new CallStack();
- callstack.push( globalNameSpace );
-
- while(!eof)
- {
- try
- {
- // try to sync up the console
- System.out.flush();
- System.err.flush();
- Thread.yield(); // this helps a little
- if(interactive && !(in instanceof ReadlineReader))
- print("bsh % ");
-
- eof = Line();
-
- if(get_jjtree().nodeArity() > 0) // number of child nodes
- {
- SimpleNode node = (SimpleNode)(get_jjtree().rootNode());
-
- if(DEBUG)
- node.dump(">");
-
- Object ret = node.eval( callstack, this );
-
- // sanity check during development
- if ( callstack.depth() > 1 )
- throw new InterpreterError(
- "Callstack growing: "+callstack);
-
- if(ret instanceof ReturnControl)
- ret = ((ReturnControl)ret).value;
- if(ret != Primitive.VOID)
- {
- setVariable("$_", ret);
- Object show = getu("bsh.show");
- if(show instanceof Boolean &&
- ((Boolean)show).booleanValue() == true)
- println("<" + ret + ">");
- }
- }
- }
- catch(ParseException e)
- {
- error("Parser Error: " + e.getMessage(DEBUG));
- if(DEBUG)
- e.printStackTrace();
- if(!interactive)
- eof = true;
-
- parser.reInitInput(in);
- }
- catch(InterpreterError e)
- {
- error("Internal Error: " + e.getMessage());
- e.printStackTrace();
- if(!interactive)
- eof = true;
- }
- catch(TargetError e)
- {
- error("// Uncaught Exception: " + e );
- if(DEBUG)
- e.printStackTrace();
- if(!interactive)
- eof = true;
- }
- catch (EvalError e)
- {
- if ( interactive )
- error( e.toString() );
- else
- error( e.getMessage() );
- if(DEBUG)
- e.printStackTrace();
- if(!interactive)
- eof = true;
- }
- catch(Exception e)
- {
- error("Unknown error: " + e);
- e.printStackTrace();
- if(!interactive)
- eof = true;
- }
- catch(TokenMgrError e)
- {
- error("Error parsing input: " + e);
-
- /*
- We get stuck in infinite loops here when unicode escapes
- fail. Must re-init the char stream reader
- (ASCII_UCodeESC_CharStream.java)
- */
- parser.reInitTokenInput( in );
-
- if(!interactive)
- eof = true;
- }
- finally
- {
- get_jjtree().reset();
- // reinit the callstack
- callstack.clear();
- callstack.push( globalNameSpace );
- }
- }
-
- if ( interactive && !noExitOnEOF ) {
- /* should be done for all streams in general, but this
- * ensures that the history for readline is flushed */
- try {
- in.close();
- } catch (IOException ioe) {
- }
- System.exit(0);
- }
- }
-
- // begin source and eval
-
- /**
- Read text from fileName and eval it.
- */
- public Object source( String filename, NameSpace nameSpace )
- throws FileNotFoundException, IOException, EvalError
- {
- File file = pathToFile( filename );
- debug("Sourcing file: "+file);
- Reader in = new BufferedReader( new FileReader(file) );
- return eval( in, nameSpace, filename );
- }
-
- /**
- Read text from fileName and eval it.
- Convenience method. Use the global namespace.
- */
- public Object source( String filename )
- throws FileNotFoundException, IOException, EvalError
- {
- return source( filename, globalNameSpace );
- }
-
- /**
- Spawn a non-interactive local interpreter to evaluate text in the
- specified namespace.
-
- Return value is the evaluated object (or corresponding primitive
- wrapper).
-
- @param sourceFileInfo is for information purposes only. It is used to
- display error messages (and in the future may be made available to
- the script).
- @throws EvalError on script problems
- @throws TargetError on unhandled exceptions from the script
- */
- /*
- Note: we need a form of eval that passes the callstack through...
- */
- /*
- Can't this be combined with run() ?
- run seems to have stuff in it for interactive vs. non-interactive...
- compare them side by side and see what they do differently, aside from the
- exception handling.
- */
-
- public Object eval(
- Reader in, NameSpace nameSpace, String sourceFileInfo )
- throws EvalError
- {
- Object retVal = null;
- debug("eval: nameSpace = "+nameSpace);
-
- /*
- Create non-interactive local interpreter for this namespace
- with source from the input stream and out/err same as
- this interpreter.
- */
- Interpreter localInterpreter =
- new Interpreter(
- in, out, err, false, nameSpace, this, sourceFileInfo );
-
- CallStack callstack = new CallStack();
- callstack.push(
- new NameSpace("Evaluation global for: "+sourceFileInfo) );
- callstack.push( nameSpace );
-
- boolean eof = false;
- while(!eof)
- {
- SimpleNode node = null;
- try
- {
- eof = localInterpreter.Line();
- if (localInterpreter.get_jjtree().nodeArity() > 0)
- {
- node = (SimpleNode)localInterpreter.get_jjtree().rootNode();
- // nodes remember from where they were sourced
- node.setSourceFile( sourceFileInfo );
-
- if ( TRACE )
- println( "// " +node.getText() );
-
- retVal = node.eval( callstack, localInterpreter );
-
- // sanity check during development
- if ( callstack.depth() > 2 )
- throw new InterpreterError(
- "Callstack growing: "+callstack);
-
- if ( retVal instanceof ReturnControl ) {
- retVal = ((ReturnControl)retVal).value;
- break; // non-interactive, return control now
- }
- }
- } catch(ParseException e) {
- throw new EvalError(
- "Sourced file: "+sourceFileInfo+" parser Error: "
- + e.getMessage( DEBUG ), node );
- } catch(InterpreterError e) {
- e.printStackTrace();
- throw new EvalError(
- "Sourced file: "+sourceFileInfo+" internal Error: "
- + e.getMessage(), node);
- } catch( TargetError e ) {
- if(DEBUG)
- e.printStackTrace();
- // failsafe, set the Line as the origin of the error.
- if ( e.getNode()==null )
- e.setNode( node );
- e.reThrow("Sourced file: "+sourceFileInfo);
- } catch(EvalError e) {
- if(DEBUG)
- e.printStackTrace();
- // failsafe, set the Line as the origin of the error.
- if ( e.getNode()==null )
- e.setNode( node );
- e.reThrow( "Sourced file: "+sourceFileInfo );
- } catch(Exception e) {
- e.printStackTrace();
- throw new EvalError(
- "Sourced file: "+sourceFileInfo+" unknown error: "
- + e.getMessage(), node);
- } catch(TokenMgrError e) {
- throw new EvalError(
- "Sourced file: "+sourceFileInfo+" Token Parsing Error: "
- + e.getMessage(), node );
- } finally {
- localInterpreter.get_jjtree().reset();
- callstack.clear();
- callstack.push( nameSpace );
- }
- }
- return Primitive.unwrap( retVal );
- }
-
- /**
- Evaluate the inputstream in this interpreter's global namespace.
- */
- public Object eval( Reader in ) throws EvalError
- {
- return eval( in, globalNameSpace, "eval stream" );
- }
-
- /**
- Evaluate the string in this interpreter's global namespace.
- */
- public Object eval( String statement ) throws EvalError {
- return eval(statement, globalNameSpace);
- }
-
- /**
- Evaluate the string in the specified namespace.
- */
- public Object eval( String statement, NameSpace nameSpace )
- throws EvalError {
-
- String s = ( statement.endsWith(";") ? statement : statement+";" );
- return eval(
- new StringReader(s), nameSpace, "<Inline eval of: "+s+" >" );
- }
-
- // end source and eval
-
- /**
- Print an error message in a standard format on the output stream
- associated with this interpreter. On the GUI console this will appear
- in red, etc.
- */
- public final void error(String s) {
- if ( console != null )
- console.error( "// Error: " + s +"\n" );
- else {
- err.println("// Error: " + s);
- err.flush();
- }
- }
-
- // ConsoleInterface
- // The interpreter reflexively implements the console interface that it
- // uses. Should clean this up by using an inner class to implement the
- // console for us.
-
- /**
- Get the input stream associated with this interpreter.
- This may be be stdin or the GUI console.
- */
- public Reader getIn() { return in; }
-
- /**
- Get the outptut stream associated with this interpreter.
- This may be be stdout or the GUI console.
- */
- public PrintStream getOut() { return out; }
-
- /**
- Get the error output stream associated with this interpreter.
- This may be be stderr or the GUI console.
- */
- public PrintStream getErr() { return err; }
-
- public final void println(String s)
- {
- print(s + "\n");
- }
-
- public final void print(String s)
- {
- if (console != null) {
- console.print(s);
- } else {
- out.print(s);
- out.flush();
- }
- }
-
- // End ConsoleInterface
-
- /**
- Print a debug message on debug stream associated with this interpreter
- only if debugging is turned on.
- */
- public final static void debug(String s)
- {
- if(DEBUG)
- debug.println("// Debug: " + s);
- }
-
- /*
- Primary interpreter set and get variable methods
- Note: These are squeltching errors... should they?
- */
-
- /**
- Get the value of the name.
- name may be any value. e.g. a variable or field
- */
- public Object get( String name ) throws EvalError {
- Object ret = globalNameSpace.get( name, this );
- return Primitive.unwrap( ret );
- }
-
- /**
- Unchecked get for internal use
- */
- Object getu( String name ) {
- try {
- return get( name );
- } catch ( EvalError e ) {
- throw new InterpreterError("set: "+e);
- }
- }
-
- /**
- Assign the value to the name.
- name may evaluate to anything assignable. e.g. a variable or field.
- */
- public void set(String name, Object value) throws EvalError {
- CallStack callstack = new CallStack();
- LHS lhs = globalNameSpace.getNameResolver( name ).toLHS(
- callstack, this );
- lhs.assign( value );
- }
-
- /**
- Unchecked set for internal use
- */
- void setu(String name, Object value) {
- try {
- set(name, value);
- } catch ( EvalError e ) {
- throw new InterpreterError("set: "+e);
- }
- }
-
- public void set(String name, long value) throws EvalError {
- set(name, new Primitive(value));
- }
- public void set(String name, int value) throws EvalError {
- set(name, new Primitive(value));
- }
- public void set(String name, double value) throws EvalError {
- set(name, new Primitive(value));
- }
- public void set(String name, float value) throws EvalError {
- set(name, new Primitive(value));
- }
- public void set(String name, boolean value) throws EvalError {
- set(name, new Primitive(value));
- }
-
-
-
- /**
- @deprecated does not properly evaluate compound names
- */
- public Object getVariable(String name)
- {
- Object obj = globalNameSpace.getVariable(name);
- return Primitive.unwrap( obj );
- }
-
- /**
- @deprecated does not properly evaluate compound names
- */
- public void setVariable(String name, Object value)
- {
- try { globalNameSpace.setVariable(name, value); }
- catch(EvalError e) { error(e.toString()); }
- }
-
- /**
- @deprecated does not properly evaluate compound names
- */
- public void setVariable(String name, int value)
- {
- try { globalNameSpace.setVariable(name, new Primitive(value)); }
- catch(EvalError e) { error(e.toString()); }
- }
-
- /**
- @deprecated does not properly evaluate compound names
- */
- public void setVariable(String name, float value)
- {
- try { globalNameSpace.setVariable(name, new Primitive(value)); }
- catch(EvalError e) { error(e.toString()); }
- }
-
- /**
- @deprecated does not properly evaluate compound names
- */
- public void setVariable(String name, boolean value)
- {
- try { globalNameSpace.setVariable(name, new Primitive(value)); }
- catch(EvalError e) { error(e.toString()); }
- }
-
- // end primary set and get methods
-
- /* Methods for interacting with Parser */
-
- private JJTParserState get_jjtree() {
- return parser.jjtree;
- }
-
- private ASCII_UCodeESC_CharStream get_jj_input_stream() {
- return parser.jj_input_stream;
- }
-
- private boolean Line() throws ParseException {
- return parser.Line();
- }
-
- /* End methods for interacting with Parser */
-
- void loadRCFiles() {
- try {
- String rcfile =
- // Default is c:\windows under win98, $HOME under Unix
- System.getProperty("user.home") + File.separator + ".bshrc";
- source( rcfile, globalNameSpace );
- } catch ( Exception e ) {
- // squeltch security exception, filenotfoundexception
- debug("Could not find rc file: "+e);
- }
- }
-
- /**
- Localize a path to the file name based on the bsh.cwd interpreter
- working directory.
- */
- public File pathToFile( String fileName )
- throws IOException
- {
- File file = new File( fileName );
-
- // if relative, fix up to bsh.cwd
- if ( !file.isAbsolute() ) {
- String cwd = (String)getu("bsh.cwd");
- file = new File( cwd + File.separator + fileName );
- }
-
- return new File( file.getCanonicalPath() );
- }
-
- public static void redirectOutputToFile( String filename )
- {
- try {
- PrintStream pout = new PrintStream(
- new FileOutputStream( filename ) );
- System.setOut( pout );
- System.setErr( pout );
- } catch ( IOException e ) {
- System.err.println("Can't redirect output to file: "+filename );
- }
- }
-
- static void staticInit() {
- /*
- Apparently in some environments you can't catch the security exception
- at all... e.g. as an applet in IE ... will probably have to work
- around
- */
- try {
- debug = System.err;
- DEBUG = Boolean.getBoolean("debug");
- TRACE = Boolean.getBoolean("trace");
- String outfilename = System.getProperty("outfile");
- if ( outfilename != null )
- redirectOutputToFile( outfilename );
- } catch ( SecurityException e ) {
- System.err.println("Could not init static:"+e);
- } catch ( Exception e ) {
- System.err.println("Could not init static(2):"+e);
- } catch ( Throwable e ) {
- System.err.println("Could not init static(3):"+e);
- }
- }
-
- /**
- Specify the source of the text from which this interpreter is reading.
- Note: there is a difference between what file the interrpeter is
- sourcing and from what file a method was originally parsed. One
- file may call a method sourced from another file. See SimpleNode
- for origination file info.
- @see SimpleNode.getSourceFile
- */
- public String getSourceFileInfo() {
- if ( sourceFileInfo != null )
- return sourceFileInfo;
- else
- return "<unknown source>";
- }
-
- public Interpreter getParent() {
- return parent;
- }
-
-}
-
diff --git a/contrib/bsh/Interpreter.java.diff b/contrib/bsh/Interpreter.java.diff
deleted file mode 100644
index ba6cf31..0000000
--- a/contrib/bsh/Interpreter.java.diff
+++ /dev/null
@@ -1,79 +0,0 @@
-37a38,43
-> import java.io.File; // why? I don't know
-> import bsh.util.BshCompleter;
-> import bsh.util.NameCompletionTable;
-> import bsh.classpath.ClassManagerImpl;
-> import org.gnu.readline.Readline;
-> import org.gnu.readline.ReadlineReader;
-104a111
->
-221a229
->
-225a234
->
-358c367,393
-< Reader in = new CommandLineReader( new InputStreamReader(src));
----
-> Reader in = null;
-> boolean usingReadline = false;
-> try {
-> File history = new File(System.getProperty("user.home") +
-> File.separator + ".bsh_history");
-> if (!history.exists()) {
-> try {
-> history.createNewFile();
-> } catch(IOException ioe) {
-> debug("Unable to create history file: " + history.getAbsolutePath());
-> }
-> }
-> // should I wrap CommandLineReader around it?
-> if (history.canWrite() && history.canRead()) {
-> in = new ReadlineReader("bsh % ", history,ReadlineLibrary.Editline);
-> } else {
-> in = new ReadlineReader("bsh % ",ReadlineLibrary.Editline);
-> debug("Unable to read/write history file: " + history.getAbsolutePath());
-> }
-> } catch (IOException ioe) {
-> System.err.println("Unable to invoke ReadlineReader " +
-> "due to: " + ioe);
-> }
-> if (in == null)
-> in = new CommandLineReader( new InputStreamReader(src));
-> else
-> usingReadline = true;
-360a396,414
-> if (usingReadline) {
-> NameCompletionTable nct = new NameCompletionTable();
-> nct.add(interpreter.getNameSpace());
->
-> /** ClassManager does a lot of chatting to the stdout,
-> * so this has been commented out for the time being
-> **/
->
-> // try {
-> // BshClassManager bcm = BshClassManager.getClassManager();
-> // if (bcm != null) {
-> // nct.add(((ClassManagerImpl)bcm).getClassPath());
-> // }
-> // } catch(ClassPathException cpe) {
-> // debug("classpath exception in name compl:" + cpe);
-> // }
->
-> Readline.setCompleter(new BshCompleter(nct));
-> }
-399c453
-< if(interactive)
----
-> if(interactive && !(in instanceof ReadlineReader))
-496c550,556
-< if ( interactive && !noExitOnEOF )
----
-> if ( interactive && !noExitOnEOF ) {
-> /* should be done for all streams in general, but this
-> * ensures that the history for readline is flushed */
-> try {
-> in.close();
-> } catch (IOException ioe) {
-> }
-498a559
-> }
diff --git a/contrib/bsh/README b/contrib/bsh/README
deleted file mode 100644
index 84d7a5d..0000000
--- a/contrib/bsh/README
+++ /dev/null
@@ -1,23 +0,0 @@
-To use JavaReadline with BeanShell, you must replace one class
-(bsh.Interpreter) in bsh.jar and add another one (bsh.bshCompleter).
-
-The sourcecode for both files is provided in this package. Just
-compile both files and use the jar utility from the JDK. Note that the
-1.2 version has an update flag (this makes things easier). With 1.1
-you have to extract the whole archive, replace the given class files
-and create the archive again.
-
-(This readme was shamelessly stolen and modified with little more than
-substitution tricks from the jpython mod for readline.)
-
--Shane Celis <shane at terraspring.com>
-
-
-Note: starting from JavaReadline 0.6, you have the choice of various backing
-readline implementations. Since the license of BSH does not conform to the
-GPL, it cannot be used together with GNU-Readline.
-As a consequence, the backing implementation for BeanShell is Editline,
-and I modified ReadlineReader, Interpreter.java and Interpreter.java.diff
-accordingly.
-
-Bernhard
\ No newline at end of file
diff --git a/contrib/jpython/README b/contrib/jpython/README
deleted file mode 100644
index 0dd6cb6..0000000
--- a/contrib/jpython/README
+++ /dev/null
@@ -1,10 +0,0 @@
-Note: JPython is now Jython, and there have been
-some changes, so the original description of what
-to do to make Jython work with JavaReadline
-does not apply anymore.
-
-However, there has been a posting to the jython-users
-mailing-list describing what to do (see the file
-jython-install.txt). For Debian-users, things should
-be much simpler, because Jython is already packaged
-to use JavaReadline with EditLine as backing library.
diff --git a/contrib/jpython/ReadlineConsole.java b/contrib/jpython/ReadlineConsole.java
deleted file mode 100644
index 0ca8fa6..0000000
--- a/contrib/jpython/ReadlineConsole.java
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright � Corporation for National Research Initiatives
-package org.python.util;
-import org.python.core.*;
-import org.gnu.readline.*;
-
-// Based on CPython-1.5.2's code module
-
-public class ReadlineConsole extends InteractiveConsole {
- public String filename;
-
- public ReadlineConsole() {
- this(null, "<console>");
- }
- public ReadlineConsole(PyObject locals) {
- this(locals, "<console>");
- }
- public ReadlineConsole(PyObject locals, String filename) {
- super(locals,filename);
- try {
- Readline.load(ReadlineLibrary.Editline);
- } catch (Exception e) {
- }
- Readline.initReadline("jpython");
- }
-
-
- /**
- * Write a prompt and read a line.
- *
- * The returned line does not include the trailing newline. When the
- * user enters the EOF key sequence, EOFError is raised.
- *
- * This subclass implements the functionality using JavaReadline.
- **/
- public String raw_input(PyObject prompt) {
- try {
- return Readline.readline(prompt==null ? "" : prompt.toString());
- } catch (java.io.EOFException eofe) {
- throw new PyException(Py.EOFError);
- } catch (java.io.IOException ioe) {
- throw new PyException();
- } catch (java.io.UnsupportedEncodingException e) {
- throw new PyException();
- }
- }
-}
diff --git a/contrib/jpython/jpython.diff b/contrib/jpython/jpython.diff
deleted file mode 100644
index c2e36a4..0000000
--- a/contrib/jpython/jpython.diff
+++ /dev/null
@@ -1,22 +0,0 @@
-*** jpython.java Sun Oct 24 08:54:59 1999
---- jpython.java.orig Sun Oct 24 08:53:46 1999
-***************
-*** 80,91 ****
-
- // Now create an interpreter
-! InteractiveConsole interp = null;
-! try {
-! interp = (InteractiveConsole) Class.forName(
-! PySystemState.registry.getProperty("python.console",
-! "org.python.util.InteractiveConsole")).newInstance();
-! } catch (Exception e) {
-! interp = new InteractiveConsole();
-! }
- //System.err.println("interp");
- PyModule mod = imp.addModule("__main__");
---- 80,84 ----
-
- // Now create an interpreter
-! InteractiveConsole interp = new InteractiveConsole();
- //System.err.println("interp");
- PyModule mod = imp.addModule("__main__");
diff --git a/contrib/jpython/jpython.java b/contrib/jpython/jpython.java
deleted file mode 100644
index 4a2ab16..0000000
--- a/contrib/jpython/jpython.java
+++ /dev/null
@@ -1,272 +0,0 @@
-// Copyright � Corporation for National Research Initiatives
-package org.python.util;
-
-import org.python.core.*;
-import java.util.zip.*;
-import java.io.*;
-
-public class jpython
-{
- private static String usage =
- "usage: jpython [options] [-jar jar | -c cmd | file | -] [args]\n"+
- "Options and arguments:\n"+
- "-i : inspect interactively after running script, and force\n"+
- " prompts, even if stdin does not appear to be a terminal\n"+
- "-S : don't imply `import site' on initialization\n"+
- "-X : disable class based standard exceptions\n"+
- "-Dprop=v : Set the property `prop' to value `v'\n"+
- "-jar jar : program read from __run__.py in jar file\n"+
- "-c cmd : program passed in as string (terminates option list)\n"+
- "file : program read from script file\n"+
- "- : program read from stdin (default; interactive mode if a "+
- "tty)\n"+
- "--help : print this usage message and exit\n"+
- "--version: print JPython version number and exit\n"+
- "args : arguments passed to program in sys.argv[1:]";
-
- public static void runJar(String filename) {
- // TBD: this is kind of gross because a local called `zipfile' just
- // magically shows up in the module's globals. Either `zipfile'
- // should be called `__zipfile__' or (preferrably, IMO), __run__.py
- // should be imported and a main() function extracted. This
- // function should be called passing zipfile in as an argument.
- //
- // Probably have to keep this code around for backwards
- // compatibility (?)
- try {
- ZipFile zip = new ZipFile(filename);
-
- ZipEntry runit = zip.getEntry("__run__.py");
- if (runit == null)
- throw Py.ValueError("jar file missing '__run__.py'");
-
- PyStringMap locals = new PyStringMap();
- locals.__setitem__("__name__", new PyString(filename));
- locals.__setitem__("zipfile", Py.java2py(zip));
-
- InputStream file = zip.getInputStream(runit);
- PyCode code;
- try {
- code = Py.compile(file, "__run__", "exec");
- } finally {
- file.close();
- }
- Py.runCode(code, locals, locals);
- } catch (java.io.IOException e) {
- throw Py.IOError(e);
- }
- }
-
- public static void main(String[] args) {
- // Parse the command line options
- CommandLineOptions opts = new CommandLineOptions();
- if (!opts.parse(args)) {
- if (opts.version) {
- System.err.println(InteractiveConsole.getDefaultBanner());
- System.exit(0);
- }
- System.err.println(usage);
- int exitcode = opts.help ? 0 : -1;
- System.exit(exitcode);
- }
-
- // Setup the basic python system state from these options
- PySystemState.initialize(System.getProperties(),
- opts.properties, opts.argv);
-
- if (opts.notice) {
- System.err.println(InteractiveConsole.getDefaultBanner());
- }
-
- // Now create an interpreter
- InteractiveConsole interp = null;
- try {
- interp = (InteractiveConsole) Class.forName(
- PySystemState.registry.getProperty("python.console",
- "org.python.util.InteractiveConsole")).newInstance();
- } catch (Exception e) {
- interp = new InteractiveConsole();
- }
- //System.err.println("interp");
- PyModule mod = imp.addModule("__main__");
- interp.setLocals(mod.__dict__);
- //System.err.println("imp");
-
- if (Options.importSite) {
- try {
- imp.load("site");
- } catch (PyException pye) {
- if (!Py.matchException(pye, Py.ImportError)) {
- System.err.println("error importing site");
- Py.printException(pye);
- System.exit(-1);
- }
- }
- }
-
- if (opts.command != null) {
- try {
- interp.exec(opts.command);
- } catch (Throwable t) {
- Py.printException(t);
- }
- }
-
- // was there a filename on the command line?
- if (opts.filename != null) {
- String path = new java.io.File(opts.filename).getParent();
- if (path == null)
- path = "";
- Py.getSystemState().path.insert(0, new PyString(path));
- if (opts.jar) {
- runJar(opts.filename);
- } else if (opts.filename.equals("-")) {
- try {
- interp.execfile(System.in, "<stdin>");
- } catch (Throwable t) {
- Py.printException(t);
- }
- } else {
- try {
- interp.execfile(opts.filename);
- } catch (Throwable t) {
- Py.printException(t);
- }
- }
- }
- else {
- // if there was no file name on the command line, then "" is
- // the first element on sys.path. This is here because if
- // there /was/ a filename on the c.l., and say the -i option
- // was given, sys.path[0] will have gotten filled in with the
- // dir of the argument filename.
- Py.getSystemState().path.insert(0, new PyString(""));
- }
-
- if (opts.interactive) {
- try {
- interp.interact(null);
- } catch (Throwable t) {
- Py.printException(t);
- }
- }
- }
-}
-
-
-
-class CommandLineOptions
-{
- public String filename;
- public boolean jar, interactive, notice;
- private boolean fixInteractive;
- public boolean help, version;
- public String[] argv;
- public java.util.Properties properties;
- public String command;
-
- public CommandLineOptions() {
- filename = null;
- jar = fixInteractive = false;
- interactive = notice = true;
- properties = new java.util.Properties();
- help = version = false;
- }
-
- public void setProperty(String key, String value) {
- properties.put(key, value);
- // This only works for Java 1.2. There appears to be no portable
- // way to support this under Java 1.1
-// try {
-// System.setProperty(key, value);
-// }
-// catch (SecurityException e) {}
- }
-
- public boolean parse(String[] args) {
- int index=0;
- while (index < args.length && args[index].startsWith("-")) {
- String arg = args[index];
- if (arg.equals("--help")) {
- help = true;
- return false;
- }
- else if (arg.equals("--version")) {
- version = true;
- return false;
- }
- else if (arg.equals("-")) {
- if (!fixInteractive)
- interactive = false;
- filename = "-";
- }
- else if (arg.equals("-i")) {
- fixInteractive = true;
- interactive = true;
- }
- else if (arg.equals("-jar")) {
- jar = true;
- if (!fixInteractive)
- interactive = false;
- }
- else if (arg.equals("-X")) {
- Options.classBasedExceptions = false;
- }
- else if (arg.equals("-S")) {
- Options.importSite = false;
- }
- else if (arg.equals("-c")) {
- command = args[++index];
- if (!fixInteractive) interactive = false;
- break;
- }
- else if (arg.startsWith("-D")) {
- String key = null;
- String value = null;
- int equals = arg.indexOf("=");
- if (equals == -1) {
- String arg2 = args[++index];
- key = arg.substring(2, arg.length());
- value = arg2;
- }
- else {
- key = arg.substring(2, equals);
- value = arg.substring(equals+1, arg.length());
- }
- setProperty(key, value);
- }
- else {
- String opt = args[index];
- if (opt.startsWith("--"))
- opt = opt.substring(2);
- else if (opt.startsWith("-"))
- opt = opt.substring(1);
- System.err.println("jpython: illegal option -- " + opt);
- return false;
- }
- index += 1;
- }
- notice = interactive;
- if (filename == null && index < args.length && command == null) {
- filename = args[index++];
- if (!fixInteractive)
- interactive = false;
- notice = false;
- }
- if (command != null)
- notice = false;
-
- int n = args.length-index+1;
- argv = new String[n];
- //new String[args.length-index+1];
- if (filename != null)
- argv[0] = filename;
- else argv[0] = "";
-
- for(int i=1; i<n; i++, index++) {
- argv[i] = args[index];
- }
-
- return true;
- }
-}
diff --git a/contrib/jpython/jython-install.txt b/contrib/jpython/jython-install.txt
deleted file mode 100644
index b54702d..0000000
--- a/contrib/jpython/jython-install.txt
+++ /dev/null
@@ -1,64 +0,0 @@
-From SteveC at ignitesports.com Sun Dec 30 17:10:46 2001
-
-For about the third time, I have spent a few hours getting the readline
-library worked into jython. (It happens every time I install a new
-jython and it changes a little bit each time.) You would think this
-annoying mess would get documented somewhere, but it hasn't, anywhere,
-correctly, in spite of several halfway attempts to do so. And much of
-the documentation is out of date.
-
-So please, guys, make it a New Year's resolution to get this into the
-official docs, somewhere. Here is a start, it worked for me:
-
-
-What you have to do to get Jython and Readline working (These
-instructions work for GNUReadline on my RedHat Linux system - your
-mileage may vary):
-
-Note: there is another option called Editline but Bernhard Bablok, the
-author of gnu java_readline says he couldn't get it working, so I didn't
-even try. Nonetheless, Editline is the default in jython according to
-the source code in ReadlineConsole.java. (See item #9 below ) If this
-is going to be the case, then the jython docs should give more info
-about it or work it into the standard distribution somehow.
-
-1. Download and install the javacc from
-http://www.webgain.com/products/java_cc/. You can't build jython
-without this.
-
-2. Download the java-readline source from
-http://www.bablokb.de/java/readline.html
-
-3. Make the java_readline jar and backing library using the Makefile
-supplied.
-
-4. Deploy these into your system lib directory. (/usr/lib in my case)
-
-5. Download the latest Jython sources from SourceForge.
-
-6. Create/Modify an ant.properties file in the same directory as the
-build.xml for jython and add the property readline.jar giving it the
-value of a path to the java_readline.jar you deployed in step 3, as
-well as the path to javacc and any other optional jars you wish to
-include.
-
-7. Build jython and deploy it.
-
-8. Modify the jython shell script so as to precede the supplied command
-(java -Dpython.home=...) with 'LD_LIBRARY_PATH="/usr/lib"'
-
-9. Modify your registry file to add the line
-
- python.console.readlinelib=GnuReadline
-
-As far as I know this one isn't documented anywhere and if you don't put
-it in, the system tries to find Editline and throws an exception if it
-can't. I only pieced it together from reading the source code for
-jython's ReadlineConsole and for the gnu java readline.
-
-After all that, you finally have a console that recognizes the arrow
-keys for history when on the last line. Way too complicated.
-
-So while I thank the Jython developers and Mr. Bablok for their efforts
-and for making this possible at all, please, someone, make this easier
-or at least pull all the documentation into one place.
diff --git a/contrib/jscheme/SilkCompleter.java b/contrib/jscheme/SilkCompleter.java
deleted file mode 100644
index a03eb7b..0000000
--- a/contrib/jscheme/SilkCompleter.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package samer.silk;
-import java.util.*;
-import org.gnu.readline.*;
-import jsint.*;
-
-/**
- This completer works with the JScheme scheme
- interpreter by looking up symbols in the global
- namespace. You can register it with the Java
- Readline library either in Java or in scheme. Something
- like the following should do it:
-
- <pre>
- ;;; Switches JScheme's input port to a new one that uses
- ;;; a ReadlineReader with a ">" prompt.
- ;;; (Note that on some systems, you might get a double
- ;;; prompt "> >" because JScheme's main loop also prints
- ;;; a prompt. If this bugs you a lot, you can just write your
- ;;; own main loop to replace jsint.Scheme.readEvalWriteLoop().)
- (set! jsint.Scheme.input$ (jsint.InputPort.
- (org.gnu.readline.ReadlineReader. "> "
- org.gnu.readline.ReadlineLibrary.GnuReadline$)))
-
- ;;; not sure that this helps a lot, but I suppose it's good practice...
- (.addShutdownHook (Runtime.getRuntime)
- (Thread. (lambda ()
- (display "cleaning up readline.\n")
- (org.gnu.readline.Readline.cleanup))))
-
- ;;; set Readline's completer to a new Scheme-aware one
- (org.gnu.readline.Readline.setCompleter (samer.silk.SilkCompleter.))
- </pre>
-
- Author: Samer Abdallah (samer.abdallah at elec.qmul.ac.uk)
- November 2002
- */
-
-public class SilkCompleter implements ReadlineCompleter {
- Iterator it; // iterates over symbols in JScheme hashtable
-
- /** Implementation of abstract function. Finds
- possible completions of the given text. */
-
- public String completer(String text, int state)
- {
- if (state == 0) { // first call to completer(): initialize iterator
- // it=Symbol.symbolTable.entrySet().iterator();
- it=Symbol.symbolTable.values().iterator();
- }
- while (it.hasNext()) { // subsequent calls
- // Map.Entry entry = (Map.Entry)it.next();
- // Symbol symbol=(Symbol)entry.getValue();
- // String name=(String)entry.getKey();
- Symbol symbol=(Symbol)it.next();
- String name=(String)symbol.toString();
-
- // Jscheme seems to keep a lot of undefined symbols
- // in the table---pretty much anything you type, actually.
- // so we check and only return defined symbols.
- if (name.startsWith(text) && symbol.isDefined()) return name;
- }
- return null; // we reached the last choice.
- }
-}
\ No newline at end of file
diff --git a/contrib/win32/JavaGetline.dll b/contrib/win32/JavaGetline.dll
deleted file mode 100644
index ccdc02e..0000000
Binary files a/contrib/win32/JavaGetline.dll and /dev/null differ
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/libreadline-java.git
More information about the pkg-java-commits
mailing list