config: respect `pager.config` in list/get-mode only
authorMartin Ågren <martin.agren@gmail.com>
Wed, 21 Feb 2018 18:51:43 +0000 (19:51 +0100)
committerJunio C Hamano <gitster@pobox.com>
Wed, 21 Feb 2018 22:27:29 +0000 (14:27 -0800)
commit32888b8fd56175f52f3139915d931f78d8c4ef89
tree895c7c2aa8d02838d658d26a84807553df4766dc
parentcd878a206e8ca67b215de5fa510f0ef30bb6e1c6
config: respect `pager.config` in list/get-mode only

Similar to de121ffe5 (tag: respect `pager.tag` in list-mode only,
2017-08-02), use the DELAY_PAGER_CONFIG-mechanism to only respect
`pager.config` when we are listing or "get"ing config.

We have several getters and some are guaranteed to give at most one line
of output. Paging all getters including those could be convenient from a
documentation point-of-view. The downside would be that a misconfigured
or not so modern pager might wait for user interaction before
terminating. Let's instead respect the config for precisely those
getters which may produce more than one line of output.

`--get-urlmatch` may or may not produce multiple lines of output,
depending on the exact usage. Let's not try to recognize the two modes,
but instead make `--get-urlmatch` always respect the config. Analyzing
the detailed usage might be trivial enough here, but could establish a
precedent that we will never be able to enforce throughout the codebase
and that will just open a can of worms.

This fixes the failing test added in the previous commit. Also adapt the
test for whether `git config foo.bar bar` and `git config --get foo.bar`
respects `pager.config`.

Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-config.txt
builtin/config.c
git.c
t/t7006-pager.sh