# HG changeset patch # User Jun Wu # Date 1458513800 25200 # Node ID baa073200ba206e471ca51618e2297271d6d4071 # Parent d4d8a3c89e6dd11e69a742c404b2d7616cb50950 chg: allows default hg path to be overridden Before this patch, chg will fall back to "hg" if neither CHGHG nor HG are set. This may have trouble if the "hg" in PATH is not compatible with chg, which can happen, for example, an old hg is installed in a virtualenv. Since it's very hard to do a quick hg version check from chg, after discussion in IRC with smf and marmoute, the quickest solution is to build a package with a hardcoded absolute hg path in chg. This patch makes it possible by adding a C macro HGPATH. diff -r d4d8a3c89e6d -r baa073200ba2 contrib/chg/Makefile --- a/contrib/chg/Makefile Sun Mar 20 15:25:25 2016 -0700 +++ b/contrib/chg/Makefile Sun Mar 20 15:43:20 2016 -0700 @@ -7,6 +7,9 @@ CFLAGS ?= -O2 -Wall -Wextra -pedantic -g CPPFLAGS ?= -D_FORTIFY_SOURCE=2 override CFLAGS += -std=gnu99 +ifdef HGPATH +override CPPFLAGS += -DHGPATH=\"$(HGPATH)\" +endif DESTDIR = PREFIX = /usr/local diff -r d4d8a3c89e6d -r baa073200ba2 contrib/chg/chg.c --- a/contrib/chg/chg.c Sun Mar 20 15:25:25 2016 -0700 +++ b/contrib/chg/chg.c Sun Mar 20 15:43:20 2016 -0700 @@ -194,7 +194,11 @@ if (!hgcmd || hgcmd[0] == '\0') hgcmd = getenv("HG"); if (!hgcmd || hgcmd[0] == '\0') +#ifdef HGPATH + hgcmd = (HGPATH); +#else hgcmd = "hg"; +#endif } return hgcmd; }