A flaw with the previous patch is, if there is a single long ref name, the rest of the ref list will be aligned with the big column, wasting lots of space (and potentially be wrapped around by the terminal, making it even harder to read). This patch tries to mitigate that. If there are five consecutive refs whose name is at least ten chars shorter than column width, the width is reduced by ten. Five and ten are picked out of thin air. But the short width reduction (instead of "REFCOL_WIDTH = len") is to avoid the column width being reduced then grown back too much and too fast (imagine the next ref is really short then the ref after that is super long). Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> --- builtin/fetch.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/builtin/fetch.c b/builtin/fetch.c index 223e09b..ae2ff0c 100644 --- a/builtin/fetch.c +++ b/builtin/fetch.c @@ -469,8 +469,20 @@ static int REFCOL_WIDTH = 10; static void adjust_refcol_width(int len) { + static int reduce_width_count; + + if (REFCOL_WIDTH > 10 && len < REFCOL_WIDTH - 10) { + reduce_width_count++; + if (reduce_width_count == 5) { + REFCOL_WIDTH -= 10; + reduce_width_count = 0; + } + } else + reduce_width_count = 0; + if (REFCOL_WIDTH < len) { REFCOL_WIDTH = len; + reduce_width_count = 0; } } -- 2.8.2.524.g6ff3d78 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html