MirBSD manpage: clearok(3), curs_outopts(3), idcok(3), idlok(3), immedok(3), leaveok(3), nl(3), nonl(3), scrollok(3), setscrreg(3), wsetscrreg(3)

curs_outopts(3)     UNIX Programmer's Manual      curs_outopts(3)


     clearok, idlok, idcok, immedok, leaveok, setscrreg,
     wsetscrreg, scrollok, nl, nonl - curses output options


     #include <curses.h>

     int clearok(WINDOW *win, bool bf);
     int idlok(WINDOW *win, bool bf);
     void idcok(WINDOW *win, bool bf);
     void immedok(WINDOW *win, bool bf);
     int leaveok(WINDOW *win, bool bf);
     int setscrreg(int top, int bot);
     int wsetscrreg(WINDOW *win, int top, int bot);
     int scrollok(WINDOW *win, bool bf);
     int nl(void);
     int nonl(void);


     These routines set options that change the style  of  output
     within  curses. All options are initially FALSE, unless oth-
     erwise stated. It is not necessary to turn these options off
     before calling endwin.

     If clearok is called with TRUE as argument, the next call to
     wrefresh  with  this window will clear the screen completely
     and redraw the entire screen from scratch.  This  is  useful
     when  the  contents  of the screen are uncertain, or in some
     cases for a more pleasing visual effect. If the win argument
     to  clearok  is the global variable curscr, the next call to
     wrefresh with any window causes the screen to be cleared and
     repainted from scratch.

     If idlok is called with TRUE as second argument, curses con-
     siders using the hardware insert/delete line feature of ter-
     minals so equipped. Calling idlok with FALSE as second argu-
     ment  disables  use of line insertion and deletion. This op-
     tion  should  be  enabled  only  if  the  application  needs
     insert/delete  line, for example, for a screen editor. It is
     disabled by default because insert/delete line tends  to  be
     visually  annoying  when used in applications where it isn't
     really needed. If insert/delete line cannot be used,  curses
     redraws the changed portions of all lines.

     If idcok is called with FALSE as second argument, curses  no
     longer  considers using the hardware insert/delete character
     feature  of  terminals  so  equipped.   Use   of   character
     insert/delete is enabled by default. Calling idcok with TRUE
     as second argument re-enables use of character insertion and

MirBSD #10-current     Printed 2022-12-23                       1

curs_outopts(3)     UNIX Programmer's Manual      curs_outopts(3)

     If immedok is called with TRUE as argument,  any  change  in
     the window image, such as the ones caused by waddch, wclrto-
     bot, wscrl, etc., automatically cause a  call  to  wrefresh.
     However, it may degrade performance considerably, due to re-
     peated calls to wrefresh. It is disabled by default.

     Normally, the hardware cursor is left at the location of the
     window cursor being refreshed. The leaveok option allows the
     cursor to be left wherever the update happens to  leave  it.
     It  is useful for applications where the cursor is not used,
     since it reduces the need for cursor motions.

     The setscrreg and wsetscrreg routines allow the  application
     programmer  to  set a software scrolling region in a window.
     top and bot are the line numbers of the top and bottom  mar-
     gin  of the scrolling region. (Line 0 is the top line of the
     window.)  If this option and scrollok are  enabled,  an  at-
     tempt to move off the bottom margin line causes all lines in
     the scrolling region to scroll one line in the direction  of
     the  first  line.  Only  the text of the window is scrolled.
     (Note that this has nothing to do with the use of a physical
     scrolling  region  capability  in the terminal, like that in
     the VT100. If idlok is enabled and the terminal has either a
     scrolling region or insert/delete line capability, they will
     probably be used by the output routines.)

     The scrollok option controls what happens when the cursor of
     a  window  is  moved off the edge of the window or scrolling
     region, either as a result of a newline action on the bottom
     line, or typing the last character of the last line. If dis-
     abled, (bf is FALSE), the cursor is left on the bottom line.
     If enabled, (bf is TRUE), the window is scrolled up one line
     (Note that to get the physical scrolling effect on the  ter-
     minal, it is also necessary to call idlok).

     The nl and nonl  routines  control  whether  the  underlying
     display device translates the return key into newline on in-
     put, and whether it translates newline into return and line-
     feed  on  output  (in either case, the call addch('\n') does
     the equivalent of  return  and  line  feed  on  the  virtual
     screen). Initially, these translations do occur. If you dis-
     able them using nonl, curses will be able to make better use
     of  the line-feed capability, resulting in faster cursor mo-
     tion. Also, curses will then be able to  detect  the  return


     The functions setscrreg and wsetscrreg return OK  upon  suc-
     cess and ERR upon failure. All other routines that return an
     integer always return OK.

MirBSD #10-current     Printed 2022-12-23                       2

curs_outopts(3)     UNIX Programmer's Manual      curs_outopts(3)

     X/Open does not define any error conditions.

     In this implementation, those functions that have  a  window
     pointer will return an error if the window pointer is null.

               returns an error if the cursor position  is  about
               to wrap.

               returns an error if the  scrolling  region  limits
               extend outside the window.

     X/Open does not define any error conditions. This  implemen-
     tation returns an error if the window pointer is null.


     These functions are described in the  XSI  Curses  standard,
     Issue 4.

     The XSI Curses standard is  ambiguous  on  the  question  of
     whether  raw()  should  disable  the  CRLF translations con-
     trolled by nl() and nonl(). BSD curses did  turn  off  these
     translations;  AT&T  curses  (at  least as late as SVr1) did
     not. We choose to do so, on the theory that a programmer re-
     questing  raw input wants a clean (ideally 8-bit clean) con-
     nection that the operating system will not alter.

     Some historic curses implementations had, as an undocumented
     feature, the ability to do the equivalent of clearok(..., 1)
     by saying touchwin(stdscr) or clear(stdscr). This  will  not
     work under ncurses.

     Earlier System V curses implementations specified that  with
     scrollok  enabled,  any  window  modification  triggering  a
     scroll also forced a physical refresh. XSI Curses  does  not
     require  this, and ncurses avoids doing it to perform better
     vertical-motion optimization at wrefresh time.

     The XSI Curses standard does not  mention  that  the  cursor
     should  be  made invisible as a side-effect of leaveok. SVr4
     curses documentation does this, but the code does  not.  Use
     curs_set to make the cursor invisible.


     Note that clearok, leaveok, scrollok, idcok,  nl,  nonl  and
     setscrreg may be macros.

     The immedok routine is useful for windows that are  used  as
     terminal emulators.

MirBSD #10-current     Printed 2022-12-23                       3

curs_outopts(3)     UNIX Programmer's Manual      curs_outopts(3)


     curses(3),  curs_addch(3),  curs_clear(3),  curs_initscr(3),
     curs_scroll(3), curs_refresh(3)

MirBSD #10-current     Printed 2022-12-23                       4

Generated on 2022-12-24 01:00:14 by $MirOS: src/scripts/roff2htm,v 1.113 2022/12/21 23:14:31 tg Exp $ — This product includes material provided by mirabilos.

These manual pages and other documentation are copyrighted by their respective writers; their sources are available at the project’s CVSweb, AnonCVS and other mirrors. The rest is Copyright © 2002–2022 MirBSD.

This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report — diffs preferred.

Kontakt / Impressum & Datenschutzerklärung