Deprecate CI_Input::is_cli_request() and add common function is_cli() to replace it

Calls to this function are often needed before the Input library is available
diff --git a/system/core/Common.php b/system/core/Common.php
index 56008ef..c008bd5 100644
--- a/system/core/Common.php
+++ b/system/core/Common.php
@@ -355,6 +355,24 @@
 
 // ------------------------------------------------------------------------
 
+if ( ! function_exists('is_cli'))
+{
+
+	/**
+	 * Is CLI?
+	 *
+	 * Test to see if a request was made from the command line.
+	 *
+	 * @return 	bool
+	 */
+	function is_cli()
+	{
+		return (PHP_SAPI === 'cli' OR defined('STDIN'));
+	}
+}
+
+// ------------------------------------------------------------------------
+
 if ( ! function_exists('show_error'))
 {
 	/**
diff --git a/system/core/Input.php b/system/core/Input.php
index 8c32e45..384e30d 100644
--- a/system/core/Input.php
+++ b/system/core/Input.php
@@ -708,7 +708,7 @@
 		$_SERVER['PHP_SELF'] = strip_tags($_SERVER['PHP_SELF']);
 
 		// CSRF Protection check
-		if ($this->_enable_csrf === TRUE && ! $this->is_cli_request())
+		if ($this->_enable_csrf === TRUE && ! is_cli())
 		{
 			$this->security->csrf_verify();
 		}
@@ -901,11 +901,12 @@
 	 *
 	 * Test to see if a request was made from the command line.
 	 *
-	 * @return 	bool
+	 * @deprecated	3.0.0	Use is_cli() instead
+	 * @return      bool
 	 */
 	public function is_cli_request()
 	{
-		return (PHP_SAPI === 'cli' OR defined('STDIN'));
+		return is_cli();
 	}
 
 	// --------------------------------------------------------------------
diff --git a/system/core/URI.php b/system/core/URI.php
index bc086d2..bad9985 100644
--- a/system/core/URI.php
+++ b/system/core/URI.php
@@ -99,7 +99,7 @@
 		if ($protocol === 'AUTO')
 		{
 			// Is the request coming from the command line?
-			if ($this->_is_cli_request())
+			if (is_cli())
 			{
 				$this->_set_uri_string($this->_parse_argv());
 				return;
@@ -280,23 +280,6 @@
 	// --------------------------------------------------------------------
 
 	/**
-	 * Is CLI Request?
-	 *
-	 * Duplicate of method from the Input class to test to see if
-	 * a request was made from the command line.
-	 *
-	 * @see		CI_Input::is_cli_request()
-	 * @used-by	CI_URI::_fetch_uri_string()
-	 * @return 	bool
-	 */
-	protected function _is_cli_request()
-	{
-		return (PHP_SAPI === 'cli') OR defined('STDIN');
-	}
-
-	// --------------------------------------------------------------------
-
-	/**
 	 * Parse CLI arguments
 	 *
 	 * Take each command line argument and assume it is a URI segment.
diff --git a/system/libraries/Session/Session.php b/system/libraries/Session/Session.php
index 659a026..19de979 100644
--- a/system/libraries/Session/Session.php
+++ b/system/libraries/Session/Session.php
@@ -102,10 +102,10 @@
 	 */
 	public function __construct(array $params = array())
 	{
-		$CI =& get_instance();
+		$_config =& get_instance()->config;
 
 		// No sessions under CLI
-		if ($CI->input->is_cli_request())
+		if (is_cli())
 		{
 			return;
 		}
@@ -113,7 +113,7 @@
 		log_message('debug', 'CI_Session Class Initialized');
 
 		// Add possible extra entries to our valid drivers list
-		$drivers = isset($params['sess_valid_drivers']) ? $params['sess_valid_drivers'] : $CI->config->item('sess_valid_drivers');
+		$drivers = isset($params['sess_valid_drivers']) ? $params['sess_valid_drivers'] : $_config->item('sess_valid_drivers');
 		if ( ! empty($drivers))
 		{
 			$drivers = array_map('strtolower', (array) $drivers);
@@ -121,7 +121,7 @@
 		}
 
 		// Get driver to load
-		$driver = isset($params['sess_driver']) ? $params['sess_driver'] : $CI->config->item('sess_driver');
+		$driver = isset($params['sess_driver']) ? $params['sess_driver'] : $_config->item('sess_driver');
 		if ( ! $driver)
 		{
 			log_message('debug', "Session: No driver name is configured, defaulting to 'cookie'.");