<br><br><div class="gmail_quote">2008/10/22 Martin Kielhorn <span dir="ltr"><<a href="mailto:kielhorn.martin@googlemail.com">kielhorn.martin@googlemail.com</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
hi,<br>i tried to install cells-gtk following the instructions from<br><a href="http://www.washbear-network.de/peterblog/getting-started-with-cells-gtk" target="_blank">http://www.washbear-network.de/peterblog/getting-started-with-cells-gtk</a><br>

<br>and<br><a href="http://www.washbear-network.de/peterblog/2008/04/13/cells-gtk3/" target="_blank">http://www.washbear-network.de/peterblog/2008/04/13/cells-gtk3/</a><br><br>But I can't even run the examples. There seems to be an error in how strings<br>

are handled.</blockquote><div><br>I resolved the issue by changing  the following lines in  gtk-ffi/gtk-ffi-impl.lisp (I removed the extra code for sbcl by renaming #+sbcl to #+sbcl2):<br><br> (defun lisp-to-utf-8 (str)<br>
  #-(or clisp sbcl2) (return-from lisp-to-utf-8 str)<br>  (when str<br>    #+clisp (ext:convert-string-to-bytes str charset:utf-8)<br>    #+sbcl2 (sb-ext:string-to-octets str :external-format :utf-8)))<br><br>(defun utf-8-to-lisp (str)<br>
  #-(or clisp sbcl2) (return-from utf-8-to-lisp str)<br>  (when str<br>    (let* ((nat (lisp-to-utf-8 str))<br>           (oct (coerce (loop for i from 0 below (length nat)<br>                           for b = (aref nat i)<br>
                           collect b<br>                           ;; ph: gtk gives us 4 bytes per char ; why ?<br>                           if (= b 195) do (incf i 2))<br>                        '(vector (unsigned-byte 8)))))<br>
      #+clisp (ext:convert-string-from-bytes oct charset:utf-8)<br>      #+sbcl2  (sb-ext:octets-to-string oct :external-format :utf-8))))<br><br>Now the test application runs, but when I press the last tab "Drawing" the program aborts with:<br>
<br>[...]<br>0> TX> "initialize-instance :after" :self window472 :|(id self)| #.(sb-sys:int-sap #x082a1240)<br>0> TX> "initialize-instance :after" :self window473 :|(id self)| #.(sb-sys:int-sap #x082a12e0)<br>
debugger invoked on a SIMPLE-ERROR in thread #<THREAD "initial thread" RUNNING {A6E5719}>:<br>  Error during processing of --eval option (LOAD #P"test.lisp"):<br><br>  The function CELLS-GTK::CONTEXT is undefined.<br>
<br>Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.<br><br>restarts (invokable by number or by possibly-abbreviated name):<br>  0: [CONTINUE] Ignore and continue with next --eval option.<br>  1: [ABORT   ] Skip rest of --eval options.<br>
  2:            Skip to toplevel READ/EVAL/PRINT loop.<br>  3: [QUIT    ] Quit SBCL (calling #'QUIT, killing the process).<br><br>((FLET #:LAMBDA135) #<UNDEFINED-FUNCTION CONTEXT {A95CDF9}>)<br>0] backtrace<br><br>
0: ((FLET #:LAMBDA135) #<UNDEFINED-FUNCTION CONTEXT {A95CDF9}>)<br>1: ((FLET #:LAMBDA135) #<UNDEFINED-FUNCTION CONTEXT {A95CDF9}>)[:EXTERNAL]<br>2: (SIGNAL #<UNDEFINED-FUNCTION CONTEXT {A95CDF9}>)[:EXTERNAL]<br>
3: (ERROR UNDEFINED-FUNCTION)[:EXTERNAL]<br>4: (SB-KERNEL::UNDEFINED-FUN-ERROR-HANDLER<br>    #<unavailable argument><br>    #.(SB-SYS:INT-SAP #XB79BE020)<br>    #<SB-ALIEN-INTERNALS:ALIEN-VALUE :SAP #XB79BDD1C :TYPE (*<br>
                                                            (SB-ALIEN:STRUCT<br>                                                             SB-VM::OS-CONTEXT-T-STRUCT))><br>    (14))<br>5: (SB-KERNEL::UNDEFINED-FUN-ERROR-HANDLER<br>
    #<unavailable argument><br>    #.(SB-SYS:INT-SAP #XB79BE020)<br>    #<SB-ALIEN-INTERNALS:ALIEN-VALUE :SAP #XB79BDD1C :TYPE (*<br>                                                            (SB-ALIEN:STRUCT<br>
                                                             SB-VM::OS-CONTEXT-T-STRUCT))><br>    (14))[:EXTERNAL]<br>6: (SB-KERNEL:INTERNAL-ERROR<br>    #.(SB-SYS:INT-SAP #XB79BDD1C)<br>    #<unavailable argument>)<br>
7: ("foreign function: call_into_lisp")<br>8: ("foreign function: funcall2")<br>9: ("foreign function: interrupt_internal_error")<br>10: ("foreign function: handle_trap")<br>11: ("bogus stack frame")<br>
12: (CELLS-GTK::CAIRO-DRAWING-AREA-DRAW DRAW)<br>13: ((LAMBDA (CELLS-GTK::GTK-POINTER SIGNAL CELLS-GTK::DATA))<br>     #.(SB-SYS:INT-SAP #X08237D98)<br>     #<unavailable argument><br>     #<unavailable argument>)<br>
14: ((LAMBDA (SB-ALIEN::ARGS-POINTER SB-ALIEN::RESULT-POINTER FUNCTION))<br>     -303630245<br>     -303630249<br>     #<FUNCTION (LAMBDA #) {A72842D}>)<br>15: ("foreign function: call_into_lisp")<br>16: ("foreign function: funcall3")<br>
17: ("foreign function: #x1101858")<br>18: ("foreign function: _gtk_marshal_BOOLEAN__BOXED")<br>19: ("foreign function: g_closure_invoke")<br>20: ("foreign function: #xB6E43213")<br>
21: ("foreign function: g_signal_emit_valist")<br>22: ("foreign function: g_signal_emit")<br>23: ("foreign function: #xB7259C78")<br>24: ("foreign function: #xB79BE5F4")<br><br>0] <br>
</div></div>