(in-package "bit-d-generate") (defvar *cmd-input-file*) (defvar *cmd-foreground-char* #\0) (defvar *cmd-background-char* #\1) (defvar *cmd-fgfg-color* "") (defvar *cmd-fgbg-color* "") (defvar *cmd-bgfg-color* "") (defvar *cmd-bgbg-color* "") (defvar *cmd-unset-color* "") (defun ansi-escape (stream arg colonp atsignp) (declare (ignore atsignp)) (format stream "~a[~:[38~;48~];5;~dm" #\escape colonp arg)) (defconstant +bdg-rules+ '(("-i" 1 (setq *cmd-input-file* 1)) ("-fgch" 1 (setq *cmd-foreground-char* (char 1 0))) ("-bgch" 1 (setq *cmd-background-char* (char 1 0))) ("-fgfg" 1 (setq *cmd-fgfg-color* (format nil "~/bdg::ansi-escape/" (parse-integer 1)))) ("-fgbg" 1 (setq *cmd-fgbg-color* (format nil "~:/bdg::ansi-escape/" (parse-integer 1)))) ("-bgfg" 1 (setq *cmd-bgfg-color* (format nil "~/bdg::ansi-escape/" (parse-integer 1)))) ("-bgbg" 1 (setq *cmd-bgbg-color* (format nil "~:/bdg::ansi-escape/" (parse-integer 1)))))) #| Jammed the pbm file format. Reading is slow. Header lines (including space/newline) is all ascii P4 16 2 11001100100011101100110010001110 The 1s and 0s are bits. Junk at the end to make it a multiple of 8. It's like this: #!/bin/sh rm -f my.pbm out.png ecl <