@(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)