Update runtime files.
diff --git a/runtime/indent/fortran.vim b/runtime/indent/fortran.vim
index 6963202..26ed33a 100644
--- a/runtime/indent/fortran.vim
+++ b/runtime/indent/fortran.vim
@@ -74,11 +74,15 @@
 if (b:fortran_fixed_source == 1)
   setlocal indentexpr=FortranGetFixedIndent()
   if exists("*FortranGetFixedIndent")
+    let &cpoptions = s:cposet
+    unlet s:cposet
     finish
   endif
 else
   setlocal indentexpr=FortranGetFreeIndent()
   if exists("*FortranGetFreeIndent")
+    let &cpoptions = s:cposet
+    unlet s:cposet
     finish
   endif
 endif
@@ -213,7 +217,7 @@
   return ind
 endfunction
 
-let &cpoptions=s:cposet
+let &cpoptions = s:cposet
 unlet s:cposet
 
 " vim:sw=2 tw=130
diff --git a/runtime/indent/testdir/vim.in b/runtime/indent/testdir/vim.in
index 47e6929..f652dbd 100644
--- a/runtime/indent/testdir/vim.in
+++ b/runtime/indent/testdir/vim.in
@@ -10,6 +10,11 @@
 \ 'some '
 \ 'string'
 
+if 1
+let x = [
+\ ]
+endif
+
 " END_INDENT
 
 " START_INDENT
diff --git a/runtime/indent/testdir/vim.ok b/runtime/indent/testdir/vim.ok
index 3f53c52..b8592c1 100644
--- a/runtime/indent/testdir/vim.ok
+++ b/runtime/indent/testdir/vim.ok
@@ -10,6 +10,11 @@
 	    \ 'some '
 	    \ 'string'
 
+if 1
+    let x = [
+		\ ]
+endif
+
 " END_INDENT
 
 " START_INDENT
diff --git a/runtime/indent/vim.vim b/runtime/indent/vim.vim
index 3e502c9..b031d1f 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:	2021 Jan 06
+" Last Change:	2021 Jan 21
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
@@ -38,6 +38,9 @@
   " Find a non-blank line above the current line.
   let lnum = prevnonblank(v:lnum - 1)
 
+  " The previous line, ignoring line continuation
+  let prev_text_end = lnum > 0 ? getline(lnum) : ''
+
   " If the current line doesn't start with '\' or '"\ ' and below a line that
   " starts with '\' or '"\ ', use the indent of the line above it.
   let cur_text = getline(v:lnum)
@@ -51,6 +54,8 @@
   if lnum == 0
     return 0
   endif
+
+  " the start of the previous line, skipping over line continuation
   let prev_text = getline(lnum)
   let found_cont = 0
 
@@ -147,13 +152,13 @@
   endif
 
   " Below a line starting with "]" we must be below the end of a list.
-  if prev_text =~ '^\s*]'
+  if prev_text_end =~ '^\s*]'
     let ind = ind - shiftwidth()
   endif
 
   " A line ending in "{"/"[} is most likely the start of a dict/list literal,
   " indent the next line more.  Not for a continuation line.
-  if prev_text =~ '[{[]\s*$' && !found_cont
+  if prev_text_end =~ '[{[]\s*$' && !found_cont
     let ind = ind + shiftwidth()
   endif
 
diff --git a/runtime/indent/yaml.vim b/runtime/indent/yaml.vim
index 26e14ef..8dca5cd 100644
--- a/runtime/indent/yaml.vim
+++ b/runtime/indent/yaml.vim
@@ -2,16 +2,13 @@
 " Language:	YAML
 " Maintainer:	Nikolai Pavlov <zyx.vim@gmail.com>
 " Last Update:	Lukas Reineke
-" Last Change:	2020 Jun 07
+" Last Change:	2021 Jan 19
 
 " Only load this indent file when no other was loaded.
 if exists('b:did_indent')
   finish
 endif
 
-let s:save_cpo = &cpo
-set cpo&vim
-
 let b:did_indent = 1
 
 setlocal indentexpr=GetYAMLIndent(v:lnum)
@@ -25,6 +22,9 @@
     finish
 endif
 
+let s:save_cpo = &cpo
+set cpo&vim
+
 function s:FindPrevLessIndentedLine(lnum, ...)
     let prevlnum = prevnonblank(a:lnum-1)
     let curindent = a:0 ? a:1 : indent(a:lnum)