diff options
-rw-r--r-- | lisplib.c | 5 | ||||
-rw-r--r-- | share/txr/stdlib/getput.tl | 53 |
2 files changed, 58 insertions, 0 deletions
@@ -517,15 +517,20 @@ static val package_instantiate(val set_fun) static val getput_set_entries(val dlt, val fun) { val name[] = { + lit("get-jsons"), lit("put-jsons"), lit("file-get"), lit("file-put"), lit("file-append"), lit("file-get-string"), lit("file-put-string"), lit("file-append-string"), lit("file-get-lines"), lit("file-put-lines"), lit("file-append-lines"), lit("file-get-buf"), lit("file-put-buf"), lit("file-place-buf"), lit("file-append-buf"), + lit("file-get-json"), lit("file-put-json"), lit("file-append-json"), + lit("file-get-jsons"), lit("file-put-jsons"), lit("file-append-jsons"), lit("command-get"), lit("command-put"), lit("command-get-string"), lit("command-put-string"), lit("command-get-lines"), lit("command-put-lines"), lit("command-get-buf"), lit("command-put-buf"), + lit("command-get-json"), lit("command-put-json"), + lit("command-get-jsons"), lit("command-put-jsons"), nil }; set_dlt_entries(dlt, name, fun); diff --git a/share/txr/stdlib/getput.tl b/share/txr/stdlib/getput.tl index 7f9c2af2..55d0f866 100644 --- a/share/txr/stdlib/getput.tl +++ b/share/txr/stdlib/getput.tl @@ -45,6 +45,19 @@ (buf-set-length b (min (+ p p) bytes))))) b)) +(defun get-jsons (: (s *stdin*)) + (build + (catch* + (while t + (add (get-json s))) + (syntax-error (type . args) + (if (parse-errors s) + (throw type . args)))))) + +(defun put-jsons (list : (s *stdout*) flat-p) + (each ((obj list)) + (put-jsonl obj s flat-p))) + (defun file-get (name) (with-stream (s (open-file name)) (read s))) @@ -100,6 +113,30 @@ (with-stream (s (open-file name "ab")) (put-buf buf 0 s))) +(defun file-get-json (name) + (with-stream (s (open-file name)) + (get-json s))) + +(defun file-put-json (name : flat-p) + (with-stream (s (open-file name)) + (put-jsonl s flat-p))) + +(defun file-append-json (name : flat-p) + (with-stream (s (open-file name "a")) + (put-jsonl s flat-p))) + +(defun file-get-jsons (name) + (with-stream (s (open-file name)) + (get-jsons s))) + +(defun file-put-jsons (name : flat-p) + (with-stream (s (open-file name)) + (put-jsons s flat-p))) + +(defun file-append-jsons (name : flat-p) + (with-stream (s (open-file name "a")) + (put-jsons s flat-p))) + (defun command-get (cmd) (with-stream (s (open-command cmd)) (read s))) @@ -130,3 +167,19 @@ (defun command-put-buf (cmd buf) (with-stream (s (open-command cmd "wb")) (put-buf buf 0 s))) + +(defun command-get-json (cmd) + (with-stream (s (open-command cmd)) + (get-json s))) + +(defun command-put-json (cmd : flat-p) + (with-stream (s (open-command cmd "w")) + (put-jsonl s flat-p))) + +(defun command-get-jsons (cmd) + (with-stream (s (open-command cmd)) + (get-jsons s))) + +(defun command-put-jsons (cmd : flat-p) + (with-stream (s (open-command cmd "w")) + (put-jsons s flat-p))) |