aboutsummaryrefslogtreecommitdiffstats
path: root/minilibx-bsd/mlx_int_str_to_wordtab.c
diff options
context:
space:
mode:
Diffstat (limited to 'minilibx-bsd/mlx_int_str_to_wordtab.c')
-rw-r--r--minilibx-bsd/mlx_int_str_to_wordtab.c113
1 files changed, 113 insertions, 0 deletions
diff --git a/minilibx-bsd/mlx_int_str_to_wordtab.c b/minilibx-bsd/mlx_int_str_to_wordtab.c
new file mode 100644
index 0000000..7f92089
--- /dev/null
+++ b/minilibx-bsd/mlx_int_str_to_wordtab.c
@@ -0,0 +1,113 @@
+/*
+** mlx_int_str_to_wordtab.c for MinilibX in
+**
+** Made by Charlie Root
+** Login <ol@epitech.net>
+**
+** Started on Wed Sep 13 11:36:09 2000 Charlie Root
+** Last update Fri Dec 14 11:02:09 2001 Charlie Root
+*/
+
+
+#include "mlx_int.h"
+
+
+int mlx_int_str_str(char *str,char *find,int len)
+{
+ int len_f;
+ int pos;
+ char *s;
+ char *f;
+
+ len_f = strlen(find);
+ if (len_f>len)
+ return (-1);
+ pos = 0;
+ while (*(str+len_f-1))
+ {
+ s = str;
+ f = find;
+ while (*(f++) == *(s++))
+ if (!*f)
+ return (pos);
+ str ++;
+ pos ++;
+ }
+ return (-1);
+}
+
+
+
+int mlx_int_str_str_cote(char *str,char *find,int len)
+{
+ int len_f;
+ int pos;
+ char *s;
+ char *f;
+ int cote;
+
+ len_f = strlen(find);
+ if (len_f>len)
+ return (-1);
+ cote = 0;
+ pos = 0;
+ while (*(str+len_f-1))
+ {
+ if (*str=='"')
+ cote = 1-cote;
+ if (!cote)
+ {
+ s = str;
+ f = find;
+ while (*(f++) == *(s++))
+ if (!*f)
+ return (pos);
+ }
+ str ++;
+ pos ++;
+ }
+ return (-1);
+}
+
+
+char **mlx_int_str_to_wordtab(char *str)
+{
+ char **tab;
+ int pos;
+ int nb_word;
+ int len;
+
+ len = strlen(str);
+ nb_word = 0;
+ pos = 0;
+ while (pos<len)
+ {
+ while (*(str+pos)==' ' || *(str+pos)=='\t')
+ pos ++;
+ if (*(str+pos))
+ nb_word ++;
+ while (*(str+pos) && *(str+pos)!=' ' && *(str+pos)!='\t')
+ pos ++;
+ }
+ if (!(tab = malloc((1+nb_word)*sizeof(*tab))))
+ return ((char **)0);
+ nb_word = 0;
+ pos = 0;
+ while (pos<len)
+ {
+ while (*(str+pos)==' ' || *(str+pos)=='\t')
+ {
+ *(str+pos) = 0;
+ pos ++;
+ }
+ if (*(str+pos))
+ {
+ tab[nb_word] = str+pos;
+ nb_word ++;
+ }
+ while (*(str+pos) && *(str+pos)!=' ' && *(str+pos)!='\t')
+ pos ++;
+ }
+ tab[nb_word] = 0;
+ return (tab);
+}