summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/browser.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/browser.c b/src/browser.c
index fd323cf..f3941c7 100644
--- a/src/browser.c
+++ b/src/browser.c
@@ -310,7 +310,8 @@ void browse_key_sel(int change) {
struct dir *n, *cur, par;
int i, max;
- cur = browse_dir;
+ if((cur = browse_dir) == NULL)
+ return;
par.next = cur;
if(cur->parent->parent)
cur = ∥
@@ -402,13 +403,13 @@ int browse_key(int ch) {
break;
if(n != NULL && n->sub != NULL)
browse_dir = n->sub;
- if(n == NULL && browse_dir->parent->parent)
+ if(n == NULL && browse_dir != NULL && browse_dir->parent->parent)
browse_dir = browse_dir->parent->parent->sub;
nonfo++;
sort++;
break;
case KEY_LEFT:
- if(browse_dir->parent->parent != NULL)
+ if(browse_dir != NULL && browse_dir->parent->parent != NULL)
browse_dir = browse_dir->parent->parent->sub;
nonfo++;
sort++;
@@ -416,7 +417,8 @@ int browse_key(int ch) {
/* refresh */
case 'r':
- calc_init(getpath(browse_dir->parent), browse_dir->parent);
+ if(browse_dir != NULL)
+ calc_init(getpath(browse_dir->parent), browse_dir->parent);
nonfo++;
sort++;
break;
@@ -457,7 +459,7 @@ int browse_key(int ch) {
break;
}
- if(sort)
+ if(sort && browse_dir != NULL)
browse_dir = browse_sort(browse_dir);
if(nonfo)
flags &= ~BF_INFO;