From bknr at bknr.net Wed Apr 1 13:48:57 2009 From: bknr at bknr.net (BKNR Commits) Date: Wed, 01 Apr 2009 15:48:57 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/cl-ftp/ Message-ID: Revision: 4345 Author: hans URL: http://bknr.net/trac/changeset/4345 add cl-ftp converted to use usocket A trunk/thirdparty/cl-ftp/ A trunk/thirdparty/cl-ftp/LICENSE A trunk/thirdparty/cl-ftp/api.lml A trunk/thirdparty/cl-ftp/ftp.asd A trunk/thirdparty/cl-ftp/ftp.lisp A trunk/thirdparty/cl-ftp/makedocs.sh A trunk/thirdparty/cl-ftp/simple-client.lisp Change set too large, please see URL above From bknr at bknr.net Wed Apr 1 15:21:11 2009 From: bknr at bknr.net (BKNR Commits) Date: Wed, 01 Apr 2009 17:21:11 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/cl-smtp/attachments.lisp Message-ID: Revision: 4346 Author: hans URL: http://bknr.net/trac/changeset/4346 Somewhat obscure fix for sending attachments in certain firewalled environment. Supplied by Russ Tyndall. U trunk/thirdparty/cl-smtp/attachments.lisp Modified: trunk/thirdparty/cl-smtp/attachments.lisp =================================================================== --- trunk/thirdparty/cl-smtp/attachments.lisp 2009-04-01 13:48:56 UTC (rev 4345) +++ trunk/thirdparty/cl-smtp/attachments.lisp 2009-04-01 15:21:11 UTC (rev 4346) @@ -76,7 +76,7 @@ :boundary boundary :content-type (format nil "~a;~%~tname=\"~a\"" (lookup-mime-type name) name) :content-transfer-encoding "base64" - :content-disposition (format nil "attachment; filename=\"~a\"" name))) + :content-disposition (format nil "inline; filename=\"~a\"" name))) (defun send-end-marker (sock boundary) ;; Note the -- at beginning and end of boundary is required @@ -91,12 +91,12 @@ (defun base64-encode-file (file-in sock &key (buffer-size 256) ;; in KB - (wrap-at-column 70)) + (wrap-at-column 72)) "Encodes the file contents given by file-in, which can be of any form appropriate to with-open-file, and write the base-64 encoded version to sock, which is a socket. Buffer-size, given in KB, controls how much of the file is processed and written to the socket at one time. A buffer-size of 0, processes the file all at once, regardless of its size. One will have to weigh the speed vs, memory consuption risks when chosing which way is best. -Wrap-at-column controls where the encode string is divided for line breaks." +Wrap-at-column controls where the encode string is divided for line breaks." (when (probe-file file-in) ;;-- open filein --------- (with-open-file (strm-in file-in From bknr at bknr.net Sat Apr 4 13:00:09 2009 From: bknr at bknr.net (BKNR Commits) Date: Sat, 04 Apr 2009 15:00:09 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/hunchentoot/mime-types.lisp Message-ID: Revision: 4347 Author: hans URL: http://bknr.net/trac/changeset/4347 add javascript mime type U trunk/thirdparty/hunchentoot/mime-types.lisp Modified: trunk/thirdparty/hunchentoot/mime-types.lisp =================================================================== --- trunk/thirdparty/hunchentoot/mime-types.lisp 2009-04-01 15:21:11 UTC (rev 4346) +++ trunk/thirdparty/hunchentoot/mime-types.lisp 2009-04-04 13:00:09 UTC (rev 4347) @@ -313,6 +313,7 @@ ("text/x-dsrc" "d") ("text/x-haskell" "hs") ("text/x-java" "java") + ("text/javascript" "js") ("text/x-literate-haskell" "lhs") ("text/x-moc" "moc") ("text/x-pascal" "pp" "as") From bknr at bknr.net Sat Apr 4 13:38:29 2009 From: bknr at bknr.net (BKNR Commits) Date: Sat, 04 Apr 2009 15:38:29 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/cxml/ Message-ID: Revision: 4348 Author: hans URL: http://bknr.net/trac/changeset/4348 update from upstream git U trunk/thirdparty/cxml/.git/FETCH_HEAD U trunk/thirdparty/cxml/.git/ORIG_HEAD U trunk/thirdparty/cxml/.git/index U trunk/thirdparty/cxml/.git/logs/HEAD U trunk/thirdparty/cxml/.git/logs/refs/heads/master U trunk/thirdparty/cxml/.git/logs/refs/remotes/origin/master A trunk/thirdparty/cxml/.git/objects/09/ A trunk/thirdparty/cxml/.git/objects/09/517509993736ba3df618d71959b129fabd6075 A trunk/thirdparty/cxml/.git/objects/0e/ A trunk/thirdparty/cxml/.git/objects/0e/1d625eba0b746f5c8edb037a8d4f51b2bba009 A trunk/thirdparty/cxml/.git/objects/20/ A trunk/thirdparty/cxml/.git/objects/20/e0fae0cc03d903e98b6226dc0e0ef82c8bb258 A trunk/thirdparty/cxml/.git/objects/22/ A trunk/thirdparty/cxml/.git/objects/22/9a2beb2c750b3d656a4f4bb450c78ebd2bd34b A trunk/thirdparty/cxml/.git/objects/2e/ A trunk/thirdparty/cxml/.git/objects/2e/f537eacdd6bc613f481b0a40b90684ee782584 A trunk/thirdparty/cxml/.git/objects/3a/ A trunk/thirdparty/cxml/.git/objects/3a/ada6fb894b77e8dce75b7aa7facfcdfd1f412f A trunk/thirdparty/cxml/.git/objects/40/ A trunk/thirdparty/cxml/.git/objects/40/1d6e4e5d82ef880a02aed1f9226aa6dbc565c8 A trunk/thirdparty/cxml/.git/objects/5d/ A trunk/thirdparty/cxml/.git/objects/5d/7f1c584022db2af2ec87e3e1bdb4a45e606ace A trunk/thirdparty/cxml/.git/objects/6e/ A trunk/thirdparty/cxml/.git/objects/6e/95da48180c8d7de9b573527d909414b46bb552 A trunk/thirdparty/cxml/.git/objects/70/ A trunk/thirdparty/cxml/.git/objects/70/e5c620b001c26a6b5fb62ba449a794478c04ca A trunk/thirdparty/cxml/.git/objects/8c/ A trunk/thirdparty/cxml/.git/objects/8c/04aad807abd6fe5b0c4c060236477effc8695e A trunk/thirdparty/cxml/.git/objects/90/ A trunk/thirdparty/cxml/.git/objects/90/563f795cad15cb6d0d77f0e9be14049456c2f0 A trunk/thirdparty/cxml/.git/objects/95/ A trunk/thirdparty/cxml/.git/objects/95/921fc068d651fd7f2c2415216554d0d1c40393 A trunk/thirdparty/cxml/.git/objects/95/da5ddd6dd84d329f333004fe2040872f6104e2 A trunk/thirdparty/cxml/.git/objects/97/ A trunk/thirdparty/cxml/.git/objects/97/65bce865038d0a68ee19c29b1f95d3d272cdfe A trunk/thirdparty/cxml/.git/objects/a0/ A trunk/thirdparty/cxml/.git/objects/a0/bf29fd0c9a68fc71c16403a7fdfe350fdfbe55 A trunk/thirdparty/cxml/.git/objects/bf/ A trunk/thirdparty/cxml/.git/objects/bf/341888d68485e47a5a87d4041bf75a1023cebd A trunk/thirdparty/cxml/.git/objects/ee/ A trunk/thirdparty/cxml/.git/objects/ee/d185b3481bfbc8e6add2509715dcc7c0f4edc0 U trunk/thirdparty/cxml/.git/refs/heads/master U trunk/thirdparty/cxml/.git/refs/remotes/origin/master U trunk/thirdparty/cxml/cxml.asd U trunk/thirdparty/cxml/dist.sh U trunk/thirdparty/cxml/doc/GNUmakefile U trunk/thirdparty/cxml/doc/html.xsl U trunk/thirdparty/cxml/doc/index.xml U trunk/thirdparty/cxml/klacks/klacks.lisp A trunk/thirdparty/cxml/xml/atdoc-configuration.lisp U trunk/thirdparty/cxml/xml/sax-proxy.lisp U trunk/thirdparty/cxml/xml/unparse.lisp U trunk/thirdparty/cxml/xml/xml-parse.lisp U trunk/thirdparty/cxml/xml/xmlns-normalizer.lisp Change set too large, please see URL above From bknr at bknr.net Sat Apr 4 13:41:02 2009 From: bknr at bknr.net (BKNR Commits) Date: Sat, 04 Apr 2009 15:41:02 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/xuriella/ Message-ID: Revision: 4349 Author: hans URL: http://bknr.net/trac/changeset/4349 update from upstream git U trunk/thirdparty/xuriella/.git/FETCH_HEAD U trunk/thirdparty/xuriella/.git/ORIG_HEAD U trunk/thirdparty/xuriella/.git/index U trunk/thirdparty/xuriella/.git/logs/HEAD U trunk/thirdparty/xuriella/.git/logs/refs/heads/master U trunk/thirdparty/xuriella/.git/logs/refs/remotes/origin/master A trunk/thirdparty/xuriella/.git/objects/15/ A trunk/thirdparty/xuriella/.git/objects/15/ade472c7aaadbb010c66962e85e36ab19fff23 A trunk/thirdparty/xuriella/.git/objects/17/ A trunk/thirdparty/xuriella/.git/objects/17/f00cd4cd8851d8aa7fbbc038b696386dc3d30d A trunk/thirdparty/xuriella/.git/objects/1d/ A trunk/thirdparty/xuriella/.git/objects/1d/af29b1b80518ade162c7be376201bc90572fec A trunk/thirdparty/xuriella/.git/objects/1e/ A trunk/thirdparty/xuriella/.git/objects/1e/11eeb9eb5c472a296d8f94aae5fa4397649ce7 A trunk/thirdparty/xuriella/.git/objects/21/ A trunk/thirdparty/xuriella/.git/objects/21/f6b78e0ab2cf1d93034aa1ac568ade7064731e A trunk/thirdparty/xuriella/.git/objects/37/ A trunk/thirdparty/xuriella/.git/objects/37/cf86ec39cd14b0288b864ca877d2d87226a3ef A trunk/thirdparty/xuriella/.git/objects/3f/ A trunk/thirdparty/xuriella/.git/objects/3f/404923fcab0bd0e962b172a3a957c1c3a929e1 A trunk/thirdparty/xuriella/.git/objects/70/ A trunk/thirdparty/xuriella/.git/objects/70/4bc110c3ff4548af7bd8f9f98ec5c37f1c2200 A trunk/thirdparty/xuriella/.git/objects/7b/ A trunk/thirdparty/xuriella/.git/objects/7b/aff2346b4bd3a2aead45b00df52ec48a55f918 A trunk/thirdparty/xuriella/.git/objects/8a/ A trunk/thirdparty/xuriella/.git/objects/8a/0e715d366444a5c8ceee6dea398965abcc6044 A trunk/thirdparty/xuriella/.git/objects/aa/ A trunk/thirdparty/xuriella/.git/objects/aa/53b080fb1296ac91877844f2ec7d90ede55f7b A trunk/thirdparty/xuriella/.git/objects/e1/ A trunk/thirdparty/xuriella/.git/objects/e1/b633898f10b4695fe9e47571e63edf6d95465f A trunk/thirdparty/xuriella/.git/objects/e5/ A trunk/thirdparty/xuriella/.git/objects/e5/c1bcbf175be0227438d19dae9f5b7c9f741a97 U trunk/thirdparty/xuriella/.git/refs/heads/master U trunk/thirdparty/xuriella/.git/refs/remotes/origin/master A trunk/thirdparty/xuriella/dist.sh U trunk/thirdparty/xuriella/doc/GNUmakefile _U trunk/thirdparty/xuriella/doc/atdoc/ A trunk/thirdparty/xuriella/doc/atdoc/index.html A trunk/thirdparty/xuriella/doc/example.xml U trunk/thirdparty/xuriella/doc/index.xml U trunk/thirdparty/xuriella/doc/index.xsl A trunk/thirdparty/xuriella/early-profile.lisp U trunk/thirdparty/xuriella/xslt.lisp U trunk/thirdparty/xuriella/xuriella.asd Change set too large, please see URL above From bknr at bknr.net Sat Apr 4 13:44:57 2009 From: bknr at bknr.net (BKNR Commits) Date: Sat, 04 Apr 2009 15:44:57 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/cxml-stp/ Message-ID: Revision: 4350 Author: hans URL: http://bknr.net/trac/changeset/4350 update from upstream git U trunk/thirdparty/cxml-stp/.git/FETCH_HEAD U trunk/thirdparty/cxml-stp/.git/index U trunk/thirdparty/cxml-stp/.git/logs/HEAD U trunk/thirdparty/cxml-stp/.git/logs/refs/heads/master U trunk/thirdparty/cxml-stp/.git/logs/refs/remotes/origin/master A trunk/thirdparty/cxml-stp/.git/objects/37/ A trunk/thirdparty/cxml-stp/.git/objects/37/3eeb4750a7448c425aa08a4123dccc8c26b6a7 A trunk/thirdparty/cxml-stp/.git/objects/44/ A trunk/thirdparty/cxml-stp/.git/objects/44/c2d7ea183bb7746c8dec78c7469167b0c21e29 A trunk/thirdparty/cxml-stp/.git/objects/84/4c2543657b4273a0b2ec82264d5f2d6bc0def4 A trunk/thirdparty/cxml-stp/.git/objects/90/e7c128acd839cf07eba29860e7196f6f0b684d A trunk/thirdparty/cxml-stp/.git/objects/a1/ A trunk/thirdparty/cxml-stp/.git/objects/a1/245567613230a4a6328d92e29a6136f71b92dc A trunk/thirdparty/cxml-stp/.git/objects/c0/e7ef595c9832aa8c196f312f87f939396ddb34 A trunk/thirdparty/cxml-stp/.git/objects/fd/ A trunk/thirdparty/cxml-stp/.git/objects/fd/2d7acb25b02c60e388998db7ff46c88b872c3c U trunk/thirdparty/cxml-stp/.git/refs/heads/master U trunk/thirdparty/cxml-stp/.git/refs/remotes/origin/master D trunk/thirdparty/cxml-stp/build/atdoc.lisp D trunk/thirdparty/cxml-stp/build/dist.sh A trunk/thirdparty/cxml-stp/dist.lisp A trunk/thirdparty/cxml-stp/dist.sh A trunk/thirdparty/cxml-stp/index.html U trunk/thirdparty/cxml-stp/node.lisp Modified: trunk/thirdparty/cxml-stp/.git/FETCH_HEAD =================================================================== --- trunk/thirdparty/cxml-stp/.git/FETCH_HEAD 2009-04-04 13:41:01 UTC (rev 4349) +++ trunk/thirdparty/cxml-stp/.git/FETCH_HEAD 2009-04-04 13:44:57 UTC (rev 4350) @@ -1 +1 @@ -3011465d3c18f9a4a2d8c6fc0412a7c0c64e13e9 branch 'master' of http://www.lichteblau.com/git/cxml-stp +44c2d7ea183bb7746c8dec78c7469167b0c21e29 branch 'master' of http://www.lichteblau.com/git/cxml-stp Modified: trunk/thirdparty/cxml-stp/.git/index =================================================================== (Binary files differ) Modified: trunk/thirdparty/cxml-stp/.git/logs/HEAD =================================================================== --- trunk/thirdparty/cxml-stp/.git/logs/HEAD 2009-04-04 13:41:01 UTC (rev 4349) +++ trunk/thirdparty/cxml-stp/.git/logs/HEAD 2009-04-04 13:44:57 UTC (rev 4350) @@ -1 +1,2 @@ 0000000000000000000000000000000000000000 3011465d3c18f9a4a2d8c6fc0412a7c0c64e13e9 Hans Huebner 1210314287 +0000 +3011465d3c18f9a4a2d8c6fc0412a7c0c64e13e9 44c2d7ea183bb7746c8dec78c7469167b0c21e29 Hans H??bner 1238852654 +0200 pull : Fast forward Modified: trunk/thirdparty/cxml-stp/.git/logs/refs/heads/master =================================================================== --- trunk/thirdparty/cxml-stp/.git/logs/refs/heads/master 2009-04-04 13:41:01 UTC (rev 4349) +++ trunk/thirdparty/cxml-stp/.git/logs/refs/heads/master 2009-04-04 13:44:57 UTC (rev 4350) @@ -1 +1,2 @@ 0000000000000000000000000000000000000000 3011465d3c18f9a4a2d8c6fc0412a7c0c64e13e9 Hans Huebner 1210314287 +0000 +3011465d3c18f9a4a2d8c6fc0412a7c0c64e13e9 44c2d7ea183bb7746c8dec78c7469167b0c21e29 Hans H??bner 1238852654 +0200 pull : Fast forward Modified: trunk/thirdparty/cxml-stp/.git/logs/refs/remotes/origin/master =================================================================== --- trunk/thirdparty/cxml-stp/.git/logs/refs/remotes/origin/master 2009-04-04 13:41:01 UTC (rev 4349) +++ trunk/thirdparty/cxml-stp/.git/logs/refs/remotes/origin/master 2009-04-04 13:44:57 UTC (rev 4350) @@ -1 +1,2 @@ 0000000000000000000000000000000000000000 3011465d3c18f9a4a2d8c6fc0412a7c0c64e13e9 Hans Huebner 1210314287 +0000 fetch from http://www.lichteblau.com/git/cxml-stp.git +3011465d3c18f9a4a2d8c6fc0412a7c0c64e13e9 44c2d7ea183bb7746c8dec78c7469167b0c21e29 Hans H??bner 1238852654 +0200 pull : fast forward Added: trunk/thirdparty/cxml-stp/.git/objects/37/3eeb4750a7448c425aa08a4123dccc8c26b6a7 =================================================================== --- trunk/thirdparty/cxml-stp/.git/objects/37/3eeb4750a7448c425aa08a4123dccc8c26b6a7 (rev 0) +++ trunk/thirdparty/cxml-stp/.git/objects/37/3eeb4750a7448c425aa08a4123dccc8c26b6a7 2009-04-04 13:44:57 UTC (rev 4350) @@ -0,0 +1,2 @@ +x?}???0 ???V??C?@Ly?q?$????1D'6??????=?/?C?5?? ?(??E????G + + + + + cxml-stp + + + + + +
+

+ A data structure for well-formed XML documents, designed for Common + Lisp. +

+ +

About

+ +

+ cxml-stp is an alternative to the + W3C's DOM, + which cxml also implements. It was written + by David Lichteblau as an + add-on library for + Closure XML and is + available under an X11-style license. +

+

+ Please send bug reports + to + cxml-devel at common-lisp.net + (list information). +

+

+ Acknowledgements: + cxml-stp is inspired by XOM. +

+

Download

+

+ Download a + tarball. +

+ +

Installation

+

+ cxml-stp needs + Closure XML, + Alexandria, + and Plexippus + XPath. +

+

+ ASDF is used for + compilation. Register the .asd file, e.g. by symlinking it, + then compile cxml-stp using asdf:operate. +

+
$ ln -sf `pwd`/cxml-stp.asd /path/to/your/registry/
+* (asdf:operate 'asdf:load-op :cxml-stp)
+

+ Implementation-specific notes: + At this point, cxml-stp is written to work with Lisp strings + (as opposed to runes and rods), and is meant to be used on + Lisp implementations with Unicode support. +

+ +

Documentation

+

+ ??? Tutorial +

+

+ ??? Code snippets + from the tutorial collected on one page +

+

+ ??? API documentation +

+

+ There is also a rough "STP for DOM + users" comparison which should be + useful if you have a specific DOM function in mind and are looking + for STP's equivalent. +

+ +

Recent changes

+

2008-11-30

+
    +
  • + XPath support. (Thanks to Ivan Shvedunov for his contributions.) +
  • +
  • + Use 21 bit characters on Lisps offering them. +
  • +
  • + New function NUMBER-OF-CHILDREN. +
  • +
  • + Fixed FILTER-CHILDREN to return a list, not a vector. +
  • +
  • + Shortcut syntax using symbol in WITH-ATTRIBUTE (thanks to Cyrus Harmon). +
  • +
  • + Minor changes: Disabled uri syntax warnings. Represent uris as + strings, not puri objects. +
  • +
+

2007-10-21

+
    +
  • + New function FIND-RECURSIVELY-IF. +
  • +
  • + Minor changes: Update to current CXML's SAX builders. +
  • +
+

2007-08-05

+
    +
  • + Initial public release. +
  • +
+
+ + Modified: trunk/thirdparty/cxml-stp/node.lisp =================================================================== --- trunk/thirdparty/cxml-stp/node.lisp 2009-04-04 13:41:01 UTC (rev 4349) +++ trunk/thirdparty/cxml-stp/node.lisp 2009-04-04 13:44:57 UTC (rev 4350) @@ -262,7 +262,7 @@ (defun number-of-children (parent) "@arg[parent]{a @class{node}} @return{the number of child nodes} - Returns the number of {parent}'s child nodes. + Returns the number of @code{parent}'s child nodes. @see{count-children}" (length (%children parent))) From bknr at bknr.net Sat Apr 4 13:47:56 2009 From: bknr at bknr.net (BKNR Commits) Date: Sat, 04 Apr 2009 15:47:56 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/plexippus-xpath/ Message-ID: Revision: 4351 Author: hans URL: http://bknr.net/trac/changeset/4351 update from upstream U trunk/thirdparty/plexippus-xpath/_darcs/inventory A trunk/thirdparty/plexippus-xpath/_darcs/patches/20080516145328-3bbdd-45334d1ba300293b9a7377fd0ebabaee1019e7e5.gz A trunk/thirdparty/plexippus-xpath/_darcs/patches/20080524195035-3bbdd-91b3998d36dae34b4ad9a6a0b8f122568ecf6b4f.gz A trunk/thirdparty/plexippus-xpath/_darcs/patches/20080524195516-3bbdd-d805bacb774cb34f00f9d9acf36eb0d402d1583f.gz A trunk/thirdparty/plexippus-xpath/_darcs/patches/20081207095242-3bbdd-882a689b51a77206ea6f5876bfe808fcf2a06b63.gz A trunk/thirdparty/plexippus-xpath/_darcs/patches/20081207095320-3bbdd-c484a64f3867ff74d8287d0bb3e354b1a29d7006.gz A trunk/thirdparty/plexippus-xpath/_darcs/patches/20081207095347-3bbdd-bc27636f0f130150de1c0602c8c1c9c573a4c903.gz A trunk/thirdparty/plexippus-xpath/_darcs/patches/20081207100649-3bbdd-9264d883c05551a27a04d2d69bf29dad24100d70.gz A trunk/thirdparty/plexippus-xpath/_darcs/patches/20081207102300-3bbdd-da0c2ba19327494ef4164be3ce837bc72d86afbd.gz A trunk/thirdparty/plexippus-xpath/_darcs/patches/20081207102324-3bbdd-27dabf401680462bfaea056ab78863f3f14d0f4f.gz A trunk/thirdparty/plexippus-xpath/_darcs/patches/20081207102414-3bbdd-1616788ba0855ba89cb2713181123c26a4134837.gz A trunk/thirdparty/plexippus-xpath/_darcs/patches/20081207103012-3bbdd-c5408e734b5d69c631e8451f4e0630752d0764fe.gz A trunk/thirdparty/plexippus-xpath/_darcs/patches/pending U trunk/thirdparty/plexippus-xpath/_darcs/pristine/api.lisp A trunk/thirdparty/plexippus-xpath/_darcs/pristine/dist.lisp A trunk/thirdparty/plexippus-xpath/_darcs/pristine/dist.sh U trunk/thirdparty/plexippus-xpath/_darcs/pristine/doc/GNUmakefile U trunk/thirdparty/plexippus-xpath/_darcs/pristine/doc/atdoc.lisp A trunk/thirdparty/plexippus-xpath/_darcs/pristine/doc/examples.xml U trunk/thirdparty/plexippus-xpath/_darcs/pristine/doc/index.css U trunk/thirdparty/plexippus-xpath/_darcs/pristine/doc/index.xml U trunk/thirdparty/plexippus-xpath/_darcs/pristine/doc/index.xsl U trunk/thirdparty/plexippus-xpath/_darcs/pristine/doc/installation.xml U trunk/thirdparty/plexippus-xpath/_darcs/pristine/package.lisp U trunk/thirdparty/plexippus-xpath/_darcs/pristine/patterns.lisp U trunk/thirdparty/plexippus-xpath/_darcs/pristine/pipes.lisp U trunk/thirdparty/plexippus-xpath/_darcs/pristine/plx.lisp A trunk/thirdparty/plexippus-xpath/_darcs/pristine/profile.lisp U trunk/thirdparty/plexippus-xpath/_darcs/pristine/test.lisp U trunk/thirdparty/plexippus-xpath/_darcs/pristine/types.lisp U trunk/thirdparty/plexippus-xpath/_darcs/pristine/xpath-test.lisp U trunk/thirdparty/plexippus-xpath/_darcs/pristine/xpath.asd U trunk/thirdparty/plexippus-xpath/api.lisp A trunk/thirdparty/plexippus-xpath/dist.lisp A trunk/thirdparty/plexippus-xpath/dist.sh U trunk/thirdparty/plexippus-xpath/doc/GNUmakefile U trunk/thirdparty/plexippus-xpath/doc/atdoc.lisp A trunk/thirdparty/plexippus-xpath/doc/examples.xml U trunk/thirdparty/plexippus-xpath/doc/index.css U trunk/thirdparty/plexippus-xpath/doc/index.xml U trunk/thirdparty/plexippus-xpath/doc/index.xsl U trunk/thirdparty/plexippus-xpath/doc/installation.xml U trunk/thirdparty/plexippus-xpath/package.lisp U trunk/thirdparty/plexippus-xpath/patterns.lisp U trunk/thirdparty/plexippus-xpath/pipes.lisp U trunk/thirdparty/plexippus-xpath/plx.lisp A trunk/thirdparty/plexippus-xpath/profile.lisp U trunk/thirdparty/plexippus-xpath/test.lisp U trunk/thirdparty/plexippus-xpath/types.lisp U trunk/thirdparty/plexippus-xpath/xpath-test.lisp U trunk/thirdparty/plexippus-xpath/xpath.asd Change set too large, please see URL above From bknr at bknr.net Sat Apr 4 13:49:29 2009 From: bknr at bknr.net (BKNR Commits) Date: Sat, 04 Apr 2009 15:49:29 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/chtml/ Message-ID: Revision: 4352 Author: hans URL: http://bknr.net/trac/changeset/4352 import chtml from git A trunk/thirdparty/chtml/ A trunk/thirdparty/chtml/.git/ A trunk/thirdparty/chtml/.git/HEAD A trunk/thirdparty/chtml/.git/config A trunk/thirdparty/chtml/.git/description A trunk/thirdparty/chtml/.git/hooks/ A trunk/thirdparty/chtml/.git/hooks/applypatch-msg A trunk/thirdparty/chtml/.git/hooks/commit-msg A trunk/thirdparty/chtml/.git/hooks/post-commit A trunk/thirdparty/chtml/.git/hooks/post-receive A trunk/thirdparty/chtml/.git/hooks/post-update A trunk/thirdparty/chtml/.git/hooks/pre-applypatch A trunk/thirdparty/chtml/.git/hooks/pre-commit A trunk/thirdparty/chtml/.git/hooks/pre-rebase A trunk/thirdparty/chtml/.git/hooks/update A trunk/thirdparty/chtml/.git/index A trunk/thirdparty/chtml/.git/info/ A trunk/thirdparty/chtml/.git/info/exclude A trunk/thirdparty/chtml/.git/logs/ A trunk/thirdparty/chtml/.git/logs/HEAD A trunk/thirdparty/chtml/.git/logs/refs/ A trunk/thirdparty/chtml/.git/logs/refs/heads/ A trunk/thirdparty/chtml/.git/logs/refs/heads/master A trunk/thirdparty/chtml/.git/logs/refs/remotes/ A trunk/thirdparty/chtml/.git/logs/refs/remotes/origin/ A trunk/thirdparty/chtml/.git/logs/refs/remotes/origin/master A trunk/thirdparty/chtml/.git/objects/ A trunk/thirdparty/chtml/.git/objects/info/ A trunk/thirdparty/chtml/.git/objects/pack/ A trunk/thirdparty/chtml/.git/objects/pack/pack-4ea6b80d422d8d5b95622f697a9b25b66ff59f27.idx A trunk/thirdparty/chtml/.git/objects/pack/pack-4ea6b80d422d8d5b95622f697a9b25b66ff59f27.keep A trunk/thirdparty/chtml/.git/objects/pack/pack-4ea6b80d422d8d5b95622f697a9b25b66ff59f27.pack A trunk/thirdparty/chtml/.git/refs/ A trunk/thirdparty/chtml/.git/refs/heads/ A trunk/thirdparty/chtml/.git/refs/heads/master A trunk/thirdparty/chtml/.git/refs/remotes/ A trunk/thirdparty/chtml/.git/refs/remotes/origin/ A trunk/thirdparty/chtml/.git/refs/remotes/origin/HEAD A trunk/thirdparty/chtml/.git/refs/remotes/origin/master A trunk/thirdparty/chtml/.git/refs/tags/ A trunk/thirdparty/chtml/.git/refs/tags/start A trunk/thirdparty/chtml/README A trunk/thirdparty/chtml/closure-html.asd A trunk/thirdparty/chtml/dist.sh A trunk/thirdparty/chtml/doc/ A trunk/thirdparty/chtml/doc/GNUmakefile A trunk/thirdparty/chtml/doc/atdoc/ A trunk/thirdparty/chtml/doc/atdoc/.keep A trunk/thirdparty/chtml/doc/atdoc.lisp A trunk/thirdparty/chtml/doc/examples.xml A trunk/thirdparty/chtml/doc/hax.xml A trunk/thirdparty/chtml/doc/index.css A trunk/thirdparty/chtml/doc/index.xml A trunk/thirdparty/chtml/doc/index.xsl A trunk/thirdparty/chtml/doc/installation.xml A trunk/thirdparty/chtml/resources/ A trunk/thirdparty/chtml/resources/dtd/ A trunk/thirdparty/chtml/resources/dtd/DTD-HTML-4.0 A trunk/thirdparty/chtml/resources/dtd/DTD-HTML-4.0-Frameset A trunk/thirdparty/chtml/resources/dtd/DTD-HTML-4.0-Transitional A trunk/thirdparty/chtml/resources/dtd/Entities-Latin1 A trunk/thirdparty/chtml/resources/dtd/Entities-Special A trunk/thirdparty/chtml/resources/dtd/Entities-Symbols A trunk/thirdparty/chtml/resources/dtd/HTML-3.0 A trunk/thirdparty/chtml/resources/dtd/NETSCAPE-Bookmark-file-1 A trunk/thirdparty/chtml/resources/dtd/catalog A trunk/thirdparty/chtml/src/ A trunk/thirdparty/chtml/src/defpack.lisp A trunk/thirdparty/chtml/src/glisp/ A trunk/thirdparty/chtml/src/glisp/util.lisp A trunk/thirdparty/chtml/src/net/ A trunk/thirdparty/chtml/src/net/mime.lisp A trunk/thirdparty/chtml/src/parse/ A trunk/thirdparty/chtml/src/parse/documentation.lisp A trunk/thirdparty/chtml/src/parse/html-parser.lisp A trunk/thirdparty/chtml/src/parse/lhtml.lisp A trunk/thirdparty/chtml/src/parse/pt.lisp A trunk/thirdparty/chtml/src/parse/sgml-dtd.lisp A trunk/thirdparty/chtml/src/parse/sgml-parse.lisp A trunk/thirdparty/chtml/src/parse/unparse.lisp A trunk/thirdparty/chtml/src/test/ A trunk/thirdparty/chtml/src/test/test.lisp A trunk/thirdparty/chtml/src/util/ A trunk/thirdparty/chtml/src/util/clex.lisp A trunk/thirdparty/chtml/src/util/lalr.lisp Change set too large, please see URL above From bknr at bknr.net Mon Apr 6 06:03:29 2009 From: bknr at bknr.net (BKNR Commits) Date: Mon, 06 Apr 2009 08:03:29 +0200 Subject: [bknr-cvs] hans changed trunk/projects/symbolics-keyboard/ Message-ID: Revision: 4353 Author: hans URL: http://bknr.net/trac/changeset/4353 Add first version of Teensy based Symbolics keyboard adapter firmware. U trunk/projects/symbolics-keyboard/make-keymap.lisp A trunk/projects/symbolics-keyboard/teensy-firmware/ A trunk/projects/symbolics-keyboard/teensy-firmware/Makefile A trunk/projects/symbolics-keyboard/teensy-firmware/debug.h A trunk/projects/symbolics-keyboard/teensy-firmware/keymap.inc A trunk/projects/symbolics-keyboard/teensy-firmware/print.c A trunk/projects/symbolics-keyboard/teensy-firmware/print.h A trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.c A trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.txt A trunk/projects/symbolics-keyboard/teensy-firmware/symbolics_manuel.c A trunk/projects/symbolics-keyboard/teensy-firmware/symbolics_manuel.h A trunk/projects/symbolics-keyboard/teensy-firmware/usb_debug_only.c A trunk/projects/symbolics-keyboard/teensy-firmware/usb_debug_only.h A trunk/projects/symbolics-keyboard/teensy-firmware/usb_keyboard.c A trunk/projects/symbolics-keyboard/teensy-firmware/usb_keyboard.h Change set too large, please see URL above From bknr at bknr.net Mon Apr 6 06:06:39 2009 From: bknr at bknr.net (BKNR Commits) Date: Mon, 06 Apr 2009 08:06:39 +0200 Subject: [bknr-cvs] hans changed trunk/projects/symbolics-keyboard/teensy-firmware/ Message-ID: Revision: 4354 Author: hans URL: http://bknr.net/trac/changeset/4354 ignore compilation output _U trunk/projects/symbolics-keyboard/teensy-firmware/ Property changes on: trunk/projects/symbolics-keyboard/teensy-firmware ___________________________________________________________________ Name: svn:ignore + symbolics.map .dep symbolics.hex symbolics.lss symbolics.lst symbolics.elf usb_keyboard.lst symbolics.sym symbolics.eep From bknr at bknr.net Mon Apr 6 06:07:30 2009 From: bknr at bknr.net (BKNR Commits) Date: Mon, 06 Apr 2009 08:07:30 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/cl-pdf/ttu-font.lisp Message-ID: Revision: 4355 Author: hans URL: http://bknr.net/trac/changeset/4355 clisp compilation fix U trunk/thirdparty/cl-pdf/ttu-font.lisp Modified: trunk/thirdparty/cl-pdf/ttu-font.lisp =================================================================== --- trunk/thirdparty/cl-pdf/ttu-font.lisp 2009-04-06 06:06:39 UTC (rev 4354) +++ trunk/thirdparty/cl-pdf/ttu-font.lisp 2009-04-06 06:07:30 UTC (rev 4355) @@ -12,7 +12,7 @@ (defclass ttu-font-metrics (font-metrics) ((c2g :accessor c2g - :initform (make-array 131072 :element-type 'character :initial-element #\Nul)) + :initform (make-array 131072 :element-type 'character :initial-element (code-char 0))) (cid-widths :accessor cid-widths :initform (make-array 0 :adjustable t :fill-pointer 0)) (pdf-widths :accessor pdf-widths :initform nil) (binary-data :accessor binary-data :initform nil) From bknr at bknr.net Mon Apr 6 06:17:07 2009 From: bknr at bknr.net (BKNR Commits) Date: Mon, 06 Apr 2009 08:17:07 +0200 Subject: [bknr-cvs] hans changed trunk/projects/symbolics-keyboard/ Message-ID: Revision: 4356 Author: hans URL: http://bknr.net/trac/changeset/4356 fix f-mode map generation U trunk/projects/symbolics-keyboard/make-keymap.lisp U trunk/projects/symbolics-keyboard/teensy-firmware/keymap.inc Modified: trunk/projects/symbolics-keyboard/make-keymap.lisp =================================================================== --- trunk/projects/symbolics-keyboard/make-keymap.lisp 2009-04-06 06:07:30 UTC (rev 4355) +++ trunk/projects/symbolics-keyboard/make-keymap.lisp 2009-04-06 06:17:07 UTC (rev 4356) @@ -572,12 +572,13 @@ (usb-keycode (map-symbolics->usb symbolics-keyname)) (f-mode-usb-keycode (map-symbolics->usb symbolics-keyname t))) (cond - (usb-keycode - (setf unmapped-usb-keys (remove usb-keycode unmapped-usb-keys :key #'cadr :test #'equal)) - (define-key/usb symbolics-scancode usb-keycode normal-map)) - (f-mode-usb-keycode - (setf unmapped-usb-keys (remove f-mode-usb-keycode unmapped-usb-keys :key #'cadr :test #'equal)) - (define-key/usb symbolics-scancode f-mode-usb-keycode f-mode-map)) + ((or usb-keycode f-mode-usb-keycode) + (when usb-keycode + (setf unmapped-usb-keys (remove usb-keycode unmapped-usb-keys :key #'cadr :test #'equal)) + (define-key/usb symbolics-scancode usb-keycode normal-map)) + (when f-mode-usb-keycode + (setf unmapped-usb-keys (remove f-mode-usb-keycode unmapped-usb-keys :key #'cadr :test #'equal)) + (define-key/usb symbolics-scancode f-mode-usb-keycode f-mode-map))) (t (push symbolics-keyname unmapped-symbolics-keys))))) (with-open-file (*standard-output* filename :direction :output :if-exists :supersede) Modified: trunk/projects/symbolics-keyboard/teensy-firmware/keymap.inc =================================================================== --- trunk/projects/symbolics-keyboard/teensy-firmware/keymap.inc 2009-04-06 06:07:30 UTC (rev 4355) +++ trunk/projects/symbolics-keyboard/teensy-firmware/keymap.inc 2009-04-06 06:17:07 UTC (rev 4356) @@ -130,37 +130,124 @@ }; const uint8_t keymap_f[128] PROGMEM = { 0, + 0x80 | NUM_KEY_LEFT_GUI, + KEY_CAPS_LOCK, + KEY_F8, + 0x80 | NUM_KEY_LEFT_ALT, + 0x80 | NUM_KEY_RIGHT_CTRL, + KEY_DOWN, + KEY_PAGE_DOWN, 0, 0, 0, 0, + KEY_F1, + KEYPAD_8, + KEY_F7, + 0x80 | NUM_KEY_LEFT_CTRL, + KEY_SPACE, + KEY_LEFT, + KEY_RIGHT, + KEY_END, 0, 0, 0, + KEY_Z, + KEY_C, + KEY_B, + KEY_M, + KEY_PERIOD, + 0x80 | NUM_KEY_RIGHT_SHIFT, + KEY_PAGE_UP, + KEY_F6, 0, 0, 0, + 0x80 | NUM_KEY_LEFT_SHIFT, + KEY_X, + KEY_V, + KEY_N, + KEY_COMMA, + KEY_SLASH, + KEY_UP, + KEY_F12, 0, 0, 0, + KEY_DELETE, + KEY_S, + KEY_F, + KEY_H, + KEY_K, + KEY_SEMICOLON, + KEY_ENTER, + KEY_HOME, 0, 0, 0, + KEY_F2, + KEY_A, + KEY_D, + KEY_G, + KEY_J, + KEY_L, + KEY_QUOTE, + KEYPAD_7, 0, 0, 0, + KEY_F3, + KEY_W, + KEY_R, + KEY_Y, + KEY_I, + KEY_P, + KEY_RIGHT_BRACE, + KEYPAD_6, 0, 0, 0, + KEY_TAB, + KEY_Q, + KEY_E, + KEY_T, + KEY_U, + KEY_O, + KEY_LEFT_BRACE, + KEY_BACKSPACE, 0, 0, 0, + KEYPAD_ASTERIX, + KEY_2, + KEY_4, + KEY_6, + KEY_8, + KEY_0, + KEY_EQUAL, + KEY_BACKSLASH, 0, 0, 0, + KEY_1, + KEY_3, + KEY_5, + KEY_7, + KEY_9, + KEY_MINUS, + KEY_TILDE, + KEYPAD_MINUS, 0, 0, 0, + KEY_ESC, + KEYPAD_0, + KEYPAD_4, + KEYPAD_3, + KEYPAD_2, + KEY_F10, + KEY_F4, + KEY_F5, 0, 0, 0, @@ -169,92 +256,5 @@ 0, 0, 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, 0 }; From bknr at bknr.net Mon Apr 6 16:20:07 2009 From: bknr at bknr.net (BKNR Commits) Date: Mon, 06 Apr 2009 18:20:07 +0200 Subject: [bknr-cvs] hans changed trunk/projects/symbolics-keyboard/ Message-ID: Revision: 4357 Author: hans URL: http://bknr.net/trac/changeset/4357 implement local and f-mode U trunk/projects/symbolics-keyboard/make-keymap.lisp U trunk/projects/symbolics-keyboard/teensy-firmware/keymap.inc U trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.c Change set too large, please see URL above From bknr at bknr.net Mon Apr 6 18:55:39 2009 From: bknr at bknr.net (BKNR Commits) Date: Mon, 06 Apr 2009 20:55:39 +0200 Subject: [bknr-cvs] hans changed trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.c Message-ID: Revision: 4358 Author: hans URL: http://bknr.net/trac/changeset/4358 Make f-mode work U trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.c Modified: trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.c =================================================================== --- trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.c 2009-04-06 16:20:07 UTC (rev 4357) +++ trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.c 2009-04-06 18:55:39 UTC (rev 4358) @@ -119,68 +119,70 @@ void send_keys(uint8_t* state) { - uint8_t key_index = 0; - uint8_t map_index = 0; uint8_t local = 0; const uint8_t* keymap = keymap_normal; retry: // If we detect that we are in f-mode, we need to translate the // pressed keys with the f-mode translation table. - keyboard_modifier_keys = 0; - memset(keyboard_keys, 0, sizeof keyboard_keys); + { + uint8_t key_index = 0; + uint8_t map_index = 0; + keyboard_modifier_keys = 0; + memset(keyboard_keys, 0, sizeof keyboard_keys); - for (int i = 0; i < 16; i++) { - uint8_t buf = state[i]; - for (int j = 0; j < 8; j++) { - uint8_t mapped = pgm_read_byte(&keymap[map_index++]); - uint8_t pressed = (buf & 1); + for (int i = 0; i < 16; i++) { + uint8_t buf = state[i]; + for (int j = 0; j < 8; j++) { + uint8_t mapped = pgm_read_byte(&keymap[map_index++]); + uint8_t pressed = (buf & 1); #if defined(DEBUG) - if (pressed) { - print("key "); - phex(map_index - 1); - print(" pressed, mapped to "); - phex(mapped); - print("\n"); - } + if (pressed) { + print("key "); + phex(map_index - 1); + print(" pressed, mapped to "); + phex(mapped); + print("\n"); + } #endif - if (pressed && mapped) { - if (mapped & 0x80) { - int num = mapped & 0x7F; - switch (num) { + if (pressed && mapped) { + if (mapped & 0x80) { + int num = mapped & 0x7F; + switch (num) { - case NUM_KEY_LEFT_CTRL: - case NUM_KEY_LEFT_SHIFT: - case NUM_KEY_LEFT_ALT: - case NUM_KEY_LEFT_GUI: - case NUM_KEY_RIGHT_CTRL: - case NUM_KEY_RIGHT_SHIFT: - case NUM_KEY_RIGHT_ALT: - case NUM_KEY_RIGHT_GUI: - keyboard_modifier_keys |= 1 << num; - break; + case NUM_KEY_LEFT_CTRL: + case NUM_KEY_LEFT_SHIFT: + case NUM_KEY_LEFT_ALT: + case NUM_KEY_LEFT_GUI: + case NUM_KEY_RIGHT_CTRL: + case NUM_KEY_RIGHT_SHIFT: + case NUM_KEY_RIGHT_ALT: + case NUM_KEY_RIGHT_GUI: + keyboard_modifier_keys |= 1 << num; + break; - case NUM_KEY_LOCAL: - local = 1; - break; + case NUM_KEY_LOCAL: + local = 1; + break; - case NUM_KEY_F_MODE: - if (keymap == keymap_normal) { - keymap = keymap_f_mode; - goto retry; + case NUM_KEY_F_MODE: + if (keymap == keymap_normal) { + keymap = keymap_f_mode; + goto retry; + } + break; } - break; + } else { + if (key_index < sizeof keyboard_keys) { + keyboard_keys[key_index++] = mapped; + } } - } else { - if (key_index < sizeof keyboard_keys) { - keyboard_keys[key_index++] = mapped; - } } + buf >>= 1; } - buf >>= 1; } } - + if (local) { handle_local_keys(); } else { From bknr at bknr.net Tue Apr 7 05:51:19 2009 From: bknr at bknr.net (BKNR Commits) Date: Tue, 07 Apr 2009 07:51:19 +0200 Subject: [bknr-cvs] hans changed trunk/projects/symbolics-keyboard/ Message-ID: Revision: 4359 Author: hans URL: http://bknr.net/trac/changeset/4359 Implement CAPS LOCK properly. U trunk/projects/symbolics-keyboard/make-keymap.lisp _U trunk/projects/symbolics-keyboard/teensy-firmware/ U trunk/projects/symbolics-keyboard/teensy-firmware/keymap.inc U trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.c A trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.hex Change set too large, please see URL above From bknr at bknr.net Tue Apr 7 06:03:07 2009 From: bknr at bknr.net (BKNR Commits) Date: Tue, 07 Apr 2009 08:03:07 +0200 Subject: [bknr-cvs] hans changed trunk/projects/symbolics-keyboard/teensy-firmware/symbolics. Message-ID: Revision: 4360 Author: hans URL: http://bknr.net/trac/changeset/4360 add version report local key UU trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.c U trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.hex Modified: trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.c =================================================================== --- trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.c 2009-04-07 05:51:18 UTC (rev 4359) +++ trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.c 2009-04-07 06:03:07 UTC (rev 4360) @@ -98,7 +98,26 @@ asm("jmp 0x3000"); } +const char revision[] PROGMEM = "$Revision$"; + void +report_version(void) +{ + int i = 0; + for (;;) { + uint8_t c = pgm_read_byte(&revision[i++]); + if (c == 0) { + break; + } else if (c >= '0' && c <= '9') { + usb_keyboard_press((c == '0') + ? KEY_0 + : (KEY_1 + (c - '1')), + 0); + } + } +} + +void handle_local_keys(void) { // Local processing. LOCAL acts as a modifier key that can be used to execute in the keyboard controller. @@ -114,6 +133,10 @@ switch (keyboard_keys[0]) { case KEY_B: jump_to_loader(); + break; + case KEY_V: + report_version(); + break; } } @@ -199,7 +222,18 @@ } { - // Process caps lock key. + // Process caps lock key. This key is a switch on the Symbolics + // keyboard, so we must make sure that the current switch setting + // always matches the caps lock state of the host. + + // If the host set LED 2, it indicates that caps lock has been + // pressed. If the caps lock state reported by the host does not + // match the caps lock key state of the Symbolics keyboard, send a + // "caps lock" key press and release to the host to make the two + // match. As a result, if caps lock is depressed on another + // keyboard connected to the host, it will quickly be cleared + // again. + uint8_t prev_caps_lock_pressed = (keyboard_leds & 2) ? 1 : 0; if (caps_lock_pressed ^ prev_caps_lock_pressed) { usb_keyboard_press(KEY_CAPS_LOCK, 0); Property changes on: trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.c ___________________________________________________________________ Name: svn:keywords + Revision Modified: trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.hex =================================================================== --- trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.hex 2009-04-07 05:51:18 UTC (rev 4359) +++ trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.hex 2009-04-07 06:03:07 UTC (rev 4360) @@ -1,11 +1,11 @@ -:1000000023C100003CC100003AC1000038C100001B -:1000100036C1000034C1000032C1000030C1000010 -:100020002EC100002CC100002AC10000A6C20000A1 -:1000300010C3000024C1000022C1000020C1000044 -:100040001EC100001CC100001AC1000018C1000040 -:1000500016C1000014C1000012C1000010C1000050 -:100060000EC100000CC100000AC1000008C1000060 -:1000700006C1000000888A41828463428900000032 +:1000000029C1000042C1000040C100003EC1000003 +:100010003CC100003AC1000038C1000036C10000F8 +:1000200034C1000032C1000030C10000CDC2000068 +:1000300037C300002AC1000028C1000026C100000B +:1000400024C1000022C1000020C100001EC1000028 +:100050001CC100001AC1000018C1000016C1000038 +:1000600014C1000012C1000010C100000EC1000048 +:100070000CC1000000888A4182846342890000002C :100080003A6040802C8657590000001D0605103745 :1000900085543F000000811B191136385D45000072 :1000A000004C16090B0E3328440000003B04070ADD @@ -21,133 +21,138 @@ :1001400000002B14081718122F2A000000551F2139 :100150002325272E310000001E202224262D35566F :1001600000000029625C5B5A433D3E000000000035 -:100170000000000000010000AB011200020000BD01 -:10018000012200220000DF013F00210000CF010911 -:10019000000300001E0204010309042202100203EE -:1001A0000904340212000001C1060012010002001D -:1001B000000020C0167C0400010102000109022297 -:1001C00000010100C032090400000103010100091F -:1001D0002111010001223F000705830308000105EA -:1001E000010906A10175019508050719E029E71520 -:1001F00000250181029501750881039505750105AA -:100200000819012905910295017503910395067559 -:1002100008150025680507190029688100C0040336 -:10022000090410034D00660067004E0061006D0078 -:100230006500000012034B006500790062006F004A -:10024000610072006400000011241FBECFEFD2E0F5 -:10025000DEBFCDBF11E0A0E0B1E0EAE6F9E002C008 -:1002600005900D92A230B107D9F711E0A2E0B1E0FC -:1002700001C01D92AD32B107E1F7D6D074C3C0CE34 -:10028000FB01DC0104C08D910190801921F44150E3 -:100290005040C8F7881B990B08955E9825E32A956E -:1002A000F1F75E9AE0E9F1E03197F1F760E070E094 -:1002B000B5E3A5ED19C056955D984B2F4A95F1F71A -:1002C0005D9A4A2F4A95F1F74C9B50682F5F3F4F3C -:1002D0002830310581F7FC01E60FF71F50836F5F6F -:1002E0007F4F6031710521F050E020E030E0E3CF36 -:1002F0000895AF92BF92CF92DF92EF92FF920F9349 -:100300001F93CF93DF93EC0100E0FF2464E770E0DC -:1003100053E2A52E51E0B52E46E0E42E31E0C32E87 -:10032000D12C10922201F5018E2D11928A95E9F7B8 -:1003300050E020E030E080E0FE01E20FF31FB081EA -:10034000A0912201482F182F185FFB01E40FF11D27 -:100350004F5F8491B0FF2FC0882369F187FF23C0CE -:1003600090E08F7790708830910549F08930910541 -:1003700044F08930910569F00A97E9F411C001E071 -:100380001AC0F60102C0EE0FFF1F8A95E2F7AE2BEE -:1003900012C0F0E064377F0771F464EF70E0C1CF02 -:1003A000FF24F39408C0563030F4E52FF0E0ED5D03 -:1003B000FE4F80835F5F411711F0B695C6CFA093C3 -:1003C00022012F5F3F4F2031310511F0842FB4CF30 -:1003D000002399F0E4E2F1E003C08191882371F4F5 -:1003E00081E0E932F807C9F780912301853031F4C3 -:1003F0001092D8000C94001801C06AD08091290195 -:1004000090E0969587958170F81619F089E360E081 -:10041000A7D0DF91CF911F910F91FF90EF90DF90C8 -:10042000CF90BF90AF900895CF93DF9380E88093F3 -:1004300061001092610080E68AB980E78BB931D003 -:1004400044D08823E9F380E395E720E931E0F9011E -:100450003197F1F70197D9F780E1E2E0F1E0DF01B0 -:100460001D928A95E9F7C0E4DCE982E191E015DFAD -:1004700082E191E062E071E040E150E001DF00974D -:1004800061F082E191E035DFA2E0B1E0E2E1F1E08C -:1004900080E101900D928150E1F7CE010197F1F7D3 -:1004A000E4CF80EA8093D80086E089BD09B400FEDD -:1004B000FDCF80E88093D8001092E00010922A01CE -:1004C0008CE08093E2007894089580912A01089549 -:1004D00080912A01882309F441C02FB7F89483E062 -:1004E0008093E9009091E4009E5C33E08091E80005 -:1004F00085FD0EC02FBF80912A01882379F180915C -:10050000E400891759F12FB7F8943093E900EECF42 -:10051000809122018093F1001092F10080912301DB -:100520008093F100809124018093F1008091250156 -:100530008093F100809126018093F1008091270142 -:100540008093F100809128018093F1008AE38093E9 -:10055000E80010922B012FBF80E008958FEF0895DF -:100560006093220180932301B3DF882329F4109242 -:10057000220110922301ACCF08951F920F920FB663 -:100580000F9211242F938F939F938091E1001092EB -:10059000E100982F83FF0FC01092E90081E0809363 -:1005A000EB001092EC0082E28093ED0088E08093F3 -:1005B000F00010922A0192FF44C080912A01882302 -:1005C00009F43FC0209100012223D9F180912C0130 -:1005D0008F5F80932C0190E083709070892B89F558 -:1005E00083E08093E9008091E80085FF2AC0809134 -:1005F0002B018F5F80932B01821719F510922B012D -:10060000809122018093F1001092F10080912301EA -:100610008093F100809124018093F1008091250165 -:100620008093F100809126018093F1008091270151 -:100630008093F100809128018093F1008AE38093F8 -:10064000E8009F918F912F910F900FBE0F901F90F8 -:1006500018951F920F920FB60F9211240F931F93AC -:100660002F933F934F935F936F937F938F939F93BA -:10067000AF93BF93EF93FF931092E9008091E8004E -:1006800083FF5BC14091F1003091F1008091F10056 -:10069000682F70E02091F100922F80E0682B792B79 -:1006A0008091F100A82FB0E02091F100922F80E01E -:1006B000A82BB92B1091F1000091F10082EF8093EB -:1006C000E800363009F05AC02BE731E0A901455067 -:1006D0005040F9013797859194918617970701F556 -:1006E000FA01859194918A179B07D1F49A012E5FA4 -:1006F0003F4FF901659174912E5F3F4FF90144918D -:10070000212F30E0902F80E0282B392B2F3F31050F -:1007100019F010F02FEF30E0241758F4422F09C0E1 -:10072000295F3F4F495F5F4FF1E02C3A3F0789F661 -:1007300004C15EEF8091E800282F30E0C901857088 -:100740009070892BB9F322FDFBC0342F413208F0A1 -:1007500030E2232FCB0106C0FC010196E491E09327 -:10076000F10021502223C1F7630F711D431B5093E9 -:10077000E8004423F9F63032E9F2E2C0353061F4A2 -:100780008EEF8093E8008091E80080FFFCCF862FF9 -:1007900080688093E300D4C0393031F5442309F0F8 -:1007A00071C060932A018EEF8093E80085EA91E0A2 -:1007B00021E02093E900FC010196E491E093EB0035 -:1007C000EE2369F0AC014F5F5F4FFC018491809391 -:1007D000EC00CA010196FA0134913093ED002F5FCD -:1007E000253039F78EE149C0383051F4403809F0EE -:1007F00049C08091E80080FFFCCF80912A017BC036 -:100800003323D1F48091E80080FFFCCF423811F00F -:1008100080E00DC0A093E9008091EB0090E025E01E -:10082000969587952A95E1F781701092E90080935B -:10083000F1001092F1007DC0313011F0333011F52C -:10084000423001F561157105E9F42A2F2F77822FC7 -:1008500081508430B8F48EEF8093E8002093E90053 -:10086000333009F46AC089E18093EB0081E090E0C5 -:1008700002C0880F991F2A95E2F78093EA00109230 -:10088000EA005EC0AB2B09F058C0413AB9F53130EF -:1008900009F58091E80080FFFCCF809122018093D0 -:1008A000F1001092F100809123018093F10080917A -:1008B00024018093F100809125018093F1008091C3 -:1008C00026018093F100809127018093F1008091AF -:1008D000280111C0323039F48091E80080FFFCCF4C -:1008E0008091000108C0333041F58091E80080FF1D -:1008F000FCCF809101018093F1001BC04132E9F4EB -:10090000393061F48091E80082FFFCCF8091F100E2 -:10091000809329018BEF8093E8000BC03A3029F4D3 -:100920007093000110922B0104C03B3031F46093AE -:1009300001018EEF8093E80003C081E28093EB0019 -:10094000FF91EF91BF91AF919F918F917F916F91A7 -:100950005F914F913F912F911F910F910F900FBE7B -:0A0960000F901F901895F894FFCF38 -:02096A007D010D +:1001700000000000245265766973696F6E240000E8 +:10018000010000B6011200020000C8012200220096 +:1001900000EA013F00210000DA0109000300002904 +:1001A0000204010309042D0210020309043F021294 +:1001B000000001C106001201000200000020C0166C +:1001C0007C0400010102000109022200010100C0BB +:1001D000320904000001030101000921110100019D +:1001E000223F000705830308000105010906A1015C +:1001F00075019508050719E029E715002501810219 +:1002000095017508810395057501050819012905F2 +:1002100091029501750391039506750815002568EF +:100220000507190029688100C00403090410034D63 +:1002300000660067004E0061006D0065000000125E +:10024000034B006500790062006F0061007200647A +:100250000000000011241FBECFEFD2E0DEBFCDBFF3 +:1002600011E0A0E0B1E0E8EBF9E002C005900D92EA +:10027000A230B107D9F711E0A2E0B1E001C01D92B0 +:10028000AD32B107E1F7F7D095C3BACEFB01DC017F +:1002900004C08D910190801921F441505040C8F75D +:1002A000881B990B08955E9825E32A95F1F75E9ACD +:1002B000E0E9F1E03197F1F760E070E0B5E3A5ED3A +:1002C00019C056955D984B2F4A95F1F75D9A4A2FC4 +:1002D0004A95F1F74C9B50682F5F3F4F283031050E +:1002E00081F7FC01E60FF71F50836F5F7F4F60318E +:1002F000710521F050E020E030E0E3CF0895CF9386 +:10030000DF93C4E7D1E001C02196FE0194919923C7 +:1003100069F0892F80538A30B8F7903311F487E25F +:1003200002C0892F835160E042D1EECFDF91CF919F +:100330000895E4E2F1E003C08191882389F481E02B +:10034000E932F807C9F780912301853019F0893126 +:1003500039F405C01092D8000C9400180895CFCF3E +:100360000895AF92BF92CF92DF92EF92FF920F93D8 +:100370001F93CF93DF93EC0100E0FF2464E770E06C +:1003800053E2A52E51E0B52E46E0E42E31E0C32E17 +:10039000D12C10922201F5018E2D11928A95E9F748 +:1003A00050E080E020E030E0FE01E20FF31FB0817A +:1003B000A0912201482F182F185FFB01E40FF11DB7 +:1003C0004F5F8491B0FF2FC0882369F187FF23C05E +:1003D00090E08F7790708830910549F089309105D1 +:1003E00044F08930910569F00A97E9F411C001E001 +:1003F0001AC0F60102C0EE0FFF1F8A95E2F7AE2B7E +:1004000012C0F0E064377F0771F464EF70E0C1CF91 +:10041000FF24F39408C0563030F4E52FF0E0ED5D92 +:10042000FE4F80835F5F411711F0B695C6CFA09352 +:1004300022012F5F3F4F2031310511F0842FB4CFBF +:10044000002311F076DF01C06AD08091290190E08D +:10045000969587958170F81619F089E360E0A7D02A +:10046000DF91CF911F910F91FF90EF90DF90CF9090 +:10047000BF90AF900895CF93DF9380E880936100A1 +:100480001092610080E68AB980E78BB931D044D000 +:100490008823E9F380E395E720E931E0F90131971A +:1004A000F1F70197D9F780E1E2E0F1E0DF011D9279 +:1004B0008A95E9F7C0E4DCE982E191E0F4DE82E1CB +:1004C00091E062E071E040E150E0E0DE009761F031 +:1004D00082E191E046DFA2E0B1E0E2E1F1E080E11B +:1004E00001900D928150E1F7CE010197F1F7E4CF31 +:1004F00080EA8093D80086E089BD09B400FEFDCF74 +:1005000080E88093D8001092E00010922A018CE0DD +:100510008093E2007894089580912A010895809153 +:100520002A01882309F441C02FB7F89483E080930F +:10053000E9009091E4009E5C33E08091E80085FD45 +:100540000EC02FBF80912A01882379F18091E400A9 +:10055000891759F12FB7F8943093E900EECF8091C5 +:1005600022018093F1001092F10080912301809389 +:10057000F100809124018093F10080912501809306 +:10058000F100809126018093F100809127018093F2 +:10059000F100809128018093F1008AE38093E800C4 +:1005A00010922B012FBF80E008958FEF0895609384 +:1005B000220180932301B3DF882329F410922201C2 +:1005C00010922301ACCF08951F920F920FB60F9295 +:1005D00011242F938F939F938091E1001092E1005B +:1005E000982F83FF0FC01092E90081E08093EB0009 +:1005F0001092EC0082E28093ED0088E08093F0009E +:1006000010922A0192FF44C080912A01882309F4A4 +:100610003FC0209100012223D9F180912C018F5FEE +:1006200080932C0190E083709070892B89F583E092 +:100630008093E9008091E80085FF2AC080912B011A +:100640008F5F80932B01821719F510922B018091F7 +:1006500022018093F1001092F10080912301809398 +:10066000F100809124018093F10080912501809315 +:10067000F100809126018093F10080912701809301 +:10068000F100809128018093F1008AE38093E800D3 +:100690009F918F912F910F900FBE0F901F901895E3 +:1006A0001F920F920FB60F9211240F931F932F9347 +:1006B0003F934F935F936F937F938F939F93AF93EA +:1006C000BF93EF93FF931092E9008091E80083FFBE +:1006D0005BC14091F1003091F1008091F100682FF1 +:1006E00070E02091F100922F80E0682B792B8091AF +:1006F000F100A82FB0E02091F100922F80E0A82B0C +:10070000B92B1091F1000091F10082EF8093E80085 +:10071000363009F05AC026E831E0A9014550504072 +:10072000F9013797859194918617970701F5FA019A +:10073000859194918A179B07D1F49A012E5F3F4FC0 +:10074000F901659174912E5F3F4FF9014491212F7A +:1007500030E0902F80E0282B392B2F3F310519F006 +:1007600010F02FEF30E0241758F4422F09C0295F12 +:100770003F4F495F5F4FF1E0273B3F0789F604C1D8 +:100780005EEF8091E800282F30E0C90185709070FD +:10079000892BB9F322FDFBC0342F413208F030E23F +:1007A000232FCB0106C0FC010196E491E093F100F8 +:1007B00021502223C1F7630F711D431B5093E800A2 +:1007C0004423F9F63032E9F2E2C0353061F48EEFBD +:1007D0008093E8008091E80080FFFCCF862F80683E +:1007E0008093E300D4C0393031F5442309F071C05F +:1007F00060932A018EEF8093E80080EB91E021E086 +:100800002093E900FC010196E491E093EB00EE23D4 +:1008100069F0AC014F5F5F4FFC0184918093EC0065 +:10082000CA010196FA0134913093ED002F5F253013 +:1008300039F78EE149C0383051F4403809F049C0E9 +:100840008091E80080FFFCCF80912A017BC0332398 +:10085000D1F48091E80080FFFCCF423811F080E0B5 +:100860000DC0A093E9008091EB0090E025E0969503 +:1008700087952A95E1F781701092E9008093F10045 +:100880001092F1007DC0313011F0333011F542305B +:1008900001F561157105E9F42A2F2F77822F815018 +:1008A0008430B8F48EEF8093E8002093E900333071 +:1008B00009F46AC089E18093EB0081E090E002C016 +:1008C000880F991F2A95E2F78093EA001092EA00B8 +:1008D0005EC0AB2B09F058C0413AB9F5313009F58B +:1008E0008091E80080FFFCCF809122018093F1008D +:1008F0001092F100809123018093F10080912401F6 +:100900008093F100809125018093F1008091260170 +:100910008093F100809127018093F100809128015C +:1009200011C0323039F48091E80080FFFCCF809113 +:10093000000108C0333041F58091E80080FFFCCF12 +:10094000809101018093F1001BC04132E9F43930FC +:1009500061F48091E80082FFFCCF8091F1008093E8 +:1009600029018BEF8093E8000BC03A3029F4709393 +:10097000000110922B0104C03B3031F4609301015F +:100980008EEF8093E80003C081E28093EB00FF913B +:10099000EF91BF91AF919F918F917F916F915F91F7 +:1009A0004F913F912F911F910F910F900FBE0F907C +:0809B0001F901895F894FFCF89 +:0209B8007D01BF :00000001FF From bknr at bknr.net Tue Apr 7 06:04:35 2009 From: bknr at bknr.net (BKNR Commits) Date: Tue, 07 Apr 2009 08:04:35 +0200 Subject: [bknr-cvs] hans changed trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.hex Message-ID: Revision: 4361 Author: hans URL: http://bknr.net/trac/changeset/4361 update .hex file with version number report U trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.hex Modified: trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.hex =================================================================== --- trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.hex 2009-04-07 06:03:07 UTC (rev 4360) +++ trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.hex 2009-04-07 06:04:35 UTC (rev 4361) @@ -1,11 +1,11 @@ -:1000000029C1000042C1000040C100003EC1000003 -:100010003CC100003AC1000038C1000036C10000F8 -:1000200034C1000032C1000030C10000CDC2000068 -:1000300037C300002AC1000028C1000026C100000B -:1000400024C1000022C1000020C100001EC1000028 -:100050001CC100001AC1000018C1000016C1000038 -:1000600014C1000012C1000010C100000EC1000048 -:100070000CC1000000888A4182846342890000002C +:100000002CC1000045C1000043C1000041C10000F7 +:100010003FC100003DC100003BC1000039C10000EC +:1000200037C1000035C1000033C10000D0C200005C +:100030003AC300002DC100002BC1000029C10000FF +:1000400027C1000025C1000023C1000021C100001C +:100050001FC100001DC100001BC1000019C100002C +:1000600017C1000015C1000013C1000011C100003C +:100070000FC1000000888A41828463428900000029 :100080003A6040802C8657590000001D0605103745 :1000900085543F000000811B191136385D45000072 :1000A000004C16090B0E3328440000003B04070ADD @@ -21,138 +21,138 @@ :1001400000002B14081718122F2A000000551F2139 :100150002325272E310000001E202224262D35566F :1001600000000029625C5B5A433D3E000000000035 -:1001700000000000245265766973696F6E240000E8 -:10018000010000B6011200020000C8012200220096 -:1001900000EA013F00210000DA0109000300002904 -:1001A0000204010309042D0210020309043F021294 -:1001B000000001C106001201000200000020C0166C -:1001C0007C0400010102000109022200010100C0BB -:1001D000320904000001030101000921110100019D -:1001E000223F000705830308000105010906A1015C -:1001F00075019508050719E029E715002501810219 -:1002000095017508810395057501050819012905F2 -:1002100091029501750391039506750815002568EF -:100220000507190029688100C00403090410034D63 -:1002300000660067004E0061006D0065000000125E -:10024000034B006500790062006F0061007200647A -:100250000000000011241FBECFEFD2E0DEBFCDBFF3 -:1002600011E0A0E0B1E0E8EBF9E002C005900D92EA -:10027000A230B107D9F711E0A2E0B1E001C01D92B0 -:10028000AD32B107E1F7F7D095C3BACEFB01DC017F -:1002900004C08D910190801921F441505040C8F75D -:1002A000881B990B08955E9825E32A95F1F75E9ACD -:1002B000E0E9F1E03197F1F760E070E0B5E3A5ED3A -:1002C00019C056955D984B2F4A95F1F75D9A4A2FC4 -:1002D0004A95F1F74C9B50682F5F3F4F283031050E -:1002E00081F7FC01E60FF71F50836F5F7F4F60318E -:1002F000710521F050E020E030E0E3CF0895CF9386 -:10030000DF93C4E7D1E001C02196FE0194919923C7 -:1003100069F0892F80538A30B8F7903311F487E25F -:1003200002C0892F835160E042D1EECFDF91CF919F -:100330000895E4E2F1E003C08191882389F481E02B -:10034000E932F807C9F780912301853019F0893126 -:1003500039F405C01092D8000C9400180895CFCF3E -:100360000895AF92BF92CF92DF92EF92FF920F93D8 -:100370001F93CF93DF93EC0100E0FF2464E770E06C -:1003800053E2A52E51E0B52E46E0E42E31E0C32E17 -:10039000D12C10922201F5018E2D11928A95E9F748 -:1003A00050E080E020E030E0FE01E20FF31FB0817A -:1003B000A0912201482F182F185FFB01E40FF11DB7 -:1003C0004F5F8491B0FF2FC0882369F187FF23C05E -:1003D00090E08F7790708830910549F089309105D1 -:1003E00044F08930910569F00A97E9F411C001E001 -:1003F0001AC0F60102C0EE0FFF1F8A95E2F7AE2B7E -:1004000012C0F0E064377F0771F464EF70E0C1CF91 -:10041000FF24F39408C0563030F4E52FF0E0ED5D92 -:10042000FE4F80835F5F411711F0B695C6CFA09352 -:1004300022012F5F3F4F2031310511F0842FB4CFBF -:10044000002311F076DF01C06AD08091290190E08D -:10045000969587958170F81619F089E360E0A7D02A -:10046000DF91CF911F910F91FF90EF90DF90CF9090 -:10047000BF90AF900895CF93DF9380E880936100A1 -:100480001092610080E68AB980E78BB931D044D000 -:100490008823E9F380E395E720E931E0F90131971A -:1004A000F1F70197D9F780E1E2E0F1E0DF011D9279 -:1004B0008A95E9F7C0E4DCE982E191E0F4DE82E1CB -:1004C00091E062E071E040E150E0E0DE009761F031 -:1004D00082E191E046DFA2E0B1E0E2E1F1E080E11B -:1004E00001900D928150E1F7CE010197F1F7E4CF31 -:1004F00080EA8093D80086E089BD09B400FEFDCF74 -:1005000080E88093D8001092E00010922A018CE0DD -:100510008093E2007894089580912A010895809153 -:100520002A01882309F441C02FB7F89483E080930F -:10053000E9009091E4009E5C33E08091E80085FD45 -:100540000EC02FBF80912A01882379F18091E400A9 -:10055000891759F12FB7F8943093E900EECF8091C5 -:1005600022018093F1001092F10080912301809389 -:10057000F100809124018093F10080912501809306 -:10058000F100809126018093F100809127018093F2 -:10059000F100809128018093F1008AE38093E800C4 -:1005A00010922B012FBF80E008958FEF0895609384 -:1005B000220180932301B3DF882329F410922201C2 -:1005C00010922301ACCF08951F920F920FB60F9295 -:1005D00011242F938F939F938091E1001092E1005B -:1005E000982F83FF0FC01092E90081E08093EB0009 -:1005F0001092EC0082E28093ED0088E08093F0009E -:1006000010922A0192FF44C080912A01882309F4A4 -:100610003FC0209100012223D9F180912C018F5FEE -:1006200080932C0190E083709070892B89F583E092 -:100630008093E9008091E80085FF2AC080912B011A -:100640008F5F80932B01821719F510922B018091F7 -:1006500022018093F1001092F10080912301809398 -:10066000F100809124018093F10080912501809315 -:10067000F100809126018093F10080912701809301 -:10068000F100809128018093F1008AE38093E800D3 -:100690009F918F912F910F900FBE0F901F901895E3 -:1006A0001F920F920FB60F9211240F931F932F9347 -:1006B0003F934F935F936F937F938F939F93AF93EA -:1006C000BF93EF93FF931092E9008091E80083FFBE -:1006D0005BC14091F1003091F1008091F100682FF1 -:1006E00070E02091F100922F80E0682B792B8091AF -:1006F000F100A82FB0E02091F100922F80E0A82B0C -:10070000B92B1091F1000091F10082EF8093E80085 -:10071000363009F05AC026E831E0A9014550504072 -:10072000F9013797859194918617970701F5FA019A -:10073000859194918A179B07D1F49A012E5F3F4FC0 -:10074000F901659174912E5F3F4FF9014491212F7A -:1007500030E0902F80E0282B392B2F3F310519F006 -:1007600010F02FEF30E0241758F4422F09C0295F12 -:100770003F4F495F5F4FF1E0273B3F0789F604C1D8 -:100780005EEF8091E800282F30E0C90185709070FD -:10079000892BB9F322FDFBC0342F413208F030E23F -:1007A000232FCB0106C0FC010196E491E093F100F8 -:1007B00021502223C1F7630F711D431B5093E800A2 -:1007C0004423F9F63032E9F2E2C0353061F48EEFBD -:1007D0008093E8008091E80080FFFCCF862F80683E -:1007E0008093E300D4C0393031F5442309F071C05F -:1007F00060932A018EEF8093E80080EB91E021E086 -:100800002093E900FC010196E491E093EB00EE23D4 -:1008100069F0AC014F5F5F4FFC0184918093EC0065 -:10082000CA010196FA0134913093ED002F5F253013 -:1008300039F78EE149C0383051F4403809F049C0E9 -:100840008091E80080FFFCCF80912A017BC0332398 -:10085000D1F48091E80080FFFCCF423811F080E0B5 -:100860000DC0A093E9008091EB0090E025E0969503 -:1008700087952A95E1F781701092E9008093F10045 -:100880001092F1007DC0313011F0333011F542305B -:1008900001F561157105E9F42A2F2F77822F815018 -:1008A0008430B8F48EEF8093E8002093E900333071 -:1008B00009F46AC089E18093EB0081E090E002C016 -:1008C000880F991F2A95E2F78093EA001092EA00B8 -:1008D0005EC0AB2B09F058C0413AB9F5313009F58B -:1008E0008091E80080FFFCCF809122018093F1008D -:1008F0001092F100809123018093F10080912401F6 -:100900008093F100809125018093F1008091260170 -:100910008093F100809127018093F100809128015C -:1009200011C0323039F48091E80080FFFCCF809113 -:10093000000108C0333041F58091E80080FFFCCF12 -:10094000809101018093F1001BC04132E9F43930FC -:1009500061F48091E80082FFFCCF8091F1008093E8 -:1009600029018BEF8093E8000BC03A3029F4709393 -:10097000000110922B0104C03B3031F4609301015F -:100980008EEF8093E80003C081E28093EB00FF913B -:10099000EF91BF91AF919F918F917F916F915F91F7 -:1009A0004F913F912F911F910F910F900FBE0F907C -:0809B0001F901895F894FFCF89 -:0209B8007D01BF +:1001700000000000245265766973696F6E3A20347E +:1001800033363020240000010000BD0112000200BF +:1001900000CF012200220000F1013F00210000E118 +:1001A00001090003000030020401030904340210B5 +:1001B00002030904460212000001C10600120100F8 +:1001C0000200000020C0167C0400010102000109A9 +:1001D000022200010100C0320904000001030101F4 +:1001E00000092111010001223F00070583030800D7 +:1001F0000105010906A10175019508050719E02906 +:10020000E7150025018102950175088103950575A3 +:1002100001050819012905910295017503910395BE +:10022000067508150025680507190029688100C0B2 +:100230000403090410034D00660067004E006100CE +:100240006D006500000012034B006500790062003C +:100250006F00610072006400000011241FBECFEF28 +:10026000D2E0DEBFCDBF11E0A0E0B1E0EEEBF9E0FF +:1002700002C005900D92A230B107D9F711E0A2E0BB +:10028000B1E001C01D92AD32B107E1F7F7D095C3DF +:10029000B7CEFB01DC0104C08D910190801921F4DF +:1002A00041505040C8F7881B990B08955E9825E38C +:1002B0002A95F1F75E9AE0E9F1E03197F1F760E015 +:1002C00070E0B5E3A5ED19C056955D984B2F4A95A2 +:1002D000F1F75D9A4A2F4A95F1F74C9B50682F5FD2 +:1002E0003F4F2830310581F7FC01E60FF71F50839F +:1002F0006F5F7F4F6031710521F050E020E030E00A +:10030000E3CF0895CF93DF93C4E7D1E001C02196F6 +:10031000FE019491992369F0892F80538A30B8F7B0 +:10032000903311F487E202C0892F835160E042D1FB +:10033000EECFDF91CF910895E4E2F1E003C0819127 +:10034000882389F481E0E932F807C9F78091230115 +:10035000853019F0893139F405C01092D8000C9419 +:1003600000180895CFCF0895AF92BF92CF92DF9239 +:10037000EF92FF920F931F93CF93DF93EC0100E076 +:10038000FF2464E770E053E2A52E51E0B52E46E06D +:10039000E42E31E0C32ED12C10922201F5018E2DD6 +:1003A00011928A95E9F750E080E020E030E0FE010C +:1003B000E20FF31FB081A0912201482F182F185F80 +:1003C000FB01E40FF11D4F5F8491B0FF2FC0882324 +:1003D00069F187FF23C090E08F7790708830910596 +:1003E00049F08930910544F08930910569F00A9708 +:1003F000E9F411C001E01AC0F60102C0EE0FFF1FC0 +:100400008A95E2F7AE2B12C0F0E064377F0771F4F3 +:1004100064EF70E0C1CFFF24F39408C0563030F48D +:10042000E52FF0E0ED5DFE4F80835F5F411711F037 +:10043000B695C6CFA09322012F5F3F4F20313105E3 +:1004400011F0842FB4CF002311F076DF01C06AD001 +:100450008091290190E0969587958170F81619F0A2 +:1004600089E360E0A7D0DF91CF911F910F91FF90BA +:10047000EF90DF90CF90BF90AF900895CF93DF9330 +:1004800080E8809361001092610080E68AB980E77D +:100490008BB931D044D08823E9F380E395E720E994 +:1004A00031E0F9013197F1F70197D9F780E1E2E006 +:1004B000F1E0DF011D928A95E9F7C0E4DCE982E111 +:1004C00091E0F4DE82E191E062E071E040E150E031 +:1004D000E0DE009761F082E191E046DFA2E0B1E06A +:1004E000E2E1F1E080E101900D928150E1F7CE016F +:1004F0000197F1F7E4CF80EA8093D80086E089BDC8 +:1005000009B400FEFDCF80E88093D8001092E0008F +:1005100010922A018CE08093E200789408958091F3 +:100520002A01089580912A01882309F441C02FB738 +:10053000F89483E08093E9009091E4009E5C33E0BE +:100540008091E80085FD0EC02FBF80912A0188238D +:1005500079F18091E400891759F12FB7F89430931D +:10056000E900EECF809122018093F1001092F1001A +:10057000809123018093F100809124018093F10008 +:10058000809125018093F100809126018093F100F4 +:10059000809127018093F100809128018093F100E0 +:1005A0008AE38093E80010922B012FBF80E008952A +:1005B0008FEF08956093220180932301B3DF882396 +:1005C00029F41092220110922301ACCF08951F92BA +:1005D0000F920FB60F9211242F938F939F938091B8 +:1005E000E1001092E100982F83FF0FC01092E90004 +:1005F00081E08093EB001092EC0082E28093ED00AA +:1006000088E08093F00010922A0192FF44C080910C +:100610002A01882309F43FC0209100012223D9F147 +:1006200080912C018F5F80932C0190E083709070FB +:10063000892B89F583E08093E9008091E80085FFAC +:100640002AC080912B018F5F80932B01821719F5AF +:1006500010922B01809122018093F1001092F10001 +:10066000809123018093F100809124018093F10017 +:10067000809125018093F100809126018093F10003 +:10068000809127018093F100809128018093F100EF +:100690008AE38093E8009F918F912F910F900FBE76 +:1006A0000F901F9018951F920F920FB60F92112462 +:1006B0000F931F932F933F934F935F936F937F936A +:1006C0008F939F93AF93BF93EF93FF931092E900A3 +:1006D0008091E80083FF5BC14091F1003091F1000F +:1006E0008091F100682F70E02091F100922F80E05E +:1006F000682B792B8091F100A82FB0E02091F100B8 +:10070000922F80E0A82BB92B1091F1000091F100FD +:1007100082EF8093E800363009F05AC02DE831E0CE +:10072000A90145505040F90137978591949186175A +:10073000970701F5FA01859194918A179B07D1F4E7 +:100740009A012E5F3F4FF901659174912E5F3F4FE3 +:10075000F9014491212F30E0902F80E0282B392B94 +:100760002F3F310519F010F02FEF30E0241758F427 +:10077000422F09C0295F3F4F495F5F4FF1E02E3B99 +:100780003F0789F604C15EEF8091E800282F30E032 +:10079000C90185709070892BB9F322FDFBC0342FFD +:1007A000413208F030E2232FCB0106C0FC01019654 +:1007B000E491E093F10021502223C1F7630F711DF2 +:1007C000431B5093E8004423F9F63032E9F2E2C0CB +:1007D000353061F48EEF8093E8008091E80080FF6F +:1007E000FCCF862F80688093E300D4C0393031F588 +:1007F000442309F071C060932A018EEF8093E800D2 +:1008000087EB91E021E02093E900FC010196E4915F +:10081000E093EB00EE2369F0AC014F5F5F4FFC010A +:1008200084918093EC00CA010196FA0134913093CF +:10083000ED002F5F253039F78EE149C0383051F493 +:10084000403809F049C08091E80080FFFCCF8091DA +:100850002A017BC03323D1F48091E80080FFFCCFD4 +:10086000423811F080E00DC0A093E9008091EB00C8 +:1008700090E025E0969587952A95E1F78170109292 +:10088000E9008093F1001092F1007DC0313011F049 +:10089000333011F5423001F561157105E9F42A2F65 +:1008A0002F77822F81508430B8F48EEF8093E80048 +:1008B0002093E900333009F46AC089E18093EB00AA +:1008C00081E090E002C0880F991F2A95E2F780939B +:1008D000EA001092EA005EC0AB2B09F058C0413A22 +:1008E000B9F5313009F58091E80080FFFCCF8091A7 +:1008F00022018093F1001092F100809123018093F6 +:10090000F100809124018093F10080912501809372 +:10091000F100809126018093F1008091270180935E +:10092000F1008091280111C0323039F48091E80043 +:1009300080FFFCCF8091000108C0333041F58091E9 +:10094000E80080FFFCCF809101018093F1001BC083 +:100950004132E9F4393061F48091E80082FFFCCF44 +:100960008091F100809329018BEF8093E8000BC008 +:100970003A3029F47093000110922B0104C03B30EF +:1009800031F4609301018EEF8093E80003C081E2AF +:100990008093EB00FF91EF91BF91AF919F918F9169 +:1009A0007F916F915F914F913F912F911F910F9187 +:0E09B0000F900FBE0F901F901895F894FFCF78 +:0209BE007D01B9 :00000001FF From bknr at bknr.net Tue Apr 7 07:21:12 2009 From: bknr at bknr.net (BKNR Commits) Date: Tue, 07 Apr 2009 09:21:12 +0200 Subject: [bknr-cvs] hans changed trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.c Message-ID: Revision: 4362 Author: hans URL: http://bknr.net/trac/changeset/4362 comments U trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.c Modified: trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.c =================================================================== --- trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.c 2009-04-07 06:04:35 UTC (rev 4361) +++ trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.c 2009-04-07 07:21:12 UTC (rev 4362) @@ -1,5 +1,29 @@ -/* Symbolics keyboard adapter, based on Teensy keyboard example */ +// -*- C++ -*- (this is really C) +// Symbolics keyboard adapter, based on Teensy keyboard example. + +// The Symbolics keyboard acts as a shift register with 128 bits. The +// hardware interface consists of a clear line which is used to signal +// the beginning of a read cycle, a clock line, and a data line. All +// signals are active low. The keyboard changes the data line on the +// rising edge of the clock. It should be read near the falling edge +// of the clock by the host. + +// The keyboard needs to be interfaced to the Teensy board as +// follows. The wire colors specified are those used in the original +// modular cable supplied with the keyboard: +// +// blue 5V +// green GND +// red D4 DIN +// black D5 CLK +// white D6 CK] + +// The keyboard implements two locking functions, caps lock and mode +// lock. Both of these are implemented as switches, not as buttons, +// so precautions must be made to synchronize their state to the +// host's caps lock state. + /* Keyboard example for Teensy USB Development Board * http://www.pjrc.com/teensy/usb_keyboard.html * Copyright (c) 2008 PJRC.COM, LLC @@ -103,6 +127,10 @@ void report_version(void) { + // Report Subversion revision number. We only convert the revision + // number and do not bother to convert other characters to key + // presses. + int i = 0; for (;;) { uint8_t c = pgm_read_byte(&revision[i++]); @@ -143,13 +171,19 @@ void send_keys(uint8_t* state) { + // A change of state has been detected by the main loop, report all + // currently pressed keys to the host. + uint8_t local = 0; uint8_t caps_lock_pressed = 0; const uint8_t* keymap = keymap_normal; retry: // If we detect that we are in f-mode, we need to translate the - // pressed keys with the f-mode translation table. + // pressed keys with the f-mode translation table. Detection of + // f-mode happens while decoding the shift register. When the + // f-mode key is detected as being pressed, the translation table is + // switched and the decoding process is restarted. { uint8_t key_index = 0; uint8_t map_index = 0; From bknr at bknr.net Tue Apr 7 07:22:30 2009 From: bknr at bknr.net (BKNR Commits) Date: Tue, 07 Apr 2009 09:22:30 +0200 Subject: [bknr-cvs] hans changed trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.c Message-ID: Revision: 4363 Author: hans URL: http://bknr.net/trac/changeset/4363 comments again U trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.c Modified: trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.c =================================================================== --- trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.c 2009-04-07 07:21:12 UTC (rev 4362) +++ trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.c 2009-04-07 07:22:30 UTC (rev 4363) @@ -17,7 +17,7 @@ // green GND // red D4 DIN // black D5 CLK -// white D6 CK] +// white D6 CLR // The keyboard implements two locking functions, caps lock and mode // lock. Both of these are implemented as switches, not as buttons, From bknr at bknr.net Tue Apr 7 10:56:59 2009 From: bknr at bknr.net (BKNR Commits) Date: Tue, 07 Apr 2009 12:56:59 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/hunchentoot/ Message-ID: Revision: 4364 Author: hans URL: http://bknr.net/trac/changeset/4364 Add WITHIN-REQUEST-P function that can be used to check whether a request is processed within the current dynamic context. Provided by Mark David, ITA U trunk/thirdparty/hunchentoot/doc/index.xml U trunk/thirdparty/hunchentoot/packages.lisp U trunk/thirdparty/hunchentoot/request.lisp U trunk/thirdparty/hunchentoot/specials.lisp Modified: trunk/thirdparty/hunchentoot/doc/index.xml =================================================================== --- trunk/thirdparty/hunchentoot/doc/index.xml 2009-04-07 07:22:30 UTC (rev 4363) +++ trunk/thirdparty/hunchentoot/doc/index.xml 2009-04-07 10:56:59 UTC (rev 4364) @@ -2854,6 +2854,15 @@ + + + + generalized-boolean + + Returns true if in the context of a request. Otherwise, NIL. + + + This should be a pathname denoting a directory where temporary files can be stored. It is used for file Modified: trunk/thirdparty/hunchentoot/packages.lisp =================================================================== --- trunk/thirdparty/hunchentoot/packages.lisp 2009-04-07 07:22:30 UTC (rev 4363) +++ trunk/thirdparty/hunchentoot/packages.lisp 2009-04-07 10:56:59 UTC (rev 4364) @@ -64,6 +64,7 @@ "*METHODS-FOR-POST-PARAMETERS*" "*REPLY*" "*REQUEST*" + "WITHIN-REQUEST-P" "*REWRITE-FOR-SESSION-URLS*" "*SESSION*" "*SESSION-GC-FREQUENCY*" Modified: trunk/thirdparty/hunchentoot/request.lisp =================================================================== --- trunk/thirdparty/hunchentoot/request.lisp 2009-04-07 07:22:30 UTC (rev 4363) +++ trunk/thirdparty/hunchentoot/request.lisp 2009-04-07 10:56:59 UTC (rev 4364) @@ -217,7 +217,8 @@ (let (*tmp-files* *headers-sent*) (unwind-protect (with-mapped-conditions () - (let* ((*request* request)) + (let* ((*request* request) + (*within-request-p* t)) (multiple-value-bind (body error) (catch 'handler-done (handler-bind ((error @@ -255,6 +256,10 @@ (ignore-errors (delete-file path))))))) +(defun within-request-p () + "True if we're in the context of a request, otherwise nil." + *within-request-p*) + (defun parse-multipart-form-data (request external-format) "Parse the REQUEST body as multipart/form-data, assuming that its content type has already been verified. Returns the form data as Modified: trunk/thirdparty/hunchentoot/specials.lisp =================================================================== --- trunk/thirdparty/hunchentoot/specials.lisp 2009-04-07 07:22:30 UTC (rev 4363) +++ trunk/thirdparty/hunchentoot/specials.lisp 2009-04-07 10:56:59 UTC (rev 4364) @@ -234,6 +234,11 @@ (defvar-unbound *request* "The current REQUEST object while in the context of a request.") +(defvar *within-request-p* nil + "True while in the context of a request (while *request* is bound), +otherwise nil. Outside callers should use exported function +within-request-p to test this.") + (defvar-unbound *reply* "The current REPLY object while in the context of a request.") From bknr at bknr.net Tue Apr 7 11:47:42 2009 From: bknr at bknr.net (BKNR Commits) Date: Tue, 07 Apr 2009 13:47:42 +0200 Subject: [bknr-cvs] hans changed trunk/projects/symbolics-keyboard/teensy-firmware/ Message-ID: Revision: 4365 Author: hans URL: http://bknr.net/trac/changeset/4365 documentation A trunk/projects/symbolics-keyboard/teensy-firmware/README.txt U trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.c Added: trunk/projects/symbolics-keyboard/teensy-firmware/README.txt =================================================================== --- trunk/projects/symbolics-keyboard/teensy-firmware/README.txt (rev 0) +++ trunk/projects/symbolics-keyboard/teensy-firmware/README.txt 2009-04-07 11:47:42 UTC (rev 4365) @@ -0,0 +1,53 @@ +Symbolics keyboard adapter, based on Teensy keyboard example. + +The Symbolics keyboard acts as a shift register with 128 bits. Each +key is represented by one bit in the shift register. The hardware +interface consists of a clear line which is used to signal the +beginning of a read cycle, a clock line, and a data line. All signals +are active low. The keyboard changes the data line on the rising edge +of the clock. It should be read near the falling edge of the clock by +the host. + +The keyboard needs to be interfaced to the Teensy board as +follows. The wire colors specified are those used in the original +modular cable supplied with the keyboard: + +blue 5V +green GND +red D4 DIN +black D5 CLK +white D6 CLR + +The keyboard implements two locking functions, caps lock and mode +lock. Both of these are implemented as switches, not as buttons. +Host systems do not usually expect switches on keyboards, so +precautions must be taken to synchronize their state to the host's +state. + +The "Caps Lock" key is implemented so that it works as usual, i.e. it +is transmitted to the host as if it were a button. The host sends +back its caps lock state through the keyboard LEDs. Thus, the +controller firmware can synchronize the host's state with the state of +the caps lock switch on the keyboard. + +The "Mode Lock" key is used to switch the keyboard between the classic +Symbolics layout and a variant that assigns the modifier keys on the +right side of the space bar to be cursor keys. This mode is called +f_mode. + +The "Local" key is used as a modifier key to trigger functions in the +converter firmware. The following functions are implemented: + +Local-B boots the AVR into the boot loader so that it can be +reprogrammed through USB by the host. + +Local-V sends the Subversion revision number of this file to the host. + +Mapping of the symbolics key number to an USB key number is done +through the mapping table defined in the file keymap.inc. There are +two separate tables, one for normal mode and one for f_mode. The +mapping table is normally autogenerated by the keymap generation +program contained in make-keymap.lisp, but it can be manually edited +if no Lisp evironment is available. + +Author: Hans Huebner (hans.huebner at gmail.com). Property changes on: trunk/projects/symbolics-keyboard/teensy-firmware/README.txt ___________________________________________________________________ Name: svn:executable + * Modified: trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.c =================================================================== --- trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.c 2009-04-07 10:56:59 UTC (rev 4364) +++ trunk/projects/symbolics-keyboard/teensy-firmware/symbolics.c 2009-04-07 11:47:42 UTC (rev 4365) @@ -1,29 +1,16 @@ // -*- C++ -*- (this is really C) -// Symbolics keyboard adapter, based on Teensy keyboard example. +// -*- C++ -*- -// The Symbolics keyboard acts as a shift register with 128 bits. The -// hardware interface consists of a clear line which is used to signal -// the beginning of a read cycle, a clock line, and a data line. All -// signals are active low. The keyboard changes the data line on the -// rising edge of the clock. It should be read near the falling edge -// of the clock by the host. +// Symbolics keyboard to USB adapter -// The keyboard needs to be interfaced to the Teensy board as -// follows. The wire colors specified are those used in the original -// modular cable supplied with the keyboard: -// -// blue 5V -// green GND -// red D4 DIN -// black D5 CLK -// white D6 CLR +// See the README.txt file for documentation -// The keyboard implements two locking functions, caps lock and mode -// lock. Both of these are implemented as switches, not as buttons, -// so precautions must be made to synchronize their state to the -// host's caps lock state. +// Copyright 2009 by Hans Huebner (hans.huebner at gmail.com). +// Additional copyrights apply. +// This is the original copyright notice for this file: + /* Keyboard example for Teensy USB Development Board * http://www.pjrc.com/teensy/usb_keyboard.html * Copyright (c) 2008 PJRC.COM, LLC @@ -87,6 +74,8 @@ void init_keyboard_interface(void) { + // Initialize I/O ports used to interface to the keyboard + DDRD = MASK_CLOCK | MASK_CLEAR; PORTD = MASK_CLOCK | MASK_CLEAR | MASK_DIN; } @@ -94,30 +83,34 @@ void poll_keyboard(uint8_t* state) { - PORTD &= ~MASK_CLEAR; - _delay_us(10); - PORTD |= MASK_CLEAR; - _delay_us(100); - for (int i = 0; i < 16; i++) { - uint8_t buf = 0; - for (int j = 0; j < 8; j++) { - buf >>= 1; - PORTD &= ~MASK_CLOCK; - _delay_us(10); - PORTD |= MASK_CLOCK; - _delay_us(40); - if (!(PIND & MASK_DIN)) { - buf |= 0x80; - } + // Read the keyboard shift register into the memory region pointed + // to by state. + + PORTD &= ~MASK_CLEAR; + _delay_us(10); + PORTD |= MASK_CLEAR; + _delay_us(100); + for (int i = 0; i < 16; i++) { + uint8_t buf = 0; + for (int j = 0; j < 8; j++) { + buf >>= 1; + PORTD &= ~MASK_CLOCK; + _delay_us(10); + PORTD |= MASK_CLOCK; + _delay_us(40); + if (!(PIND & MASK_DIN)) { + buf |= 0x80; } - state[i] = buf; } + state[i] = buf; + } } void jump_to_loader(void) { // Jump to the HalfKay (or any other) boot loader + USBCON = 0; asm("jmp 0x3000"); } @@ -159,9 +152,11 @@ // Evaluate key press. switch (keyboard_keys[0]) { + case KEY_B: jump_to_loader(); break; + case KEY_V: report_version(); break; @@ -171,8 +166,8 @@ void send_keys(uint8_t* state) { - // A change of state has been detected by the main loop, report all - // currently pressed keys to the host. + // Report all currently pressed keys to the host. This function + // will be called when a change of state has been detected. uint8_t local = 0; uint8_t caps_lock_pressed = 0; From bknr at bknr.net Wed Apr 8 16:09:09 2009 From: bknr at bknr.net (BKNR Commits) Date: Wed, 08 Apr 2009 18:09:09 +0200 Subject: [bknr-cvs] dverna changed trunk/projects/lisp-ecoop/website/templates/ Message-ID: Revision: 4366 Author: dverna URL: http://bknr.net/trac/changeset/4366 Deadline extension U trunk/projects/lisp-ecoop/website/templates/home.xml U trunk/projects/lisp-ecoop/website/templates/news.xml Modified: trunk/projects/lisp-ecoop/website/templates/home.xml =================================================================== --- trunk/projects/lisp-ecoop/website/templates/home.xml 2009-04-07 11:47:42 UTC (rev 4365) +++ trunk/projects/lisp-ecoop/website/templates/home.xml 2009-04-08 16:09:09 UTC (rev 4366) @@ -33,6 +33,7 @@

Important News

    +
  • The submission deadline has been extended to April 22nd
  • This year, and for the first time, the workshop proceedings will be published in the ACM Digital Library. @@ -75,7 +76,9 @@

    Important Dates

      -
    • Submission deadline: April 08, 2009
    • +
    • + Submission deadline EXTENDED: + April 22, 2009
    • Notification of acceptance: May 08, 2009
    • ECOOP early registration deadline: May 20, 2009
    Modified: trunk/projects/lisp-ecoop/website/templates/news.xml =================================================================== --- trunk/projects/lisp-ecoop/website/templates/news.xml 2009-04-07 11:47:42 UTC (rev 4365) +++ trunk/projects/lisp-ecoop/website/templates/news.xml 2009-04-08 16:09:09 UTC (rev 4366) @@ -35,6 +35,14 @@
--> +

April 8th, 2009

+
    +
  • + Upon request from potential contributors, the deadline for submissions has + been extended. You now have until April 22nd. +
  • +
+

February 23, 2009

2007-xx-yy

  • - Fixed windows support, thanks to Matthew Kennedy and Vodonosov Anton. + Fixed windows support, thanks to Matthew Kennedy and Anton Vodonosov.

@@ -208,7 +259,7 @@

  • - Improved clisp support, thanks + Improved CLISP support, thanks to Pixel // pinterface, as well as client certificate support. Modified: trunk/thirdparty/cl+ssl/package.lisp =================================================================== --- trunk/thirdparty/cl+ssl/package.lisp 2009-04-08 16:23:39 UTC (rev 4370) +++ trunk/thirdparty/cl+ssl/package.lisp 2009-04-09 05:57:32 UTC (rev 4371) @@ -10,6 +10,7 @@ (:use :common-lisp :trivial-gray-streams) (:export #:ensure-initialized #:reload - #:stream-fd - #:make-ssl-client-stream - #:make-ssl-server-stream)) + #:stream-fd + #:make-ssl-client-stream + #:make-ssl-server-stream + #:use-certificate-chain-file)) Modified: trunk/thirdparty/cl+ssl/streams.lisp =================================================================== --- trunk/thirdparty/cl+ssl/streams.lisp 2009-04-08 16:23:39 UTC (rev 4370) +++ trunk/thirdparty/cl+ssl/streams.lisp 2009-04-09 05:57:32 UTC (rev 4371) @@ -165,8 +165,14 @@ #+clozure-common-lisp (defun install-nonblock-flag (fd) - (ccl::fd-set-flags fd (logior (ccl::fd-get-flags fd) #$O_NONBLOCK))) - + (ccl::fd-set-flags fd (logior (ccl::fd-get-flags fd) + #.(read-from-string "#$O_NONBLOCK")))) + ;; read-from-string is necessary because + ;; CLISP and perhaps other Lisps are confused + ;; by #$, signaling"undefined dispatch character $", + ;; even though the defun in conditionalized by + ;; #+clozure-common-lisp + #+(and sbcl (not win32)) (defun install-nonblock-flag (fd) (sb-posix:fcntl fd @@ -220,32 +226,33 @@ ;; fixme: free the context when errors happen in this function (defun make-ssl-client-stream - (socket &key certificate key (method 'ssl-v23-method) external-format + (socket &key certificate key password (method 'ssl-v23-method) external-format close-callback (unwrap-stream-p t)) "Returns an SSL stream for the client socket descriptor SOCKET. CERTIFICATE is the path to a file containing the PEM-encoded certificate for your client. KEY is the path to the PEM-encoded key for the client, which -must not be associated with a passphrase." - (ensure-initialized method) +may be associated with the passphrase PASSWORD." + (ensure-initialized :method method) (let ((stream (make-instance 'ssl-stream :socket socket :close-callback close-callback)) (handle (ssl-new *ssl-global-context*))) (setf socket (install-handle-and-bio stream handle socket unwrap-stream-p)) (ssl-set-connect-state handle) - (install-key-and-cert handle key certificate) + (with-pem-password (password) + (install-key-and-cert handle key certificate)) (ensure-ssl-funcall stream handle #'ssl-connect handle) (handle-external-format stream external-format))) ;; fixme: free the context when errors happen in this function (defun make-ssl-server-stream - (socket &key certificate key (method 'ssl-v23-method) external-format + (socket &key certificate key password (method 'ssl-v23-method) external-format close-callback (unwrap-stream-p t)) "Returns an SSL stream for the server socket descriptor SOCKET. CERTIFICATE is the path to a file containing the PEM-encoded certificate for your server. KEY is the path to the PEM-encoded key for the server, which -must not be associated with a passphrase." - (ensure-initialized method) +may be associated with the passphrase PASSWORD." + (ensure-initialized :method method) (let ((stream (make-instance 'ssl-server-stream :socket socket :close-callback close-callback @@ -256,7 +263,8 @@ (ssl-set-accept-state handle) (when (zerop (ssl-set-cipher-list handle "ALL")) (error 'ssl-error-initialize :reason "Can't set SSL cipher list")) - (install-key-and-cert handle key certificate) + (with-pem-password (password) + (install-key-and-cert handle key certificate)) (ensure-ssl-funcall stream handle #'ssl-accept handle) (handle-external-format stream external-format))) From bknr at bknr.net Thu Apr 9 06:53:29 2009 From: bknr at bknr.net (BKNR Commits) Date: Thu, 09 Apr 2009 08:53:29 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/trivial-gray-streams/mixin.lisp Message-ID: Revision: 4372 Author: hans URL: http://bknr.net/trac/changeset/4372 clisp fixes U trunk/thirdparty/trivial-gray-streams/mixin.lisp Modified: trunk/thirdparty/trivial-gray-streams/mixin.lisp =================================================================== --- trunk/thirdparty/trivial-gray-streams/mixin.lisp 2009-04-09 05:57:32 UTC (rev 4371) +++ trunk/thirdparty/trivial-gray-streams/mixin.lisp 2009-04-09 06:53:29 UTC (rev 4372) @@ -79,7 +79,7 @@ (error "this stream does not support the NO-HANG argument")) (when interactive (error "this stream does not support the INTERACTIVE argument")) - (stream-read-sequence s seq start end)) + (stream-read-sequence s seq start (or end (length seq)))) (defmethod gray:stream-write-byte-sequence ((s trivial-gray-stream-mixin) @@ -89,15 +89,15 @@ (error "this stream does not support the NO-HANG argument")) (when interactive (error "this stream does not support the INTERACTIVE argument")) - (stream-write-sequence s seq start end)) + (stream-write-sequence s seq start (or end (length seq)))) (defmethod gray:stream-read-char-sequence ((s trivial-gray-stream-mixin) seq &optional start end) - (stream-read-sequence s seq start end)) + (stream-read-sequence s seq start (or end (length seq)))) (defmethod gray:stream-write-char-sequence ((s trivial-gray-stream-mixin) seq &optional start end) - (stream-write-sequence s seq start end)) + (stream-write-sequence s seq start (or end (length seq)))) (defmethod gray:stream-position ((stream trivial-gray-stream-mixin) position) (if position From bknr at bknr.net Thu Apr 9 09:08:46 2009 From: bknr at bknr.net (BKNR Commits) Date: Thu, 09 Apr 2009 11:08:46 +0200 Subject: [bknr-cvs] hans changed deployed/bos/projects/bos/payment-website/images/ring_detail.jpg Message-ID: Revision: 4373 Author: hans URL: http://bknr.net/trac/changeset/4373 remove claim at the request of boris U deployed/bos/projects/bos/payment-website/images/ring_detail.jpg Modified: deployed/bos/projects/bos/payment-website/images/ring_detail.jpg =================================================================== (Binary files differ) From bknr at bknr.net Sun Apr 12 11:28:54 2009 From: bknr at bknr.net (BKNR Commits) Date: Sun, 12 Apr 2009 13:28:54 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/zpb-exif-1.0/ Message-ID: Revision: 4374 Author: hans URL: http://bknr.net/trac/changeset/4374 import zpb-exif A trunk/thirdparty/zpb-exif-1.0/ A trunk/thirdparty/zpb-exif-1.0/exif.lisp A trunk/thirdparty/zpb-exif-1.0/zpb-exif.asd A trunk/thirdparty/zpb-exif-1.0/zpb-exif.html Change set too large, please see URL above From bknr at bknr.net Sun Apr 12 11:35:44 2009 From: bknr at bknr.net (BKNR Commits) Date: Sun, 12 Apr 2009 13:35:44 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/ Message-ID: Revision: 4375 Author: hans URL: http://bknr.net/trac/changeset/4375 use versionless directory name _U trunk/thirdparty/cl-gd/ A trunk/thirdparty/zpb-exif/ D trunk/thirdparty/zpb-exif-1.0/ Property changes on: trunk/thirdparty/cl-gd ___________________________________________________________________ Name: svn:ignore - *.ofasl cl-gd-glue.so + *.ofasl cl-gd-glue.so cl-gd-glue.dylib Copied: trunk/thirdparty/zpb-exif (from rev 4374, trunk/thirdparty/zpb-exif-1.0) From bknr at bknr.net Sun Apr 12 11:45:38 2009 From: bknr at bknr.net (BKNR Commits) Date: Sun, 12 Apr 2009 13:45:38 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/bordeaux-threads Message-ID: Revision: 4376 Author: hans URL: http://bknr.net/trac/changeset/4376 use versionless directory name A trunk/thirdparty/bordeaux-threads/ D trunk/thirdparty/bordeaux-threads_0.4.0/ Copied: trunk/thirdparty/bordeaux-threads (from rev 4352, trunk/thirdparty/bordeaux-threads_0.4.0) From bknr at bknr.net Sun Apr 12 11:47:45 2009 From: bknr at bknr.net (BKNR Commits) Date: Sun, 12 Apr 2009 13:47:45 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/cl-base64 Message-ID: Revision: 4377 Author: hans URL: http://bknr.net/trac/changeset/4377 use versionless directory name A trunk/thirdparty/cl-base64/ D trunk/thirdparty/cl-base64-3.3.2/ Copied: trunk/thirdparty/cl-base64 (from rev 4352, trunk/thirdparty/cl-base64-3.3.2) From bknr at bknr.net Sun Apr 12 11:51:11 2009 From: bknr at bknr.net (BKNR Commits) Date: Sun, 12 Apr 2009 13:51:11 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/ Message-ID: Revision: 4378 Author: hans URL: http://bknr.net/trac/changeset/4378 more version number removals A trunk/thirdparty/cl-fad/ D trunk/thirdparty/cl-fad-0.6.2/ A trunk/thirdparty/md5/ D trunk/thirdparty/md5-1.8.5/ A trunk/thirdparty/puri/ D trunk/thirdparty/puri-1.5.1/ D trunk/thirdparty/url-rewrite-0.1.1/ Copied: trunk/thirdparty/cl-fad (from rev 4352, trunk/thirdparty/cl-fad-0.6.2) Copied: trunk/thirdparty/md5 (from rev 4352, trunk/thirdparty/md5-1.8.5) Copied: trunk/thirdparty/puri (from rev 4352, trunk/thirdparty/puri-1.5.1) From bknr at bknr.net Sun Apr 12 11:51:32 2009 From: bknr at bknr.net (BKNR Commits) Date: Sun, 12 Apr 2009 13:51:32 +0200 Subject: [bknr-cvs] hans changed ediware/ Message-ID: Revision: 4379 Author: hans URL: http://bknr.net/trac/changeset/4379 remove version numbers from directory names _U ediware/ Property changes on: ediware ___________________________________________________________________ Name: svn:externals - alexandria svn://bknr.net/svn/trunk/thirdparty/alexandria babel svn://bknr.net/svn/trunk/thirdparty/babel bordeaux-threads svn://bknr.net/svn/trunk/thirdparty/bordeaux-threads_0.4.0 cffi svn://bknr.net/svn/trunk/thirdparty/cffi chunga svn://bknr.net/svn/trunk/thirdparty/chunga cl+ssl svn://bknr.net/svn/trunk/thirdparty/cl+ssl cl-base64 svn://bknr.net/svn/trunk/thirdparty/cl-base64-3.3.2 cl-fad svn://bknr.net/svn/trunk/thirdparty/cl-fad-0.6.2 cl-interpol svn://bknr.net/svn/trunk/thirdparty/cl-interpol cl-ppcre svn://bknr.net/svn/trunk/thirdparty/cl-ppcre cl-unicode svn://bknr.net/svn/trunk/thirdparty/cl-unicode cl-webdav svn://bknr.net/svn/trunk/thirdparty/cl-webdav cl-who svn://bknr.net/svn/trunk/thirdparty/cl-who drakma svn://bknr.net/svn/trunk/thirdparty/drakma flexi-streams svn://bknr.net/svn/trunk/thirdparty/flexi-streams hunchentoot svn://bknr.net/svn/trunk/thirdparty/hunchentoot md5 svn://bknr.net/svn/trunk/thirdparty/md5-1.8.5 puri svn://bknr.net/svn/trunk/thirdparty/puri-1.5.1 rfc2388 svn://bknr.net/svn/trunk/thirdparty/rfc2388 split-sequence svn://bknr.net/svn/trunk/thirdparty/split-sequence trivial-backtrace svn://bknr.net/svn/trunk/thirdparty/trivial-backtrace trivial-features svn://bknr.net/svn/trunk/thirdparty/trivial-features trivial-gray-streams svn://bknr.net/svn/trunk/thirdparty/trivial-gray-streams url-rewrite svn://bknr.net/svn/trunk/thirdparty/url-rewrite-0.1.1 usocket svn://common-lisp.net/project/usocket/svn/usocket/trunk + alexandria svn://bknr.net/svn/trunk/thirdparty/alexandria babel svn://bknr.net/svn/trunk/thirdparty/babel bordeaux-threads svn://bknr.net/svn/trunk/thirdparty/bordeaux-threads cffi svn://bknr.net/svn/trunk/thirdparty/cffi chunga svn://bknr.net/svn/trunk/thirdparty/chunga cl+ssl svn://bknr.net/svn/trunk/thirdparty/cl+ssl cl-base64 svn://bknr.net/svn/trunk/thirdparty/cl-base64 cl-fad svn://bknr.net/svn/trunk/thirdparty/cl-fad cl-interpol svn://bknr.net/svn/trunk/thirdparty/cl-interpol cl-ppcre svn://bknr.net/svn/trunk/thirdparty/cl-ppcre cl-unicode svn://bknr.net/svn/trunk/thirdparty/cl-unicode cl-webdav svn://bknr.net/svn/trunk/thirdparty/cl-webdav cl-who svn://bknr.net/svn/trunk/thirdparty/cl-who drakma svn://bknr.net/svn/trunk/thirdparty/drakma flexi-streams svn://bknr.net/svn/trunk/thirdparty/flexi-streams hunchentoot svn://bknr.net/svn/trunk/thirdparty/hunchentoot md5 svn://bknr.net/svn/trunk/thirdparty/md5 puri svn://bknr.net/svn/trunk/thirdparty/puri rfc2388 svn://bknr.net/svn/trunk/thirdparty/rfc2388 split-sequence svn://bknr.net/svn/trunk/thirdparty/split-sequence trivial-backtrace svn://bknr.net/svn/trunk/thirdparty/trivial-backtrace trivial-features svn://bknr.net/svn/trunk/thirdparty/trivial-features trivial-gray-streams svn://bknr.net/svn/trunk/thirdparty/trivial-gray-streams usocket svn://common-lisp.net/project/usocket/svn/usocket/trunk From bknr at bknr.net Thu Apr 16 06:25:47 2009 From: bknr at bknr.net (BKNR Commits) Date: Thu, 16 Apr 2009 08:25:47 +0200 Subject: [bknr-cvs] hans changed trunk/projects/poll-postbank.lisp/ Message-ID: Revision: 4380 Author: hans URL: http://bknr.net/trac/changeset/4380 Send bank account updates through SMS A trunk/projects/poll-postbank.lisp/ A trunk/projects/poll-postbank.lisp/poll-postbank.lisp Added: trunk/projects/poll-postbank.lisp/poll-postbank.lisp =================================================================== --- trunk/projects/poll-postbank.lisp/poll-postbank.lisp (rev 0) +++ trunk/projects/poll-postbank.lisp/poll-postbank.lisp 2009-04-16 06:25:46 UTC (rev 4380) @@ -0,0 +1,35 @@ + +(defun poll-postbank (kontonummer password) + (let ((headers (nth-value 2 + (drakma:http-request "https://banking.postbank.de/app/login.do" + :method :post + :parameters (list (cons "accountNumber" kontonummer) + (cons "pinNumber" password)))))) + (cl-ppcre:register-groups-bind (jsessionid) (".*jsessionid=([^;]*)" + (or (cdr (assoc :location headers)) + (error "no Location header found in response"))) + (flexi-streams:octets-to-string + (drakma:http-request (format nil "https://banking.postbank.de/app/kontoumsatz.umsatz.init.do;jsessionid=~A?~ + action=download&cache=true&konto=~A" + jsessionid kontonummer)))))) + +(defun umsatz-xml (kontonummer password) + (cxml:with-xml-output (cxml:make-character-stream-sink *standard-output*) + (cxml:with-element "Kontostatus" + (let ((in-header t)) + (cl-ppcre:do-matches-as-strings (line ".*(?>\\r?\\n)" (poll-postbank kontonummer password)) + (cond + (in-header + (cond + ((cl-ppcre:scan "^Datum" line) + (setf in-header nil)))) + (t + (cxml:with-element "Umsatz" + (loop + for name in '("Datum" "Wertstellung" "Art" "Buchungshinweis" "Auftraggeber" "Empfaenger" "Betrag" "Saldo") + for value in (cl-ppcre:split "\\t" line) + do (cxml:with-element name + (cxml:text value))))))))))) + +(defun umsatz-plist (kontonummer password) + ) \ No newline at end of file From bknr at bknr.net Thu Apr 16 06:26:40 2009 From: bknr at bknr.net (BKNR Commits) Date: Thu, 16 Apr 2009 08:26:40 +0200 Subject: [bknr-cvs] hans changed trunk/projects/poll-postbank Message-ID: Revision: 4381 Author: hans URL: http://bknr.net/trac/changeset/4381 oops, wrong name A trunk/projects/poll-postbank/ D trunk/projects/poll-postbank.lisp/ Copied: trunk/projects/poll-postbank (from rev 4380, trunk/projects/poll-postbank.lisp) From bknr at bknr.net Thu Apr 16 06:42:30 2009 From: bknr at bknr.net (BKNR Commits) Date: Thu, 16 Apr 2009 08:42:30 +0200 Subject: [bknr-cvs] hans changed trunk/projects/poll-postbank/ Message-ID: Revision: 4382 Author: hans URL: http://bknr.net/trac/changeset/4382 snapshot _U trunk/projects/poll-postbank/ A trunk/projects/poll-postbank/package.lisp A trunk/projects/poll-postbank/poll-postbank.asd U trunk/projects/poll-postbank/poll-postbank.lisp Property changes on: trunk/projects/poll-postbank ___________________________________________________________________ Name: svn:ignore + poll-postbank.mem *.fas *.lib Added: trunk/projects/poll-postbank/package.lisp =================================================================== --- trunk/projects/poll-postbank/package.lisp (rev 0) +++ trunk/projects/poll-postbank/package.lisp 2009-04-16 06:42:30 UTC (rev 4382) @@ -0,0 +1,4 @@ +(defpackage :poll-postbank + (:nicknames :pp) + (:use :cl) + (:export #:run)) \ No newline at end of file Property changes on: trunk/projects/poll-postbank/package.lisp ___________________________________________________________________ Name: svn:executable + * Added: trunk/projects/poll-postbank/poll-postbank.asd =================================================================== --- trunk/projects/poll-postbank/poll-postbank.asd (rev 0) +++ trunk/projects/poll-postbank/poll-postbank.asd 2009-04-16 06:42:30 UTC (rev 4382) @@ -0,0 +1,16 @@ +;;;; -*- lisp -*- + +(in-package :cl-user) + +(defpackage :poll-postbank.system + (:use :cl :asdf)) + +(in-package :poll-postbank.system) + +(defsystem :poll-postbank + :name "poll-postbank" + :licence "BSD" + :depends-on (:drakma :cxml :cl-ppcre) + :serial t + :components ((:file "package") + (:file "poll-postbank"))) Property changes on: trunk/projects/poll-postbank/poll-postbank.asd ___________________________________________________________________ Name: svn:executable + * Modified: trunk/projects/poll-postbank/poll-postbank.lisp =================================================================== --- trunk/projects/poll-postbank/poll-postbank.lisp 2009-04-16 06:26:40 UTC (rev 4381) +++ trunk/projects/poll-postbank/poll-postbank.lisp 2009-04-16 06:42:30 UTC (rev 4382) @@ -1,3 +1,4 @@ +(in-package :poll-postbank) (defun poll-postbank (kontonummer password) (let ((headers (nth-value 2 @@ -32,4 +33,8 @@ (cxml:text value))))))))))) (defun umsatz-plist (kontonummer password) - ) \ No newline at end of file + ) + +(defun run (kontonummer password) + (asdf:oos 'asdf:load-op :cl+ssl) + (poll-postbank kontonummer password)) \ No newline at end of file From bknr at bknr.net Thu Apr 16 16:42:38 2009 From: bknr at bknr.net (BKNR Commits) Date: Thu, 16 Apr 2009 18:42:38 +0200 Subject: [bknr-cvs] hans changed trunk/projects/poll-postbank/poll-postbank.lisp Message-ID: Revision: 4383 Author: hans URL: http://bknr.net/trac/changeset/4383 snapshot U trunk/projects/poll-postbank/poll-postbank.lisp Modified: trunk/projects/poll-postbank/poll-postbank.lisp =================================================================== --- trunk/projects/poll-postbank/poll-postbank.lisp 2009-04-16 06:42:30 UTC (rev 4382) +++ trunk/projects/poll-postbank/poll-postbank.lisp 2009-04-16 16:42:38 UTC (rev 4383) @@ -1,5 +1,20 @@ (in-package :poll-postbank) +(defparameter *header-scanner* (cl-ppcre:create-scanner + "Kontoums??tze Postbank Girokonto + +Name: (.*) +BLZ: (.*) +Kontonummer: (.*) +IBAN: (.*) + +Aktueller Kontostand: (.*) Euro +Summe vorgemerkter Ums??tze: (.*) Euro + +Datum Wertstellung Art Buchungshinweis Auftraggeber Empf??nger Betrag Euro Saldo Euro" + :multi-line-mode t)) + + (defun poll-postbank (kontonummer password) (let ((headers (nth-value 2 (drakma:http-request "https://banking.postbank.de/app/login.do" @@ -17,20 +32,27 @@ (defun umsatz-xml (kontonummer password) (cxml:with-xml-output (cxml:make-character-stream-sink *standard-output*) (cxml:with-element "Kontostatus" - (let ((in-header t)) - (cl-ppcre:do-matches-as-strings (line ".*(?>\\r?\\n)" (poll-postbank kontonummer password)) - (cond - (in-header - (cond - ((cl-ppcre:scan "^Datum" line) - (setf in-header nil)))) - (t - (cxml:with-element "Umsatz" - (loop - for name in '("Datum" "Wertstellung" "Art" "Buchungshinweis" "Auftraggeber" "Empfaenger" "Betrag" "Saldo") - for value in (cl-ppcre:split "\\t" line) - do (cxml:with-element name - (cxml:text value))))))))))) + (let ((status-string (poll-postbank kontonummer password))) + (cl-ppcre:do-register-groups (name blz kontonummer iban kontostand summe-vorgemerkt) + (*header-scanner* status-string) + (cxml:with-element "Name" (cxml:text name)) + (cxml:with-element "BLZ" (cxml:text blz)) + (cxml:with-element "Kontonummer" (cxml:text kontonummer)) + (cxml:with-element "IBAN" (cxml:text iban)) + (cxml:with-element "Kontostand" (cxml:text kontostand)) + (cxml:with-element "SummeVorgemerkt" (cxml:text summe-vorgemerkt))) + #+(or) + (destructuring-bind (nothing bewegungen) + (cl-ppcre:split *header-scanner* status-string) + (declare (ignore nothing)) + (cxml:with-element "Bewegungen" + (cl-ppcre:do-matches-as-strings (line ".*(?>\\r?\\n)" bewegungen) + (cxml:with-element "Umsatz" + (loop + for name in '("Datum" "Wertstellung" "Art" "Buchungshinweis" "Auftraggeber" "Empfaenger" "Betrag" "Saldo") + for value in (cl-ppcre:split "\\t" line) + do (cxml:with-element name + (cxml:text value))))))))))) (defun umsatz-plist (kontonummer password) )