提交 4d578654 编写于 作者: R Rich Felker

add tcgetwinsize and tcsetwinsize functions, move struct winsize

these have been adopted for future issue of POSIX as the outcome of
Austin Group issue 1151, and are simply functions performing the roles
of the historical ioctls. since struct winsize is being standardized
along with them, its definition is moved to the appropriate header.

there is some chance this will break source files that expect struct
winsize to be defined by sys/ioctl.h without including termios.h. if
this happens, further changes will be needed to have sys/ioctl.h
expose it too.
上级 9d4b25b4
......@@ -47,13 +47,6 @@ extern "C" {
#define TIOCSER_TEMT 1
struct winsize {
unsigned short ws_row;
unsigned short ws_col;
unsigned short ws_xpixel;
unsigned short ws_ypixel;
};
#define SIOCADDRT 0x890B
#define SIOCDELRT 0x890C
#define SIOCRTMSG 0x890D
......
......@@ -15,6 +15,13 @@ typedef unsigned char cc_t;
typedef unsigned int speed_t;
typedef unsigned int tcflag_t;
struct winsize {
unsigned short ws_row;
unsigned short ws_col;
unsigned short ws_xpixel;
unsigned short ws_ypixel;
};
#define NCCS 32
#include <bits/termios.h>
......@@ -27,6 +34,9 @@ int cfsetispeed (struct termios *, speed_t);
int tcgetattr (int, struct termios *);
int tcsetattr (int, int, const struct termios *);
int tcgetwinsize (int, struct winsize *);
int tcsetwinsize (int, const struct winsize *);
int tcsendbreak (int, int);
int tcdrain (int);
int tcflush (int, int);
......
#include "stdio_impl.h"
#include <stdlib.h>
#include <sys/ioctl.h>
#include <termios.h>
#include <fcntl.h>
#include <errno.h>
#include <string.h>
......
#include "stdio_impl.h"
#include <sys/ioctl.h>
#include <termios.h>
size_t __stdout_write(FILE *f, const unsigned char *buf, size_t len)
{
......
#include <termios.h>
#include <sys/ioctl.h>
#include "syscall.h"
int tcgetwinsize(int fd, struct winsize *wsz)
{
return syscall(SYS_ioctl, fd, TIOCGWINSZ, wsz);
}
#include <termios.h>
#include <sys/ioctl.h>
#include "syscall.h"
int tcsetwinsize(int fd, const struct winsize *wsz)
{
return syscall(SYS_ioctl, fd, TIOCSWINSZ, wsz);
}
#include <unistd.h>
#include <errno.h>
#include <sys/ioctl.h>
#include <termios.h>
#include "syscall.h"
int isatty(int fd)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册