;; libgit2.ffi				-*- Scheme -*-

;; Copyright (C) 2018 Matthew R. Wette
;;
;; This library is free software; you can redistribute it and/or
;; modify it under the terms of the GNU Lesser General Public
;; License as published by the Free Software Foundation; either
;; version 3 of the License, or (at your option) any later version.
;;
;; This library is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
;; Lesser General Public License for more details.
;;
;; You should have received a copy of the GNU Lesser General Public License
;; along with this library; if not, see <http://www.gnu.org/licenses/>

(define-ffi-module (ffi libgit2)
  #:include '("git2.h")
  #:inc-filter (lambda (file-spec path-spec)
		 (string-contains path-spec "git2/" 0))
  #:library '("libgit2"))

(define git_commit**-desc (bs:pointer git_commit*-desc))
(define-fh-pointer-type git_commit** git_commit**-desc
  git_commit**? make-git_commit**)
(fh-ref<=>deref! git_commit** make-git_commit**
	      git_commit* make-git_commit*)

(define git_repository**-desc (bs:pointer git_repository*-desc))
(define-fh-pointer-type git_repository** git_repository**-desc
  git_repository**? make-git_repository**)
(fh-ref<=>deref! git_repository** make-git_repository**
	      git_repository* make-git_repository*)

(define unwrap-git_branch_t* (fht-unwrap int*))
(define unwrap-git_merge_analysis_t* (fht-unwrap int*))
(define unwrap-git_merge_preference_t* (fht-unwrap int*))
(define unwrap-git_otype* (fht-unwrap int*))

;; --- last line ---
