diff options
author | ngld <ngld@tproxy.de> | 2013-09-17 13:07:24 +0200 |
---|---|---|
committer | ngld <ngld@tproxy.de> | 2013-09-17 13:07:24 +0200 |
commit | 7f4801a3b381f313818b5deecdb428e0269f0224 (patch) | |
tree | fc5c568c100f23d35889b2ba7bafea0372a6a017 | |
parent | 147bc5e8b13ee6659b6a259a29400c53c537fb1c (diff) |
Implemented dprintf. (Fixes #1250)
-rw-r--r-- | src/library.js | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/library.js b/src/library.js index aac5a9da..aac8c4f0 100644 --- a/src/library.js +++ b/src/library.js @@ -2829,6 +2829,13 @@ LibraryManager.library = { asprintf: function(s, format, varargs) { return _sprintf(-s, format, varargs); }, + dprintf__deps: ['_formatString', 'write'], + dprintf: function(fd, format, varargs) { + var result = __formatString(format, varargs); + var stack = Runtime.stackSave(); + var ret = _write(fd, allocate(result, 'i8', ALLOC_STACK), result.length); + Runtime.stackRestore(stack); + }, #if TARGET_X86 // va_arg is just like our varargs @@ -2837,6 +2844,7 @@ LibraryManager.library = { vprintf: 'printf', vsprintf: 'sprintf', vasprintf: 'asprintf', + vdprintf: 'vdprintf', vscanf: 'scanf', vfscanf: 'fscanf', vsscanf: 'sscanf', @@ -2864,6 +2872,10 @@ LibraryManager.library = { vasprintf: function(s, format, va_arg) { return _asprintf(s, format, {{{ makeGetValue('va_arg', 0, '*') }}}); }, + vdprintf__deps: ['dprintf'], + vdprintf: function (fd, format, va_arg) { + return _dprintf(fd, format, {{{ makeGetValue('va_arg', 0, '*') }}}); + }, vscanf__deps: ['scanf'], vscanf: function(format, va_arg) { return _scanf(format, {{{ makeGetValue('va_arg', 0, '*') }}}); |