OSDN Git Service

Fix bugs of UTF-8 to UTF-16 API bridge.
authors_kawamoto <s_kawamoto@users.sourceforge.jp>
Sat, 3 Dec 2011 16:21:09 +0000 (01:21 +0900)
committers_kawamoto <s_kawamoto@users.sourceforge.jp>
Sat, 3 Dec 2011 16:21:09 +0000 (01:21 +0900)
Change the temporary directory.

FFFTP_Eng_Release/FFFTP.exe
Release/FFFTP.exe
common.h
filelist.c
main.c
mbswrapper.c
mbswrapper.h
misc.c
option.c
registry.c

index 02b585a..8ee5be8 100644 (file)
Binary files a/FFFTP_Eng_Release/FFFTP.exe and b/FFFTP_Eng_Release/FFFTP.exe differ
index 0d60d03..ea68b1e 100644 (file)
Binary files a/Release/FFFTP.exe and b/Release/FFFTP.exe differ
index cda4d44..56f2549 100644 (file)
--- a/common.h
+++ b/common.h
@@ -1730,6 +1730,8 @@ LONGLONG MakeLongLong(DWORD High, DWORD Low);
 char *MakeNumString(LONGLONG Num, char *Buf, BOOL Comma);\r
 // 異なるファイルが表示されるバグ修正\r
 char* MakeDistinguishableFileName(char* Out, char* In);\r
 char *MakeNumString(LONGLONG Num, char *Buf, BOOL Comma);\r
 // 異なるファイルが表示されるバグ修正\r
 char* MakeDistinguishableFileName(char* Out, char* In);\r
+// 環境依存の不具合対策\r
+char* GetAppTempPath(char* Buf);\r
 \r
 /*===== dlgsize.c =====*/\r
 \r
 \r
 /*===== dlgsize.c =====*/\r
 \r
index 23d05cf..737d3dc 100644 (file)
@@ -462,10 +462,15 @@ static void doTransferRemoteFile(void)
 \r
        // アプリを多重起動してもコンフリクトしないように、テンポラリフォルダ名にプロセスID\r
        // を付加する。(2007.9.13 yutaka)\r
 \r
        // アプリを多重起動してもコンフリクトしないように、テンポラリフォルダ名にプロセスID\r
        // を付加する。(2007.9.13 yutaka)\r
-       GetTempPath(sizeof(TmpDir), TmpDir);\r
-       pid = GetCurrentProcessId();\r
-       _snprintf_s(buf, sizeof(buf), _TRUNCATE, "ffftp%d", pid);\r
-       strncat_s(TmpDir, sizeof(TmpDir), buf, _TRUNCATE);\r
+       // 環境依存の不具合対策\r
+//     GetTempPath(sizeof(TmpDir), TmpDir);\r
+//     pid = GetCurrentProcessId();\r
+//     _snprintf_s(buf, sizeof(buf), _TRUNCATE, "ffftp%d", pid);\r
+//     strncat_s(TmpDir, sizeof(TmpDir), buf, _TRUNCATE);\r
+       GetAppTempPath(TmpDir);\r
+       _mkdir(TmpDir);\r
+       SetYenTail(TmpDir);\r
+       strcat(TmpDir, "transfer");\r
        _mkdir(TmpDir);\r
 #if 0\r
        if (TmpDir[strlen(TmpDir) - 1] == '\\') {\r
        _mkdir(TmpDir);\r
 #if 0\r
        if (TmpDir[strlen(TmpDir) - 1] == '\\') {\r
diff --git a/main.c b/main.c
index c7c35b3..17dcce0 100644 (file)
--- a/main.c
+++ b/main.c
@@ -415,7 +415,11 @@ static int InitApp(LPSTR lpszCmdLine, int cmdShow)
        {\r
                Accel = LoadAccelerators(hInstFtp, MAKEINTRESOURCE(ffftp_accel));\r
 \r
        {\r
                Accel = LoadAccelerators(hInstFtp, MAKEINTRESOURCE(ffftp_accel));\r
 \r
-               GetTempPath(FMAX_PATH, TmpPath);\r
+               // 環境依存の不具合対策\r
+//             GetTempPath(FMAX_PATH, TmpPath);\r
+               GetAppTempPath(TmpPath);\r
+               _mkdir(TmpPath);\r
+               SetYenTail(TmpPath);\r
 \r
                GetModuleFileName(NULL, HelpPath, FMAX_PATH);\r
                strcpy(GetFileName(HelpPath), "ffftp.chm");\r
 \r
                GetModuleFileName(NULL, HelpPath, FMAX_PATH);\r
                strcpy(GetFileName(HelpPath), "ffftp.chm");\r
@@ -2019,6 +2023,9 @@ static char *GetToken(char *Str, char *Buf)
 \r
 static void ExitProc(HWND hWnd)\r
 {\r
 \r
 static void ExitProc(HWND hWnd)\r
 {\r
+       // 環境依存の不具合対策\r
+       char Tmp[FMAX_PATH+1];\r
+\r
        CancelFlg = YES;\r
 \r
        CloseTransferThread();\r
        CancelFlg = YES;\r
 \r
        CloseTransferThread();\r
@@ -2047,6 +2054,10 @@ static void ExitProc(HWND hWnd)
        else\r
                DeleteCache();\r
 \r
        else\r
                DeleteCache();\r
 \r
+       // 環境依存の不具合対策\r
+       GetAppTempPath(Tmp);\r
+       _rmdir(Tmp);\r
+\r
        if(RasClose == YES)\r
        {\r
                DisconnectRas(RasCloseNotify);\r
        if(RasClose == YES)\r
        {\r
                DisconnectRas(RasCloseNotify);\r
index 62b2112..389388a 100644 (file)
@@ -2109,7 +2109,7 @@ END_ROUTINE
 \r
 int mkdirM(const char * _Path)\r
 {\r
 \r
 int mkdirM(const char * _Path)\r
 {\r
-       int r = 0;\r
+       int r = -1;\r
        wchar_t* pw0 = NULL;\r
 START_ROUTINE\r
        pw0 = DuplicateMtoW(_Path, -1);\r
        wchar_t* pw0 = NULL;\r
 START_ROUTINE\r
        pw0 = DuplicateMtoW(_Path, -1);\r
@@ -2121,7 +2121,7 @@ END_ROUTINE
 \r
 int _mkdirM(const char * _Path)\r
 {\r
 \r
 int _mkdirM(const char * _Path)\r
 {\r
-       int r = 0;\r
+       int r = -1;\r
        wchar_t* pw0 = NULL;\r
 START_ROUTINE\r
        pw0 = DuplicateMtoW(_Path, -1);\r
        wchar_t* pw0 = NULL;\r
 START_ROUTINE\r
        pw0 = DuplicateMtoW(_Path, -1);\r
@@ -2133,7 +2133,7 @@ END_ROUTINE
 \r
 int rmdirM(const char * _Path)\r
 {\r
 \r
 int rmdirM(const char * _Path)\r
 {\r
-       int r = 0;\r
+       int r = -1;\r
        wchar_t* pw0 = NULL;\r
 START_ROUTINE\r
        pw0 = DuplicateMtoW(_Path, -1);\r
        wchar_t* pw0 = NULL;\r
 START_ROUTINE\r
        pw0 = DuplicateMtoW(_Path, -1);\r
@@ -2145,7 +2145,7 @@ END_ROUTINE
 \r
 int _rmdirM(const char * _Path)\r
 {\r
 \r
 int _rmdirM(const char * _Path)\r
 {\r
-       int r = 0;\r
+       int r = -1;\r
        wchar_t* pw0 = NULL;\r
 START_ROUTINE\r
        pw0 = DuplicateMtoW(_Path, -1);\r
        wchar_t* pw0 = NULL;\r
 START_ROUTINE\r
        pw0 = DuplicateMtoW(_Path, -1);\r
@@ -2155,6 +2155,42 @@ END_ROUTINE
        return r;\r
 }\r
 \r
        return r;\r
 }\r
 \r
+int removeM(const char * _Filename)\r
+{\r
+       int r = -1;\r
+       wchar_t* pw0 = NULL;\r
+START_ROUTINE\r
+       pw0 = DuplicateMtoW(_Filename, -1);\r
+       r = _wremove(pw0);\r
+END_ROUTINE\r
+       FreeDuplicatedString(pw0);\r
+       return r;\r
+}\r
+\r
+int _removeM(const char * _Filename)\r
+{\r
+       int r = -1;\r
+       wchar_t* pw0 = NULL;\r
+START_ROUTINE\r
+       pw0 = DuplicateMtoW(_Filename, -1);\r
+       r = _wremove(pw0);\r
+END_ROUTINE\r
+       FreeDuplicatedString(pw0);\r
+       return r;\r
+}\r
+\r
+int _unlinkM(const char * _Filename)\r
+{\r
+       int r = -1;\r
+       wchar_t* pw0 = NULL;\r
+START_ROUTINE\r
+       pw0 = DuplicateMtoW(_Filename, -1);\r
+       r = _wunlink(pw0);\r
+END_ROUTINE\r
+       FreeDuplicatedString(pw0);\r
+       return r;\r
+}\r
+\r
 size_t _mbslenM(const unsigned char * _Str)\r
 {\r
        size_t r = 0;\r
 size_t _mbslenM(const unsigned char * _Str)\r
 {\r
        size_t r = 0;\r
index f081832..53cec9c 100644 (file)
@@ -182,6 +182,15 @@ int rmdirM(const char * _Path);
 #undef _rmdir\r
 #define _rmdir _rmdirM\r
 int _rmdirM(const char * _Path);\r
 #undef _rmdir\r
 #define _rmdir _rmdirM\r
 int _rmdirM(const char * _Path);\r
+#undef remove\r
+#define remove removeM\r
+int removeM(const char * _Filename);\r
+#undef _remove\r
+#define _remove _removeM\r
+int _removeM(const char * _Filename);\r
+#undef _unlink\r
+#define _unlink _unlinkM\r
+int _unlinkM(const char * _Filename);\r
 #undef _mbslen\r
 #define _mbslen _mbslenM\r
 size_t _mbslenM(const unsigned char * _Str);\r
 #undef _mbslen\r
 #define _mbslen _mbslenM\r
 size_t _mbslenM(const unsigned char * _Str);\r
diff --git a/misc.c b/misc.c
index 5c8bb14..5489e66 100644 (file)
--- a/misc.c
+++ b/misc.c
@@ -1777,3 +1777,14 @@ char* MakeDistinguishableFileName(char* Out, char* In)
        return Out;\r
 }\r
 \r
        return Out;\r
 }\r
 \r
+// 環境依存の不具合対策\r
+char* GetAppTempPath(char* Buf)\r
+{\r
+       char Temp[32];\r
+       GetTempPath(MAX_PATH, Buf);\r
+       SetYenTail(Buf);\r
+       sprintf(Temp, "ffftp%08x", GetCurrentProcessId());\r
+       strcat(Buf, Temp);\r
+       return Buf;\r
+}\r
+\r
index e4906fc..4f9008b 100644 (file)
--- a/option.c
+++ b/option.c
@@ -1537,7 +1537,10 @@ static INT_PTR CALLBACK MiscSettingProc(HWND hDlg, UINT message, WPARAM wParam,
                                        break;\r
 \r
                                case MISC_CACHEDIR_DEF :\r
                                        break;\r
 \r
                                case MISC_CACHEDIR_DEF :\r
-                                       GetTempPath(FMAX_PATH, Tmp);\r
+                                       // 環境依存の不具合対策\r
+//                                     GetTempPath(FMAX_PATH, Tmp);\r
+                                       GetAppTempPath(Tmp);\r
+                                       SetYenTail(Tmp);\r
                                        SendDlgItemMessage(hDlg, MISC_CACHEDIR, WM_SETTEXT, 0, (LPARAM)Tmp);\r
                                        break;\r
                        }\r
                                        SendDlgItemMessage(hDlg, MISC_CACHEDIR, WM_SETTEXT, 0, (LPARAM)Tmp);\r
                                        break;\r
                        }\r
index 36e8005..616fc83 100644 (file)
@@ -422,7 +422,10 @@ void SaveRegistory(void)
 \r
                                WriteMultiStringToReg(hKey4, "DefAttr", DefAttrList);\r
 \r
 \r
                                WriteMultiStringToReg(hKey4, "DefAttr", DefAttrList);\r
 \r
-                               GetTempPath(FMAX_PATH, Str);\r
+                               // 環境依存の不具合対策\r
+//                             GetTempPath(FMAX_PATH, Str);\r
+                               GetAppTempPath(Str);\r
+                               SetYenTail(Str);\r
                                SaveStr(hKey4, "Tmp", TmpPath, Str);\r
 \r
                                WriteBinaryToReg(hKey4, "Hdlg", &HostDlgSize, sizeof(SIZE));\r
                                SaveStr(hKey4, "Tmp", TmpPath, Str);\r
 \r
                                WriteBinaryToReg(hKey4, "Hdlg", &HostDlgSize, sizeof(SIZE));\r