updated for version 7.0e05
diff --git a/runtime/indent/automake.vim b/runtime/indent/automake.vim
index 0f8dbad..28d77a8 100644
--- a/runtime/indent/automake.vim
+++ b/runtime/indent/automake.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         automake
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/cmake.vim b/runtime/indent/cmake.vim
index e36937d..a1ad832 100644
--- a/runtime/indent/cmake.vim
+++ b/runtime/indent/cmake.vim
@@ -56,7 +56,7 @@
                     \       or . '[^()\\#"]' . or . '\\.' . '\)*'
 
   let cmake_indent_comment_line = '^\s*' . cmake_regex_comment
-  let cmake_indent_blank_regex = '^\s*$')
+  let cmake_indent_blank_regex = '^\s*$'
   let cmake_indent_open_regex = '^\s*' . cmake_regex_identifier .
                     \           '\s*(' . cmake_regex_arguments .
                     \           '\(' . cmake_regex_comment . '\)\?$'
@@ -65,8 +65,8 @@
                     \            ')\s*' .
                     \            '\(' . cmake_regex_comment . '\)\?$'
 
-  let cmake_indent_begin_regex = '^\s*\(IF\|MACRO\|FOREACH\|ELSE\)\s*('
-  let cmake_indent_end_regex = '^\s*\(ENDIF\|ENDFOREACH\|ENDMACRO\|ELSE\)\s*('
+  let cmake_indent_begin_regex = '^\s*\(IF\|MACRO\|FOREACH\|ELSE\|WHILE\)\s*('
+  let cmake_indent_end_regex = '^\s*\(ENDIF\|ENDFOREACH\|ENDMACRO\|ELSE\|ENDWHILE\)\s*('
 
   " Add
   if previous_line =~? cmake_indent_comment_line " Handle comments
diff --git a/runtime/indent/config.vim b/runtime/indent/config.vim
index c6c54b2..d763db0 100644
--- a/runtime/indent/config.vim
+++ b/runtime/indent/config.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         Autoconf configure.{ac,in} file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2006-02-11
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 " TODO:             how about nested [()]'s in one line
 "                   what's wrong with '\\\@!'?
 
diff --git a/runtime/indent/css.vim b/runtime/indent/css.vim
index b0560b4..8c6f114 100644
--- a/runtime/indent/css.vim
+++ b/runtime/indent/css.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:	    CSS
-" Maintainer:	    Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:	    Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/dictconf.vim b/runtime/indent/dictconf.vim
index dcaf1e1..adb0961 100644
--- a/runtime/indent/dictconf.vim
+++ b/runtime/indent/dictconf.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         dict(1) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/dictdconf.vim b/runtime/indent/dictdconf.vim
index f8f5670..235cecd 100644
--- a/runtime/indent/dictdconf.vim
+++ b/runtime/indent/dictdconf.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         dictd(8) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-01
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/docbk.vim b/runtime/indent/docbk.vim
index 575b91f..b8af5f2 100644
--- a/runtime/indent/docbk.vim
+++ b/runtime/indent/docbk.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         DocBook Documentation Format
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/eterm.vim b/runtime/indent/eterm.vim
index 938b94a..7309240 100644
--- a/runtime/indent/eterm.vim
+++ b/runtime/indent/eterm.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         Eterm configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/ld.vim b/runtime/indent/ld.vim
index 440b106..e50b703 100644
--- a/runtime/indent/ld.vim
+++ b/runtime/indent/ld.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         ld(1) script
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/make.vim b/runtime/indent/make.vim
index 9db77f0..5850492 100644
--- a/runtime/indent/make.vim
+++ b/runtime/indent/make.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         Makefile
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
@@ -15,18 +15,9 @@
   finish
 endif
 
-function s:GetStringWidth(line, str)
-  let end = matchend(a:line, a:str)
-  let width = 0
-  for c in a:line
-    if c == "\t"
-      let width += &ts - (width % &ts)
-    else
-      let width += 1
-    endif
-  endfor
-  return width
-endfunction
+let s:rule_rx = '^[^ \t#:][^#:]*:\{1,2}\%([^=:]\|$\)'
+let s:continuation_rx = '\\$'
+let s:assignment_rx = '^\s*\h\w*\s*+\==\s*\zs.*\\$'
 
 function GetMakeIndent()
   let lnum = v:lnum - 1
@@ -35,11 +26,27 @@
   endif
 
   let line = getline(lnum)
-  if line == ''
-    return 0
-  elseif line =~ '^[^ \t#:][^#:]*:\{1,2}\%([^=:]\|$\)'
-    return indent(lnum) + &ts
-  elseif line =~ '^\s*\h\w*\s*+\==\s*.\+\\$'
-    return s:GetStringWidth(line, '+\==\s*')
+  let ind = indent(lnum)
+
+  if line =~ s:rule_rx
+    return ind + &ts
+  elseif line =~ s:continuation_rx
+    while lnum > 0 && line =~ s:continuation_rx && line !~ s:assignment_rx
+      let lnum -= 1
+      let line = getline(lnum)
+    endwhile
+    if line =~ s:assignment_rx
+      call cursor(lnum, 1)
+      return search(s:assignment_rx, 'W') != 0 ? virtcol('.') - 1 : 0
+    else
+      return 0
+    endif
+  else
+    let pnum = lnum - 1
+    if pnum == 0
+      return ind
+    endif
+
+    return getline(pnum) =~ s:continuation_rx ? 0 : ind
   endif
 endfunction
diff --git a/runtime/indent/python.vim b/runtime/indent/python.vim
index f268bf9..4b8e81b 100644
--- a/runtime/indent/python.vim
+++ b/runtime/indent/python.vim
@@ -2,7 +2,7 @@
 " Language:		Python
 " Maintainer:		Bram Moolenaar <Bram@vim.org>
 " Original Author:	David Bustos <bustos@caltech.edu>
-" Last Change:		2006 Mar 26
+" Last Change:		2006 Apr 21
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
diff --git a/runtime/indent/readline.vim b/runtime/indent/readline.vim
index 52d2a71..94e4ea4 100644
--- a/runtime/indent/readline.vim
+++ b/runtime/indent/readline.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         readline configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/rst.vim b/runtime/indent/rst.vim
index f98e755..ac5e9bb 100644
--- a/runtime/indent/rst.vim
+++ b/runtime/indent/rst.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         reStructuredText Documentation Format
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/sh.vim b/runtime/indent/sh.vim
index b6ce774..7919c09 100644
--- a/runtime/indent/sh.vim
+++ b/runtime/indent/sh.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         Shell Script
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/sml.vim b/runtime/indent/sml.vim
index 30d3108..fbbb15e 100644
--- a/runtime/indent/sml.vim
+++ b/runtime/indent/sml.vim
@@ -130,14 +130,16 @@
 	elseif line =~ '^\s*else\>'
 	  	if lline !~ '^\s*\(if\|else\|then\)\>'
 				return s:FindPair('\<if\>', '', '\<then\>')
-	  	else return ind
+	  	else
+		  return ind
 		endif
 
 	" Match 'then' with 'if'
 	elseif line =~ '^\s*then\>'
   	if lline !~ '^\s*\(if\|else\|then\)\>'
 		  return s:FindPair('\<if\>', '', '\<then\>')
-	else return ind
+	else
+	  return ind
 	endif
 
 	" Indent if current line begins with ']'
diff --git a/runtime/indent/tcl.vim b/runtime/indent/tcl.vim
index 546b60d..1b0cc16 100644
--- a/runtime/indent/tcl.vim
+++ b/runtime/indent/tcl.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:	    Tcl
-" Maintainer:	    Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-30
+" Maintainer:	    Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/xf86conf.vim b/runtime/indent/xf86conf.vim
index f1f1c8e..5b2be6d 100644
--- a/runtime/indent/xf86conf.vim
+++ b/runtime/indent/xf86conf.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         XFree86 Configuration File
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/xinetd.vim b/runtime/indent/xinetd.vim
index 6838163..398e05a 100644
--- a/runtime/indent/xinetd.vim
+++ b/runtime/indent/xinetd.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         xinetd.conf(5) configuration file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-28
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish
diff --git a/runtime/indent/yacc.vim b/runtime/indent/yacc.vim
index 9d0798d..d100ceb 100644
--- a/runtime/indent/yacc.vim
+++ b/runtime/indent/yacc.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         YACC input file
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
diff --git a/runtime/indent/zsh.vim b/runtime/indent/zsh.vim
index 72b00b8..5bf2315 100644
--- a/runtime/indent/zsh.vim
+++ b/runtime/indent/zsh.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         Zsh Shell Script
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:did_indent")
   finish