cfsetispeed and zero baudrate

Pali Rohár
2021-08-30T10:39:00Z

Hello Alejandro!

Currently in cfsetispeed() documentation is written:

If the input baud rate is set to zero, the input baud rate will be
equal to the output baud rate.

There is B0 constant which represents "zero baud rate". And also
information that argument for cfsetispeed() (and also cfsetospeed())
must be Bnnn constant.

But above quote documents special handling, "zero" here is really
integer 0 and not pre-defined constant B0.

I think that phrase "If the input baud rate is set to zero" could be
confusing, as based on requirement to use Bnnn constants somebody could
interpret that "zero" as B0.

What do you think, should be above documentation part extended to
express that "zero" is really integer 0 and not constant B0?

Some references:
* glibc really checks for integer 0:
https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/speed.c;h=daac5ecde1f3695b8cb178002e8756895406087b;hb=HEAD#l86
* POSIX describes that it is integer 0: