rev 638 - in trunk: pr/test src

SVN User <[email protected]> Fri, 18 Jun 2004 21:41:28 -0400
Newsgroups gmane.comp.lang.prothon.cvs
Message-ID <[email protected]>
Author: mark
Date: 2004-06-18 21:41:25 -0400 (Fri, 18 Jun 2004)
New Revision: 638

Modified:
   trunk/pr/test/test.pr
   trunk/src/builtins-file.c
Log:
moved TempFile into new TempDir directory so it will be cleaned up at shutdown

Modified: trunk/pr/test/test.pr
===================================================================
--- trunk/pr/test/test.pr	2004-06-19 01:14:33 UTC (rev 637)
+++ trunk/pr/test/test.pr	2004-06-19 01:41:25 UTC (rev 638)
@@ -1,5 +1,9 @@
 #!/usr/bin/env prothon
 
-print List(10.iter_())
-print List(range(20, 0, -2))
 
+f = TempFile()
+print f, f.open?(), f.exists?()
+f.close()
+print f, f.open?(), f.exists?()
+f.delete()
+print f, f.open?(), f.exists?()

Modified: trunk/src/builtins-file.c
===================================================================
--- trunk/src/builtins-file.c	2004-06-19 01:14:33 UTC (rev 637)
+++ trunk/src/builtins-file.c	2004-06-19 01:41:25 UTC (rev 638)
@@ -1237,22 +1237,22 @@
 	TempFile_OBJ->unclonable = TRUE;
 }
 
-DEF(TempFile, init_, FPARM2( bufsize, NEW_INT(-1), delOnClose, OBJ(PR_TRUE))) {
+DEF(TempFile, init_, FPARM2( bufsize, NEW_INT(-1), delOnClose, OBJ(PR_FALSE))) {
 	apr_status_t aprerr;
 	apr_file_t *fp;
 	apr_pool_t *subpool;
 	char *temp_dir, *fullpath;
-	int bufsize, delOnClose = TRUE, flags = 0;
+	int bufsize, delOnClose = FALSE, flags = 0;
 	
 	BIN_EMPTY_CHK();
 	INT_32_PARAM(1, bufsize);
-	if (parms[3] == OBJ(PR_FALSE)) delOnClose = FALSE;
+	if (parms[3] == OBJ(PR_TRUE)) delOnClose = TRUE;
 
 	aprerr = apr_pool_create(&subpool, get_pr_head_pool());
 	IF_APR_ERR("getting memory for TempFile") return NULL;
 
-	aprerr = apr_temp_dir_get(&temp_dir, subpool );
-	IF_APR_ERR("getting temp dir") return NULL;
+	check_TempDir_proto(ist);
+	temp_dir = pr2c_strptr(ist, get_attr(ist, TempDir_OBJ, sym(ist, "path")));
 	aprerr = apr_filepath_merge( &fullpath, temp_dir, "prothon-temp-file-XXXXXX", 
 		                         APR_FILEPATH_TRUENAME, subpool );
 	IF_APR_ERR("merging filepath") return NULL;