Micro-optimizations
diff --git a/system/libraries/Ftp.php b/system/libraries/Ftp.php
index ef3b7d7..991769a 100644
--- a/system/libraries/Ftp.php
+++ b/system/libraries/Ftp.php
@@ -463,28 +463,26 @@
 		$filepath = preg_replace('/(.+?)\/*$/', '\\1/', $filepath);
 
 		$list = $this->list_files($filepath);
-
-		if ($list !== FALSE && count($list) > 0)
+		if ( ! empty($list))
 		{
-			foreach ($list as $item)
+			for ($i = 0, $c = count($list); $i < $c; $i++)
 			{
-				// If we can't delete the item it's probaly a folder so
-				// we'll recursively call delete_dir()
-				if ( ! @ftp_delete($this->conn_id, $item))
+				// If we can't delete the item it's probaly a directory,
+				// so we'll recursively call delete_dir()
+				if ( ! @ftp_delete($this->conn_id, $list[$i]))
 				{
-					$this->delete_dir($item);
+					$this->delete_dir($list[$i]);
 				}
 			}
 		}
 
-		$result = @ftp_rmdir($this->conn_id, $filepath);
-
-		if ($result === FALSE)
+		if (@ftp_rmdir($this->conn_id, $filepath) === FALSE)
 		{
 			if ($this->debug === TRUE)
 			{
 				$this->_error('ftp_unable_to_delete');
 			}
+
 			return FALSE;
 		}
 
@@ -507,14 +505,13 @@
 			return FALSE;
 		}
 
-		$result = @ftp_chmod($this->conn_id, $perm, $path);
-
-		if ($result === FALSE)
+		if (@ftp_chmod($this->conn_id, $perm, $path) === FALSE)
 		{
 			if ($this->debug === TRUE)
 			{
 				$this->_error('ftp_unable_to_chmod');
 			}
+
 			return FALSE;
 		}
 
@@ -531,12 +528,9 @@
 	 */
 	public function list_files($path = '.')
 	{
-		if ( ! $this->_is_conn())
-		{
-			return FALSE;
-		}
-
-		return ftp_nlist($this->conn_id, $path);
+		return $this->_is_conn()
+			? ftp_nlist($this->conn_id, $path)
+			: FALSE;
 	}
 
 	// ------------------------------------------------------------------------
@@ -585,6 +579,7 @@
 					$this->upload($locpath.$file, $rempath.$file, $mode);
 				}
 			}
+
 			return TRUE;
 		}
 
@@ -601,13 +596,12 @@
 	 */
 	protected function _getext($filename)
 	{
-		if (FALSE === strpos($filename, '.'))
+		if (($dot = strrpos($filename, '.')) === FALSE)
 		{
 			return 'txt';
 		}
 
-		$x = explode('.', $filename);
-		return end($x);
+		return substr($filename, $dot + 1);
 	}
 
 	// --------------------------------------------------------------------
@@ -621,20 +615,20 @@
 	protected function _settype($ext)
 	{
 		$text_types = array(
-					'txt',
-					'text',
-					'php',
-					'phps',
-					'php4',
-					'js',
-					'css',
-					'htm',
-					'html',
-					'phtml',
-					'shtml',
-					'log',
-					'xml'
-				);
+			'txt',
+			'text',
+			'php',
+			'phps',
+			'php4',
+			'js',
+			'css',
+			'htm',
+			'html',
+			'phtml',
+			'shtml',
+			'log',
+			'xml'
+		);
 
 		return in_array($ext, $text_types) ? 'ascii' : 'binary';
 	}
@@ -648,12 +642,9 @@
 	 */
 	public function close()
 	{
-		if ( ! $this->_is_conn())
-		{
-			return FALSE;
-		}
-
-		return @ftp_close($this->conn_id);
+		return $this->_is_conn()
+			? @ftp_close($this->conn_id)
+			: FALSE;
 	}
 
 	// ------------------------------------------------------------------------