From 7ce760fa7581cb54cf4d433ba722e0dcee5a0d74 Mon Sep 17 00:00:00 2001
From: Jerome Reybert <jreybert@gmail.com>
Date: Tue, 1 Dec 2015 10:12:21 +0100
Subject: [PATCH] plugin/magit.vim: fix next/prev jump

---
 plugin/magit.vim | 24 +++++++++++++-----------
 1 file changed, 13 insertions(+), 11 deletions(-)

diff --git a/plugin/magit.vim b/plugin/magit.vim
index c50ccf4..58322aa 100644
--- a/plugin/magit.vim
+++ b/plugin/magit.vim
@@ -927,18 +927,20 @@ function! magit#jump_hunk(dir)
 	let back = ( a:dir == 'P' ) ? 'b' : ''
 	let line = search("^@@ ", back . 'wn')
 	if ( line != 0 )
-		try
-			foldclose
-		catch /^Vim\%((\a\+)\)\=:E490/
-		endtry
+		if ( foldlevel(line('.')) == 2 )
+			try
+				foldclose
+			catch /^Vim\%((\a\+)\)\=:E490/
+			endtry
+		endif
 		call cursor(line, 0)
-		try
-			foldopen
-		catch /^Vim\%((\a\+)\)\=:E490/
-			echohl WarningMsg
-			echom "Warning: you should have jumped on a folded hunk"
-			echohl None
-		endtry
+		while ( foldclosed(line) != -1 )
+			try
+				foldopen
+			catch /^Vim\%((\a\+)\)\=:E490/
+				break
+			endtry
+		endwhile
 	endif
 endfunction
 
-- 
GitLab