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