From 313e1126dd0c974910de74f1b6bbc0fdcbbfd06b Mon Sep 17 00:00:00 2001
From: Jason Toffaletti <toffaletti@gmail.com>
Date: Thu, 2 Jan 2014 23:33:08 +0000
Subject: [PATCH] add git_submodule_recurse_t type

---
 submodule.go | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/submodule.go b/submodule.go
index 48ea151..dadc785 100644
--- a/submodule.go
+++ b/submodule.go
@@ -56,6 +56,13 @@ const (
 	SubmoduleStatusWdUntracked                     = C.GIT_SUBMODULE_STATUS_WD_UNTRACKED
 )
 
+type SubmoduleRecurse int
+const (
+	SubmoduleRecurseNo SubmoduleRecurse = C.GIT_SUBMODULE_RECURSE_NO
+	SubmoduleRecurseYes	 	    = C.GIT_SUBMODULE_RECURSE_YES
+	SubmoduleRecurseOnDemand            = C.GIT_SUBMODULE_RECURSE_ONDEMAND
+)
+
 func SubmoduleStatusIsUnmodified(status int) bool {
 	o := SubmoduleStatus(status) & ^(SubmoduleStatusInHead | SubmoduleStatusInIndex |
 		SubmoduleStatusInConfig | SubmoduleStatusInWd)
@@ -236,11 +243,11 @@ func (sub *Submodule) FetchRecurseSubmodules() bool {
 	return true
 }
 
-func (sub *Submodule) SetFetchRecurseSubmodules(v bool) error {
+func (sub *Submodule) SetFetchRecurseSubmodules(v SubmoduleRecurse) error {
 	runtime.LockOSThread()
 	defer runtime.UnlockOSThread()
 
-	ret := C.git_submodule_set_fetch_recurse_submodules(sub.ptr, cbool(v))
+	ret := C.git_submodule_set_fetch_recurse_submodules(sub.ptr, C.git_submodule_recurse_t(v))
 	if ret < 0 {
 		return LastError()
 	}