helpers.c \
\
builtins/cd.c \
+ builtins/echo.c \
SOURCES := $(addprefix $(SRCDIR)/, $(SOURCES))
/* By: ljiriste <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/08/02 17:40:19 by ljiriste #+# #+# */
-/* Updated: 2024/08/02 17:42:18 by ljiriste ### ########.fr */
+/* Updated: 2024/08/22 13:35:41 by lnikolov ### ########.fr */
/* */
/* ************************************************************************** */
int set_env_var_value(t_execution_env *env, const char *var_name,
const char *new_value);
int cd(int argc, char **argv, t_execution_env *env);
+int echo(int argc, char **argv);
#endif // EXECUTION_H
--- /dev/null
+#include <stdio.h>
+#include "minishell.h"
+#include "execution.h"
+#include <unistd.h>
+
+// size_t ft_strlen(const char *str) //libft ()
+// {
+// unsigned int i;
+// i = 0;
+// while (str[i] != '\0')
+// {
+// i++;
+// }
+// return (i);
+// }
+
+// void ft_putstr_fd(char *s, int fd) //libft fuction
+// {
+// if (!s)
+// return;
+// write(fd, s, ft_strlen(s));
+// }
+
+int ft_check_n(char *str)
+{
+ if (str[0] == '-' && str[1] == 'n')
+ return (1);
+
+ return (0);
+}
+
+int echo(int argc, char **argv)
+{
+ if (argc == 1)
+ return (1);
+ int i = 1;
+ int flag = 0;
+ int t;
+
+ t = ft_check_n(argv[i]);
+ if (t == 1)
+ {
+ flag = 1;
+ i++;
+ }
+ while (i < argc)
+ {
+ ft_putstr_fd(argv[i], 1);
+ if (i + 1 < argc)
+ ft_putstr_fd(" ", 1);
+ i++;
+ }
+ if (flag == 0)
+ ft_putstr_fd("\n", 1);
+
+ return 1;
+}
/* ::: :::::::: */
/* execution.c :+: :+: :+: */
/* +:+ +:+ +:+ */
-/* By: ljiriste <ljiriste@student.42prague.com> +#+ +:+ +#+ */
+/* By: lnikolov <lnikolov@student.42prague.com +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/07/21 08:57:54 by ljiriste #+# #+# */
-/* Updated: 2024/08/02 18:35:53 by ljiriste ### ########.fr */
+/* Updated: 2024/08/22 12:46:42 by lnikolov ### ########.fr */
/* */
/* ************************************************************************** */
{
if (!ft_strcmp(str, "cd"))
return (1);
+ if (!ft_strcmp(str, "echo"))
+ return (1);
return (0);
}
{
if (!ft_strcmp(fields[0], "cd"))
env->ret_val = cd(count_fields(fields), fields, env);
+ if (!ft_strcmp(fields[0], "echo"))
+ env->ret_val = echo(count_fields(fields), fields);
else
return (-1);
return (0);