OpenCoverage

winsize.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/bash/src/lib/sh/winsize.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/* winsize.c - handle window size changes and information. */-
2-
3/* Copyright (C) 2005-2015 Free Software Foundation, Inc.-
4-
5 This file is part of GNU Bash, the Bourne Again SHell.-
6-
7 Bash is free software: you can redistribute it and/or modify-
8 it under the terms of the GNU General Public License as published by-
9 the Free Software Foundation, either version 3 of the License, or-
10 (at your option) any later version.-
11-
12 Bash is distributed in the hope that it will be useful,-
13 but WITHOUT ANY WARRANTY; without even the implied warranty of-
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the-
15 GNU General Public License for more details.-
16-
17 You should have received a copy of the GNU General Public License-
18 along with Bash. If not, see <http://www.gnu.org/licenses/>.-
19*/-
20-
21#include "config.h"-
22-
23#include <stdc.h>-
24-
25#include "bashtypes.h"-
26-
27#if defined (HAVE_UNISTD_H)-
28# include <unistd.h>-
29#endif-
30-
31#include <sys/ioctl.h>-
32-
33/* Try to find the definitions of `struct winsize' and TIOGCWINSZ */-
34-
35#if 0-
36#if defined (GWINSZ_IN_SYS_IOCTL) && !defined (TIOCGWINSZ)-
37# include <sys/ioctl.h>-
38#endif /* GWINSZ_IN_SYS_IOCTL && !TIOCGWINSZ */-
39#endif-
40-
41#if defined (STRUCT_WINSIZE_IN_TERMIOS) && !defined (STRUCT_WINSIZE_IN_SYS_IOCTL)-
42# include <termios.h>-
43#endif /* STRUCT_WINSIZE_IN_TERMIOS && !STRUCT_WINSIZE_IN_SYS_IOCTL */-
44-
45/* Not in either of the standard places, look around. */-
46#if !defined (STRUCT_WINSIZE_IN_TERMIOS) && !defined (STRUCT_WINSIZE_IN_SYS_IOCTL)-
47# if defined (HAVE_SYS_STREAM_H)-
48# include <sys/stream.h>-
49# endif /* HAVE_SYS_STREAM_H */-
50# if defined (HAVE_SYS_PTEM_H) /* SVR4.2, at least, has it here */-
51# include <sys/ptem.h>-
52# define _IO_PTEM_H /* work around SVR4.2 1.1.4 bug */-
53# endif /* HAVE_SYS_PTEM_H */-
54# if defined (HAVE_SYS_PTE_H) /* ??? */-
55# include <sys/pte.h>-
56# endif /* HAVE_SYS_PTE_H */-
57#endif /* !STRUCT_WINSIZE_IN_TERMIOS && !STRUCT_WINSIZE_IN_SYS_IOCTL */-
58-
59#include <stdio.h>-
60-
61/* Return the fd from which we are actually getting input. */-
62#define input_tty() (shell_tty != -1) ? shell_tty : fileno (stderr)-
63-
64#if !defined (errno)-
65extern int errno;-
66#endif /* !errno */-
67-
68extern int shell_tty;-
69-
70#if defined (READLINE)-
71extern void rl_set_screen_size __P((int, int));-
72#endif-
73extern void sh_set_lines_and_columns __P((int, int));-
74-
75void-
76get_new_window_size (from_sig, rp, cp)-
77 int from_sig;-
78 int *rp, *cp;-
79{-
80#if defined (TIOCGWINSZ)-
81 struct winsize win;-
82 int tty;-
83-
84 tty = input_tty ();
(shell_tty != -1)Description
TRUEnever evaluated
FALSEnever evaluated
0
85 if (tty >= 0 && (ioctl (tty, TIOCGWINSZ, &win) == 0) &&
tty >= 0Description
TRUEnever evaluated
FALSEnever evaluated
(ioctl (tty, 0... , &win) == 0)Description
TRUEnever evaluated
FALSEnever evaluated
0
86 win.ws_row > 0 && win.ws_col > 0)
win.ws_row > 0Description
TRUEnever evaluated
FALSEnever evaluated
win.ws_col > 0Description
TRUEnever evaluated
FALSEnever evaluated
0
87 {-
88 sh_set_lines_and_columns (win.ws_row, win.ws_col);-
89#if defined (READLINE)-
90 rl_set_screen_size (win.ws_row, win.ws_col);-
91 if (rp)
rpDescription
TRUEnever evaluated
FALSEnever evaluated
0
92 *rp = win.ws_row;
never executed: *rp = win.ws_row;
0
93 if (cp)
cpDescription
TRUEnever evaluated
FALSEnever evaluated
0
94 *cp = win.ws_col;
never executed: *cp = win.ws_col;
0
95#endif-
96 }
never executed: end of block
0
97#endif-
98}
never executed: end of block
0
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.1.2