(sorry for a very late reply, I'm just picking this series up again) On Thu, Jun 9, 2016 at 11:18 PM, Johannes Schindelin <Johannes.Schindelin@xxxxxx> wrote: > Hi Duy, > > On Mon, 6 Jun 2016, Nguyễn Thái Ngọc Duy wrote: > >> diff --git a/diff.h b/diff.h >> index b497078..9e42556 100644 >> --- a/diff.h >> +++ b/diff.h >> @@ -92,6 +92,7 @@ typedef struct strbuf *(*diff_prefix_fn_t)(struct diff_options *opt, void *data) >> #define DIFF_OPT_FUNCCONTEXT (1 << 29) >> #define DIFF_OPT_PICKAXE_IGNORE_CASE (1 << 30) >> #define DIFF_OPT_DEFAULT_FOLLOW_RENAMES (1U << 31) >> +#define DIFF_OPT_SHIFT_INTENT_TO_ADD (1UL << 32) > > I am afraid that this is not enough. On Windows, sizeof(unsigned long) is > 4 (and it is perfectly legal). That means that you would have to use at > least (1ULL << 32), OK. > but then you also have to change the type of xdl_opts > to uint64_t, which in turn means that you will have to change the > definition of xpparam_t's "flags" field from unsigned long to uint64_t. I miss a connection here. This new flag is intended to be used in "flags" field in struct diff_options. Is there any chance it can be set on xdl_opts (of the same struct, I assume)? > Maybe this can be avoided? I don't see a good way to avoid it. We normally enable or disable diff features as bit flags and now we run out of bits. Adding something like "flags2" works, but not pretty. Any suggestion is welcome. -- Duy