diff options
-rw-r--r-- | src/library.js | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/library.js b/src/library.js index a4d1f54c..d4eeb353 100644 --- a/src/library.js +++ b/src/library.js @@ -3454,8 +3454,9 @@ LibraryManager.library = { // int fscanf(FILE *restrict stream, const char *restrict format, ... ); // http://pubs.opengroup.org/onlinepubs/000095399/functions/scanf.html if (FS.streams[stream]) { - var get = function() { return _fgetc(stream); }; - var unget = function(c) { return _ungetc(c, stream); }; + var stack = []; + var get = function() { var ret = _fgetc(stream); stack.push(ret); return ret }; + var unget = function(c) { return _ungetc(stack.pop(), stream) }; return __scanString(format, get, unget, varargs); } else { return -1; |