mailing list of musl libc
 help / color / mirror / code / Atom feed
* [musl] POSIX & SIGWINCH
@ 2020-07-24 17:51 Rich Felker
  2020-08-19 23:09 ` Rich Felker
  0 siblings, 1 reply; 2+ messages in thread
From: Rich Felker @ 2020-07-24 17:51 UTC (permalink / raw)
  To: musl

Somehow I missed that POSIX has adopted (for future issue) SIGWINCH and
struct winsize and added functions (instead of raw ioctl) to get/set
window size:

https://www.austingroupbugs.net/view.php?id=1151#c3856

These should be added to musl. I'll aim to do this along with other
proposed additions shortly after release.

Rich

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [musl] POSIX & SIGWINCH
  2020-07-24 17:51 [musl] POSIX & SIGWINCH Rich Felker
@ 2020-08-19 23:09 ` Rich Felker
  0 siblings, 0 replies; 2+ messages in thread
From: Rich Felker @ 2020-08-19 23:09 UTC (permalink / raw)
  To: musl

[-- Attachment #1: Type: text/plain, Size: 603 bytes --]

On Fri, Jul 24, 2020 at 01:51:14PM -0400, Rich Felker wrote:
> Somehow I missed that POSIX has adopted (for future issue) SIGWINCH and
> struct winsize and added functions (instead of raw ioctl) to get/set
> window size:
> 
> https://www.austingroupbugs.net/view.php?id=1151#c3856
> 
> These should be added to musl. I'll aim to do this along with other
> proposed additions shortly after release.

Proposed patch attached. We should examine whether moving struct
winsize out of ioctl.h will break anything; if so ioctl.h could
include termios.h or we could put the struct in the shared alltypes.

Rich

[-- Attachment #2: winsize.diff --]
[-- Type: text/plain, Size: 1885 bytes --]

diff --git a/include/sys/ioctl.h b/include/sys/ioctl.h
index c2ce3b48..d6a7d474 100644
--- a/include/sys/ioctl.h
+++ b/include/sys/ioctl.h
@@ -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
diff --git a/include/termios.h b/include/termios.h
index d73c780d..793cfc94 100644
--- a/include/termios.h
+++ b/include/termios.h
@@ -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);
diff --git a/src/termios/tcgetwinsize.c b/src/termios/tcgetwinsize.c
new file mode 100644
index 00000000..9b3a65a4
--- /dev/null
+++ b/src/termios/tcgetwinsize.c
@@ -0,0 +1,8 @@
+#include <termios.h>
+#include <sys/ioctl.h>
+#include "syscall.h"
+
+int tcgetwinsize(int fd, struct winsize *wsz)
+{
+	return syscall(SYS_ioctl, fd, TIOCGWINSZ, wsz);
+}
diff --git a/src/termios/tcsetwinsize.c b/src/termios/tcsetwinsize.c
new file mode 100644
index 00000000..e01d0e25
--- /dev/null
+++ b/src/termios/tcsetwinsize.c
@@ -0,0 +1,8 @@
+#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);
+}

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2020-08-19 23:10 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-24 17:51 [musl] POSIX & SIGWINCH Rich Felker
2020-08-19 23:09 ` Rich Felker

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).