Esempio n. 1
0
  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;
  }
Esempio n. 2
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;
	}
}
Esempio n. 3
0
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);
}
Esempio n. 4
0
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);
}
Esempio n. 5
0
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);
}
Esempio n. 6
0
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);
}
Esempio n. 7
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);
}
Esempio n. 8
0
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 ;
}
Esempio n. 9
0
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);
}
Esempio n. 10
0
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 ;
		}
	}
}
Esempio n. 11
0
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);
}
Esempio n. 12
0
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);
}
Esempio n. 13
0
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));
}
Esempio n. 14
0
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");
	}
}
Esempio n. 15
0
  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;
  }
Esempio n. 16
0
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);
}
Esempio n. 17
0
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);
}
Esempio n. 18
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);
}
Esempio n. 19
0
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);
	}
}
Esempio n. 20
0
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);
}
Esempio n. 21
0
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);
}
Esempio n. 22
0
File: alias.c Progetto: jalcim/42sh
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);
}
Esempio n. 23
0
File: ft_cd.c Progetto: sdurr/ft_p
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("~");
}
Esempio n. 24
0
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);
}
Esempio n. 25
0
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);
}
Esempio n. 26
0
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);
}
Esempio n. 27
0
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++;
	}
}
Esempio n. 28
0
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);
}
Esempio n. 29
0
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);
}
Esempio n. 30
0
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);
}