[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [STUMP] Why doesnot mpd module support CCL ?
From: |
Vitaly Mayatskikh |
Subject: |
Re: [STUMP] Why doesnot mpd module support CCL ? |
Date: |
Sun, 22 Apr 2012 01:31:43 -0400 |
User-agent: |
Wanderlust/2.15.9 (Almost Unreal) Emacs/23.4 Mule/6.0 (HANACHIRUSATO) |
At Sat, 21 Apr 2012 09:44:15 +0800, z_axis wrote:
> The mpd module works great with SBCL. But it seems that the mpd module
> doesnot support CCL.
>
> Would anyone knowing CCL like to hack it to support CCL ?
From my local git repo:
===File /tmp/123============================================
commit 1e206af2f3dd40060c8ef3f169af081d5fd646a6
Author: Vitaly Mayatskikh <address@hidden>
Date: Sun Aug 7 20:16:20 2011 -0400
contrib/mpd.lisp: added support for Clozure CL.
diff --git a/contrib/mpd.lisp b/contrib/mpd.lisp
index 954fe01..1013e33 100644
--- a/contrib/mpd.lisp
+++ b/contrib/mpd.lisp
@@ -48,7 +48,7 @@
;;; CODE:
-#-(or sbcl clisp) (error "unimplemented")
+#-(or sbcl clisp ccl) (error "unimplemented")
(in-package :stumpwm)
@@ -108,7 +108,7 @@
;;mpd client
(defparameter *mpd-socket* nil)
(defparameter *mpd-server*
- #+clisp
+ #+(or clisp ccl)
"localhost"
#+sbcl
#(127 0 0 1)
@@ -138,10 +138,11 @@
(with-mpd-connection
(#+clisp
ext:write-char-sequence
- #+sbcl
+ #+(or sbcl ccl)
write-sequence
(concatenate 'string command (string #\Newline))
- *mpd-socket*)))
+ *mpd-socket*)
+ (force-output *mpd-socket*)))
(defun mpd-send-command (cmd)
(mpd-send cmd)
@@ -183,24 +184,26 @@
(defun init-mpd-connection ()
"Connect to mpd server"
(setf *mpd-socket*
+ (handler-case
#+clisp
- (handler-case (socket:socket-connect *mpd-port* *mpd-server*
- :element-type 'character)
- ((or system::simple-os-error error)
- (err)
- (format t "Error connecting to mpd: ~a~%" err)))
+ (socket:socket-connect *mpd-port* *mpd-server*
+ :element-type 'character)
#+sbcl
- (handler-case (let ((s (make-instance 'sb-bsd-sockets:inet-socket
- :type :stream :protocol :tcp)))
- (sb-bsd-sockets:socket-connect s *mpd-server*
- *mpd-port*)
- (sb-bsd-sockets:socket-make-stream s
- :input t
- :output t
- :buffering :none))
- ((or simple-error error)
- (err)
- (format t "Error connecting to mpd: ~a~%" err))))
+ (let ((s (make-instance 'sb-bsd-sockets:inet-socket
+ :type :stream :protocol :tcp)))
+ (sb-bsd-sockets:socket-connect s *mpd-server* *mpd-port*)
+ (sb-bsd-sockets:socket-make-stream s
+ :input t
+ :output t
+ :buffering :none))
+ #+ccl
+ (let ((s (ccl:make-socket :connect :active :format :text
+ :remote-host *mpd-server*
+ :remote-port *mpd-port*)))
+ (setf (stream-external-format s) :utf-8)
+ s)
+ (error (err)
+ (format t "Error connecting to mpd: ~a~%" err))))
(when *mpd-socket*
(when *mpd-timeout*
(setf *mpd-timer*
============================================================
--
wbr, Vitaly