aboutsummaryrefslogtreecommitdiffstats
path: root/src/speedgen (follow)
AgeCommit message (Collapse)AuthorFilesLines
2025-07-09maint: port speedgen to FreeBSD 15Paul Eggert1-1/+1
* src/speedgen: Avoid ‘trap 'command' ERR’, as ERR does not conform to POSIX and does not work in FreeBSD 15 sh.
2025-06-23build: fix compilation error on OpenBSD and SolarisBruno Haible1-4/+6
* src/speedgen: Use 'printf', not 'sed', to emit code with newlines.
2025-06-23maint: make it clear when to add speeds to the speedgen listH. Peter Anvin1-1/+13
Add a comment making it clear that it is perfectly safe to add additional speeds to the canned list in the speedgen script, and under what conditions it is appropriate to do so. Signed-off-by: "H. Peter Anvin" (Intel) <hpa@zytor.com>
2025-06-18stty: arbitrary or non-a priori known speed_t supportH. Peter Anvin1-0/+85
Support the case where speed_t is simply a number, and in that case assume that arbitrary values can be passed. This is assumed to be the case when all known speed_t macros equal their own value. Try to probe for a variety of speed_t constants by trying to coax $(CC) into emitting macro definitions (-E -dM). If this is not supported, use a fairly extensive list of constants as a fallback. This both improves the test for arbitrary speed support, as well as allowing proper operation in the case where the constants are not plain numbers and allows for handing enumerated speed constants that were not known a priori when the source code was written. A simple shell script (mostly using sed) is used to turn the list of constants (probed and predefined) into a pair of conversion functions, baud_to_value() and value_to_baud(); string_to_baud() is then reimplemented as a wrapper around the latter. * src/.gitignore: Add generated speedlist.h. * src/local.mk: Generate speedlist.h. * src/speedgen: Portable shell script to generate speedlist.h. * src/stty.c: Adjust string_to_baud to convert from arbitrary numeric values. * src/termios.c: A helper used when generating speedlist.h * NEWS: Mention the improvement.