# HG changeset patch # User Simon Farnsworth # Date 1475918808 25200 # Node ID d1f5f158768efafd5b19bb495d1752eb023d2af4 # Parent 9b230a8e60087ac95074fabce575b5e8c0dcfd0a template: provide a termwidth keyword (issue5395) We want to provide terminal-sized output. As a starting point, expose the terminal width to the templater for use in things like fill. diff -r 9b230a8e6008 -r d1f5f158768e mercurial/templatekw.py --- a/mercurial/templatekw.py Sat Oct 08 08:36:39 2016 -0400 +++ b/mercurial/templatekw.py Sat Oct 08 02:26:48 2016 -0700 @@ -589,5 +589,10 @@ for name, func in registrarobj._table.iteritems(): keywords[name] = func +@templatekeyword('termwidth') +def termwidth(repo, ctx, templ, **args): + """Integer. The width of the current terminal.""" + return repo.ui.termwidth() + # tell hggettext to extract docstrings from these functions: i18nfunctions = keywords.values() diff -r 9b230a8e6008 -r d1f5f158768e tests/test-command-template.t --- a/tests/test-command-template.t Sat Oct 08 08:36:39 2016 -0400 +++ b/tests/test-command-template.t Sat Oct 08 02:26:48 2016 -0700 @@ -3214,6 +3214,11 @@ hg: parse error: fill expects an integer width [255] + $ COLUMNS=25 hg log -l1 --template '{fill(desc, termwidth, "{node|short}:", "termwidth.{rev}:")}' + bcc7ff960b8e:desc to be + termwidth.1:wrapped desc + termwidth.1:to be wrapped (no-eol) + $ hg log -l 1 --template '{sub(r"[0-9]", "-", author)}' {node|short} (no-eol) $ hg log -l 1 --template '{sub(r"[0-9]", "-", "{node|short}")}'