Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | unpack.c: Cast negative signed offset to signedHEADmaster | Tomasz Kramkowski | 2022-11-02 | 1 | -1/+1 |
| | | | | | | | | | | As N1570ยง6.5.16.2p3 states, E1 += E2 is equivalent to E1 = E1 + (E2). This means that E1 + (E2) will be subject to (6.5.6p4) "the usual arithmetic conversions". Since both types have equal integer conversion rank (6.3.1.1p1), E1 which was intmax_t will first be converted to uintmax_t before being added to (E2). This is not the intended result as it relies on integer wrapping behaviour again. Casting E2 to intmax_t first prevents the conversion of E1 and produces the correct result. | ||||
* | Update copyright headers | Tomasz Kramkowski | 2022-05-16 | 3 | -3/+3 |
| | |||||
* | change buf to src or dest depending on context | Tomasz Kramkowski | 2021-11-07 | 3 | -18/+18 |
| | |||||
* | ieee754b.c: small cleanup | Tomasz Kramkowski | 2021-11-07 | 1 | -6/+4 |
| | |||||
* | use safe_islower to avoid UB | Tomasz Kramkowski | 2021-11-07 | 3 | -2/+10 |
| | |||||
* | README.md: fix outdated bugs link | Tomasz Kramkowski | 2021-11-07 | 1 | -1/+1 |
| | |||||
* | test.c: Output TAP formatted tests | Tomasz Kramkowski | 2021-09-21 | 1 | -6/+11 |
| | |||||
* | test.c: clean up macros | Tomasz Kramkowski | 2021-09-21 | 1 | -15/+14 |
| | |||||
* | test.c: minor cleanup | Tomasz Kramkowski | 2021-09-21 | 1 | -2/+2 |
| | |||||
* | clean: always manually remove, use redo-targets to check | Tomasz Kramkowski | 2021-09-21 | 1 | -6/+15 |
| | | | | | | | | | clean will now always use the non-redo-targets clean method, but if redo-targets is available it will check that there's nothing missing from the logic. This isn't bulletproof but it's better than having a working clean when using a redo with redo-targets and then having a broken clean logic because I forgot to add something when not using a redo-targets redo. | ||||
* | pack: Simplify signed integer packing calculation | Tomasz Kramkowski | 2021-08-14 | 1 | -7/+1 |
| | | | | | | | | | | | | | Because of the fact that uintmax_t guarantees at least a full 64 bit width and because of C's behavior when a signed type is converted to an unsigned type and the value is out of range, the new code just sign-extends and converts to a uintmax_t wide two's complement signed value. As an aside, the old code was written forgetting the fact that that uintmax_t + intmax_t would be first converted to uintmax_t + uintmax_t before being evaluated. The end result was the same except it ended up being offset by 2^8s. | ||||
* | test_gen: implement unpack_struct test generation | Tomasz Kramkowski | 2021-08-11 | 1 | -10/+97 |
| | |||||
* | test.c: add simple unpack_struct test | Tomasz Kramkowski | 2021-08-11 | 1 | -0/+46 |
| | |||||
* | implement unpack_struct | Tomasz Kramkowski | 2021-08-11 | 2 | -0/+73 |
| | |||||
* | make [HT]CC full paths for redo-ifchange in .tool | Tomasz Kramkowski | 2021-08-11 | 2 | -1/+7 |
| | | | | | | | | | | | | This should force rebuilding targets which depend on tools which have changed in the filesystem and prevent envrionment changes from causing build changes. But this should be documented. Ideally a redo with a redo-always (or more aptly named redo-ifredo) would mark an env target as needing redoing every time you run redo on a deptree which includes it and this would in turn cause rebuilding of things which rely on the environment (like tools which run from the path). | ||||
* | add bash ft modelines to bash do files | Tomasz Kramkowski | 2021-08-08 | 7 | -0/+7 |
| | |||||
* | add the PACK_TYPE_COUNT pack_type | Tomasz Kramkowski | 2021-08-08 | 2 | -1/+3 |
| | |||||
* | default.tool.do: make things cleaner hopefully | Tomasz Kramkowski | 2021-08-08 | 1 | -19/+19 |
| | |||||
* | factor unpack core into read_fields | Tomasz Kramkowski | 2021-08-07 | 1 | -69/+77 |
| | |||||
* | always va_end even when an error occurs | Tomasz Kramkowski | 2021-08-07 | 3 | -9/+17 |
| | |||||
* | set -o pipefail when it is necessary | Tomasz Kramkowski | 2021-08-07 | 2 | -2/+2 |
| | |||||
* | fix up missed pack_type chars | Tomasz Kramkowski | 2021-08-06 | 2 | -11/+14 |
| | |||||
* | README.md: move to using link references everywhere | Tomasz Kramkowski | 2021-08-06 | 1 | -15/+29 |
| | |||||
* | use xmacros to generate type related code | Tomasz Kramkowski | 2021-08-06 | 3 | -64/+65 |
| | |||||
* | add pack_type and pack_endian and use them | Tomasz Kramkowski | 2021-08-06 | 5 | -47/+68 |
| | |||||
* | remove unused 's' from getsize switch | Tomasz Kramkowski | 2021-08-06 | 1 | -1/+1 |
| | |||||
* | test: signal test failure with exit code | Tomasz Kramkowski | 2021-08-06 | 1 | -0/+5 |
| | |||||
* | cleanup readme | Tomasz Kramkowski | 2021-08-06 | 1 | -12/+17 |
| | |||||
* | Revert ".builds: use my own minimal/do version" | Tomasz Kramkowski | 2021-08-06 | 5 | -5/+5 |
| | | | | This reverts commit 98e18c714bf1668e9c041f1be4abcab548f22294. | ||||
* | make do-link executable from /usr/bin/env | Tomasz Kramkowski | 2021-08-06 | 4 | -6/+8 |
| | | | | | | | On openbsd the script interpreter of an interpreter script can't be an interpreter script (script(7)) so do-link must be ran with /usr/bin/env which means the type parameter needs to be a variable set in the do file. | ||||
* | .builds: use my own minimal/do version | Tomasz Kramkowski | 2021-08-06 | 5 | -5/+5 |
| | | | | | | | The upstream minimal/do does not support relative shebangs and breaks builds. This fixes it. | ||||
* | implement do-link to simplify linking .do files | Tomasz Kramkowski | 2021-08-06 | 4 | -15/+11 |
| | |||||
* | default.o.do: rename compiler to tool | Tomasz Kramkowski | 2021-08-06 | 1 | -4/+4 |
| | |||||
* | sort .gitignore | Tomasz Kramkowski | 2021-08-06 | 1 | -1/+1 |
| | |||||
* | Implement compile_commands.json generation | Tomasz Kramkowski | 2021-08-06 | 14 | -18/+46 |
| | |||||
* | compile_flags.txt.do: use target flags for now | Tomasz Kramkowski | 2021-08-06 | 1 | -1/+1 |
| | |||||
* | README: Fix email addresses | Tomasz Kramkowski | 2021-08-06 | 1 | -2/+4 |
| | |||||
* | Update contributing and bugs information | Tomasz Kramkowski | 2021-08-06 | 1 | -3/+15 |
| | |||||
* | README: Sort and line up badges | Tomasz Kramkowski | 2021-08-06 | 1 | -8/+4 |
| | |||||
* | Fix license information content and format | Tomasz Kramkowski | 2021-08-05 | 12 | -11/+12 |
| | |||||
* | clean: fix all the non-redo-targets bugs | Tomasz Kramkowski | 2021-08-05 | 1 | -2/+2 |
| | |||||
* | Cross compilation support | Tomasz Kramkowski | 2021-08-05 | 14 | -48/+77 |
| | |||||
* | Define PRIuSIZE to avoid issues compiling with msvcrt | Tomasz Kramkowski | 2021-08-05 | 3 | -6/+18 |
| | | | | | | | | On windows and when cross compiling with mingw the standard library only supports C89 which means that print format arguments cannot take "%zu". To fix this, a PRIuSIZE macros is needed which expands to PRIu32 on windows 32 bit and PRIu64 on windows 64 bit. | ||||
* | Separate gcc specific warnings | Tomasz Kramkowski | 2021-08-05 | 6 | -9/+17 |
| | |||||
* | README: Make build health badges into a list | Tomasz Kramkowski | 2021-08-05 | 1 | -8/+10 |
| | |||||
* | README: Add alpine build health badge | Tomasz Kramkowski | 2021-08-05 | 1 | -0/+2 |
| | |||||
* | add builds.sr.ht manifest for alpine | Tomasz Kramkowski | 2021-08-05 | 1 | -0/+20 |
| | |||||
* | .parse-deps: No longer executable, called with sed -f | Tomasz Kramkowski | 2021-08-05 | 3 | -4/+3 |
| | | | | as #!/usr/bin/sed is not portable, it is easier to just use sed -f | ||||
* | add builds.sr.ht manifest for freebsd | Tomasz Kramkowski | 2021-08-05 | 2 | -1/+21 |
| | |||||
* | README: Add sourcehut build health badges | Tomasz Kramkowski | 2021-08-05 | 1 | -0/+5 |
| |