# HG changeset patch # User Yuya Nishihara # Date 1523543158 -32400 # Node ID d110167610dba03641a063fe18a804c4de5f4c20 # Parent 8c121a9837cafb1a5ac620a0950b5003e4005990 formatter: carry opts to file-based formatters by basefm This makes it slightly easier to port "hg export" to formatter. diff -r 8c121a9837ca -r d110167610db mercurial/cmdutil.py --- a/mercurial/cmdutil.py Thu Apr 12 23:24:33 2018 +0900 +++ b/mercurial/cmdutil.py Thu Apr 12 23:25:58 2018 +0900 @@ -2231,7 +2231,7 @@ os.makedirs(os.path.dirname(filename)) except OSError: pass - with formatter.maybereopen(basefm, filename, opts) as fm: + with formatter.maybereopen(basefm, filename) as fm: _updatecatformatter(fm, ctx, matcher, path, opts.get('decode')) # Automation often uses hg cat on single files, so special case it diff -r 8c121a9837ca -r d110167610db mercurial/commands.py --- a/mercurial/commands.py Thu Apr 12 23:24:33 2018 +0900 +++ b/mercurial/commands.py Thu Apr 12 23:25:58 2018 +0900 @@ -1318,7 +1318,7 @@ fntemplate = '' if fntemplate: - fm = formatter.nullformatter(ui, 'cat') + fm = formatter.nullformatter(ui, 'cat', opts) else: ui.pager('cat') fm = ui.formatter('cat', opts) diff -r 8c121a9837ca -r d110167610db mercurial/formatter.py --- a/mercurial/formatter.py Thu Apr 12 23:24:33 2018 +0900 +++ b/mercurial/formatter.py Thu Apr 12 23:25:58 2018 +0900 @@ -160,6 +160,7 @@ def __init__(self, ui, topic, opts, converter): self._ui = ui self._topic = topic + self._opts = opts self._converter = converter self._item = None # function to convert node to string suitable for this output @@ -222,9 +223,9 @@ if self._item is not None: self._showitem() -def nullformatter(ui, topic): +def nullformatter(ui, topic, opts): '''formatter that prints nothing''' - return baseformatter(ui, topic, opts={}, converter=_nullconverter) + return baseformatter(ui, topic, opts, converter=_nullconverter) class _nestedformatter(baseformatter): '''build sub items and store them in the parent formatter''' @@ -595,7 +596,7 @@ def _neverending(fm): yield fm -def maybereopen(fm, filename, opts): +def maybereopen(fm, filename): """Create a formatter backed by file if filename specified, else return the given formatter @@ -603,6 +604,6 @@ of the given formatter. """ if filename: - return openformatter(fm._ui, filename, fm._topic, opts) + return openformatter(fm._ui, filename, fm._topic, fm._opts) else: return _neverending(fm)