Commit Diff


commit - e08b784c411c8c5c9e905106d00e1352f102c893
commit + b72c076563d1642eda3aaa0c38169b674e3d9725
blob - 9cceb02c58723fda2af8a479d1c57b2be97b9518
blob + 5e55431278797c63ebc65903c651f19a3c4f01a7
--- control.c
+++ control.c
@@ -366,6 +366,7 @@ control_dispatch_imsg(int fd, short event, void *bula)
 			consume = new_mode(consume, mode.consume);
 			repeat_all = new_mode(repeat_all, mode.repeat_all);
 			repeat_one = new_mode(repeat_one, mode.repeat_one);
+			main_send_status(&c->iev);
 			control_notify(imsg.hdr.type);
 			break;
 		case IMSG_CTL_BEGIN:
blob - ada376facd0e326567edbcf1bc90470bbef2b66c
blob + 3d260c2144cc3150d55ccd1b62ee746513d5d6c0
--- ctl.c
+++ ctl.c
@@ -419,8 +419,12 @@ ctlaction(struct parse_result *res)
 		    path, sizeof(path));
 		break;
 	case MODE:
+		done = 0;
 		imsg_compose(ibuf, IMSG_CTL_MODE, 0, 0, -1,
 		    &res->mode, sizeof(res->mode));
+		res->status_format = "mode:oneline";
+		if (verbose)
+			res->status_format = "mode";
 		break;
 	case MONITOR:
 		done = 0;
@@ -506,6 +510,7 @@ ctlaction(struct parse_result *res)
 			case NEXT:
 			case PREV:
 			case JUMP:
+			case MODE:
 				if (imsg.hdr.type != IMSG_CTL_STATUS)
 					fatalx("invalid message %d",
 					    imsg.hdr.type);