Hi all,
I've given up looking for this one for now, maybe people familiar with the code in question know what's going on. If you simply set the gadget-value of a text-editor-pane to a string with a newline in it (I assume that's how you set up multiline text, right?) and then set a new value, moving the cursor (home key in this example) can yield the following error:
(setf (gadget-value *edit*) (format nil "test~%test"))
(setf (gadget-value *edit*) "test")
The value -1 is not of type (MOD 536870911). [Condition of type TYPE-ERROR]
Restarts: 0: [ABORT] Return to application command loop 1: [TERMINATE-THREAD] Terminate this thread (#<THREAD {A8629D9}>)
Backtrace: 0: ((SB-PCL::FAST-METHOD GOATEE::BUFFER-STRING (GOATEE::BASIC-BUFFER)) #<unavailable argument> #<unavailable argument> #<GOATEE::EDITABLE-BUFFER {AA30B61}> NIL) 1: ((SB-PCL::FAST-METHOD HANDLE-EVENT (TEXT-FIELD-PANE KEY-PRESS-EVENT)) (#(NIL 65) . #()) #<unavailable argument> #<TEXT-EDITOR-PANE FORM-EDIT {A8BB141}> #<KEY-PRESS-EVENT {B491439}>) 2: (CLIM-INTERNALS::HANDLE-NON-STREAM-EVENT #<CLIM-INTERNALS::PORT-EVENT-QUEUE {A862931}>) 3: ((SB-PCL::FAST-METHOD STREAM-INPUT-WAIT [ ... ]
The value doesn't have to be -1 btw...
If I'm not mistaken, the problem is that additional undefined characters are inserted mistakenly (visible cues too). The size of the editable-buffer is not correspondingly updated, so after deletion there's a negative size value.
Thanks in advance for any help,
Chris