static bool save_window_vline(FILE *file, WINDOW *left, WINDOW *right, int y, char *buf, size_t bufsize) { int read1 = mvwinnstr(left, y, 0, buf, bufsize); int read2 = read1 == ERR ? ERR : mvwinnstr(right, y, 0, buf + read1 + 1, bufsize - read1 - 1); if (read2 == ERR) return false; buf[read1] = '|'; buf = string_trim_end(buf); return fprintf(file, "%s\n", string_trim_end(buf)) == strlen(buf) + 1; }
char * string_trim(char *name) { while (isspace(*name)) name++; return string_trim_end(name); }
static bool save_window_line(FILE *file, WINDOW *win, int y, char *buf, size_t bufsize) { int read = mvwinnstr(win, y, 0, buf, bufsize); const char *out = read == ERR ? "" : string_trim_end(buf); return read == ERR ? false : fprintf(file, "%s\n", out) == strlen(out) + 1; }