Added finalizing of all gtk+ classes at the end of compilation
[cl-gtk2.git] / glib / glib.utils.lisp
blob77cf03fbdac2110ea0baf42f0b49320d2eae7dd4
1 (in-package :glib)
3 (defcfun g-get-user-cache-dir :string)
5 (defun get-user-cache-dir ()
6 (g-get-user-cache-dir))
8 (export 'get-user-cache-dir)
10 (defcfun g-get-user-data-dir :string)
12 (defun get-user-data-dir ()
13 (g-get-user-data-dir))
15 (export 'get-user-data-dir)
17 (defcfun g-get-user-config-dir :string)
19 (defun get-user-config-dir ()
20 (g-get-user-config-dir))
22 (export 'get-user-config-dir)
24 (defcfun g-build-filenamev (:string :free-from-foreign t)
25 (args :pointer))
27 (defun build-filename (&rest args)
28 (let* ((n (length args))
29 (arr (g-malloc (* (1+ n) (foreign-type-size :pointer)))))
31 (iter (for i from 0)
32 (for arg in args)
33 (setf (mem-aref arr :pointer i) (g-strdup arg)))
34 (setf (mem-aref arr :pointer n) (null-pointer))
36 (prog1
37 (g-build-filenamev arr)
39 (iter (for i from 0)
40 (for str-ptr = (mem-aref arr :pointer i))
41 (until (null-pointer-p str-ptr))
42 (g-free str-ptr))
43 (g-free arr))))
45 (export 'build-filename)