Line | Source | Count |
1 | | - |
2 | | - |
3 | | - |
4 | | - |
5 | | - |
6 | | - |
7 | | - |
8 | | - |
9 | | - |
10 | | - |
11 | | - |
12 | | - |
13 | | - |
14 | | - |
15 | | - |
16 | | - |
17 | | - |
18 | | - |
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 | | - |
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 | | - |
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 | | - |
62 | #define input_tty() (shell_tty != -1) ? shell_tty : fileno (stderr) | - |
63 | | - |
64 | #if !defined (errno) | - |
65 | extern int errno; | - |
66 | #endif /* !errno */ | - |
67 | | - |
68 | extern int shell_tty; | - |
69 | | - |
70 | #if defined (READLINE) | - |
71 | extern void rl_set_screen_size __P((int, int)); | - |
72 | #endif | - |
73 | extern void sh_set_lines_and_columns __P((int, int)); | - |
74 | | - |
75 | void | - |
76 | get_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 ();TRUE | never evaluated | FALSE | never evaluated |
| 0 |
85 | if (tty >= 0 && (ioctl (tty, TIOCGWINSZ, &win) == 0) &&TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
86 | win.ws_row > 0 && win.ws_col > 0)TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never 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)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
92 | *rp = win.ws_row; never executed: *rp = win.ws_row; | 0 |
93 | if (cp)TRUE | never evaluated | FALSE | never 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 |
| | |