Newer
Older
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
*
* All rights reserved.
*
* This file is part of Obarun. It is subject to the license terms in
* the LICENSE file found in the top-level directory of this
* distribution.
* This file may not be copied, modified, propagated, or distributed
* except according to the terms contained in the LICENSE file./
* */
#include <unistd.h>
#include <sys/ioctl.h>
#include <wchar.h>
#include <66/info.h>
int info_getcols_fd(int fd)
{
int width = -1;
if(!isatty(fd)) return 0;
#if defined(TIOCGSIZE)
struct ttysize win;
if(ioctl(fd, TIOCGSIZE, &win) == 0)
width = win.ts_cols;
#elif defined(TIOCGWINSZ)
struct winsize win;
if(ioctl(fd, TIOCGWINSZ, &win) == 0)
width = win.ws_col;
#endif
// return abitrary value
if(width <= 0) return 100 ;
return width;
}