git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: flags types/names

From
Junio C Hamano <gitster@pobox.com>
Date
Jan 31, 2022, 17:13 UTC
Message-ID
<xmqqbkzrkevo.fsf@gitster.g>
In-Reply-To
<CAFQ2z_M_SXENMU6Y3Evrz9-G_+pqjd-zPQiZjnA_y2hvb+Egkw@mail.gmail.com>
Han-Wen Nienhuys <hanwen@google.com> writes:
> My questions:
>
> * am I the only one who struggles with the different flavor of `flags` ?
Probably no.
Show 13 quoted lines
> * 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".

Previous: Han-Wen NienhuysNext: brian m. carlson
Message 12 of 16 in “What's cooking in git.git (Jan 2022, #07; Mon, 24)”
  1. Junio C HamanoJan 24, 2022
  2. Submodule UX overhaul update (was: What's cooking in git.git (Jan 2022, #07; Mon, 24))Emily Shaffer, Jan 25, 2022
  3. Ævar Arnfjörð BjarmasonJan 26, 2022
  4. Emily ShafferJan 26, 2022
  5. Kaartic SivaraamJan 26, 2022
  6. Atharva RaykarJan 26, 2022
  7. Emily ShafferJan 26, 2022
  8. Glen ChooJan 26, 2022
  9. ps/avoid-unnecessary-hook-invocation-with-packed-refs (Was: Re: What's cooking in git.git (Jan 2022, #07; Mon, 24))Patrick Steinhardt, Jan 28, 2022
  10. Junio C HamanoJan 28, 2022
  11. flags types/names (was: ps/avoid-unnecessary-hook-invocation-with-packed-refs)Han-Wen Nienhuys, Jan 31, 2022
  12. Junio C HamanoJan 31, 2022
  13. brian m. carlsonJan 28, 2022
  14. Junio C HamanoFeb 4, 2022
  15. René ScharfeFeb 4, 2022
  16. ab/auto-detect-zlib-compress2 (was: What's cooking in git.git (Jan 2022, #07; Mon, 24))Ævar Arnfjörð Bjarmason, Feb 2, 2022

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.