diff --git a/contrib/chg/chg.c b/contrib/chg/chg.c --- a/contrib/chg/chg.c +++ b/contrib/chg/chg.c @@ -30,6 +30,8 @@ #define PATH_MAX 4096 #endif +extern char **environ; + struct cmdserveropts { char sockname[PATH_MAX]; char initsockname[PATH_MAX]; @@ -394,7 +396,7 @@ abortmsgerrno("failed to exec original hg"); } -int main(int argc, const char *argv[], const char *envp[]) +int main(int argc, const char *argv[]) { if (getenv("CHGDEBUG")) enabledebugmsg(); @@ -429,7 +431,7 @@ hgc = connectcmdserver(&opts); if (!hgc) abortmsg("cannot open hg client"); - hgc_setenv(hgc, envp); + hgc_setenv(hgc); const char **insts = hgc_validate(hgc, argv + 1, argc - 1); int needreconnect = runinstructions(&opts, insts); free(insts); diff --git a/contrib/chg/hgclient.h b/contrib/chg/hgclient.h --- a/contrib/chg/hgclient.h +++ b/contrib/chg/hgclient.h @@ -25,6 +25,6 @@ size_t argsize); int hgc_runcommand(hgclient_t *hgc, const char *const args[], size_t argsize); void hgc_attachio(hgclient_t *hgc); -void hgc_setenv(hgclient_t *hgc, const char *const envp[]); +void hgc_setenv(hgclient_t *hgc); #endif /* HGCLIENT_H_ */ diff --git a/contrib/chg/hgclient.c b/contrib/chg/hgclient.c --- a/contrib/chg/hgclient.c +++ b/contrib/chg/hgclient.c @@ -26,6 +26,8 @@ #include "procutil.h" #include "util.h" +extern char **environ; + enum { CAP_GETENCODING = 0x0001, CAP_RUNCOMMAND = 0x0002, /* cHg extension: */ @@ -644,12 +646,12 @@ * @param envp list of environment variables in "NAME=VALUE" format, * terminated by NULL. */ -void hgc_setenv(hgclient_t *hgc, const char *const envp[]) +void hgc_setenv(hgclient_t *hgc) { - assert(hgc && envp); + assert(hgc && environ); if (!(hgc->capflags & CAP_SETENV)) { return; } - packcmdargs(&hgc->ctx, envp, /*argsize*/ -1); + packcmdargs(&hgc->ctx, (const char**)environ, /*argsize*/ -1); writeblockrequest(hgc, "setenv"); }