comparison 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
comparison
equal deleted inserted replaced
48:18ab96287c3a 49:f2cda2e6f70e
580 'str->data[str->bytes+1] = 0;', 580 'str->data[str->bytes+1] = 0;',
581 'return str;' 581 'return str;'
582 ] 582 ]
583 }); 583 });
584 os.addMessage('open', { 584 os.addMessage('open', {
585 vars: {str: 'string *', flags: 'obj_int32 *', filedes: 'obj_int32 *'}, 585 vars: {str: 'string *', flags: 'obj_int32 *', filedes: 'obj_int32 *', perm: 'obj_int32 *'},
586 lines: [ 586 lines: [
587 'str = va_arg(args, string *);', 587 'str = va_arg(args, string *);',
588 'flags = va_arg(args, obj_int32 *);', 588 'flags = va_arg(args, obj_int32 *);',
589 'filedes = make_object(&obj_int32_meta, NULL, 0);', 589 'filedes = make_object(&obj_int32_meta, NULL, 0);',
590 'filedes->num = open(str->data, flags->num);', 590 'if (num_params == 3) {',
591 ' filedes->num = open(str->data, flags->num);',
592 '} else if (num_params == 4) {',
593 ' perm = va_arg(args, obj_int32 *);',
594 ' filedes->num = open(str->data, flags->num, perm->num);',
595 '} else {',
596 ' filedes->num = -1;',
597 '}',
591 'return filedes;' 598 'return filedes;'
592 ] 599 ]
593 }); 600 });
594 os.addMessage('close', { 601 os.addMessage('close', {
595 vars: {filedes: 'obj_int32 *', intret: 'obj_int32 *'}, 602 vars: {filedes: 'obj_int32 *', intret: 'obj_int32 *'},