[PATCH RFC] ui: introduce sysdefault section for pager and editor configuration
Augie Fackler
raf at durin42.com
Wed Mar 8 23:48:55 UTC 2017
# HG changeset patch
# User Augie Fackler <augie at google.com>
# Date 1489016567 18000
# Wed Mar 08 18:42:47 2017 -0500
# Node ID 71fc64c48cfff1b7a2120c60e2b958da3263c0dc
# Parent 92f7d6585c185e85763b3bad81b1304b8cdb5937
ui: introduce sysdefault section for pager and editor configuration
The debian package currently has to patch Mercurial to move the
default editor from `vi` to `sensible-editor`. Now that we're growing
another suboptimal-on-most-platforms default program (`more` as the
pager), let's do packagers a small favor and give them a place where
they can specify the default program for their platform, rather than
having to rely on patching code during the build process. I'd expect
the configuration on OS X to be something like:
[sysdefault]
editor = nano
pager = LESS=FRX less
and on debian to be:
[sysdefault]
editor = sensible-editor
pager = sensible-pager
diff --git a/mercurial/ui.py b/mercurial/ui.py
--- a/mercurial/ui.py
+++ b/mercurial/ui.py
@@ -907,13 +907,11 @@ class ui(object):
# HGPLAINEXCEPT=pager, and the user didn't specify --debug.
return
- # TODO: add a "system defaults" config section so this default
- # of more(1) can be easily replaced with a global
- # configuration file. For example, on OS X the sane default is
- # less(1), not more(1), and on debian it's
- # sensible-pager(1). We should probably also give the system
- # default editor command similar treatment.
- envpager = encoding.environ.get('PAGER', 'more')
+ # sysdefault.pager is available for packagers or system
+ # administrators to specify a saner default pager for their
+ # environment.
+ defaultpager = self.config('sysdefault', 'pager', default='more')
+ envpager = encoding.environ.get('PAGER', defaultpager)
pagercmd = self.config('pager', 'pager', envpager)
if not pagercmd:
return
@@ -1348,6 +1346,10 @@ class ui(object):
editor = 'E'
else:
editor = 'vi'
+ # sysdefault.editor is available for packagers or system
+ # administrators to specify a saner default editor for their
+ # environment.
+ editor = self.config("sysdefault", "editor", default=editor)
return (encoding.environ.get("HGEDITOR") or
self.config("ui", "editor") or
encoding.environ.get("VISUAL") or
More information about the Mercurial-devel
mailing list