Fix in-between line movement.
    
        | author | 
        Steve Losh <steve@dwaiter.com> | 
    
    
        | date | 
        Tue, 12 Oct 2010 18:48:47 -0400 | 
    
    
    
        | parents | 
        8637cdbbba8a 
 | 
    
    
        | children | 
        920859982e84
 | 
    
    
        | branches/tags | 
        (none) | 
    
    
        | files | 
        plugin/gundo.vim  | 
    
Changes
    
--- a/plugin/gundo.vim	Tue Oct 12 18:44:51 2010 -0400
+++ b/plugin/gundo.vim	Tue Oct 12 18:48:47 2010 -0400
@@ -23,12 +23,15 @@
 
 "{{{ Movement Mappings
 function! s:GundoMoveUp()
+    let start_line = getline('.')
     if line('.') - 2 <= 4
-        return
+        call cursor(5, 0)
+    elseif stridx(start_line, '[') == -1
+        call cursor(line('.') - 1, 0)
+    else
+        call cursor(line('.') - 2, 0)
     endif
 
-    call cursor(line('.') - 2, 0)
-
     let line = getline('.')
     let idx1 = stridx(line, '@')
     let idx2 = stridx(line, 'o')
@@ -44,12 +47,15 @@
 endfunction
 
 function! s:GundoMoveDown()
+    let start_line = getline('.')
     if line('.') + 2 >= line('$')
-        return
+        call cursor(line('$') - 1, 0)
+    elseif stridx(start_line, '[') == -1
+        call cursor(line('.') + 1, 0)
+    else
+        call cursor(line('.') + 2, 0)
     endif
 
-    call cursor(line('.') + 2, 0)
-
     let line = getline('.')
     let idx1 = stridx(line, '@')
     let idx2 = stridx(line, 'o')