Fix more 'cpo' issues in runtime files.
diff --git a/runtime/indent/cmake.vim b/runtime/indent/cmake.vim
index 8c408fb..421afcb 100644
--- a/runtime/indent/cmake.vim
+++ b/runtime/indent/cmake.vim
@@ -23,6 +23,8 @@
 if exists("*CMakeGetIndent")
   finish
 endif
+let s:keepcpo= &cpo
+set cpo&vim
 
 fun! CMakeGetIndent(lnum)
   let this_line = getline(a:lnum)
@@ -83,3 +85,6 @@
 
   return ind
 endfun
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/indent/css.vim b/runtime/indent/css.vim
index 2a09566..f85bb05 100644
--- a/runtime/indent/css.vim
+++ b/runtime/indent/css.vim
@@ -15,6 +15,8 @@
 if exists("*GetCSSIndent")
   finish
 endif
+let s:keepcpo= &cpo
+set cpo&vim
 
 function s:prevnonblanknoncomment(lnum)
   let lnum = a:lnum
@@ -74,3 +76,6 @@
   return indent(pnum) + s:count_braces(pnum, 1) * &sw
         \ - s:count_braces(v:lnum, 0) * &sw
 endfunction
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/indent/eiffel.vim b/runtime/indent/eiffel.vim
index db66bf8..4726652 100644
--- a/runtime/indent/eiffel.vim
+++ b/runtime/indent/eiffel.vim
@@ -5,7 +5,7 @@
 " $Date: 2004/12/09 21:33:52 $
 " $Revision: 1.3 $
 " URL: http://www.djoce.net/page/vim/
-" Last Change:	2004 Sept 14 : removed specific value for tab (sw)
+" Last Change:	2012 May 18
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
@@ -37,6 +37,8 @@
 if exists("*GetEiffelIndent")
   finish
 endif
+let s:keepcpo= &cpo
+set cpo&vim
 
 function GetEiffelIndent()
 
@@ -103,4 +105,7 @@
   return ind
 endfunction
 
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
 " vim:sw=2
diff --git a/runtime/indent/idlang.vim b/runtime/indent/idlang.vim
index 97c31ad..b4c6ae6 100644
--- a/runtime/indent/idlang.vim
+++ b/runtime/indent/idlang.vim
@@ -1,6 +1,6 @@
 " IDL (Interactive Data Language) indent file.
 " Language: IDL (ft=idlang)
-" Last change:	2002 Sep 23
+" Last change:	2012 May 18
 " Maintainer: Aleksandar Jelenak <ajelenak AT yahoo.com>
 
 " Only load this indent file when no other was loaded.
@@ -9,8 +9,7 @@
 endif
 let b:did_indent = 1
 
-setlocal indentkeys=o,O,0=endif,0=ENDIF,0=endelse,0=ENDELSE,0=endwhile,
-		    \0=ENDWHILE,0=endfor,0=ENDFOR,0=endrep,0=ENDREP
+setlocal indentkeys=o,O,0=endif,0=ENDIF,0=endelse,0=ENDELSE,0=endwhile,0=ENDWHILE,0=endfor,0=ENDFOR,0=endrep,0=ENDREP
 
 setlocal indentexpr=GetIdlangIndent(v:lnum)
 
diff --git a/runtime/indent/java.vim b/runtime/indent/java.vim
index 3c48d3e..e0aec0f 100644
--- a/runtime/indent/java.vim
+++ b/runtime/indent/java.vim
@@ -2,7 +2,7 @@
 " Language:	Java
 " Previous Maintainer: Toby Allsopp <toby.allsopp@peace.com>
 " Current Maintainer: Hong Xu <xuhdev@gmail.com>
-" Last Change:	2012 Jan 20
+" Last Change:	2012 May 18
 " Version: 1.0
 " License: Same as Vim.
 " Copyright (c) 2012 Hong Xu
@@ -29,6 +29,8 @@
 if exists("*GetJavaIndent")
   finish
 endif
+let s:keepcpo= &cpo
+set cpo&vim
 
 function! SkipJavaBlanksAndComments(startline)
   let lnum = a:startline
@@ -139,4 +141,7 @@
   return theIndent
 endfunction
 
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
 " vi: sw=2 et
diff --git a/runtime/indent/mp.vim b/runtime/indent/mp.vim
index 1aea4f8..a118eb8 100644
--- a/runtime/indent/mp.vim
+++ b/runtime/indent/mp.vim
@@ -1,7 +1,7 @@
 " MetaPost indent file
 " Language:	MetaPost
 " Maintainer:	Eugene Minkovskii <emin@mccme.ru>
-" Last Change:	2003 Nov 21
+" Last Change:	2012 May 18
 " Version: 0.1
 " ==========================================================================
 
@@ -56,6 +56,8 @@
 if exists("*GetMetaPostIndent")
   finish
 endif
+let s:keepcpo= &cpo
+set cpo&vim
 
 " Auxiliary Definitions: {{{1
 function! MetaNextNonblankNoncomment(pos)
@@ -203,4 +205,7 @@
 endfunction
 "
 
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
 " vim:sw=2:fdm=marker
diff --git a/runtime/indent/occam.vim b/runtime/indent/occam.vim
index ba978e0..bebb052 100644
--- a/runtime/indent/occam.vim
+++ b/runtime/indent/occam.vim
@@ -20,6 +20,8 @@
 if exists("*GetOccamIndent")
   finish
 endif
+let s:keepcpo= &cpo
+set cpo&vim
 
 "{{{  Indent definitions
 " Define carriage return indent
@@ -180,3 +182,6 @@
 
 endfunction
 "}}}
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/indent/sqlanywhere.vim b/runtime/indent/sqlanywhere.vim
index fdafb62..afc312f 100644
--- a/runtime/indent/sqlanywhere.vim
+++ b/runtime/indent/sqlanywhere.vim
@@ -48,6 +48,8 @@
 if exists("*GetSQLIndent")
     finish
 endif
+let s:keepcpo= &cpo
+set cpo&vim
 
 " List of all the statements that start a new block.
 " These are typically words that start a line.
@@ -382,4 +384,7 @@
     return s:ModuloIndent(ind)
 endfunction
 
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
 " vim:sw=4:
diff --git a/runtime/indent/vim.vim b/runtime/indent/vim.vim
index 40117a0..8281d94 100644
--- a/runtime/indent/vim.vim
+++ b/runtime/indent/vim.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:	Vim script
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2011 Mar 22
+" Last Change:	2012 May 18
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
@@ -16,6 +16,8 @@
 if exists("*GetVimIndent")
   finish
 endif
+let s:keepcpo= &cpo
+set cpo&vim
 
 function GetVimIndent()
   " Find a non-blank line above the current line.
@@ -79,4 +81,7 @@
   return ind
 endfunction
 
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
 " vim:sw=2
diff --git a/runtime/indent/xinetd.vim b/runtime/indent/xinetd.vim
index f7a5341..c812723 100644
--- a/runtime/indent/xinetd.vim
+++ b/runtime/indent/xinetd.vim
@@ -15,6 +15,8 @@
 if exists("*GetXinetdIndent")
   finish
 endif
+let s:keepcpo= &cpo
+set cpo&vim
 
 function s:count_braces(lnum, count_open)
   let n_open = 0
@@ -48,3 +50,6 @@
   return indent(pnum) + s:count_braces(pnum, 1) * &sw
         \ - s:count_braces(v:lnum, 0) * &sw
 endfunction
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/indent/xml.vim b/runtime/indent/xml.vim
index 4ac35b6..319dc39 100644
--- a/runtime/indent/xml.vim
+++ b/runtime/indent/xml.vim
@@ -1,6 +1,6 @@
 " Language:	xml
 " Maintainer:	Johannes Zellner <johannes@zellner.org>
-" Last Change:	2009-05-26 00:17:25
+" Last Change:	2012 May 18
 " Notes:	1) does not indent pure non-xml code (e.g. embedded scripts)
 "		2) will be confused by unbalanced tags in comments
 "		or CDATA sections.
@@ -12,13 +12,13 @@
     finish
 endif
 let b:did_indent = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 " [-- local settings (must come before aborting the script) --]
 setlocal indentexpr=XmlIndentGet(v:lnum,1)
 setlocal indentkeys=o,O,*<Return>,<>>,<<>,/,{,}
 
-set cpo-=C
-
 if !exists('b:xml_indent_open')
     let b:xml_indent_open = '.\{-}<\a'
     " pre tag, e.g. <address>
@@ -93,4 +93,7 @@
     return ind
 endfun
 
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
 " vim:ts=8
diff --git a/runtime/indent/zimbu.vim b/runtime/indent/zimbu.vim
index a01510d..8df0eeb 100644
--- a/runtime/indent/zimbu.vim
+++ b/runtime/indent/zimbu.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:	Zimbu
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2012 May 17
+" Last Change:	2011 Jun 19
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
@@ -16,13 +16,16 @@
 " We impose recommended defaults: no Tabs, 'shiftwidth' = 2
 setlocal sw=2 et
 
-let b:undo_indent = "setl et< ai< indentexpr="
+let b:undo_indent = "setl et< sw< ai< indentkeys< indentexpr="
 
 " Only define the function once.
 if exists("*GetZimbuIndent")
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " Come here when loading the script the first time.
 
 let s:maxoff = 50	" maximum number of lines to look backwards for ()
@@ -121,3 +124,5 @@
   return plindent
 endfunc
 
+let &cpo = s:cpo_save
+unlet s:cpo_save