Není to jemná nuance. Ani náhodou. Ten kód má nejspíš podporu ještě pro C89 kvůli konstrukcím jako tohle:
/* If bool is not a compiler builtin, prefer stdbool.h if we have it */ #if !defined (HAVE_C_BOOL) # if defined (HAVE_STDBOOL_H) # include <stdbool.h> # else # undef bool typedef unsigned char bool; # define true 1 # define false 0 # endif #endif
a další hrůzy z bashansi.h. Tj. ten kód není psaný v C23 protože by nešel zkompilovat kompilátorem, který nemá podporu pro C23.
Úpravy, které udělali, jsou o tom, že odstranili z kódu konstrukce, které jsou zastaralé již od dob C89 (ISO C) a C23 je definitivně zabilo (konečně!).
Popravdě řečeno, když se dívám na ansi_stdlib.h, tak je tam zjevně pořád podpora pro pre-C89 kompilátory.
To co bash 5.3 udělal bych přirovnal k tomu, že vyměnil posledních pár šroubků, takže se na sestavení dá použít i elektrický šroubovák a nepotřebujete si k tomu vyřezat vlastní nástroj z jasanového dřeva...