Mercurial > repos > tabletprog
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 *'}, |