stumpwm-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]