Modify documents.
CONTROL "\8fí\82É\83o\83C\83i\83\8a\83\82\81[\83h(&B)",TRMODE_BIN,"Button",BS_AUTORADIOBUTTON,13,33,84,10\r
CONTROL "\83t\83@\83C\83\8b\96¼\82Å\90Ø\91Ö\82¦(&X)",TRMODE_AUTO,"Button",BS_AUTORADIOBUTTON,13,47,81,10\r
LTEXT "\81¨",-1,98,49,8,8\r
- GROUPBOX "\83A\83X\83L\81[\83\82\81[\83h\82Ì\83t\83@\83C\83\8b\96¼(&F)",-1,104,7,99,84,WS_GROUP\r
- LISTBOX TRMODE_EXT_LIST,109,19,53,67,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP\r
+ GROUPBOX "\83A\83X\83L\81[\83\82\81[\83h\82Ì\83t\83@\83C\83\8b\96¼(&F)",-1,104,7,99,70,WS_GROUP\r
+ LISTBOX TRMODE_EXT_LIST,109,19,53,53,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP\r
PUSHBUTTON "\92Ç\89Á(&I)...",TRMODE_ADD,167,19,31,14\r
PUSHBUTTON "\8dí\8f\9c",TRMODE_DEL,167,38,31,14\r
- CONTROL "\83A\83X\83L\81[\83\82\81[\83h\82Å\83A\83b\83v\83\8d\81[\83h\8e\9e\81AEOF(Ctrl-Z)\82ð\8eæ\82è\8f\9c\82(&Z)",TRMODE_EOF,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,94,196,10\r
- CONTROL "\83A\83b\83v\83\8d\81[\83h/\83_\83E\83\93\83\8d\81[\83h\82·\82é\83t\83@\83C\83\8b\82Ì\83^\83C\83\80\83X\83^\83\93\83v\82ð\88Û\8e\9d(&T)",TRMODE_TIME,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,108,196,10\r
- CONTROL "\83t\83@\83C\83\8b\96¼\82Ì\83Z\83~\83R\83\8d\83\93\88È\8d~\82Í\8eæ\82è\8f\9c\82¢\82Ä\83_\83E\83\93\83\8d\81[\83h(&S)",TRMODE_SEMICOLON,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,122,196,10\r
- CONTROL "\83t\83@\83C\83\8b\96¼\82ð\95Ï\82¦\82Ä\93]\91\97\82µ\82½\8fê\8d\87\82É\83f\83B\83\8c\83N\83g\83\8a\82ð\8dì\90¬(&D)",TRMODE_MAKEDIR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,136,196,10\r
+ CONTROL "\83A\83X\83L\81[\83\82\81[\83h\82Å\83A\83b\83v\83\8d\81[\83h\8e\9e\81AEOF(Ctrl-Z)\82ð\8eæ\82è\8f\9c\82(&Z)",TRMODE_EOF,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,80,196,10\r
+ CONTROL "\83A\83b\83v\83\8d\81[\83h/\83_\83E\83\93\83\8d\81[\83h\82·\82é\83t\83@\83C\83\8b\82Ì\83^\83C\83\80\83X\83^\83\93\83v\82ð\88Û\8e\9d(&T)",TRMODE_TIME,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,94,196,10\r
+ CONTROL "\83t\83@\83C\83\8b\96¼\82Ì\83Z\83~\83R\83\8d\83\93\88È\8d~\82Í\8eæ\82è\8f\9c\82¢\82Ä\83_\83E\83\93\83\8d\81[\83h(&S)",TRMODE_SEMICOLON,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,108,196,10\r
+ CONTROL "\83t\83@\83C\83\8b\96¼\82ð\95Ï\82¦\82Ä\93]\91\97\82µ\82½\8fê\8d\87\82É\83f\83B\83\8c\83N\83g\83\8a\82ð\8dì\90¬(&D)",TRMODE_MAKEDIR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,122,196,10\r
+ CONTROL "\83t\83@\83C\83\8b\88ê\97\97\82Ì\8eæ\93¾\82É\8e¸\94s\82µ\82½\8fê\8d\87\82É\93]\91\97\82ð\92\86\8e~(&L)",TRMODE_LISTERROR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,136,196,10\r
END\r
\r
up_exist_dlg DIALOG 0, 0, 223, 131\r
#define UPDATES_INTERVAL_SPN 1225\r
#define HSET_NO_WEAK 1226\r
#define HOST_SET_DEFAULT 1227\r
+#define TRMODE_LISTERROR 1228\r
#define MENU_END 40001\r
#define MENU_EXIT 40001\r
#define MENU_CONNECT 40003\r
#ifndef APSTUDIO_READONLY_SYMBOLS\r
#define _APS_NEXT_RESOURCE_VALUE 199\r
#define _APS_NEXT_COMMAND_VALUE 40182\r
-#define _APS_NEXT_CONTROL_VALUE 1228\r
+#define _APS_NEXT_CONTROL_VALUE 1229\r
#define _APS_NEXT_SYMED_VALUE 101\r
#endif\r
#endif\r
CONTROL "Always &BINARY mode",TRMODE_BIN,"Button",BS_AUTORADIOBUTTON,13,33,84,10\r
CONTROL "&Filename dependent",TRMODE_AUTO,"Button",BS_AUTORADIOBUTTON,13,47,78,10\r
LTEXT "->",-1,98,49,8,8\r
- GROUPBOX "ASCII mode Filenames",-1,104,7,99,84,WS_GROUP\r
- LISTBOX TRMODE_EXT_LIST,109,19,53,67,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP\r
+ GROUPBOX "ASCII mode Filenames",-1,104,7,99,70,WS_GROUP\r
+ LISTBOX TRMODE_EXT_LIST,109,19,53,53,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP\r
PUSHBUTTON "A&dd...",TRMODE_ADD,167,19,31,14\r
PUSHBUTTON "Delete",TRMODE_DEL,167,38,31,14\r
- CONTROL "&Remove EOF for ASCII mode upload",TRMODE_EOF,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,94,196,10\r
+ CONTROL "&Remove EOF for ASCII mode upload",TRMODE_EOF,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,80,196,10\r
CONTROL "Retain file date/&time on upload and download",TRMODE_TIME,\r
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,108,196,10\r
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,94,196,10\r
CONTROL "Truncate filename before &semicolon on download",TRMODE_SEMICOLON,\r
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,122,196,10\r
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,108,196,10\r
CONTROL "Create &directory at file transfer with renaming",TRMODE_MAKEDIR,\r
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,122,196,10\r
+ CONTROL "Abort transfer if failed in obtaining file &lists",TRMODE_LISTERROR,\r
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,136,196,10\r
END\r
\r
#define UPDATES_INTERVAL_SPN 1225\r
#define HSET_NO_WEAK 1226\r
#define HOST_SET_DEFAULT 1227\r
+#define TRMODE_LISTERROR 1228\r
#define MENU_END 40001\r
#define MENU_EXIT 40001\r
#define MENU_CONNECT 40003\r
#ifndef APSTUDIO_READONLY_SYMBOLS\r
#define _APS_NEXT_RESOURCE_VALUE 199\r
#define _APS_NEXT_COMMAND_VALUE 40182\r
-#define _APS_NEXT_CONTROL_VALUE 1228\r
+#define _APS_NEXT_CONTROL_VALUE 1229\r
#define _APS_NEXT_SYMED_VALUE 101\r
#endif\r
#endif\r
void GetNodeOwner(int Win, int Pos, char *Buf, int Max);\r
void EraseRemoteDirForWnd(void);\r
double GetSelectedTotalSize(int Win);\r
-void MakeSelectedFileList(int Win, int Expand, int All, FILELIST **Base, int *CancelCheckWork);\r
+// ファイル一覧バグ修正\r
+//void MakeSelectedFileList(int Win, int Expand, int All, FILELIST **Base, int *CancelCheckWork);\r
+int MakeSelectedFileList(int Win, int Expand, int All, FILELIST **Base, int *CancelCheckWork);\r
void MakeDroppedFileList(WPARAM wParam, char *Cur, FILELIST **Base);\r
void MakeDroppedDir(WPARAM wParam, char *Cur);\r
void AddRemoteTreeToFileList(int Num, char *Path, int IncDir, FILELIST **Base);\r
-- Added the default settings to the host list.\r
This is used for the initial state of new hosts and Quick Connect.\r
\r
+-- Added an option to abort file transfer if failed in obtaining file lists\r
+ before it.\r
+ This feature is enabled by default.\r
+\r
\r
Outline\r
-------\r
-- Added the default settings to the host list.\r
This is used for the initial state of new hosts and Quick Connect.\r
\r
+-- Added an option to abort file transfer if failed in obtaining file lists\r
+ before it.\r
+ This feature is enabled by default.\r
+\r
Changes in Ver.1.98g2\r
--------------------\r
\r
\81E\83z\83X\83g\88ê\97\97\82É\8aù\92è\82Ì\90Ý\92è\82ð\92Ç\89Á\82µ\82Ü\82µ\82½\81B\r
\81@\90V\8bK\83z\83X\83g\82Ì\8dì\90¬\8e\9e\82â\83N\83C\83b\83N\90Ú\91±\8e\9e\82Ì\8f\89\8aú\8fó\91Ô\82Æ\82µ\82Ä\8eg\97p\82³\82ê\82Ü\82·\81B\r
\r
+\81E\83t\83@\83C\83\8b\93]\91\97\91O\82Ì\83t\83@\83C\83\8b\88ê\97\97\8eæ\93¾\8e\9e\82É\83G\83\89\81[\82ª\94\90¶\82µ\82½\8fê\8d\87\82É\93]\91\97\82ð\r
+\81@\92\86\8e~\82·\82é\90Ý\92è\82ð\92Ç\89Á\82µ\82Ü\82µ\82½\81B\r
+\81@\82±\82Ì\8b@\94\\82Í\8aù\92è\82Å\82Í\97L\8cø\82É\82È\82è\82Ü\82·\81B\r
+\r
\r
Ver 1.96d\88È\91O\82Ö\96ß\82·\8fê\8d\87\r
-----------------------\r
\81E\83z\83X\83g\88ê\97\97\82É\8aù\92è\82Ì\90Ý\92è\82ð\92Ç\89Á\82µ\82Ü\82µ\82½\81B\r
\81@\90V\8bK\83z\83X\83g\82Ì\8dì\90¬\8e\9e\82â\83N\83C\83b\83N\90Ú\91±\8e\9e\82Ì\8f\89\8aú\8fó\91Ô\82Æ\82µ\82Ä\8eg\97p\82³\82ê\82Ü\82·\81B\r
\r
+\81E\83t\83@\83C\83\8b\93]\91\97\91O\82Ì\83t\83@\83C\83\8b\88ê\97\97\8eæ\93¾\8e\9e\82É\83G\83\89\81[\82ª\94\90¶\82µ\82½\8fê\8d\87\82É\93]\91\97\82ð\r
+\81@\92\86\8e~\82·\82é\90Ý\92è\82ð\92Ç\89Á\82µ\82Ü\82µ\82½\81B\r
+\81@\82±\82Ì\8b@\94\\82Í\8aù\92è\82Å\82Í\97L\8cø\82É\82È\82è\82Ü\82·\81B\r
+\r
\81¡Ver 1.98g2\r
\r
\81E\83C\83\93\83X\83g\81[\83\89\94Å\82ÉZIP\94Å\82Ì\83t\83@\83C\83\8b\82ª\8d¬\93ü\82µ\82Ä\82¢\82½\96â\91è\82ð\8fC\90³\82µ\82Ü\82µ\82½\81B\r
static INT_PTR CALLBACK SelectDialogCallBack(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam);\r
static int GetImageIndex(int Win, int Pos);\r
static void DispListList(FILELIST *Pos, char *Title);\r
-static void MakeRemoteTree1(char *Path, char *Cur, FILELIST **Base, int *CancelCheckWork);\r
-static void MakeRemoteTree2(char *Path, char *Cur, FILELIST **Base, int *CancelCheckWork);\r
+// ファイル一覧バグ修正\r
+//static void MakeRemoteTree1(char *Path, char *Cur, FILELIST **Base, int *CancelCheckWork);\r
+//static void MakeRemoteTree2(char *Path, char *Cur, FILELIST **Base, int *CancelCheckWork);\r
+static int MakeRemoteTree1(char *Path, char *Cur, FILELIST **Base, int *CancelCheckWork);\r
+static int MakeRemoteTree2(char *Path, char *Cur, FILELIST **Base, int *CancelCheckWork);\r
static void CopyTmpListToFileList(FILELIST **Base, FILELIST *List);\r
static int GetListOneLine(char *Buf, int Max, FILE *Fd);\r
static int MakeDirPath(char *Str, int ListType, char *Path, char *Dir);\r
-static void MakeLocalTree(char *Path, FILELIST **Base);\r
+// ファイル一覧バグ修正\r
+//static void MakeLocalTree(char *Path, FILELIST **Base);\r
+static int MakeLocalTree(char *Path, FILELIST **Base);\r
static void AddFileList(FILELIST *Pkt, FILELIST **Base);\r
static int AnalyzeFileInfo(char *Str);\r
static int CheckUnixType(char *Str, char *Tmp, int Add1, int Add2, int Day);\r
* なし\r
*----------------------------------------------------------------------------*/\r
\r
-void MakeSelectedFileList(int Win, int Expand, int All, FILELIST **Base, int *CancelCheckWork)\r
+// ファイル一覧バグ修正\r
+//void MakeSelectedFileList(int Win, int Expand, int All, FILELIST **Base, int *CancelCheckWork)\r
+int MakeSelectedFileList(int Win, int Expand, int All, FILELIST **Base, int *CancelCheckWork)\r
{\r
+ // ファイル一覧バグ修正\r
+ int Sts;\r
int Pos;\r
char Name[FMAX_PATH+1];\r
char Cur[FMAX_PATH+1];\r
DWORD Attr;\r
int Ignore;\r
\r
+ // ファイル一覧バグ修正\r
+ Sts = FFFTP_SUCCESS;\r
if((All == YES) || (GetSelectedCount(Win) > 0))\r
{\r
/*===== カレントディレクトリのファイル =====*/\r
// }\r
if(GetImageIndex(Win, Pos) != 4) { // symlink\r
if(Win == WIN_LOCAL)\r
- MakeLocalTree(Name, Base);\r
+ // ファイル一覧バグ修正\r
+// MakeLocalTree(Name, Base);\r
+ {\r
+ if(MakeLocalTree(Name, Base) == FFFTP_FAIL)\r
+ Sts = FFFTP_FAIL;\r
+ }\r
else\r
{\r
AskRemoteCurDir(Cur, FMAX_PATH);\r
\r
if((AskListCmdMode() == NO) &&\r
(AskUseNLST_R() == YES))\r
- MakeRemoteTree1(Name, Cur, Base, CancelCheckWork);\r
+ // ファイル一覧バグ修正\r
+// MakeRemoteTree1(Name, Cur, Base, CancelCheckWork);\r
+ {\r
+ if(MakeRemoteTree1(Name, Cur, Base, CancelCheckWork) == FFFTP_FAIL)\r
+ Sts = FFFTP_FAIL;\r
+ }\r
else\r
- MakeRemoteTree2(Name, Cur, Base, CancelCheckWork);\r
+ // ファイル一覧バグ修正\r
+// MakeRemoteTree2(Name, Cur, Base, CancelCheckWork);\r
+ {\r
+ if(MakeRemoteTree2(Name, Cur, Base, CancelCheckWork) == FFFTP_FAIL)\r
+ Sts = FFFTP_FAIL;\r
+ }\r
\r
//DispListList(*Base, "LIST");\r
\r
}\r
}\r
}\r
- return;\r
+ // ファイル一覧バグ修正\r
+// return;\r
+ return(Sts);\r
}\r
\r
\r
* NLST -alLR を使う\r
*----------------------------------------------------------------------------*/\r
\r
-static void MakeRemoteTree1(char *Path, char *Cur, FILELIST **Base, int *CancelCheckWork)\r
+// ファイル一覧バグ修正\r
+//static void MakeRemoteTree1(char *Path, char *Cur, FILELIST **Base, int *CancelCheckWork)\r
+static int MakeRemoteTree1(char *Path, char *Cur, FILELIST **Base, int *CancelCheckWork)\r
{\r
+ // ファイル一覧バグ修正\r
+ int Ret;\r
int Sts;\r
\r
+ // ファイル一覧バグ修正\r
+ Ret = FFFTP_FAIL;\r
if(DoCWD(Path, NO, NO, NO) == FTP_COMPLETE)\r
{\r
/* サブフォルダも含めたリストを取得 */\r
DoCWD(Cur, NO, NO, NO);\r
\r
if(Sts == FTP_COMPLETE)\r
+ // ファイル一覧バグ修正\r
+// AddRemoteTreeToFileList(999, Path, RDIR_NLST, Base);\r
+ {\r
AddRemoteTreeToFileList(999, Path, RDIR_NLST, Base);\r
+ Ret = FFFTP_SUCCESS;\r
+ }\r
}\r
- return;\r
+ // ファイル一覧バグ修正\r
+// return;\r
+ return(Ret);\r
}\r
\r
\r
* 各フォルダに移動してリストを取得\r
*----------------------------------------------------------------------------*/\r
\r
-static void MakeRemoteTree2(char *Path, char *Cur, FILELIST **Base, int *CancelCheckWork)\r
+// ファイル一覧バグ修正\r
+//static void MakeRemoteTree2(char *Path, char *Cur, FILELIST **Base, int *CancelCheckWork)\r
+static int MakeRemoteTree2(char *Path, char *Cur, FILELIST **Base, int *CancelCheckWork)\r
{\r
+ // ファイル一覧バグ修正\r
+ int Ret;\r
int Sts;\r
FILELIST *CurList;\r
FILELIST *Pos;\r
FILELIST Pkt;\r
\r
+ // ファイル一覧バグ修正\r
+ Ret = FFFTP_FAIL;\r
/* VAX VMS は CWD xxx/yyy という指定ができないので */\r
/* CWD xxx, Cwd yyy と複数に分ける */\r
if(AskHostType() != HTYPE_VMS)\r
AddRemoteTreeToFileList(999, Path, RDIR_CWD, &CurList);\r
CopyTmpListToFileList(Base, CurList);\r
\r
+ // ファイル一覧バグ修正\r
+ Ret = FFFTP_SUCCESS;\r
+\r
Pos = CurList;\r
while(Pos != NULL)\r
{\r
/* そのディレクトリの中を検索 */\r
// MakeRemoteTree2(Pos->File, Cur, Base, CancelCheckWork);\r
if(Pkt.Link == NO)\r
- MakeRemoteTree2(Pos->File, Cur, Base, CancelCheckWork);\r
+ // ファイル一覧バグ修正\r
+// MakeRemoteTree2(Pos->File, Cur, Base, CancelCheckWork);\r
+ {\r
+ if(MakeRemoteTree2(Pos->File, Cur, Base, CancelCheckWork) == FFFTP_FAIL)\r
+ Ret = FFFTP_FAIL;\r
+ }\r
}\r
Pos = Pos->Next;\r
}\r
DeleteFileList(&CurList);\r
}\r
}\r
- return;\r
+ // ファイル一覧バグ修正\r
+// return;\r
+ return(Ret);\r
}\r
\r
\r
* なし\r
*----------------------------------------------------------------------------*/\r
\r
-static void MakeLocalTree(char *Path, FILELIST **Base)\r
+// ファイル一覧バグ修正\r
+//static void MakeLocalTree(char *Path, FILELIST **Base)\r
+static int MakeLocalTree(char *Path, FILELIST **Base)\r
{\r
+ // ファイル一覧バグ修正\r
+ int Sts;\r
char Src[FMAX_PATH+1];\r
HANDLE fHnd;\r
WIN32_FIND_DATA FindBuf;\r
FILELIST Pkt;\r
SYSTEMTIME TmpStime;\r
\r
+ // ファイル一覧バグ修正\r
+ Sts = FFFTP_FAIL;\r
+\r
strcpy(Src, Path);\r
SetYenTail(Src);\r
strcat(Src, "*");\r
\r
if((fHnd = FindFirstFileAttr(Src, &FindBuf, DispIgnoreHide)) != INVALID_HANDLE_VALUE)\r
{\r
+ // ファイル一覧バグ修正\r
+ Sts = FFFTP_SUCCESS;\r
do\r
{\r
if((FindBuf.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) &&\r
memset(&Pkt.Time, 0, sizeof(FILETIME));\r
AddFileList(&Pkt, Base);\r
\r
- MakeLocalTree(Src, Base);\r
+ // ファイル一覧バグ修正\r
+// MakeLocalTree(Src, Base);\r
+ if(MakeLocalTree(Src, Base) == FFFTP_FAIL)\r
+ Sts = FFFTP_FAIL;\r
}\r
}\r
while(FindNextFileAttr(fHnd, &FindBuf, DispIgnoreHide) == TRUE);\r
FindClose(fHnd);\r
}\r
- return;\r
+ // ファイル一覧バグ修正\r
+// return;\r
+ return(Sts);\r
}\r
\r
\r
extern int CancelFlg;\r
// ディレクトリ自動作成\r
extern int MakeAllDir;\r
+// ファイル一覧バグ修正\r
+extern int AbortOnListError;\r
\r
/*===== ローカルなワーク =====*/\r
\r
TRANSPACKET Pkt;\r
// ディレクトリ自動作成\r
char Tmp[FMAX_PATH+1];\r
+ // ファイル一覧バグ修正\r
+ int ListSts;\r
\r
// 同時接続対応\r
CancelFlg = NO;\r
// KeepTransferDialog(YES);\r
\r
FileListBase = NULL;\r
- MakeSelectedFileList(WIN_REMOTE, (ForceFile == YES ? NO : YES), All, &FileListBase, &CancelFlg);\r
+ // ファイル一覧バグ修正\r
+// MakeSelectedFileList(WIN_REMOTE, (ForceFile == YES ? NO : YES), All, &FileListBase, &CancelFlg);\r
+ ListSts = MakeSelectedFileList(WIN_REMOTE, (ForceFile == YES ? NO : YES), All, &FileListBase, &CancelFlg);\r
\r
if(AskNoFullPathMode() == YES)\r
{\r
Pos = FileListBase;\r
while(Pos != NULL)\r
{\r
+ // ファイル一覧バグ修正\r
+ if((AbortOnListError == YES) && (ListSts == FFFTP_FAIL))\r
+ break;\r
AskLocalCurDir(Pkt.LocalFile, FMAX_PATH);\r
SetYenTail(Pkt.LocalFile);\r
strcpy(TmpString, Pos->File);\r
char *Cat;\r
int Level;\r
int Mode;\r
+ // ファイル一覧バグ修正\r
+ int ListSts;\r
\r
// 同時接続対応\r
CancelFlg = NO;\r
/*===== ファイルリスト取得 =====*/\r
\r
LocalListBase = NULL;\r
- MakeSelectedFileList(WIN_LOCAL, YES, YES, &LocalListBase, &CancelFlg);\r
+ // ファイル一覧バグ修正\r
+// MakeSelectedFileList(WIN_LOCAL, YES, YES, &LocalListBase, &CancelFlg);\r
+ ListSts = MakeSelectedFileList(WIN_LOCAL, YES, YES, &LocalListBase, &CancelFlg);\r
RemoteListBase = NULL;\r
- MakeSelectedFileList(WIN_REMOTE, YES, YES, &RemoteListBase, &CancelFlg);\r
+ // ファイル一覧バグ修正\r
+// MakeSelectedFileList(WIN_REMOTE, YES, YES, &RemoteListBase, &CancelFlg);\r
+ if(ListSts == FFFTP_SUCCESS)\r
+ ListSts = MakeSelectedFileList(WIN_REMOTE, YES, YES, &RemoteListBase, &CancelFlg);\r
\r
RemotePos = RemoteListBase;\r
while(RemotePos != NULL)\r
RemotePos = RemotePos->Next;\r
}\r
\r
- if((Notify == YES) ||\r
- (DialogBoxParam(GetFtpInst(), MAKEINTRESOURCE(mirrordown_notify_dlg), GetMainHwnd(), MirrorDispListCallBack, (LPARAM)&Base) == YES))\r
+ // ファイル一覧バグ修正\r
+// if((Notify == YES) ||\r
+// (DialogBoxParam(GetFtpInst(), MAKEINTRESOURCE(mirrordown_notify_dlg), GetMainHwnd(), MirrorDispListCallBack, (LPARAM)&Base) == YES))\r
+ if(((AbortOnListError == NO) || (ListSts == FFFTP_SUCCESS)) && ((Notify == YES) ||\r
+ (DialogBoxParam(GetFtpInst(), MAKEINTRESOURCE(mirrordown_notify_dlg), GetMainHwnd(), MirrorDispListCallBack, (LPARAM)&Base) == YES)))\r
{\r
if(AskNoFullPathMode() == YES)\r
{\r
FILELIST *RemoteList;\r
char Tmp[FMAX_PATH+1];\r
int FirstAdd;\r
+ // ファイル一覧バグ修正\r
+ int ListSts;\r
\r
// 同時接続対応\r
CancelFlg = NO;\r
\r
// ローカル側で選ばれているファイルをFileListBaseに登録\r
FileListBase = NULL;\r
- MakeSelectedFileList(WIN_LOCAL, YES, All, &FileListBase, &CancelFlg);\r
+ // ファイル一覧バグ修正\r
+// MakeSelectedFileList(WIN_LOCAL, YES, All, &FileListBase, &CancelFlg);\r
+ ListSts = MakeSelectedFileList(WIN_LOCAL, YES, All, &FileListBase, &CancelFlg);\r
\r
// 現在ホスト側のファイル一覧に表示されているものをRemoteListに登録\r
// 同名ファイルチェック用\r
Pos = FileListBase;\r
while(Pos != NULL)\r
{\r
+ // ファイル一覧バグ修正\r
+ if((AbortOnListError == YES) && (ListSts == FFFTP_FAIL))\r
+ break;\r
AskRemoteCurDir(Pkt.RemoteFile, FMAX_PATH);\r
SetSlashTail(Pkt.RemoteFile);\r
Cat = strchr(Pkt.RemoteFile, NUL);\r
SYSTEMTIME TmpStime;\r
FILETIME TmpFtimeL;\r
FILETIME TmpFtimeR;\r
+ // ファイル一覧バグ修正\r
+ int ListSts;\r
\r
// 同時接続対応\r
CancelFlg = NO;\r
/*===== ファイルリスト取得 =====*/\r
\r
LocalListBase = NULL;\r
- MakeSelectedFileList(WIN_LOCAL, YES, YES, &LocalListBase, &CancelFlg);\r
+ // ファイル一覧バグ修正\r
+// MakeSelectedFileList(WIN_LOCAL, YES, YES, &LocalListBase, &CancelFlg);\r
+ ListSts = MakeSelectedFileList(WIN_LOCAL, YES, YES, &LocalListBase, &CancelFlg);\r
RemoteListBase = NULL;\r
- MakeSelectedFileList(WIN_REMOTE, YES, YES, &RemoteListBase, &CancelFlg);\r
+ // ファイル一覧バグ修正\r
+// MakeSelectedFileList(WIN_REMOTE, YES, YES, &RemoteListBase, &CancelFlg);\r
+ if(ListSts == FFFTP_SUCCESS)\r
+ ListSts = MakeSelectedFileList(WIN_REMOTE, YES, YES, &RemoteListBase, &CancelFlg);\r
\r
LocalPos = LocalListBase;\r
while(LocalPos != NULL)\r
LocalPos = LocalPos->Next;\r
}\r
\r
- if((Notify == YES) ||\r
- (DialogBoxParam(GetFtpInst(), MAKEINTRESOURCE(mirror_notify_dlg), GetMainHwnd(), MirrorDispListCallBack, (LPARAM)&Base) == YES))\r
+ // ファイル一覧バグ修正\r
+// if((Notify == YES) ||\r
+// (DialogBoxParam(GetFtpInst(), MAKEINTRESOURCE(mirror_notify_dlg), GetMainHwnd(), MirrorDispListCallBack, (LPARAM)&Base) == YES))\r
+ if(((AbortOnListError == NO) || (ListSts == FFFTP_SUCCESS)) && ((Notify == YES) ||\r
+ (DialogBoxParam(GetFtpInst(), MAKEINTRESOURCE(mirror_notify_dlg), GetMainHwnd(), MirrorDispListCallBack, (LPARAM)&Base) == YES)))\r
{\r
if(AskNoFullPathMode() == YES)\r
{\r
int AutoApplyUpdates = NO;\r
int AutoCheckForUptatesInterval = 7;\r
time_t LastAutoCheckForUpdates = 0;\r
+// ファイル一覧バグ修正\r
+int AbortOnListError = YES;\r
\r
\r
\r
extern int AutoCheckForUpdates;\r
extern int AutoApplyUpdates;\r
extern int AutoCheckForUptatesInterval;\r
+// ファイル一覧バグ修正\r
+extern int AbortOnListError;\r
\r
\r
/*----- オプションのプロパティシート ------------------------------------------\r
SendDlgItemMessage(hDlg, TRMODE_SEMICOLON, BM_SETCHECK, VaxSemicolon, 0);\r
// ディレクトリ自動作成\r
SendDlgItemMessage(hDlg, TRMODE_MAKEDIR, BM_SETCHECK, MakeAllDir, 0);\r
+ // ファイル一覧バグ修正\r
+ SendDlgItemMessage(hDlg, TRMODE_LISTERROR, BM_SETCHECK, AbortOnListError, 0);\r
\r
SendMessage(hDlg, WM_COMMAND, MAKEWPARAM(TRMODE_EXT_LIST, 0), 0);\r
\r
VaxSemicolon = SendDlgItemMessage(hDlg, TRMODE_SEMICOLON, BM_GETCHECK, 0, 0);\r
// ディレクトリ自動作成\r
MakeAllDir = SendDlgItemMessage(hDlg, TRMODE_MAKEDIR, BM_GETCHECK, 0, 0);\r
+ // ファイル一覧バグ修正\r
+ AbortOnListError = SendDlgItemMessage(hDlg, TRMODE_LISTERROR, BM_GETCHECK, 0, 0);\r
break;\r
\r
case PSN_RESET :\r
extern int AutoApplyUpdates;\r
extern int AutoCheckForUptatesInterval;\r
extern time_t LastAutoCheckForUpdates;\r
+// ファイル一覧バグ修正\r
+extern int AbortOnListError;\r
\r
/*----- マスタパスワードの設定 ----------------------------------------------\r
*\r
WriteIntValueToReg(hKey4, "UpdApply", AutoApplyUpdates);\r
WriteIntValueToReg(hKey4, "UpdInterval", AutoCheckForUptatesInterval);\r
WriteBinaryToReg(hKey4, "UpdLastCheck", &LastAutoCheckForUpdates, sizeof(LastAutoCheckForUpdates));\r
+ // ファイル一覧バグ修正\r
+ WriteIntValueToReg(hKey4, "AbortListErr", AbortOnListError);\r
}\r
CloseSubKey(hKey4);\r
}\r
ReadIntValueFromReg(hKey4, "UpdApply", &AutoApplyUpdates);\r
ReadIntValueFromReg(hKey4, "UpdInterval", &AutoCheckForUptatesInterval);\r
ReadBinaryFromReg(hKey4, "UpdLastCheck", &LastAutoCheckForUpdates, sizeof(LastAutoCheckForUpdates));\r
+ // ファイル一覧バグ修正\r
+ ReadIntValueFromReg(hKey4, "AbortListErr", &AbortOnListError);\r
\r
CloseSubKey(hKey4);\r
}\r