diff cbackend.js @ 49:f2cda2e6f70e

Fix os open to optionally take a file permission bit parameter. Update example to use this parameter. Add support for hex and binary integer literals
author Mike Pavone <pavone@retrodev.com>
date Fri, 13 Jul 2012 14:16:51 -0700
parents 18ab96287c3a
children ab6217b8ae4c
line wrap: on
line diff
--- a/cbackend.js	Fri Jul 13 10:46:27 2012 -0700
+++ b/cbackend.js	Fri Jul 13 14:16:51 2012 -0700
@@ -582,12 +582,19 @@
 		]
 	});
 	os.addMessage('open', {
-		vars: {str: 'string *', flags: 'obj_int32 *', filedes: 'obj_int32 *'},
+		vars: {str: 'string *', flags: 'obj_int32 *', filedes: 'obj_int32 *', perm: 'obj_int32 *'},
 		lines: [
 			'str = va_arg(args, string *);',
 			'flags = va_arg(args, obj_int32 *);',
 			'filedes = make_object(&obj_int32_meta, NULL, 0);',
-			'filedes->num = open(str->data, flags->num);',
+			'if (num_params == 3) {',
+			'	filedes->num = open(str->data, flags->num);',
+			'} else if (num_params == 4) {',
+			'	perm = va_arg(args, obj_int32 *);',
+			'	filedes->num = open(str->data, flags->num, perm->num);',
+			'} else {',
+			'	filedes->num = -1;',
+			'}',
 			'return filedes;'
 		]
 	});