5 Modification information for LGPL compliance
7 r56990 - 2010-06-16 13:05:36 -0700 (Wed, 16 Jun 2010) - kjing - snapshot "Mango" svn branch to a new one for GitHub sync
9 r56989 - 2010-06-16 13:01:33 -0700 (Wed, 16 Jun 2010) - kjing - defunt "Mango" svn dev branch before github cutover
11 r55980 - 2010-04-19 13:31:28 -0700 (Mon, 19 Apr 2010) - kjing - create Mango (6.1) based on windex
13 r51719 - 2009-10-22 10:18:00 -0700 (Thu, 22 Oct 2009) - mitani - Converted to Build 3 tags and updated the build system
15 r51634 - 2009-10-19 13:32:22 -0700 (Mon, 19 Oct 2009) - mitani - Windex is the branch for Sugar Sales 1.0 development
17 r50375 - 2009-08-24 18:07:43 -0700 (Mon, 24 Aug 2009) - dwong - branch kobe2 from tokyo r50372
19 r42807 - 2008-12-29 11:16:59 -0800 (Mon, 29 Dec 2008) - dwong - Branch from trunk/sugarcrm r42806 to branches/tokyo/sugarcrm
21 r8230 - 2005-10-03 17:47:19 -0700 (Mon, 03 Oct 2005) - majed - Added Sugar_Smarty to the code tree.
34 * write out a file to disk
36 * @param string $filename
37 * @param string $contents
38 * @param boolean $create_dirs
41 function smarty_core_write_file($params, &$smarty)
43 $_dirname = dirname($params['filename']);
45 if ($params['create_dirs']) {
46 $_params = array('dir' => $_dirname);
47 require_once(SMARTY_CORE_DIR . 'core.create_dir_structure.php');
48 smarty_core_create_dir_structure($_params, $smarty);
51 // write to tmp file, then rename it to avoid
52 // file locking race condition
53 $_tmp_file = tempnam($_dirname, 'wrt');
55 if (!($fd = @fopen($_tmp_file, 'wb'))) {
56 $_tmp_file = $_dirname . DIRECTORY_SEPARATOR . uniqid('wrt');
57 if (!($fd = @fopen($_tmp_file, 'wb'))) {
58 $smarty->trigger_error("problem writing temporary file '$_tmp_file'");
63 fwrite($fd, $params['contents']);
66 // Delete the file if it allready exists (this is needed on Win,
67 // because it cannot overwrite files with rename()
68 if (file_exists($params['filename'])) {
69 @unlink($params['filename']);
71 @rename($_tmp_file, $params['filename']);
72 @chmod($params['filename'], $smarty->_file_perms);
77 /* vim: set expandtab: */