patch 8.2.3223: Vim: using {} block in autoloade omnifunc fails

Problem:    Vim: using {} block in autoloade omnifunc fails.
Solution:   Allow using {} block when text is locked. (closes #8631)
diff --git a/src/ex_cmds.h b/src/ex_cmds.h
index ef3fa66..8596b24 100644
--- a/src/ex_cmds.h
+++ b/src/ex_cmds.h
@@ -1853,7 +1853,7 @@
 	EX_RANGE|EX_WHOLEFOLD|EX_EXTRA|EX_TRLBAR|EX_CMDWIN|EX_LOCK_OK|EX_NONWHITE_OK,
 	ADDR_LINES),
 EXCMD(CMD_block,	"{",		ex_block,  // not found normally
-	EX_TRLBAR,
+	EX_TRLBAR|EX_LOCK_OK,
 	ADDR_NONE),
 EXCMD(CMD_endblock,	"}",		ex_endblock,
 	EX_TRLBAR|EX_CMDWIN|EX_LOCK_OK,
diff --git a/src/testdir/test_ins_complete.vim b/src/testdir/test_ins_complete.vim
index 613e952..1f2c7fe 100644
--- a/src/testdir/test_ins_complete.vim
+++ b/src/testdir/test_ins_complete.vim
@@ -121,6 +121,37 @@
   set omnifunc=
 endfunc
 
+func Test_omni_autoload()
+  let save_rtp = &rtp
+  set rtp=Xruntime/some
+  let dir = 'Xruntime/some/autoload'
+  call mkdir(dir, 'p')
+
+  let lines =<< trim END
+      vim9script
+      def omni#func(findstart: bool, base: string): any
+          if findstart
+              return 1
+          else
+              return ['match']
+          endif
+      enddef
+      {
+          eval 1 + 2
+      }
+  END
+  call writefile(lines, dir .. '/omni.vim')
+
+  new
+  setlocal omnifunc=omni#func
+  call feedkeys("i\<C-X>\<C-O>\<Esc>", 'xt')
+
+  bwipe!
+  call delete('Xruntime', 'rf')
+  set omnifunc=
+  let &rtp = save_rtp
+endfunc
+
 func Test_completefunc_args()
   let s:args = []
   func! CompleteFunc(findstart, base)
diff --git a/src/version.c b/src/version.c
index f8a3ee4..0f181ef 100644
--- a/src/version.c
+++ b/src/version.c
@@ -756,6 +756,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3223,
+/**/
     3222,
 /**/
     3221,