draw_formatted(struct view *view, enum line_type type, const char *format, ...) { char text[SIZEOF_STR]; int retval; FORMAT_BUFFER(text, sizeof(text), format, retval, TRUE); return retval >= 0 ? draw_text(view, type, text) : VIEW_MAX_LEN(view) <= 0; }
enum status_code success(const char *msg, ...) { int retval; FORMAT_BUFFER(status_custom_message, sizeof(status_custom_message), msg, retval, true); status_success_message = true; return SUCCESS; }
enum status_code error(const char *msg, ...) { int retval; FORMAT_BUFFER(status_custom_message, sizeof(status_custom_message), msg, retval, true); status_success_message = false; return ERROR_CUSTOM_MESSAGE; }
string_nformat(char *buf, size_t bufsize, size_t *bufpos, const char *fmt, ...) { size_t pos = bufpos ? *bufpos : 0; int retval; FORMAT_BUFFER(buf + pos, bufsize - pos, fmt, retval, false); if (bufpos && retval > 0) *bufpos = pos + retval; return pos >= bufsize ? false : true; }
bool io_printf(struct io *io, const char *fmt, ...) { char buf[SIZEOF_STR] = ""; int retval; FORMAT_BUFFER(buf, sizeof(buf), fmt, retval, FALSE); if (retval < 0) { io->error = ENAMETOOLONG; return FALSE; } return io_write(io, buf, retval); }
static bool check_file_mtime(time_t *last_modified, const char *path_fmt, ...) { char path[SIZEOF_STR]; struct stat stat; int retval; bool has_changed = !!*last_modified; FORMAT_BUFFER(path, sizeof(path), path_fmt, retval, false); if (retval < 0 || lstat(path, &stat) < 0 || stat.st_mtime <= *last_modified) return false; *last_modified = stat.st_mtime; return has_changed; }
bool io_open(struct io *io, const char *fmt, ...) { char name[SIZEOF_STR] = ""; int retval; io_init(io); FORMAT_BUFFER(name, sizeof(name), fmt, retval, FALSE); if (retval < 0) { io->error = ENAMETOOLONG; return FALSE; } io->pipe = *name ? open(name, O_RDONLY) : dup(STDIN_FILENO); if (io->pipe == -1) io->error = errno; return io->pipe != -1; }
void report(const char *msg, ...) { struct view *view = display[current_view]; va_list args; if (!view) { char buf[SIZEOF_STR]; int retval; FORMAT_BUFFER(buf, sizeof(buf), msg, retval, TRUE); die("%s", buf); } va_start(args, msg); if (update_status_window(view, msg, args)) wnoutrefresh(status_win); va_end(args); update_view_title(view); }
/* Update status and title window. */ void report(const char *msg, ...) { struct view *view = display[current_view]; if (input_mode) return; if (!view) { char buf[SIZEOF_STR]; int retval; FORMAT_BUFFER(buf, sizeof(buf), msg, retval, TRUE); die("%s", buf); } if (!status_empty || *msg) { va_list args; va_start(args, msg); wmove(status_win, 0, 0); if (view->has_scrolled && use_scroll_status_wclear) wclear(status_win); if (*msg) { vwprintw(status_win, msg, args); status_empty = FALSE; } else { status_empty = TRUE; } wclrtoeol(status_win); wnoutrefresh(status_win); va_end(args); } update_view_title(view); }