static int make_char_printable(char **buf, size_t c) { if (c == '\0') return zasprintf(buf, "^@"); else if (c <= '\32') return zasprintf(buf, "^%c", 'A' + c - 1); else return zasprintf(buf, "\\%o", c & 0xff); }
static char *make_screen_pos(Window *wp, char **buf) { Point pt = window_pt(wp); if (wp->bp->num_lines <= wp->eheight && wp->topdelta == pt.n) zasprintf(buf, "All"); else if (pt.n == wp->topdelta) zasprintf(buf, "Top"); else if (pt.n + (wp->eheight - wp->topdelta) > wp->bp->num_lines) zasprintf(buf, "Bot"); else zasprintf(buf, "%2d%%", (int)((float)pt.n / wp->bp->num_lines * 100)); return *buf; }
void variableSetNumber(le **varlist, char *key, int value) { char *buf; zasprintf(&buf, "%d", value); variableSetString(varlist, key, buf); free(buf); }