void set_color(int bgcolor, int fgcolor) { char *afstr; char *abstr; char t[4096]; char *area; char *term; char bp[1024]; if ((term = my_get_env("TERM")) == NULL) { my_putstr_error("can't determine terminal\n"); exit(-1); } if (tgetent(bp, term) != 1) { my_putstr_error("problem with tgetent\n"); exit(-1); } area = t; afstr = xtgetstr("AF", &area); abstr = xtgetstr("AB", &area); if (tputs(tparm(afstr, fgcolor), 1, my_outc) == ERR) exit(-1); if (bgcolor != 0) if (tputs(tparm(abstr, bgcolor), 1, my_outc) == ERR) exit(-1); }
int rev_mode(char c) { char *rev; char *rev_end; rev = xtgetstr("so", NULL); rev_end = xtgetstr("se", NULL); if (rev == NULL || rev_end == NULL) return (-1); my_printf("%s%c%s", rev, c, rev_end); return (0); }
t_caps_str *get_variables(char **area, char **term, char bp[1024]) { t_caps_str *vars; vars = malloc(sizeof(*vars)); if ((*term = getenv("TERM")) == NULL) { my_printf("can't determine terminal\n"); exit(1); } if (tgetent(bp, *term) != 1) { my_printf("problem with tgetent\n"); exit(1); } vars->cm = xtgetstr("cm", area); vars->clr_scr = xtgetstr("cl", area); vars->cr = xtgetstr("cr", area); vars->up = xtgetstr("up", area); vars->doi = xtgetstr("do", area); vars->dl = xtgetstr("dl", area); vars->vi = xtgetstr("vi", area); vars->ve = xtgetstr("ve", area); return (vars); }
void underline(char *str) { char *usstr; char *uestr; char t[4096]; char *area; area = t; usstr = xtgetstr("us", &area); if (tputs(usstr, 1, my_outc) == ERR) exit(-1); my_putstr2(str); uestr = xtgetstr("ue", &area); if (tputs(uestr, 1, my_outc) == ERR) exit(-1); }
void video_inv(char *str) { char *sostr; char *sestr; char t[4096]; char *area; area = t; sostr = xtgetstr("so", &area); if (tputs(sostr, 1, my_outc) == ERR) exit(-1); my_putstr2(str); sestr = xtgetstr("se", &area); if (tputs(sestr, 1, my_outc) == ERR) exit(-1); }
int disable_underline(void) { char bp[1024]; char *term; char **area; char *cap; area = NULL; if ((term = getenv("TERM")) == NULL) { print_err("Cannot determine term\n"); return (-1); } if (tgetent(bp, term) != 1) { xfree(term); return (-1); } cap = xtgetstr("ue", area); if (!cap) { xfree(term); return (-1); } tputs(cap, 1, outc); return (0); }
void init_term(t_area *ar, char **argv, int argc) { extern char **environ; ar->term = cpy_from_env(environ, "TERM="); if (ar->term == NULL) { my_put_error(ERR_TERM); exit(EXIT_FAILURE); } x_tgetent(tgetent(ar->bp, ar->term)); ar->area = ar->t; ar->clstr = xtgetstr("cl", &(ar->area)); ar->cmstr = xtgetstr("cm", &(ar->area)); ar->sostr = xtgetstr("so", &(ar->area)); ar->sestr = xtgetstr("se", &(ar->area)); ar->usstr = xtgetstr("us", &(ar->area)); ar->uestr = xtgetstr("ue", &(ar->area)); ar->li = tgetnum("li"); ar->co = tgetnum("co"); tputs(ar->clstr, 1, my_outc); argc = make_argc(ar, argc); ar->ac = argc - 1; ar->res = malloc(argc * sizeof(*(ar->res))); x_malloc(ar->res, argc); init_size(ar, argv); my_arg_cpy(ar, argv, argc); }
char *main_menu(t_term *term) { char buf[3]; t_menu *menu; int nb_read; int xmenu; int nb_key; char *str; xmenu = 0; menu = xmalloc(sizeof(*menu) * 4); xtputs(xtgetstr("vi", &term->area), 1, my_outc); xtputs(term->clstr, 1, my_outc); init_menu(menu); while (1) { show_menu(menu, xmenu, 9, term); empty_buf(buf, 3); nb_read = xread(0, buf, 3); if (nb_read == 1 && (buf[0] == 27)) break; else if ((nb_read == 3) && (nb_key = test_key(term, buf[2]))) xmenu = move_mkey(nb_key, xmenu); else if ((nb_read == 1) && (buf[0] == 32)) { if ((str = main_smenu(term, xmenu, menu))) { xtputs(xtgetstr("ve", &term->area), 1, my_outc); free_menu(menu); return (str); } } } xtputs(xtgetstr("ve", &term->area), 1, my_outc); free_menu(menu); return (0); }
int reverse_v(void) { char bp[1024]; char *term; char **area; char *cap; area = NULL; if ((term = getenv("TERM")) == NULL) { print_err("Cannot determine term\n"); return (-1); } if (tgetent(bp, term) != 1) return (-1); cap = xtgetstr("so", area); if (!cap) return (-1); tputs(cap, 1, outc); return (0); }
void load_capacities(t_param *param, char *area, char t[4096]) { area = t; param->cap.clstr = xtgetstr("cl", &area); param->cap.kustr = xtgetstr("ku", &area); param->cap.kdstr = xtgetstr("kd", &area); param->cap.klstr = xtgetstr("kl", &area); param->cap.krstr = xtgetstr("kr", &area); param->cap.kbstr = xtgetstr("kb", &area); param->cap.dostr = xtgetstr("do", &area); param->cap.DOstr = xtgetstr("DO", &area); param->cap.upstr = xtgetstr("up", &area); param->cap.UPstr = xtgetstr("UP", &area); param->cap.lestr = xtgetstr("le", &area); param->cap.LEstr = xtgetstr("LE", &area); param->cap.ristr = xtgetstr("nd", &area); param->cap.RIstr = xtgetstr("RI", &area); param->cap.cestr = xtgetstr("ce", &area); param->cap.scstr = xtgetstr("sc", &area); param->cap.rcstr = xtgetstr("rc", &area); param->cap.cdstr = xtgetstr("cd", &area); param->cap.ksstr = xtgetstr("ks", &area); param->cap.cols = tgetnum("co"); param->cap.line = tgetnum("li"); }
void init_struct(t_term *term, char *prompt) { term->area = term->t; term->x_prompt = my_strlen(prompt); term->x = term->x_prompt; term->x_max = term->x; term->y = 0; term->y_prompt = term->y; term->y_max = term->y; term->crstr = xtgetstr("cr", &term->area); term->cdstr = xtgetstr("cd", &term->area); term->clstr = xtgetstr("cl", &term->area); term->cmstr = xtgetstr("cm", &term->area); term->rcstr = xtgetstr("rc", &term->area); term->scstr = xtgetstr("sc", &term->area); term->blstr = xtgetstr("bl", &term->area); term->lestr = xtgetstr("le", &term->area); term->dostr = xtgetstr("do", &term->area); term->ndstr = xtgetstr("nd", &term->area); term->upstr = xtgetstr("up", &term->area); }