Update runtime files
diff --git a/runtime/indent/ada.vim b/runtime/indent/ada.vim
index 6c8ab05..582d033 100644
--- a/runtime/indent/ada.vim
+++ b/runtime/indent/ada.vim
@@ -16,6 +16,7 @@
 "		15.10.2006 MK Bram's suggestion for runtime integration
 "		05.11.2006 MK Bram suggested to save on spaces
 "		19.09.2007 NO g: missing before ada#Comment
+"		2022 April: b:undo_indent added by Doug Kearns
 "    Help Page: ft-vim-indent
 "------------------------------------------------------------------------------
 " ToDo:
@@ -35,6 +36,8 @@
 setlocal indentkeys-=0{,0}
 setlocal indentkeys+=0=~then,0=~end,0=~elsif,0=~when,0=~exception,0=~begin,0=~is,0=~record
 
+let b:undo_indent = "setl inde< indk<"
+
 " Only define the functions once.
 if exists("*GetAdaIndent")
    finish
diff --git a/runtime/indent/awk.vim b/runtime/indent/awk.vim
index e653319..cf81322 100644
--- a/runtime/indent/awk.vim
+++ b/runtime/indent/awk.vim
@@ -24,6 +24,7 @@
 " 29-04-2002 Fixed problems in function headers and max line width
 "	     Added support for two-line if's without curly braces
 " Fixed hang: 2011 Aug 31
+" 2022 April: b:undo_indent added by Doug Kearns
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
@@ -36,6 +37,8 @@
 " Mmm, copied from the tcl indent program. Is this okay?
 setlocal indentkeys-=:,0#
 
+let b:undo_indent = "setl inde< indk<"
+
 " Only define the function once.
 if exists("*GetAwkIndent")
     finish
diff --git a/runtime/indent/cdl.vim b/runtime/indent/cdl.vim
index 0e3c615..2c0fc79 100644
--- a/runtime/indent/cdl.vim
+++ b/runtime/indent/cdl.vim
@@ -1,7 +1,7 @@
 " Description:	Comshare Dimension Definition Language (CDL)
 " Maintainer:	Raul Segura Acevedo <raulseguraaceved@netscape.net> (Invalid email address)
 " 		Doug Kearns <dougkearns@gmail.com>
-" Last Change:	Fri Nov 30 13:35:48  2001 CST
+" Last Change:	2022 Apr 06
 
 if exists("b:did_indent")
     "finish
@@ -12,6 +12,8 @@
 setlocal indentkeys&
 setlocal indentkeys+==~else,=~endif,=~then,;,),=
 
+let b:undo_indent = "setl inde< indk<"
+
 " Only define the function once.
 if exists("*CdlGetIndent")
     "finish
diff --git a/runtime/indent/chaiscript.vim b/runtime/indent/chaiscript.vim
index 445281c..b7a3fe5 100644
--- a/runtime/indent/chaiscript.vim
+++ b/runtime/indent/chaiscript.vim
@@ -1,6 +1,7 @@
 " Vim indent file
 " Language:     ChaiScript
 " Maintainer:	Jason Turner <lefticus 'at' gmail com>
+" Last Change: 	2022 Apr 06
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
@@ -11,6 +12,8 @@
 setlocal indentexpr=GetChaiScriptIndent()
 setlocal autoindent
 
+let b:undo_indent = "setl ai< inde<"
+
 " Only define the function once.
 if exists("*GetChaiScriptIndent")
   finish
diff --git a/runtime/indent/cmake.vim b/runtime/indent/cmake.vim
index 845bdd7..af27c0d 100644
--- a/runtime/indent/cmake.vim
+++ b/runtime/indent/cmake.vim
@@ -3,7 +3,7 @@
 " Author:       Andy Cedilnik <andy.cedilnik@kitware.com>
 " Maintainer:   Dimitri Merejkowsky <d.merej@gmail.com>
 " Former Maintainer: Karthik Krishnan <karthik.krishnan@kitware.com>
-" Last Change:  2017 Sep 24
+" Last Change:  2022 Apr 06
 "
 " Licence:      The CMake license applies to this file. See
 "               https://cmake.org/licensing
@@ -17,6 +17,8 @@
 setlocal indentexpr=CMakeGetIndent(v:lnum)
 setlocal indentkeys+==ENDIF(,ENDFOREACH(,ENDMACRO(,ELSE(,ELSEIF(,ENDWHILE(
 
+let b:undo_indent = "setl inde< indk<"
+
 " Only define the function once.
 if exists("*CMakeGetIndent")
   finish
diff --git a/runtime/indent/d.vim b/runtime/indent/d.vim
index 57f9125..80c9a2f 100644
--- a/runtime/indent/d.vim
+++ b/runtime/indent/d.vim
@@ -2,7 +2,7 @@
 " Language:	D
 " Maintainer:	Jason Mills <jmills@cs.mun.ca> (Invalid email address)
 " 		Doug Kearns <dougkearns@gmail.com>
-" Last Change:	2005 Nov 22
+" Last Change:	2022 Apr 06
 " Version:	0.1
 "
 " Please email me with bugs, comments, and suggestion. Put vim in the subject
@@ -19,4 +19,6 @@
 " D indenting is a lot like the built-in C indenting.
 setlocal cindent
 
+let b:undo_indent = "setl cin<"
+
 " vim: ts=8 noet
diff --git a/runtime/indent/dictconf.vim b/runtime/indent/dictconf.vim
index 2e15c76..fa40585 100644
--- a/runtime/indent/dictconf.vim
+++ b/runtime/indent/dictconf.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:             dict(1) configuration file
 " Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
-" Latest Revision:      2006-12-20
+" Last Change:      	2022 Apr 06
 
 if exists("b:did_indent")
   finish
@@ -11,3 +11,5 @@
 setlocal indentkeys=0{,0},!^F,o,O cinwords= autoindent smartindent
 setlocal nosmartindent
 inoremap <buffer> # X#
+
+let b:undo_indent = "setl ai< cinw< indk< si< | silent! iunmap <buffer> #"
diff --git a/runtime/indent/dictdconf.vim b/runtime/indent/dictdconf.vim
index 5c4fbda..5c0e7c5 100644
--- a/runtime/indent/dictdconf.vim
+++ b/runtime/indent/dictdconf.vim
@@ -11,3 +11,5 @@
 setlocal indentkeys=0{,0},!^F,o,O cinwords= autoindent smartindent
 setlocal nosmartindent
 inoremap <buffer> # X#
+
+let b:undo_indent = "setl ai< cinw< indk< si< | silent! iunmap <buffer> #"
diff --git a/runtime/indent/dylan.vim b/runtime/indent/dylan.vim
index 55255dd..e2a6d10 100644
--- a/runtime/indent/dylan.vim
+++ b/runtime/indent/dylan.vim
@@ -3,7 +3,7 @@
 " Maintainer:	Brent A. Fulgham <bfulgham@debian.org> (Invalid email address)
 " 		Doug Kearns <dougkearns@gmail.com>
 " Version:	0.01
-" Last Change:	2017 Jun 13
+" Last Change:	2022 Apr 06
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
@@ -15,6 +15,9 @@
 
 " Define the appropriate indent function but only once
 setlocal indentexpr=DylanGetIndent()
+
+let b:undo_indent = "setl inde< indk<"
+
 if exists("*DylanGetIndent")
   finish
 endif
diff --git a/runtime/indent/falcon.vim b/runtime/indent/falcon.vim
index 664ad61..a58ccad 100644
--- a/runtime/indent/falcon.vim
+++ b/runtime/indent/falcon.vim
@@ -3,6 +3,7 @@
 " Maintainer: Steven Oliver <oliver.steven@gmail.com>
 " Website: https://steveno@github.com/steveno/falconpl-vim.git
 " Credits: This is, to a great extent, a copy n' paste of ruby.vim.
+"		2022 April: b:undo_indent added by Doug Kearns
 
 " 1. Setup {{{1
 " ============
@@ -20,6 +21,8 @@
 setlocal indentkeys=0{,0},0),0],!^F,o,O,e
 setlocal indentkeys+==~case,=~catch,=~default,=~elif,=~else,=~end,=~\"
 
+let b:undo_indent = "setl inde< indk< si<"
+
 " Define the appropriate indent function but only once
 if exists("*FalconGetIndent")
     finish
diff --git a/runtime/indent/gitolite.vim b/runtime/indent/gitolite.vim
index b36f30a..22be687 100644
--- a/runtime/indent/gitolite.vim
+++ b/runtime/indent/gitolite.vim
@@ -4,7 +4,7 @@
 "	(https://raw.githubusercontent.com/sitaramc/gitolite/master/contrib/vim/indent/gitolite.vim)
 " Maintainer:	Sitaram Chamarty <sitaramc@gmail.com>
 " (former Maintainer:	Teemu Matilainen <teemu.matilainen@iki.fi>)
-" Last Change:	2017 Oct 05
+" Last Change:	2022 Apr 06
 
 if exists("b:did_indent")
   finish
@@ -15,6 +15,8 @@
 setlocal indentexpr=GetGitoliteIndent()
 setlocal indentkeys=o,O,*<Return>,!^F,=repo,\",=
 
+let b:undo_indent = "setl ai< inde< indk<"
+
 " Only define the function once.
 if exists("*GetGitoliteIndent")
   finish
diff --git a/runtime/indent/idlang.vim b/runtime/indent/idlang.vim
index e6a1d73..1519865 100644
--- a/runtime/indent/idlang.vim
+++ b/runtime/indent/idlang.vim
@@ -2,7 +2,7 @@
 " Language:	IDL (ft=idlang)
 " Maintainer:	Aleksandar Jelenak <ajelenak AT yahoo.com> (Invalid email address)
 " 		Doug Kearns <dougkearns@gmail.com>
-" Last change:	2017 Jun 13
+" Last change:	2022 Apr 06
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
@@ -14,6 +14,8 @@
 
 setlocal indentexpr=GetIdlangIndent(v:lnum)
 
+let b:undo_indent = "setl inde< indk<"
+
 " Only define the function once.
 if exists("*GetIdlangIndent")
    finish
diff --git a/runtime/indent/make.vim b/runtime/indent/make.vim
index 76c8f83..4d1838b 100644
--- a/runtime/indent/make.vim
+++ b/runtime/indent/make.vim
@@ -2,7 +2,7 @@
 " Language:		Makefile
 " Maintainer:		Doug Kearns <dougkearns@gmail.com>
 " Previous Maintainer:	Nikolai Weibull <now@bitwi.se>
-" Last Change:		24 Sep 2021
+" Last Change:		2022 Apr 06
 
 if exists("b:did_indent")
   finish
@@ -13,7 +13,7 @@
 setlocal indentkeys=!^F,o,O,<:>,=else,=endif
 setlocal nosmartindent
 
-let b:undo_indent = "setl ai< inde< indk<"
+let b:undo_indent = "setl inde< indk< si<"
 
 if exists("*GetMakeIndent")
   finish
diff --git a/runtime/indent/mma.vim b/runtime/indent/mma.vim
index ebf98b9..9dbfd74 100644
--- a/runtime/indent/mma.vim
+++ b/runtime/indent/mma.vim
@@ -3,6 +3,7 @@
 " Maintainer:	Steve Layland <layland@wolfram.com> (Invalid email address)
 " 		Doug Kearns <dougkearns@gmail.com>
 " Last Change:	Sat May  10 18:56:22 CDT 2005
+"		2022 April: b:undo_indent added by Doug Kearns
 " Source:	http://vim.sourceforge.net/scripts/script.php?script_id=1274
 " 		http://members.wolfram.com/layland/vim/indent/mma.vim
 "
@@ -26,6 +27,8 @@
 setlocal indentkeys+=0[,0],0(,0)
 setlocal nosi "turn off smart indent so we don't over analyze } blocks
 
+let b:undo_indent = "setl inde< indk< si<"
+
 if exists("*GetMmaIndent")
     finish
 endif
diff --git a/runtime/indent/nginx.vim b/runtime/indent/nginx.vim
index d4afec1..8cef766 100644
--- a/runtime/indent/nginx.vim
+++ b/runtime/indent/nginx.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language: nginx.conf
 " Maintainer: Chris Aumann <me@chr4.org>
-" Last Change: Apr 15, 2017
+" Last Change:  2022 Apr 06
 
 if exists("b:did_indent")
     finish
@@ -15,3 +15,5 @@
 
 " Just make sure that the comments are not reset as defs would be.
 setlocal cinkeys-=0#
+
+let b:undo_indent = "setl inde< cin< cink<"
diff --git a/runtime/indent/objc.vim b/runtime/indent/objc.vim
index a5451a5..1d10705 100644
--- a/runtime/indent/objc.vim
+++ b/runtime/indent/objc.vim
@@ -1,9 +1,7 @@
 "   Vim indent file
 "   Language:	    Objective-C
 "   Maintainer:	    Kazunobu Kuriyama <kazunobu.kuriyama@nifty.com>
-"   Last Change:    2004 May 16
-"
-
+"   Last Change:    2022 Apr 06
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
@@ -19,6 +17,8 @@
 setlocal indentkeys-=:
 setlocal indentkeys+=<:>
 
+let b:undo_indent = "setl cin< inde< indk<"
+
 " Only define the function once.
 if exists("*GetObjCIndent")
     finish
diff --git a/runtime/indent/occam.vim b/runtime/indent/occam.vim
index 2979ac1..673940a 100644
--- a/runtime/indent/occam.vim
+++ b/runtime/indent/occam.vim
@@ -2,7 +2,7 @@
 " Language:	occam
 " Maintainer:	Mario Schweigler <ms44@kent.ac.uk> (Invalid email address)
 " 		Doug Kearns <dougkearns@gmail.com>
-" Last Change:	23 April 2003
+" Last Change:	2022 Apr 06
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
@@ -17,6 +17,8 @@
 setlocal indentkeys=o,O,0=:
 "}}}
 
+let b:undo_indent = "setl inde< indk<"
+
 " Only define the function once
 if exists("*GetOccamIndent")
   finish
diff --git a/runtime/indent/postscr.vim b/runtime/indent/postscr.vim
index 0691cd2..66094e3 100644
--- a/runtime/indent/postscr.vim
+++ b/runtime/indent/postscr.vim
@@ -2,8 +2,8 @@
 " Language:	PostScript
 " Maintainer:	Mike Williams <mrw@netcomuk.co.uk> (Invalid email address)
 " 		Doug Kearns <dougkearns@gmail.com>
-" Last Change:	2nd July 2001
-"
+" Last Change:	2022 Apr 06
+
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
@@ -14,6 +14,8 @@
 setlocal indentexpr=PostscrIndentGet(v:lnum)
 setlocal indentkeys+=0],0=>>,0=%%,0=end,0=restore,0=grestore indentkeys-=:,0#,e
 
+let b:undo_indent = "setl inde< indk<"
+
 " Catch multiple instantiations
 if exists("*PostscrIndentGet")
   finish
diff --git a/runtime/indent/prolog.vim b/runtime/indent/prolog.vim
index ac03c28..0c4fd54 100644
--- a/runtime/indent/prolog.vim
+++ b/runtime/indent/prolog.vim
@@ -4,6 +4,7 @@
 " 		Doug Kearns <dougkearns@gmail.com>
 "  Revised on:	2002.02.18. 23:34:05
 "  Last change by: Takuya Fujiwara, 2018 Sep 23
+"		2022 April: b:undo_indent added by Doug Kearns
 
 " TODO:
 "   checking with respect to syntax highlighting
@@ -21,6 +22,8 @@
 setlocal indentkeys-=:,0#
 setlocal indentkeys+=0%,-,0;,>,0)
 
+let b:undo_indent = "setl inde< indk<"
+
 " Only define the function once.
 "if exists("*GetPrologIndent")
 "    finish
diff --git a/runtime/indent/sas.vim b/runtime/indent/sas.vim
index 9cc9e02..bbbbbf0 100644
--- a/runtime/indent/sas.vim
+++ b/runtime/indent/sas.vim
@@ -2,7 +2,7 @@
 " Language:     SAS
 " Maintainer:   Zhen-Huan Hu <wildkeny@gmail.com>
 " Version:      3.0.3
-" Last Change:  Jun 26, 2018
+" Last Change:  2022 Apr 06
 
 if exists("b:did_indent")
   finish
@@ -12,6 +12,8 @@
 setlocal indentexpr=GetSASIndent()
 setlocal indentkeys+=;,=~data,=~proc,=~macro
 
+let b:undo_indent = "setl inde< indk<"
+
 if exists("*GetSASIndent")
   finish
 endif
diff --git a/runtime/indent/sml.vim b/runtime/indent/sml.vim
index e760a8e..a0b0c3e 100644
--- a/runtime/indent/sml.vim
+++ b/runtime/indent/sml.vim
@@ -7,10 +7,11 @@
 "               Mike Leary          <leary@nwlink.com>
 "               Markus Mottl        <markus@oefai.at>
 " OCaml URL:    http://www.oefai.at/~markus/vim/indent/ocaml.vim
-" Last Change:  2003 Jan 04	- Adapted to SML
+" Last Change:  2022 Apr 06
 " 				2002 Nov 06 - Some fixes (JY)
 "               2002 Oct 28 - Fixed bug with indentation of ']' (MM)
 "               2002 Oct 22 - Major rewrite (JY)
+"		2022 April: b:undo_indent added by Doug Kearns
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
@@ -26,6 +27,8 @@
 setlocal textwidth=80
 setlocal shiftwidth=2
 
+let b:undo_indent = "setl et< inde< indk< lisp< si< sw< tw<"
+
 " Comment formatting
 if (has("comments"))
   set comments=sr:(*,mb:*,ex:*)
diff --git a/runtime/indent/systemverilog.vim b/runtime/indent/systemverilog.vim
index 16fb451..f6114dc 100644
--- a/runtime/indent/systemverilog.vim
+++ b/runtime/indent/systemverilog.vim
@@ -2,6 +2,7 @@
 " Language:    SystemVerilog
 " Maintainer:  kocha <kocha.lsifrontend@gmail.com>
 " Last Change: 05-Feb-2017 by Bilal Wasim
+"		2022 April: b:undo_indent added by Doug Kearns
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
@@ -16,6 +17,8 @@
 setlocal indentkeys+==endinterface,=endgroup,=endprogram,=endproperty,=endchecker
 setlocal indentkeys+==`else,=`endif
 
+let b:undo_indent = "setl inde< indk<"
+
 " Only define the function once.
 if exists("*SystemVerilogIndent")
   finish