#!/bin/sh : ; exec klone $0 "$@" ; The above line finds the klone executable in the $PATH ;;(kdb t) (setq args (getopts "USAGE: xmlpp [options] [xml_file] pretty-prints the XML file or stdin on stdout" ("-t" N indent-by "indents one level by N spaces (default: 2)") ("-p" tag preserved-tags "do not reindent these tags, eg: -t pre -t PRE" :multiple t ) ("-w" width width "try to wrap at column width (default to 78)") ("-iso" () iso "force encoding to be ISO-8859-1 (otherwise keep the same)") ("-utf8" () utf8 "force encoding to be UTF-8 (otherwise keep the same)") ("-kxf" () kxf-output "outputs in KXF (Koala XML Form)") ("-nh" () noheader "do not print the XML header PI") )) (if args (setq in (open (0 args))) (setq in *standard-input*)) (setq out *standard-output*) (if width (setq sxp:width (Int width))) (setq indent-by (if indent-by (Int indent-by) 2)) (setq sxp:print-indent-string (make-string indent-by)) (defun main (&aux trees) (kxf:parse-hook t) (setq trees (sxp:parse in :keep-comments t :keep-PIs t :keep-DTD t :whitespace-keeping-tags preserved-tags :ignore-entities t :forest t )) (if kxf-output (kxf:print trees out :forest t) (sxp:print trees out :encoding (if iso "ISO-8859-1" utf8 "UTF-8" sxp:encoding) :ignore-entities t :standalone sxp:standalone :raw noheader :forest t )) ) (main) ;;; EMACS MODES ;;; Local Variables: *** ;;; mode:lisp *** ;;; End: ***