From 452b7f8f4c665d4b2daa257f7f4cf9836c270085 Mon Sep 17 00:00:00 2001 From: Sven Strickroth <email@cs-ware.de> Date: Wed, 25 Sep 2019 20:29:21 +0200 Subject: [PATCH] Don't use enum for flags Using an `enum` causes trouble when used with C++ as bitwise operations are not possible w/o casting (e.g., `opts.flags &= ~GIT_BLOB_FILTER_CHECK_FOR_BINARY;` is invalid as there is no `&=` operator for `enum`). Signed-off-by: Sven Strickroth <email@cs-ware.de> --- include/git2/blob.h | 4 ++-- include/git2/diff.h | 5 +++-- include/git2/merge.h | 6 +++--- include/git2/stash.h | 2 +- src/diff.c | 2 +- 5 files changed, 10 insertions(+), 9 deletions(-) diff --git a/include/git2/blob.h b/include/git2/blob.h index 1dfd6b7..40f922b 100644 --- a/include/git2/blob.h +++ b/include/git2/blob.h @@ -122,8 +122,8 @@ typedef enum { typedef struct { int version; - /** Flags to control the filtering process */ - git_blob_filter_flag_t flags; + /** Flags to control the filtering process, see `git_blob_filter_flag_t` above */ + uint32_t flags; } git_blob_filter_options; #define GIT_BLOB_FILTER_OPTIONS_VERSION 1 diff --git a/include/git2/diff.h b/include/git2/diff.h index c89c32f..73c5e55 100644 --- a/include/git2/diff.h +++ b/include/git2/diff.h @@ -1378,7 +1378,8 @@ typedef enum { typedef struct { unsigned int version; - git_diff_format_email_flags_t flags; + /** see `git_diff_format_email_flags_t` above */ + uint32_t flags; /** This patch number */ size_t patch_no; @@ -1435,7 +1436,7 @@ GIT_EXTERN(int) git_diff_commit_as_email( git_commit *commit, size_t patch_no, size_t total_patches, - git_diff_format_email_flags_t flags, + uint32_t flags, const git_diff_options *diff_opts); /** diff --git a/include/git2/merge.h b/include/git2/merge.h index d638009..fc27c9d 100644 --- a/include/git2/merge.h +++ b/include/git2/merge.h @@ -192,7 +192,7 @@ typedef struct { git_merge_file_favor_t favor; /** see `git_merge_file_flag_t` above */ - git_merge_file_flag_t flags; + uint32_t flags; /** The size of conflict markers (eg, "<<<<<<<"). Default is * GIT_MERGE_CONFLICT_MARKER_SIZE. */ @@ -247,7 +247,7 @@ typedef struct { unsigned int version; /** See `git_merge_flag_t` above */ - git_merge_flag_t flags; + uint32_t flags; /** * Similarity to consider a file renamed (default 50). If @@ -291,7 +291,7 @@ typedef struct { git_merge_file_favor_t file_favor; /** see `git_merge_file_flag_t` above */ - git_merge_file_flag_t file_flags; + uint32_t file_flags; } git_merge_options; #define GIT_MERGE_OPTIONS_VERSION 1 diff --git a/include/git2/stash.h b/include/git2/stash.h index bee26f1..22448cc 100644 --- a/include/git2/stash.h +++ b/include/git2/stash.h @@ -127,7 +127,7 @@ typedef struct git_stash_apply_options { unsigned int version; /** See `git_stash_apply_flags_t`, above. */ - git_stash_apply_flags flags; + uint32_t flags; /** Options to use when writing files to the working directory. */ git_checkout_options checkout_options; diff --git a/src/diff.c b/src/diff.c index 3c6a0f2..15a32ed 100644 --- a/src/diff.c +++ b/src/diff.c @@ -323,7 +323,7 @@ int git_diff_commit_as_email( git_commit *commit, size_t patch_no, size_t total_patches, - git_diff_format_email_flags_t flags, + uint32_t flags, const git_diff_options *diff_opts) { git_diff *diff = NULL; -- libgit2 0.26.0