ncurses(3X) says:
     --with-termlib
          Provide ncurses’s lower‐level terminal interface functions
          (those that do not depend on the SCREEN and WINDOW
          abstractions) in a library named tinfo.
...
          The following pages document curses functions provided by
          tinfo.
...
          •   inopts(3X) - curses input options

And inopts(3X) says:
     int echo(void);
     int noecho(void);

...but these symbols are not in the tinfo library.

$ nm ~/ncurses-HEAD/lib/libtinfotw.a | grep '\<echo' || echo MISSING
MISSING
$ nm ~/ncurses-HEAD/lib/libncursestw.a | grep '\<echo' || echo MISSING
000000000000002b T echo
0000000000000000 T echo_sp
0000000000001e25 T echo_wchar
0000000000000456 T echochar
                 U echo_sp

For the implementation to be consistent with the documentation, either
the symbol definitions should move, or the function descriptions should.

It looks to me like the latter is the preferred solution.  There's not a
lot to the `echo()` and `noecho()` functions; internally they call
`echo_sp()` and `noecho_sp()`, respectively, with `CURRENT_SCREEN` as
the screen pointer argument.

The latter functions in turn set the `IsEcho` property of the `SCREEN`
structure.  That's not a property of interest to "lower-level" curses
functions that manipulate `TERMINAL` state more than `SCREEN` state.

Would moving the documentation of these functions into a new page be the
correct solution?

Regards,
Branden

Attachment: signature.asc
Description: PGP signature

Reply via email to