Hi,
I think that *unsupplied-argument-marker* (and *numeric-argument-marker*) should not be uninterned symbols or conses. The basic reason is that
(define-command-table foo-menu-table :menu (("Foo" (com-foo #.*unsupplied-argument-marker*))))
or any other use of the literal value of the markers will not survive a compile-file/load-fasl cycle: a "similar" but not EQ value will be constructed. This causes PARTIAL-COMMAND-P to fail, and confusion to reign. Patch attached (making the markers uninterned symbols -- one could imagine cleverer, interned struct representations, but that's probably overkill).
Also attached is a proposed adjustment to the READ-FRAME-COMMAND :AROUND handling of menu-items and partial commands. At the moment, the method only attempts to fill in partial command arguments if the input stream is an interactor-pane; and command-line-read-arguments is hardcoded. The second piece of the attached patch removes both of these restrictions, which is what is needed for my application, but I'm unsure of the general ramifications.
(I need the removal of the interactor-pane requirement because esa:minibuffer-pane is not a clim:interactor-pane. I'm not sure why not, nor what the protocol requirements on interactor-panes are.)
Comments? I think that these changes are fairly safe, but there might be better fixes that are less conservative.
Best,
Christophe