neovim: Add 'nvim' in description for searchability
[termux-packages] / packages / neovim / forkpty-android.patch
CommitLineData
59f0d218
FF
1diff -N -u -r ../neovim-master/src/nvim/os/forkpty-android.h ./src/nvim/os/forkpty-android.h
2--- ../neovim-master/src/nvim/os/forkpty-android.h 1969-12-31 19:00:00.000000000 -0500
3+++ ./src/nvim/os/forkpty-android.h 2015-03-23 18:59:01.425165645 -0400
4@@ -0,0 +1,63 @@
5+#include <fcntl.h>
6+#include <sys/ioctl.h>
7+#include <sys/param.h>
8+#include <sys/types.h>
9+#include <stdlib.h>
10+#include <termios.h>
11+#include <unistd.h>
12+
13+int login_tty(int fd)
14+{
15+ setsid();
16+ if (ioctl(fd, TIOCSCTTY, NULL) == -1) return -1;
17+ dup2(fd, 0);
18+ dup2(fd, 1);
19+ dup2(fd, 2);
20+ if (fd > 2) close(fd);
21+ return 0;
22+}
23+
24+int openpty(int *amaster, int *aslave, char *name, struct termios *termp, struct winsize *winp)
25+{
26+ char buf[512];
27+ int master, slave;
28+
29+ master = open("/dev/ptmx", O_RDWR);
30+ if (master == -1) return -1;
31+ if (grantpt(master) || unlockpt(master) || ptsname_r(master, buf, sizeof buf)) goto fail;
32+
33+ slave = open(buf, O_RDWR | O_NOCTTY);
34+ if (slave == -1) goto fail;
35+
36+ /* XXX Should we ignore errors here? */
37+ if (termp) tcsetattr(slave, TCSAFLUSH, termp);
38+ if (winp) ioctl(slave, TIOCSWINSZ, winp);
39+
40+ *amaster = master;
41+ *aslave = slave;
42+ if (name != NULL) strcpy(name, buf);
43+ return 0;
44+
45+fail:
46+ close(master);
47+ return -1;
48+}
49+
50+
51+int forkpty(int *amaster, char *name, struct termios *termp, struct winsize *winp)
52+{
53+ int master, slave, pid;
54+ if (openpty(&master, &slave, name, termp, winp) == -1) return -1;
55+ switch (pid = fork()) {
56+ case -1:
57+ return -1;
58+ case 0:
59+ close(master);
60+ if (login_tty (slave)) _exit (1);
61+ return 0;
62+ default:
63+ *amaster = master;
64+ close (slave);
65+ return pid;
66+ }
67+}
68diff -N -u -r ../neovim-master/src/nvim/os/pty_process.c ./src/nvim/os/pty_process.c
69--- ../neovim-master/src/nvim/os/pty_process.c 2015-03-21 08:21:51.000000000 -0400
70+++ ./src/nvim/os/pty_process.c 2015-03-23 18:58:27.561165621 -0400
71@@ -14,6 +14,8 @@
72 # include <libutil.h>
73 #elif defined(__OpenBSD__) || defined(__NetBSD__) || defined(__APPLE__)
74 # include <util.h>
75+#elif defined(__ANDROID__)
76+# include "forkpty-android.h"
77 #else
78 # include <pty.h>
79 #endif