yterm

commit f7d1e5dd69853a446a976a3a0fb72e9b24830e28

Author: mesyeti <mesyeti@mesyeti.uk>

fix CSI 0 m

 source/app.c | 9 +++++++++
 source/app.h | 1 +
 source/interpreter/vt100.c | 3 +++


diff --git a/source/app.c b/source/app.c
index 317dd975ef735ea6633ffc705b1dfa0a1678cc5a..380ae20bebd39230d6490ae5bb82e027a61355e6 100644
--- a/source/app.c
+++ b/source/app.c
@@ -31,6 +31,7 @@
 	app.bindNewTab  = Input_AddKeyBind(KEY_LCTRL, KEY_LSHIFT, 0, KEY_T);
 	app.bindPrevTab = Input_AddKeyBind(KEY_LCTRL, 0,          0, KEY_PAGE_UP);
 	app.bindNextTab = Input_AddKeyBind(KEY_LCTRL, 0,          0, KEY_PAGE_DOWN);
+	app.bindReport  = Input_AddKeyBind(KEY_LCTRL, KEY_LSHIFT, 0, KEY_R);
 }
 
 static Pane* GetSelectedPane(Pane* pane) {
@@ -68,6 +69,14 @@ 	}
 	if (Input_MatchBind(app.bindNextTab, e)) {
 		app.tabSel  = (app.tabSel + 1) % app.tabNum;
 		app.paneSel = GetSelectedPane(&app.tabs[app.tabSel]);
+		return true;
+	}
+	if (Input_MatchBind(app.bindReport, e)) {
+		Terminal* term = &app.paneSel->v.terminal;
+
+		Log("REPORT");
+		Log("======");
+		Log("Cursor: %d, %d\n", term->cursor.x, term->cursor.y);
 		return true;
 	}
 




diff --git a/source/app.h b/source/app.h
index b2c8561dcef4562dc841049663cbe7fd042c96a3..27dffed7b82e9fd32897c7d387e268ef7e26dcde 100644
--- a/source/app.h
+++ b/source/app.h
@@ -20,6 +20,7 @@ 	// binds
 	Input_BindID bindNewTab;
 	Input_BindID bindPrevTab;
 	Input_BindID bindNextTab;
+	Input_BindID bindReport;
 } App;
 
 extern App app;




diff --git a/source/interpreter/vt100.c b/source/interpreter/vt100.c
index 992142da03ce765f547d0d0ab0d71200b4c14e55..62c82943b77502c5325461757f40124275be8f2d 100644
--- a/source/interpreter/vt100.c
+++ b/source/interpreter/vt100.c
@@ -330,10 +330,13 @@ 		case 'm': {
 			for (size_t i = 0; i < num; ++ i) {
 				int part = atoi(parts[i]);
 
+				// printf("CSI %d m\n", part);
+
 				switch (part) {
 					case 0: {
 						terminal->attr.fgMode = BUF_DEFAULT;
 						terminal->attr.bgMode = BUF_DEFAULT;
+						terminal->attr.invert = false;
 						break;
 					}
 					case 1: break; // TODO: bold