summaryrefslogtreecommitdiff
path: root/man/curs_scroll.3x
diff options
context:
space:
mode:
Diffstat (limited to 'man/curs_scroll.3x')
-rw-r--r--man/curs_scroll.3x143
1 files changed, 98 insertions, 45 deletions
diff --git a/man/curs_scroll.3x b/man/curs_scroll.3x
index 16d5a501094f..aa9fdb8e4f54 100644
--- a/man/curs_scroll.3x
+++ b/man/curs_scroll.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018-2023,2024 Thomas E. Dickey *
+.\" Copyright 2018-2024,2025 Thomas E. Dickey *
.\" Copyright 1998-2006,2010 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,8 +27,8 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_scroll.3x,v 1.43 2024/04/20 18:54:36 tom Exp $
-.TH curs_scroll 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: curs_scroll.3x,v 1.59 2025/04/05 22:20:39 tom Exp $
+.TH curs_scroll 3X 2025-04-05 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
@@ -48,43 +48,59 @@
\fB\%scroll\fP,
\fB\%scrl\fP,
\fB\%wscrl\fP \-
-scroll a \fIcurses\fR window
+scroll a \fIcurses\fP window
.SH SYNOPSIS
.nf
\fB#include <curses.h>
.PP
-\fBint scroll(WINDOW *\fIwin\fP);
+\fBint scroll(WINDOW * \fIwin\fP);
.PP
\fBint scrl(int \fIn\fP);
-\fBint wscrl(WINDOW *\fIwin\fP, int \fIn\fP);
+\fBint wscrl(WINDOW * \fIwin\fP, int \fIn\fP);
.fi
.SH DESCRIPTION
-\fBscroll\fP scrolls the given window up one line.
+.B scroll
+scrolls the given window up one line.
That is,
every visible line we might number
.I i
becomes line
.IR i "\-1."
-The text of the top line in the window disappears and the bottom line
-is populated with blank characters;
-see \fB\%bkgd\fP(3X) or \fB\%bkgrnd\fP(3X).
-As an optimization,
-if the scrolling region of the window is the entire screen,
-the physical screen may be scrolled at the same time;
-see \fB\%curscr\fP(3X).
-.PP
-\fB\%scrl\fP and \fB\%wscrl\fP scroll
-.B \%stdscr
-or the specified window up or down depending on the sign of
-.IR n .
+.B \%wscrl
+and
+.B \%scrl
+scroll the specified window or
+.BR \%stdscr ","
+respectively,
+up or down per the sign of
+.IR n "."
.bP
For positive
-.IR n ,
-line \fIi\fP+\fIn\fP becomes \fIi\fP (scrolling up);
+.IR n ","
+line
+.IR i + n
+becomes
+.I i
+(scrolling up);
.bP
for negative
-.IR n ,
-line \fIi\fP-\fIn\fP becomes \fIi\fP (scrolling down).
+.IR n ","
+line
+.IR i \- n
+becomes
+.I i
+(scrolling down).
+.PP
+A line that scrolls beyond the window boundaries disappears;
+.I curses
+populates a new one emerging at the opposite boundary
+with the background character;
+see \fB\%bkgd\fP(3X)
+(wide-character API users: \fB\%bkgrnd\fP(3X)).
+As an optimization,
+if the scrolling region of the window is the entire screen,
+the physical screen may be scrolled at the same time;
+see \fB\%curscr\fP(3X).
.PP
The cursor does not move.
These functions perform no operation unless scrolling is enabled for the
@@ -96,42 +112,79 @@ upon failure and
.B OK
upon success.
.PP
-.I \%ncurses
-returns \fBERR\fP if scrolling is not enabled in the window,
-for example with \fB\%scrollok\fP(3X),
-or if the
+In
+.IR \%ncurses ","
+they return
+.B ERR
+if
+.bP
+the
+.I curses
+screen has not been initialized,
+.bP
+(for functions taking a
.I \%WINDOW
-pointer is null.
+pointer argument)
+.I win
+is a null pointer,
+or
+.bP
+scrolling is not enabled in the window
+(as by \fB\%scrollok\fP(3X)).
.SH NOTES
-Unusually,
-there is no \fB\%wscroll\fP function;
-\fBscroll\fP behaves as one would expect \fB\%wscroll\fP to,
-accepting a \fI\%WINDOW\fP pointer argument.
+.B \%scroll
+and
+.B \%scrl
+may be implemented as macros.
.PP
-\fB\%scrl\fP and \fB\%scroll\fP may be implemented as macros.
+Unusually,
+there is no
+.B \%wscroll
+function;
+.B scroll
+behaves as one would expect
+.B \%wscroll
+to,
+accepting a
+.I \%WINDOW
+pointer argument.
.SH PORTABILITY
-X/Open Curses,
-Issue 4 describes these functions.
-It defines no error conditions.
+X/Open Curses Issue\ 4 describes these functions.
+It specifies no error conditions for them.
.PP
-SVr4 specifies only
-\*(``an integer value other than \fBERR\fP\*('' as a successful return
-value.
+SVr4 describes a successful return value only as
+\*(``an integer value other than
+.IR ERR \*(''. \" Courier roman in source; SVID 4, vol. 3, p. 531
.PP
SVr4 indicates that the optimization of physically scrolling immediately
if the scroll region is the entire screen \*(``is\*('' performed,
not \*(``may be\*('' performed.
.I \%ncurses
-deliberately does not guarantee that this will occur,
-to leave open the possibility of smarter optimization of multiple scroll
+deliberately does not guarantee that this occurs,
+to leave open the possibility of better optimization of multiple scroll
actions on the next update.
.PP
Neither SVr4
.I curses
-nor X/Open Curses specify whether the current attribute or current color
-pair of blanks generated by the scroll function are zeroed.
-.I \%ncurses
-does so.
+nor X/Open Curses specify whether these functions zero the attributes or
+color pair identifier of the background character.
+In
+.IR \%ncurses ","
+they do not.
+.SH HISTORY
+4BSD (1980)
+introduced
+.IR scroll ","
+defining it as a function.
+.PP
+SVr3.1 (1987)
+added
+.I \%scrl
+and
+.IR \%wscrl ","
+redefining
+.I \%scroll
+as a macro wrapping the latter.
.SH SEE ALSO
\fB\%curses\fP(3X),
\fB\%curs_outopts\fP(3X)