Commit f4a62c306d5e313fe80815369be47318ea29575b

Ben Straub 2012-11-27T14:13:03

Typedef enums.

diff --git a/include/git2/remote.h b/include/git2/remote.h
index e7d06b6..6c70d7f 100644
--- a/include/git2/remote.h
+++ b/include/git2/remote.h
@@ -360,12 +360,12 @@ GIT_EXTERN(void) git_remote_set_callbacks(git_remote *remote, git_remote_callbac
  */
 GIT_EXTERN(const git_transfer_progress *) git_remote_stats(git_remote *remote);
 
-enum {
+typedef enum {
 	GIT_REMOTE_DOWNLOAD_TAGS_UNSET,
 	GIT_REMOTE_DOWNLOAD_TAGS_NONE,
 	GIT_REMOTE_DOWNLOAD_TAGS_AUTO,
 	GIT_REMOTE_DOWNLOAD_TAGS_ALL
-};
+} git_remote_autotag_option_t;
 
 /**
  * Retrieve the tag auto-follow setting
@@ -373,7 +373,7 @@ enum {
  * @param remote the remote to query
  * @return the auto-follow setting
  */
-GIT_EXTERN(int) git_remote_autotag(git_remote *remote);
+GIT_EXTERN(git_remote_autotag_option_t) git_remote_autotag(git_remote *remote);
 
 /**
  * Set the tag auto-follow setting
@@ -381,7 +381,9 @@ GIT_EXTERN(int) git_remote_autotag(git_remote *remote);
  * @param remote the remote to configure
  * @param value a GIT_REMOTE_DOWNLOAD_TAGS value
  */
-GIT_EXTERN(void) git_remote_set_autotag(git_remote *remote, int value);
+GIT_EXTERN(void) git_remote_set_autotag(
+	git_remote *remote,
+	git_remote_autotag_option_t value);
 
 /**
  * Give the remote a new name
diff --git a/include/git2/repository.h b/include/git2/repository.h
index 29bb986..f1b55f4 100644
--- a/include/git2/repository.h
+++ b/include/git2/repository.h
@@ -98,7 +98,7 @@ GIT_EXTERN(int) git_repository_discover(
 typedef enum {
 	GIT_REPOSITORY_OPEN_NO_SEARCH = (1 << 0),
 	GIT_REPOSITORY_OPEN_CROSS_FS  = (1 << 1),
-} git_repository_open_flags;
+} git_repository_open_flag_t;
 
 /**
  * Find and open a repository with extended controls.
@@ -182,14 +182,14 @@ GIT_EXTERN(int) git_repository_init(
  *        `init.templatedir` global config if not, or falling back on
  *        "/usr/share/git-core/templates" if it exists.
  */
-enum {
+typedef enum {
 	GIT_REPOSITORY_INIT_BARE              = (1u << 0),
 	GIT_REPOSITORY_INIT_NO_REINIT         = (1u << 1),
 	GIT_REPOSITORY_INIT_NO_DOTGIT_DIR     = (1u << 2),
 	GIT_REPOSITORY_INIT_MKDIR             = (1u << 3),
 	GIT_REPOSITORY_INIT_MKPATH            = (1u << 4),
 	GIT_REPOSITORY_INIT_EXTERNAL_TEMPLATE = (1u << 5),
-};
+} git_repository_init_flag_t;
 
 /**
  * Mode options for `git_repository_init_ext`.
@@ -204,11 +204,11 @@ enum {
  * * SHARED_ALL - Use "--shared=all" behavior, adding world readability.
  * * Anything else - Set to custom value.
  */
-enum {
+typedef enum {
 	GIT_REPOSITORY_INIT_SHARED_UMASK = 0,
 	GIT_REPOSITORY_INIT_SHARED_GROUP = 0002775,
 	GIT_REPOSITORY_INIT_SHARED_ALL   = 0002777,
-};
+} git_repository_init_mode_t;
 
 /**
  * Extended options structure for `git_repository_init_ext`.
diff --git a/src/remote.c b/src/remote.c
index 2f7c894..bdec3c1 100644
--- a/src/remote.c
+++ b/src/remote.c
@@ -967,12 +967,12 @@ const git_transfer_progress* git_remote_stats(git_remote *remote)
 	return &remote->stats;
 }
 
-int git_remote_autotag(git_remote *remote)
+git_remote_autotag_option_t git_remote_autotag(git_remote *remote)
 {
 	return remote->download_tags;
 }
 
-void git_remote_set_autotag(git_remote *remote, int value)
+void git_remote_set_autotag(git_remote *remote, git_remote_autotag_option_t value)
 {
 	remote->download_tags = value;
 }
diff --git a/src/remote.h b/src/remote.h
index 840c9a9..448a9e9 100644
--- a/src/remote.h
+++ b/src/remote.h
@@ -27,10 +27,10 @@ struct git_remote {
 	git_repository *repo;
 	git_remote_callbacks callbacks;
 	git_transfer_progress stats;
-	unsigned int need_pack:1,
-		download_tags:2, /* There are four possible values */
-		check_cert:1,
-		update_fetchhead:1;
+	unsigned int need_pack;
+	git_remote_autotag_option_t download_tags;
+	unsigned int check_cert;
+	unsigned int update_fetchhead;
 };
 
 const char* git_remote__urlfordirection(struct git_remote *remote, int direction);