Code

Never split the tree view when opening another tree view
authorJonas Fonseca <fonseca@diku.dk>
Mon, 30 Oct 2006 02:01:17 +0000 (03:01 +0100)
committerJonas Fonseca <fonseca@diku.dk>
Mon, 30 Oct 2006 02:01:17 +0000 (03:01 +0100)
The resulting bogus display[] state ment that the blob view was not
initialized causing segmentation faults in the redrawing code.

Reported by Alexey Tourbin <at@altlinux.ru>

tig.c

diff --git a/tig.c b/tig.c
index fcfbc4326ba67a2ebe001c4310213378a5aa2091..3b320e666911805feef2ad5a6ea2d359299f918c 100644 (file)
--- a/tig.c
+++ b/tig.c
@@ -2580,7 +2580,7 @@ tree_read(struct view *view, char *text)
 static bool
 tree_enter(struct view *view, struct line *line)
 {
-       enum open_flags flags = display[0] == view ? OPEN_SPLIT : OPEN_DEFAULT;
+       enum open_flags flags;
        enum request request;
 
        switch (line->type) {
@@ -2610,11 +2610,12 @@ tree_enter(struct view *view, struct line *line)
 
                /* Trees and subtrees share the same ID, so they are not not
                 * unique like blobs. */
-               flags |= OPEN_RELOAD;
+               flags = OPEN_RELOAD;
                request = REQ_VIEW_TREE;
                break;
 
        case LINE_TREE_FILE:
+               flags = display[0] == view ? OPEN_SPLIT : OPEN_DEFAULT;
                request = REQ_VIEW_BLOB;
                break;