diff options
| author | JozanLeClerc <bousset.rudy@gmail.com> | 2020-08-26 18:39:48 +0200 | 
|---|---|---|
| committer | JozanLeClerc <bousset.rudy@gmail.com> | 2020-08-26 18:39:48 +0200 | 
| commit | eb40600dc1e7e4c61547173953958d50bf6a89b3 (patch) | |
| tree | ab42e6335884a63bba2b7f8234e5ea18270799ec /src | |
| parent | Err check in progress (diff) | |
| download | 42-minishell-eb40600dc1e7e4c61547173953958d50bf6a89b3.tar.gz 42-minishell-eb40600dc1e7e4c61547173953958d50bf6a89b3.tar.bz2 42-minishell-eb40600dc1e7e4c61547173953958d50bf6a89b3.tar.xz 42-minishell-eb40600dc1e7e4c61547173953958d50bf6a89b3.tar.zst 42-minishell-eb40600dc1e7e4c61547173953958d50bf6a89b3.zip | |
Err check done
Diffstat (limited to '')
| -rw-r--r-- | src/b_sqb_err.c | 57 | 
1 files changed, 46 insertions, 11 deletions
| diff --git a/src/b_sqb_err.c b/src/b_sqb_err.c index eac6a8a..6c68841 100644 --- a/src/b_sqb_err.c +++ b/src/b_sqb_err.c @@ -30,17 +30,24 @@ static uint8_t  }  static uint8_t -	b_double_op(const uint64_t argc, +	b_expect_arg(const uint64_t argc,  				char *argv[])  { -	if (argc > 4) +	if (argc == 3)  	{ -		ft_dprintf(STDERR_FILENO, "[: %s: unexpected operator\n", argv[2]); +		ft_dprintf(STDERR_FILENO, "[: %s: argument expected\n", argv[1]);  		return (1);  	} -	else if (argc == 3) +	return (0); +} + +static uint8_t +	b_double_op(const uint64_t argc, +				char *argv[]) +{ +	if (argc > 4)  	{ -		ft_dprintf(STDERR_FILENO, "[: %s: argument expected\n", argv[1]); +		ft_dprintf(STDERR_FILENO, "[: %s: unexpected operator\n", argv[2]);  		return (1);  	}  	return (0); @@ -49,7 +56,30 @@ static uint8_t  static uint8_t  	b_bad_nbr(char *argv[])  { -	(void)argv; +	char	*ptr; + +	if (ft_ischarset("+-0123456789", argv[0][0]) == FALSE || +		ft_ischarset("+-0123456789", argv[2][0]) == FALSE) +		return (1); +	ptr = argv[0] + 1; +	while (*ptr != '\0') +	{ +		if (ft_isdigit(*ptr) == FALSE) +		{ +			ft_dprintf(STDERR_FILENO, "[: %s: bad number\n", argv[0]); +			return (1); +		} +		ptr++; +	} +	ptr = argv[2] + 1; +	while (*ptr != '\0') +	{ +		if (ft_isdigit(*ptr) == FALSE) +			ft_dprintf(STDERR_FILENO, "[: %s: bad number\n", argv[2]); +		if (ft_isdigit(*ptr) == FALSE) +			return (1); +		ptr++; +	}  	return (0);  } @@ -59,6 +89,16 @@ uint8_t  {  	const uint64_t	argc = u_builtins_get_argc((const char**)argv); +	if (id >= FT_ID_SQB_NT) +	{ +		if (b_expect_arg(argc, argv) != 0) +			return (1); +	} +	if (id >= FT_ID_SQB_EQ) +	{ +		if (b_bad_nbr(argv) != 0) +			return (1); +	}  	if (id < FT_ID_SQB_NT)  	{  		if (b_single_op(argc, argv) != 0) @@ -69,10 +109,5 @@ uint8_t  		if (b_double_op(argc, argv) != 0)  			return (1);  	} -	if (id >= FT_ID_SQB_EQ) -	{ -		if (b_bad_nbr(argv) != 0) -			return (1); -	}  	return (0);  } | 
