diff options
author | aszlig <aszlig@nix.build> | 2019-08-15 00:06:51 +0200 |
---|---|---|
committer | aszlig <aszlig@nix.build> | 2019-08-15 00:59:58 +0200 |
commit | 1964b0c1b1e2e8092a15da64bd37838bed261e26 (patch) | |
tree | 6db891aa788c2f35f182613207bd74aa2f5d1a94 /pkgs/tools/X11/xkbvalidate/default.nix | |
parent | 77e8a12755632d62ef25541e3622f478edaa28c6 (diff) | |
download | nixlib-1964b0c1b1e2e8092a15da64bd37838bed261e26.tar nixlib-1964b0c1b1e2e8092a15da64bd37838bed261e26.tar.gz nixlib-1964b0c1b1e2e8092a15da64bd37838bed261e26.tar.bz2 nixlib-1964b0c1b1e2e8092a15da64bd37838bed261e26.tar.lz nixlib-1964b0c1b1e2e8092a15da64bd37838bed261e26.tar.xz nixlib-1964b0c1b1e2e8092a15da64bd37838bed261e26.tar.zst nixlib-1964b0c1b1e2e8092a15da64bd37838bed261e26.zip |
xkbvalidate: Don't rely on GNU extensions
The only reason why I was using _GNU_SOURCE was because of vasprintf(), so getting rid of that extension should make the source way more portable. When using vsnprintf() with a null pointer for the output buffer and a size of 0, I wasn't quite sure whether this would be undefined behaviour, so I looked it up in the C11 standard. In section 7.21.6.5, it explicitly mentions this case, so we're lucky: If n is zero, nothing is written, and s may be a null pointer. Additionally, section 7.21.6.12 writes the following about vsnprintf(): The vsnprintf function does not invoke the va_end macro. So to be sure to avoid undefined behaviour I subsequently added the corresponding va_end() calls. With this, the platforms attribute is now "unix", because the program should now even run on OS X, even though it usually wouldn't be needed. Signed-off-by: aszlig <aszlig@nix.build>
Diffstat (limited to 'pkgs/tools/X11/xkbvalidate/default.nix')
-rw-r--r-- | pkgs/tools/X11/xkbvalidate/default.nix | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/pkgs/tools/X11/xkbvalidate/default.nix b/pkgs/tools/X11/xkbvalidate/default.nix index c4aec30e7241..2855d03120fd 100644 --- a/pkgs/tools/X11/xkbvalidate/default.nix +++ b/pkgs/tools/X11/xkbvalidate/default.nix @@ -5,11 +5,11 @@ runCommandCC "xkbvalidate" { meta = { description = "NixOS tool to validate X keyboard configuration"; license = lib.licenses.mit; - platforms = lib.platforms.linux; + platforms = lib.platforms.unix; maintainers = [ lib.maintainers.aszlig ]; }; } '' mkdir -p "$out/bin" - $CC -std=gnu11 -Wall -pedantic -lxkbcommon ${./xkbvalidate.c} \ + $CC -std=c11 -Wall -pedantic -lxkbcommon ${./xkbvalidate.c} \ -o "$out/bin/validate" '' |