diff --git a/mercurial/cext/parsers.c b/mercurial/cext/parsers.c --- a/mercurial/cext/parsers.c +++ b/mercurial/cext/parsers.c @@ -144,9 +144,10 @@ static inline bool dirstate_item_c_added(dirstateItemObject *self) { - char mask = (dirstate_flag_wc_tracked | dirstate_flag_p1_tracked | - dirstate_flag_p2_tracked); - char target = dirstate_flag_wc_tracked; + unsigned char mask = + (dirstate_flag_wc_tracked | dirstate_flag_p1_tracked | + dirstate_flag_p2_tracked); + unsigned char target = dirstate_flag_wc_tracked; return (self->flags & mask) == target; } diff --git a/mercurial/cext/util.h b/mercurial/cext/util.h --- a/mercurial/cext/util.h +++ b/mercurial/cext/util.h @@ -24,21 +24,21 @@ /* clang-format off */ typedef struct { PyObject_HEAD - char flags; + unsigned char flags; int mode; int size; int mtime; } dirstateItemObject; /* clang-format on */ -static const char dirstate_flag_wc_tracked = 1; -static const char dirstate_flag_p1_tracked = 1 << 1; -static const char dirstate_flag_p2_tracked = 1 << 2; -static const char dirstate_flag_possibly_dirty = 1 << 3; -static const char dirstate_flag_merged = 1 << 4; -static const char dirstate_flag_clean_p1 = 1 << 5; -static const char dirstate_flag_clean_p2 = 1 << 6; -static const char dirstate_flag_rust_special = 1 << 7; +static const unsigned char dirstate_flag_wc_tracked = 1; +static const unsigned char dirstate_flag_p1_tracked = 1 << 1; +static const unsigned char dirstate_flag_p2_tracked = 1 << 2; +static const unsigned char dirstate_flag_possibly_dirty = 1 << 3; +static const unsigned char dirstate_flag_merged = 1 << 4; +static const unsigned char dirstate_flag_clean_p1 = 1 << 5; +static const unsigned char dirstate_flag_clean_p2 = 1 << 6; +static const unsigned char dirstate_flag_rust_special = 1 << 7; extern PyTypeObject dirstateItemType; #define dirstate_tuple_check(op) (Py_TYPE(op) == &dirstateItemType)