2 (if (nil? x) (throw nil)
3 (regex "([0-9][0-9])%3A([0-9][0-9])" x 0)
4 (list (int $1 0 10) (int $2 0 10))
9 (if (nil? x) (throw nil)
10 (regex "^([0-9]+)$" x 0) (int $1 0 10) (throw nil)))
12 (define (mode-parse x)
13 (if (member x '("closed" "timed" "opened")) (sym x) (throw nil)))
15 (setf UPDATE "** UPDATE ERROR **")
17 (let ((data "")(b "") (c '()) (v nil))
18 (while (read 0 b 1000) (extend data b))
19 (setf v (map (fn (x) (parse x "=")) (parse data "&")))
20 (push (list 'control "ipset-control.lsp") c -1)
21 (push (list 'gap (int-parse (lookup "gap" v))) c -1)
22 (push (list 'clip (int-parse (lookup "clip" v))) c -1)
25 (mode-parse (lookup (string "mode" i) v))
26 (time-parse (lookup (string "start" i) v))
27 (time-parse (lookup (string "limit" i) v))
28 (time-parse (lookup (string "end" i) v))
30 (write-file "control.dat"
31 (append (format "; Updated at %s\n(" (date))
32 (join (map string c) "\n " true)
34 (setf UPDATE "* controls updated *")