* Copyright (c) 1993, 1994
* The Regents of the University of California. All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
static char sccsid
[] = "@(#)ex_screen.c 8.12 (Berkeley) 3/8/94";
* ex_split -- :s[plit] [file ...]
* Split the screen, optionally setting the file list.
return (sp
->s_split(sp
, cmdp
->argc
? cmdp
->argv
: NULL
));
return (sp
->s_fg(sp
, cmdp
->argc
? cmdp
->argv
[0]->bp
: NULL
));
* ex_resize -- :resize [+-]rows
* Change the screen size.
if (!F_ISSET(cmdp
, E_COUNT
)) {
msgq(sp
, M_ERR
, "Usage: %s", cmdp
->cmd
->usage
);
if (F_ISSET(cmdp
, E_COUNT_NEG
))
else if (F_ISSET(cmdp
, E_COUNT_POS
))
return (sp
->s_rabs(sp
, cmdp
->count
, adj
));
* Display the list of screens.
if ((tsp
= sp
->gp
->hq
.cqh_first
) == (void *)&sp
->gp
->hq
) {
(void)ex_printf(EXCOOKIE
,
"No backgrounded screens to display.\n");
for (cnt
= 1; tsp
!= (void *)&sp
->gp
->hq
; tsp
= tsp
->q
.cqe_next
) {
col
+= len
= strlen(FILENAME(tsp
->frp
)) + sep
;
if (col
>= sp
->cols
- 1) {
(void)ex_printf(EXCOOKIE
, "\n");
(void)ex_printf(EXCOOKIE
, " ");
(void)ex_printf(EXCOOKIE
, "%s", FILENAME(tsp
->frp
));
(void)ex_printf(EXCOOKIE
, "\n");