Merge pull request #2077 from AndrewPodner/develop

update for Issue #2064 - take 2
diff --git a/system/core/Output.php b/system/core/Output.php
index 2e239c7..78eb8c6 100644
--- a/system/core/Output.php
+++ b/system/core/Output.php
@@ -143,7 +143,7 @@
 	 * Sets the output string.
 	 *
 	 * @param	string	$output	Output data
-	 * @return	object	$this
+	 * @return	CI_Output
 	 */
 	public function set_output($output)
 	{
@@ -159,7 +159,7 @@
 	 * Appends data onto the output string.
 	 *
 	 * @param	string	$output	Data to append
-	 * @return	object	$this
+	 * @return	CI_Output
 	 */
 	public function append_output($output)
 	{
@@ -187,7 +187,7 @@
 	 *
 	 * @param	string	$header		Header
 	 * @param	bool	$replace	Whether to replace the old header value, if already set
-	 * @return	object	$this
+	 * @return	CI_Output
 	 */
 	public function set_header($header, $replace = TRUE)
 	{
@@ -211,7 +211,7 @@
 	 *
 	 * @param	string	$mime_type	Extension of the file we're outputting
 	 * @param	string	$charset	Character set (default: NULL)
-	 * @return	object	$this
+	 * @return	CI_Output
 	 */
 	public function set_content_type($mime_type, $charset = NULL)
 	{
@@ -308,7 +308,7 @@
 	 *
 	 * @param	int	$code	Status code (default: 200)
 	 * @param	string	$text	Optional message
-	 * @return	object	$this
+	 * @return	CI_Output
 	 */
 	public function set_status_header($code = 200, $text = '')
 	{
@@ -322,7 +322,7 @@
 	 * Enable/disable Profiler
 	 *
 	 * @param	bool	$val	TRUE to enable or FALSE to disable
-	 * @return	object	$this
+	 * @return	CI_Output
 	 */
 	public function enable_profiler($val = TRUE)
 	{
@@ -339,7 +339,7 @@
 	 * Profiler section display.
 	 *
 	 * @param	array	$sections	Profiler sections
-	 * @return	object	$this
+	 * @return	CI_Output
 	 */
 	public function set_profiler_sections($sections)
 	{
@@ -363,7 +363,7 @@
 	 * Set Cache
 	 *
 	 * @param	int	$time	Cache expiration time in seconds
-	 * @return	object	$this
+	 * @return	CI_Output
 	 */
 	public function cache($time)
 	{
diff --git a/system/core/Security.php b/system/core/Security.php
index c415544..3bf6266 100644
--- a/system/core/Security.php
+++ b/system/core/Security.php
@@ -151,7 +151,7 @@
 	/**
 	 * CSRF Verify
 	 *
-	 * @return	object
+	 * @return	CI_Security
 	 */
 	public function csrf_verify()
 	{
@@ -202,7 +202,7 @@
 	 * CSRF Set Cookie
 	 *
 	 * @codeCoverageIgnore
-	 * @return	object
+	 * @return	CI_Security
 	 */
 	public function csrf_set_cookie()
 	{
diff --git a/system/database/DB_forge.php b/system/database/DB_forge.php
index 59c3baf..fd224c4 100644
--- a/system/database/DB_forge.php
+++ b/system/database/DB_forge.php
@@ -229,7 +229,7 @@
 	 *
 	 * @param	string	$key
 	 * @param	bool	$primary
-	 * @return	object
+	 * @return  CI_DB_forge
 	 */
 	public function add_key($key = '', $primary = FALSE)
 	{
@@ -266,7 +266,7 @@
 	 * Add Field
 	 *
 	 * @param	array	$field
-	 * @return	object
+	 * @return	CI_DB_forge
 	 */
 	public function add_field($field = '')
 	{
diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php
index b0e86ed..1aa73ba 100644
--- a/system/database/DB_query_builder.php
+++ b/system/database/DB_query_builder.php
@@ -254,7 +254,7 @@
 	 *
 	 * @param	string
 	 * @param	mixed
-	 * @return	object
+	 * @return	CI_DB_query_builder
 	 */
 	public function select($select = '*', $escape = NULL)
 	{
@@ -296,7 +296,7 @@
 	 *
 	 * @param	string	the field
 	 * @param	string	an alias
-	 * @return	object
+	 * @return	CI_DB_query_builder
 	 */
 	public function select_max($select = '', $alias = '')
 	{
@@ -312,7 +312,7 @@
 	 *
 	 * @param	string	the field
 	 * @param	string	an alias
-	 * @return	object
+	 * @return	CI_DB_query_builder
 	 */
 	public function select_min($select = '', $alias = '')
 	{
@@ -328,7 +328,7 @@
 	 *
 	 * @param	string	the field
 	 * @param	string	an alias
-	 * @return	object
+	 * @return	CI_DB_query_builder
 	 */
 	public function select_avg($select = '', $alias = '')
 	{
@@ -344,7 +344,7 @@
 	 *
 	 * @param	string	the field
 	 * @param	string	an alias
-	 * @return	object
+	 * @return	CI_DB_query_builder
 	 */
 	public function select_sum($select = '', $alias = '')
 	{
@@ -364,7 +364,7 @@
 	 * @param	string	$select	Field name
 	 * @param	string	$alias
 	 * @param	string	$type
-	 * @return	object
+	 * @return	CI_DB_query_builder
 	 */
 	protected function _max_min_avg_sum($select = '', $alias = '', $type = 'MAX')
 	{
@@ -426,7 +426,7 @@
 	 * Sets a flag which tells the query string compiler to add DISTINCT
 	 *
 	 * @param	bool	$val
-	 * @return	object
+	 * @return	CI_DB_query_builder
 	 */
 	public function distinct($val = TRUE)
 	{
@@ -442,7 +442,7 @@
 	 * Generates the FROM portion of the query
 	 *
 	 * @param	mixed	$from	can be a string or array
-	 * @return	object
+	 * @return	CI_DB_query_builder
 	 */
 	public function from($from)
 	{
@@ -496,7 +496,7 @@
 	 * @param	string	the join condition
 	 * @param	string	the type of join
 	 * @param	string	whether not to try to escape identifiers
-	 * @return	object
+	 * @return	CI_DB_query_builder
 	 */
 	public function join($table, $cond, $type = '', $escape = NULL)
 	{
@@ -584,7 +584,7 @@
 	 * @param	mixed
 	 * @param	mixed
 	 * @param	bool
-	 * @return	object
+	 * @return	CI_DB_query_builder
 	 */
 	public function where($key, $value = NULL, $escape = NULL)
 	{
@@ -602,7 +602,7 @@
 	 * @param	mixed
 	 * @param	mixed
 	 * @param	bool
-	 * @return	object
+	 * @return	CI_DB_query_builder
 	 */
 	public function or_where($key, $value = NULL, $escape = NULL)
 	{
@@ -624,7 +624,7 @@
 	 * @param	mixed	$value
 	 * @param	string	$type
 	 * @param	bool	$escape
-	 * @return	object
+	 * @return	CI_DB_query_builder
 	 */
 	protected function _wh($qb_key, $key, $value = NULL, $type = 'AND ', $escape = NULL)
 	{
@@ -685,7 +685,7 @@
 	 * @param	string	$key	The field to search
 	 * @param	array	$values	The values searched on
 	 * @param	bool	$escape
-	 * @return	object
+	 * @return	CI_DB_query_builder
 	 */
 	public function where_in($key = NULL, $values = NULL, $escape = NULL)
 	{
@@ -703,7 +703,7 @@
 	 * @param	string	$key	The field to search
 	 * @param	array	$values	The values searched on
 	 * @param	bool	$escape
-	 * @return	object
+	 * @return	CI_DB_query_builder
 	 */
 	public function or_where_in($key = NULL, $values = NULL, $escape = NULL)
 	{
@@ -721,7 +721,7 @@
 	 * @param	string	$key	The field to search
 	 * @param	array	$values	The values searched on
 	 * @param	bool	$escape
-	 * @return	object
+	 * @return	CI_DB_query_builder
 	 */
 	public function where_not_in($key = NULL, $values = NULL, $escape = NULL)
 	{
@@ -739,7 +739,7 @@
 	 * @param	string	$key	The field to search
 	 * @param	array	$values	The values searched on
 	 * @param	bool	$escape
-	 * @return	object
+	 * @return	CI_DB_query_builder
 	 */
 	public function or_where_not_in($key = NULL, $values = NULL, $escape = NULL)
 	{
@@ -761,7 +761,7 @@
 	 * @param	bool	$not	If the statement would be IN or NOT IN
 	 * @param	string	$type
 	 * @param	bool	$escape
-	 * @return	object
+	 * @return	CI_DB_query_builder
 	 */
 	protected function _where_in($key = NULL, $values = NULL, $not = FALSE, $type = 'AND ', $escape = NULL)
 	{
@@ -813,7 +813,7 @@
 	 * @param	string	$match
 	 * @param	string	$side
 	 * @param	bool	$escape
-	 * @return	object
+	 * @return	CI_DB_query_builder
 	 */
 	public function like($field, $match = '', $side = 'both', $escape = NULL)
 	{
@@ -832,7 +832,7 @@
 	 * @param	string	$match
 	 * @param	string	$side
 	 * @param	bool	$escape
-	 * @return	object
+	 * @return	CI_DB_query_builder
 	 */
 	public function not_like($field, $match = '', $side = 'both', $escape = NULL)
 	{
@@ -851,7 +851,7 @@
 	 * @param	string	$match
 	 * @param	string	$side
 	 * @param	bool	$escape
-	 * @return	object
+	 * @return	CI_DB_query_builder
 	 */
 	public function or_like($field, $match = '', $side = 'both', $escape = NULL)
 	{
@@ -870,7 +870,7 @@
 	 * @param	string	$match
 	 * @param	string	$side
 	 * @param	bool	$escape
-	 * @return	object
+	 * @return	CI_DB_query_builder
 	 */
 	public function or_not_like($field, $match = '', $side = 'both', $escape = NULL)
 	{
@@ -893,7 +893,7 @@
 	 * @param	string	$side
 	 * @param	string	$not
 	 * @param	bool	$escape
-	 * @return	object
+	 * @return	CI_DB_query_builder
 	 */
 	protected function _like($field, $match = '', $type = 'AND ', $side = 'both', $not = '', $escape = NULL)
 	{
@@ -952,7 +952,7 @@
 	 *
 	 * @param	string	$not	(Internal use only)
 	 * @param	string	$type	(Internal use only)
-	 * @return	object
+	 * @return	CI_DB_query_builder
 	 */
 	public function group_start($not = '', $type = 'AND ')
 	{
@@ -979,7 +979,7 @@
 	/**
 	 * Starts a query group, but ORs the group
 	 *
-	 * @return	object
+	 * @return	CI_DB_query_builder
 	 */
 	public function or_group_start()
 	{
@@ -991,7 +991,7 @@
 	/**
 	 * Starts a query group, but NOTs the group
 	 *
-	 * @return	object
+	 * @return	CI_DB_query_builder
 	 */
 	public function not_group_start()
 	{
@@ -1003,7 +1003,7 @@
 	/**
 	 * Starts a query group, but OR NOTs the group
 	 *
-	 * @return	object
+	 * @return	CI_DB_query_builder
 	 */
 	public function or_not_group_start()
 	{
@@ -1015,7 +1015,7 @@
 	/**
 	 * Ends a query group
 	 *
-	 * @return	object
+	 * @return	CI_DB_query_builder
 	 */
 	public function group_end()
 	{
@@ -1065,7 +1065,7 @@
 	 *
 	 * @param	string	$by
 	 * @param	bool	$escape
-	 * @return	object
+	 * @return	CI_DB_query_builder
 	 */
 	public function group_by($by, $escape = NULL)
 	{
@@ -1140,7 +1140,7 @@
 	 * @param	string	$orderby
 	 * @param	string	$direction	ASC or DESC
 	 * @param	bool	$escape
-	 * @return	object
+	 * @return	CI_DB_query_builder
 	 */
 	public function order_by($orderby, $direction = '', $escape = NULL)
 	{
@@ -1198,7 +1198,7 @@
 	 *
 	 * @param	int	$value	LIMIT value
 	 * @param	int	$offset	OFFSET value
-	 * @return	object
+	 * @return	CI_DB_query_builder
 	 */
 	public function limit($value, $offset = FALSE)
 	{
@@ -1214,7 +1214,7 @@
 	 * Sets the OFFSET value
 	 *
 	 * @param	int	$offset	OFFSET value
-	 * @return	object
+	 * @return	CI_DB_query_builder
 	 */
 	public function offset($offset)
 	{
@@ -1247,7 +1247,7 @@
 	 * @param	mixed
 	 * @param	string
 	 * @param	bool
-	 * @return	object
+	 * @return	CI_DB_query_builder
 	 */
 	public function set($key, $value = '', $escape = NULL)
 	{
@@ -1469,7 +1469,7 @@
 	 * @param	mixed
 	 * @param	string
 	 * @param	bool
-	 * @return	object
+	 * @return	CI_DB_query_builder
 	 */
 	public function set_insert_batch($key, $value = '', $escape = NULL)
 	{
@@ -1860,7 +1860,7 @@
 	 * @param	array
 	 * @param	string
 	 * @param	bool
-	 * @return	object
+	 * @return	CI_DB_query_builder
 	 */
 	public function set_update_batch($key, $index = '', $escape = NULL)
 	{
diff --git a/system/libraries/Email.php b/system/libraries/Email.php
index 5d8fc8a..365a8bc 100644
--- a/system/libraries/Email.php
+++ b/system/libraries/Email.php
@@ -406,7 +406,7 @@
 	 * Initialize preferences
 	 *
 	 * @param	array
-	 * @return	void
+	 * @return	CI_Email
 	 */
 	public function initialize($config = array())
 	{
@@ -440,7 +440,7 @@
 	 * Initialize the Email Data
 	 *
 	 * @param	bool
-	 * @return	object
+	 * @return	CI_Email
 	 */
 	public function clear($clear_attachments = FALSE)
 	{
@@ -474,7 +474,7 @@
 	 * @param	string	$from
 	 * @param	string	$name
 	 * @param	string	$return_path = NULL	Return-Path
-	 * @return	object
+	 * @return	CI_Email
 	 */
 	public function from($from, $name = '', $return_path = NULL)
 	{
@@ -522,7 +522,7 @@
 	 *
 	 * @param	string
 	 * @param	string
-	 * @return	object
+	 * @return	CI_Email
 	 */
 	public function reply_to($replyto, $name = '')
 	{
@@ -558,7 +558,7 @@
 	 * Set Recipients
 	 *
 	 * @param	string
-	 * @return	object
+	 * @return	CI_Email
 	 */
 	public function to($to)
 	{
@@ -586,7 +586,7 @@
 	 * Set CC
 	 *
 	 * @param	string
-	 * @return	object
+	 * @return	CI_Email
 	 */
 	public function cc($cc)
 	{
@@ -614,7 +614,7 @@
 	 *
 	 * @param	string
 	 * @param	string
-	 * @return	object
+	 * @return	CI_Email
 	 */
 	public function bcc($bcc, $limit = '')
 	{
@@ -649,7 +649,7 @@
 	 * Set Email Subject
 	 *
 	 * @param	string
-	 * @return	object
+	 * @return	CI_Email
 	 */
 	public function subject($subject)
 	{
@@ -664,7 +664,7 @@
 	 * Set Body
 	 *
 	 * @param	string
-	 * @return	object
+	 * @return	CI_Email
 	 */
 	public function message($body)
 	{
@@ -693,7 +693,7 @@
 	 * @param	string	$disposition = 'attachment'
 	 * @param	string	$newname = NULL
 	 * @param	string	$mime = ''
-	 * @return	object
+	 * @return	CI_Email
 	 */
 	public function attach($filename, $disposition = '', $newname = NULL, $mime = '')
 	{
@@ -746,7 +746,7 @@
 	 * Set Multipart Value
 	 *
 	 * @param	string
-	 * @return	object
+	 * @return	CI_Email
 	 */
 	public function set_alt_message($str = '')
 	{
@@ -760,7 +760,7 @@
 	 * Set Mailtype
 	 *
 	 * @param	string
-	 * @return	object
+	 * @return	CI_Email
 	 */
 	public function set_mailtype($type = 'text')
 	{
@@ -774,7 +774,7 @@
 	 * Set Wordwrap
 	 *
 	 * @param	bool
-	 * @return	object
+	 * @return	CI_Email
 	 */
 	public function set_wordwrap($wordwrap = TRUE)
 	{
@@ -788,7 +788,7 @@
 	 * Set Protocol
 	 *
 	 * @param	string
-	 * @return	object
+	 * @return	CI_Email
 	 */
 	public function set_protocol($protocol = 'mail')
 	{
@@ -802,7 +802,7 @@
 	 * Set Priority
 	 *
 	 * @param	int
-	 * @return	object
+	 * @return	CI_Email
 	 */
 	public function set_priority($n = 3)
 	{
@@ -816,7 +816,7 @@
 	 * Set Newline Character
 	 *
 	 * @param	string
-	 * @return	object
+	 * @return	CI_Email
 	 */
 	public function set_newline($newline = "\n")
 	{
@@ -830,7 +830,7 @@
 	 * Set CRLF
 	 *
 	 * @param	string
-	 * @return	object
+	 * @return	CI_Email
 	 */
 	public function set_crlf($crlf = "\n")
 	{
diff --git a/system/libraries/Encrypt.php b/system/libraries/Encrypt.php
index cdb0a64..e54ce49 100644
--- a/system/libraries/Encrypt.php
+++ b/system/libraries/Encrypt.php
@@ -122,7 +122,7 @@
 	 * Set the encryption key
 	 *
 	 * @param	string
-	 * @return	object
+	 * @return	CI_Encrypt
 	 */
 	public function set_key($key = '')
 	{
@@ -419,7 +419,7 @@
 	 * Set the Mcrypt Cipher
 	 *
 	 * @param	int
-	 * @return	object
+	 * @return	CI_Encrypt
 	 */
 	public function set_cipher($cipher)
 	{
@@ -433,7 +433,7 @@
 	 * Set the Mcrypt Mode
 	 *
 	 * @param	int
-	 * @return	object
+	 * @return	CI_Encrypt
 	 */
 	public function set_mode($mode)
 	{
diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php
index 6853425..32f7da1 100644
--- a/system/libraries/Form_validation.php
+++ b/system/libraries/Form_validation.php
@@ -149,7 +149,7 @@
 	 * @param	mixed	$field
 	 * @param	string	$label
 	 * @param	mixed	$rules
-	 * @return	object
+	 * @return	CI_Form_validation
 	 */
 	public function set_rules($field, $label = '', $rules = '')
 	{
@@ -266,7 +266,7 @@
 	 *
 	 * @param	array
 	 * @param	string
-	 * @return	object
+	 * @return	CI_Form_validation
 	 */
 	public function set_message($lang, $val = '')
 	{
@@ -288,7 +288,7 @@
 	 *
 	 * @param	string
 	 * @param	string
-	 * @return	object
+	 * @return	CI_Form_validation
 	 */
 	public function set_error_delimiters($prefix = '<p>', $suffix = '</p>')
 	{
@@ -829,7 +829,7 @@
 		{
 			return sprintf($line, $field, $param);
 		}
-		
+
 		return str_replace(array('{field}', '{param}'), array($field, $param), $line);
 	}
 
diff --git a/system/libraries/Zip.php b/system/libraries/Zip.php
index 5eb33d2..740e99c 100644
--- a/system/libraries/Zip.php
+++ b/system/libraries/Zip.php
@@ -438,7 +438,7 @@
 	 * Lets you clear current zip data. Useful if you need to create
 	 * multiple zips with different data.
 	 *
-	 * @return	object
+	 * @return	CI_Zip
 	 */
 	public function clear_data()
 	{