[mcclim-cvs] CVS mcclim/Backends/CLX
afuchs
afuchs at common-lisp.net
Tue Sep 11 19:54:40 UTC 2007
Update of /project/mcclim/cvsroot/mcclim/Backends/CLX
In directory clnet:/tmp/cvs-serv11367/Backends/CLX
Modified Files:
port.lisp
Log Message:
In parse-clx-server-path, assert that $DISPLAY is set.
Idea and draft implementation by fax on #lisp.
--- /project/mcclim/cvsroot/mcclim/Backends/CLX/port.lisp 2007/07/22 06:30:41 1.128
+++ /project/mcclim/cvsroot/mcclim/Backends/CLX/port.lisp 2007/09/11 19:54:40 1.129
@@ -169,33 +169,35 @@
(defun parse-clx-server-path (path)
(pop path)
- (let* ((name (get-environment-variable "DISPLAY"))
- ;; this code courtesy telent-clx.
- (slash-i (or (position #\/ name) -1))
- (colon-i (position #\: name :start (1+ slash-i)))
- (decnet-colon-p (eql (elt name (1+ colon-i)) #\:))
- (host (subseq name (1+ slash-i) colon-i))
- (dot-i (and colon-i (position #\. name :start colon-i)))
- (display (when colon-i
- (parse-integer name
- :start (if decnet-colon-p
- (+ colon-i 2)
- (1+ colon-i))
- :end dot-i)))
- (screen (when dot-i
- (parse-integer name :start (1+ dot-i))))
- (protocol
- (cond ((or (string= host "") (string-equal host "unix")) :local)
- (decnet-colon-p :decnet)
- ((> slash-i -1) (intern
- (string-upcase (subseq name 0 slash-i))
- :keyword))
- (t :internet))))
- (list :clx
- :host (getf path :host host)
- :display-id (getf path :display-id (or display 0))
- :screen-id (getf path :screen-id (or screen 0))
- :protocol protocol)))
+ (let ((name (get-environment-variable "DISPLAY")))
+ (assert name (name)
+ "Environment variable DISPLAY is not set")
+ (let* (; this code courtesy telent-clx.
+ (slash-i (or (position #\/ name) -1))
+ (colon-i (position #\: name :start (1+ slash-i)))
+ (decnet-colon-p (eql (elt name (1+ colon-i)) #\:))
+ (host (subseq name (1+ slash-i) colon-i))
+ (dot-i (and colon-i (position #\. name :start colon-i)))
+ (display (when colon-i
+ (parse-integer name
+ :start (if decnet-colon-p
+ (+ colon-i 2)
+ (1+ colon-i))
+ :end dot-i)))
+ (screen (when dot-i
+ (parse-integer name :start (1+ dot-i))))
+ (protocol
+ (cond ((or (string= host "") (string-equal host "unix")) :local)
+ (decnet-colon-p :decnet)
+ ((> slash-i -1) (intern
+ (string-upcase (subseq name 0 slash-i))
+ :keyword))
+ (t :internet))))
+ (list :clx
+ :host (getf path :host host)
+ :display-id (getf path :display-id (or display 0))
+ :screen-id (getf path :screen-id (or screen 0))
+ :protocol protocol))))
(setf (get :x11 :port-type) 'clx-port)
(setf (get :x11 :server-path-parser) 'parse-clx-server-path)
More information about the Mcclim-cvs
mailing list