diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2022-01-31 22:23:16 -0500 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2022-01-31 22:23:23 -0500 |
| commit | 731f95355d5a52fa491c4b4d866abe89aba02038 (patch) | |
| tree | defd65513e253fda773b9cfa08709f7b1fca33c6 | |
| parent | e56597344d49e5a3c33341225e5cc2c4cdd808d2 (diff) | |
Implement •GetLine as in CBQN
| -rwxr-xr-x | bqn.js | 13 |
1 files changed, 13 insertions, 0 deletions
@@ -109,6 +109,19 @@ sysvals.file = dynsys(state => { return makens(Object.keys(files), Object.values(files)); }); +sysvals.getline = () => { + let l = 1024, b = Buffer.alloc(l); + let fd = fs.openSync("/dev/stdin", "rs"); + let r = ''; + do { + let n = fs.readSync(fd, b, 0, b.length); + if (!n) return '\0'; + r += b.toString('utf-8', 0, n); + } while (r[r.length-1]!=='\n'); + fs.closeSync(fd); + return str(r.slice(0,-1)); +} + sysargs.resolve = sysargs.parres = getres(); let push_state = st => { st.parres = st.resolve; } let update_state = (st,w) => { |
