Example #1
0
int		create_var(t_cmd *tmp, t_env *var)
{
	int	i;

	i = 0;
	while (tmp->word[i] && tmp->word[i] != '=')
		++i;
	if (tmp->word[i])
	{
		tmp->word[i] = '\0';
		++i;
	}
	if (put_in_list(var, tmp->word) == NULL
		|| (var->prev->content = ft_strdup(tmp->word + i)) == NULL)
		return (-1);
	return (0);
}
Example #2
0
static void	test_2(void)
{
	char	*str;

	printf("\ttest 2: ft_strdup(\"42\"): ");
	str = ft_strdup("Alexandre");
	if (str == NULL)
	{
		puts(MEM_ERROR);
		return ;
	}
	if (strcmp(str, "Alexandre") == 0)
		puts(SUCCESS);
	else
		puts(ERROR);
	free(str);
}
Example #3
0
File: main.c Project: floklein/42
t_map	*ft_get_map_info(int fd)
{
	char	*charset;
	t_map	*map;
	int		i;

	if ((map = (t_map *)malloc(sizeof(t_map))) == NULL)
		return (NULL);
	if ((charset = ft_get_first_line(fd, NULL)) == NULL)
		return (NULL);
	i = ft_strlen(charset) - 4;
	map->charset = ft_strdup(charset + i);
	map->charset[3] = '\0';
	charset[i] = '\0';
	map->height = ft_atoi(charset);
	return (map);
}
Example #4
0
int				print_with_precision(t_formater *fmt, t_printf *pf)
{
	int			is_nega;
	int			ret;

	ret = 0;
	is_nega = pf->fmt_str[0] == '-' ? 1 : 0;
	if (is_nega)
		pf->prefix = ft_strdup("-");
	if (is_signed(fmt) && fmt->flag & F_BLANK && !is_neg(pf->fmt_str))
	{
		ret += ft_putchar(' ');
		fmt->width -= 1;
	}
	ret += print_w_pres3(fmt, pf);
	return (ret);
}
Example #5
0
t_ls	*filla(int *state, t_ls *a, char *path, struct dirent *dir)
{
	t_osef				*osef;

	if (((state[A] == 0 && dir->d_name[0] != '.' &&\
			dir->d_name[0] != 0 &&
				state[F] == 0)) || (((state[A] == 1) ||
					(state[F] == 1)) && dir->d_name[0] != 0))
	{
		if (!(osef = malloc(sizeof(*osef))))
			return (NULL);
		osef->name = ft_strdup(dir->d_name);
		lstat(ft_strjoinslash(path, dir->d_name), &osef->my_stat);
		a = addelem(&a, osef);
	}
	return (a);
}
Example #6
0
File: env.c Project: Zethir/42sh
static int	cmp_line(char **arg, char **env_cpy)
{
	int		i;

	i = 0;
	while (env_cpy[i])
	{
		if (ft_strccmp(env_cpy[i], *arg, '=') == 0)
		{
			free(env_cpy[i]);
			env_cpy[i] = ft_strdup(*arg);
			return (1);
		}
		i++;
	}
	return (0);
}
Example #7
0
void		print_lnkabout(char *fpath)
{
	int		path_size;
	char	*path_save;

	if (!(path_save = ft_strdup(fpath)))
		return ;
	path_size = readlink(fpath, fpath, 1024);
	if (path_size > 0)
	{
		fpath[path_size] = '\0';
		ft_putstr(" -> ");
		ft_putstr(fpath);
	}
	ft_strcpy(fpath, path_save);
	free(path_save);
}
Example #8
0
char		*append_path(char *environ, char *av)
{
	char	**path_env;
	char	*ret;

	if (!environ)
		return (av);
	ret = NULL;
	path_env = ft_strsplit(environ, ':');
	path_env = append_slash(path_env, &environ);
	ret = check_path(path_env, av);
	if (ret)
		av = ft_strdup(ret);
	free_double_array(path_env);
	ft_memdel((void**)&ret);
	return (av);
}
Example #9
0
t_select			*ft_listnew(char *str, int pos)
{
	t_select		*list;

	if ((list = (t_select *)malloc(sizeof(t_select))))
	{
		list->str = ft_strdup(str);
		list->curseur = 'n';
		list->select = 'n';
		list->row = 0;
		list->col = 0;
		list->pos = pos;
		list->next = list;
		list->prev = list;
	}
	return (list);
}
Example #10
0
void	increment_shlvl(char ***env)
{
	int		n;
	char	**str;

	if (get_in_env(*env, "SHLVL"))
	{
		n = ft_atoi(get_in_env(*env, "SHLVL"));
		str = ft_memalloc(sizeof(char*) * 3);
		str[0] = ft_strdup("setenv");
		str[1] = ft_strnew(20);
		str[1] = ft_strcat(str[1], "SHLVL=");
		str[1] = ft_strcat(str[1], ft_itoa(++n));
		builtin_setenv(str, env);
		ft_tabfree(str);
	}
}
Example #11
0
size_t          *ls_read_stat(t_lltree **tree, char *pathname, char *choice)
{
	struct dirent	*file;
	DIR				*rep;
	struct stat		*stats_struct;
	t_llstat		statsfile;
	int				stats;
	static size_t	keep_infos[6] = {0};
	char			*filepathname;

	if((rep = opendir(pathname)))
	{
		if ((stats_struct = (struct stat*)malloc(sizeof(struct stat))))
		{
			if (!(check_slash(pathname)))
				pathname = ft_strjoin(pathname, "/");
			while ((file = readdir(rep)))
			{
				statsfile.filename = ft_strdup(file->d_name);
				filepathname = ft_strjoin(pathname, file->d_name);
				if (((stats = lstat(filepathname, stats_struct))) != -1)
				{
//				printf("Filepathname : %s; Device number (st_rdev): %d  major=%u; minor=%d\n",filepathname, stats_struct->st_rdev, major_ex(stats_struct->st_rdev), (int) minor_ex(stats_struct->st_rdev));
					takestats(stats_struct, &statsfile);
					test_sizeinfos(&statsfile, keep_infos, stats_struct->st_blocks, choice);
					if (!(choice[1]))
						ltree_insert_data(tree, statsfile);
					else if (choice[1])
						ltree_insert_data_time(tree, statsfile);	
				}
				free(filepathname);
				filepathname = NULL;
			}
			closedir(rep);
			free(stats_struct);
			stats_struct = NULL;
		}
	}
	else
	{
		if ((!(choice[5])) || ((choice[5]) && errno != EACCES))
			print_error(pathname);
	}
	return (keep_infos);
}
Example #12
0
char	*ft_strmap(char const *s, char (*f)(char))
{
	char	*dest;
	int		i;

	i = 0;
	dest = (char *)malloc(sizeof(char) * (ft_strlen(s) + 1));
	while (s[i] != '\0' && f != NULL)
	{
		dest[i] = f(s[i]);
		i++;
	}
	dest[i] = '\0';
	if (i != 0)
		return (dest);
	else
		return (ft_strdup(s));
}
Example #13
0
t_list	*ft_lstnew(void const *content, size_t content_size)
{
	t_list *list;

	list = (t_list *)malloc(sizeof(t_list));
	if (list == NULL)
		return (NULL);
	list->next = NULL;
	if (content == NULL)
	{
		list->content_size = 0;
		list->content = NULL;
		return (list);
	}
	list->content = ft_strdup(content);
	list->content_size = content_size;
	return (list);
}
static void		make_line(char **line, char **str, char *tmp)
{
	size_t	i;

	i = ft_count_char_befor(*str, '\n');
	*line = (char *)malloc(sizeof(char) * (i + 1));
	*line = ft_strncpy(*line, *str, i);
	if (tmp[0] != '\0' && tmp[1] != '\0')
	{
		free(*str);
		*str = ft_strdup(tmp + 1);
	}
	else
	{
		free(*str);
		*str = NULL;
	}
}
Example #15
0
void	ft_do_padding_switch_3_2(t_conv *conv, char **ret,
		char **padding, int i)
{
	if (ft_strchr(conv->flag, '-') == NULL)
	{
		(*padding)[i - 2] = '0';
		(*padding)[i - 1] = 'x';
		*ret = ft_strjoin_free(
				*padding, *ret);
	}
	else
	{
		if ((int)(ft_strlen(*padding) - 2) >= 0)
			(*padding)[ft_strlen(*padding) - 2] = '\0';
		*ret = ft_strjoin_free(ft_strdup("0x"), ft_strjoin_free(
					*ret, *padding));
	}
}
Example #16
0
char		*ft_uitoa(unsigned int n)
{
	char			*nstr;
	char			*tmp;
	unsigned int	nbr;

	if (n == 0)
		return (ft_strdup("0"));
	nstr = ft_strnew(1000);
	tmp = nstr;
	nbr = n;
	while (nbr)
	{
		*nstr++ = (char)(nbr % 10 + (int)'0');
		nbr /= 10;
	}
	return (ft_strrev(tmp));
}
Example #17
0
char	*get_command_string(t_lsys *self, int it)
{
	char	*result;
	char	*tmp;
	int		i;
	int		nsize;

	i = 1;
	result = ft_strdup(self->axiom);
	while (i++ < it)
	{
		nsize = expanded_size(self, result);
		tmp = result;
		result = expand_into(self, result, ft_memalloc(nsize + 1));
		free(tmp);
	}
	return (result);
}
Example #18
0
char	*search_key(char *key, t_node *root)
{
    int		i;
    t_node	*tmp;

    tmp = root;
    i = 0;
    while (key[i])
    {
        if (tmp->kids[key[i] % 95] == NULL)
            return (not_found(key));
        tmp = tmp->kids[key[i] % 95];
        i++;
    }
    if (tmp->isleaf)
        return (ft_strdup(tmp->v));
    return (not_found(key));
}
Example #19
0
static t_history	*return_last_elem(t_it *it, t_history *list)
{
	int			i;

	i = 0;
	if (it->tmp_line)
	{
		it->line = ft_strdup(it->tmp_line);
		ft_putstr(it->line);
		i = ft_strlen(it->line);
		while (i--)
			it->i++;
	}
	else
		it->line = NULL;
	it->first = 1;
	return (list);
}
Example #20
0
char	*ft_strmapi(char const *str, char (*f)(unsigned int, char))
{
	char	*ret;
	size_t	id;
	size_t	len;

	len = ft_strlen(str);
	id = 0;
	ret = ft_strdup(str);
	if (!ret)
		return (NULL);
	while (id < len)
	{
		ret[id] = f(id, ret[id]);
		id++;
	}
	return (ret);
}
Example #21
0
static char		*search_argument(char **tab, char *str, int *v)
{
	int			i;
	char		*result;

	result = NULL;
	i = 0;
	while (tab[i])
	{
		if (!ft_strncmp(tab[i], str, ft_strlen(str)))
		{
			++*v;
			result = ft_strdup(tab[i]);
		}
		++i;
	}
	return (result);
}
Example #22
0
static int	check_arg(char **env_cpy, char *arg)
{
	int		i;

	i = 0;
	while (env_cpy[i])
	{
		if (ft_strncmp(env_cpy[i], arg, ft_strlen(arg)) == 0)
		{
			free(env_cpy[i]);
			env_cpy[i] = ft_strdup("");
			ft_strclr(env_cpy[i]);
			return (1);
		}
		i++;
	}
	return (0);
}
Example #23
0
int			ft_cmd_cd_oldpwd(void)
{
	char	*cwd;
	char	*oldpwd;

	if (ft_cmd_env_srch("OLDPWD") == -1)
		return (ft_sh_error("42sh: cd: No OLDPWD to move to."));
	cwd = getcwd(NULL, PATH_MAX + 1);
	oldpwd = ft_strdup(ft_cmd_env_get("OLDPWD"));
	if (chdir(oldpwd) == -1)
		return (ft_sh_perror("42sh: cd"));
	ft_cmd_env_set("OLDPWD", cwd);
	ft_cmd_env_set("PWD", oldpwd);
	ft_putendl(oldpwd);
	free(cwd);
	free(oldpwd);
	return (1);
}
Example #24
0
static char	*verify_path(t_env *tenv, char **args)
{
	char *path;

	if ((path = get_prog_path(tenv, args[0])) != NULL)
	{
		return (path);
	}
	else if ((access(args[0], F_OK) == 0) && (access(args[0], X_OK) == 0))
	{
		path = ft_strdup(args[0]);
		return (path);
	}
	else
	{
		return (NULL);
	}
}
Example #25
0
char	*ft_strmapi(char const *s, char (*f)(unsigned int, char))
{
	char	*map;
	int		i;

	if (s == NULL || f == NULL)
		return (NULL);
	i = 0;
	map = ft_strdup(s);
	if (map == NULL)
		return (NULL);
	while (map[i] != '\0')
	{
		map[i] = f(i, map[i]);
		i++;
	}
	return (map);
}
Example #26
0
void	*ft_memmove(void *dst, void const *src, size_t len)
{
	char	*psrc;
	char	*pdst;
	char	*ptemp;
	size_t	i;

	i = 0;
	pdst = (char *)dst;
	psrc = (char *)src;
	ptemp = (char *)ft_memcpy((void *)ft_strdup((const char *)dst), src, len);
	while (i < len)
	{
		pdst[i] = ptemp[i];
		i++;
	}
	return (dst);
}
Example #27
0
static char		*join_refresh(char **s1, char const *s2)
{
	char	*stand_in;

	if (*s1 == NULL)
	{
		stand_in = ft_strdup(s2);
		return (stand_in);
	}
	stand_in = ft_strnew(ft_strlen(*s1) + ft_strlen(s2));
	if (stand_in != NULL)
	{
		stand_in = ft_strcpy(stand_in, *s1);
		*s1 = 0;
		return (ft_strcat(stand_in, s2));
	}
	return (NULL);
}
Example #28
0
ssize_t		ft_asprintf_conv_str(char **string, va_list arg, t_printer *p)
{
	char	*input;

	if ((p->length & 4) != 0)
		return (ft_asprintf_conv_str_long(string, arg, p));
	input = va_arg(arg, char*);
	if (input == NULL)
		input = "(null)";
	if (p->prec >= 0)
		*string = ft_strndup(input, p->prec);
	else
		*string = ft_strdup(input);
	if (*string == NULL)
		return (-1);
	else
		return (ft_strlen(*string));
}
Example #29
0
char			*ft_strtrim(char const *s)
{
	size_t	len;
	size_t	start;

	if (s)
	{
		len = count_spaces_return(s, ft_strlen(s));
		start = count_spaces(s);
		if (!len && !start)
			return (ft_strdup(s));
		else if (start == ft_strlen(s))
			return (ft_strsub(s, 0, 0));
		else
			return (ft_strsub(s, start, len - start + 1));
	}
	return (NULL);
}
Example #30
0
void	shell_env_to_list(t_list **list, char **environ)
{
	int		i;
	t_env	*env;

	i = 0;
	while (environ[i])
	{
		env = malloc(sizeof(t_env));
		env->var = ft_strnew(ft_strlen(environ[i]) -
			ft_strlen(ft_strchr(environ[i], '=') + 1));
		ft_strncpy(env->var, environ[i], ft_strlen(environ[i]) -
			ft_strlen(ft_strchr(environ[i], '=')));
		env->value = ft_strdup(ft_strchr(environ[i], '=') + 1);
		ft_lstadd(list, ft_lstnew(env, sizeof(t_env)));
		i++;
	}
}