Comments
Patch
@@ -253,5 +253,5 @@ static void handlesystemrequest(hgclient
writeblock(hgc);
} else if (strcmp(args[0], "pager") == 0) {
- setuppager(args[1]);
+ setuppager(args[1], args + 3);
if (hgc->capflags & CAP_ATTACHIO)
attachio(hgc);
@@ -178,5 +178,5 @@ error:
/* This implementation is based on hgext/pager.py (post 369741ef7253)
* Return 0 if pager is not started, or pid of the pager */
-pid_t setuppager(const char *pagercmd)
+pid_t setuppager(const char *pagercmd, const char *envp[])
{
assert(pagerpid == 0);
@@ -206,5 +206,6 @@ pid_t setuppager(const char *pagercmd)
close(pipefds[1]);
- int r = execlp("/bin/sh", "/bin/sh", "-c", pagercmd, NULL);
+ int r = execle("/bin/sh", "/bin/sh", "-c", pagercmd, NULL,
+ envp);
if (r < 0) {
abortmsgerrno("cannot start pager '%s'", pagercmd);
@@ -16,5 +16,5 @@ void restoresignalhandler(void);
void setupsignalhandler(pid_t pid, pid_t pgid);
-pid_t setuppager(const char *pagercmd);
+pid_t setuppager(const char *pagercmd, const char *envp[]);
void waitpager(void);