# HG changeset patch
# User Jun Wu <qu...@fb.com>
# Date 1483366232 0
#      Mon Jan 02 14:10:32 2017 +0000
# Node ID b2a4d87a091c271868720be8cc51bb2b5988d1c2
# Parent  a8f21835ad4f31aa1c34f7f3eadb0f2a147af6bd
# Available At https://bitbucket.org/quark-zju/hg-draft
#              hg pull https://bitbucket.org/quark-zju/hg-draft -r b2a4d87a091c
chg: decouple hgclient from setuppager

procutil should not depend on hgclient. This patch makes the pager handling
part independent from hgclient.

diff --git a/contrib/chg/chg.c b/contrib/chg/chg.c
--- a/contrib/chg/chg.c
+++ b/contrib/chg/chg.c
@@ -431,5 +431,8 @@ int main(int argc, const char *argv[], c
 
        setupsignalhandler(hgc_peerpid(hgc), hgc_peerpgid(hgc));
-       pagerpid = setuppager(hgc, argv + 1, argc - 1);
+       const char *pagercmd = hgc_getpager(hgc, argv + 1, argc - 1);
+       pagerpid = setuppager(pagercmd);
+       if (pagerpid)
+               hgc_attachio(hgc);  /* reattach to pager */
        int exitcode = hgc_runcommand(hgc, argv + 1, argc - 1);
        restoresignalhandler();
diff --git a/contrib/chg/procutil.c b/contrib/chg/procutil.c
--- a/contrib/chg/procutil.c
+++ b/contrib/chg/procutil.c
@@ -158,8 +158,6 @@ error:
 /* This implementation is based on hgext/pager.py (post 369741ef7253)
  * Return 0 if pager is not started, or pid of the pager */
-static pid_t setuppager(hgclient_t *hgc, const char *const args[],
-                      size_t argsize)
+static pid_t setuppager(const char *pagercmd)
 {
-       const char *pagercmd = hgc_getpager(hgc, args, argsize);
        if (!pagercmd)
                return 0;
@@ -180,5 +178,4 @@ static pid_t setuppager(hgclient_t *hgc,
                }
                close(pipefds[1]);
-               hgc_attachio(hgc);  /* reattach to pager */
                return pid;
        } else {
_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to