int main( void ) { int i; printf( " {\n" ); printf( " /* Generated from %s */\n", __FILE__ ); for ( i = 0; i < sizeof ( featreg_table ) / sizeof ( GX_Feature_RegistryRec ); i++ ) { const char* feat_name; int nSettings; feat_name = featreg_table[i].feat_name; for ( nSettings = 0; featreg_table[i].setting_name[nSettings]; nSettings++) ; /* Do nothing */ printf( " {%1d, %1d, %1d, %2d}, /* %s */\n", feat_name ? 1 : 0, ( feat_name && ( ft_strncmp( feat_name, APPLE_RESERVED, APPLE_RESERVED_LENGTH ) == 0 ) ) ? 1 : 0, featreg_table[i].exclusive ? 1 : 0, nSettings, feat_name ? feat_name : "__EMPTY__" ); } printf( " };\n" ); return 0; }
void ft_read_inventory(t_env *env, char **s, int i) { while (i < INV_SIZE) { if (!ft_strncmp("nourriture", s[i], 10)) env->inv[FOOD] = ft_get_nb(s[i]); else if (!ft_strncmp(STONE_1, s[i], ft_strlen(STONE_1))) env->inv[LINEMATE] = ft_get_nb(s[i]); else if (!ft_strncmp(STONE_2, s[i], ft_strlen(STONE_2))) env->inv[DERAUMERE] = ft_get_nb(s[i]); else if (!ft_strncmp(STONE_3, s[i], ft_strlen(STONE_3))) env->inv[SIBUR] = ft_get_nb(s[i]); else if (!ft_strncmp(STONE_4, s[i], ft_strlen(STONE_4))) env->inv[MENDIANE] = ft_get_nb(s[i]); else if (!ft_strncmp(STONE_5, s[i], ft_strlen(STONE_5))) env->inv[PHIRAS] = ft_get_nb(s[i]); else if (!ft_strncmp(STONE_6, s[i], ft_strlen(STONE_6))) env->inv[THYSTAME] = ft_get_nb(s[i]); ++i; } }
char *ft_strstr(const char *dest, const char *mod) { int length; int i; i = 0; length = ft_strlen(mod); if (length > 0) { while (dest[i] != 0) { if (dest[i] == mod[0]) { if (!(ft_strncmp(&dest[i], mod, length))) return ((char *) &dest[i]); } i++; } return (NULL); } else return ((char *) dest); }
char *ft_strstr(const char *s1, const char *s2) { const char *pointeur; int i; size_t n; n = ft_strlen(s2); pointeur = &s1[0]; i = 0; if (s1[0] == '\0' && s1[0] == s2[0]) return ((char*)pointeur); while (s1[i] != '\0') { if (ft_strncmp(pointeur, s2, n) == 0) return ((char*)pointeur); else { i = i + 1; pointeur = &s1[i]; } } return (NULL); }
t_lst *init_lst(char **env) { t_lst *node; t_lst *head; head = NULL; while (*env) { node = (t_lst *)malloc(sizeof(t_lst)); if (!node) return (NULL); node->next = NULL; node->line = ft_strdup(*env); node->name = ft_strsub(*env, 0, ft_strlen_char(*env, '=')); if (ft_strccmp(*env, "USER="******"HOME=", 5) == 0) node->home = ft_strchr(*env, '/'); push_node(node, &head); env++; } return (head); }
int ft_unsetenv(const char *name) { int i; size_t n; n = ft_strlen(name); i = 0; while (g_env[i]) { if (ft_strncmp(g_env[i], name, n) == 0 && g_env[i][n] == '=') break ; i++; } if (!g_env[i]) return (-1); free(g_env[i]); while (g_env[i]) { g_env[i] = g_env[i + 1]; i++; } return (0); }
static void ft_get_history(void) { char *str; int i; str = NULL; while (ft_gnl(g_env.histo_fd, &str) > 0) { i = 0; if (str[i] == ':' && str[i + 1] == ' ' && ft_isdigit(str[i + 2])) { while (ft_strncmp(str + i, ":0;", 3) && str + i) i++; if (str + i == '\0') ft_update_history(str, 1); else ft_update_history(str + i + 3, 1); } else ft_update_history(str, 1); } free(str); }
static void ft_clean_same_dir(char *path) { char *s_i; char *s_j; s_i = path; s_j = path; while ((s_i[0] = s_j[0])) { if (ft_strncmp(s_j, "/./", 3)) { s_i++; s_j++; continue ; } s_j += 2; } if (ft_strequ(path, "/.")) path[1] = 0; if ((ft_strlen(path) > 2) && ft_strequ(s_i - 2, "/.")) s_i[-2] = 0; return ; }
int re_setenv(t_cpe *cpe, int i) { char *tmp; while (ENV[i]) { if (ft_strncmp(ENV[i], PRM[0], ft_strlen(PRM[0])) == 0 && ENV[i][ft_strlen(PRM[0])] == '=') { free(ENV[i]); if (arr_size(PRM) == 2) return (new_env_val(cpe, i)); else { tmp = ft_strjoin(PRM[0], "="); ENV[i] = tmp; return (0); } } i++; } return (-1); }
void ft_update_env(char *path, char **args, t_env *e) { char *tmp; int i; i = ft_tablen(e->env); if (path) { tmp = args[0]; args[0] = path; path = tmp; free(path); } while (--i >= 0) { if (!ft_strncmp("_=", e->env[i], 2)) { free(e->env[i]); e->env[i] = ft_strjoin("_=", args[ft_tablen(args) - 1]); return ; } } }
int flag_u(t_string *string, int i) { if (!ft_strncmp(string->converter.type, "ll", 2)) conv_ll(string, get_ulong_long_int(string)); else if (!ft_strncmp(string->converter.type, "l", 1)) conv_l(string, get_ulong_int(string)); else if (!ft_strncmp(string->converter.type, "hh", 2)) conv_hh(string, (unsigned char)get_uint(string)); else if (!ft_strncmp(string->converter.type, "h", 1)) conv_h(string, get_ushort(string)); else if (!ft_strncmp(string->converter.type, "z", 1)) conv_z(string, get_size_t(string)); else if (!ft_strncmp(string->converter.type, "j", 1)) conv_j(string, get_intmax_t(string)); else conv_default(string, get_uint(string)); return (i + 1); }
int ft_unset_env(char **args) { t_env *temp; t_env **env; int i; int size; env = ft_getenv(); i = 1; while (args[i]) { temp = *env; while (temp) { size = st_search_equal(temp->name); if (!ft_strncmp(temp->name, args[i], size)) env_delete(env, temp); if (temp) temp = temp->next; } i++; } return (1); }
int dig(t_m *m, char buf[MAX]) { int ret; char *tmp; t_num n; get_base(m, &n); m->place->flags |= (m->place->type == 2 ? HASH : 0); get_num(m, &n); if (m->place->precision == 0 && !ft_strncmp(n.b_conv, "0", 1) && !(n.base == 8 && (m->place->flags & HASH))) { tmp = ft_strnew(m->place->width); ft_memset(tmp, ' ', m->place->width); ret = replace(m, buf, tmp); ft_memdel((void**)&tmp); return (ret); } num_prcs(&n, m->place->precision); num_wdth(m, &n, m->place->width, m->place->flags); flags(m, &n); return (replace(m, buf, n.b_conv)); }
static void ft_display_norme(int n, int sock, char *buf) { int error; error = 0; while ((n = recv(sock, buf, 1023, 0)) > 1) { if (n < 0) break ; buf[n] = '\0'; ft_printf("%s\n", buf); if (ft_strcmp(buf, "quit") == 0) execcmd(buf, sock); if (ft_strncmp(buf, "ERROR", 5) == 0) error++; ft_bzero(buf, 1024); } if (n < 0) error_display("ERROR: recv()"); if (error == 0) { ft_putendl("SUCCESS"); } }
static AFM_Token afm_tokenize( const char* key, FT_Offset len ) { int n; for ( n = 0; n < N_AFM_TOKENS; n++ ) { if ( *( afm_key_table[n] ) == *key ) { for ( ; n < N_AFM_TOKENS; n++ ) { if ( *( afm_key_table[n] ) != *key ) return AFM_TOKEN_UNKNOWN; if ( ft_strncmp( afm_key_table[n], key, len ) == 0 ) return (AFM_Token) n; } } } return AFM_TOKEN_UNKNOWN; }
char *ft_strnstr(const char *str, const char *to_find, size_t n) { unsigned int i; unsigned int len; int result; char *dest; i = 0; dest = (char *)str; len = ft_strlen(to_find); if (to_find[i] == '\0') return (dest); while (str[i] != '\0' && ((i + len) <= n)) { if (str[i] == to_find[0]) { result = ft_strncmp(&str[i], to_find, len); if (result == 0) return (&dest[i]); } i++; } return (NULL); }
int ft_unsetenv(char **arg, char ***env) { int i; int j; i = 0; j = 0; while (arg[1] && (*env)[i]) { if (!ft_strncmp((*env)[i], arg[1], ft_strlen(arg[1]))) { ft_strdel(&(*env)[i]); j = i + 1; } if (j) { (*env)[i] = (*env)[j]; j++; } i++; } (*env)[i] = NULL; return (0); }
t_scene *ft_read_scene(t_data *d, int fd, char *name) { char *line; t_scene *s; if (!(s = (t_scene *)malloc(sizeof(t_scene)))) return (NULL); ft_init_scene(s, name); line = NULL; while (ft_get_next_line(fd, &line) != 0) { ft_check_scene(s, line); ft_check_camera(s, line, d); ft_check_background(s, line); if (!ft_strncmp(line, "SPOT", 4)) ft_get_spot(s, fd, line); ft_get_object(s, fd, ft_get_object_type(line, 0), line); free(line); } free(line); ft_assign_noise_tables(s); ft_init_scene_imgs(s, d); return (s); }
void soon(int cs) { char buf[1024]; int r; char *home; home = get_pwd(); while ((r = read(cs, buf, 1023)) > 0) { buf[r - 1] = '\0'; ft_printf("received %d bytes: [%s]\n", r, buf); if (!ft_strcmp(buf, "ls")) ft_ls(cs); else if (!ft_strcmp(buf, "pwd")) send_msg(cs, get_pwd(), 0); else if (!ft_strncmp(buf, "cd ", 3) || !ft_strcmp(buf, "cd")) ft_cd(cs, buf, home); else if (!ft_strcmp(buf, "quit")) break ; else send_error(cs, "invalid_cmd"); ft_bzero(buf, 1024); } }
char *ft_strnstr(const char *s1, const char *s2, size_t n) { size_t len; size_t len2; if (*s2 != '\0') { len = ft_strlen(s2); len2 = ft_strlen(s1); if (len > n || len > len2) return ((char *)NULL); while (ft_strncmp(s1, s2, len) != 0) { while (1) { if (--n < len || --len2 < len) return ((char *)NULL); if (*++s1 == *s2) break ; } } } return ((char *)s1); }
int find_and_replace(t_cmd *tmp, t_env *env, t_var *var) { int ret; int len; t_env *tmp_env; len = ft_strlen(tmp->word + 1); tmp_env = env->next; while (tmp_env != env) { if (ft_strncmp(tmp->word + 1, tmp_env->var, len)) { tmp->word = ft_strdup(tmp_env->var + len + 1); if (tmp->word == NULL) return (ft_error_parse("fail strdup")); return (0); } tmp_env = tmp_env->next; } if ((ret = find_and_replace_var(tmp, var, len)) == -1 || ret == 0) return (ret); ft_error_parse("Wrong variable name."); return (-2); }
int end_alias(char **tb, char **al) { int i; i = -1; while (tb[++i]) if (befor_egal(tb[i]) == befor_egal(*al)) if (!ft_strncmp(tb[i], *al, befor_egal(*al))) break ; if (i == 999) { ft_putendl_fd("Limite d'alias atteinte", 2); return (-1); } if (tb[i]) { ft_strdel(&(tb[i])); tb[i] = ft_strdup(*al); return (1); } tb[i++] = ft_strdup(*al); tb[i] = NULL; return (1); }
void ft_cd(char *buf, char *pwd, int cs) { char **tab; int success; success = 0; tab = ft_strsplit(buf, ' '); if (tab[1]) { if (chdir(tab[1]) == -1) send(cs, "ERROR this directory does not exist \n", 38, MSG_OOB); else success = 1; if (ft_strncmp(pwd, getcwd(buf, 1023), ft_strlen(pwd)) != 0) { send(cs, "ERROR Directory not allowed\n", 29, MSG_OOB); chdir(pwd); } else if (success == 1) send(cs, "SUCCESS\n", 9, MSG_OOB); } else chdir("~"); }
char *gimme_last_cmd_bloc(char *cmd) { int i; int j; i = ft_strlen(cmd) - 1; while (i > 0) { j = 0; while (sep_tab[j]) { if (ft_strncmp(sep_tab[j], cmd + i, ft_strlen(sep_tab[j]))) { i += ft_strlen(sep_tab[j]); while (cmd[i] == ' ' || cmd[i] == '\t') i++; return (cmd + i); } j++; } i--; } return (cmd); }
long ft_atol(const char *str) { long number; long sign; number = 0; if (ft_strncmp(str, "-9223372036854775808", 20) == 0 && (str[20] < '0' || str[20] > '9')) return (LONG_MIN); while (ft_isspace(*str)) ++str; sign = (*str == '-') ? -1 : 1; if (*str == '-' || *str == '+') ++str; while (*str >= '0' && *str <= '9') { number *= 10; number += (long)*str - 48; ++str; if (number < 0) return (-1); } return (number * sign); }
int test_len_mod(char *cmp, char *str) { char *conv; char *integrer; integrer = "diouUxX"; conv = "sSpdDioOuUxXcC%"; if ((ft_strncmp(cmp, str, ft_strlen(cmp))) != 0) { if (ft_strchr(conv, *str)) return (0); else return (-1); } if (!ft_strchr(conv, str[ft_strlen(cmp)])) return (-1); if (ft_strcmp("l", cmp) == 0 && ft_strchr("sc", str[ft_strlen(cmp)])) { return (1); } if (ft_strchr(integrer, str[ft_strlen(cmp)])) return (1); return (-1); }
void replace_item_environ(char **environ, char *env, char *av) { int i; char *tmp; i = 0; while (environ[i]) { if (!ft_strncmp(environ[i], env, ft_strlen(env)) && environ[i][ft_strlen(env)] == '=') { ft_memdel((void**)&environ[i]); environ[i] = ft_strjoin(env, "="); if (av) { tmp = ft_strdup(environ[i]); ft_memdel((void**)&environ[i]); environ[i] = ft_strjoin(tmp, av); ft_memdel((void**)&tmp); } } i++; } }
char *ft_strstr(const char *s1, const char *s2) { int i; int k; char *s11; char *s22; s11 = (char *)s1; s22 = (char *)s2; i = 0; k = strlen(s2); if (k == 0) return (s11); while (s11[i]) { if (s11[i] == s22[i]) { if (ft_strncmp(s11, s22, k) == 0) return (s11); } s11++; } return (NULL); }
char *ft_getenv(char **env, char *str) { int i; int start; int len; char *tmp; i = -1; tmp = NULL; if (!str || !(tmp = ft_strjoin(str, "="))) return (NULL); start = ft_strlen(tmp); while (env && env[++i]) { if (!(ft_strncmp(env[i], tmp, start))) { free(tmp); len = ft_strlen(ft_strchr(env[i], '=')); return (ft_strsub(env[i], start, len)); } } free(tmp); return (NULL); }
int try_builtins_cmd(t_all *all) { int i; static const t_action built[] = {{"env", env_display}, {"set env", env_set}, {"unset env", env_unset}, {"pwd", pwd_display}, {"cd", goto_dir}, {"exit", free_all}}; i = 0; while (i < 6) { if (ft_strncmp(all->cmd, built[i].action_name, ft_strlen(built[i].action_name)) == 0) { built[i].f(all); return (1); } i++; } return (0); }