Handle tsort failure.
[profile.git] / .vimrc
diff --git a/.vimrc b/.vimrc
index ad3a73a..85b1595 100644 (file)
--- a/.vimrc
+++ b/.vimrc
@@ -129,10 +129,13 @@ augroup StatusLine
 autocmd!
 augroup END
 
-" Save the current window width so we can restore it when we quit.
+" Save the current window dimensions so we can restore them when we quit.
 if ! exists("g:oldcols")
   let g:oldcols=&columns
 endif
+if ! exists("g:oldlines")
+  let g:oldlines=&lines
+endif
 
 " More GUI options.  Add icon and tearoffs.
 se go+=i
@@ -302,7 +305,7 @@ fun! Can_Resize() "{{{2
   return g:resizable
 endfun "}}}2
 
-" Grow or shrink the window size.
+" Grow or shrink the window width.
 fun! Resize_Columns(op, ...) "{{{2
   if a:op == ""
     return
@@ -340,6 +343,25 @@ fun! Resize_Columns(op, ...) "{{{2
   exe l:resize
 endfun "}}}2
 
+" Grow or shrink the window height.
+fun! Resize_Lines(op, lines) "{{{2
+  if a:op == ""
+    return
+  endif
+
+  if ! Can_Resize()
+    return
+  endif
+
+  exe "let l:resize=" . &lines . a:op . a:lines
+  if &term =~ '^screen'
+    let l:resize = l:resize + 1
+  endif
+  let l:resize = "se lines=" . l:resize
+
+  exe l:resize
+endfun "}}}2
+
 " Set extra columns depending on window status.
 fun! Extra_Columns(extra, var, ...) "{{{2
   " Vim 6 doesn't have winnr("$").  Determine which windows are open
@@ -372,9 +394,9 @@ fun! Extra_Columns(extra, var, ...) "{{{2
     if getwinvar(l:i, "&modified") =~ '^\d'
       let l:n = l:n + 1
 
-    let l:val = 0
-    exe "if getwinvar(" . l:i . ", '" . a:var . "') " . l:condition . " | let l:val = 1 | endif"
-    if l:val
+      let l:val = 0
+      exe "if getwinvar(" . l:i . ", '" . a:var . "') " . l:condition . " | let l:val = 1 | endif"
+      if l:val
         exe "let l:windows = '" . l:windows . ":" . l:i . "'"
       endif
     endif
@@ -413,6 +435,7 @@ endfun "}}}2
 " Restore window size.
 if ! has("gui_running")
   au Display VimLeave * if exists("g:oldcols") | call Resize_Columns("-", (&columns - g:oldcols)) | endif
+  au Display VimLeave * if exists("g:oldlines") | call Resize_Lines("-", (&lines - g:oldlines)) | endif
 endif
 
 " Map Makefile mode.
@@ -710,7 +733,7 @@ fun! <SID>Highlight_Signs(...) "{{{2
     let l:var = tolower(l:name)
     let l:sign = substitute(l:sign, '^[A-Za-z]\+', "", "")
     let l:ascii = matchstr(l:sign, '^:.')
-    let l:mark = substitute(l:sign, '^\(:.\)*[.-=]', "", "")
+    let l:mark = substitute(l:sign, '^\(:.\)*[.=-]', "", "")
     if strlen(l:ascii)
       let l:ascii = substitute(l:ascii, '^:', "", "")
     else
@@ -764,7 +787,7 @@ fun! <SID>Cycle_Signs(resize) "{{{2
       let l:sign = substitute(l:sign, ':.', "", "")
       let l:sign = substitute(l:sign, '=', " texthl=MarkSign text=", "")
       let l:sign = substitute(l:sign, '\.', " texthl=MarkDot text=", "")
-      let l:sign = substitute(l:sign, '-', " texthl=MarkLine text=", "")
+      let l:sign = substitute(l:sign, '-', " texthl=MarkLine linehl=MarkLine text=", "")
 
       exe "sign define Mark" . l:sign