//------------------------------------------------------------------------ void BadFormat(Connection *Connect,LPCSTR Line,BOOL inParce) { Connect->AddCmdLine(Line); FtpConnectMessage(Connect, MNone__, inParce ? "Error parsing files list. Please read \"BugReport_*.txt\" and report to developer." : "Can not find listing parser. Please read \"BugReport_*.txt\" and report to developer.", -MOk); }
BOOL idDeleteCB(PluginPanelItem* p,LPVOID dt) { PROC(("idDeleteCB", "%p,%p [%s]", p, dt, FTP_FILENAME(p))); int rres; FTPHost* h = FTPHost::Convert(p); char *CurName = FTP_FILENAME(p); char *m; if(((DeleteData*)dt)->ShowHosts && !h) return TRUE; //Ask if(IS_FLAG(p->FindData.dwFileAttributes,FILE_ATTRIBUTE_DIRECTORY)) { if(!((DeleteData*)dt)->DeleteAllFolders && IS_SILENT(((DeleteData*)dt)->OpMode)) { LPCSTR MsgItems[]= { ((DeleteData*)dt)->ShowHosts ? FP_GetMsg(MDeleteHostsTitle):FP_GetMsg(MDeleteTitle), ((DeleteData*)dt)->ShowHosts ? FP_GetMsg(MDeleteHostFolder):FP_GetMsg(MDeleteFolder), CurName, FP_GetMsg(MDeleteGroupDelete), FP_GetMsg(MDeleteGroupAll), FP_GetMsg(MDeleteGroupCancel) }; rres = FMessage(FMSG_WARNING|FMSG_DOWN, NULL, MsgItems, ARRAYSIZE(MsgItems), 3); switch(rres) { /*ESC*/ case -1: return FALSE; /*Del*/ case 0: break; /*DelAll*/ case 1: ((DeleteData*)dt)->DeleteAllFolders = TRUE; break; /*Cancel*/ case 2: return FALSE; } } } //Display SaveConsoleTitle::Text(CurName); FtpConnectMessage(((DeleteData*)dt)->hConnect, MDeleteTitle, PointToName(CurName)); //=============================== //Hosts if(((DeleteData*)dt)->ShowHosts) return FP_DeleteRegKeyAll(h->RegKey); //=============================== //FTP m = strrchr(CurName,'/'); if(m) CurName = m+1; if(IS_FLAG(p->FindData.dwFileAttributes,FILE_ATTRIBUTE_DIRECTORY)) { //FTP directory //Succ delete if(FtpRemoveDirectory(((DeleteData*)dt)->hConnect, CurName)) { if(Opt.UpdateDescriptions) p->Flags |= PPIF_PROCESSDESCR; return TRUE; } } else { //FTP file //Succ delete if(FtpDeleteFile(((DeleteData*)dt)->hConnect,CurName)) { if(Opt.UpdateDescriptions) p->Flags |= PPIF_PROCESSDESCR; return TRUE; } } //Error Log(("Del error: %s", ((DeleteData*)dt)->SkipAll ? "SkipAll" : "Ask")); if(((DeleteData*)dt)->SkipAll == FALSE) { rres = FtpConnectMessage(((DeleteData*)dt)->hConnect, MCannotDelete, CurName, -MCopySkip, MCopySkipAll); switch(rres) { /*skip*/ case 0: Log(("Skip")); return TRUE; /*skip all*/ case 1: ((DeleteData*)dt)->SkipAll = TRUE; Log(("SkipAll")); return TRUE; default: Log(("Other")); SetLastError(ERROR_CANCELLED); return FALSE; } } else return TRUE; }