Fix issue #318 + added a default to the switch() in CI_Output::minify()
diff --git a/system/core/Output.php b/system/core/Output.php
index 8a0f14e..570d4eb 100644
--- a/system/core/Output.php
+++ b/system/core/Output.php
@@ -72,6 +72,7 @@
 	 * @var string
 	 */
 	protected $mime_type		= 'text/html';
+
 	/**
 	 * Determines wether profiler is enabled
 	 *
@@ -84,7 +85,7 @@
 	 *
 	 * @var bool
 	 */
-	protected $_zlib_oc =	FALSE;
+	protected $_zlib_oc =		FALSE;
 
 	/**
 	 * List of profiler sections
@@ -180,7 +181,7 @@
 	 * how to permit header data to be saved with the cache data...
 	 *
 	 * @param	string
-	 * @param 	bool
+	 * @param	bool
 	 * @return	void
 	 */
 	public function set_header($header, $replace = TRUE)
@@ -223,7 +224,7 @@
 				}
 			}
 		}
-		
+
 		$this->mime_type = $mime_type;
 
 		if (empty($charset))
@@ -300,6 +301,12 @@
 	 */
 	public function set_profiler_sections($sections)
 	{
+		if (isset($sections['query_toggle_count']))
+		{
+			$this->_profiler_sections['query_toggle_count'] = (int) $sections['query_toggle_count'];
+			unset($sections['query_toggle_count']);
+		}
+
 		foreach ($sections as $section => $enable)
 		{
 			$this->_profiler_sections[$section] = ($enable !== FALSE);
@@ -335,7 +342,7 @@
 	 * with any server headers and profile data. It also stops the
 	 * benchmark timer so the page rendering speed and memory usage can be shown.
 	 *
-	 * @param 	string
+	 * @param	string
 	 * @return	mixed
 	 */
 	public function _display($output = '')
@@ -358,7 +365,7 @@
 		{
 			$output =& $this->final_output;
 		}
-		
+
 		// --------------------------------------------------------------------
 
 		// Is minify requested?
@@ -467,7 +474,7 @@
 	/**
 	 * Write a Cache File
 	 *
-	 * @param 	string
+	 * @param	string
 	 * @return	void
 	 */
 	public function _write_cache($output)
@@ -510,7 +517,7 @@
 		@chmod($cache_path, FILE_WRITE_MODE);
 
 		log_message('debug', 'Cache file written: '.$cache_path);
-		
+
 		// Send HTTP cache-control headers to browser to match file cache settings.
 		$this->set_cache_header($_SERVER['REQUEST_TIME'], $expire);
 	}
@@ -520,8 +527,8 @@
 	/**
 	 * Update/serve a cached file
 	 *
-	 * @param 	object	config class
-	 * @param 	object	uri class
+	 * @param	object	config class
+	 * @param	object	uri class
 	 * @return	bool
 	 */
 	public function _display_cache(&$CFG, &$URI)
@@ -562,7 +569,7 @@
 			return FALSE;
 		}
 		else
-		{	
+		{
 			// Or else send the HTTP cache control headers.
 			$this->set_cache_header($last_modified, $expire);
 		}
@@ -573,46 +580,44 @@
 		return TRUE;
 	}
 
-
 	// --------------------------------------------------------------------
+
 	/**
 	 * Set the HTTP headers to match the server-side file cache settings
 	 * in order to reduce bandwidth.
 	 *
-	 * @param 	int		timestamp of when the page was last modified
-	 * @param 	int		timestamp of when should the requested page expire from cache
+	 * @param	int	timestamp of when the page was last modified
+	 * @param	int	timestamp of when should the requested page expire from cache
 	 * @return	void
 	 */
 	public function set_cache_header($last_modified, $expiration)
-	{		
-        $max_age = $expiration - $_SERVER['REQUEST_TIME'];
+	{
+		$max_age = $expiration - $_SERVER['REQUEST_TIME'];
 
-		if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && ($last_modified <= strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE'])))
+		if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && $last_modified <= strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']))
 		{
 			$this->set_status_header(304);
 			exit;
 		}
 		else
 		{
-			header('Pragma: public'); 
+			header('Pragma: public');
 			header('Cache-Control: max-age=' . $max_age . ', public');
 			header('Expires: '.gmdate('D, d M Y H:i:s', $expiration).' GMT');
 			header('Last-modified: '.gmdate('D, d M Y H:i:s', $last_modified).' GMT');
 		}
 	}
 
-
-
-
 	// --------------------------------------------------------------------
+
 	/**
 	 * Reduce excessive size of HTML content.
 	 *
-	 * @param 	string
-	 * @param 	string
+	 * @param	string
+	 * @param	string
 	 * @return	string
 	 */
-	public function minify($output, $type='text/html')
+	public function minify($output, $type = 'text/html')
 	{
 		switch ($type)
 		{
@@ -633,7 +638,7 @@
 				{
 					$output = str_replace($s, $this->minify($s, 'text/css'), $output);
 				}
-				
+
 				// Minify the javascript in <script> tags.
 				foreach ($javascript_clean[0] as $s)
 				{
@@ -642,7 +647,7 @@
 
 				// Replace multiple spaces with a single space.
 				$output = preg_replace('!\s{2,}!', ' ', $output);
-				
+
 				// Remove comments (non-MSIE conditionals)
 				$output = preg_replace('{\s*<!--[^\[].*-->\s*}msU', '', $output);
 
@@ -650,62 +655,61 @@
 				$output = preg_replace('{\s*(</?(html|head|title|meta|script|link|style|body|h[1-6]|div|p|br).*>)\s+}msU', '$1', $output);
 
 				// Replace mangled <pre> etc. tags with unprocessed ones.
-				
+
 				if ( ! empty($pres_clean))
 				{
 					preg_match_all('{<pre.+</pre>}msU', $output, $pres_messed);
 					$output = str_replace($pres_messed[0], $pres_clean[0], $output);
 				}
-				
+
 				if ( ! empty($codes_clean))
 				{
 					preg_match_all('{<code.+</code>}msU', $output, $codes_messed);
 					$output = str_replace($codes_messed[0], $codes_clean[0], $output);
 				}
-				
+
 				if ( ! empty($codes_clean))
 				{
 					preg_match_all('{<textarea.+</textarea>}msU', $output, $textareas_messed);
 					$output = str_replace($textareas_messed[0], $textareas_clean[0], $output);
 				}
-				
+
 				if (isset($javascript_mini))
 				{
 					preg_match_all('{<script.+</script>}msU', $output, $javascript_messed);
 					$output = str_replace($javascript_messed[0], $javascript_mini, $output);
 				}
-				
+
 				$size_removed = $size_before - strlen($output);
 				$savings_percent = round(($size_removed / $size_before * 100));
 
 				log_message('debug', 'Minifier shaved '.($size_removed / 1000).'KB ('.$savings_percent.'%) off final HTML output.');
 
 			break;
-			
-			
+
 			case 'text/css':
-			
+
 				//Remove CSS comments
 				$output = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $output);
-			
+
 				// Remove spaces around curly brackets, colons,
 				// semi-colons, parenthesis, commas
 				$output = preg_replace('!\s*(:|;|,|}|{|\(|\))\s*!', '$1', $output);
 
 			break;
-			
-			
+
 			case 'text/javascript':
 
 				// Currently leaves JavaScript untouched.
 			break;
+
+			default: break;
 		}
-		
+
 		return $output;
 	}
 
-
 }
 
 /* End of file Output.php */
-/* Location: ./system/core/Output.php */
+/* Location: ./system/core/Output.php */
\ No newline at end of file