> Jonathan Tan <[email protected]> writes:
>
> >> - if ((opt & PICKAXE_BLAME_COPY_HARDEST)
> >> - || ((opt & PICKAXE_BLAME_COPY_HARDER)
> >> + if ((opt & BLAME_COPY_HARDEST)
> >> + || ((opt & BLAME_COPY_HARDER)
> >
> > Any reason why the names are renamed to omit "PICKAXE_"? In particular,
> > these names are still global, so it is good to retain the extra context.
>
> Absolutely. Removing them is wrong, I would have to say.
Thanks for clarifying.
> >> #define BLAME_DEFAULT_MOVE_SCORE 20
> >> #define BLAME_DEFAULT_COPY_SCORE 40
> >>
> >> +enum pickaxe_blame_action {
> >> + BLAME_MOVE = 01,
> >> + BLAME_COPY,
> >> + BLAME_COPY_HARDER = 04,
> >> + BLAME_COPY_HARDEST = 010,
> >> +};
>
> We had a bit of discussion recently about using (or rather, not
> abusing) enum for set of bits on a different topic.
For reference, the discussion is here [1]. Szeder Gábor has a dissenting
argument in [2] that makes sense to me (gdb on my desktop also shows an
enum used as a bitset as "(A | B)"). But in any case, perhaps we should
decide if it's fine to use an enum here before Wambui Karuga continues
development.
[1] https://public-inbox.org/git/[email protected]/
[2] https://public-inbox.org/git/[email protected]/
> > Also, I have a slight preference for putting "= 02" on the BLAME_COPY
> > line but that is not necessary.
>
> That is absolutely necessary; it is not like "we do not care what
> exact value _COPY gets; it can be any value as long as it is _MOVE
> plus 1", as these are used in set of bits (and again, I do not think
> it is such a brilliant idea to use enum for such a purpose).
Good point.