aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2022-01-31 22:23:16 -0500
committerMarshall Lochbaum <mwlochbaum@gmail.com>2022-01-31 22:23:23 -0500
commit731f95355d5a52fa491c4b4d866abe89aba02038 (patch)
treedefd65513e253fda773b9cfa08709f7b1fca33c6
parente56597344d49e5a3c33341225e5cc2c4cdd808d2 (diff)
Implement •GetLine as in CBQN
-rwxr-xr-xbqn.js13
1 files changed, 13 insertions, 0 deletions
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) => {