Exemple #1
0
static t_lst		*prec_null_fmt(t_lst *lst, t_data *data)
{
	if (data->precision == 0 && ft_strchr("idDoOuUxX",
			*(data->fmt)) && !data->hash && (lst_sum_digit(lst) == 0))
		lst = del_all_digits(lst)	;
	if (data->precision == 0 && ((ft_strchr("xX", *(data->fmt))
			&& data->hash) || (ft_strchr("pP", *(data->fmt)))))
	{
		if (lst_sum_alnum(lst) == 0)
		{
			lst = del_all_digits(lst)	;
			if (*(data->fmt) == 'p' || *(data->fmt) == 'P')
				lst = pushfront_lst(lst, '0');
		}
	}
	return (lst);
}
void		print_file(t_files *file, t_ls_args *args,
		int links_col, int size_col)
{
	if (ft_strchr(args->options, 'l'))
		print_files_long(file, args->options, links_col, size_col);
	else
		print_files_short(file, args->options);
}
Exemple #3
0
int		addi(int arg, char sec_op, char *var)
{
	if (sec_op == '=')
		return (arg + ft_atoi(ft_strchr(var, '=') + 1));
	else if (sec_op != '+')
		return (arg);
	return (arg + 1);
}
Exemple #4
0
int		subs(int arg, char sec_op, char *var)
{
	if (sec_op == '=')
		return (arg - ft_atoi(ft_strchr(var, '=') + 1));
	else if (sec_op != '-')
		return (arg);
	return (arg - 1);
}
void		print_files_short(t_files *file, char *options)
{
	if (ft_strchr(options, 'G'))
		add_color(file);
	ft_putstr(file->name);
	ft_putstr("\033[0m");
	ft_putchar('\n');
}
Exemple #6
0
int		mult(int arg, char sec_op, char *var)
{
	if (sec_op == '=')
		return (arg * ft_atoi(ft_strchr(var, '=') + 1));
	else if (sec_op != '*')
		return (arg);
	return (arg * arg);
}
Exemple #7
0
int		find_arg_flag(char *s, t_argf *arg)
{
	char *n;

	if ((n = ft_strchr(g_flags_str, (int)(*s))))
		arg->flag[n - g_flags_str] = TRUE;
	return (n ? 1 : -1);
}
Exemple #8
0
void	printer_details(t_piles *piles, char *operation, char *options)
{
	static int		first_time;

	if (!first_time && ft_strchr(options, 'v'))
	{
		ft_putstr("### CHANGEMENTS EFFECTUES ###\n");
		first_time = 1;
	}
	ft_putstr(operation);
	ft_putstr(" -> [");
	if (ft_strchr(operation, 'a'))
		printer_lst_nbr(piles->a);
	else
		printer_lst_nbr(piles->b);
	ft_putstr("]\n");
}
static int		ft_inf_strcat(char **dst, char *src, int ret_read)
{
	char			*temp;

	if ((temp = ft_strnew(ft_strlen(*dst) + 1)) == NULL)
		return (-1);
	ft_strcpy(temp, *dst);
	free(*dst);
	if ((*dst = ft_strnew(ft_strlen(temp) + ret_read + 1)) == NULL)
		return (-1);
	ft_strcpy(*dst, temp);
	*dst = ft_strncat(*dst, src, ret_read);
	if (ft_strchr(*dst, '\n') != NULL)
		*(ft_strchr(*dst, '\n')) = '\0';
	free(temp);
	return (0);
}
Exemple #10
0
char	*print_prefix(char *str, char c, t_printer *p, t_value *v)
{
	if (c != '0')
		return (str);
	if (ft_strchr("+- ", *str) && ft_strchr("idD?", SPEC))
	{
		ft_putchar_fd(*str, p->fd);
		str = &str[1];
	}
	else if (*str == '0' && ft_strchr("xXbB", str[1]) && SPEC != 's')
	{
		ft_putchar_fd(*str, p->fd);
		ft_putchar_fd(str[1], p->fd);
		str = &str[2];
	}
	return (str);
}
Exemple #11
0
static int		invalid_opt(char option, t_info *info)
{
	if (!(ft_strchr("i", option)))
		return (1);
	if (option == 'i')
		SET(info->opt, OPT_I);
	return (0);
}
Exemple #12
0
int		ft_isspace(int c)
{
	static char	search[7] = " \t\n\v\f\r\0";

	if (ft_strchr(search, c) == NULL)
		return (0);
	return (1);
}
Exemple #13
0
int		validate_mod(char *choped)
{
    int i;

    i = 0;
    while (choped[i])
    {
        if (!is_double_mod(choped, &i) && is_mod(choped[i]) && \
                ft_strchr(SPECIFIERS, choped[i + 1]) == NULL)
            return (-1);
        else if (is_double_mod(choped, &i) && \
                 ft_strchr(SPECIFIERS, choped[i + 2]) == NULL)
            return (-1);
        i++;
    }
    return (1);
}
Exemple #14
0
void		print_by_flags(struct stat *f_stat, char *flags, char **f, int i)
{
	if (!ft_strcmp(flags, "R"))
		print_with_nl(f[i], flags);
	else if (ft_strchr(flags, '1'))
	{
		if (check_l_or_1(flags))
		{
			ft_putstr(f[i]);
			ft_putstr("\n");
		}
		else
		{
			if (ft_strchr(flags, 'l') || ft_strchr(flags, 'g')
				|| ft_strchr(flags, 'o'))
				print_line(f_stat, flags, f, i);
		}
	}
	else
	{
		if (ft_strchr(flags, 'l') || ft_strchr(flags, 'g')
			|| ft_strchr(flags, 'o'))
			print_line(f_stat, flags, f, i);
		else
			print_with_nl(f[i], flags);
	}
}
Exemple #15
0
static void	ls_gen_filedirs_sort(char *options, t_arraylist *filedirs)
{
	if (!filedirs)
		return ;
	if (ft_strchr(options, 't'))
		filedirs->sort(filedirs, ls_filedir_t_cmp);
	else
		filedirs->sort(filedirs, ls_filedir_cmp);
}
Exemple #16
0
int		grep_cmd(char **str)
{
	int	i;

	i = 0;
	while (ft_strchr(str[i], '='))
		i++;
	return (i);
}
Exemple #17
0
static int	ft_cop(char *str1, char **line, char *str2)
{
	*(ft_strchr(str1, '\n')) = '\0';
	*line = ft_strjoin_free(*line, str1);
	ft_strcpy(str2, str1 + ft_strlen(str1) + 1);
	if (str1 != str2)
		free(str1);
	return (1);
}
static int		treat_no_remain(char **line, char **remain, int fd, char *buf)
{
	if (ft_strchr(buf, '\n'))
	{
		if (**line)
			*line = ft_strjoin(ft_strdup(*line),
								ft_strndup(buf, ft_strchr(buf, '\n') - buf));
		else
			*line = ft_strndup(buf, ft_strchr(buf, '\n') - buf);
		remain[fd] = ft_strdup(ft_strchr(buf, '\n') + 1);
		return (*line && remain[fd] ? 1 : -1);
	}
	if (**line)
		*line = ft_strjoin(ft_strdup(*line), buf);
	else
		*line = ft_strdup(buf);
	return (*line && !remain ? 0 : -1);
}
Exemple #19
0
void	com_pipes(t_main *w, t_env *env, char **coms)
{
	int	i;

	i = 0;
	coms = ft_strsplit(w->line, ';');
	while (coms[i] != NULL)
	{
		if (ft_strchr(coms[i], '|') == 0)
		{
			w->line = ft_strtrim(coms[i]);
			ft_minishell(env, w);
		}
		else if (ft_strchr(coms[i], '|') != 0)
			ft_pipes(env, coms, i, w);
		i++;
	}
}
Exemple #20
0
/*
** Count the len of 'str' using only char of 'skip'
*/
t_uint			ft_strskip(const char *str, const char *skip)
{
	t_uint			i;

	i = 0;
	while (str[i] != '\0' && ft_strchr(skip, str[i]) != NULL)
		i++;
	return (i);
}
Exemple #21
0
int		ft_printf_u(va_list ap, t_list_printf *list)
{
	if (list->has_mod == 0)
		list->max = (unsigned int)va_arg(ap, int);
	list->tab_c = ft_convert_base_uintmax_t(list->max, 10);
	if (ft_strchr(list->fl_opt, '0'))
		ft_parse_0(list);
	if (!(ft_strchr(list->fl_opt, '-')) && !(ft_strchr(list->fl_opt, '0')))
		if (list->k > 0)
			ft_parse_sp(list);
	if (list->prec > ft_strlen(list->tab_c))
		ft_prec(list);	
	//ft_putstr_end(list->tab_c, ft_strlen(list->tab_c) - 1);
	ft_putstr(list->tab_c);
	if (ft_strchr(list->fl_opt, '-'))
		ft_parse_less(list);
	return (ft_strlen(list->tab_c));
}
Exemple #22
0
int		scan_op(char **arg, t_lv *lv)
{
	ft_bzero((void *)lv->flag, 3);
	if ((lv->f = search_ope(&(*arg)[lv->d], "+-*%/=",
			strchri(&(*arg)[lv->d], ';'))))
	{
		if (lv->f == '=')
			return (0);
		lv->flag[0] = search_opi(&(*arg)[lv->d], "+-*%/=",
				strchri(&(*arg)[lv->d], ';'));
		lv->flag[1] = search_ope(ft_strchr(&(*arg)[lv->d],
			lv->f) + 1, "+-*%/=", 1);
	}
	else if (ft_strchr(cpy_to(&(*arg)[lv->d],
			search_opi(&(*arg)[lv->d], ";&<>|", 10000)), '.'))
		lv->f = '.';
	return (1);
}
Exemple #23
0
void	ft_ret_line(char **line, char **tmp, int fd)
{
	char	*del;

	if (!ft_strchr(tmp[fd], '\n'))
	{
		*line = ft_strdup(tmp[fd]);
		ft_strdel(&tmp[fd]);
	}
	else
	{
		del = tmp[fd];
		*line = ft_strsub(tmp[fd], 0, ft_strchr(tmp[fd], '\n') - tmp[fd]);
		tmp[fd] = ft_strsub(tmp[fd], ((ft_strchr(tmp[fd], '\n') - tmp[fd]) + 1),
				ft_strlen(tmp[fd]));
		ft_strdel(&del);
	}
}
Exemple #24
0
int			ft_isnumber(char c)
{
	char	*str;

	str = NUMBER_CHARSET;
	if (ft_strchr(str, c) == NULL)
		return (0);
	return (1);
}
Exemple #25
0
static void		norme_big_r_1(DIR **d, char *path, char *options, char ***tmp)
{
	struct dirent	*drnt;
	char			*tmp_suffix;

	while ((drnt = readdir(*d)) != NULL)
	{
		tmp_suffix = create_str_suffix(path, drnt->d_name);
		if (ft_is_dir(tmp_suffix) == 1 && ft_strcmp(drnt->d_name, ".")
			&& ft_strcmp(drnt->d_name, ".."))
		{
			if ((!ft_strchr(options, 'a') && (drnt->d_name)[0] != '.')
				|| ft_strchr(options, 'a'))
				*tmp = extend_tab_str(*tmp, tmp_suffix);
		}
	}
	return ;
}
Exemple #26
0
int			ft_isponct(char c)
{
	char	*str;

	str = PONCT_CHARSET;
	if (ft_strchr(str, c) == NULL)
		return (0);
	return (1);
}
Exemple #27
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++;
	}
}
Exemple #28
0
t_lst				*precisionfmt(t_lst *lst, t_data *data)
{
	lst = prec_null_fmt(lst, data);
	if (data->precision >= 0 && ft_strchr("sS", *(data->fmt)))
		lst = pos_pres_s(lst, data);
	else if (data->precision > 0)
		lst = pos_pres_fmt(lst, data);
	return (lst);
}
Exemple #29
0
static void		ft_opt2_b(const char *form, va_list ap, int *i, int *count)
{
	int		index;

	index = 0;
	if (ft_strchr("zlhL", form[*i]))
		index = 1;
	if (ft_strchr("uid", form[*i + index]))
	{
		if (va_arg(ap, int) > 0)
			*count += ft_putchar(' ');
	}
	if (ft_strchr("feE", form[*i + index]))
	{
		if (va_arg(ap, double) > 0)
			*count += ft_putchar(' ');
	}
}
Exemple #30
0
void    choose(char *s, t_list **l)
{
    
    char    *head;
    char    *eol;

    head = s;
    if (!(eol = ft_strchr(head, ':')))
        record_instr(head, l);
    else
    {
        if ((eol = ft_strchr(head, ':')) && !ft_strchr(head, '%'))
            record_label(head, l);
        else
            record_instr(head, l);
    }

}