aboutsummaryrefslogtreecommitdiff
path: root/help.c
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2012-02-12 15:12:32 +0100
committerJunio C Hamano <gitster@pobox.com>2012-02-13 15:08:47 -0800
commitad6c3739a33586ba15a8c5c245dcd59e8a31cef1 (patch)
tree79f132fd18a6fee4f7d87e9c63a79c72baa8cbaf /help.c
parentd0482e88a735787f7bb33ef4783be0e7f6a70946 (diff)
downloadgit-ad6c3739a33586ba15a8c5c245dcd59e8a31cef1.tar.gz
git-ad6c3739a33586ba15a8c5c245dcd59e8a31cef1.tar.xz
pager: find out the terminal width before spawning the pager
term_columns() checks for terminal width via ioctl(2) on the standard output, but we spawn the pager too early for this check to be useful. The effect of this buglet can be observed by opening a wide terminal and running "git -p help --all", which still shows 80-column output, while "git help --all" uses the full terminal width. Run the check before we spawn the pager to fix this. While at it, move term_columns() to pager.c and export it from cache.h so that callers other than the help subsystem can use it. Signed-off-by: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'help.c')
-rw-r--r--help.c22
1 files changed, 0 insertions, 22 deletions
diff --git a/help.c b/help.c
index cbbe966f6..14eefc91c 100644
--- a/help.c
+++ b/help.c
@@ -5,28 +5,6 @@
#include "help.h"
#include "common-cmds.h"
-/* most GUI terminals set COLUMNS (although some don't export it) */
-static int term_columns(void)
-{
- char *col_string = getenv("COLUMNS");
- int n_cols;
-
- if (col_string && (n_cols = atoi(col_string)) > 0)
- return n_cols;
-
-#ifdef TIOCGWINSZ
- {
- struct winsize ws;
- if (!ioctl(1, TIOCGWINSZ, &ws)) {
- if (ws.ws_col)
- return ws.ws_col;
- }
- }
-#endif
-
- return 80;
-}
-
void add_cmdname(struct cmdnames *cmds, const char *name, int len)
{
struct cmdname *ent = xmalloc(sizeof(*ent) + len + 1);