#1: Bug in handling of delimiter/completion gestures in McCLIM input editing ---------------------------------+------------------------------------------ Reporter: thenriksen | Owner: somebody Type: defect | Status: new Priority: major | Milestone: Component: component1 | Version: Keywords: Drei, input-editing | ---------------------------------+------------------------------------------ Observe the following presentation type definition:
{{{ (in-package :clim-user)
(define-presentation-type unacceptable ())
(define-presentation-method accept ((type unacceptable) stream view &key) (with-delimiter-gestures (#\Space) (list (accept 'package :stream stream :view view :prompt nil) (accept 'package :stream stream :view view :prompt nil))))
}}}
Using Drei, doing (accept 'unacceptable) will work while accepting the first package, but when you press space to accept the second one, a debugger will pop up and inform you that you did not provide any input, and that there is not a default value. I think the problem is that the delimiter gesture is "re-evaluated" as a terminating delimiter gesture. The problem does not show up with Goatee, because Goatee implements a non- standard hack with which you can inhabit rescanning by providing :rescan nil as argument to ''replace-input''. This is used in the completion done when pressing space after entering the first package name. I don't think the McCLIM input editing routines should expect input-editing-streams to implement nonstandard hacks in order to work properly, but I haven't yet been able to figure out how to fix this. In case anyone is interested, I think the buggy function is ''complete-input''. At least, that's where the ''replace-input''-call is. This is a very serious problem that prevents Drei from being able to accept many interesting presentation types, including some seen in classic CLIM applications.
#1: Bug in handling of delimiter/completion gestures in McCLIM input editing -------------------------+-------------------------------------------------- Reporter: thenriksen | Owner: thenriksen Type: defect | Status: new Priority: major | Milestone: Component: component1 | Version: Resolution: | Keywords: Drei, input-editing -------------------------+-------------------------------------------------- Changes (by thenriksen):
* owner: somebody => thenriksen
#1: Bug in handling of delimiter/completion gestures in McCLIM input editing -------------------------+-------------------------------------------------- Reporter: thenriksen | Owner: thenriksen Type: defect | Status: closed Priority: major | Milestone: Component: general | Version: Resolution: fixed | Keywords: Drei, input-editing -------------------------+-------------------------------------------------- Changes (by thenriksen):
* resolution: => fixed * status: new => closed
Comment:
Fixed by implementing the Goatee-style hack. You need to be careful when using it, but you can only harm yourself, so perhaps it's not too bad. "I wonder what classic CLIM does."®