CLIM mail archive
[Prev][Next][Index][Thread]
partial-command-parser
Hi CLIMers,
I'm using CLIM 1.1 for MCL 2.0. I'm trying to use the value of
clim:*partial-command-parser*, to fill inn the unsupplied-argument
of a command. The doc of read-command says:
:partial-command-parser
A function of four arguments, command-table, stream, partial-command and
start-position.
For one thing, the order of the arguments must be wrong, because the
partial command parser tries to find unsupplied arguments in its first
argument, not the third. In my code, I make a window with
clim:open-window-stream and give it as the third argument (the stream).
This gives an error telling me that STREAM isn't an interactive stream.
The strange thing is that it often works, it seems the problem occurs when
the command name looks a bit like other command names in the same command
table, as if clim was doing completion behind the scenes or something like that.
I've tried to give several other arguments as the stream, including the
standard-input and *query-io*, both give the same error message.
I also tried using with-input-editing:
(defun read-unsupplied-arguments (command &optional (frame clim:*application-
frame*))
(unwind-protect
(let ((new-stream (clim:frame-standard-input frame)))
(clim:with-input-editing (new-stream)
(funcall clim:*partial-command-parser* command
(clim:find-command-table (clim:frame-command-table frame))
new-stream 0)
))
(setf (clim:window-visibility new-stream) nil))
)
This looks better in that no error message occurs, but clim enters an infinite
loop, printing out the command name on the stream. The same thing happens when
new-stream in the code is bound to the result of calling
clim:open-window-stream.
So, my question is: How do I make a stream suitable for use by the value of
clim:*partial-command-parser*? Or perhaps: How do I use the value of
clim:*partial-command-parser*?
Regards,
Hallvard Traetteberg
Follow-Ups:
Main Index |
Thread Index