;; applet.sss ;; (lambda (httpservlet) (define (read-all in) (define (drain in sbuffer) (let ((line (.readLine in))) (if (eq? line #null) (.toString sbuffer) (drain in (.append (.append sbuffer line) "\n"))))) (drain in (java.lang.StringBuffer.))) (define (doGet request response) (tryCatch (let () (define (getRealPath servlet File) (.getRealPath (.getServletContext (.getServletConfig servlet)) File)) (define filename (getRealPath httpservlet (.getServletPath request))) (define file (java.io.BufferedReader. (java.io.FileReader. filename))) (define title (.readLine file)) (define vendor (.readLine file)) (define homepage (.readLine file)) (define desc (.readLine file)) (define icon (.readLine file)) (define codestring (read-all file)) (define (html_quote x) (define s (java.util.StringTokenizer. x "<>&\"" #t)) (define (maketokens s) (if (not (.hasMoreTokens s)) () (let ((x (.nextToken s))) (cons (case x (("<") "<") ((">") ">") (("\"") """) (("&") "&") (else x)) (maketokens s))))) (apply string-append (maketokens s))) (tryCatch (begin (.setContentType response "text/html") (let* ((codebase {http://[(.getServerName request)]:[(.getServerPort request)]}) (href (.getRequestURI request))) (.println (.getWriter response) {