static void draw_minibuf_read (const char *prompt, const char *value, size_t prompt_len, char *match, size_t pointo) { int margin = 1, n = 0; term_minibuf_write (prompt); if (prompt_len + pointo + 1 >= term_width ()) { margin++; term_addch ('$'); n = pointo - pointo % (term_width () - prompt_len - 2); } term_addnstr (value + n, MIN (term_width () - prompt_len - margin, strlen (value) - n)); term_addnstr (match, strlen (match)); if (strlen (value + n) >= term_width () - prompt_len - margin) { term_move (term_height () - 1, term_width () - 1); term_addch ('$'); } term_move (term_height () - 1, prompt_len + margin - 1 + pointo % (term_width () - prompt_len - margin)); term_refresh (); }
static void draw_status_line(size_t line, Window *wp) { size_t i; char *buf, *eol_type; Point pt = window_pt(wp); astr as, bs; term_attrset(1, FONT_REVERSE); term_move(line, 0); for (i = 0; i < wp->ewidth; ++i) term_addch('-'); if (cur_bp->eol == coding_eol_cr) eol_type = "(Mac)"; else if (cur_bp->eol == coding_eol_crlf) eol_type = "(DOS)"; else eol_type = ":"; term_move(line, 0); bs = astr_afmt(astr_new(), "(%d,%d)", pt.n+1, get_goalc_wp(wp)); as = astr_afmt(astr_new(), "--%s%2s %-15s %s %-9s (Text", eol_type, make_mode_line_flags(wp), wp->bp->name, make_screen_pos(wp, &buf), astr_cstr(bs)); free(buf); astr_delete(bs); if (wp->bp->flags & BFLAG_AUTOFILL) astr_cat_cstr(as, " Fill"); if (wp->bp->flags & BFLAG_OVERWRITE) astr_cat_cstr(as, " Ovwrt"); if (thisflag & FLAG_DEFINING_MACRO) astr_cat_cstr(as, " Def"); if (wp->bp->flags & BFLAG_ISEARCH) astr_cat_cstr(as, " Isearch"); astr_cat_char(as, ')'); term_addnstr(astr_cstr(as), min(term_width(), astr_len(as))); astr_delete(as); term_attrset(1, FONT_NORMAL); }