@(do (defun stream-positioned-to-right-place (name) (let* ((stream (open-file name "r+b")) (pre (progn (stream-set-prop stream :byte-oriented t) (read-until-match #/@\(txr\)/ stream t)))) (when (or (empty pre) (not (search-str pre "@(txr)"))) (throwf 'error "~a isn't a TXR executable" name)) stream))) @(next :args) @(cases) -w @string @file @ (eof) @ (do (let* ((f (stream-positioned-to-right-place file)) (b (ffi-put string (ffi (zarray 128 char))))) (put-buf b 0 f))) @(or) @file @ (eof) @ (do (let ((f (stream-positioned-to-right-place file)) (b (make-buf 128))) (fill-buf b 0 f) (put-line (ffi-get b (ffi (zarray 128 char)))))) @(or) @ (output) usage: @{self-path} [-w string] txr-executable @ (end) @ (do (exit 1)) @(end)