rev 684 - in trunk: . include/prothon pr/test src

SVN User <[email protected]> Wed, 30 Jun 2004 20:38:22 -0400
Newsgroups gmane.comp.lang.prothon.cvs
Message-ID <[email protected]>
Author: mark
Date: 2004-06-30 20:38:18 -0400 (Wed, 30 Jun 2004)
New Revision: 684

Modified:
   trunk/STATUS.txt
   trunk/include/prothon/prothon.h
   trunk/pr/test/test.pr
   trunk/src/builtins-file.c
   trunk/src/interp.c
   trunk/src/object.c
   trunk/src/sys.c
Log:
removed Object.StdXXX, changed File.stdXXX to sys.stdXXX, removed File.setStdOut()

Modified: trunk/STATUS.txt
===================================================================
--- trunk/STATUS.txt	2004-06-30 21:01:20 UTC (rev 683)
+++ trunk/STATUS.txt	2004-07-01 00:38:18 UTC (rev 684)
@@ -1,8 +1,8 @@
 
 ----------------------- TO-DO (highest priority first) ------------------------
 
---- stdin, stdout, stderr as text files
 --- change file.setStdout to property
+--- use special stdout for each Main
 
 --- getAttr(name), setAttr(name, value), delAttr(name)
 

Modified: trunk/include/prothon/prothon.h
===================================================================
--- trunk/include/prothon/prothon.h	2004-06-30 21:01:20 UTC (rev 683)
+++ trunk/include/prothon/prothon.h	2004-07-01 00:38:18 UTC (rev 684)
@@ -368,6 +368,7 @@
 	ROOT_GLOBALS,		//   Root_Globals
 	SYMBOLS,			//   Symbols_dict
 	MODULES,			//   Modules
+	SYS,				//	 sys module
 
 	OBJ_ENUM_COUNT
 } obj_enum_t;

Modified: trunk/pr/test/test.pr
===================================================================
--- trunk/pr/test/test.pr	2004-06-30 21:01:20 UTC (rev 683)
+++ trunk/pr/test/test.pr	2004-07-01 00:38:18 UTC (rev 684)
@@ -1,5 +1,3 @@
 #!/usr/bin/env prothon
 
-print StdOut
-
-print File.stdin.read()
\ No newline at end of file
+print sys.stdIn.readLine()
\ No newline at end of file

Modified: trunk/src/builtins-file.c
===================================================================
--- trunk/src/builtins-file.c	2004-06-30 21:01:20 UTC (rev 683)
+++ trunk/src/builtins-file.c	2004-07-01 00:38:18 UTC (rev 684)
@@ -106,7 +106,7 @@
 		IF_APR_ERR("out of memory in set_file_obj_data()") return;
 	}
 	temp = pr2c_strptr(ist, filename);
-	if (strcmp(temp, "<stdin>") && strcmp(temp, "<stdout>") && strcmp(temp, "<stderr>")) {
+	if (strcmp(temp, "stdIn") && strcmp(temp, "stdOut") && strcmp(temp, "stdErr")) {
 		aprerr = apr_filepath_merge( &fullpath, NULL, temp, 
 									APR_FILEPATH_TRUENAME, subpool );
 		IF_APR_ERR("error in filepath_merge") return;
@@ -1170,14 +1170,6 @@
 	return parms[1];
 }
 
-DEF(File, setStdOut, FORM_RPARAM) {
-	int i;
-	su(i);  read_unlock(ist, self);
-	set_attr(ist, self, sym(ist, "stdout"), parms[1]);
-	un_su(i); read_lock(ist, self);
-	return parms[1];
-}
-
 #define __STDIN		0
 #define __STDOUT	1
 #define __STDERR	2
@@ -1813,33 +1805,38 @@
 		return;
 	}
 	StdIn_OBJ = NEW_OBJ(TextFile_OBJ);
-	set_obj_doc(StdIn_OBJ, "StdIn unique object");
-	MODULE_ADD_TO_OBJ(StdIn, OBJ(OBJECT), "StdIn");	
+	set_obj_doc(StdIn_OBJ, "stdIn unique object");
 	aprerr = apr_file_open_stdin(&fp, subpool);
 	IF_APR_ERR("opening stdin") return;
-	set_file_obj_data(ist, StdIn_OBJ, NEW_STRING("<stdin>"), NEW_STRING("r"), 
+	SET_TYPE_IF_EXC(TextFile_OBJ, StdIn_OBJ, DATA_TYPE_DATAPTR) return;
+	set_file_obj_data(ist, StdIn_OBJ, NEW_STRING("stdIn"), NEW_STRING("r"), 
 						   fp, 0, APR_READ);
+	set_attr(ist, StdIn_OBJ, sym(ist, "encoding"), NEW_STRING("ASCII"));
 	StdIn_OBJ->unclonable = TRUE;
 
 	StdOut_OBJ = NEW_OBJ(TextFile_OBJ);
-	set_obj_doc(StdOut_OBJ, "StdOut unique object");
-	MODULE_ADD_TO_OBJ(StdOut, OBJ(OBJECT), "StdOut");
+	set_obj_doc(StdOut_OBJ, "stdOut unique object");
 	aprerr = apr_file_open_stdout(&fp, subpool);
 	IF_APR_ERR("opening stdout") return;
-	set_file_obj_data(ist, StdOut_OBJ, NEW_STRING("<stdout>"), NEW_STRING("w"), 
+	SET_TYPE_IF_EXC(TextFile_OBJ, StdOut_OBJ, DATA_TYPE_DATAPTR) return;
+	set_file_obj_data(ist, StdOut_OBJ, NEW_STRING("stdOut"), NEW_STRING("w"), 
 						   fp, 0, APR_WRITE);
+	set_attr(ist, StdOut_OBJ, sym(ist, "encoding"), NEW_STRING("ASCII"));
 	StdOut_OBJ->unclonable = TRUE;
 
 	StdErr_OBJ = NEW_OBJ(TextFile_OBJ);
-	set_obj_doc(StdErr_OBJ, "StdErr unique object");
-	MODULE_ADD_TO_OBJ(StdErr, OBJ(OBJECT), "StdErr");	
-	StdErr_OBJ->unclonable = TRUE;
+	set_obj_doc(StdErr_OBJ, "stdErr unique object");
 	aprerr = apr_file_open_stderr(&fp, subpool);
 	IF_APR_ERR("opening stderr") return;
-	set_file_obj_data(ist, StdErr_OBJ, NEW_STRING("<stderr>"), NEW_STRING("w"), 
+	SET_TYPE_IF_EXC(TextFile_OBJ, StdErr_OBJ, DATA_TYPE_DATAPTR) return;
+	set_file_obj_data(ist, StdErr_OBJ, NEW_STRING("stdErr"), NEW_STRING("w"), 
 						   fp, 0, APR_WRITE);
+	set_attr(ist, StdErr_OBJ, sym(ist, "encoding"), NEW_STRING("ASCII"));
+	StdErr_OBJ->unclonable = TRUE;
 
-	set_attr(ist, File_OBJ, sym(ist, "stdout"), StdOut_OBJ);
+	set_attr(ist, OBJ(SYS), sym(ist, "stdIn"),  StdIn_OBJ);
+	set_attr(ist, OBJ(SYS), sym(ist, "stdOut"), StdOut_OBJ);
+	set_attr(ist, OBJ(SYS), sym(ist, "stdErr"), StdErr_OBJ);
 }
 
 DEF(StdIn,  call_, FORM_STAR3_PARAM) { return StdIn_OBJ;  }
@@ -1902,7 +1899,6 @@
 	MODULE_ADD_SYM(File, close);
 	MODULE_ADD_SYM(File, open_QUES);
 	MODULE_ADD_SYM(File, closed_QUES);
-	MODULE_ADD_SYM(File, setStdOut);
 	MODULE_ADD_SYM(File, objList_);
 
 	MODULE_SUB_INIT(TempFile);
Modified: trunk/src/interp.c
===================================================================
--- trunk/src/interp.c	2004-06-30 21:01:20 UTC (rev 683)
+++ trunk/src/interp.c	2004-07-01 00:38:18 UTC (rev 684)
@@ -207,7 +207,8 @@
 		res = get_proto_attr(ist, ref_self, ref_key, NULL, NULL);
 		if (!res) {
 			raise_exception(ist, OBJ(NAME_EXC), "Attribute %s not found",
-					symch(ist, ref_key));
+					             symch(ist, ref_key));
+			return NULL;
 		}
 		if (prop_flg && has_proto(ist, res, OBJ(PROP_PROTO))) {
 			if (get_proto_attr(ist, res, SYM(GET_), NULL, NULL)) {

Modified: trunk/src/object.c
===================================================================
--- trunk/src/object.c	2004-06-30 21:01:20 UTC (rev 683)
+++ trunk/src/object.c	2004-07-01 00:38:18 UTC (rev 684)
@@ -236,6 +236,7 @@
 	OBJ(PROP_PROTO)         = NEW_OBJ(NULL);
 	OBJ(ROOT_GLOBALS)       = NEW_OBJ(NULL);
 	OBJ(MODULES)            = NEW_OBJ(NULL);
+	OBJ(SYS)				= NEW_OBJ(NULL);
 	OBJ(EXCEPTION)          = NEW_OBJ(NULL);
 	OBJ(FUNC_PROTO)         = NEW_OBJ(NULL);
 	OBJ(ITER_PROTO)         = NEW_OBJ(NULL);

Modified: trunk/src/sys.c
===================================================================
--- trunk/src/sys.c	2004-06-30 21:01:20 UTC (rev 683)
+++ trunk/src/sys.c	2004-07-01 00:38:18 UTC (rev 684)
@@ -144,9 +144,9 @@
 	apr_pool_t *mod_pool = NULL;
 
 	sys_path = NEW_LIST(10);
-	sys_module = NEW_OBJ(OBJ(OBJECT));
-	set_attr(ist, OBJ(MODULES),sym(ist, "sys"), sys_module);
-	set_attr(ist, OBJ(OBJECT), sym(ist, "sys"), sys_module);
+	sys_module = OBJ(SYS);
+	set_attr(ist, OBJ(MODULES), sym(ist, "sys"), sys_module);
+	set_attr(ist, OBJ(OBJECT),  sym(ist, "sys"), sys_module);
 	set_obj_doc(sys_module, "sys: a built-in module of system attributes");
 	add_path(ist, sys_path, "."); if_exc_return NULL;
 #ifdef PROTHON_DEFAULT_MODDIR