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
+
+
+
+
+
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.
+
+ 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.
+
+ 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 @@
Function CL+SSL:ENSURE-INITIALIZED (&key (method 'ssl-v23-method) (rand-seed nil))
+ In most cases you do not need to call this function, because it is called
+ automatically. The only reason to call it explicitly is to supply the rand-seed parameter.
+ In this case do it before calling any other functions.
+
+
+ Keyword arguments:
+
+
+ method. Just leave its default value.
+
+
+ rand-seed is an octet sequence to initialize OpenSSL random number generator.
+ On many platforms, including Linux and Windows, it may be leaved NIL (default),
+ because OpenSSL initializes the random number generator from OS specific service. But for
+ example on Solaris it may be necessary to supply this value. The minimum length required
+ by OpenSSL is 128 bits. See here
+ http://www.openssl.org/support/faq.html#USER1 for the details.
+
+
+ Hint: do not use Common Lisp RANDOM function to generate the rand-seed, because the function
+ usually returns predictable values.
+
Return an SSL stream for the client (server)
socket fd-or-stream. All reads and writes to this
stream will be pushed through the OpenSSL library.
@@ -121,10 +145,13 @@
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.
+ certificate.
+ key is the path to the PEM-encoded key, which may be associated
+ with the passphrase password.
+
+
If external-format is nil (the default), a plain
(unsigned-byte 8) SSL stream is returned. With a
non-null external-format, a flexi-stream capable of
@@ -132,6 +159,18 @@
as its initial external format.
+
Function CL+SSL:USE-CERTIFICATE-CHAIN-FILE (certificate-chain-file)
+ Loads a PEM encoded certificate chain file certificate-chain-file
+ and adds the chain to global context. The certificates must be sorted
+ starting with the subject's certificate (actual client or server certificate),
+ followed by intermediate CA certificates if applicable, and ending at
+ the highest level (root) CA.
+
+
+ Note: the RELOAD function clears the global
+ context and in particular the loaded certificate chain.
+
+
Function CL+SSL:RELOAD ()
Reload libssl. Call this function after restarting a Lisp
core with CL+SSL dumped into it on Lisp implementations that do
@@ -194,13 +233,25 @@
Support for I/O deadlines (Clozure CL and SBCL).
+
+ Support for encrypted keys, thanks to Vsevolod Dyomkin.
+
+
+ Chained certificates support, thanks to Juhani R?nkimies.
+
+
+ More secure initialization of OpenSSL random number generator.
+
+
+ Minor CLISP-specific fixes.
+
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)
)