Exemple #1
0
/**
** @brief               Gets builtin echo parameters.
** @param argv          Input arguments values.
** @param opt           Option structure.
** @return              Return the return value of get_argc.
*/
static inline int       echo_get_opt(char                     **argv,
                                     struct s_echo_opt        *opt)
{
  int                   i = 0;
  int                   j = 0;

  for (i = 1; i < get_argc(argv); i++)
  {
      if (argv[i][0] == '-')
      {
          for (j = 1;
               argv[i][j] == 'e' || argv[i][j] == 'n' || argv[i][j] == 'E';
               j++)
          {
              if (argv[i][j] == 'e')
                opt->eflag = true;
              if (argv[i][j] == 'n')
                opt->nflag = true;
              if (argv[i][j] == 'E')
                opt->eeflag = true;
          }
          if ((argv[i][j] != '\0') || (j == 1))
              break;
      }
      else
        break;
  }
  opt->dec = i;

  return (get_argc(argv));
}
Exemple #2
0
int ssds_field_data(struct db_class *db_class, int fd, int num)
{
  int ret;
  char **argv;
  char *myargv[16];
  int argc;
  char rbuf[132];
  char sbuf[132];
  struct db_field * field;

  field = db_class->fields[num];

  argv = myargv;
  sprintf(sbuf,"msg 5678:class:%s:action:get_field_num:num:%d:",
	  db_class->name,num);
  ret = ssds_send(fd, sbuf, rbuf);
  argc = get_argc(rbuf, argv, 16);
  get_arg_char(argc, argv,"field", field->name, 32);
  ret = get_arg_int(argc, argv,"id", &field->id);
  if (ret == 0) {
    printf(" ..  Client field data class name (%s) id %d field %s (id %d)\n",
	   db_class->name, db_class->id,
	   field->name, field->id);
  }
  return ret;
}
Exemple #3
0
/**
** @brief               Prints all echo arguments.
** @param opt           Echo options structure.
** @param argv          Input arguments values.
** @param optind        Input options.
** @param builtin_fd    IOs streams.
** @return              Returns the return value of printing, 0 if success.
*/
static inline int       print_all(struct s_echo_opt           *opt,
                                  char                        **argv,
                                  int                         optind,
                                  s_builtin_fd                *builtin_fd)
{
  int                   i;
  int                   argc;

  argc = get_argc(argv);

  if (opt->eflag == false)
  {
    for (i = optind; i < argc - 1; i++)
      fprintf(builtin_fd->fout, "%s ", argv[i]);
    if (argv[i])
      fprintf(builtin_fd->fout, "%s", argv[i]);
  }
  else
  {
    for (i = optind; i < argc - 1; i++)
    {
      if (print_escaped(argv[i], builtin_fd) == -1)
        return (-1);
      fprintf(builtin_fd->fout, " ");
    }
    if (argv[i])
      if (print_escaped(argv[i], builtin_fd) == -1)
        return (-1);
  }
  return (0);
}
Exemple #4
0
/*
 * used for gv.0.0.0 etc
 */
int ssds_item_keyx(int fd, char *tok, char *sp, char *key)
{
  int ret;
  char **argv;
  char *myargv[16];
  int argc;
  int len;
  char rbuf[256];
  char sbuf[256];

  argv = myargv;

  /* copy most of the token miss out leading and trailing '@' */
  /* lead chars skipped already */
  strcpy(rbuf, tok);
  //printf("<br> new rbuf 1 (%s)\n",rbuf);
  //return 0;
  len = strlen(rbuf);
  rbuf[len-2]=0;
  //printf("<br> new rbuf 2 (%s)\n",rbuf);
  //return 0;
  sprintf(sbuf,"msg 5678:action:%s:", rbuf);
  //printf("<br>action [%s] key [%s]", sbuf , key);
  ret = ssds_send(fd, sbuf, rbuf);
  //printf("<br>action rbuf [%s] key [%s]", rbuf , key);
  argc = get_argc(rbuf, argv, 16);
  /* copy the key back */

  ret = 0;
  ret = get_arg_char(argc, argv, key, sp, 32);
  //printf("<br>action rbuf [%s] key [%s] ret %d sp %s", rbuf , key, ret , sp);
  return ret;
}
Exemple #5
0
int ssds_get_gen_buf(int ssfd, char *sdef, char *skey)
{
  int num;
  int res;
  int ret;
  int argc;
  //char sbuf[SSDS_DEF_SBUF_LEN];
  int i;

  gen_argv = gen_argvb;
  if(sdef) {
    sprintf(gen_sbuf,"msg 5678:action:%s.%s:", skey, sdef);
  } else {
    sprintf(gen_sbuf,"msg 5678:action:%s:", skey);
  }
  if(cl_db) {
    printf("sending (%s) \n", gen_sbuf);
  }
  res = ssds_send(ssfd, gen_sbuf, gen_rbuf);
  if(cl_db) {
    printf("got (%s) \n", gen_rbuf);
  }
  gen_argc = get_argc(gen_rbuf, gen_argv, 32);
  if(cl_db) {
    for (i = 0; i<gen_argc; i++) {
      printf(" argv[%d] (%s) \n", i, gen_argv[i]);
    }
  }
  return gen_argc;
}
Exemple #6
0
int ssds_set_item_value(int fd, int class_num, int field_num, int item_num
		    , char *valsp, int len, char *rsp)
{
  int ret;
  char **argv;
  char *myargv[16];
  int argc;
  char rbuf[132];
  char sbuf[132];
  char *sp;

  argv = myargv;
  sp = sbuf;
  sp += sprintf(sp,
	  "msg 5678:class_num:%d:action:set_item_value:field_num:%d"
	  ":item_num:%d:value:",
	  class_num, field_num, item_num);

  while(len--){
    *sp++ = *valsp++;
  }
  *sp++ = ':';
  *sp = 0;
  ret = ssds_send(fd, sbuf, rbuf);
  argc = get_argc(rbuf, argv, 16);
  ret = get_arg_char(argc, argv,"result", rsp, 32);
  return ret;
}
void		get_conf_file(t_vars *v)
{
  char		**conf_lines;
  char		*conf;
  int		i;

  i = 0;
  if ((conf = get_the_conf_file(".42shrc")))
    {
      conf_lines = get_file_lines(conf);
      while (conf_lines[i])
	{
	  if ((v->argc = get_argc(conf_lines[i])) >  1)
	    {
	      v->argv = get_argv(conf_lines[i]);
	      global_exec(v);
	      v->argv = my_xfree_tab(v->argv);
	    }
	  else
	    my_puterror("Bad config line format in config file.\n");
	  i += 1;
	}
      conf_lines = my_xfree_tab(conf_lines);
      conf = my_xxfree(conf);
    }
}
Exemple #8
0
int ssds_num_classes(int fd)
{
  int res;
  int num;
  char **argv;
  char *myargv[16];
  int argc;
  char rbuf[132];
  char sbuf[132];

  argv = myargv;
  sprintf(sbuf,"msg 5678:action:get_classes:");
  res  = ssds_send(fd, sbuf, rbuf);
  if (res < 0)
    printf(" Client res error %d \n", res);

  argc = get_argc(rbuf, argv, 16);
  res  = get_arg_int(argc, argv, "reply", &num);
  if (res < 0)
    printf(" Client res error %d \n", res);

  //  printf(" Client num_classes is %d \n", num);

  return num;
}
Exemple #9
0
int ssds_item_data(struct db_class *db_class, int fd, int num)
{
  int ret;
  char **argv;
  char *myargv[16];
  int argc;
  char rbuf[132];
  char sbuf[132];
  struct db_item * item;

  item = db_class->items[num];

  argv = myargv;
  sprintf(sbuf,"msg 5678:class:%s:action:get_item_num:num:%d:",
	  db_class->name, num);
  ret = ssds_send(fd, sbuf, rbuf);
  argc = get_argc(rbuf, argv, 16);
  get_arg_char(argc, argv,"item", item->name, 32);
  ret = get_arg_int(argc, argv,"id", &item->id);
  if (ret == 0) {
    printf(" ..  Client item data class name (%s) id %d item %s (id %d)\n",
	   db_class->name, db_class->id,
	   item->name, item->id);
  }

  return ret;
}
Exemple #10
0
int ssds_cgi_new_field(int fd,
		       char *classsp, char *namesp, char *typesp,
		       char *valsp, char *idsp, char *lensp)
{
  int ret;
  char **argv;
  char *myargv[16];
  int argc;
  //  int len;
  char rbuf[256];
  char sbuf[256];

  argv = myargv;

  ret = sprintf(sbuf,
		"msg 5678:class:%s:action:create_field:field:%s:"
		"type:%s:len:%s:reply:yes:",
		classsp, namesp, typesp, lensp);
  if(strlen(idsp) > 0) {
    ret +=sprintf(&sbuf[ret],"id:%s:",idsp);
  }
  ret = ssds_send(fd, sbuf, rbuf);
  argc = get_argc(rbuf, argv, 16);
  if (0 && argc < 0)
    printf(" Argc error %d\n", argc);
  return ret;
}
Exemple #11
0
int ssds_get_name(int fd, char *sp, char *name)
{
  int res;
  char **argv;
  char *myargv[16];
  int argc;
  char rbuf[132];
  char sbuf[132];

  argv = myargv;
  if(name) {  // set_name
    sprintf(sbuf,"msg 5678:action:set_name:name:%s:", name);
    res = ssds_send(fd, sbuf, rbuf);
    if (res < 0)
      printf(" Client res error %d \n", res);

    argc = get_argc(rbuf, argv, 16);
    res  = get_arg_char(argc, argv, "reply", sp, 32);
    if (0 && res < 0)
      printf(" Client res error %d \n", res);
    if(0)
      printf("ssds_client.c:ssds_get_name Set to (%s)\n",
	     name);
  } else {
    sprintf(sbuf,"msg 5678:action:get_name:");
    res = ssds_send(fd, sbuf, rbuf);
    if (res < 0)
      printf(" Client res error %d \n", res);

    argc = get_argc(rbuf, argv, 16);
    res  = get_arg_char(argc, argv, "name", sp, 32);
    if (0 && res < 0)
      printf(" Client res error %d \n", res);
    if(0)
      printf("ssds_client.c:ssds_get_name Found (%s)\n",
	     sp);
  }
  return res;
}
Exemple #12
0
int ssds_class_id(int fd, int class_num, char *sp)
{
  int res;
  char **argv;
  char *myargv[16];
  int argc;
  char rbuf[132];
  char sbuf[132];

  argv = myargv;
  sprintf(sbuf,"msg 5678:action:get_fields:class_num:%d:",class_num);
  res = ssds_send(fd, sbuf, rbuf);
  argc = get_argc(rbuf, argv, 16);
  res = get_arg_char(argc, argv,"id", sp, 32);
  return res;
}
Exemple #13
0
int ssds_item_name(int fd, int class_num, int item_num, char *sp)
{
  int ret;
  char **argv;
  char *myargv[16];
  int argc;
  char rbuf[132];
  char sbuf[132];

  argv = myargv;
  sprintf(sbuf,"msg 5678:class_num:%d:action:get_item_num:num:%d:",
	  class_num, item_num);

  ret = ssds_send(fd, sbuf, rbuf);
  argc = get_argc(rbuf, argv, 16);
  ret = get_arg_char(argc, argv,"item", sp, 32);
  return ret;
}
void		build_argv(t_vars *v)
{
  char		*alias;
  int		i;

  i = is_there_an_alias(v);
  if (i)
    {
      alias = get_alias(v, v->argv[i - 1]);
      v->argv = update_elem_in_tab(v->argv, alias, (i - 1));
      alias = my_xxfree(alias);
      v->prompt = my_xxfree(v->prompt);
      v->prompt = concat_tab_elems(v->argv, " ");
      v->argv = my_xfree_tab(v->argv);
      v->argc = get_argc(v->prompt);
      v->argv = get_argv(v->prompt);
    }
}
Exemple #15
0
int ssds_class_name(int fd, int class_num, char *sp)
{
  int res;
  char **argv;
  char *myargv[16];
  int argc;
  char rbuf[132];
  char sbuf[132];

  argv = myargv;
  sprintf(sbuf,"msg 5678:action:get_fields:class_num:%d:",class_num);
  res = ssds_send(fd, sbuf, rbuf);
  if (res < 0)
    printf(" Client res error %d \n", res);
  if(client_debug)
    printf("ssds_class_name sent <%s> got <%s> res %d\n",&sbuf[8],rbuf,res);
  argc = get_argc(rbuf, argv, 16);
  res = get_arg_char(argc, argv,"class", sp, 32);
  if (0 && res < 0)
    printf(" Client res error %d \n", res);
  return res;
}
Exemple #16
0
int ssds_num_items(int fd, int class_num)
{
  int res;
  int num;
  char **argv;
  char *myargv[16];
  int argc;
  char rbuf[132];
  char sbuf[132];

  argv = myargv;
  sprintf(sbuf,"msg 5678:action:get_items:class_num:%d:",class_num);
  res = ssds_send(fd, sbuf, rbuf);
  if (res < 0)
    printf(" Client res error %d \n", res);

  argc = get_argc(rbuf, argv, 16);
  res  = get_arg_int(argc, argv, "reply", &num);
  if (0 && res < 0)
    printf(" Client res error %d \n", res);

  return num;
}
Exemple #17
0
int ssds_class_data(struct db_class *db_class, int fd, int num)
{
  int ret;
  char **argv;
  char *myargv[16];
  int argc;
  char rbuf[132];
  char sbuf[132];

  argv = myargv;
  sprintf(sbuf,"msg 5678:action:get_class_num:num:%d:",num);
  ret = ssds_send(fd, sbuf, rbuf);
  argc = get_argc(rbuf, argv, 16);
  get_arg_char(argc, argv,"class", db_class->name, 32);
  ret = get_arg_int(argc, argv,"id", &db_class->id);
  ret += get_arg_int(argc, argv,"items", &db_class->num_items);
  ret += get_arg_int(argc, argv,"fields", &db_class->num_fields);
  if (ret == 0) {
    printf(" Client class name (%s) id %d \n",db_class->name, db_class->id);
  }

  return ret;
}
Exemple #18
0
void	run_minishell2(t_struc *s, char **tab)
{
	int		i;
	char	**tab2;

	i = 0;
	while (tab[i])
	{
		tab2 = ft_strdoublesplit(tab[i], ' ', '\t');
		if (replace_tild(s, &tab2) == -1)
			break ;
		s->argc = get_argc(tab2);
		s->cmd = tab2[0];
		if (!s->cmd)
			break ;
		s->argv = tab2;
		if (!ft_strcmp(s->cmd, "exit"))
			exec_exit(s);
		g_ctrl_c = 1;
		!is_builtin(s) ? exec_cmd(s, s->env) : exec_builtin(s, s->env);
		free(s->cmd);
		i++;
	}
}
Exemple #19
0
/*
 * gets the classses fields and items for each class
 */
int test_ssds(int fd)
{
  int ret;
  int res;
  int num;
  int i;
  int id;
  char **argv;
  char *myargv[16];
  int argc;
  int fields;
  int items;
  char myclass[32];
  char rbuf[132];
  char sbuf[132];

  argv = myargv;

  ret = 0;
  num = -1;

  sprintf(sbuf,"msg 5678:action:get_classes:");
  res = ssds_send(fd, sbuf, rbuf);
  if (res < 0)
    printf(" Client res error %d \n", res);

  argc = get_argc(rbuf, argv, 16);
  ret = get_arg_int(argc, argv, "reply", &num);
  //printf(" Client num_classes is %d \n", num);

  for (i=0; i<num; i++) {
    sprintf(sbuf,"msg 5678:action:get_class_num:num:%d:",i);
    res = ssds_send(fd, sbuf, rbuf);
    if (res < 0)
      printf(" Client res error %d \n", res);
    argc = get_argc(rbuf, argv, 16);
    get_arg_char(argc, argv, "class", myclass, 32);
    ret = get_arg_int(argc, argv, "id", &id);
    if (ret == 0) {
      printf(" Client class name (%s) id %d \n", myclass, id);
      sprintf(sbuf,"msg 5678:action:get_fields:id:%d:",id);
      res = ssds_send(fd, sbuf, rbuf);
      if (res < 0)
	printf(" Client res error %d \n", res);

      argc = get_argc(rbuf, argv, 16);
      get_arg_char(argc, argv,"class", myclass, 32);
      ret = get_arg_int(argc, argv,"reply", &fields);

      sprintf(sbuf,"msg 5678:action:get_items:id:%d:", id);
      res = ssds_send(fd, sbuf, rbuf);
      if (res < 0)
	printf(" Client res error %d \n", res);
      argc = get_argc(rbuf, argv, 16);
      get_arg_char(argc, argv,"class", myclass, 32);
      ret = get_arg_int(argc, argv,"reply", &items);

      printf(" Client class (%s) id %d num fields %d num items %d\n",
	     myclass, id, fields, items);

    } else {
      printf(" Client class name NOT_FOUND \n");
    }
  }

  return ret;
}