CLIM mail archive
Use of CLIM:EXPRESSION in interactor commands
CLIM 2.0-beta on LispWorks-3.2.21-beta-4
CLIM 2.0 on Allegro 4.2
How can I correctly include arguments of type CLIM:EXPRESSION within
an interactor command, such as the one below?
(define-clim-expr-command (clim-expr::make-cons :name t :menu t)
(format t "~&~s~&" (cons car cdr)))
The above command works fine if I enter arguments that have no
embedded #\Space; but if I try to enter (A B), I get an error because
the CLIM command processor interprets the #\Space as an argument
delimiter and is unable to read a complete Lisp expression from "(A".
On the other hand, if I use :AUTO-ACTIVATE T, at least one
implementation correctly reads a list or string (i.e., a Lisp object
whose printed representation has a specific delimiter) as an argument,
but then no longer correctly handles a #\Space meant to delimit a
number or symbol. Instead, I have to use #\Tab, which correctly
delimits the argument but looks funny.
Perhaps the CLIM:ACCEPT method for CLIM:EXPRESSION ought to turn off
the argument-delimiting behavior of #\Space during collection of
obviously incomplete input. When its input is apparently complete,
the value of :AUTO-ACTIVATE would then determine whether to wait for
an explicit delimiter or simply return the value found.
Lawrence G. Mayka
AT&T Bell Laboratories
Main Index |