Lisp HUG Maillist Archive

Linux Option Pane Bug?

Hello all, 
   I like the addition of the separator in the option panes that I've
noticed in 4.4.5 (perhaps
it was earlier, but that's when I noticed). I've noticed a quirk on
LWL 4.4.5 though, and I
think it's a bug. 

I was moving some code from Mac to Linux, and one of my interfaces
wouldn't display. I
tracked the problem down to something analogous to the following code
snippet. It seems
that on Linux, if a print-function is provided, it needs to return a
string for every item,
including the separator item, even though the string returned for the separator 
is never displayed. I assume that in the case that no print-function
is specified the
one used by Lispworks provides something for the separator item, as
well. As I said,
nothing hard to work around, but seemed like a bug to me..

;; doesn't work in Linux
(capi:contain (make-instance 'capi:option-pane
                             :separator-item :separator
                             :print-function #'(lambda (x)
                                                 (cdr (assoc x '((a . "a")
                                                                 (b . "b")))))
                             :items '(a :separator b)))

;; works in Linux
(capi:contain (make-instance 'capi:option-pane
                             :separator-item :separator
                             :print-function #'(lambda (x)
                                                 (or (cdr (assoc x '((a . "a")
                                                                    
(b . "b"))))
                                                     "other value"))
                             :items '(a :separator b)))
-- 
=====================
Joshua Taylor
tayloj@rpi.edu


Updated at: 2020-12-10 08:52 UTC