Exemple #1
0
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);
}
Exemple #2
0
Fichier : char.c Projet : mabm/42sh
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);
}
Exemple #4
0
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);
}
Exemple #5
0
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);
}
Exemple #6
0
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);
}
Exemple #7
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);
}
Exemple #8
0
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);
}
Exemple #9
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);
}
Exemple #10
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");
}
Exemple #11
0
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);
}