14 #include <sys/types.h> 23 for (i = len; i > 0; i--)
35 cstr = (
char *)malloc (len + 1);
37 memcpy (cstr, fstr, len);
40 for (i = len-1; i >= 0; i--)
58 for (i = 0; i < len1; i++)
71 for (i = len; i > 0; i--)
75 dir = (
char *)malloc (i + 1);
77 strncpy (dir, fstr, i);
83 int lfi_copy (
const char * f1,
const char * f2)
93 if ((fp1 = fopen (f1,
"r")) == NULL)
96 if ((fp2 = fopen (f2,
"w")) == NULL)
99 while ((nr = fread (buf, 1, SIZE, fp1)) > 0)
101 if (fwrite (buf, 1, SIZE, fp2) != nr)
114 if (fclose (fp1) != 0)
116 if (fclose (fp2) != 0)
127 char f1[cnomf1_len+1];
128 char f2[cnomf2_len+1];
135 char f1[cnomf1_len+1];
136 char f2[cnomf2_len+1];
146 if (link (f1, f2) != 0)
148 if ((errno == EXDEV) && copy)
161 if (stat (path, &st) == 0)
166 return mkdir (path, 0777);
175 for (i = 0; path[
i]; )
176 if ((path[i] ==
'/') && (path[i+1] ==
'/'))
177 strcpy (&path[i], &path[i+1]);
184 for (i = 0, j = 0; path[
i]; i++)
185 if (strncmp (&path[i],
"/../", 3) == 0)
189 strcpy (&path[j], &path[i+4]);
193 else if (path[i] ==
'/')
209 char * _base_ = strdup (base);
210 char * _path_ = strdup (path);
211 char * _base = _base_;
212 char * _path = _path_;
220 for (i = 0, j = 0, k = 0; _base[
i] && _path[
i]; i++)
221 if (_base[i] != _path[i])
225 else if (_base[i] ==
'/')
236 for (i = strlen (_base); i > 0; i--)
249 for (i = 0; _base[
i]; i++)
254 path = (
char *)malloc (3 * j + strlen (_path) + 1);
260 strcat (path,
"../");
262 strcat (path, _path);
264 free ((
void *)_base_);
265 free ((
void *)_path_);
281 char * dir = strdup (path);
283 for (i = strlen (dir); i >= 0; i--)
287 return (
const char *)dir;
int lfi_mkdir(const char *path)
char * lfi_fdirname(const character *fstr, const character_len len)
char * lfi_fstrdup(const character *fstr, const character_len len, char *cstr)
int lfi_smartcopy(const char *f1, const char *f2, int copy)
const char * lfi_dirname(const char *path)
char * lfi_make_relative_path(const char *base, char *path)
character_len lfi_fstrlen(const character *fstr, const character_len len)
int lfi_fcopy(const character *cnomf1, const character *cnomf2, character_len cnomf1_len, character_len cnomf2_len)
const char * lfi_cleanup_path(char *path)
int lfi_copy(const char *f1, const char *f2)
int lfi_fstrcmp(const character *s1, const character *s2, character_len len1, character_len len2)
int lfi_fsmartcopy(const character *cnomf1, const character *cnomf2, int copy, character_len cnomf1_len, character_len cnomf2_len)
int lfi_rmdir(const char *path)