From 731f95355d5a52fa491c4b4d866abe89aba02038 Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Mon, 31 Jan 2022 22:23:16 -0500 Subject: =?UTF-8?q?Implement=20=E2=80=A2GetLine=20as=20in=20CBQN?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bqn.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/bqn.js b/bqn.js index aa584708..573f64ce 100755 --- a/bqn.js +++ b/bqn.js @@ -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) => { -- cgit v1.2.3