changeset 16658:f776ce5d4ed8 v8.1.1331

patch 8.1.1331: test 29 is old style commit https://github.com/vim/vim/commit/fb222df28d5158516104a21cba7141a6240f4817 Author: Bram Moolenaar <Bram@vim.org> Date: Tue May 14 17:57:19 2019 +0200 patch 8.1.1331: test 29 is old style Problem: Test 29 is old style. Solution: Turn it into a new style test. (Yegappan Lakshmanan, closes https://github.com/vim/vim/issues/4370)
author Bram Moolenaar <Bram@vim.org>
date Tue, 14 May 2019 18:00:07 +0200
parents 5002df3f658b
children 155423e5a8fd
files src/Makefile src/testdir/Make_all.mak src/testdir/Make_vms.mms src/testdir/test29.in src/testdir/test29.ok src/testdir/test_backspace_opt.vim src/testdir/test_join.vim src/version.c
diffstat 8 files changed, 442 insertions(+), 331 deletions(-) [+]
line wrap: on
line diff
--- a/src/Makefile
+++ b/src/Makefile
@@ -2179,7 +2179,7 @@ test_libvterm:
 test1 \
 	test_eval \
 	test3 \
-	test29 test30 test37 test39 \
+	test30 test37 test39 \
 	test42 test44 test48 test49 \
 	test52 test59 \
 	test64 test69 \
--- a/src/testdir/Make_all.mak
+++ b/src/testdir/Make_all.mak
@@ -14,7 +14,6 @@ SCRIPTS_FIRST = \
 # Tests that run on all systems.
 SCRIPTS_ALL = \
 	test3.out \
-	test29.out \
 	test37.out \
 	test39.out \
 	test42.out \
--- a/src/testdir/Make_vms.mms
+++ b/src/testdir/Make_vms.mms
@@ -74,7 +74,6 @@ VIMPROG = <->vim.exe
 .SUFFIXES : .out .in
 
 SCRIPT = test1.out test3.out \
-       test29.out \
        test30.out test37.out test39.out \
        test42.out test44.out test48.out test49.out \
        test64.out test69.out \
deleted file mode 100644
--- a/src/testdir/test29.in
+++ /dev/null
@@ -1,231 +0,0 @@
-Test for joining lines and marks in them
- in compatible and nocompatible modes
- and with 'joinspaces' set or not
- and with 'cpoptions' flag 'j' set or not
-
-STARTTEST
-:so small.vim
-:set nocompatible viminfo+=nviminfo
-:set nojoinspaces
-:set cpoptions-=j
-/firstline/
-j"td/^STARTTEST/-1
-PJjJjJjJjJjJjJjJjJjJjJjJjJjJj05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions+=j
-j05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions-=j joinspaces
-j"tpJjJjJjJjJjJjJjJjJjJjJjJjJjJj05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions+=j
-j05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions-=j nojoinspaces compatible
-j"tpJjJjJjJjJjJjJjJjJjJjJjJjJjJj4Jy3l$pjd/STARTTEST/-2
-ENDTEST
-
-firstline
-asdfasdf.
-asdf
-asdfasdf. 
-asdf
-asdfasdf.  
-asdf
-asdfasdf.	
-asdf
-asdfasdf. 	
-asdf
-asdfasdf.	 
-asdf
-asdfasdf.		
-asdf
-asdfasdf
-asdf
-asdfasdf 
-asdf
-asdfasdf  
-asdf
-asdfasdf	
-asdf
-asdfasdf	 
-asdf
-asdfasdf 	
-asdf
-asdfasdf		
-asdf
-zx cvn.
-as dfg?
-hjkl iop!
-ert
-zx cvn.
-as dfg?
-hjkl iop!
-ert
-
-STARTTEST
-/^{/+1
-:set comments=s1:/*,mb:*,ex:*/,://
-:set nojoinspaces fo=j
-:set backspace=eol,start
-:.,+3join
-j4J
-:.,+2join
-j3J
-:.,+2join
-j3J
-:.,+2join
-jj3J
-ENDTEST
-
-{
-
-/*
- * Make sure the previous comment leader is not removed.
- */
-
-/*
- * Make sure the previous comment leader is not removed.
- */
-
-// Should the next comment leader be left alone?
-// Yes.
-
-// Should the next comment leader be left alone?
-// Yes.
-
-/* Here the comment leader should be left intact. */
-// And so should this one.
-
-/* Here the comment leader should be left intact. */
-// And so should this one.
-
-if (condition) // Remove the next comment leader!
-               // OK, I will.
-    action();
-
-if (condition) // Remove the next comment leader!
-               // OK, I will.
-    action();
-}
-
-STARTTEST
-:" Test with backspace set to the non-compatible setting
-:set belloff=all
-/^\d\+ this
-:set cp bs=2
-Avim1
-Avim2u
-:set cpo-=<
-:inoremap <c-u> <left><c-u>
-Avim3
-:iunmap <c-u>
-Avim4
-:" Test with backspace set to the compatible setting
-:set backspace= visualbell
-A vim5A
-A vim6Azweiu
-:inoremap <c-u> <left><c-u>
-A vim7
-:set compatible novisualbell
-ENDTEST
-1 this shouldn't be deleted
-2 this shouldn't be deleted
-3 this shouldn't be deleted
-4 this should be deleted
-5 this shouldn't be deleted
-6 this shouldn't be deleted
-7 this shouldn't be deleted
-8 this shouldn't be deleted (not touched yet)
-
-STARTTEST
-/^{/+1
-:set comments=sO:*\ -,mO:*\ \ ,exO:*/
-:set comments+=s1:/*,mb:*,ex:*/,://
-:set comments+=s1:>#,mb:#,ex:#<,:<
-:set cpoptions-=j joinspaces fo=j
-:set backspace=eol,start
-:.,+3join
-j4J
-:.,+8join
-j9J
-:.,+2join
-j3J
-:.,+2join
-j3J
-:.,+2join
-jj3J
-j:.,+2join
-jj3J
-j:.,+5join
-j6J
-oSome code!
// Make sure backspacing does not remove this comment leader.0i
-ENDTEST
-
-{
-
-/*
- * Make sure the previous comment leader is not removed.
- */
-
-/*
- * Make sure the previous comment leader is not removed.
- */
-
-/* List:
- * - item1
- *   foo bar baz
- *   foo bar baz
- * - item2
- *   foo bar baz
- *   foo bar baz
- */
-
-/* List:
- * - item1
- *   foo bar baz
- *   foo bar baz
- * - item2
- *   foo bar baz
- *   foo bar baz
- */
-
-// Should the next comment leader be left alone?
-// Yes.
-
-// Should the next comment leader be left alone?
-// Yes.
-
-/* Here the comment leader should be left intact. */
-// And so should this one.
-
-/* Here the comment leader should be left intact. */
-// And so should this one.
-
-if (condition) // Remove the next comment leader!
-               // OK, I will.
-    action();
-
-if (condition) // Remove the next comment leader!
-               // OK, I will.
-    action();
-
-int i = 7 /* foo *// 3
- // comment
- ;
-
-int i = 7 /* foo *// 3
- // comment
- ;
-
-># Note that the last character of the ending comment leader (left angle
- # bracket) is a comment leader itself. Make sure that this comment leader is
- # not removed from the next line #<
-< On this line a new comment is opened which spans 2 lines. This comment should
-< retain its comment leader.
-
-># Note that the last character of the ending comment leader (left angle
- # bracket) is a comment leader itself. Make sure that this comment leader is
- # not removed from the next line #<
-< On this line a new comment is opened which spans 2 lines. This comment should
-< retain its comment leader.
-
-}
-
-STARTTEST
-:g/^STARTTEST/.,/^ENDTEST/d
-:?firstline?+1,$w! test.out
-:qa!
-ENDTEST
deleted file mode 100644
--- a/src/testdir/test29.ok
+++ /dev/null
@@ -1,97 +0,0 @@
-asdfasdf. asdf
-asdfasdf. asdf
-asdfasdf.  asdf
-asdfasdf.	asdf
-asdfasdf. 	asdf
-asdfasdf.	 asdf
-asdfasdf.		asdf
-asdfasdf asdf
-asdfasdf asdf
-asdfasdf  asdf
-asdfasdf	asdf
-asdfasdf	 asdf
-asdfasdf 	asdf
-asdfasdf		asdf
-zx cvn. as dfg? hjkl iop! ert ernop
-zx cvn. as dfg? hjkl iop! ert ernop
-
-asdfasdf.  asdf
-asdfasdf.  asdf
-asdfasdf.  asdf
-asdfasdf.	asdf
-asdfasdf. 	asdf
-asdfasdf.	 asdf
-asdfasdf.		asdf
-asdfasdf asdf
-asdfasdf asdf
-asdfasdf  asdf
-asdfasdf	asdf
-asdfasdf	 asdf
-asdfasdf 	asdf
-asdfasdf		asdf
-zx cvn.  as dfg?  hjkl iop!  ert  enop
-zx cvn.  as dfg? hjkl iop! ert ernop
-
-asdfasdf.  asdf
-asdfasdf.  asdf
-asdfasdf.  asdf
-asdfasdf.	asdf
-asdfasdf. 	asdf
-asdfasdf.	 asdf
-asdfasdf.		asdf
-asdfasdf asdf
-asdfasdf asdf
-asdfasdf  asdf
-asdfasdf	asdf
-asdfasdf	 asdf
-asdfasdf 	asdf
-asdfasdf		asdf
-zx cvn.  as dfg? hjkl iop! ert  a
-
-
-{
-/* Make sure the previous comment leader is not removed. */
-/* Make sure the previous comment leader is not removed. */
-// Should the next comment leader be left alone? Yes.
-// Should the next comment leader be left alone? Yes.
-/* Here the comment leader should be left intact. */ // And so should this one.
-/* Here the comment leader should be left intact. */ // And so should this one.
-if (condition) // Remove the next comment leader! OK, I will.
-    action();
-if (condition) // Remove the next comment leader! OK, I will.
-    action();
-}
-
-1 this shouldn't be deleted
-2 this shouldn't be deleted
-3 this shouldn't be deleted
-4 this should be deleted3
-
-6 this shouldn't be deleted vim5
-7 this shouldn't be deleted vim6
-8 this shouldn't be deleted (not touched yet) vim7
-
-
-{
-/* Make sure the previous comment leader is not removed.  */
-/* Make sure the previous comment leader is not removed.  */
-/* List: item1 foo bar baz foo bar baz item2 foo bar baz foo bar baz */
-/* List: item1 foo bar baz foo bar baz item2 foo bar baz foo bar baz */
-// Should the next comment leader be left alone?  Yes.
-// Should the next comment leader be left alone?  Yes.
-/* Here the comment leader should be left intact. */ // And so should this one.
-/* Here the comment leader should be left intact. */ // And so should this one.
-if (condition) // Remove the next comment leader!  OK, I will.
-    action();
-if (condition) // Remove the next comment leader!  OK, I will.
-    action();
-int i = 7 /* foo *// 3 // comment
- ;
-int i = 7 /* foo *// 3 // comment
- ;
-># Note that the last character of the ending comment leader (left angle bracket) is a comment leader itself. Make sure that this comment leader is not removed from the next line #< < On this line a new comment is opened which spans 2 lines. This comment should retain its comment leader.
-># Note that the last character of the ending comment leader (left angle bracket) is a comment leader itself. Make sure that this comment leader is not removed from the next line #< < On this line a new comment is opened which spans 2 lines. This comment should retain its comment leader.
-
-Some code!// Make sure backspacing does not remove this comment leader.
-}
-
--- a/src/testdir/test_backspace_opt.vim
+++ b/src/testdir/test_backspace_opt.vim
@@ -56,4 +56,55 @@ func Test_backspace_option()
   set nocompatible viminfo+=nviminfo
 endfunc
 
+" Test with backspace set to the non-compatible setting
+func Test_backspace_ctrl_u()
+  new
+  call append(0,  [
+        \ "1 this shouldn't be deleted",
+        \ "2 this shouldn't be deleted",
+        \ "3 this shouldn't be deleted",
+        \ "4 this should be deleted",
+        \ "5 this shouldn't be deleted",
+        \ "6 this shouldn't be deleted",
+        \ "7 this shouldn't be deleted",
+        \ "8 this shouldn't be deleted (not touched yet)"])
+  call cursor(2, 1)
+
+  set compatible
+  set backspace=2
+
+  exe "normal Avim1\<C-U>\<Esc>\<CR>"
+  exe "normal Avim2\<C-G>u\<C-U>\<Esc>\<CR>"
+
+  set cpo-=<
+  inoremap <c-u> <left><c-u>
+  exe "normal Avim3\<C-U>\<Esc>\<CR>"
+  iunmap <c-u>
+  exe "normal Avim4\<C-U>\<C-U>\<Esc>\<CR>"
+
+  " Test with backspace set to the compatible setting
+  set backspace= visualbell
+  exe "normal A vim5\<Esc>A\<C-U>\<C-U>\<Esc>\<CR>"
+  exe "normal A vim6\<Esc>Azwei\<C-G>u\<C-U>\<Esc>\<CR>"
+
+  inoremap <c-u> <left><c-u>
+  exe "normal A vim7\<C-U>\<C-U>\<Esc>\<CR>"
+
+  call assert_equal([
+        \ "1 this shouldn't be deleted",
+        \ "2 this shouldn't be deleted",
+        \ "3 this shouldn't be deleted",
+        \ "4 this should be deleted3",
+        \ "",
+        \ "6 this shouldn't be deleted vim5",
+        \ "7 this shouldn't be deleted vim6",
+        \ "8 this shouldn't be deleted (not touched yet) vim7",
+        \ ""], getline(1, '$'))
+
+  set compatible&vim
+  set visualbell&vim
+  set backspace&vim
+  close!
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab
--- a/src/testdir/test_join.vim
+++ b/src/testdir/test_join.vim
@@ -33,3 +33,391 @@ func Test_join_marks()
   call assert_equal([0, 4, 67, 0], getpos("']"))
   enew!
 endfunc
+
+" Test for joining lines and marks in them
+"   in compatible and nocompatible modes
+"   and with 'joinspaces' set or not
+"   and with 'cpoptions' flag 'j' set or not
+func Test_join_spaces_marks()
+  new
+  " Text used for the test
+  insert
+asdfasdf.
+asdf
+asdfasdf. 
+asdf
+asdfasdf.  
+asdf
+asdfasdf.	
+asdf
+asdfasdf. 	
+asdf
+asdfasdf.	 
+asdf
+asdfasdf.		
+asdf
+asdfasdf
+asdf
+asdfasdf 
+asdf
+asdfasdf  
+asdf
+asdfasdf	
+asdf
+asdfasdf	 
+asdf
+asdfasdf 	
+asdf
+asdfasdf		
+asdf
+zx cvn.
+as dfg?
+hjkl iop!
+ert
+zx cvn.
+as dfg?
+hjkl iop!
+ert
+.
+  let text = getline(1, '$')
+  normal gg
+
+  set nojoinspaces
+  set cpoptions-=j
+  normal JjJjJjJjJjJjJjJjJjJjJjJjJjJ
+  normal j05lmx
+  normal 2j06lmy
+  normal 2k4Jy3l$p
+  normal `xyl$p
+  normal `yy2l$p
+
+  set cpoptions+=j
+  normal j05lmx
+  normal 2j06lmy
+  normal 2k4Jy3l$p
+  normal `xyl$p
+  normal `yy2l$p
+
+  normal G
+  let last_line = line('$')
+
+  " Expected output
+  append
+asdfasdf. asdf
+asdfasdf. asdf
+asdfasdf.  asdf
+asdfasdf.	asdf
+asdfasdf. 	asdf
+asdfasdf.	 asdf
+asdfasdf.		asdf
+asdfasdf asdf
+asdfasdf asdf
+asdfasdf  asdf
+asdfasdf	asdf
+asdfasdf	 asdf
+asdfasdf 	asdf
+asdfasdf		asdf
+zx cvn. as dfg? hjkl iop! ert ernop
+zx cvn. as dfg? hjkl iop! ert ernop
+.
+
+  call assert_equal(getline(last_line + 1, '$'), getline(1, last_line))
+
+  enew!
+  call append(0, text)
+  normal gg
+
+  set cpoptions-=j
+  set joinspaces
+  normal JjJjJjJjJjJjJjJjJjJjJjJjJjJ
+  normal j05lmx
+  normal 2j06lmy
+  normal 2k4Jy3l$p
+  normal `xyl$p
+  normal `yy2l$p
+
+  set cpoptions+=j
+  normal j05lmx
+  normal 2j06lmy
+  normal 2k4Jy3l$p
+  normal `xyl$p
+  normal `yy2l$p
+
+  normal G
+  let last_line = line('$')
+
+  " Expected output
+  append
+asdfasdf.  asdf
+asdfasdf.  asdf
+asdfasdf.  asdf
+asdfasdf.	asdf
+asdfasdf. 	asdf
+asdfasdf.	 asdf
+asdfasdf.		asdf
+asdfasdf asdf
+asdfasdf asdf
+asdfasdf  asdf
+asdfasdf	asdf
+asdfasdf	 asdf
+asdfasdf 	asdf
+asdfasdf		asdf
+zx cvn.  as dfg?  hjkl iop!  ert  enop
+zx cvn.  as dfg? hjkl iop! ert ernop
+
+.
+
+  call assert_equal(getline(last_line + 1, '$'), getline(1, last_line))
+
+  enew!
+  call append(0, text)
+  normal gg
+
+  set cpoptions-=j
+  set nojoinspaces
+  set compatible
+
+  normal JjJjJjJjJjJjJjJjJjJjJjJjJjJ
+  normal j4Jy3l$pjdG
+
+  normal G
+  let last_line = line('$')
+
+  " Expected output
+  append
+asdfasdf.  asdf
+asdfasdf.  asdf
+asdfasdf.  asdf
+asdfasdf.	asdf
+asdfasdf. 	asdf
+asdfasdf.	 asdf
+asdfasdf.		asdf
+asdfasdf asdf
+asdfasdf asdf
+asdfasdf  asdf
+asdfasdf	asdf
+asdfasdf	 asdf
+asdfasdf 	asdf
+asdfasdf		asdf
+zx cvn.  as dfg? hjkl iop! ert  a
+.
+
+  call assert_equal(getline(last_line + 1, '$'), getline(1, last_line))
+
+  set nocompatible
+  set cpoptions&vim
+  set joinspaces&vim
+  close!
+endfunc
+
+" Test for joining lines with comments
+func Test_join_lines_with_comments()
+  new
+
+  " Text used by the test
+  insert
+{
+
+/*
+* Make sure the previous comment leader is not removed.
+*/
+
+/*
+* Make sure the previous comment leader is not removed.
+*/
+
+// Should the next comment leader be left alone?
+// Yes.
+
+// Should the next comment leader be left alone?
+// Yes.
+
+/* Here the comment leader should be left intact. */
+// And so should this one.
+
+/* Here the comment leader should be left intact. */
+// And so should this one.
+
+if (condition) // Remove the next comment leader!
+// OK, I will.
+action();
+
+if (condition) // Remove the next comment leader!
+// OK, I will.
+action();
+}
+.
+
+  call cursor(2, 1)
+  set comments=s1:/*,mb:*,ex:*/,://
+  set nojoinspaces fo=j
+  set backspace=eol,start
+
+  .,+3join
+  exe "normal j4J\<CR>"
+  .,+2join
+  exe "normal j3J\<CR>"
+  .,+2join
+  exe "normal j3J\<CR>"
+  .,+2join
+  exe "normal jj3J\<CR>"
+
+  normal G
+  let last_line = line('$')
+
+  " Expected output
+  append
+{
+/* Make sure the previous comment leader is not removed. */
+/* Make sure the previous comment leader is not removed. */
+// Should the next comment leader be left alone? Yes.
+// Should the next comment leader be left alone? Yes.
+/* Here the comment leader should be left intact. */ // And so should this one.
+/* Here the comment leader should be left intact. */ // And so should this one.
+if (condition) // Remove the next comment leader! OK, I will.
+action();
+if (condition) // Remove the next comment leader! OK, I will.
+action();
+}
+.
+
+  call assert_equal(getline(last_line + 1, '$'), getline(1, last_line))
+
+  set comments&vim
+  set joinspaces&vim
+  set fo&vim
+  set backspace&vim
+  close!
+endfunc
+
+" Test for joining lines with different comment leaders
+func Test_join_comments_2()
+  new
+
+  insert
+{
+
+/*
+ * Make sure the previous comment leader is not removed.
+ */
+
+/*
+ * Make sure the previous comment leader is not removed.
+ */
+
+/* List:
+ * - item1
+ *   foo bar baz
+ *   foo bar baz
+ * - item2
+ *   foo bar baz
+ *   foo bar baz
+ */
+
+/* List:
+ * - item1
+ *   foo bar baz
+ *   foo bar baz
+ * - item2
+ *   foo bar baz
+ *   foo bar baz
+ */
+
+// Should the next comment leader be left alone?
+// Yes.
+
+// Should the next comment leader be left alone?
+// Yes.
+
+/* Here the comment leader should be left intact. */
+// And so should this one.
+
+/* Here the comment leader should be left intact. */
+// And so should this one.
+
+if (condition) // Remove the next comment leader!
+               // OK, I will.
+    action();
+
+if (condition) // Remove the next comment leader!
+               // OK, I will.
+    action();
+
+int i = 7 /* foo *// 3
+ // comment
+ ;
+
+int i = 7 /* foo *// 3
+ // comment
+ ;
+
+># Note that the last character of the ending comment leader (left angle
+ # bracket) is a comment leader itself. Make sure that this comment leader is
+ # not removed from the next line #<
+< On this line a new comment is opened which spans 2 lines. This comment should
+< retain its comment leader.
+
+># Note that the last character of the ending comment leader (left angle
+ # bracket) is a comment leader itself. Make sure that this comment leader is
+ # not removed from the next line #<
+< On this line a new comment is opened which spans 2 lines. This comment should
+< retain its comment leader.
+
+}
+.
+
+  call cursor(2, 1)
+  set comments=sO:*\ -,mO:*\ \ ,exO:*/
+  set comments+=s1:/*,mb:*,ex:*/,://
+  set comments+=s1:>#,mb:#,ex:#<,:<
+  set cpoptions-=j joinspaces fo=j
+  set backspace=eol,start
+
+  .,+3join
+  exe "normal j4J\<CR>"
+  .,+8join
+  exe "normal j9J\<CR>"
+  .,+2join
+  exe "normal j3J\<CR>"
+  .,+2join
+  exe "normal j3J\<CR>"
+  .,+2join
+  exe "normal jj3J\<CR>j"
+  .,+2join
+  exe "normal jj3J\<CR>j"
+  .,+5join
+  exe "normal j6J\<CR>"
+  exe "normal oSome code!\<CR>// Make sure backspacing does not remove this comment leader.\<Esc>0i\<C-H>\<Esc>"
+
+  normal G
+  let last_line = line('$')
+
+  " Expected output
+  append
+{
+/* Make sure the previous comment leader is not removed.  */
+/* Make sure the previous comment leader is not removed.  */
+/* List: item1 foo bar baz foo bar baz item2 foo bar baz foo bar baz */
+/* List: item1 foo bar baz foo bar baz item2 foo bar baz foo bar baz */
+// Should the next comment leader be left alone?  Yes.
+// Should the next comment leader be left alone?  Yes.
+/* Here the comment leader should be left intact. */ // And so should this one.
+/* Here the comment leader should be left intact. */ // And so should this one.
+if (condition) // Remove the next comment leader!  OK, I will.
+    action();
+if (condition) // Remove the next comment leader!  OK, I will.
+    action();
+int i = 7 /* foo *// 3 // comment
+ ;
+int i = 7 /* foo *// 3 // comment
+ ;
+># Note that the last character of the ending comment leader (left angle bracket) is a comment leader itself. Make sure that this comment leader is not removed from the next line #< < On this line a new comment is opened which spans 2 lines. This comment should retain its comment leader.
+># Note that the last character of the ending comment leader (left angle bracket) is a comment leader itself. Make sure that this comment leader is not removed from the next line #< < On this line a new comment is opened which spans 2 lines. This comment should retain its comment leader.
+
+Some code!// Make sure backspacing does not remove this comment leader.
+}
+.
+
+  call assert_equal(getline(last_line + 1, '$'), getline(1, last_line))
+  close!
+endfunc
--- a/src/version.c
+++ b/src/version.c
@@ -768,6 +768,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1331,
+/**/
     1330,
 /**/
     1329,