##// END OF EJS Templates
pager: exec pager using /bin/sh -c...
Brodie Rao -
r11215:ebc90fd4 default
parent child Browse files
Show More
@@ -49,7 +49,7 b' To ignore global commands like :hg:`vers'
49 to specify them in the global .hgrc
49 to specify them in the global .hgrc
50 '''
50 '''
51
51
52 import sys, os, signal, shlex
52 import sys, os, signal, shlex, errno
53 from mercurial import dispatch, util, extensions
53 from mercurial import dispatch, util, extensions
54
54
55 def _runpager(p):
55 def _runpager(p):
@@ -67,8 +67,15 b' def _runpager(p):'
67 os.dup2(fdin, sys.stdin.fileno())
67 os.dup2(fdin, sys.stdin.fileno())
68 os.close(fdin)
68 os.close(fdin)
69 os.close(fdout)
69 os.close(fdout)
70 args = shlex.split(p)
70 try:
71 os.execvp(args[0], args)
71 os.execvp('/bin/sh', ['/bin/sh', '-c', p])
72 except OSError, e:
73 if e.errno == errno.ENOENT:
74 # no /bin/sh, try executing the pager directly
75 args = shlex.split(p)
76 os.execvp(args[0], args)
77 else:
78 raise
72
79
73 def uisetup(ui):
80 def uisetup(ui):
74 def pagecmd(orig, ui, options, cmd, cmdfunc):
81 def pagecmd(orig, ui, options, cmd, cmdfunc):
General Comments 0
You need to be logged in to leave comments. Login now