summaryrefslogtreecommitdiff
path: root/column.h
diff options
context:
space:
mode:
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>2012-04-13 17:54:36 +0700
committerJunio C Hamano <gitster@pobox.com>2012-04-27 09:26:38 -0700
commit3f8eccbe166ecff79a986b7ce87df4963cc873b2 (patch)
tree05ed415a20f13d1c71b45e5e8ce876b98d6774c1 /column.h
parentf78b1c5f8237d68fffe7c04d22bf93f2ad0bc730 (diff)
downloadgit-3f8eccbe166ecff79a986b7ce87df4963cc873b2.tar.gz
column: add dense layout support
Normally all cells (and in turn columns) share the same width. This layout mode can waste space because one long item can stretch our all columns. With COL_DENSE enabled, column width is calculated indepdendently. All columns are shrunk to minimum, then it attempts to push cells of the last row over to the next column with hope that everything still fits even there's one row less. The process is repeated until the new layout cannot fit in given width any more, or there's only one row left (perfect!). Apparently, this mode consumes more cpu than the old one, but it makes better use of terminal space. For layouting one or two screens, cpu usage should not be detectable. This patch introduces option handling code besides layout modes and enable/disable to expose this feature as "dense". The feature can be turned off by specifying "nodense". Thanks-to: Ramsay Jones <ramsay@ramsay1.demon.co.uk> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'column.h')
-rw-r--r--column.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/column.h b/column.h
index ec7e1d26e5..4f178d84a8 100644
--- a/column.h
+++ b/column.h
@@ -4,6 +4,8 @@
#define COL_LAYOUT_MASK 0x000F
#define COL_ENABLE_MASK 0x0030 /* always, never or auto */
#define COL_PARSEOPT 0x0040 /* --column is given from cmdline */
+#define COL_DENSE 0x0080 /* Shrink columns when possible,
+ making space for more columns */
#define COL_DISABLED 0x0000 /* must be zero */
#define COL_ENABLED 0x0010