send events for option state changes
diff --git a/libtelnet.c b/libtelnet.c
index 2054803..212bf0f 100644
--- a/libtelnet.c
+++ b/libtelnet.c
@@ -253,23 +253,27 @@
 		case RFC1143_WANTNO:
 			q.him = RFC1143_NO;
 			_set_rfc1143(telnet, q);
+			_event(telnet, TELNET_EV_WONT, cmd, telopt, 0, 0);
 			_error(telnet, __LINE__, __func__, TELNET_EPROTOCOL, 0,
 					"DONT answered by WILL");
 			break;
 		case RFC1143_WANTNO_OP:
 			q.him = RFC1143_YES;
 			_set_rfc1143(telnet, q);
+			_event(telnet, TELNET_EV_WILL, cmd, telopt, 0, 0);
 			_error(telnet, __LINE__, __func__, TELNET_EPROTOCOL, 0,
 					"DONT answered by WILL");
 			break;
 		case RFC1143_WANTYES:
 			q.him = RFC1143_YES;
 			_set_rfc1143(telnet, q);
+			_event(telnet, TELNET_EV_WILL, cmd, telopt, 0, 0);
 			break;
 		case RFC1143_WANTYES_OP:
 			q.him = RFC1143_WANTNO;
 			_set_rfc1143(telnet, q);
 			telnet_send_telopt(telnet, TELNET_DONT, telopt);
+			_event(telnet, TELNET_EV_WILL, cmd, telopt, 0, 0);
 			break;
 		}
 		break;
@@ -283,20 +287,17 @@
 			q.him = RFC1143_NO;
 			_set_rfc1143(telnet, q);
 			telnet_send_telopt(telnet, TELNET_DONT, telopt);
-			_event(telnet, TELNET_EV_WONT, 0, telopt,
-					0, 0);
+			_event(telnet, TELNET_EV_WONT, 0, telopt, 0, 0);
 			break;
 		case RFC1143_WANTNO:
 			q.him = RFC1143_NO;
 			_set_rfc1143(telnet, q);
-			_event(telnet, TELNET_EV_WONT, 0, telopt,
-					0, 0);
+			_event(telnet, TELNET_EV_WONT, 0, telopt, 0, 0);
 			break;
 		case RFC1143_WANTNO_OP:
 			q.him = RFC1143_WANTYES;
 			_set_rfc1143(telnet, q);
-			_event(telnet, TELNET_EV_DO, 0, telopt,
-					0, 0);
+			_event(telnet, TELNET_EV_DO, 0, telopt, 0, 0);
 			break;
 		case RFC1143_WANTYES:
 		case RFC1143_WANTYES_OP:
@@ -322,23 +323,27 @@
 		case RFC1143_WANTNO:
 			q.us = RFC1143_NO;
 			_set_rfc1143(telnet, q);
+			_event(telnet, TELNET_EV_DONT, cmd, telopt, 0, 0);
 			_error(telnet, __LINE__, __func__, TELNET_EPROTOCOL, 0,
 					"WONT answered by DO");
 			break;
 		case RFC1143_WANTNO_OP:
 			q.us = RFC1143_YES;
 			_set_rfc1143(telnet, q);
+			_event(telnet, TELNET_EV_DO, cmd, telopt, 0, 0);
 			_error(telnet, __LINE__, __func__, TELNET_EPROTOCOL, 0,
 					"WONT answered by DO");
 			break;
 		case RFC1143_WANTYES:
 			q.us = RFC1143_YES;
 			_set_rfc1143(telnet, q);
+			_event(telnet, TELNET_EV_DO, cmd, telopt, 0, 0);
 			break;
 		case RFC1143_WANTYES_OP:
 			q.us = RFC1143_WANTNO;
 			_set_rfc1143(telnet, q);
 			telnet_send_telopt(telnet, TELNET_WONT, telopt);
+			_event(telnet, TELNET_EV_DO, cmd, telopt, 0, 0);
 			break;
 		}
 		break;