|
@@ -5,6 +5,7 @@
|
|
|
#include <stdlib.h>
|
|
|
#include <string.h>
|
|
|
#include <sys/types.h>
|
|
|
+#include <unistd.h>
|
|
|
|
|
|
#include <klish/khelper.h>
|
|
|
#include <klish/kscheme.h>
|
|
@@ -18,9 +19,10 @@ struct ksession_s {
|
|
|
bool_t done;
|
|
|
size_t term_width;
|
|
|
size_t term_height;
|
|
|
- pid_t pid;
|
|
|
- uid_t uid;
|
|
|
- char *user;
|
|
|
+ pid_t spid;
|
|
|
+ pid_t pid;
|
|
|
+ uid_t uid;
|
|
|
+ char *user;
|
|
|
bool_t isatty_stdin;
|
|
|
bool_t isatty_stdout;
|
|
|
bool_t isatty_stderr;
|
|
@@ -45,6 +47,10 @@ KSET(session, size_t, term_width);
|
|
|
KGET(session, size_t, term_height);
|
|
|
KSET(session, size_t, term_height);
|
|
|
|
|
|
+
|
|
|
+KGET(session, pid_t, spid);
|
|
|
+KSET(session, pid_t, spid);
|
|
|
+
|
|
|
|
|
|
KGET(session, pid_t, pid);
|
|
|
KSET(session, pid_t, pid);
|
|
@@ -114,6 +120,7 @@ ksession_t *ksession_new(kscheme_t *scheme, const char *start_entry)
|
|
|
session->isatty_stdin = BOOL_FALSE;
|
|
|
session->isatty_stdout = BOOL_FALSE;
|
|
|
session->isatty_stderr = BOOL_FALSE;
|
|
|
+ session->spid = getpid();
|
|
|
|
|
|
return session;
|
|
|
}
|