Thread (1 message) 1 message, 1 author, 2022-01-31
  • (off-list ancestor, not in this archive)
  • Re: flags types/names · Junio C Hamano <hidden> · 2022-01-31

Re: flags types/names

From: Junio C Hamano <hidden>
Date: 2022-01-31 17:13:21

Han-Wen Nienhuys [off-list ref] writes:
My questions:

* am I the only one who struggles with the different flavor of `flags` ?
Probably no.
* if no, what should be done about this? Maybe

  typedef unsigned int ref_flags;
  #define REF_IS_SYMREF 0x1
  char *refs_resolve_ref_unsafe(const char *refname, ref_flags *flags, ... );

or

  typedef enum ref_flags {
     REF_IS_SYMREF = 0x1,
  };
  char *refs_resolve_ref_unsafe(const char *refname, enum ref_flags
*flags, ... );
It is very good to use symbolic constants implemented either as C
preprocessor macros or enums, I would think.

However, I am not enthused to see typedefs; I've never seen multiple
typedefs of the same integral type did anything useful in C.  Perhaps
things are different in the C++ land, but we do not live there.
A somewhat related gripe is that some code uses `int flags` and other
code uses `unsigned flags`. It would be great to standardize this.
I agree.  Unless there is very compelling reason to single out the
topmost bit and treat it as special, a set of flag bits should be
"unsigned".
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help