##// END OF EJS Templates
pager: improve support for various flavors of `more` on Windows...
Matt Harbison -
r31624:c60091fa default
parent child Browse files
Show More
@@ -846,15 +846,6 class ui(object):
846 846 if not pagercmd:
847 847 return
848 848
849 if pycompat.osname == 'nt':
850 # `more` cannot be invoked with shell=False, but `more.com` can.
851 # Hide this implementation detail from the user, so we can also get
852 # sane bad PAGER behavior. If args are also given, the space in the
853 # command line forces shell=True, so that case doesn't need to be
854 # handled here.
855 if pagercmd == 'more':
856 pagercmd = 'more.com'
857
858 849 self.debug('starting pager for command %r\n' % command)
859 850 self.flush()
860 851 self.pageractive = True
@@ -881,6 +872,21 class ui(object):
881 872 # simple pager command configurations, we can degrade
882 873 # gracefully and tell the user about their broken pager.
883 874 shell = any(c in command for c in "|&;<>()$`\\\"' \t\n*?[#~=%")
875
876 if pycompat.osname == 'nt' and not shell:
877 # Window's built-in `more` cannot be invoked with shell=False, but
878 # its `more.com` can. Hide this implementation detail from the
879 # user so we can also get sane bad PAGER behavior. MSYS has
880 # `more.exe`, so do a cmd.exe style resolution of the executable to
881 # determine which one to use.
882 fullcmd = util.findexe(command)
883 if not fullcmd:
884 self.warn(_("missing pager command '%s', skipping pager\n")
885 % command)
886 return
887
888 command = fullcmd
889
884 890 try:
885 891 pager = subprocess.Popen(
886 892 command, shell=shell, bufsize=-1,
General Comments 0
You need to be logged in to leave comments. Login now