コード例 #1
0
ファイル: main.c プロジェクト: sbenning42/42
char		*ft_getenv(char **ep, const char *key)
{
	while (*ep)
	{
		if (ft_strstr(*ep, key))
			return (ft_strchr(*ep, '=') + 1);
		ep++;
	}
	return (NULL);
}
コード例 #2
0
ファイル: maintest.c プロジェクト: Kiruel/get_next_line
int main()
{
	char s1[] = "tata";
	char s2[] = "a";
	char *result;

	result = ft_strstr(s1, s2);
	ft_putstr(result);
	ft_putchar('\n');
	return (0);
}
コード例 #3
0
ファイル: sub_gens.c プロジェクト: nbouteme/rtv1
t_generror		*gen_scalar(float *a, t_ast *elem)
{
	int n;

	if (!ft_strstr(elem->tag, "|int") && !ft_strstr(elem->tag, "|float"))
		return (new_gerror(elem, "Expected scalable type, got: ", elem->tag));
	if (ft_strstr(elem->tag, "|int"))
		*a = ft_atoi(elem->value);
	else
	{
		n = elem->children[0]->value[0] == '-';
		*a = ft_atoi(elem->children[0]->value + n);
		*a += ((float)ft_atoi(elem->children[2]->value)) /
			pow(10, ft_strlen(elem->children[2]->value));
		*a = n ? -*a : *a;
	}
	if (*a <= -10000.0f || *a >= 10000.0f)
		return (new_gerror(elem, "Value out of range: ", elem->tag));
	return (0);
}
コード例 #4
0
ファイル: b_cd.c プロジェクト: Selk/Dev
static void		cd(t_struct *val, char *type, int flag)
{
	int		i;
	char	*tmp;

	i = 0;
	while (val->env[i])
	{
		if (ft_strstr(val->env[i], type) && val->env[i][flag] == '=')
		{
			tmp = get_tmp(ft_strstr(val->env[i], type));
			if (ft_strcmp(type, "OLDPWD=") == 0)
				ft_printf("%s\n", tmp);
			chdir(tmp);
			put_oldpwd(put_pwd(tmp, val), val);
			free(tmp);
		}
		i++;
	}
}
コード例 #5
0
ファイル: sh1_header.c プロジェクト: z0mbie42/42
char	*get_rel_from_abs(char *abs, char *rel)
{
	char	*pos;

	if (rel && (pos = ft_strstr(abs, rel)))
	{
		abs[0] = '~';
		abs[1] = 0;
		ft_strcat(abs, pos + ft_strlen(rel));
	}
	return (abs);
}
コード例 #6
0
ファイル: ttobjs.c プロジェクト: CCExtractor/ccextractor
  static FT_Bool
  tt_check_trickyness_family( FT_String*  name )
  {

#define TRICK_NAMES_MAX_CHARACTERS  19
#define TRICK_NAMES_COUNT           18

    static const char trick_names[TRICK_NAMES_COUNT]
                                 [TRICK_NAMES_MAX_CHARACTERS + 1] =
    {
      /*
         PostScript names are given in brackets if they differ from the
         family name.  The version numbers, together with the copyright or
         release year data, are taken from fonts available to the
         developers.

         Note that later versions of the fonts might be no longer tricky;
         for example, `MingLiU' version 7.00 (file `mingliu.ttc' from
         Windows 7) is an ordinary TTC with non-tricky subfonts.
       */

      "cpop",               /* dftt-p7.ttf; version 1.00, 1992 [DLJGyShoMedium] */
      "DFGirl-W6-WIN-BF",   /* dftt-h6.ttf; version 1.00, 1993 */
      "DFKaiSho-SB",        /* dfkaisb.ttf */
      "DFKaiShu",
      "DFKai-SB",           /* kaiu.ttf; version 3.00, 1998 [DFKaiShu-SB-Estd-BF] */
      "DLC",                /* dftt-m7.ttf; version 1.00, 1993 [DLCMingBold] */
                            /* dftt-f5.ttf; version 1.00, 1993 [DLCFongSung] */
      "DLCHayMedium",       /* dftt-b5.ttf; version 1.00, 1993 */
      "DLCHayBold",         /* dftt-b7.ttf; version 1.00, 1993 */
      "DLCKaiMedium",       /* dftt-k5.ttf; version 1.00, 1992 */
      "DLCLiShu",           /* dftt-l5.ttf; version 1.00, 1992 */
      "DLCRoundBold",       /* dftt-r7.ttf; version 1.00, 1993 */
      "HuaTianKaiTi?",      /* htkt2.ttf */
      "HuaTianSongTi?",     /* htst3.ttf */
      "Ming(for ISO10646)", /* hkscsiic.ttf; version 0.12, 2007 [Ming] */
                            /* iicore.ttf; version 0.07, 2007 [Ming] */
      "MingLiU",            /* mingliu.ttf */
                            /* mingliu.ttc; version 3.21, 2001 */
      "MingMedium",         /* dftt-m5.ttf; version 1.00, 1993 [DLCMingMedium] */
      "PMingLiU",           /* mingliu.ttc; version 3.21, 2001 */
      "MingLi43",           /* mingli.ttf; version 1.00, 1992 */
    };

    int  nn;


    for ( nn = 0; nn < TRICK_NAMES_COUNT; nn++ )
      if ( ft_strstr( name, trick_names[nn] ) )
        return TRUE;

    return FALSE;
  }
コード例 #7
0
int			parse_name_comment(t_bin *bin, t_parser *p)
{
	if (!bin->has_name && ft_strstr(p->line, NAME_CMD_STRING) == p->line)
	{
		p->i += ft_strlen(NAME_CMD_STRING);
		parse_name(bin, p);
		bin->has_name = 1;
		return (1);
	}
	else if (!bin->has_comment
			&& ft_strstr(p->line, COMMENT_CMD_STRING) == p->line)
	{
		p->i += ft_strlen(COMMENT_CMD_STRING);
		parse_comment(bin, p);
		bin->has_comment = 1;
		return (1);
	}
	else
		parse_error(p, "Expected file name or comment");
	return (0);
}
コード例 #8
0
ファイル: pars_three.c プロジェクト: NSSX/good
void		trait_pov(char *here, t_obj *obj)
{
	char	*here2;
	char	*temp;

	temp = chaine(here);
	here[0] = 'W';
	if (temp == NULL)
		return ;
	if ((here2 = ft_strstr(temp, "pos(")) && here2 != NULL)
	{
		here2 = chaine2(here2);
		obj->pos = *vec3d(here2);
	}
	if ((here2 = ft_strstr(temp, "color(")) && here2 != NULL)
	{
		here2 = chaine2(here2);
		obj->color = *vec3d(here2);
	}
	cut_pov(temp, obj);
}
コード例 #9
0
ファイル: b_cd.c プロジェクト: Selk/Dev
static char		*put_pwd(char *pwd, t_struct *val)
{
	int		i;
	char	*tmp1;
	char	*tmp2;

	i = 0;
	while (val->env[i])
	{
		if (ft_strstr(val->env[i], "PWD") && val->env[i][3] == '=')
		{
			tmp1 = ft_strstr(val->env[i], "PWD=");
			tmp2 = get_tmp(tmp1);
			val->env[i] = (char *)malloc(sizeof(char) * (ft_strlen(pwd) + 5));
			ft_strcpy(val->env[i], "PWD=");
			ft_strcat(val->env[i], pwd);
		}
		i++;
	}
	return (tmp2);
}
コード例 #10
0
ファイル: ft_cd.c プロジェクト: mzane42/ft_sh1
static void		update_env(t_params *p, char *new_dir)
{
	char	*tmp;

	p->oldpwd = p->pwd;
	if (ft_strstr(new_dir, "/nfs/"))
		p->pwd = ft_strdup(ft_strstr(new_dir, "/nfs/"));
	else
		p->pwd = ft_strdup(new_dir);
	if (!(update_var(p, "PWD=", p->pwd)))
	{
		tmp = ft_strjoin("setenv PWD ", p->pwd);
		ft_add_env(tmp, p);
		ft_strdel(&tmp);
	}
	if (!(update_var(p, "OLDPWD=", p->oldpwd)))
	{
		tmp = ft_strjoin("setenv OLDPWD ", p->oldpwd);
		ft_add_env(tmp, p);
		ft_strdel(&tmp);
	}
}
コード例 #11
0
ファイル: ft_strtabfind.c プロジェクト: Alienosaurus/Libft
char	*ft_strtabfind(char **tab, char *needle)
{
	int		i;

	i = 0;
	while (tab[i])
	{
		if (ft_strstr(tab[i], needle))
			return (tab[i]);
		i++;
	}
	return (NULL);
}
コード例 #12
0
ファイル: ft_strtabfind.c プロジェクト: Alienosaurus/Libft
int		ft_strtabifind(char **tab, char *needle)
{
	int		i;

	i = 0;
	while (tab[i])
	{
		if (ft_strstr(tab[i], needle))
			return (i);
		i++;
	}
	return (-1);
}
コード例 #13
0
ファイル: environ.c プロジェクト: viashen07/Minishell_final
char	*ft_getenv(char *str, t_env *e)
{
	int	y;

	y = 0;
	while (e->environ[y] != 0)
	{
		if (ft_strstr(e->environ[y], str) != NULL)
			return (&e->environ[y][ft_strlen(str) + 1]);
		y++;
	}
	return (NULL);
}
コード例 #14
0
ファイル: main.c プロジェクト: Barong42/piscine_c
int	main(void)
{
	char str[] = "SalutCommentCaVa";
	char str1[] = "";
	char *str2;
	char *str3;

	str2 = strstr(str, str1);
	printf("%s\n", str2);
	str3 = ft_strstr(str, str1);
	printf("%s\n", str3);
	return (0);
}
コード例 #15
0
ファイル: ft_set_options.c プロジェクト: pcrosnie/ft_ls
/* Numeros des options -R = 1, -a = 2, -r = 3, -t = 4, -l = 5
*/
int		*ft_detect_option(char *path)
{
	int *options;
	int i;

	i = 0;
	options = (int *)malloc(sizeof(int) * 6);
	while (i < 6)
		options[i++] = 0;
	i = 0;
	if (path[0] != '-')
	{
		options[5] = 2;
		return (options);
	}
	(ft_strstr(path, "R") != NULL) ? options[i++] = 1 : i++;
	(ft_strstr(path, "a") != NULL) ? options[i++] = 1 : i++;
	(ft_strstr(path, "r") != NULL) ? options[i++] = 1 : i++;
	(ft_strstr(path, "t") != NULL) ? options[i++] = 1 : i++;
	(ft_strstr(path, "l") != NULL) ? options[i++] = 1 : i++;
	return (options);
}
コード例 #16
0
ファイル: sub_gens.c プロジェクト: nbouteme/rtv1
t_generror		*gen_type(t_prim_type *ret, t_ast *elem)
{
	const char	*types[] = {"plane", "sphere", "cone", "cylinder", 0};
	int			i;

	if (!ft_strstr(elem->tag, "|string"))
		return (new_gerror(elem, "Expected string type, got: ", elem->tag));
	i = str_arr_find(types, elem->value);
	if (i == -1)
		return (new_gerror(elem, "Unknown primitive type: ", elem->value));
	*ret = i;
	return (0);
}
コード例 #17
0
ファイル: ft_str_is_numeric.c プロジェクト: D3nn4/exos
int ft_str_is_numeric(char *str)
{
	int i;
	i = 0;
	char numbers[] = "0123456789";
	while (str[i] != '\0'){
		if (ft_strstr(numbers, &str[i]) != NULL)
			i++;
		else 
			return 0;	
	}
	return 1;
}
コード例 #18
0
ファイル: display.c プロジェクト: jwalle/filler
void	display(GLFWwindow *win, t_env *e)
{
	char	*line;
	float	eom;
	char	**got;

	while (!glfwWindowShouldClose(win) && !glfwGetKey(win, 256))
	{
		glfwPollEvents();
		if (get_next_line(0, &line) > 0)
		{
			glClear(GL_COLOR_BUFFER_BIT);
			if (ft_strstr(line, "<got"))
				got = ft_strsplit(line, ' ');
			else if (ft_strstr(line, "Plateau"))
			{
				e->map_size = get_size_bonus(line, e);
				if (e->map_size && !e->sz)
					e->sz = get_square_size(e->map_size);
				get_next_line(0, &line);
				e->map = get_map(e, line);
				eom = disp_grid(e->map_size, -0.95, 0.95, e->sz);
				if (e->piece_size[0] > 0)
					disp_piece(e, eom);
				put_map_square(e);
				if (got != NULL)
					get_play(eom, got, e);
				glfwSwapBuffers(win);
			}
		}
		else
		{
			put_winner(e, eom);
			glfwSwapBuffers(win);
			glfwWaitEvents(); //TODO BETTER HOLD
		}
	}
}
コード例 #19
0
ファイル: glob_match.c プロジェクト: dbaldy/globing
static int	star(char *tested, char *word)
{
	char	*buf;
	char	*ret;
	int		skip;

	buf = word + 1;
	while (*buf && *buf != '*' && *buf != '?' && *buf != '[')
		buf++;
	if ((skip = skip_to_glob(buf, tested, word)) == 1)
		return (1);
	else if (skip == -1)
		return (0);
	buf = ft_strsub(word + 1, 0, buf - (word + 1));
	ret = ft_strstr(tested, buf);
	while (ret != NULL &&
			(match(ret + ft_strlen(buf), word + ft_strlen(buf) + 1)) == 0)
		ret = ft_strstr(ret + ft_strlen(buf), buf);
	free(buf);
	if (ret == NULL)
		return (0);
	return (1);
}
コード例 #20
0
ファイル: ft_operas.c プロジェクト: bciss/projets_42
int					ft_is_opera(char *str)
{
	int			i;
	static char	*g_opera[3] = {"||", "&&", "|"};

	i = 0;
	while (i < 3)
	{
		if (ft_strstr(str, g_opera[i]))
			return (i);
		i++;
	}
	return (-1);
}
コード例 #21
0
ファイル: str_maxlenoc.c プロジェクト: Balkhagal/42
char 	*match_from_end(char *s, char *m)
{
	char *cpy;

	cpy = ft_strdup(m);
	while (*cpy)
	{
		printf("cpy: %s\n", cpy);
		if (ft_strstr(s, cpy))
			return (cpy);
		cpy[ft_strlen(cpy) - 1] = 0;
	}
	return (cpy);
}
コード例 #22
0
ファイル: main.c プロジェクト: Marrylup/Piscine42_C
int main(/*int ac, char **argv*/)
{
    char a[100] = "63d012345";
    char b[100] = "01234";
    char *c;
    char *d;
//    if (ac > 2)
//    {
        c = strstr(a, b);
        d = ft_strstr(a, b);
        printf("%s;%s", c, d);
//    }
    return(0);
}
コード例 #23
0
ファイル: get_cone.c プロジェクト: aperraul/RTV1
static void		ft_fill_cone(t_rtv1 *rtv1, char **tab, char **tri, int i)
{
	char	*hexa;

	rtv1->obj.cone[i].posx = ft_atoid(tri[0]);
	rtv1->obj.cone[i].posy = ft_atoid(tri[1]);
	rtv1->obj.cone[i].posz = ft_atoid(tri[2]);
	rtv1->obj.cone[i].base_size = ft_atoid(tab[1]);
	rtv1->obj.cone[i].height = ft_atoid(tab[2]);
	if ((hexa = ft_strstr(tab[3], "0x")))
		rtv1->obj.cone[i].color = ft_abs(ft_atoi_base(&hexa[2], 16));
	else
		rtv1->obj.cone[i].color = ft_abs(ft_atoi_base(tab[3], 16));

}
コード例 #24
0
ファイル: str_maxlenoc.c プロジェクト: Balkhagal/42
void match_right(char *s1, char *s2)
{
	char *c1;

	c1 = ft_strdup(s1);
	while (*c1)
	{
		if (ft_strstr(s2, c1))
		{
			if (ft_strlen(c1) > ft_strlen(local_max))
				local_max = ft_strdup(c1);
		}
		c1[ft_strlen(c1) - 1] = 0;
	}
}
コード例 #25
0
ファイル: liaison.c プロジェクト: Fantasim/Langage-C
int presence_occ(t_liaison *liaison, char *name)
{
  int i;
  t_liaison *tmp;

  tmp = liaison;
  i = 0;
  while (tmp)
    {
      if (ft_strstr(tmp->line, name))
	i++;
      tmp = tmp->next;
    }
  return (i);
}
コード例 #26
0
ファイル: main.c プロジェクト: dieuson/42-projects
static void		detect_flags(t_check *check, int argc, char **argv)
{
	if (argc <= 1)
		return ;
	FT_INIT(int, line, 1);
	check->flags = ft_strdup("0000");
	while (argv[line])
	{
		if (ft_strchr(argv[line], '-'))
		{
			if (ft_strchr(argv[line], 'r'))
				(check->flags)[0] = 'r';
			if (ft_strchr(argv[line], 'c'))
				(check->flags)[1] = 'c';
			if (!ft_strstr(argv[line], "--name=") && ft_strchr(argv[line], 'm'))
				(check->flags)[2] = 'm';
			if (ft_strstr(argv[line], "--name="))
				if (ft_strlen(ft_strchr(argv[line], '=')) > 1)
					check->ant_name =
						ft_strdup((ft_strchr(argv[line], '=') + 1));
		}
		line++;
	}
}
コード例 #27
0
ファイル: main.c プロジェクト: papouliqu/subjects42
int		main(int argc, char **argv)
{
	char	*body;
	char	*part;

	body = argv[1];
	part = argv[2];
	if (argc > 2)
	{
		printf("In the string [%s] find [%s]\n", body, part);
		printf("In the string ft_strstr  [%s] \n", ft_strstr(body, part));
		printf("In the string find strstr[%s] \n", strstr(body, part));
	}
	return (0);
}
コード例 #28
0
ファイル: ft_check_value.c プロジェクト: Tolo789/Lem-in
static int	ft_check_len_modif(t_print *prnt)
{
	if (ft_strstr(prnt->len, "hh") && (prnt->type == 'd' || prnt->type == 'D'))
		return (1);
	if (ft_strstr(prnt->len, "hh") && (prnt->type == 'o' || prnt->type == 'O'))
		return (1);
	if (ft_strstr(prnt->len, "hh") && (prnt->type == 'u' || prnt->type == 'U'))
		return (1);
	if (ft_strstr(prnt->len, "hh") && (prnt->type == 'x' || prnt->type == 'X'))
		return (1);
	if (ft_strstr(prnt->len, "hh") && (prnt->type == 'n' || prnt->type == 'i'))
		return (1);
	if (ft_strstr(prnt->len, "ll") && (prnt->type == 'd' || prnt->type == 'D'))
		return (1);
	if (ft_strstr(prnt->len, "ll") && (prnt->type == 'o' || prnt->type == 'O'))
		return (1);
	if (ft_strstr(prnt->len, "ll") && (prnt->type == 'u' || prnt->type == 'U'))
		return (1);
	if (ft_strstr(prnt->len, "ll") && (prnt->type == 'x' || prnt->type == 'X'))
		return (1);
	if (ft_strstr(prnt->len, "ll") && (prnt->type == 'n' || prnt->type == 'i'))
		return (1);
	return (-1);
}
コード例 #29
0
ファイル: parse.c プロジェクト: the-only-ahmed/raytracer
int			parse_verif(char *line, int fd, t_env *e, int i)
{
	if (ft_strstr(line, "sphere"))
	{
		if (!ft_parse_sphere(fd, line, e->objects, i))
			return (0);
		e->types[i] = ft_strdup("sphere");
	}
	else if (ft_strstr(line, "cylinder"))
	{
		if (!ft_parse_sphere(fd, line, e->objects, i))
			return (0);
		if (!ft_parse_cylindre(fd, line, e->objects, i))
			return (0);
		e->types[i] = ft_strdup("cylindre");
	}
	else if (ft_strstr(line, "cone"))
		return (ft_parse_verif_3(fd, line, e, i));
	else if (ft_strstr(line, "plan"))
		return (ft_parse_verif_2(fd, line, e, i));
	else
		return (0);
	return (1);
}
コード例 #30
0
int			ft_syntax_analysis(char **args)
{
	int		i;

	i = 0;
	if (args == NULL)
		return (1);
	while (args[i] != '\0')
	{
		if (ft_strchr(SEPARATORS, args[i][0]) != NULL)
		{
			if (ft_strlen(args[i]) > 2)
				return (ft_parse_error(args[i]));
			if (ft_strstr(args[i], "||") && ft_check_double_pipe(args, i))
				return (ft_parse_error(args[i]));
			else if (ft_strchr(args[i], ';') && ft_check_semi_colon(args, i))
				return (ft_parse_error(args[i]));
			else if (ft_strstr(args[i], "&&") && ft_check_double_and(args, i))
				return (ft_parse_error(args[i]));
		}
		i++;
	}
	return (ft_pipes_analysis(args));
}