summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorC. McEnroe2020-03-31 14:12:43 -0400
committerC. McEnroe2020-03-31 14:12:43 -0400
commitfcb6e2909f5211c24778741a2404b763914f9f99 (patch)
treeb126e43760668653ba572140d06714d4e5cb8591
parentbfa106b9a0475348926ce6002234f22ed5fe1977 (diff)
Save and load buffer line heat
-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');