diff --git a/src/sbbs3/file.cpp b/src/sbbs3/file.cpp index 0c69c6d1e1b149a2549cf44429dd15ae62f76140..53abcedd5f9e739257dcd5e1b3b02dde8b583355 100644 --- a/src/sbbs3/file.cpp +++ b/src/sbbs3/file.cpp @@ -235,22 +235,24 @@ bool sbbs_t::movefile(smb_t* smb, file_t* f, int newdir) file_t newfile = *f; if(findfile(&cfg, newdir, f->name, NULL)) { bprintf(text[FileAlreadyThere], f->name); - return false; + return false; } - f->dir = newdir; + newfile.dir = newdir; newfile.dfield = NULL; // addfile() ends up realloc'ing dfield (in smb_addmsg) bool result = addfile(&cfg, &newfile, newfile.extdesc, newfile.metadata, /* client: */NULL); free(newfile.dfield); - if(!result) + if(!result) { + errormsg(WHERE, "adding file", f->name, newfile.dir); return false; + } if(!removefile(smb, f)) // Use ::removefile() here instead? return false; bprintf(text[MovedFile],f->name ,cfg.lib[cfg.dir[newdir]->lib]->sname,cfg.dir[newdir]->sname); char str[MAX_PATH+1]; - SAFEPRINTF4(str, "%s moved %s to %s %s",f->name - ,useron.alias + SAFEPRINTF3(str, "moved %s to %s %s" + ,f->name ,cfg.lib[cfg.dir[newdir]->lib]->sname ,cfg.dir[newdir]->sname); logline(nulstr,str);