valid_arguments

This commit is contained in:
whaffman 2025-04-24 11:40:35 +02:00
parent d763c08626
commit 39fea719bf
3 changed files with 54 additions and 6 deletions

View File

@ -6,7 +6,7 @@
/* By: whaffman <whaffman@student.codam.nl> +#+ */ /* By: whaffman <whaffman@student.codam.nl> +#+ */
/* +#+ */ /* +#+ */
/* Created: 2025/04/19 14:41:55 by whaffman #+# #+# */ /* Created: 2025/04/19 14:41:55 by whaffman #+# #+# */
/* Updated: 2025/04/23 12:28:37 by whaffman ######## odam.nl */ /* Updated: 2025/04/24 11:38:31 by whaffman ######## odam.nl */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -28,5 +28,6 @@ int parse_file(char *buffer, t_map *map);
void print_config(t_map *map); void print_config(t_map *map);
t_tile **copy_map(t_tile **grid, int width, int height); t_tile **copy_map(t_tile **grid, int width, int height);
char **pointer_lines(char *buffer, char c); char **pointer_lines(char *buffer, char c);
int valid_arguments(int argc, char **argv);
#endif #endif

View File

@ -6,7 +6,7 @@
/* By: qmennen <qmennen@student.codam.nl> +#+ */ /* By: qmennen <qmennen@student.codam.nl> +#+ */
/* +#+ */ /* +#+ */
/* Created: 2025/04/15 16:01:29 by qmennen #+# #+# */ /* Created: 2025/04/15 16:01:29 by qmennen #+# #+# */
/* Updated: 2025/04/23 11:58:04 by whaffman ######## odam.nl */ /* Updated: 2025/04/24 11:39:05 by whaffman ######## odam.nl */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -18,11 +18,8 @@ int main(int argc, char **argv)
errno = 0; errno = 0;
game = NULL; game = NULL;
if (argc != 2) if (!valid_arguments(argc, argv))
{
ft_putstr_fd("Usage: ./cub3d <map.cub>\n", 2);
return (EXIT_FAILURE); return (EXIT_FAILURE);
}
if (!initialize_cub3d(&game, argv[1])) if (!initialize_cub3d(&game, argv[1]))
{ {
perror("initialize_cub3d"); perror("initialize_cub3d");

View File

@ -0,0 +1,50 @@
/* ************************************************************************** */
/* */
/* :::::::: */
/* valid_arguments.c :+: :+: */
/* +:+ */
/* By: whaffman <whaffman@student.codam.nl> +#+ */
/* +#+ */
/* Created: 2025/04/24 11:28:55 by whaffman #+# #+# */
/* Updated: 2025/04/24 11:38:05 by whaffman ######## odam.nl */
/* */
/* ************************************************************************** */
#include "cub3d.h"
#include "libft.h"
static int valid_extension(char *filename)
{
int len;
len = ft_strlen(filename);
if (len < 4)
return (FAILURE);
if (!ft_strncmp(filename + len - 4, ".cub", 4))
return (SUCCESS);
return (FAILURE);
}
int valid_arguments(int argc, char **argv)
{
int fd;
if (argc != 2)
return (ft_putstr_fd("Usage: ./cub3d <map.cub>\n", 2), FAILURE);
if (!valid_extension(argv[1]))
{
ft_putstr_fd("Error: Invalid file extension. Expected .cub\n", 2);
return (FAILURE);
}
fd = open(argv[1], O_RDONLY);
if (fd < 0)
return (perror("Error opening file"), FAILURE);
if (read(fd, NULL, 0) < 0)
{
perror("Error reading file");
close(fd);
return (FAILURE);
}
close(open(argv[1], O_RDONLY));
return (SUCCESS);
}