updated for version 7.0097
diff --git a/runtime/indent/make.vim b/runtime/indent/make.vim
index f376424..9db77f0 100644
--- a/runtime/indent/make.vim
+++ b/runtime/indent/make.vim
@@ -1,21 +1,16 @@
" Vim indent file
-" Language: Makefile
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/indent/pcp/make/
-" Latest Revision: 2004-04-25
-" arch-tag: b539e147-a05c-4860-98af-1d2436db2f4b
+" Language: Makefile
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
-" Only load this indent file when no other was loaded.
if exists("b:did_indent")
finish
endif
-
let b:did_indent = 1
setlocal indentexpr=GetMakeIndent()
setlocal indentkeys=!^F,o,O
-" Only define the function once.
if exists("*GetMakeIndent")
finish
endif
@@ -23,35 +18,28 @@
function s:GetStringWidth(line, str)
let end = matchend(a:line, a:str)
let width = 0
- let i = 0
- while i < end
- if a:line[i] != "\t"
- let width = width + 1
+ for c in a:line
+ if c == "\t"
+ let width += &ts - (width % &ts)
else
- let width = width + &ts - (width % &ts)
+ let width += 1
endif
- let i = i + 1
- endwhile
+ endfor
return width
endfunction
function GetMakeIndent()
- if v:lnum == 1
+ let lnum = v:lnum - 1
+ if lnum == 0
return 0
endif
- let ind = indent(v:lnum - 1)
- let line = getline(v:lnum - 1)
-
+ let line = getline(lnum)
if line == ''
- let ind = 0
- elseif line =~ '^[^ \t#:][^#:]*:\{1,2}\([^=:]\|$\)'
- let ind = ind + &ts
- elseif line =~ '^\s*\h\w*\s*=\s*.\+\\$'
- let ind = s:GetStringWidth(line, '=\s*')
+ return 0
+ elseif line =~ '^[^ \t#:][^#:]*:\{1,2}\%([^=:]\|$\)'
+ return indent(lnum) + &ts
+ elseif line =~ '^\s*\h\w*\s*+\==\s*.\+\\$'
+ return s:GetStringWidth(line, '+\==\s*')
endif
-
- return ind
endfunction
-
-" vim: set sts=2 sw=2: