653 if filename is not None: |
653 if filename is not None: |
654 path = os.path.join(self._ctx._repo.origroot, self._path, filename) |
654 path = os.path.join(self._ctx._repo.origroot, self._path, filename) |
655 cmd.append(path) |
655 cmd.append(path) |
656 env = dict(os.environ) |
656 env = dict(os.environ) |
657 # Avoid localized output, preserve current locale for everything else. |
657 # Avoid localized output, preserve current locale for everything else. |
|
658 lc_all = env.get('LC_ALL') |
|
659 if lc_all: |
|
660 env['LANG'] = lc_all |
|
661 del env['LC_ALL'] |
658 env['LC_MESSAGES'] = 'C' |
662 env['LC_MESSAGES'] = 'C' |
659 p = subprocess.Popen(cmd, bufsize=-1, close_fds=util.closefds, |
663 p = subprocess.Popen(cmd, bufsize=-1, close_fds=util.closefds, |
660 stdout=subprocess.PIPE, stderr=subprocess.PIPE, |
664 stdout=subprocess.PIPE, stderr=subprocess.PIPE, |
661 universal_newlines=True, env=env, **extrakw) |
665 universal_newlines=True, env=env, **extrakw) |
662 stdout, stderr = p.communicate() |
666 stdout, stderr = p.communicate() |