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