chiark / gitweb /
HANDLE-WRITE now requires data as vector
[clg] / rsvg / rsvg.lisp
index 466e9e5bcb2c250a58c18f968687e49d76a83554..1a58513c5f9abc75a0b2a6e210dfd435a2319611 100644 (file)
@@ -20,7 +20,7 @@
 ;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 ;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
-;; $Id: rsvg.lisp,v 1.4 2006-02-13 20:10:48 espen Exp $
+;; $Id: rsvg.lisp,v 1.6 2006-09-27 08:46:51 espen Exp $
 
 (in-package "RSVG")
 
@@ -28,7 +28,7 @@ (in-package "RSVG")
 (eval-when (:compile-toplevel :load-toplevel :execute)
   (init-types-in-library 
    #.(concatenate 'string (pkg-config:pkg-variable "librsvg-2.0" "libdir") 
-                         "/librsvg-2.so") :prefix "rsvg_")
+                         "/librsvg-2." asdf:*dso-extension*) :prefix "rsvg_")
 
 (define-types-by-introspection "Rsvg"
   ("RsvgError" :ignore t)))
@@ -44,8 +44,8 @@ (defbinding (set-default-dpi "rsvg_set_default_dpi_x_y") (dpi-x &optional (dpi-y
 
 (defbinding handle-write () boolean
   (handle handle)
-  (data string)
-  ((length data) int) ; TODO: compute propper length of utf8 string
+  (data (vector int8))
+  ((length data) int)
   (nil gerror-signal :out))
 
 (defbinding handle-close () boolean
@@ -59,7 +59,7 @@ (defbinding (handle-get-pixbuf "rsvg_handle_get_pixbuf_sub") (handle &optional i
 
 (defbinding %handle-new-from-data () pointer
   (data string)
-  ((length data) int) ; TODO: compute propper length of utf8 string
+  ((1- (utf8-length data)) int)
   (nil gerror-signal :out))
 
 (defbinding %handle-new-from-file () pointer