[beirc-cvs] CVS update: beirc/application.lisp beirc/presentations.lisp

Andreas Fuchs afuchs at common-lisp.net
Fri Sep 30 13:30:58 UTC 2005


Update of /project/beirc/cvsroot/beirc
In directory common-lisp.net:/tmp/cvs-serv14091

Modified Files:
	application.lisp presentations.lisp 
Log Message:
Query for a sarcastic kick message on /kick. Also, fix  completion of incomplete nicknames

Date: Fri Sep 30 15:30:56 2005
Author: afuchs

Index: beirc/application.lisp
diff -u beirc/application.lisp:1.17 beirc/application.lisp:1.18
--- beirc/application.lisp:1.17	Thu Sep 29 16:51:25 2005
+++ beirc/application.lisp	Fri Sep 30 15:30:34 2005
@@ -346,8 +346,8 @@
 (define-beirc-command (com-ban-hostmask :name t) ((who 'hostmask :prompt "hostmask"))
   (irc:ban (current-connection *application-frame*) (target) who))
 
-(define-beirc-command (com-kick :name t) ((who 'nickname :prompt "who"))
-  (irc:kick (current-connection *application-frame*) (target) who))
+(define-beirc-command (com-kick :name t) ((who 'nickname :prompt "who") (reason 'mumble :prompt "reason"))
+  (irc:kick (current-connection *application-frame*) (target) who reason))
 
 (define-beirc-command (com-names :name t) ()
   (irc:names (current-connection *application-frame*) (target)))
@@ -440,7 +440,11 @@
               :documentation "Kick this user"
               :pointer-documentation "Kick this user")
     (object)
-  (list object))
+  (list object
+        ;; XXX: not the best way to do it. McCLIM should recognize
+        ;; that this is a partial command and query for the rest of
+        ;; the args itself.
+        (accept 'mumble :prompt " Reason")))
 
 (define-presentation-to-command-translator nickname-to-ban-nick-translator
     (nickname com-ban-nick beirc


Index: beirc/presentations.lisp
diff -u beirc/presentations.lisp:1.5 beirc/presentations.lisp:1.6
--- beirc/presentations.lisp:1.5	Wed Sep 28 21:33:28 2005
+++ beirc/presentations.lisp	Fri Sep 30 15:30:36 2005
@@ -27,10 +27,11 @@
 
 (defun nickname-completer (so-far mode)
   (multiple-value-bind (word prefix) (split-input-line so-far)
-    (labels ((prefixify (word)
-               (if (zerop (length prefix))
-                   (concatenate 'string word ": ")
-                   (concatenate 'string prefix word " "))))
+    (labels ((prefixify (word &optional (success t))
+               (concatenate 'string prefix word
+                            (cond ((not success) "")
+                                  ((zerop (length prefix)) ": ")
+                                  (t " ")))))
       (multiple-value-bind (string success object nmatches possibilities)
           (complete-from-possibilities word
                                        (let ((channel (and
@@ -38,15 +39,16 @@
                                                        (irc:find-channel
                                                         (current-connection *application-frame*)
                                                         (current-channel)))))
-                                        (if (not (null channel))
-                                            (hash-alist (irc:users channel))
-                                            nil))
+                                         (if (not (null channel))
+                                             (hash-alist (irc:users channel))
+                                             nil))
                                        '()
                                        :action mode
                                        :value-key #'cdr)
-        (values (prefixify (if (null object)
+        (values (prefixify (if (not success)
                                string
-                               (irc:nickname object)))
+                               (irc:nickname object))
+                           success)
                 success object nmatches (mapcar (lambda (possibility)
                                                   (cons (prefixify (car possibility))
                                                         (cdr possibility)))




More information about the Beirc-cvs mailing list