patch 9.0.1820: Rexx files may not be recognised

Problem:  Rexx files may not be recognised
Solution: Add shebang detection and improve disambiguation of *.cls
	  files

closes: #12951

Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Doug Kearns <dougkearns@gmail.com>
diff --git a/src/testdir/test_filetype.vim b/src/testdir/test_filetype.vim
index aff66d8..8285fa1 100644
--- a/src/testdir/test_filetype.vim
+++ b/src/testdir/test_filetype.vim
@@ -945,6 +945,8 @@
     forth:  [['#!/path/gforth']],
     icon:   [['#!/path/icon']],
     crystal: [['#!/path/crystal']],
+    rexx:   [['#!/path/rexx'],
+            ['#!/path/regina']],
   }
 enddef
 
@@ -2045,7 +2047,22 @@
 
   " Rexx
 
-  call writefile(['# rexx'], 'Xfile.cls')
+  call writefile(['#!/usr/bin/rexx'], 'Xfile.cls')
+  split Xfile.cls
+  call assert_equal('rexx', &filetype)
+  bwipe!
+
+  call writefile(['#!/usr/bin/regina'], 'Xfile.cls')
+  split Xfile.cls
+  call assert_equal('rexx', &filetype)
+  bwipe!
+
+  call writefile(['/* Comment */'], 'Xfile.cls')
+  split Xfile.cls
+  call assert_equal('rexx', &filetype)
+  bwipe!
+
+  call writefile(['::class Foo subclass Bar public'], 'Xfile.cls')
   split Xfile.cls
   call assert_equal('rexx', &filetype)
   bwipe!
diff --git a/src/version.c b/src/version.c
index 8862ad4..c23c257 100644
--- a/src/version.c
+++ b/src/version.c
@@ -700,6 +700,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1820,
+/**/
     1819,
 /**/
     1818,