summaryrefslogtreecommitdiffstats
path: root/src/p_lcom_next.c
diff options
context:
space:
mode:
authorJozanLeClerc <bousset.rudy@gmail.com>2020-09-08 18:50:11 +0200
committerJozanLeClerc <bousset.rudy@gmail.com>2020-09-08 18:50:11 +0200
commit4dd10e6f4de22446ea84d7b194d2a18cb6e43c6c (patch)
tree2768d27ebe01fa5e74b4e6d14c5defdfd501a1d6 /src/p_lcom_next.c
parentstatic hist, words fix (diff)
download42-minishell-4dd10e6f4de22446ea84d7b194d2a18cb6e43c6c.tar.gz
42-minishell-4dd10e6f4de22446ea84d7b194d2a18cb6e43c6c.tar.bz2
42-minishell-4dd10e6f4de22446ea84d7b194d2a18cb6e43c6c.tar.xz
42-minishell-4dd10e6f4de22446ea84d7b194d2a18cb6e43c6c.tar.zst
42-minishell-4dd10e6f4de22446ea84d7b194d2a18cb6e43c6c.zip
Names
Diffstat (limited to 'src/p_lcom_next.c')
-rw-r--r--src/p_lcom_next.c223
1 files changed, 0 insertions, 223 deletions
diff --git a/src/p_lcom_next.c b/src/p_lcom_next.c
deleted file mode 100644
index 16d8aac..0000000
--- a/src/p_lcom_next.c
+++ /dev/null
@@ -1,223 +0,0 @@
-/* ************************************************************************** */
-/* */
-/* ::: :::::::: */
-/* p_line_next.c :+: :+: :+: */
-/* +:+ +:+ +:+ */
-/* By: rbousset <marvin@42.fr> +#+ +:+ +#+ */
-/* +#+#+#+#+#+ +#+ */
-/* Created: 2020/02/14 17:19:27 by rbousset #+# #+# */
-/* Updated: 2020/02/14 17:19:29 by rbousset ### ########lyon.fr */
-/* */
-/* ************************************************************************** */
-
-#include <libft.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <limits.h>
-
-#include "d_define.h"
-#include "s_destroy.h"
-#include "f_fail.h"
-#include "s_struct.h"
-#include "u_utils.h"
-#include "u_vars.h"
-#include "u_vars_next.h"
-
-/* TODO: norme */
-
-static char
- *p_subst_this_var(char **p, int64_t i, char word[], t_msh *msh)
-{
- char tmp[4096];
- char varval[4096];
- char *ptr;
- size_t varlen;
-
- ptr = word;
- varlen = i + 1;
- while (ptr[varlen] != C_NUL &&
- ft_ischarset("$=\\/@%^*+{}[]<>,.-", ptr[varlen]) == FALSE &&
- ft_iswhitespace(ptr[varlen]) == FALSE)
- varlen += 1;
- ft_strlcpy(tmp, ptr + i, varlen + 1 - i);
- u_get_var_value(varval, tmp, 4096, msh);
- ft_strlcpy(tmp, ptr + varlen, varlen);
- word = ft_nrealloc(word, i, i + ft_strlen(varval) + ft_strlen(tmp) + 1);
- ft_strlcpy(word + i, varval, ft_strlen(varval) + 1);
- ft_strlcpy(word + (i + ft_strlen(varval)), tmp, ft_strlen(tmp) + 1);
- *(p) = word + (i + ft_strlen(varval) - 1);
- return (word);
-}
-
-char
- *p_subst_vars(char word[], t_msh *msh)
-{
- char *ptr;
-
- ptr = word;
- while (*ptr != C_NUL)
- {
- if (*ptr == '$' && u_is_not_escaped(word, ptr) == TRUE)
- {
- if ((word = p_subst_this_var(&ptr, (ptr - word), word, msh)) == NULL)
- {
- return (NULL);
- }
- }
- ptr++;
- }
- return (word);
-}
-
-char
- **p_subst_home(char *words[],
- t_msh *msh)
-{
- char path[PATH_MAX];
- char **ptr;
-
- u_get_var_value(path, "$HOME", PATH_MAX, msh);
- if (path[0] == C_NUL)
- return (words);
- ptr = words;
- while (*ptr != NULL)
- {
- if (*ptr[0] == '~')
- {
- *ptr = ft_strsubst(*ptr, "~", path);
- }
- ptr++;
- }
- return (words);
-}
-
-static void
- p_register_word(char word[],
- t_msh *msh)
-{
- char name[255];
- char val[255];
- char *ptr;
- size_t i;
-
- name[0] = '$';
- ptr = word;
- i = 1;
- while (*ptr != '=' && *ptr != '\0')
- {
- name[i] = *ptr;
- i++;
- ptr++;
- }
- name[i] = '\0';
- ptr++;
- i = 0;
- while (*ptr != '\0')
- {
- val[i] = *ptr;
- i++;
- ptr++;
- }
- val[i] = '\0';
- u_subst_var_value(name, val, msh);
-}
-
-static char
- **p_add_to_variables_and_delete(char *words[],
- t_bool reg,
- int64_t i,
- t_msh *msh)
-{
- int64_t j;
- int64_t k;
- char **rewords;
-
- j = 0;
- if (reg == TRUE)
- {
- while (words[j] && j < i)
- {
- p_register_word(words[j], msh);
- j++;
- }
- }
- j = 0;
- while (words[i + j] != NULL)
- j++;
- if (!(rewords = (char**)malloc((j + 1) * sizeof(char*))))
- {
- ft_delwords(words);
- f_alloc_and_destroy_msh(msh);
- }
- k = i;
- while (i - k < j)
- {
- if ((rewords[i - k] = ft_strdup(words[i])) == NULL)
- {
- ft_delwords(words);
- f_alloc_and_destroy_msh(msh);
- }
- i++;
- }
- rewords[i - k] = 0;
- ft_delwords(words);
- i++;
- return (rewords);
-}
-
-static void
- p_add_to_env_fork(int64_t i,
- char *words[],
- t_msh *msh)
-{
- int64_t j;
-
- j = 0;
- while(j < i)
- {
- ft_strlcpy(msh->env_fork_tmp[j], words[j], ft_strlen(words[j]) + 1);
- j++;
- }
- msh->env_fork_tmp[j][0] = '\0';
-}
-
-char
- **p_check_args_equals(char *words[],
- t_msh *msh)
-{
- char *ptr;
- t_bool reg;
- t_bool isvar;
- int64_t i;
-
- i = 0;
- reg = FALSE;
- isvar = FALSE;
- while (words[i])
- {
- ptr = words[i];
- while (*ptr != '\0' && *ptr != '=')
- ptr++;
- if (*ptr == '=')
- {
- reg = TRUE;
- isvar = TRUE;
- }
- if (*ptr == '\0' || words[i][0] == '=' ||
- ft_isdigit(words[i][0]) == TRUE)
- {
- reg = FALSE;
- if (i == 0)
- isvar = FALSE;
- if (isvar == TRUE)
- p_add_to_env_fork(i, words, msh);
- else
- msh->env_fork_tmp[0][0] = '\0';
- break ;
- }
- i++;
- }
- if (isvar == TRUE)
- return (p_add_to_variables_and_delete(words, reg, i, msh));
- return (words);
-}