MEDIUM: Make 'option forceclose' actually warn

It is deprecated since 315b39c3914f4c2301ce19a93564566caa2ede50 (1.9-dev),
but only was deprecated in the docs.

Make it warn when being used and remove it from the docs.
diff --git a/doc/configuration.txt b/doc/configuration.txt
index f120279..8aa9f2c 100644
--- a/doc/configuration.txt
+++ b/doc/configuration.txt
@@ -2342,7 +2342,6 @@
 option contstats                     (*)  X          X         X         -
 option dontlog-normal                (*)  X          X         X         -
 option dontlognull                   (*)  X          X         X         -
-option forceclose       (deprecated) (*)  X          X         X         X
 -- keyword -------------------------- defaults - frontend - listen -- backend -
 option forwardfor                         X          X         X         X
 option http-buffer-request           (*)  X          X         X         X
@@ -6047,13 +6046,6 @@
              section 8 about logging.
 
 
-option forceclose (deprecated)
-no option forceclose (deprecated)
-  This is an alias for "option httpclose". Thus this option is deprecated.
-
-  See also : "option httpclose" and "option http-pretend-keepalive"
-
-
 option forwardfor [ except <network> ] [ header <name> ] [ if-none ]
   Enable insertion of the X-Forwarded-For header to requests sent to servers
   May be used in sections :   defaults | frontend | listen | backend
diff --git a/examples/haproxy.vim b/examples/haproxy.vim
index 728a1c5..c13b2c0 100644
--- a/examples/haproxy.vim
+++ b/examples/haproxy.vim
@@ -82,7 +82,7 @@
 syn keyword hapLen       contained len
 syn keyword hapGLog      contained global
 syn keyword hapMode      contained http tcp health
-syn keyword hapOption    contained abortonclose allbackups checkcache clitcpka dontlognull forceclose forwardfor
+syn keyword hapOption    contained abortonclose allbackups checkcache clitcpka dontlognull forwardfor
 syn keyword hapOption    contained httpchk httpclose httplog keepalive logasap persist srvtcpka ssl-hello-chk
 syn keyword hapOption    contained tcplog tcpka tcpsplice
 syn keyword hapOption    contained except skipwhite nextgroup=hapIPv4Mask
diff --git a/include/types/global.h b/include/types/global.h
index 2df0da9..091506f 100644
--- a/include/types/global.h
+++ b/include/types/global.h
@@ -251,6 +251,7 @@
 #define WARN_CLITO_DEPRECATED       0x00000008
 #define WARN_SRVTO_DEPRECATED       0x00000010
 #define WARN_CONTO_DEPRECATED       0x00000020
+#define WARN_FORCECLOSE_DEPRECATED  0x00000040
 
 /* to be used with warned and WARN_* */
 static inline int already_warned(unsigned int warning)
diff --git a/src/cfgparse-listen.c b/src/cfgparse-listen.c
index 7760d9c..9e2f44c 100644
--- a/src/cfgparse-listen.c
+++ b/src/cfgparse-listen.c
@@ -2160,6 +2160,12 @@
 		 * sections).
 		 */
 		if (strcmp(args[1], "httpclose") == 0 || strcmp(args[1], "forceclose") == 0) {
+			if (strcmp(args[1], "forceclose") == 0) {
+				if (!already_warned(WARN_FORCECLOSE_DEPRECATED))
+					ha_warning("parsing [%s:%d]: keyword '%s' is deprecated in favor of 'httpclose', and will not be supported by future versions.\n",
+					  file, linenum, args[1]);
+				err_code |= ERR_WARN;
+			}
 			if (alertif_too_many_args_idx(0, 1, file, linenum, args, &err_code))
 				goto out;
 			if (kwm == KWM_STD) {