added constants.php file and implemented constants for file system modes
diff --git a/system/application/config/constants.php b/system/application/config/constants.php
new file mode 100644
index 0000000..ace3f8b
--- /dev/null
+++ b/system/application/config/constants.php
@@ -0,0 +1,21 @@
+<?php  if (!defined('BASEPATH')) exit('No direct script access allowed');

+

+/*

+|--------------------------------------------------------------------------

+| File and Directory Modes

+|--------------------------------------------------------------------------

+|

+| These prefs are used when checking and setting modes when working

+| with the file system.  The defaults are fine on servers with proper

+| security, but you may wish (or even need) to change the values in

+| certain environments (Apache running a separate process for each

+| user, PHP under CGI with Apache suEXEC, etc.).  Octal values should

+| always be used to set the mode correctly.

+|

+*/

+define('FILE_READ_MODE', 0644);

+define('FILE_WRITE_MODE', 0666);

+define('DIR_READ_MODE', 0755);

+define('DIR_WRITE_MODE', 0777);

+

+?>
\ No newline at end of file
diff --git a/system/codeigniter/CodeIgniter.php b/system/codeigniter/CodeIgniter.php
index 866be35..04936b9 100644
--- a/system/codeigniter/CodeIgniter.php
+++ b/system/codeigniter/CodeIgniter.php
@@ -43,7 +43,14 @@
  * ------------------------------------------------------

  */

 require(BASEPATH.'codeigniter/Compat'.EXT);

-	

+

+/*

+ * ------------------------------------------------------

+ *  Load the compatibility override functions

+ * ------------------------------------------------------

+ */

+require(APPPATH.'config/constants'.EXT);

+

 /*

  * ------------------------------------------------------

  *  Define a custom error handler so we can log PHP errors

diff --git a/system/codeigniter/Common.php b/system/codeigniter/Common.php
index d9ddf80..4554a71 100644
--- a/system/codeigniter/Common.php
+++ b/system/codeigniter/Common.php
@@ -52,7 +52,7 @@
 		}

 		

 		fclose($fp);

-		@chmod($file, 0777);

+		@chmod($file, DIR_WRITE_MODE);

 		@unlink($file);

 		return TRUE;

 	}

diff --git a/system/database/DB_cache.php b/system/database/DB_cache.php
index ad54fc3..08394da 100644
--- a/system/database/DB_cache.php
+++ b/system/database/DB_cache.php
@@ -129,12 +129,12 @@
 	

 		if ( ! @is_dir($dir_path))

 		{

-			if ( ! @mkdir($dir_path, 0777))

+			if ( ! @mkdir($dir_path, DIR_WRITE_MODE))

 			{

 				return FALSE;

 			}

 			

-			@chmod($dir_path, 0777);			

+			@chmod($dir_path, DIR_WRITE_MODE);			

 		}

 		

 		if (write_file($dir_path.$filename, serialize($object)) === FALSE)

@@ -142,7 +142,7 @@
 			return FALSE;

 		}

 		

-		@chmod($dir_path.$filename, 0777);

+		@chmod($dir_path.$filename, DIR_WRITE_MODE);

 		return TRUE;

 	}

 

diff --git a/system/database/drivers/sqlite/sqlite_driver.php b/system/database/drivers/sqlite/sqlite_driver.php
index c859dea..16a8308 100644
--- a/system/database/drivers/sqlite/sqlite_driver.php
+++ b/system/database/drivers/sqlite/sqlite_driver.php
@@ -48,7 +48,7 @@
 	 */	

 	function db_connect()

 	{

-		if ( ! $conn_id = @sqlite_open($this->database, 0666, $error))

+		if ( ! $conn_id = @sqlite_open($this->database, FILE_WRITE_MODE, $error))

 		{

 			log_message('error', $error);

 			

@@ -73,7 +73,7 @@
 	 */	

 	function db_pconnect()

 	{

-		if ( ! $conn_id = @sqlite_popen($this->database, 0666, $error))

+		if ( ! $conn_id = @sqlite_popen($this->database, FILE_WRITE_MODE, $error))

 		{

 			log_message('error', $error);

 			

diff --git a/system/libraries/Image_lib.php b/system/libraries/Image_lib.php
index 3957420..85435f6 100644
--- a/system/libraries/Image_lib.php
+++ b/system/libraries/Image_lib.php
@@ -484,7 +484,7 @@
 					return FALSE;

 				}

 			

-				@chmod($this->full_dst_path, 0777);

+				@chmod($this->full_dst_path, DIR_WRITE_MODE);

 				return TRUE;

 			}

 			

@@ -539,7 +539,7 @@
 		imagedestroy($src_img);

 		

 		// Set the file to 777

-		@chmod($this->full_dst_path, 0777);

+		@chmod($this->full_dst_path, DIR_WRITE_MODE);

 		

 		return TRUE;

 	}

@@ -609,7 +609,7 @@
 		}

 		

 		// Set the file to 777

-		@chmod($this->full_dst_path, 0777);

+		@chmod($this->full_dst_path, DIR_WRITE_MODE);

 		

 		return TRUE;

 	}

@@ -695,7 +695,7 @@
 		// we have to rename the temp file.

 		copy ($this->dest_folder.'netpbm.tmp', $this->full_dst_path);

 		unlink ($this->dest_folder.'netpbm.tmp');

-		@chmod($dst_image, 0777);

+		@chmod($dst_image, DIR_WRITE_MODE);

 		

 		return TRUE;

 	}

@@ -754,7 +754,7 @@
 		

 		// Set the file to 777

 		

-		@chmod($this->full_dst_path, 0777);

+		@chmod($this->full_dst_path, DIR_WRITE_MODE);

 		

 		return true;

 	}

@@ -838,7 +838,7 @@
 		imagedestroy($src_img);

 		

 		// Set the file to 777

-		@chmod($this->full_dst_path, 0777);

+		@chmod($this->full_dst_path, DIR_WRITE_MODE);

 		

 		return TRUE;

 	}

diff --git a/system/libraries/Log.php b/system/libraries/Log.php
index f9ca85a..1aa8bd0 100644
--- a/system/libraries/Log.php
+++ b/system/libraries/Log.php
@@ -109,7 +109,7 @@
 		flock($fp, LOCK_UN);

 		fclose($fp);

 	

-		@chmod($filepath, 0666); 		

+		@chmod($filepath, FILE_WRITE_MODE); 		

 		return TRUE;

 	}

 

diff --git a/system/libraries/Output.php b/system/libraries/Output.php
index a4d8d34..07990eb 100644
--- a/system/libraries/Output.php
+++ b/system/libraries/Output.php
@@ -308,7 +308,7 @@
 		fwrite($fp, $expire.'TS--->'.$output);

 		flock($fp, LOCK_UN);

 		fclose($fp);

-		@chmod($cache_path, 0777);

+		@chmod($cache_path, DIR_WRITE_MODE);

 

 		log_message('debug', "Cache file written: ".$cache_path);

 	}

diff --git a/user_guide/changelog.html b/user_guide/changelog.html
index 4e3ca7c..af51c0e 100644
--- a/user_guide/changelog.html
+++ b/user_guide/changelog.html
@@ -64,6 +64,7 @@
     	<ul>

     		<li>Added 'application/vnd.ms-powerpoint' to list of mime types.</li>

     		<li>Added 'audio/mpg' to list of mime types.</li>

+			<li>Added new user-modifiable file constants.php containing file mode constants</li>

     	</ul>

     </li>

 	<li>Libraries

diff --git a/user_guide/installation/upgrade_162.html b/user_guide/installation/upgrade_162.html
index 7fd01ea..66c498b 100644
--- a/user_guide/installation/upgrade_162.html
+++ b/user_guide/installation/upgrade_162.html
@@ -42,7 +42,7 @@
 <td id="breadcrumb">

 <a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp;

 <a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;

-Upgrading from 1.6.0 to 1.6.1

+Upgrading from 1.6.1 to 1.6.2

 </td>

 <td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="codeigniter.com/user_guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td>

 </tr>

@@ -80,8 +80,10 @@
 <h2>Step 2: Encryption Key</h2>

 <p>If you are using sessions, open up system/application/config.php and verify you've set an encryption key.</p>

 

+<h2>Step 3: Constants File</h2>

+<p>Copy /system/application/config/constants.php to your installation, and modify if necessary.</p>

 

-<h2>Step 3: Update your user guide</h2>

+<h2>Step 4: Update your user guide</h2>

 <p>Please also replace your local copy of the user guide with the new version.</p>

 

 </div>

diff --git a/user_guide/libraries/ftp.html b/user_guide/libraries/ftp.html
index 9e4af8b..0e577e9 100644
--- a/user_guide/libraries/ftp.html
+++ b/user_guide/libraries/ftp.html
@@ -258,7 +258,7 @@
 

 <code>

 // Creates a folder named "bar"<br />

-$this->ftp->mkdir('/public_html/foo/bar/', 0777);

+$this->ftp->mkdir('/public_html/foo/bar/', DIR_WRITE_MODE);

 </code>

 

 

@@ -268,7 +268,7 @@
 

 <code>

 // Chmod "bar" to 777<br />

-$this->ftp->chmod('/public_html/foo/bar/', 0777);

+$this->ftp->chmod('/public_html/foo/bar/', DIR_WRITE_MODE);

 </code>