Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2006-12-21 17:00:18 +0300
committerTon Roosendaal <ton@blender.org>2006-12-21 17:00:18 +0300
commite4663acd76419a16d332a0fef2d75bf7bfe943e9 (patch)
tree8bd6a044c9e9266723091a67ec0ef82321d005ec /source/blender/blenkernel/intern/packedFile.c
parent47bc3d1208c48903f53728d17d3acbb1ccbd06cb (diff)
UnPack data fix:
Now uses original filename for unpacking, instead of the Blender ID name. That latter was a nice idea, but because of its 20 char maxname limit not working well.
Diffstat (limited to 'source/blender/blenkernel/intern/packedFile.c')
-rw-r--r--source/blender/blenkernel/intern/packedFile.c45
1 files changed, 9 insertions, 36 deletions
diff --git a/source/blender/blenkernel/intern/packedFile.c b/source/blender/blenkernel/intern/packedFile.c
index 0cdfda3be5d..4edf989acda 100644
--- a/source/blender/blenkernel/intern/packedFile.c
+++ b/source/blender/blenkernel/intern/packedFile.c
@@ -527,46 +527,17 @@ int unpackVFont(VFont * vfont, int how)
return (ret_value);
}
-/*
-create_local_name() creates a relative (starting with //) name.
-Because it is allowed to have /'s and \'s in blenderobject names
-we have to remove these first.
-*/
-
-
-void create_local_name(char *localname, char *prefix, char *filename)
-{
- char tempname[FILE_MAXDIR + FILE_MAXFILE];
- int i, len;
-
- strcpy(tempname, filename);
- len = strlen(tempname);
-
- for (i = 0; i < len ; i++) {
- switch (tempname[i])
- {
- case '/':
- case '\\':
- case ' ':
- tempname[i] = '_';
- break;
- }
- }
-
- strcpy(localname, prefix);
- strcat(localname, tempname);
-}
-
-
int unpackSample(bSample *sample, int how)
{
- char localname[FILE_MAXDIR + FILE_MAXFILE];
+ char localname[FILE_MAX], fi[FILE_MAX];
char * newname;
int ret_value = RET_ERROR;
PackedFile *pf;
if (sample != NULL) {
- create_local_name(localname, "//samples/", sample->id.name + 2);
+ strcpy(localname, sample->name);
+ BLI_splitdirstring(localname, fi);
+ sprintf(localname, "//samples/%s", fi);
newname = unpackFile(sample->name, localname, sample->packedfile, how);
if (newname != NULL) {
@@ -588,13 +559,15 @@ int unpackSample(bSample *sample, int how)
int unpackImage(Image * ima, int how)
{
- char localname[FILE_MAXDIR + FILE_MAXFILE];
+ char localname[FILE_MAX], fi[FILE_MAX];
char * newname;
int ret_value = RET_ERROR;
if (ima != NULL) {
- create_local_name(localname, "//textures/", ima->id.name + 2);
-
+ strcpy(localname, ima->name);
+ BLI_splitdirstring(localname, fi);
+ sprintf(localname, "//textures/%s", fi);
+
newname = unpackFile(ima->name, localname, ima->packedfile, how);
if (newname != NULL) {
ret_value = RET_OK;