diff options
author | Alon Zakai <alonzakai@gmail.com> | 2013-08-29 18:17:40 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2013-08-29 18:17:40 -0700 |
commit | 77c4a7eb74cc51419331009ca83671395f263c6c (patch) | |
tree | 3afe00e915fb253e975cc359365d8340f0d350f8 /src/library.js | |
parent | 8f998042dc594b59129a77556d1c98160220b585 (diff) | |
parent | 0d23384af497877ad156af27e6f4aa731acea461 (diff) |
Merge pull request #1555 from inolen/tty_fixes
added stubs for tcgetattr and tcsetattr, minor node tty fixes
Diffstat (limited to 'src/library.js')
-rw-r--r-- | src/library.js | 38 |
1 files changed, 36 insertions, 2 deletions
diff --git a/src/library.js b/src/library.js index 3ba2f56b..f6b3d5ef 100644 --- a/src/library.js +++ b/src/library.js @@ -2261,7 +2261,11 @@ LibraryManager.library = { // void clearerr(FILE *stream); // http://pubs.opengroup.org/onlinepubs/000095399/functions/clearerr.html stream = FS.getStream(stream); - if (stream) stream.error = false; + if (!stream) { + return; + } + stream.eof = false; + stream.error = false; }, fclose__deps: ['close', 'fsync'], fclose: function(stream) { @@ -2322,7 +2326,6 @@ LibraryManager.library = { if (streamObj.eof || streamObj.error) return -1; var ret = _fread(_fgetc.ret, 1, 1, stream); if (ret == 0) { - streamObj.eof = true; return -1; } else if (ret == -1) { streamObj.error = true; @@ -5154,6 +5157,37 @@ LibraryManager.library = { }, // ========================================================================== + // termios.h + // ========================================================================== + tcgetattr: function(fildes, termios_p) { + // http://pubs.opengroup.org/onlinepubs/009695399/functions/tcgetattr.html + var stream = FS.getStream(fildes); + if (!stream) { + ___setErrNo(ERRNO_CODES.EBADF); + return -1; + } + if (!stream.tty) { + ___setErrNo(ERRNO_CODES.ENOTTY); + return -1; + } + return 0; + }, + + tcsetattr: function(fildes, optional_actions, termios_p) { + // http://pubs.opengroup.org/onlinepubs/7908799/xsh/tcsetattr.html + var stream = FS.getStream(fildes); + if (!stream) { + ___setErrNo(ERRNO_CODES.EBADF); + return -1; + } + if (!stream.tty) { + ___setErrNo(ERRNO_CODES.ENOTTY); + return -1; + } + return 0; + }, + + // ========================================================================== // time.h // ========================================================================== |