From 9cc79b0fab0b4301801387abb57fc52b03f88228 Mon Sep 17 00:00:00 2001 From: Yorhel <git@yorhel.nl> Date: Sun, 26 Apr 2009 12:58:22 +0200 Subject: [PATCH] Properly call calc_leavepath() on error --- src/calc.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/calc.c b/src/calc.c index 87e426d..e54eb01 100644 --- a/src/calc.c +++ b/src/calc.c @@ -169,6 +169,7 @@ int calc_dir(struct dir *dest, char *name) { t = dest; while((t = t->parent) != NULL) t->flags |= FF_SERR; + calc_leavepath(); return 0; } @@ -177,8 +178,10 @@ int calc_dir(struct dir *dest, char *name) { calc_enterpath(dr->d_name); if(calc_item(dest, dr->d_name)) dest->flags |= FF_ERR; - if(input_handle(1)) + if(input_handle(1)) { + calc_leavepath(); return 1; + } calc_leavepath(); errno = 0; } @@ -203,13 +206,16 @@ int calc_dir(struct dir *dest, char *name) { ch = 0; for(t=dest->sub; t!=NULL; t=t->next) if(t->flags & FF_DIR && !(t->flags & FF_EXL || t->flags & FF_OTHFS)) - if(calc_dir(t, t->name)) + if(calc_dir(t, t->name)) { + calc_leavepath(); return 1; + } /* chdir back */ if(chdir("..") < 0) { failed = 1; strcpy(errmsg, "Couldn't chdir to previous directory"); + calc_leavepath(); return 1; } calc_leavepath(); -- GitLab