anchor.diff:  
   (defmethod size-of ((type (eql 'null-terminated-vector)) &rest args)
     (declare (ignore type args))
  -  (alien-type 'pointer))
  +  (size-of 'pointer))
  +
  +(defmethod to-alien-form (vector (type (eql 'null-terminated-vector)) &rest args)
  +  (declare (ignore type))
  +  (destructuring-bind (element-type) args
  +    `(make-0-vector ',element-type ,vector)))
  +
  +(defmethod from-alien-form (c-vector (type (eql 'null-terminated-vector)) &rest args)
  +  (declare (ignore type))
  +  (destructuring-bind (element-type) args
  +    `(let ((c-vector ,c-vector))
  +       (prog1
  +	   (map-0-vector 'vector #'identity c-vector ',element-type)
  +	 (destroy-0-vector c-vector ',element-type)))))
  +
  +(defmethod copy-from-alien-form (c-vector (type (eql 'null-terminated-vector)) &rest args)
  +  (declare (ignore type))
  +  (destructuring-bind (element-type) args
  +    `(map-0-vector 'vector #'identity ,c-vector ',element-type)))
  +
  +(defmethod cleanup-form (location (type (eql 'null-terminated-vector)) &rest args)
  +  (declare (ignore type))
  +  (destructuring-bind (element-type) args
  +    `(destroy-0-vector ,location ',element-type)))
   
   (defmethod writer-function ((type (eql 'null-terminated-vector)) &rest args)
     (declare (ignore type))
  
positive.code: 	(error "Can't use vector of variable size as return type")
        `(map-c-vector 'vector #'identity ,c-vector ',element-type ',length))))
  
  (defmethod cleanup-form (location (type (eql 'vector)) &rest args)
    (declare (ignore type))
    (destructuring-bind (element-type &optional (length '*)) args
  
negative.code: ;; License along with this library; if not, write to the Free Software
  ;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  
  ;; $Id: glib.lisp,v 1.29 2005-04-18 10:34:51 espen Exp $
  
  
  (in-package "GLIB")
  