Save heat, unreadTotal, unreadWarm
parent
fbdfb36085
commit
0d23f8f1b8
16
ui.c
16
ui.c
|
@ -950,7 +950,8 @@ void uiRead(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static const time_t Signatures[] = {
|
static const time_t Signatures[] = {
|
||||||
0x6C72696774616301,
|
0x6C72696774616301, // no heat, unreadTotal, unreadWarm
|
||||||
|
0x6C72696774616302,
|
||||||
};
|
};
|
||||||
|
|
||||||
static size_t signatureVersion(time_t signature) {
|
static size_t signatureVersion(time_t signature) {
|
||||||
|
@ -971,10 +972,13 @@ int uiSave(const char *name) {
|
||||||
FILE *file = dataOpen(name, "w");
|
FILE *file = dataOpen(name, "w");
|
||||||
if (!file) return -1;
|
if (!file) return -1;
|
||||||
|
|
||||||
if (writeTime(file, Signatures[0])) return -1;
|
if (writeTime(file, Signatures[1])) return -1;
|
||||||
for (size_t num = 0; num < windows.len; ++num) {
|
for (size_t num = 0; num < windows.len; ++num) {
|
||||||
const struct Window *window = windows.ptrs[num];
|
const struct Window *window = windows.ptrs[num];
|
||||||
if (writeString(file, idNames[window->id])) return -1;
|
if (writeString(file, idNames[window->id])) return -1;
|
||||||
|
if (writeTime(file, window->heat)) return -1;
|
||||||
|
if (writeTime(file, window->unreadTotal)) return -1;
|
||||||
|
if (writeTime(file, window->unreadWarm)) return -1;
|
||||||
for (size_t i = 0; i < BufferCap; ++i) {
|
for (size_t i = 0; i < BufferCap; ++i) {
|
||||||
time_t time = bufferTime(&window->buffer, i);
|
time_t time = bufferTime(&window->buffer, i);
|
||||||
const char *line = bufferLine(&window->buffer, i);
|
const char *line = bufferLine(&window->buffer, i);
|
||||||
|
@ -1017,12 +1021,17 @@ void uiLoad(const char *name) {
|
||||||
fclose(file);
|
fclose(file);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
signatureVersion(signature);
|
size_t version = signatureVersion(signature);
|
||||||
|
|
||||||
char *buf = NULL;
|
char *buf = NULL;
|
||||||
size_t cap = 0;
|
size_t cap = 0;
|
||||||
while (0 < readString(file, &buf, &cap)) {
|
while (0 < readString(file, &buf, &cap)) {
|
||||||
struct Window *window = windows.ptrs[windowFor(idFor(buf))];
|
struct Window *window = windows.ptrs[windowFor(idFor(buf))];
|
||||||
|
if (version > 0) {
|
||||||
|
window->heat = readTime(file);
|
||||||
|
window->unreadTotal = readTime(file);
|
||||||
|
window->unreadWarm = readTime(file);
|
||||||
|
}
|
||||||
for (;;) {
|
for (;;) {
|
||||||
time_t time = readTime(file);
|
time_t time = readTime(file);
|
||||||
if (!time) break;
|
if (!time) break;
|
||||||
|
@ -1031,6 +1040,7 @@ void uiLoad(const char *name) {
|
||||||
}
|
}
|
||||||
reflow(window);
|
reflow(window);
|
||||||
waddch(window->pad, '\n');
|
waddch(window->pad, '\n');
|
||||||
|
window->unreadLines++;
|
||||||
}
|
}
|
||||||
|
|
||||||
free(buf);
|
free(buf);
|
||||||
|
|
Loading…
Reference in New Issue