/** ** @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)); }
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; }
/** ** @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); }
/* * 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; }
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; }
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); } }
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; }
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; }
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; }
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; }
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; }
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); } }
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; }
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; }
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; }
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++; } }
/* * 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; }