File: wc-replicant.lisp

package info (click to toggle)
acl2 8.5dfsg-5
  • links: PTS
  • area: main
  • in suites: bookworm
  • size: 991,452 kB
  • sloc: lisp: 15,567,759; javascript: 22,820; cpp: 13,929; ansic: 12,092; perl: 7,150; java: 4,405; xml: 3,884; makefile: 3,507; sh: 3,187; ruby: 2,633; ml: 763; python: 746; yacc: 723; awk: 295; csh: 186; php: 171; lex: 154; tcl: 49; asm: 23; haskell: 17
file content (38 lines) | stat: -rw-r--r-- 1,119 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
(include-book "../test-stuff")
(include-book "oslib/argv" :dir :system)

(b*
    (((mv & val state)
      (getenv$ "DISK" state))
     ((mv fat32$c &)
      (disk-image-to-lofat
       fat32$c val state))
     ((mv & val state)
      (getenv$ "WC_OUTPUT" state))
     ((mv channel state)
      (open-output-channel val :character state))
     ((mv & val state)
      (getenv$ "WC_INPUT" state))
     ((mv nl nw nc exit-status) (wc-1 fat32$c val))
     ((unless (equal exit-status 0)) (mv fat32$c state (good-bye 1)))
     ((mv argv state)              (oslib::argv))
     ((mv errmsg opts ?extra-args) (parse-wc-opts argv))
     ((wc-opts opts) opts)
     (state
      (if errmsg state
        (if opts.bytes
            (princ$
             nc
             channel state)
          (if opts.lines
              (princ$
               nl
               channel state)
            (if opts.words
                (princ$
                 nw
                 channel state)
              state)))))
     (state (newline channel state))
     (state (close-output-channel channel state)))
  (mv fat32$c state (good-bye 0)))