attr: Rename the `git_attr__` exports Pevents collisions with the original libgit, which also exports those exact symbols. Fixes #822
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
diff --git a/include/git2/attr.h b/include/git2/attr.h
index 8f5a126..fad7183 100644
--- a/include/git2/attr.h
+++ b/include/git2/attr.h
@@ -30,7 +30,7 @@ GIT_BEGIN_DECL
* Then for file `xyz.c` looking up attribute "foo" gives a value for
* which `GIT_ATTR_TRUE(value)` is true.
*/
-#define GIT_ATTR_TRUE(attr) ((attr) == git_attr__true)
+#define GIT_ATTR_TRUE(attr) ((attr) == git_l_attr__true)
/**
* GIT_ATTR_FALSE checks if an attribute is set off. In core git
@@ -44,7 +44,7 @@ GIT_BEGIN_DECL
* Then for file `zyx.h` looking up attribute "foo" gives a value for
* which `GIT_ATTR_FALSE(value)` is true.
*/
-#define GIT_ATTR_FALSE(attr) ((attr) == git_attr__false)
+#define GIT_ATTR_FALSE(attr) ((attr) == git_l_attr__false)
/**
* GIT_ATTR_UNSPECIFIED checks if an attribute is unspecified. This
@@ -62,7 +62,7 @@ GIT_BEGIN_DECL
* file `onefile.rb` or looking up "bar" on any file will all give
* `GIT_ATTR_UNSPECIFIED(value)` of true.
*/
-#define GIT_ATTR_UNSPECIFIED(attr) (!(attr) || (attr) == git_attr__unset)
+#define GIT_ATTR_UNSPECIFIED(attr) (!(attr) || (attr) == git_l_attr__unset)
/**
* GIT_ATTR_HAS_VALUE checks if an attribute is set to a value (as
@@ -75,12 +75,12 @@ GIT_BEGIN_DECL
* string "lf" and `GIT_ATTR_SET_TO_VALUE(attr)` will return true.
*/
#define GIT_ATTR_HAS_VALUE(attr) \
- ((attr) && (attr) != git_attr__unset && \
- (attr) != git_attr__true && (attr) != git_attr__false)
+ ((attr) && (attr) != git_l_attr__unset && \
+ (attr) != git_l_attr__true && (attr) != git_attr__false)
-GIT_EXTERN(const char *) git_attr__true;
-GIT_EXTERN(const char *) git_attr__false;
-GIT_EXTERN(const char *) git_attr__unset;
+GIT_EXTERN(const char *) git_l_attr__true;
+GIT_EXTERN(const char *) git_l_attr__false;
+GIT_EXTERN(const char *) git_l_attr__unset;
/**
* Check attribute flags: Reading values from index and working directory.
diff --git a/src/attr_file.c b/src/attr_file.c
index ca2f8fb..0dad097 100644
--- a/src/attr_file.c
+++ b/src/attr_file.c
@@ -5,9 +5,9 @@
#include "git2/tree.h"
#include <ctype.h>
-const char *git_attr__true = "[internal]__TRUE__";
-const char *git_attr__false = "[internal]__FALSE__";
-const char *git_attr__unset = "[internal]__UNSET__";
+const char *git_l_attr__true = "[internal]__TRUE__";
+const char *git_l_attr__false = "[internal]__FALSE__";
+const char *git_l_attr__unset = "[internal]__UNSET__";
static int sort_by_hash_and_name(const void *a_raw, const void *b_raw);
static void git_attr_rule__clear(git_attr_rule *rule);
@@ -503,14 +503,14 @@ int git_attr_assignment__parse(
}
assign->name_hash = 5381;
- assign->value = git_attr__true;
+ assign->value = git_l_attr__true;
/* look for magic name prefixes */
if (*scan == '-') {
- assign->value = git_attr__false;
+ assign->value = git_l_attr__false;
scan++;
} else if (*scan == '!') {
- assign->value = git_attr__unset; /* explicit unspecified state */
+ assign->value = git_l_attr__unset; /* explicit unspecified state */
scan++;
} else if (*scan == '#') /* comment rest of line */
break;
@@ -546,7 +546,7 @@ int git_attr_assignment__parse(
}
/* expand macros (if given a repo with a macro cache) */
- if (repo != NULL && assign->value == git_attr__true) {
+ if (repo != NULL && assign->value == git_l_attr__true) {
git_attr_rule *macro =
git_attr_cache__lookup_macro(repo, assign->name);