/**
	Read filename into the interpreter and evaluate it in the current
	namespace.  Like the Bourne Shell "." command.
	This command acts exactly like the eval() command but reads from a file 
	or URL source.
	@see eval() for more information.
	@throws bsh.EvalError or bsh.TargetError on errors in the sourced script.
*/

bsh.help.source = "usage: source( filename | URL )";

Object source( String filename ) {
	// source with filename preserves file name in error messages
	return this.interpreter.source( filename, this.caller.namespace );
}

Object source( URL url ) {
	return this.interpreter.eval( 
		new InputStreamReader(url.openStream()), this.caller.namespace,  
		"URL: "+url.toString()
	);
}

