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