patch 8.2.4744: a terminal window can't use the bell

Problem:    A terminal window can't use the bell.
Solution:   Add bell support for the terminal window. (closes #10178)
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index ddd5af0..2ed4a8f 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1265,6 +1265,7 @@
 	separated list of items. For each item that is present, the bell
 	will be silenced. This is most useful to specify specific events in
 	insert mode to be silenced.
+	You can also make it flash by using 'visualbell'.
 
 	item	    meaning when present	~
 	all	    All events.
@@ -1290,6 +1291,7 @@
 	register    Unknown register after <C-R> in |Insert-mode|.
 	shell	    Bell from shell output |:!|.
 	spell	    Error happened on spell suggest.
+	term	    Bell from |:terminal| output.
 	wildmode    More matches in |cmdline-completion| available
 		    (depends on the 'wildmode' setting).
 
diff --git a/src/gui_w32.c b/src/gui_w32.c
index d1cc06d..35cb2d2 100644
--- a/src/gui_w32.c
+++ b/src/gui_w32.c
@@ -1696,7 +1696,7 @@
     void
 gui_mch_beep(void)
 {
-    MessageBeep(MB_OK);
+    MessageBeep((UINT)-1);
 }
 /*
  * Invert a rectangle from row r, column c, for nr rows and nc columns.
diff --git a/src/option.h b/src/option.h
index 4c583a4..936f260 100644
--- a/src/option.h
+++ b/src/option.h
@@ -451,7 +451,8 @@
 #define BO_REG		0x8000
 #define BO_SH		0x10000
 #define BO_SPELL	0x20000
-#define BO_WILD		0x40000
+#define BO_TERM		0x40000
+#define BO_WILD		0x80000
 
 #ifdef FEAT_WILDIGN
 EXTERN char_u	*p_bsk;		// 'backupskip'
diff --git a/src/optionstr.c b/src/optionstr.c
index fd72da4..2accd3d 100644
--- a/src/optionstr.c
+++ b/src/optionstr.c
@@ -20,7 +20,7 @@
 				 "copy", "ctrlg", "error", "esc", "ex",
 				 "hangul", "insertmode", "lang", "mess",
 				 "showmatch", "operator", "register", "shell",
-				 "spell", "wildmode", NULL};
+				 "spell", "term", "wildmode", NULL};
 static char *(p_nf_values[]) = {"bin", "octal", "hex", "alpha", "unsigned", NULL};
 static char *(p_ff_values[]) = {FF_UNIX, FF_DOS, FF_MAC, NULL};
 #ifdef FEAT_CRYPT
diff --git a/src/terminal.c b/src/terminal.c
index b6efb49..9f9e84a 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -3385,12 +3385,22 @@
     limit_scrollback(term, &term->tl_scrollback, TRUE);
 }
 
+/*
+ * Called when the terminal wants to ring the system bell.
+ */
+    static int
+handle_bell(void *user UNUSED)
+{
+    vim_beep(BO_SH);
+    return 0;
+}
+
 static VTermScreenCallbacks screen_callbacks = {
   handle_damage,	// damage
   handle_moverect,	// moverect
   handle_movecursor,	// movecursor
   handle_settermprop,	// settermprop
-  NULL,			// bell
+  handle_bell,		// bell
   handle_resize,	// resize
   handle_pushline,	// sb_pushline
   NULL			// sb_popline
diff --git a/src/version.c b/src/version.c
index 5c8bd2a..584410a 100644
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    4744,
+/**/
     4743,
 /**/
     4742,