--- rxvt-unicode/src/rxvtc.C 2003/11/24 17:28:08 1.1 +++ rxvt-unicode/src/rxvtc.C 2003/11/25 11:52:42 1.3 @@ -4,6 +4,7 @@ #include #include +#include #include #include @@ -31,20 +32,31 @@ } } +extern char **environ; + int main(int argc, const char *const *argv) { client c; char buf[PATH_MAX]; + { + sigset_t ss; + + sigaddset (&ss, SIGHUP); + sigprocmask (SIG_BLOCK, &ss, 0); + } + c.send ("NEW"); - c.send ("DISPLAY"); c.send (getenv ("DISPLAY")); // instead of getcwd we could opendir(".") and pass the fd for fchdir *g* - c.send ("CWD"); c.send (getcwd (buf, sizeof (buf))); + c.send ("CWD"), c.send (getcwd (buf, sizeof (buf))); + + for (char **var = environ; *environ; environ++) + c.send ("ENV"), c.send (*environ); - c.send ("ARGV"); c.send (argc); for (int i = 0; i < argc; i++) - c.send (argv[i]); + c.send ("ARG"), c.send (argv[i]); + c.send ("END"); }