Module Name: src Committed By: riastradh Date: Sun Mar 2 16:35:41 UTC 2025
Modified Files: src/common/lib/libc/stdlib: heapsort.c src/distrib/sets/lists/comp: mi src/distrib/sets/lists/debug: mi src/distrib/sets/lists/tests: mi src/include: stdlib.h src/lib/libc/include: namespace.h src/lib/libc/stdlib: Makefile.inc merge.c qsort.3 qsort.c src/sys/lib/libkern: libkern.h src/tests/lib/libc/stdlib: Makefile src/tools/compat: compat_defs.h Added Files: src/tests/lib/libc/stdlib: h_sort.c t_sort.sh Log Message: libc: New _r variants of heapsort, mergesort, qsort. Also kheapsort_r for kernel/standalone use. These variants allow the caller to pass a cookie through to the comparison function, e.g. if you want to sort an array of indices into a buffer. qsort_r is new in POSIX.1-2024; the others are obvious analogues of our nonstandard extensions for heapsort and mergesort. PR lib/58931: qsort_r() missing To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/common/lib/libc/stdlib/heapsort.c cvs rdiff -u -r1.2485 -r1.2486 src/distrib/sets/lists/comp/mi cvs rdiff -u -r1.466 -r1.467 src/distrib/sets/lists/debug/mi cvs rdiff -u -r1.1359 -r1.1360 src/distrib/sets/lists/tests/mi cvs rdiff -u -r1.129 -r1.130 src/include/stdlib.h cvs rdiff -u -r1.205 -r1.206 src/lib/libc/include/namespace.h cvs rdiff -u -r1.103 -r1.104 src/lib/libc/stdlib/Makefile.inc cvs rdiff -u -r1.16 -r1.17 src/lib/libc/stdlib/merge.c cvs rdiff -u -r1.14 -r1.15 src/lib/libc/stdlib/qsort.3 cvs rdiff -u -r1.23 -r1.24 src/lib/libc/stdlib/qsort.c cvs rdiff -u -r1.147 -r1.148 src/sys/lib/libkern/libkern.h cvs rdiff -u -r1.34 -r1.35 src/tests/lib/libc/stdlib/Makefile cvs rdiff -u -r0 -r1.1 src/tests/lib/libc/stdlib/h_sort.c \ src/tests/lib/libc/stdlib/t_sort.sh cvs rdiff -u -r1.123 -r1.124 src/tools/compat/compat_defs.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.