extern HWND hHelpWin;\r
// 外部アプリケーションへドロップ後にローカル側のファイル一覧に作業フォルダが表示されるバグ対策\r
extern int SuppressRefresh;\r
+// ローカル側自動更新\r
+extern HANDLE ChangeNotification;\r
\r
/* 設定値 */\r
extern int LocalWidth;\r
SetYenTail(Cur);\r
strcat(Cur, Pos->File);\r
}\r
- if(SHGetFileInfoM(Cur, 0, &FileInfo, sizeof(SHFILEINFO), SHGFI_SMALLICON | SHGFI_ICON) != 0)\r
+ if(SHGetFileInfo(Cur, 0, &FileInfo, sizeof(SHFILEINFO), SHGFI_SMALLICON | SHGFI_ICON) != 0)\r
{\r
if(ImageList_AddIcon(ListImgFileIcon, FileInfo.hIcon) >= 0)\r
{\r
SetLocalDirHist(Scan);\r
DispLocalFreeSpace(Scan);\r
\r
+ // ローカル側自動更新\r
+ if(ChangeNotification != INVALID_HANDLE_VALUE)\r
+ FindCloseChangeNotification(ChangeNotification);\r
+ ChangeNotification = FindFirstChangeNotification(Scan, FALSE, FILE_NOTIFY_CHANGE_FILE_NAME | FILE_NOTIFY_CHANGE_DIR_NAME | FILE_NOTIFY_CHANGE_ATTRIBUTES | FILE_NOTIFY_CHANGE_SIZE | FILE_NOTIFY_CHANGE_LAST_WRITE);\r
+\r
/* ディレクトリ/ファイル */\r
\r
SetYenTail(Scan);\r
}\r
else\r
{\r
+ // 読みにくいのでリファクタリング\r
+// if((((Sort & SORT_MASK_ORD) == SORT_EXT) &&\r
+// ((Cmp = _mbsicmp(GetFileExt(Name), GetFileExt(Pos->File))) > 0)) ||\r
+//#if defined(HAVE_TANDEM)\r
+// ((AskHostType() == HTYPE_TANDEM) &&\r
+// ((Sort & SORT_MASK_ORD) == SORT_EXT) &&\r
+// ((Cmp = Attr - Pos->Attr) > 0)) ||\r
+//#endif\r
+// (((Sort & SORT_MASK_ORD) == SORT_SIZE) &&\r
+// ((Cmp = Size - Pos->Size) > 0)) ||\r
+// (((Sort & SORT_MASK_ORD) == SORT_DATE) &&\r
+// ((Cmp = CompareFileTime(Time, &Pos->Time)) > 0)))\r
+// {\r
+// break;\r
+// }\r
if((((Sort & SORT_MASK_ORD) == SORT_EXT) &&\r
- ((Cmp = _mbsicmp(GetFileExt(Name), GetFileExt(Pos->File))) > 0)) ||\r
+ ((Cmp = _mbsicmp(GetFileExt(Name), GetFileExt(Pos->File))) > 0)))\r
+ break;\r
#if defined(HAVE_TANDEM)\r
- ((AskHostType() == HTYPE_TANDEM) &&\r
+ if(((AskHostType() == HTYPE_TANDEM) &&\r
((Sort & SORT_MASK_ORD) == SORT_EXT) &&\r
- ((Cmp = Attr - Pos->Attr) > 0)) ||\r
+ ((Cmp = Attr - Pos->Attr) > 0)))\r
+ break;\r
#endif\r
- (((Sort & SORT_MASK_ORD) == SORT_SIZE) &&\r
- ((Cmp = Size - Pos->Size) > 0)) ||\r
- (((Sort & SORT_MASK_ORD) == SORT_DATE) &&\r
- ((Cmp = CompareFileTime(Time, &Pos->Time)) > 0)))\r
- {\r
+ if(((Sort & SORT_MASK_ORD) == SORT_SIZE) &&\r
+ ((Cmp = Size - Pos->Size) > 0))\r
+ break;\r
+ if(((Sort & SORT_MASK_ORD) == SORT_DATE) &&\r
+ ((Cmp = CompareFileTime(Time, &Pos->Time)) > 0))\r
break;\r
- }\r
\r
if(((Sort & SORT_MASK_ORD) == SORT_NAME) || (Cmp == 0))\r
{\r
* なし\r
*----------------------------------------------------------------------------*/\r
\r
-void SelectFileInList(HWND hWnd, int Type)\r
+// ローカル側自動更新\r
+//void SelectFileInList(HWND hWnd, int Type)\r
+void SelectFileInList(HWND hWnd, int Type, FILELIST *Base)\r
{\r
int Win;\r
int WinDst;\r
}\r
}\r
break;\r
+\r
+ // ローカル側自動更新\r
+ case SELECT_LIST :\r
+ for(i = 0; i < Num; i++)\r
+ {\r
+ LvItem.state = 0;\r
+ GetNodeName(Win, i, Name, FMAX_PATH);\r
+ if(SearchFileList(Name, Base, COMP_STRICT) != NULL)\r
+ LvItem.state = LVIS_SELECTED;\r
+ LvItem.mask = LVIF_STATE;\r
+ LvItem.iItem = i;\r
+ LvItem.stateMask = LVIS_SELECTED;\r
+ LvItem.iSubItem = 0;\r
+ SendMessage(hWnd, LVM_SETITEMSTATE, i, (LPARAM)&LvItem);\r
+ }\r
+ break;\r
}\r
return;\r
}\r
if((Node == NODE_FILE) ||\r
((Expand == NO) && (Node == NODE_DIR)))\r
{\r
+ // 変数が未初期化のバグ修正\r
+ memset(&Pkt, 0, sizeof(FILELIST));\r
+\r
Pkt.InfoExist = 0;\r
GetNodeName(Win, Pos, Pkt.File, FMAX_PATH);\r
if(GetNodeSize(Win, Pos, &Pkt.Size) == YES)\r
{\r
if(GetNodeType(Win, Pos) == NODE_DIR)\r
{\r
+ // 変数が未初期化のバグ修正\r
+ memset(&Pkt, 0, sizeof(FILELIST));\r
+\r
GetNodeName(Win, Pos, Name, FMAX_PATH);\r
strcpy(Pkt.File, Name);\r
ReplaceAll(Pkt.File, '\\', '/');\r
\r
if((GetFileAttributes(Name) & FILE_ATTRIBUTE_DIRECTORY) == 0)\r
{\r
+ // 変数が未初期化のバグ修正\r
+ memset(&Pkt, 0, sizeof(FILELIST));\r
+\r
Pkt.Node = NODE_FILE;\r
strcpy(Pkt.File, GetFileName(Name));\r
\r
\r
if(GetFileAttributes(Name) & FILE_ATTRIBUTE_DIRECTORY)\r
{\r
+ // 変数が未初期化のバグ修正\r
+ memset(&Pkt, 0, sizeof(FILELIST));\r
+\r
Pkt.Node = NODE_DIR;\r
strcpy(Pkt.File, GetFileName(Name));\r
AddFileList(&Pkt, Base);\r
{\r
if(Pos->Node == NODE_DIR)\r
{\r
+ // 変数が未初期化のバグ修正\r
+ memset(&Pkt, 0, sizeof(FILELIST));\r
+\r
/* まずディレクトリ名をセット */\r
strcpy(Pkt.File, Pos->File);\r
Pkt.Node = NODE_DIR;\r
{\r
if(IncDir == RDIR_NLST)\r
{\r
+ // 変数が未初期化のバグ修正\r
+ memset(&Pkt, 0, sizeof(FILELIST));\r
+\r
strcpy(Pkt.File, Dir);\r
Pkt.Node = NODE_DIR;\r
Pkt.Size = 0;\r
if((Node == NODE_FILE) ||\r
((IncDir == RDIR_CWD) && (Node == NODE_DIR)))\r
{\r
+ // 変数が未初期化のバグ修正\r
+ memset(&Pkt, 0, sizeof(FILELIST));\r
+\r
strcpy(Pkt.File, Dir);\r
if(strlen(Pkt.File) > 0)\r
SetSlashTail(Pkt.File);\r
{\r
if(AskFilterStr(FindBuf.cFileName, NODE_FILE) == YES)\r
{\r
+ // 変数が未初期化のバグ修正\r
+ memset(&Pkt, 0, sizeof(FILELIST));\r
+\r
strcpy(Pkt.File, Path);\r
SetSlashTail(Pkt.File);\r
strcat(Pkt.File, FindBuf.cFileName);\r
(strcmp(FindBuf.cFileName, ".") != 0) &&\r
(strcmp(FindBuf.cFileName, "..") != 0))\r
{\r
+ // 変数が未初期化のバグ修正\r
+ memset(&Pkt, 0, sizeof(FILELIST));\r
+\r
strcpy(Src, Path);\r
SetYenTail(Src);\r
strcat(Src, FindBuf.cFileName);\r