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:
authorAndrea Weikert <elubie@gmx.net>2009-07-12 17:06:52 +0400
committerAndrea Weikert <elubie@gmx.net>2009-07-12 17:06:52 +0400
commit5f8f2fc33a2f2fd363be16a36d14fa3b3f1ad78a (patch)
tree115e70af47ebb78ca0768a2b58dc3e9128484ba4 /source/blender/editors/space_file
parent78703a9ef8983ce513c1d428ba947dfbe1a58f97 (diff)
2.5 filebrowser
* bugfix: parent on linux didn't account for first slash * added some BLI_cleanup_dir to prevent weird directory names * revert to old directory if user types bogus text.
Diffstat (limited to 'source/blender/editors/space_file')
-rw-r--r--source/blender/editors/space_file/file_ops.c2
-rw-r--r--source/blender/editors/space_file/filesel.c18
2 files changed, 13 insertions, 7 deletions
diff --git a/source/blender/editors/space_file/file_ops.c b/source/blender/editors/space_file/file_ops.c
index 8f1d2598c61..0d36bac7505 100644
--- a/source/blender/editors/space_file/file_ops.c
+++ b/source/blender/editors/space_file/file_ops.c
@@ -559,6 +559,7 @@ int file_parent_exec(bContext *C, wmOperator *unused)
if(sfile->params) {
if (BLI_has_parent(sfile->params->dir)) {
BLI_parent_dir(sfile->params->dir);
+ BLI_cleanup_dir(G.sce, sfile->params->dir);
file_change_dir(sfile);
WM_event_add_notifier(C, NC_FILE|ND_FILELIST, NULL);
}
@@ -724,6 +725,7 @@ int file_directory_exec(bContext *C, wmOperator *unused)
if (sfile->params->dir[0] == '\0')
get_default_root(sfile->params->dir);
#endif
+ BLI_cleanup_dir(G.sce, sfile->params->dir);
BLI_add_slash(sfile->params->dir);
file_change_dir(sfile);
WM_event_add_notifier(C, NC_FILE|ND_FILELIST, NULL);
diff --git a/source/blender/editors/space_file/filesel.c b/source/blender/editors/space_file/filesel.c
index c81dab454f8..30712ea0b07 100644
--- a/source/blender/editors/space_file/filesel.c
+++ b/source/blender/editors/space_file/filesel.c
@@ -301,16 +301,20 @@ FileLayout* ED_fileselect_get_layout(struct SpaceFile *sfile, struct ARegion *ar
void file_change_dir(struct SpaceFile *sfile)
{
- if (sfile->params && BLI_exists(sfile->params->dir)) {
- filelist_setdir(sfile->files, sfile->params->dir);
+ if (sfile->params) {
+ if (BLI_exists(sfile->params->dir)) {
+ filelist_setdir(sfile->files, sfile->params->dir);
- if(folderlist_clear_next(sfile))
- folderlist_free(sfile->folders_next);
+ if(folderlist_clear_next(sfile))
+ folderlist_free(sfile->folders_next);
- folderlist_pushdir(sfile->folders_prev, sfile->params->dir);
+ folderlist_pushdir(sfile->folders_prev, sfile->params->dir);
- filelist_free(sfile->files);
- sfile->params->active_file = -1;
+ filelist_free(sfile->files);
+ sfile->params->active_file = -1;
+ } else {
+ BLI_strncpy(sfile->params->dir, filelist_dir(sfile->files), FILE_MAX);
+ }
}
}