Commit | Line | Data |
---|---|---|
21296b85 | 1 | #ifndef lint |
35cbbdd0 | 2 | static char *sccsid = "@(#)wwclose.c 2.1 83/07/30"; |
21296b85 EW |
3 | #endif |
4 | ||
5 | #include "ww.h" | |
6 | #include <signal.h> | |
7 | ||
8 | wwclose(w) | |
9 | register struct ww *w; | |
10 | { | |
11 | register struct ww **p; | |
12 | ||
13 | for (p = &wwhead; *p && *p != w; p = &(*p)->ww_next) | |
14 | ; | |
15 | if (*p == 0) | |
16 | return -1; | |
17 | *p = w->ww_next; | |
18 | if (curwin == w) | |
19 | curwin = wwhead; | |
20 | if (w->ww_state == WW_HASPROC) | |
21 | kill(w->ww_pid, SIGHUP); | |
22 | close(w->ww_tty); | |
23 | close(w->ww_pty); | |
24 | Wclose(w->ww_win); | |
25 | cfree(w); | |
26 | return 0; | |
27 | } |