54180fb bump version
3124ea9 quiet warning in child code
7b49210 fix tests
2a936eb fix non-lib unit test
a06ec6c test new functions
2eea40a comment to remind me of how fn works
0df559c use better error codes in old fns
182fbbb add initial envp parsing
579f732 remove redundant NULL assignment
a947964 fix coverage of existing lib functions
9eaf64f add check for malloc failure
81cf59a postinstall script prep for update
52ea076 rename fn for getting exact args len
37d3769 isolate lto to exe
0120851 remove double .zip extension
5f804f5 reduce duplicated work in makefile
a500d95 remove minor version some more in CI
c24711e fixup mergeable library support
d0a7ced add static linking flags to pkg-config
2e40f0d move entrypoint linker flag to executable target
890b6fe bump license year
99ae463 update actions to drop deprecated node version
576aa57 fix making github release
0a4895e bump version
75bf9e4 cleanup workflow file
cc065ee macos-11 was dropped by homebrew
8f8ec67 bump checkout action & use macos 14 runners
321a554 fix manpage warning
4dbad56 fix deployment target for macOS >= 11
9e98027 adjust compilation db in CI for lint
66ea6e2 Revert "max align type for storing alignment value"
7605440 update links & versions in readme
520f538 max align type for storing alignment value
03b02fa more macOS versions for makefile
49ccf84 remove runner, it is no longer used
22c483e try to make child clean itself up
efce471 make version task better
4ec8995 bump version
899b1ee quiet rm
444315b fix productbuild
6d50a90 try to fix coverage commands
91cfa7d fix rm in makefile
c375033 fix makefile more
6f9e314 fix makefile
0df65cd add more tests
4dfb33d improve test coverage
7311a1d add macOS 13 to build task
560439f rough initial work to try and ship symbols
95a8550 use all github mac runners
7e0b636 Revert "try to build catalina bottle for CI"
1697896 try to build catalina bottle for CI
7295099 fix tests & cleanup children more reliably
f603aa5 use clang’s cleanup attribute to kill child processes
985a207 add unit test & fix for single empty arg case
7084f75 tidy makefiles
7bc5dc5 more lib types
826071a add debug logging
58c54a6 expose new functions
152e6fd fix super debug UB
a8f0f05 bump version
bfd17af fix c++ compat
7142c46 whitespace
23deb46 fix library makefile
4ecb807 some missing changes from static/dylib split
68f7f32 fix functions to match header
7dce360 initial static lib support
565f5eb use variable for lib obj dep
80c0819 mention homebrew tap
ba16de5 mention need for malloc to be thread safe
c0401f6 when using project lib as system lib dir, change rpath to abs path
efb7903 bump version
f25eb0e bump version
660e01e fixup release
74c0477 fix workflow
8a46bdb add missing lib unit tests
b7cb18a fix binary unit tests
c3a5c27 bump version
d04a225 make return values safer when error occurs
d8bb64d add more lib unit tests
eaf8e4c remove main.c from compilation db
72e776e make clangd okay with common test file
3520941 make target to create symlinks in lib dir
e065121 make returned values more resilient in case of no buffer to free
7ffde27 fix tested OSs
f777136 fix a bunch of issues with lib man page
8d68d71 add safe freeing functions to lib
08eb9cf artifact naming improvements and debug release
3c45879 Fix version target to include pkgconfig file
79918ee remove build for 10.15, it’s not CI tested
8a8ffb3 bump version
6b4bfcd replace awk based version bump script with ruby
031d4cc Run CI on tag push too
4e88d81 bump verision
0efdb67 drop catalina from CI, homebrew seems to have stopped making bottles for it and building from source is too slow
c505ab4 force bottles in CI
95ba506 add timeouts to jobs
9529de5 bump version
421c370 move formulae out to tap
7f09ef0 note atos tool for symbolication
5b8d4fa bump copyright year
0e314ab try to fix code stats in gh
20d3f70 create pkg-config dir if not extant
d591dcd fix missing CI dependency
1aa3e8b install pkg-config file and adjust permissions on files
016793c add pkg-config file
675c418 fix man page for revised layout of struct
c1f28b6 refactor release actions job
cf02893 build more compatible artifacts
ef74fa4 small tweaks to homebrew formulae
ddc42c8 fix dylib makefile indentation
420389e adjust some refs to make them more compatible
d64a459 fix unclosed variable span in man page
d85ac7f add new fn to print to another output stream
36919e6 extract header contents and use include header to ensure consistency
99b1e48 make code more c89 compatible
070fac9 separate lib/bin build dirs because of visibility and lto differences
3f7f8dd change padding of ArgvArgcResult
5d6323d cleanup makefile
be67f5d Fix typo
f169fc5 add timeout to steps that have hung
3382294 only conditionally set pkg min-os-version on macos >= 12.0
104c2ea declare print fn doesn’t modify arg ptrs
6fee65a move comment to more relevant line
d45bacb remove unused variable
d37a9e3 retry symbol stuff???
dbcf3eb remove main file, use linker to replace main function
0fad4f5 improve manpages
93d4aba homebrew work
dbee1c8 no LTO for dylib, it confuses the downstream linker sometimes
d378d73 start testing sysctl args
253079f test malloc and sysctl use better
1dbde1d fix artifact creation
dfcf733 use checkout v3 to fix node.js 12 runner deprecation warning
b734c9d Create SECURITY.md
e1fa438 make err msg check use proper errno now that it’s consistant
3fffa5e set expected errno in failed print method wrappers
2169d90 try to fix tests in CI
2174523 fixup library install script to cope with real machines
f42566c note assumptions about xnu in man page
9a71468 update readme for libgetargv
8ce6c4c record some profiling approaches WIP
157157b missing test case
3be1409 comment on type used for get_arg_max and remove redundant check in parse_uint
d3cd175 fixup tests after making malloc optional
765207d store artifacts for inspection
a067bb5 rough start on bottlling
9b12a80 static buffer to skip malloc when possible
1280c0f use LTO on getargv for more speed
c70da43 reuse allocated buffer in benchmark, malloc is sloooooow
b0a30ab small makefile improvements
ad06807 improve clang format config
7fc372b deal with arg_max isn’t always 1024^2 in uint parsing tests
2d43cbd fix tests for lowered int parsing upper limit
028a5a4 more wrong make task names
e797f93 fix syntax
44883e0 more github actions fixes
c5535c2 fix libtest in actions file
0e5ed38 fixup test helper
f1ce30b post release version bump
2b14bf6 improve manpages
d26b203 use better suited int parsing fn
93c0dc0 makefile fixes
444743c extract common unit testing code
f8a53ef shut up clang
e8e7d25 mention in man page that when argc == 0 argv and buffer are NULL
5f8dfe0 whitespace
c447f64 more test improvements
0dbbc3b fix style
29cb8fe make tests less crashy
26eaac5 fix bad errors in lib fn
3e3cb77 fix nulls → nuls
b1a8f56 more test cases
e95c066 man page syntax improvements
555d450 note reason for not using fortify level 3
132f530 fix lib test formatting
86aa58d deal with no-args results
6689726 Fix library man page
c2bc220 rename libtest to libtest1
7fa4573 add another test case to uint parsing
17eb0ee extract coverage report target
a0001b2 organize dylib macros
b67e115 DRY by polyfilling alignof in header
648115b make dSYM symbols package from executable
f41e867 cleanup clang version logic in makefile
153836e Fix arm build
4b5c94e update man page for lib
5d81d2c add libtest2
a870b31 refactor API
79fb378 make parse_int into parse_uint
bfbd4dc collect non-library code together
0b23ff4 warn myself about thread safety
ab04f4d whitespace
165ba8f collect non-lib code together
5c8bf4d add another used system lib to clang tidy whitelist
1227669 add new library function that returns argv&argc like main gets them
9f038ef discuss thread safety in man page
a25e739 fix fn list formatting in man page
a5116e1 make it more obvious to me in the future that globals not used in library code
e6e7c68 expand sanitizer use
2fa9228 fix readme badge, and add sanitizer flags to coverage run
20f7fd0 reduce coverage reporting detail
c19efd3 try running coverage test again
4d7833d add badge to readme
f67caf7 missed part of enabling the rest of the tests
76c89d8 turn on the full test suite except coverage
b07c62d try to fix tests
ddbf19a logging didn’t work, removing
5547be1 another try to log stdout/stderr on signal crash
78594e8 homebrew needs an update
904fbc8 try out dumping stdout/stderr when crashed w/ signal
4390c0e speed up actions
fed0c82 fix format for MACOSX_DEPLOYMENT_TARGET var
8f102af fix copyright, i had commits in 2020
971f543 try to improve logging for wrap_exit fn
9bf673d address ASAN incompatibility with monterey malloc
f324b79 update clangd config for new version, and fix some smells
b447929 these won’t be useful, as the signal is coming from asan
4e610fb not redirecting in tests that expect it causes hangs
9be660d duh, indexes were f’d when trying to only run the one test
c107550 try to narrow crashing test
c6f8041 remove useless message log
3521774 debug info for tests
69b913d only run broken tests for now to save CI time
6212da4 Create FUNDING.yml
dfb2497 temporarily turn off coverage report to reduce log spam
163d48f support build envs without min sdk set
f003970 use xcrun to find more tools
68142e2 try to fix homebrew again
0459959 fix conditional codesigning and remove some github actions debugging
23a4b07 try to figure out env issues with homebrew on github actions
aee2620 fix github actions failures
b199c49 add github actions workflow
b98d657 make makefiles a tiny bit more adaptive to other computers
c24da3d fixup readme to be a bit clearer
c2f470b note desire to perform error handling on write
35567cc make library not exit on failure
8efc3c9 add succeed function
8265210 mention how to deal with redefined bool
6630052 license year
f3046ca post release version bump
f409ba5 cover last branch in tests
cb09784 cr_malloc limit bug fixed in upcoming criterion release
80223cd allow building on arm macs
d35f799 more improved error messages
6d9a2c4 cover more branches with tests
901082e improve error messages on parsing pids
e0369e6 show missed branches in coverage report
fafdfc8 fix coverage check
f05df91 fix version test
0133363 convert simple case to use spawn
6c90b62 make spawn into a macro that terminates the arg list
797d98c initial use of spawn in tests
16984c8 fix spawn issue
15084ee tweak manpage language
8a14dfb use new understanding of makefile wildcard to improve reliability
cbc413e reintroduce missing LIB_OBJ variable
34e41b0 do a more limited include for pid_t
2d86be1 better check the c version (someone might use a C94 compiler)
d13b1fc fix manpage now that options is renamed
97d5138 Merge branch 'library'
ddf7416 huge makefiles refactoring
4af0704 tidy makefiles a bit
4defe88 fixup lib id on install so -l getargv works
6cf076a improve compiling libtest
3e4f71a rename Options for greater compatibility
57d5492 improve compatibility info
20a9296 make a dynamic library for others to use
236616b bump version
6151ec6 set default target
ba0b670 note on loading criterion dSYM in lldb
9b8fb93 update compile commands db
a596b7c missed renaming during refactoring
0e6c2ee use much better lldbinit file from the gdbinit project
c5b819a remove notes, don't need them anymore
ad2348b make debug makefile use linker flags if i ever add any
0e31fb6 remove unneeded .gitmodules file
ca6bc9d fix codesigning, must be after all stripping thus in install step
91cd178 tidy makefile
c7d8de2 use link macro in manpage
1748ac3 comments and clang tidy
34f1f98 more tests, working
3781405 add more test cases
d87d7fb rearrange code for better organization
8aa67a8 make clang tidy happy
6b1bdbc more tests
03f1a69 debugger QOL
d8db715 add another test case
8c93c77 make test makefile more automatic
a0afc94 make include guard not "reserved"
36915af don't modify options struct
7c8dba4 move linker flag to LDFLAGS
1c0646a note how to print memory via xxd
982b049 format clangd config more neatly
8d6d1db consistant use of snake_case
9154b51 blocks don't need to be copied if they don't outlive the function that defined them
31475b3 fix test not having stdout flushed before reading
57569ba switch to blocks instead of fn ptr for wrap_exit extra checks
8b0804e note how to connect to lldb debugserver
094b2ec use clangd for clang-tidy
4afd4ed use results of benchmarking
0efb6dd better benchmarking
2078485 appease the formatter
3a81a9f configure clangd
f56b535 remove debug function, just use a debugger
a4139e8 warn if print/search methods not defined (vs wrong value)
10091c9 move comment next to related variable
e0549d5 rough initial benchmarking
abf9f51 switch to more mock-like sysctl wrapper
b4f25ea some more clangd integration (needs clangd 12 though, which comes with the next xcode CLT)
746daa9 more clang tidy annoyances
b92ac20 rough clangd setup, not quite working yet
645a7b2 enable another test
c082eef address some clangd complaints
0efb9cd ignore clangd cache dir
7e06586 ignore mandoc.css
3c2c9a0 initial sanitizer use
1990616 bump version for future work
fbb6403 fixup tests some more
eaee50a add spawn helper function, but criterion breaks it
0da67b4 harden runtime
6a71628 shut up output from test
9afb31c more tests
b342cc1 crash hook hangs if you use cr_log_* functions, use fprintf instead
78dc957 attempt to test invalid procargs buffer
411e460 fix cr_strdup to magically handle strings with nulls
2d7cc2f more tests
05da65f move example data into test dir
6b6d5b8 more tests
65d0e75 Fix compiler warning about search method
a9788f1 use expect when testing multiple conditions
942e3c6 a bunch more tests
ca9c27d add report to end of coverage
29bf70a shorten output of run_coverage
ef75f19 use asprintf to handle mallocing memory for strings
cc1b378 fixup tests, improve coverage
af077a6 Merge branch 'criterion'
3b05c4d initial coverage support
834439d improve top level makefile for running tests
2dfb71c add crash reporting hook
487d7d6 remove mimick
fb99365 initial working tests
cb53edf cleanup better
def2906 add criterion & mimick
36a76f3 define inline with actual attribute if not defined
594b260 Fix parseInt errno setting
81a5206 note tested versions of macOS
e980a66 cleanup makefile, make adding flags easier, set FORTIFY_SOURCE based on platform
bf780f0 make applying unused attribute tidier
a378953 define noreturn for 10.7
a298372 make plist editing more backwards compatible
0714c13 note issue with header guard
772777c allow updating compile_commands.json from makefile
48cd9fc extract clang tidy config file
ed4f845 ignore assets from gh-pages branch
8472844 example data
b5d6f3b optimization research
4ba6abe clang-tidy
cc46fa8 fix debugPrinting null calculation
900489e add more search methods
9992c8b svgcleaner logo
1df6e37 fix argc==0 crash in getopt
e6b6861 adjust style
0e21fe5 bump version for future work
37614fb std args format improvement
dd8b079 extract makefile variables
a1e9a51 improve gitignore
4ded687 update readme
f95ad9e Add logo
e2bb0c3 use Designated Initialization to ensure struct members assigned in intended order
84c3754 finish extracting debug makefile
b4349c5 bump version for future work
e42f268 fix tagging in make version
3e9eb90 fixup backwards compatibility a bit more
75bca24 refactor makefile
b7fa386 add codesigning and Info.plist
b7533d9 extract options struct
70ab625 extract arg parsing fn
af2686d put in brackets to ensure end_pointer isn’t added to
9c60c77 rename makefile targets again
b82fc17 argc can be 0
1a7dd50 extract main function for test compat
7dc0b7e add diagnostic printing to debug build
bb8255b improve makefile debug build
ade65c2 fix makefile
bdef2bb improve test setup
a9055f9 improve man page
a353a9c expand on why getargv is useful
6d1810d improve memory layout diagram commentary
afaf80c more test cases
a71b7e4 make test program more flexible
df77cfe bump version for next work
4df1e33 bump version
f4ef37a fix makefile version target
e198753 improve backwards compat
97522f6 clearer pointer alignment code
f9c9db6 pedantic errors
e8a37b4 ignore c++ incompatibility
d372179 sanitize debug builds
7d00e59 indicate possible UB
a621c23 silence compiler complaint
b05be5c deal with NUL byte padding bug
37b67cf add no argv[0] test case
4d066e9 add lldbinit file
6eb0190 more notes on memory diagram
9113229 argc not always > 0
4d8cea2 fix mem layout diagram missing nulls
4368cfc rename end pointer
d743577 fix check for minimum args
0dbcbe7 prettier error handling
4ddd737 add check for minimum args
16748bf move PID_MAX into makefile
6784b59 notes on makefiles
46a14a9 add debug build to makefile
49abfef makefile improvements
8c80733 add version tagging
5281495 add version flag to manpage, and tidy up
2791ad8 add some tests
7e41207 add version and version bump support
d5de9d8 comment
b693db1 factor out functions to ready for testing
187c4eb output error handling
4f357da document incorrect type use and warn if might break
0d0322b fix parseInt
1c4d519 full main args
8e000f0 safer number parsing
4754542 improve error messages
319809a try and inline functions when compiling
61a2508 reduce memory accesses
b9ad0ab add alt printing methods
d91180a fix args memory layout diagram
9b50a96 formatting tweaks
9d5056e cleanup
57a5c89 remove goto
963c957 fixup license compliance
90d354e remove uneeded flag
e365304 make install target
2105783 initial Readme
e34e5f4 add man page, fixup arg parsing
ed802cb move some things
cd8f21b add more flags
110428b check for errors in arg parsing
992f237 add attribution
2bb27a4 fix some issues raised by clang-tidy
7bf8522 clarify variable names
b98a32e update comment for current code
3c50bb8 remove uneeded extern declarations
c021ae4 allow skipping arguments and converting nulls to spaces
30316c6 add makefile
c5e2890 print trailing null (not sure if good idea)
b287e44 cleanup
8922948 print nulls
bebe598 initial committ
homepage link