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

Re: [PATCH] git-compat-util: convert skip_{prefix,suffix}{,_mem} to bool

From
Jeff King <peff@peff.net>
Date
Dec 21, 2023, 09:59 UTC
Message-ID
<20231221095907.GC570888@coredump.intra.peff.net>
In-Reply-To
<2d30dc36-6091-4b47-846f-92d3f4a8b135@web.de>
On Sat, Dec 16, 2023 at 11:47:21AM +0100, René Scharfe wrote:
Show 23 quoted lines
> Use the data type bool and its values true and false to document the
> binary return value of skip_prefix() and friends more explicitly.
> 
> This first use of stdbool.h, introduced with C99, is meant to check
> whether there are platforms that claim support for C99, as tested by
> 7bc341e21b (git-compat-util: add a test balloon for C99 support,
> 2021-12-01), but still lack that header for some reason.
> 
> A fallback based on a wider type, e.g. int, would have to deal with
> comparisons somehow to emulate that any non-zero value is true:
> 
>    bool b1 = 1;
>    bool b2 = 2;
>    if (b1 == b2) puts("This is true.");
> 
>    int i1 = 1;
>    int i2 = 2;
>    if (i1 == i2) puts("Not printed.");
>    #define BOOLEQ(a, b) (!(a) == !(b))
>    if (BOOLEQ(i1, i2)) puts("This is true.");
> 
> So we'd be better off using bool everywhere without a fallback, if
> possible.  That's why this patch doesn't include any.

Thanks for putting this together. I agree this is the right spot to end up for now (and that if for whatever reason we find that some platforms can't handle it, we probably should revert and not try the naive fallback).

-Peff
Previous: René ScharfeNext: Jeff King
Message 17 of 26 in “Use ^=1 to toggle between 0 and 1”
  1. Use ^=1 to toggle between 0 and 1AtariDreams via GitGitGadget, Dec 12, 2023
  2. Dragan SimicDec 12, 2023
  3. Jeff KingDec 12, 2023
  4. René ScharfeDec 12, 2023
  5. Jeff KingDec 13, 2023
  6. Junio C HamanoDec 13, 2023
  7. René ScharfeDec 14, 2023
  8. Jeff KingDec 14, 2023
  9. Phillip WoodDec 15, 2023
  10. Junio C HamanoDec 15, 2023
  11. René ScharfeDec 16, 2023
  12. Phillip WoodDec 18, 2023
  13. git-compat-util: convert skip_{prefix,suffix}{,_mem} to boolRené Scharfe, Dec 16, 2023
  14. Phillip WoodDec 18, 2023
  15. Junio C HamanoDec 18, 2023
  16. René ScharfeDec 19, 2023
  17. Jeff KingDec 21, 2023
  18. Jeff KingDec 21, 2023
  19. phillip.wood123@gmail.comDec 21, 2023
  20. Use ^=1 to toggle between 0 and 1AreaZR via GitGitGadget, Dec 18, 2024
  21. git: use ^=1 to toggle between 0 and 1AreaZR via GitGitGadget, Dec 18, 2024
  22. git: use ^=1 to toggle between 0 and 1AreaZR via GitGitGadget, Dec 18, 2024
  23. git: use ^=1 to toggle between 0 and 1AreaZR via GitGitGadget, Dec 18, 2024
  24. git: use logical-not operator to toggle between 0 and 1AreaZR via GitGitGadget, Dec 18, 2024
  25. Junio C HamanoDec 19, 2024
  26. Junio C HamanoDec 18, 2024

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.