OSDN Git Service

Added support for displaying icons in the local file list.
authors_kawamoto <s_kawamoto@users.sourceforge.jp>
Mon, 12 Dec 2011 12:03:28 +0000 (21:03 +0900)
committers_kawamoto <s_kawamoto@users.sourceforge.jp>
Mon, 12 Dec 2011 12:03:28 +0000 (21:03 +0900)
Modify documents.

19 files changed:
FFFTP_Eng_Release/FFFTP.exe
Release/FFFTP.exe
Resource/FFFTP.rc
Resource/list_bmp.bmp
Resource/resource.h
Resource_eng/FFFTP-eng.rc
Resource_eng/list_bmp.bmp
Resource_eng/resource.h
common.h
doc/eng/FFFTP.txt
doc/eng/history.txt
doc/jpn/FFFTP.txt
doc/jpn/history.txt
filelist.c
main.c
mbswrapper.c
mbswrapper.h
option.c
registry.c

index 337c645..ba138d7 100644 (file)
Binary files a/FFFTP_Eng_Release/FFFTP.exe and b/FFFTP_Eng_Release/FFFTP.exe differ
index 5c90be9..864ec3a 100644 (file)
Binary files a/Release/FFFTP.exe and b/Release/FFFTP.exe differ
index adf2adc..4de913b 100644 (file)
@@ -235,9 +235,9 @@ FONT 9, "
 BEGIN\r
     DEFPUSHBUTTON   "OK",IDOK,133,294,50,14\r
     ICON            ffftp,-1,7,4,20,20\r
-    CTEXT           "FFFTP  Ver 1.98d",-1,113,11,90,8\r
+    CTEXT           "FFFTP  Ver 1.98e",-1,113,11,90,8\r
     CTEXT           "FFFTP\82Ífreeware\82Å\82·",-1,7,279,305,8\r
-    CTEXT           "Copyright(C) 1997-2010 Sota & \82²\8b¦\97Í\82¢\82½\82¾\82¢\82½\95û\81X\nCopyright (C) 2011 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, \82¤\82È\81[, Asami, fortran90, tomo1192)",-1,7,25,305,44,SS_NOPREFIX\r
+    CTEXT           "Copyright(C) 1997-2010 Sota & \82²\8b¦\97Í\82¢\82½\82¾\82¢\82½\95û\81X\nCopyright (C) 2011 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, \82¤\82È\81[, Asami, fortran90, tomo1192, Yuji Tanaka)",-1,7,25,305,44,SS_NOPREFIX\r
     CTEXT           "",ABOUT_JRE,7,96,305,8\r
     EDITTEXT        ABOUT_URL,7,76,305,12,ES_CENTER | ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER\r
     CTEXT           "OLE D&&D\8b@\94\ by \95½\93c\96L\82³\82ñ\81Anakka\82³\82ñ\n\83z\83X\83g\93à\82Å\82Ì\83t\83@\83C\83\8b\88Ú\93®\8b@\94\ by \95½\93c\96L\82³\82ñ\n\82¢\82­\82Â\82©\82Ì\8b@\94\ by miau\82³\82ñ\n\83}\83X\83^\81[\83p\83X\83\8f\81[\83h\8b@\94\ by \82°\82ñ\82°\82ñ\82³\82ñ\nAES\88Ã\8d\86\89» by Moca\82³\82ñ\n\n\91¼\81A\91½\82­\82Ì\95û\82Ì\82²\8b¦\97Í\82ð\82¢\82½\82¾\82«\82Ü\82µ\82½\81B",-1,7,143,305,60\r
@@ -1290,6 +1290,7 @@ BEGIN
     CONTROL         "\89B\82µ\91®\90«\82Ì\83t\83@\83C\83\8b\81A\83t\83H\83\8b\83_\82Í\95\\8e¦\82µ\82È\82¢(&H)",DISP_HIDE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,30,172,10\r
     LTEXT           "\89B\82µ\91®\90«\82Ì\83t\83@\83C\83\8b\82ð\95\\8e¦\82µ\82È\82¢\82æ\82¤\82É\82·\82é\82Æ\81A\83~\83\89\81[\83\8a\83\93\83O\83A\83b\83v\83\8d\81[\83h\82Å\82à\89B\82µ\91®\90«\82Ì\83t\83@\83C\83\8b\82Í\83A\83b\83v\83\8d\81[\83h\82µ\82È\82¢\82æ\82¤\82É\82È\82è\82Ü\82·\81B",-1,29,44,167,27,SS_SUNKEN\r
     CONTROL         "\83\8d\81[\83J\83\8b\91¤\82Ì\83t\83@\83C\83\8b\88ê\97\97\82É\83h\83\89\83C\83u\96¼\82à\95\\8e¦\82·\82é(&D)",DISP_DRIVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,79,172,10\r
+    CONTROL         "\83\8d\81[\83J\83\8b\91¤\82Ì\83t\83@\83C\83\8b\88ê\97\97\82É\83A\83C\83R\83\93\82ð\95\\8e¦\82·\82é(&I)",DISP_ICON,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,93,172,10\r
 END\r
 \r
 bmark_edit_dlg DIALOG  0, 0, 187, 83\r
@@ -2073,8 +2074,8 @@ nodrop_csr              CURSOR                  "nodrop_c.cur"
 //\r
 \r
 VS_VERSION_INFO VERSIONINFO\r
- FILEVERSION 1,98,4,0\r
- PRODUCTVERSION 1,98,4,0\r
+ FILEVERSION 1,98,5,0\r
+ PRODUCTVERSION 1,98,5,0\r
  FILEFLAGSMASK 0x3fL\r
 #ifdef _DEBUG\r
  FILEFLAGS 0x1L\r
@@ -2092,12 +2093,12 @@ BEGIN
             VALUE "Comments", "\82±\82ê\82Í\83t\83\8a\81[\83\\83t\83g\83E\83G\83A\82Å\82·\81B"\r
             VALUE "CompanyName", " "\r
             VALUE "FileDescription", "FFFTP"\r
-            VALUE "FileVersion", "1, 98, 4, 0"\r
+            VALUE "FileVersion", "1, 98, 5, 0"\r
             VALUE "InternalName", "FFFTP"\r
-            VALUE "LegalCopyright", "Copyright (C) 1997-2010 Sota & \82²\8b¦\97Í\82¢\82½\82¾\82¢\82½\95û\81X\nCopyright (C) 2011 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, \82¤\82È\81[, Asami, fortran90, tomo1192)."\r
+            VALUE "LegalCopyright", "Copyright (C) 1997-2010 Sota & \82²\8b¦\97Í\82¢\82½\82¾\82¢\82½\95û\81X\nCopyright (C) 2011 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, \82¤\82È\81[, Asami, fortran90, tomo1192, Yuji Tanaka)."\r
             VALUE "OriginalFilename", "FFFTP.exe"\r
             VALUE "ProductName", "FFFTP"\r
-            VALUE "ProductVersion", "1, 98, 4, 0"\r
+            VALUE "ProductVersion", "1, 98, 5, 0"\r
         END\r
     END\r
     BLOCK "VarFileInfo"\r
index e4a80ae..9781792 100644 (file)
Binary files a/Resource/list_bmp.bmp and b/Resource/list_bmp.bmp differ
index 12173b9..78283af 100644 (file)
 #define FIRE_RESOLV                     1013\r
 #define HSET_DIALNOTIFY                 1013\r
 #define MIRROR_DOWNDEL_NOTIFY           1013\r
+#define DISP_ICON                       1013\r
 #define OPT1_EDITOR_BR                  1014\r
 #define PERM_G_WRITE                    1014\r
 #define SORT_RDIR_REV                   1014\r
index 0dbc638..b70cb19 100644 (file)
@@ -235,9 +235,9 @@ FONT 9, "MS Sans Serif", 0, 0, 0x0
 BEGIN\r
     DEFPUSHBUTTON   "OK",IDOK,132,296,50,14\r
     ICON            ffftp,-1,7,4,20,20\r
-    CTEXT           "FFFTP  Ver 1.98d",-1,110,11,90,8\r
+    CTEXT           "FFFTP  Ver 1.98e",-1,110,11,90,8\r
     CTEXT           "FFFTP is freeware",-1,7,281,301,8\r
-    CTEXT           "Copyright(C) 1997-2010 Sota && cooperators\nCopyright (C) 2011 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, unarist, Asami, fortran90, tomo1192)",-1,7,25,301,44\r
+    CTEXT           "Copyright(C) 1997-2010 Sota && cooperators\nCopyright (C) 2011 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, unarist, Asami, fortran90, tomo1192, Yuji Tanaka)",-1,7,25,301,44\r
     CTEXT           "",ABOUT_JRE,7,93,301,8\r
     EDITTEXT        ABOUT_URL,7,76,301,12,ES_CENTER | ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER\r
     CTEXT           "OLE D&&D by Yutaka Hirata-san, nakka-san\nIn site file mover by Hirata-san\nAny issues by miau-san\nMaster Password by Gengen-san\nAES encryption by Moca-san\n\nI had cooperation of many other one.",-1,7,142,301,59\r
@@ -1315,6 +1315,7 @@ BEGIN
     CONTROL         "Do not display &hidden files/folders",DISP_HIDE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,30,172,10\r
     LTEXT           "If this box is checked, hidden files/folders are not transferred during Mirror operations.",-1,29,44,167,27,SS_SUNKEN\r
     CONTROL         "&Display drives in the file list",DISP_DRIVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,76,172,10\r
+    CONTROL         "Display &icons in the file list",DISP_ICON,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,90,172,10\r
 END\r
 \r
 bmark_edit_dlg DIALOG  0, 0, 187, 83\r
@@ -2098,8 +2099,8 @@ nodrop_csr              CURSOR                  "nodrop_c.cur"
 //\r
 \r
 VS_VERSION_INFO VERSIONINFO\r
- FILEVERSION 1,98,4,0\r
- PRODUCTVERSION 1,98,4,0\r
+ FILEVERSION 1,98,5,0\r
+ PRODUCTVERSION 1,98,5,0\r
  FILEFLAGSMASK 0x3fL\r
 #ifdef _DEBUG\r
  FILEFLAGS 0x1L\r
@@ -2117,12 +2118,12 @@ BEGIN
             VALUE "Comments", "This software is Free Software"\r
             VALUE "CompanyName", " Sota"\r
             VALUE "FileDescription", "FFFTP"\r
-            VALUE "FileVersion", "1, 98, 4, 0"\r
+            VALUE "FileVersion", "1, 98, 5, 0"\r
             VALUE "InternalName", "FFFTP"\r
-            VALUE "LegalCopyright", "Copyright (C) 1997-2010 Sota & cooperators\nCopyright (C) 2011 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, unarist, Asami, fortran90, tomo1192)."\r
+            VALUE "LegalCopyright", "Copyright (C) 1997-2010 Sota & cooperators\nCopyright (C) 2011 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, unarist, Asami, fortran90, tomo1192, Yuji Tanaka)."\r
             VALUE "OriginalFilename", "FFFTP.exe"\r
             VALUE "ProductName", "FFFTP"\r
-            VALUE "ProductVersion", "1, 98, 4, 0"\r
+            VALUE "ProductVersion", "1, 98, 5, 0"\r
         END\r
     END\r
     BLOCK "VarFileInfo"\r
index e4a80ae..9781792 100644 (file)
Binary files a/Resource_eng/list_bmp.bmp and b/Resource_eng/list_bmp.bmp differ
index 05d49bf..676d75b 100644 (file)
 #define FIRE_RESOLV                     1013\r
 #define HSET_DIALNOTIFY                 1013\r
 #define MIRROR_DOWNDEL_NOTIFY           1013\r
+#define DISP_ICON                       1013\r
 #define OPT1_EDITOR_BR                  1014\r
 #define PERM_G_WRITE                    1014\r
 #define SORT_RDIR_REV                   1014\r
index bd7737e..2f8be0c 100644 (file)
--- a/common.h
+++ b/common.h
@@ -70,9 +70,9 @@
 //#define VER_STR                                      "1.97b"\r
 //#define VER_NUM                                      1921            /* 設定バージョン */\r
 //#define PROGRAM_VERSION_NUM          1972            /* バージョン */\r
-#define VER_STR                                        "1.98d"\r
-#define VER_NUM                                        1984            /* 設定バージョン */\r
-#define PROGRAM_VERSION_NUM            1984            /* バージョン */\r
+#define VER_STR                                        "1.98e"\r
+#define VER_NUM                                        1985            /* 設定バージョン */\r
+#define PROGRAM_VERSION_NUM            1985            /* バージョン */\r
 \r
 \r
 // SourceForge.JPによるフォーク\r
@@ -1085,6 +1085,8 @@ typedef struct filelist {
        FILETIME Time;                                  /* 時間(UTC) */\r
        char Owner[OWNER_NAME_LEN+1];   /* オーナ名 */\r
        char InfoExist;                                 /* ファイル一覧に存在した情報のフラグ (FINFO_xxx) */\r
+       // ファイルアイコン表示対応\r
+       int ImageId;                                    /* アイコン画像番号 */\r
        struct filelist *Next;\r
 } FILELIST;\r
 \r
@@ -1280,6 +1282,8 @@ BOOL __stdcall SSLConfirmCallback(BOOL* pbAborted, BOOL bVerified, LPCSTR Certif
 BOOL LoadSSLRootCAFile();\r
 // マルチコアCPUの特定環境下でファイル通信中にクラッシュするバグ対策\r
 BOOL IsMainThread();\r
+// ファイルアイコン表示対応\r
+int AskDispFileIcon(void);\r
 \r
 /*===== filelist.c =====*/\r
 \r
index 8218380..8d20e40 100644 (file)
@@ -1,7 +1,7 @@
 ============================================================\r
-[Software Name]  FFFTP Ver.1.98d (FTP Client software)\r
+[Software Name]  FFFTP Ver.1.98e (FTP Client software)\r
 [Copyright]      Copyright(C) 1997-2010 Sota & cooperators\r
-                 Copyright(C) 2011 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, unarist, Asami, fortran90, tomo1192).\r
+                 Copyright(C) 2011 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, unarist, Asami, fortran90, tomo1192, Yuji Tanaka).\r
 [Environment]    Windows 7, Vista, XP, 2000\r
 ============================================================\r
 \r
@@ -28,38 +28,17 @@ following menu.
 File ->\81@Settings -> Change Master password\r
 \r
 \r
-Changes in Ver.1.98d\r
+Changes in Ver.1.98e\r
 --------------------\r
 \r
--- MLSD command became used for retrieving filenames on appropriate hosts.\r
-   That is helpful for hosts that do not return filenames properly.\r
+-- Fixed bugs that an inputted password is ignored if failed in login.\r
 \r
--- Enhanced communication routines to reduce waiting time.\r
+-- Fixed bugs to crash under multicore CPU environment.\r
 \r
--- Changed to display responses from hosts after decoding as Kanji code of\r
-   filenames.\r
+-- Changed the location of temporary files.\r
+   This resolves interference in file list caches between instances of FFFTP.\r
 \r
--- Fixed bugs of arbitrary code execution in saving registry settings to a\r
-   file.\r
-\r
--- Fixed bugs of launching wrong files if correct ones contain no extensions.\r
-\r
--- Internet Protocol Version 6 became available.\r
-   IPv6 will be used when name resolution for IPv4 is unavailable by default.\r
-\r
--- Changed to detect encoding of strings in INI file automatically.\r
-\r
--- Changed to verify SSL/TLS certificates with root CAs in FTPS connections.\r
-   Please modify "ssl.pem" in PEM format if you want to update root CA list.\r
-\r
--- Added a feature to send commands for keep alive.\r
-   This is disabled by default.\r
-\r
--- Reduced chance of stopping transfer when numerous files are transfered.\r
-\r
--- Added a feature to retry transfering files if failed.\r
-\r
--- Enhanced automatic detection of Kanji code of filenames.\r
+-- Supported the file list format of linux-ftpd.\r
 \r
 \r
 Outline\r
@@ -94,7 +73,7 @@ Warranty Disclaimer
 License Agreement\r
 -----------------\r
 Copyright(C) 1997-2010, Sota & cooperators. All rights reserved.\r
-Copyright(C) 2011 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, unarist, Asami, fortran90, tomo1192).\r
+Copyright(C) 2011 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, unarist, Asami, fortran90, tomo1192, Yuji Tanaka).\r
 \r
 Redistribution and use in source and binary forms, with or without \r
 modification, are permitted provided that the following conditions \r
index d5b4b5e..fcd2b0b 100644 (file)
@@ -1,5 +1,17 @@
 FFFTP version history.\r
 \r
+Changes in Ver.1.98e\r
+--------------------\r
+\r
+-- Fixed bugs that an inputted password is ignored if failed in login.\r
+\r
+-- Fixed bugs to crash under multicore CPU environment.\r
+\r
+-- Changed the location of temporary files.\r
+   This resolves interference in file list caches between instances of FFFTP.\r
+\r
+-- Supported the file list format of linux-ftpd.\r
+\r
 Changes in Ver.1.98d\r
 --------------------\r
 \r
index 27e687b..6af6326 100644 (file)
@@ -1,5 +1,5 @@
 ============================================================\r
-\81y\83\\83t\83g\96¼\81z\81@FTP\83N\83\89\83C\83A\83\93\83g FFFTP\81isf.jp\94Å\81j Ver 1.98d\r
+\81y\83\\83t\83g\96¼\81z\81@FTP\83N\83\89\83C\83A\83\93\83g FFFTP\81isf.jp\94Å\81j Ver 1.98e\r
 \81y\93®\8dì\8am\94F\8aÂ\8b«\81z\81@Windows 7\81AVista\81AXP\81A2000\r
 \81y\83T\83|\81[\83g\81z\81@http://sourceforge.jp/projects/ffftp/\r
 ============================================================\r
@@ -27,46 +27,18 @@ FFFTP Ver.1.96d+009
 \83}\83X\83^\81[\83p\83X\83\8f\81[\83h\82Ì\93ü\97Í\82ª\8b\81\82ß\82ç\82ê\82Ü\82·\82Ì\82Å\81A\93ü\97Í\82µ\82Ä\82­\82¾\82³\82¢\81B\r
 \r
 \r
-Ver 1.98d\82Å\82Ì\95Ï\8dX\93_\r
+Ver 1.98e\82Å\82Ì\95Ï\8dX\93_\r
 -------------------\r
 \r
-\81EMLSD\83R\83}\83\93\83h\82É\91Î\89\9e\82µ\82½\83z\83X\83g\82Å\82ÍMLSD\83R\83}\83\93\83h\82ð\97p\82¢\82Ä\83t\83@\83C\83\8b\88ê\97\97\82ð\r
-\81@\8eæ\93¾\82·\82é\82æ\82¤\82É\82µ\82Ü\82µ\82½\81BLIST\83R\83}\83\93\83h\82Ì\89\9e\93\9a\82É\93Á\92è\82Ì\83t\83@\83C\83\8b\82ª\r
-\81@\8aÜ\82Ü\82ê\82È\82¢\88ê\95\94\82Ì\83z\83X\83g\82Å\82à\90³\82µ\82­\97ñ\8b\93\82Å\82«\82é\89Â\94\\90«\82ª\8d\82\82­\82È\82è\82Ü\82·\81B\r
+\81E\83z\83X\83g\82Ì\83p\83X\83\8f\81[\83h\82ª\90³\82µ\82­\82È\82¢\8fê\8d\87\82É\83p\83X\83\8f\81[\83h\82ð\8eè\93®\82Å\8dÄ\93x\93ü\97Í\82µ\82Ä\82à\r
+\81@\83\8d\83O\83C\83\93\82Å\82«\82È\82¢\83o\83O\82ð\8fC\90³\82µ\82Ü\82µ\82½\81B\r
 \r
-\81E\92Ê\90M\82Ì\83\8b\81[\83`\83\93\82ð\91Ò\82¿\8e\9e\8aÔ\82ª\8c¸\82é\82æ\82¤\82É\89ü\91P\82µ\82Ü\82µ\82½\81B\r
+\81E\83}\83\8b\83`\83R\83ACPU\82Ì\93Á\92è\8aÂ\8b«\89º\82Å\83N\83\89\83b\83V\83\85\82·\82é\83o\83O\82ð\8fC\90³\82µ\82Ü\82µ\82½\81B\r
 \r
-\81E\83z\83X\83g\82Ì\89\9e\93\9a\82ð\83z\83X\83g\82Ì\83t\83@\83C\83\8b\96¼\82Ì\8a¿\8e\9a\83R\81[\83h\82Å\83f\83R\81[\83h\82µ\82Ä\82©\82ç\83\8d\83O\82É\r
-\81@\95\\8e¦\82·\82é\82æ\82¤\82É\95Ï\8dX\82µ\82Ü\82µ\82½\81B\r
+\81E\8dì\8bÆ\83t\83@\83C\83\8b\82ð\95Û\91\82·\82é\83t\83H\83\8b\83_\82Ì\8d\\90¬\82ð\95Ï\8dX\82µ\82Ü\82µ\82½\81B\82±\82ê\82É\82æ\82èFFFTP\82ð\r
+\81@\95¡\90\94\8bN\93®\82µ\82Ä\82à\83L\83\83\83b\83V\83\85\82ª\8a±\8fÂ\82µ\82È\82­\82È\82è\82Ü\82·\81B\r
 \r
-\81E\83\8c\83W\83X\83g\83\8a\82Ì\90Ý\92è\82ð\83t\83@\83C\83\8b\82É\95Û\91\82·\82é\82Æ\82«\82É\94C\88Ó\82Ì\83R\81[\83h\82ª\8eÀ\8ds\82³\82ê\82é\r
-\81@\89Â\94\\90«\82ª\82 \82é\83o\83O\82ð\8fC\90³\82µ\82Ü\82µ\82½\81B\r
-\r
-\81E\8ag\92£\8eq\82ª\96³\82¢\83t\83@\83C\83\8b\82ð\83_\83u\83\8b\83N\83\8a\83b\83N\82µ\82½\8fê\8d\87\82É\91I\91ð\82³\82ê\82½\82à\82Ì\82Æ\88Ù\82È\82é\r
-\81@\83t\83@\83C\83\8b\82ª\95\\8e¦\82³\82ê\82é\83o\83O\82ð\8fC\90³\82µ\82Ü\82µ\82½\81B\r
-\r
-\81E\83z\83X\83g\82Æ\82Ì\90Ú\91±\82ÉInternet Protocol Version 6\81i\97ª\8fÌIPv6\81j\82ª\8eg\97p\82Å\82«\82é\r
-\81@\82æ\82¤\82É\82È\82è\82Ü\82µ\82½\81B\83f\83t\83H\83\8b\83g\82Å\82Í\8f]\97\88\82ÌIPv4\82Å\96¼\91O\89ð\8c\88\82ª\82Å\82«\82È\82¢\8fê\8d\87\82É\r
-\81@IPv6\82Å\90Ú\91±\82ð\8e\8e\82Ý\82é\82æ\82¤\82É\82È\82è\82Ü\82·\81B\r
-\r
-\81EINI\83t\83@\83C\83\8b\82Ì\95\8e\9a\97ñ\82Ì\95\8e\9a\83R\81[\83h\82ð\8e©\93®\94»\95Ê\82·\82é\82æ\82¤\82É\95Ï\8dX\82µ\82Ü\82µ\82½\81B\r
-\r
-\81E\83\81\83C\83\93\83E\83B\83\93\83h\83E\82ª\8eg\97p\82µ\82Ä\82¢\82é\90Ú\91±\82ð\93]\91\97\97p\82É\8dÄ\8eg\97p\82·\82é\82½\82ß\82Ì\90Ý\92è\82ð\r
-\81@\92Ç\89Á\82µ\82Ü\82µ\82½\81B\82±\82ê\82É\82æ\82è1.97b\88È\91O\82Å\93]\91\97\89Â\94\\82¾\82Á\82½\82ª1.98\82Å\93]\91\97\95s\94\\82É\r
-\81@\82È\82é\82Æ\82¢\82¤\8fÇ\8fó\82ª\89ü\91P\82³\82ê\82Ü\82·\82ª\81A\95s\8bï\8d\87\82ª\94­\90\82·\82é\89Â\94\\90«\82ª\82 \82è\82Ü\82·\81B\r
-\r
-\81EFTPS\82Å\90Ú\91±\82µ\82½\8e\9e\82ÉSSL/TLS\82Ì\83\8b\81[\83g\8fØ\96¾\8f\91\82ð\97p\82¢\82Ä\83z\83X\83g\82Ì\8fØ\96¾\8f\91\82ð\8c\9f\8fØ\r
-\81@\82·\82é\82æ\82¤\82É\95Ï\8dX\82µ\82Ü\82µ\82½\81B\83\8b\81[\83g\8fØ\96¾\8f\91\82ð\8dX\90V\82·\82é\82É\82Í\93¯\8d«\82Ì"ssl.pem"\r
-\81@\83t\83@\83C\83\8b\82ðPEM\8c`\8e®\82É\8f]\82Á\82Ä\8f\91\82«\8a·\82¦\82Ä\82­\82¾\82³\82¢\81B\r
-\r
-\81E\83z\83X\83g\82Æ\82Ì\90Ú\91±\82ð\88Û\8e\9d\82·\82é\82½\82ß\82É\88ê\92è\8e\9e\8aÔ\82²\82Æ\82É\83R\83}\83\93\83h\82ð\91\97\90M\82·\82é\8b@\94\\82ð\r
-\81@\92Ç\89Á\82µ\82Ü\82µ\82½\81B\82½\82¾\82µ\82±\82Ì\8b@\94\\82Í\83f\83t\83H\83\8b\83g\82Å\82Í\96³\8cø\82É\90Ý\92è\82³\82ê\82Ü\82·\81B\r
-\r
-\81E\91å\97Ê\82Ì\83t\83@\83C\83\8b\82ð\93]\91\97\82µ\82½\8e\9e\82É\93r\92\86\82Å\93]\91\97\82ª\8fI\97¹\82·\82é\83o\83O\82ð\8cy\8c¸\82µ\82Ü\82µ\82½\81B\r
-\r
-\81E\83t\83@\83C\83\8b\82Ì\93]\91\97\82É\8e¸\94s\82µ\82½\8fê\8d\87\82É\93]\91\97\82ð\82â\82è\92¼\82·\8b@\94\\82ð\92Ç\89Á\82µ\82Ü\82µ\82½\81B\r
-\r
-\81E\83z\83X\83g\82Ì\83t\83@\83C\83\8b\96¼\82Ì\8a¿\8e\9a\83R\81[\83h\82Ì\8e©\93®\94»\95Ê\82Ì\90¸\93x\82ð\89ü\91P\82µ\82Ü\82µ\82½\81B\r
+\81Elinux-ftpd\82Ì\83t\83@\83C\83\8b\88ê\97\97\8c`\8e®\82É\91Î\89\9e\82µ\82Ü\82µ\82½\81B\r
 \r
 \r
 Ver 1.96d\88È\91O\82Ö\96ß\82·\8fê\8d\87\r
@@ -143,7 +115,7 @@ jre32.dll -------- 
 \82µ\82Ü\82·\81B\r
 \r
 Copyright(C) 1997-2010, Sota & cooperators. All rights reserved.\r
-Copyright (C) 2011 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, unarist, Asami, fortran90, tomo1192).\r
+Copyright (C) 2011 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, unarist, Asami, fortran90, tomo1192, Yuji Tanaka).\r
 \r
 Redistribution and use in source and binary forms, with or without \r
 modification, are permitted provided that the following conditions \r
@@ -169,7 +141,7 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *** \88È\89º\82Í\93ú\96{\8cê\96ó(\8eQ\8dl) ***\r
 \r
 Copyright(C) 1997-2010 Sota & \82²\8b¦\97Í\82¢\82½\82¾\82¢\82½\95û\81X. All rights reserved.\r
-Copyright (C) 2011 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, unarist, Asami, fortran90, tomo1192).\r
+Copyright (C) 2011 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, unarist, Asami, fortran90, tomo1192, Yuji Tanaka).\r
 \r
 \83\\81[\83X\83R\81[\83h\8c`\8e®\82Å\82à\83o\83C\83i\83\8a\8c`\8e®\82Å\82à\81A\95Ï\8dX\82Ì\97L\96³\82É\8aÖ\82í\82ç\82¸\81A\88È\89º\82Ì\8fð\8c\8f\82ð\r
 \96\9e\82½\82·\8fê\8d\87\82É\81A\8dÄ\94z\95z\82¨\82æ\82Ñ\8eg\97p\82ð\8b\96\89Â\82µ\82Ü\82·\81B\r
index 1b786a0..9487feb 100644 (file)
@@ -1,5 +1,17 @@
 FFFTP\81@\89ü\94Å\83\8a\83X\83g\r
 \r
+\81¡Ver 1.98e\r
+\r
+\81E\83z\83X\83g\82Ì\83p\83X\83\8f\81[\83h\82ª\90³\82µ\82­\82È\82¢\8fê\8d\87\82É\83p\83X\83\8f\81[\83h\82ð\8eè\93®\82Å\8dÄ\93x\93ü\97Í\82µ\82Ä\82à\r
+\81@\83\8d\83O\83C\83\93\82Å\82«\82È\82¢\83o\83O\82ð\8fC\90³\82µ\82Ü\82µ\82½\81B\r
+\r
+\81E\83}\83\8b\83`\83R\83ACPU\82Ì\93Á\92è\8aÂ\8b«\89º\82Å\83N\83\89\83b\83V\83\85\82·\82é\83o\83O\82ð\8fC\90³\82µ\82Ü\82µ\82½\81B\r
+\r
+\81E\8dì\8bÆ\83t\83@\83C\83\8b\82ð\95Û\91\82·\82é\83t\83H\83\8b\83_\82Ì\8d\\90¬\82ð\95Ï\8dX\82µ\82Ü\82µ\82½\81B\82±\82ê\82É\82æ\82èFFFTP\82ð\r
+\81@\95¡\90\94\8bN\93®\82µ\82Ä\82à\83L\83\83\83b\83V\83\85\82ª\8a±\8fÂ\82µ\82È\82­\82È\82è\82Ü\82·\81B\r
+\r
+\81Elinux-ftpd\82Ì\83t\83@\83C\83\8b\88ê\97\97\8c`\8e®\82É\91Î\89\9e\82µ\82Ü\82µ\82½\81B\r
+\r
 \81¡Ver 1.98d\r
 \r
 \81EMLSD\83R\83}\83\93\83h\82É\91Î\89\9e\82µ\82½\83z\83X\83g\82Å\82ÍMLSD\83R\83}\83\93\83h\82ð\97p\82¢\82Ä\83t\83@\83C\83\8b\88ê\97\97\82ð\r
index f2a67af..0592d10 100644 (file)
@@ -83,7 +83,9 @@ static LRESULT FileListCommonWndProc(HWND hWnd, UINT message, WPARAM wParam, LPA
 static void AddDispFileList(FLISTANCHOR *Anchor, char *Name, FILETIME *Time, LONGLONG Size, int Attr, int Type, int Link, char *Owner, int InfoExist, int Win);\r
 static void EraseDispFileList(FLISTANCHOR *Anchor);\r
 static void DispFileList2View(HWND hWnd, FLISTANCHOR *Anchor);\r
-static void AddListView(HWND hWnd, int Pos, char *Name, int Type, LONGLONG Size, FILETIME *Time, int Attr, char *Owner, int Link, int InfoExist);\r
+// ファイルアイコン表示対応\r
+//static void AddListView(HWND hWnd, int Pos, char *Name, int Type, LONGLONG Size, FILETIME *Time, int Attr, char *Owner, int Link, int InfoExist);\r
+static void AddListView(HWND hWnd, int Pos, char *Name, int Type, LONGLONG Size, FILETIME *Time, int Attr, char *Owner, int Link, int InfoExist, int ImageId);\r
 // 64ビット対応\r
 //static BOOL CALLBACK SelectDialogCallBack(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam);\r
 static INT_PTR CALLBACK SelectDialogCallBack(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam);\r
@@ -1318,6 +1320,57 @@ void GetRemoteDirForWnd(int Mode, int *CancelCheckWork)
 *              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
+// ファイルアイコン表示対応\r
+void RefreshIconImageList(FLISTANCHOR *Anchor)\r
+{\r
+       HBITMAP hBitmap;\r
+       int ImageId;\r
+       FILELIST *Pos;\r
+       int i;\r
+       char Cur[FMAX_PATH+1];\r
+       SHFILEINFO FileInfo;\r
+       SendMessage(hWndListLocal, LVM_SETIMAGELIST, LVSIL_SMALL, (LPARAM)NULL);\r
+       ShowWindow(hWndListLocal, SW_SHOW);\r
+       SendMessage(hWndListRemote, LVM_SETIMAGELIST, LVSIL_SMALL, (LPARAM)NULL);\r
+       ShowWindow(hWndListRemote, SW_SHOW);\r
+       ImageList_Destroy(ListImg);\r
+       ListImg = ImageList_Create(16, 16, ILC_MASK | ILC_COLOR24, 0, 1);\r
+       hBitmap = LoadBitmap(GetFtpInst(), MAKEINTRESOURCE(dirattr_bmp));\r
+       ImageList_AddMasked(ListImg, hBitmap, RGB(255,0,0));\r
+       DeleteObject(hBitmap);\r
+       ImageId = 0;\r
+       Pos = Anchor->Top;\r
+       for(i = 0; i < Anchor->Files; i++)\r
+       {\r
+               Pos->ImageId = -1;\r
+               if(AskDispFileIcon() == YES)\r
+               {\r
+                       if(Pos->Node == NODE_DRIVE)\r
+                               strcpy(Cur, Pos->File);\r
+                       else\r
+                       {\r
+                               AskLocalCurDir(Cur, FMAX_PATH);\r
+                               SetYenTail(Cur);\r
+                               strcat(Cur, Pos->File);\r
+                       }\r
+                       if(SHGetFileInfoM(Cur, 0, &FileInfo, sizeof(SHFILEINFO), SHGFI_SMALLICON | SHGFI_ICON) != 0)\r
+                       {\r
+                               if(ImageList_AddIcon(ListImg, FileInfo.hIcon) >= 0)\r
+                               {\r
+                                       Pos->ImageId = ImageId;\r
+                                       ImageId++;\r
+                               }\r
+                               DestroyIcon(FileInfo.hIcon);\r
+                       }\r
+               }\r
+               Pos = Pos->Next;\r
+       }\r
+       SendMessage(hWndListLocal, LVM_SETIMAGELIST, LVSIL_SMALL, (LPARAM)ListImg);\r
+       ShowWindow(hWndListLocal, SW_SHOW);\r
+       SendMessage(hWndListRemote, LVM_SETIMAGELIST, LVSIL_SMALL, (LPARAM)ListImg);\r
+       ShowWindow(hWndListRemote, SW_SHOW);\r
+}\r
+\r
 void GetLocalDirForWnd(void)\r
 {\r
        HANDLE fHnd;\r
@@ -1386,6 +1439,8 @@ void GetLocalDirForWnd(void)
                }\r
        }\r
 \r
+       // ファイルアイコン表示対応\r
+       RefreshIconImageList(&Anchor);\r
        DispFileList2View(GetLocalHwnd(), &Anchor);\r
        EraseDispFileList(&Anchor);\r
 \r
@@ -1565,7 +1620,9 @@ static void DispFileList2View(HWND hWnd, FLISTANCHOR *Anchor)
        Pos = Anchor->Top;\r
        for(i = 0; i < Anchor->Files; i++)\r
        {\r
-               AddListView(hWnd, -1, Pos->File, Pos->Node, Pos->Size, &Pos->Time, Pos->Attr, Pos->Owner, Pos->Link, Pos->InfoExist);\r
+               // ファイルアイコン表示対応\r
+//             AddListView(hWnd, -1, Pos->File, Pos->Node, Pos->Size, &Pos->Time, Pos->Attr, Pos->Owner, Pos->Link, Pos->InfoExist);\r
+               AddListView(hWnd, -1, Pos->File, Pos->Node, Pos->Size, &Pos->Time, Pos->Attr, Pos->Owner, Pos->Link, Pos->InfoExist, Pos->ImageId);\r
                Pos = Pos->Next;\r
        }\r
 \r
@@ -1595,7 +1652,9 @@ static void DispFileList2View(HWND hWnd, FLISTANCHOR *Anchor)
 *              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
-static void AddListView(HWND hWnd, int Pos, char *Name, int Type, LONGLONG Size, FILETIME *Time, int Attr, char *Owner, int Link, int InfoExist)\r
+// ファイルアイコン表示対応\r
+//static void AddListView(HWND hWnd, int Pos, char *Name, int Type, LONGLONG Size, FILETIME *Time, int Attr, char *Owner, int Link, int InfoExist)\r
+static void AddListView(HWND hWnd, int Pos, char *Name, int Type, LONGLONG Size, FILETIME *Time, int Attr, char *Owner, int Link, int InfoExist, int ImageId)\r
 {\r
        LV_ITEM LvItem;\r
        char Tmp[20];\r
@@ -1614,6 +1673,9 @@ static void AddListView(HWND hWnd, int Pos, char *Name, int Type, LONGLONG Size,
                LvItem.iImage = Type;\r
        else\r
                LvItem.iImage = 4;\r
+       // ファイルアイコン表示対応\r
+       if(hWnd == GetLocalHwnd() && ImageId >= 0)\r
+               LvItem.iImage = 5 + ImageId;\r
        LvItem.iItem = SendMessage(hWnd, LVM_INSERTITEM, 0, (LPARAM)&LvItem);\r
 \r
        /* 日付/時刻 */\r
diff --git a/main.c b/main.c
index 25ef052..d01e229 100644 (file)
--- a/main.c
+++ b/main.c
@@ -231,6 +231,9 @@ int FolderAttrNum = 777;
 // 暗号化通信対応\r
 BYTE CertificateCacheHash[MAX_CERT_CACHE_HASH][20];\r
 BYTE SSLRootCAFileHash[20];\r
+// ファイルアイコン表示対応\r
+int DispFileIcon = NO;\r
+\r
 \r
 \r
 \r
@@ -534,7 +537,7 @@ static int InitApp(LPSTR lpszCmdLine, int cmdShow)
                                        DispWindowTitle();\r
                                        // SourceForge.JPによるフォーク\r
 //                                     SetTaskMsg("FFFTP Ver." VER_STR " Copyright(C) 1997-2010 Sota & cooperators.");\r
-                                       SetTaskMsg("FFFTP Ver." VER_STR " Copyright(C) 1997-2010 Sota & cooperators.\r\nCopyright (C) 2011 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, unarist, Asami, fortran90, tomo1192).");\r
+                                       SetTaskMsg("FFFTP Ver." VER_STR " Copyright(C) 1997-2010 Sota & cooperators.\r\nCopyright (C) 2011 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, unarist, Asami, fortran90, tomo1192, Yuji Tanaka).");\r
 \r
                                        if(ForceIni)\r
                                                SetTaskMsg("%s%s", MSGJPN283, IniPath);\r
@@ -3068,4 +3071,11 @@ BOOL IsMainThread()
        if(GetCurrentThreadId() != MainThreadId)\r
                return FALSE;\r
        return TRUE;\r
-}
\ No newline at end of file
+}\r
+\r
+// ファイルアイコン表示対応\r
+int AskDispFileIcon(void)\r
+{\r
+       return(DispFileIcon);\r
+}\r
+\r
index 389388a..c72577d 100644 (file)
@@ -1875,6 +1875,27 @@ END_ROUTINE
        return r;\r
 }\r
 \r
+DWORD_PTR SHGetFileInfoM(LPCSTR pszPath, DWORD dwFileAttributes, SHFILEINFOA *psfi, UINT cbFileInfo, UINT uFlags)\r
+{\r
+       DWORD_PTR r = 0;\r
+       wchar_t* pw0 = NULL;\r
+       SHFILEINFOW wsfi;\r
+START_ROUTINE\r
+       pw0 = DuplicateMtoWMultiString(pszPath);\r
+       if((r = SHGetFileInfoW(pw0, dwFileAttributes, &wsfi, cbFileInfo, uFlags)) != 0)\r
+       {\r
+               psfi->hIcon = wsfi.hIcon;\r
+               psfi->iIcon = wsfi.iIcon;\r
+               psfi->dwAttributes = wsfi.dwAttributes;\r
+               WtoM(psfi->szDisplayName, MAX_PATH, wsfi.szDisplayName, -1);\r
+               WtoM(psfi->szTypeName, 80, wsfi.szTypeName, -1);\r
+       }\r
+END_ROUTINE\r
+       FreeDuplicatedString(pw0);\r
+       return r;\r
+}\r
+\r
+\r
 BOOL AppendMenuM(HMENU hMenu, UINT uFlags, UINT_PTR uIDNewItem, LPCSTR lpNewItem)\r
 {\r
        int r = 0;\r
index 53cec9c..b4cd0cd 100644 (file)
@@ -143,6 +143,9 @@ BOOL SHGetPathFromIDListM(PCIDLIST_ABSOLUTE pidl, LPSTR pszPath);
 #undef SHFileOperation\r
 #define SHFileOperation SHFileOperationM\r
 int SHFileOperationM(LPSHFILEOPSTRUCTA lpFileOp);\r
+#undef SHGetFileInfo\r
+#define SHGetFileInfo SHGetFileInfoM\r
+DWORD_PTR SHGetFileInfoM(LPCSTR pszPath, DWORD dwFileAttributes, SHFILEINFOA *psfi, UINT cbFileInfo, UINT uFlags);\r
 #undef AppendMenu\r
 #define AppendMenu AppendMenuM\r
 BOOL AppendMenuM(HMENU hMenu, UINT uFlags, UINT_PTR uIDNewItem, LPCSTR lpNewItem);\r
index 4f9008b..5dbb668 100644 (file)
--- a/option.c
+++ b/option.c
@@ -166,6 +166,8 @@ extern int MirUpDelNotify;
 extern int MirDownDelNotify;\r
 extern int FolderAttr;\r
 extern int FolderAttrNum;\r
+// ファイルアイコン表示対応\r
+extern int DispFileIcon;\r
 \r
 \r
 /*----- オプションのプロパティシート ------------------------------------------\r
@@ -976,6 +978,8 @@ static INT_PTR CALLBACK DispSettingProc(HWND hDlg, UINT message, WPARAM wParam,
                                SendDlgItemMessage(hDlg, DISP_FONT, WM_SETTEXT, 0, (LPARAM)TmpFont.lfFaceName);\r
                        SendDlgItemMessage(hDlg, DISP_HIDE, BM_SETCHECK, DispIgnoreHide, 0);\r
                        SendDlgItemMessage(hDlg, DISP_DRIVE, BM_SETCHECK, DispDrives, 0);\r
+                       // ファイルアイコン表示対応\r
+                       SendDlgItemMessage(hDlg, DISP_ICON, BM_SETCHECK, DispFileIcon, 0);\r
                    return(TRUE);\r
 \r
                case WM_NOTIFY:\r
@@ -985,6 +989,8 @@ static INT_PTR CALLBACK DispSettingProc(HWND hDlg, UINT message, WPARAM wParam,
                                case PSN_APPLY :\r
                                        DispIgnoreHide = SendDlgItemMessage(hDlg, DISP_HIDE, BM_GETCHECK, 0, 0);\r
                                        DispDrives = SendDlgItemMessage(hDlg, DISP_DRIVE, BM_GETCHECK, 0, 0);\r
+                                       // ファイルアイコン表示対応\r
+                                       DispFileIcon = SendDlgItemMessage(hDlg, DISP_ICON, BM_GETCHECK, 0, 0);\r
                                        if(strlen(TmpFont.lfFaceName) > 0)\r
                                        {\r
                                                memcpy(&ListLogFont, &TmpFont, sizeof(LOGFONT));\r
index 616fc83..f51900a 100644 (file)
@@ -193,6 +193,8 @@ extern int FolderAttrNum;
 // 暗号化通信対応\r
 extern BYTE CertificateCacheHash[MAX_CERT_CACHE_HASH][20];\r
 extern BYTE SSLRootCAFileHash[20];\r
+// ファイルアイコン表示対応\r
+extern int DispFileIcon;\r
 \r
 /*----- マスタパスワードの設定 ----------------------------------------------\r
 *\r
@@ -611,6 +613,8 @@ void SaveRegistory(void)
                                StrCatOut((char*)&SSLRootCAFileHash, sizeof(SSLRootCAFileHash), Buf);\r
                                EncodePassword(Buf, Str);\r
                                WriteStringToReg(hKey4, "RootCertHash", Str);\r
+                               // ファイルアイコン表示対応\r
+                               WriteIntValueToReg(hKey4, "ListIcon", DispFileIcon);\r
                        }\r
                        CloseSubKey(hKey4);\r
                }\r
@@ -980,6 +984,8 @@ int LoadRegistory(void)
                        ReadStringFromReg(hKey4, "RootCertHash", Str, PRIVATE_KEY_LEN*4+1);\r
                        DecodePassword(Str, Buf);\r
                        StrReadIn(Buf, sizeof(SSLRootCAFileHash), (char*)&SSLRootCAFileHash);\r
+                       // ファイルアイコン表示対応\r
+                       ReadIntValueFromReg(hKey4, "ListIcon", &DispFileIcon);\r
 \r
                        CloseSubKey(hKey4);\r
                }\r