forked from enlightenment/efl
only get the directory of the current file once
SVN revision: 12027
This commit is contained in:
parent
e8925fc4fd
commit
bd8be0233c
|
@ -60,8 +60,9 @@ static void
|
||||||
source_fetch_file(char *fil, char *filname)
|
source_fetch_file(char *fil, char *filname)
|
||||||
{
|
{
|
||||||
FILE *f;
|
FILE *f;
|
||||||
char buf[256 * 1024];
|
char buf[256 * 1024], *dir = NULL;
|
||||||
long sz;
|
long sz;
|
||||||
|
ssize_t dir_len = 0;
|
||||||
SrcFile *sf;
|
SrcFile *sf;
|
||||||
|
|
||||||
f = fopen(fil, "rb");
|
f = fopen(fil, "rb");
|
||||||
|
@ -136,28 +137,28 @@ source_fetch_file(char *fil, char *filname)
|
||||||
forgetit = 1;
|
forgetit = 1;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
char *slash, *dir = NULL;
|
char *slash;
|
||||||
ssize_t dir_len = 0, l = 0;
|
ssize_t l = 0;
|
||||||
|
|
||||||
/* get the directory of the current file */
|
/* get the directory of the current file
|
||||||
if (strrchr (filname, '/'))
|
* if we haven't already done so
|
||||||
|
*/
|
||||||
|
if (!dir && strrchr (filname, '/'))
|
||||||
{
|
{
|
||||||
dir = mem_strdup(filname);
|
dir = mem_strdup(filname);
|
||||||
slash = strrchr (dir, '/');
|
slash = strrchr (dir, '/');
|
||||||
*slash = '\0';
|
*slash = '\0';
|
||||||
dir_len = strlen (dir);
|
dir_len = strlen (dir);
|
||||||
l++; /* one extra char for the delimiter */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
l += pp - p + dir_len;
|
l = pp - p + dir_len + 1;
|
||||||
file = mem_alloc(l);
|
file = mem_alloc(l);
|
||||||
|
|
||||||
if (!dir_len)
|
if (!dir_len)
|
||||||
snprintf(file, l, "%s", p + 1);
|
snprintf(file, l - 1, "%s", p + 1);
|
||||||
else
|
else
|
||||||
snprintf(file, l, "%s/%s", dir, p + 1);
|
snprintf(file, l, "%s/%s", dir, p + 1);
|
||||||
|
|
||||||
free (dir);
|
|
||||||
forgetit = 1;
|
forgetit = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -176,6 +177,7 @@ source_fetch_file(char *fil, char *filname)
|
||||||
free(file);
|
free(file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
free (dir);
|
||||||
fclose(f);
|
fclose(f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue