summary refs log tree commit diff
path: root/ui.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--ui.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/ui.c b/ui.c
index 0ae1019..c91ca04 100644
--- a/ui.c
+++ b/ui.c
@@ -978,7 +978,8 @@ void uiRead(void) {
 static const time_t Signatures[] = {
 	0x6C72696774616301, // no heat, unread, unreadWarm
 	0x6C72696774616302, // no self.pos
-	0x6C72696774616303,
+	0x6C72696774616303, // no buffer line heat
+	0x6C72696774616304,
 };
 
 static size_t signatureVersion(time_t signature) {
@@ -999,7 +1000,7 @@ int uiSave(const char *name) {
 	FILE *file = dataOpen(name, "w");
 	if (!file) return -1;
 
-	if (writeTime(file, Signatures[2])) return -1;
+	if (writeTime(file, Signatures[3])) return -1;
 	if (writeTime(file, self.pos)) return -1;
 	for (uint num = 0; num < windows.len; ++num) {
 		const struct Window *window = windows.ptrs[num];
@@ -1011,6 +1012,7 @@ int uiSave(const char *name) {
 			struct Line line = bufferLine(&window->buffer, i);
 			if (!line.str) continue;
 			if (writeTime(file, line.time)) return -1;
+			if (writeTime(file, line.heat)) return -1;
 			if (writeString(file, line.str)) return -1;
 		}
 		if (writeTime(file, 0)) return -1;
@@ -1066,8 +1068,9 @@ void uiLoad(const char *name) {
 		for (;;) {
 			time_t time = readTime(file);
 			if (!time) break;
+			enum Heat heat = (version > 2 ? readTime(file) : Cold);
 			readString(file, &buf, &cap);
-			bufferPush(&window->buffer, Cold, time, buf);
+			bufferPush(&window->buffer, heat, time, buf);
 		}
 		reflow(window);
 		waddch(window->pad, '\n');
Check width of entire next word including codesJune McEnroe This results in a tiny bit of premature wrapping for color codes, but that isn't a problem. 2018-09-14Remove word handling from formatParseJune McEnroe 2018-09-14Apply consecutive formatting codes at onceJune McEnroe Fixes the failing splits test. 2018-09-14Add tests for formatParseJune McEnroe With one currently failing so you know they're worth it. 2018-09-13Preview with nick in input windowJune McEnroe 2018-09-13Never send PRIVMSG to TagStatus or TagVerboseJune McEnroe 2018-09-13Move color selection to format.cJune McEnroe 2018-09-13Fix len for format->split at end of stringJune McEnroe 2018-09-13Avoid uninitialized x in uiReadJune McEnroe 2018-09-13Add IRCDefault to colors enumJune McEnroe 2018-09-13Return a format->split even at the end of the stringJune McEnroe 2018-09-13Fix weird tab-complete after commaJune McEnroe I have no idea why I did this. 2018-09-13Rewrite UI againJune McEnroe The persistent topic is gone and the status line is now at the top. The status formatting still needs to be reworked. I also want to try showing the nick in the input window so it really looks like your next message. 2018-09-12Add note about C-oJune McEnroe Why are there so few well usable ctrl key bindings? 2018-09-12Use formatParse split to position input cursorJune McEnroe 2018-09-12Factor out IRC formatting parsingJune McEnroe 2018-09-11Add /help equivalent to /manJune McEnroe 2018-09-11Don't render every PM as a pingJune McEnroe 2018-09-11Add urlOpenMatchJune McEnroe 2018-09-10Depend on man.sh for chroot.tar targetJune McEnroe 2018-09-10Set LESSSECURE=1 in man.shJune McEnroe Ridiculous. 2018-09-10Add /man commandJune McEnroe 2018-09-10Install man page in chrootJune McEnroe 2018-09-10Install man pageJune McEnroe 2018-09-10Split keys into subsections and document colorsJune McEnroe 2018-09-10Add "blank" lines to chatte.1June McEnroe 2018-09-10Document key bindings in chatte.1June McEnroe 2018-09-08Document slash commands in chatte.1June McEnroe