All checks were successful
Eighty-five comments cited section numbers -- 1.1, 2.2.6, 3.6 -- from a numbering the file had already abandoned before the move to the tracker. They label completed work, so the pointer was the only wrong part. The citation is removed and the sentence kept, which is what issue #27 recommended: these are labels, not references, and a label carrying a version-dependent pointer goes stale again at the next reorganisation. Where a pointer earns its place it names what actually holds the content now -- UPGRADING.md for the confirmed defects, libakerror #15 for the target namespacing, issue #7 for the mutation survivors. README.md and akstdlib.h sent readers to TODO.md for 'what is still open'; they name the tracker. Verified: cmake --build build && ctest --test-dir build, 19/19. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Co-Authored-By: Andrew Kesterson <andrew@aklabs.net>
26 lines
973 B
C
26 lines
973 B
C
#ifndef _AKSL_INTERNAL_H_
|
|
#define _AKSL_INTERNAL_H_
|
|
|
|
/*
|
|
* Shared internals. Not installed, not part of the public API -- anything here
|
|
* is free to change without so much as a patch bump.
|
|
*/
|
|
|
|
#include <errno.h>
|
|
|
|
/*
|
|
* errno as an akerror status, with a fallback for when it is not one.
|
|
*
|
|
* A libc call is allowed to fail without touching errno -- malloc(0) may return
|
|
* NULL and leave it alone -- and errno may equally be a leftover from some
|
|
* earlier, unrelated, *successful* call. Reporting it raw produces a FAIL whose
|
|
* status is 0, which every downstream DETECT and CATCH reads as success while
|
|
* the context still holds a pool slot: an error that is invisible and leaks at
|
|
* the same time. Every errno-sourced status in this library goes through here,
|
|
* and every wrapped call clears errno first so the value read back is its own.
|
|
* See UPGRADING.md.
|
|
*/
|
|
#define AKSL_ERRNO_OR(__fallback) (errno != 0 ? errno : (__fallback))
|
|
|
|
#endif // _AKSL_INTERNAL_H_
|