patch 8.1.1995: more functions can be used as methods

Problem:    More functions can be used as methods.
Solution:   Make sign functions usable as a method.
diff --git a/src/evalfunc.c b/src/evalfunc.c
index f302df7..2949c89 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -736,15 +736,15 @@
     {"shellescape",	1, 2, 0,	  f_shellescape},
     {"shiftwidth",	0, 1, 0,	  f_shiftwidth},
 #ifdef FEAT_SIGNS
-    {"sign_define",	1, 2, 0,	  f_sign_define},
-    {"sign_getdefined",	0, 1, 0,	  f_sign_getdefined},
-    {"sign_getplaced",	0, 2, 0,	  f_sign_getplaced},
-    {"sign_jump",	3, 3, 0,	  f_sign_jump},
-    {"sign_place",	4, 5, 0,	  f_sign_place},
-    {"sign_placelist",	1, 1, 0,	  f_sign_placelist},
-    {"sign_undefine",	0, 1, 0,	  f_sign_undefine},
-    {"sign_unplace",	1, 2, 0,	  f_sign_unplace},
-    {"sign_unplacelist",	1, 2, 0,	  f_sign_unplacelist},
+    {"sign_define",	1, 2, FEARG_1,	  f_sign_define},
+    {"sign_getdefined",	0, 1, FEARG_1,	  f_sign_getdefined},
+    {"sign_getplaced",	0, 2, FEARG_1,	  f_sign_getplaced},
+    {"sign_jump",	3, 3, FEARG_1,	  f_sign_jump},
+    {"sign_place",	4, 5, FEARG_1,	  f_sign_place},
+    {"sign_placelist",	1, 1, FEARG_1,	  f_sign_placelist},
+    {"sign_undefine",	0, 1, FEARG_1,	  f_sign_undefine},
+    {"sign_unplace",	1, 2, FEARG_1,	  f_sign_unplace},
+    {"sign_unplacelist", 1, 2, FEARG_1,	  f_sign_unplacelist},
 #endif
     {"simplify",	1, 1, 0,	  f_simplify},
 #ifdef FEAT_FLOAT
diff --git a/src/testdir/test_signs.vim b/src/testdir/test_signs.vim
index f3477de..862199c 100644
--- a/src/testdir/test_signs.vim
+++ b/src/testdir/test_signs.vim
@@ -393,7 +393,7 @@
 
   " Tests for sign_define()
   let attr = {'text' : '=>', 'linehl' : 'Search', 'texthl' : 'Error'}
-  call assert_equal(0, sign_define("sign1", attr))
+  call assert_equal(0, "sign1"->sign_define(attr))
   call assert_equal([{'name' : 'sign1', 'texthl' : 'Error',
 	      \ 'linehl' : 'Search', 'text' : '=>'}], sign_getdefined())
 
@@ -404,13 +404,13 @@
   call Sign_define_ignore_error("sign2", attr)
   call assert_equal([{'name' : 'sign2', 'texthl' : 'DiffChange',
 	      \ 'linehl' : 'DiffAdd', 'text' : '!!', 'icon' : 'sign2.ico'}],
-	      \ sign_getdefined("sign2"))
+	      \ "sign2"->sign_getdefined())
 
   " Test for a sign name with digits
   call assert_equal(0, sign_define(0002, {'linehl' : 'StatusLine'}))
   call assert_equal([{'name' : '2', 'linehl' : 'StatusLine'}],
 	      \ sign_getdefined(0002))
-  call sign_undefine(0002)
+  eval 0002->sign_undefine()
 
   " Tests for invalid arguments to sign_define()
   call assert_fails('call sign_define("sign4", {"text" : "===>"})', 'E239:')
@@ -434,7 +434,7 @@
   call assert_equal([{'bufnr' : bufnr(''), 'signs' :
 	      \ [{'id' : 10, 'group' : '', 'lnum' : 20, 'name' : 'sign1',
 	      \ 'priority' : 10}]}],
-	      \ sign_getplaced('%', {'lnum' : 20}))
+	      \ '%'->sign_getplaced({'lnum' : 20}))
   call assert_equal([{'bufnr' : bufnr(''), 'signs' :
 	      \ [{'id' : 10, 'group' : '', 'lnum' : 20, 'name' : 'sign1',
 	      \ 'priority' : 10}]}],
@@ -490,10 +490,10 @@
 	      \ 'E745:')
 
   " Tests for sign_unplace()
-  call sign_place(20, '', 'sign2', 'Xsign', {"lnum" : 30})
+  eval 20->sign_place('', 'sign2', 'Xsign', {"lnum" : 30})
   call assert_equal(0, sign_unplace('',
 	      \ {'id' : 20, 'buffer' : 'Xsign'}))
-  call assert_equal(-1, sign_unplace('',
+  call assert_equal(-1, ''->sign_unplace(
 	      \ {'id' : 30, 'buffer' : 'Xsign'}))
   call sign_place(20, '', 'sign2', 'Xsign', {"lnum" : 30})
   call assert_fails("call sign_unplace('',
@@ -1711,7 +1711,7 @@
   let r = sign_jump(5, '', 'foo')
   call assert_equal(2, r)
   call assert_equal(2, line('.'))
-  let r = sign_jump(6, 'g1', 'foo')
+  let r = 6->sign_jump('g1', 'foo')
   call assert_equal(5, r)
   call assert_equal(5, line('.'))
   let r = sign_jump(5, '', 'bar')
@@ -1935,8 +1935,7 @@
 	      \ 'group' : 'g1', 'priority' : 10}], s[0].signs)
 
   " Change an existing sign without specifying the group
-  call assert_equal([5], sign_placelist([
-	      \ {'id' : 5, 'name' : 'sign1', 'buffer' : 'Xsign'}]))
+  call assert_equal([5], [{'id' : 5, 'name' : 'sign1', 'buffer' : 'Xsign'}]->sign_placelist())
   let s = sign_getplaced('Xsign', {'id' : 5, 'group' : ''})
   call assert_equal([{'id' : 5, 'name' : 'sign1', 'lnum' : 11,
 	      \ 'group' : '', 'priority' : 10}], s[0].signs)
@@ -1969,7 +1968,7 @@
 	      \ {'id' : 1, 'group' : 'g1'}, {'id' : 1, 'group' : 'g2'}]))
 
   " Invalid arguments
-  call assert_equal([], sign_unplacelist([]))
+  call assert_equal([], []->sign_unplacelist())
   call assert_fails('call sign_unplacelist({})', "E714:")
   call assert_fails('call sign_unplacelist([[]])', "E715:")
   call assert_fails('call sign_unplacelist(["abc"])', "E715:")
diff --git a/src/version.c b/src/version.c
index 88e0791..65512c9 100644
--- a/src/version.c
+++ b/src/version.c
@@ -758,6 +758,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1995,
+/**/
     1994,
 /**/
     1993,