[beirc-cvs] CVS beirc
afuchs
afuchs at common-lisp.net
Tue Mar 21 22:45:03 UTC 2006
Update of /project/beirc/cvsroot/beirc
In directory clnet:/tmp/cvs-serv21100
Modified Files:
presentations.lisp application.lisp
Log Message:
Make com-close accept a list of receivers; default to the current one.
Also, add an explanatory comment about multiple RET hitting to completion.
--- /project/beirc/cvsroot/beirc/presentations.lisp 2006/03/16 20:44:56 1.11
+++ /project/beirc/cvsroot/beirc/presentations.lisp 2006/03/21 22:45:03 1.12
@@ -63,14 +63,18 @@
(declare (ignore string))
(present (irc:nickname object) 'nickname :stream stream))
+
+;; FIXME: complete-input here and (accept 'command) in
+;; read-frame-command means that every command that takes a 'mumble
+;; argument must be terminated by hitting RET twice. ugh.
(define-presentation-method accept ((type mumble) *standard-input* (view textual-view) &key)
(with-delimiter-gestures (nil :override t)
- (let ((*completion-gestures* '(#\Tab)))
- (nth-value 2
- (complete-input *standard-input* 'nickname-completer
- #+(or):possibility-printer #+(or) 'nickname-competion-printer
- :allow-any-input t
- :partial-completers '())))))
+ . (let ((*completion-gestures* '(#\Tab)))
+ (nth-value 2
+ (complete-input *standard-input* 'nickname-completer
+ #+(or):possibility-printer #+(or) 'nickname-competion-printer
+ :allow-any-input t
+ :partial-completers '())))))
;;; nicknames
--- /project/beirc/cvsroot/beirc/application.lisp 2006/03/21 15:23:35 1.66
+++ /project/beirc/cvsroot/beirc/application.lisp 2006/03/21 22:45:03 1.67
@@ -411,17 +411,18 @@
(define-window-switcher com-window-next (:next :control) 1 (constantly t))
(define-window-switcher com-window-previous (:prior :control) -1 (constantly t))))
-(define-beirc-command (com-close :name t) ((receiver 'receiver :prompt "tab"))
- (let* ((connection (connection receiver))
- (channel (irc:find-channel connection (title receiver))))
- (cond
- ((member receiver (server-receivers *application-frame*) :key #'cdr)
- (disconnect connection *application-frame* "Client Quit")
- (setf (slot-value *application-frame* 'server-receivers)
- (delete receiver (server-receivers *application-frame*) :key #'cdr)))
- (channel
- (irc:part connection channel))))
- (remove-receiver receiver *application-frame*))
+(define-beirc-command (com-close :name t) ((receivers '(sequence receiver) :prompt "tab" :default (list (current-receiver *application-frame*))))
+ (dolist (receiver receivers)
+ (let* ((connection (connection receiver))
+ (channel (irc:find-channel connection (title receiver))))
+ (cond
+ ((member receiver (server-receivers *application-frame*) :key #'cdr)
+ (disconnect connection *application-frame* "Client Quit")
+ (setf (slot-value *application-frame* 'server-receivers)
+ (delete receiver (server-receivers *application-frame*) :key #'cdr)))
+ (channel
+ (irc:part connection channel))))
+ (remove-receiver receiver *application-frame*)))
(macrolet ((define-scroller-command ((com-name keystroke) (top-var bot-var) next-pos-form &optional fallback-position)
`(define-beirc-command (,com-name :name t :keystroke ,keystroke) ()
More information about the Beirc-cvs
mailing list