patch 8.1.2358: tests fail on Cirrus CI for FreeBSD

Problem:    Tests fail on Cirrus CI for FreeBSD.
Solution:   Fix a test and skip some. (Christian Brabandt, closes #5281)
diff --git a/src/testdir/check.vim b/src/testdir/check.vim
index 6c3b1be..30c4158 100644
--- a/src/testdir/check.vim
+++ b/src/testdir/check.vim
@@ -64,6 +64,15 @@
   endif
 endfunc
 
+" Command to check for not running on a BSD system.
+" TODO: using this checks should not be needed
+command CheckNotBSD call CheckNotBSD()
+func CheckNotBSD()
+  if has('bsd')
+    throw 'Skipped: does not work on BSD'
+  endif
+endfunc
+
 " Command to check that making screendumps is supported.
 " Caller must source screendump.vim
 command CheckScreendump call CheckScreendump()
diff --git a/src/testdir/test_normal.vim b/src/testdir/test_normal.vim
index bbb9993..a28a825 100644
--- a/src/testdir/test_normal.vim
+++ b/src/testdir/test_normal.vim
@@ -1204,7 +1204,8 @@
     return
   endif
 
-  if has('mac') || has('bsd')
+  let not_gnu_man = has('mac') || has('bsd')
+  if not_gnu_man
     " In MacOS and BSD, the option for specifying a pager is different
     set keywordprg=man\ -P\ cat
   else
@@ -1213,7 +1214,7 @@
   " Test for using man
   2
   let a = execute('unsilent norm! K')
-  if has('mac')
+  if not_gnu_man
     call assert_match("man -P cat 'man'", a)
   else
     call assert_match("man --pager=cat 'man'", a)
diff --git a/src/testdir/test_quickfix.vim b/src/testdir/test_quickfix.vim
index 3a9e672..d31650f 100644
--- a/src/testdir/test_quickfix.vim
+++ b/src/testdir/test_quickfix.vim
@@ -1685,6 +1685,7 @@
 endfunc
 
 func Test_switchbuf()
+  CheckNotBSD
   call s:create_test_file('Xqftestfile1')
   call s:create_test_file('Xqftestfile2')
   call s:create_test_file('Xqftestfile3')
diff --git a/src/testdir/test_source_utf8.vim b/src/testdir/test_source_utf8.vim
index e93ea29..99cb09c 100644
--- a/src/testdir/test_source_utf8.vim
+++ b/src/testdir/test_source_utf8.vim
@@ -1,7 +1,10 @@
 " Test the :source! command
+source check.vim
 
 func Test_source_utf8()
   " check that sourcing a script with 0x80 as second byte works
+  " does not work correctly on BSD
+  CheckNotBSD
   new
   call setline(1, [':%s/àx/--à1234--/g', ':%s/Àx/--À1234--/g'])
   write! Xscript
@@ -31,6 +34,7 @@
 
 " Test for sourcing a file with CTRL-V's at the end of the line
 func Test_source_ctrl_v()
+    CheckNotBSD
     call writefile(['map __1 afirst',
 		\ 'map __2 asecond',
 		\ 'map __3 athird',
diff --git a/src/testdir/test_terminal.vim b/src/testdir/test_terminal.vim
index 43a9384..fb810e7 100644
--- a/src/testdir/test_terminal.vim
+++ b/src/testdir/test_terminal.vim
@@ -870,6 +870,7 @@
 endfunc
 
 func Test_terminal_composing_unicode()
+  CheckNotBSD
   let save_enc = &encoding
   set encoding=utf-8
 
diff --git a/src/testdir/test_utf8_comparisons.vim b/src/testdir/test_utf8_comparisons.vim
index 312925b..f3c86b4 100644
--- a/src/testdir/test_utf8_comparisons.vim
+++ b/src/testdir/test_utf8_comparisons.vim
@@ -86,6 +86,9 @@
 " test that g~ap changes one paragraph only.
 func Test_gap()
   new
-  call feedkeys("iabcd\n\ndefggg0g~ap", "tx")
+  " setup text
+  call feedkeys("iabcd\<cr>\<cr>defg", "tx")
+  " modify only first line
+  call feedkeys("gg0g~ap", "tx")
   call assert_equal(["ABCD", "", "defg"], getline(1,3))
 endfunc
diff --git a/src/version.c b/src/version.c
index d063809..7318a6a 100644
--- a/src/version.c
+++ b/src/version.c
@@ -738,6 +738,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2358,
+/**/
     2357,
 /**/
     2356,