\r
/*===== プロトタイプ =====*/\r
\r
-static BOOL CALLBACK InputDialogCallBack(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam);\r
+// 64ビット対応\r
+//static BOOL CALLBACK InputDialogCallBack(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam);\r
+static INT_PTR CALLBACK InputDialogCallBack(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam);\r
\r
/*===== 外部参照 =====*/\r
\r
* BOOL TRUE/FALSE\r
*----------------------------------------------------------------------------*/\r
\r
-static BOOL CALLBACK InputDialogCallBack(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam)\r
+// 64ビット対応\r
+//static BOOL CALLBACK InputDialogCallBack(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam)\r
+static INT_PTR CALLBACK InputDialogCallBack(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam)\r
{\r
char Tmp[FMAX_PATH+1];\r
\r
* BOOL TRUE/FALSE\r
*----------------------------------------------------------------------------*/\r
\r
-BOOL CALLBACK ExeEscDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
+// 64ビット対応\r
+//BOOL CALLBACK ExeEscDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
+INT_PTR CALLBACK ExeEscDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
{\r
switch (message)\r
{\r
* BOOL TRUE/FALSE\r
*----------------------------------------------------------------------------*/\r
\r
-BOOL CALLBACK ExeEscTextDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
+// 64ビット対応\r
+//BOOL CALLBACK ExeEscTextDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
+INT_PTR CALLBACK ExeEscTextDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
{\r
switch (message)\r
{\r
\r
void SetSlashTail(char *Str)\r
{\r
+#if defined(HAVE_TANDEM)\r
+ /* Tandem では / の代わりに . を追加 */\r
+ if(AskHostType() == HTYPE_TANDEM) {\r
+ if(_mbscmp(_mbsninc(Str, _mbslen(Str) - 1), ".") != 0)\r
+ strcat(Str, ".");\r
+ } else\r
+#endif\r
if(_mbscmp(_mbsninc(Str, _mbslen(Str) - 1), "/") != 0)\r
strcat(Str, "/");\r
\r
{\r
char *Pos;\r
\r
+/* Tandem ではノード名の変換を行わない */\r
+/* 最初の1文字が \ でもそのままにする */\r
+#if defined(HAVE_TANDEM)\r
+ if (AskRealHostType() == HTYPE_TANDEM && strlen(Str) > 0)\r
+ Str++;\r
+#endif\r
while((Pos = _mbschr(Str, Src)) != NULL)\r
*Pos = Dst;\r
return;\r
if((Pos = _mbsrchr(Path, '/')) != NULL)\r
Path = Pos + 1;\r
\r
+#if defined(HAVE_TANDEM)\r
+ /* Tandem は . がデリミッタとなる */\r
+ if((AskHostType() == HTYPE_TANDEM) && ((Pos = _mbsrchr(Path, '.')) != NULL))\r
+ Path = Pos + 1;\r
+#endif\r
return(Path);\r
}\r
\r
// 現在UNC対応の予定は無い\r
char* MakeDistinguishableFileName(char* Out, char* In)\r
{\r
+ char* Fname;\r
char Tmp[FMAX_PATH+1];\r
char Tmp2[FMAX_PATH+3];\r
HANDLE hFind;\r
strcpy(Out, In);\r
else\r
{\r
+ Fname = GetFileName(In);\r
strcpy(Tmp, In);\r
strcpy(Tmp2, Tmp);\r
strcat(Tmp2, ".*");\r
{\r
do\r
{\r
- if(strchr(Find.cFileName, '.'))\r
+ if(strcmp(Find.cFileName, Fname) != 0)\r
break;\r
}\r
while(FindNextFile(hFind, &Find));\r
FindClose(hFind);\r
- if(strchr(Find.cFileName, '.'))\r
+ if(strcmp(Find.cFileName, Fname) != 0)\r
{\r
strcat(Tmp, " ");\r
strcpy(Tmp2, Tmp);\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
+#if defined(HAVE_TANDEM)\r
+/*----- ファイルサイズからEXTENTサイズの計算を行う ----------------------------\r
+*\r
+* Parameter\r
+* LONGLONG Size : ファイルサイズ\r
+*\r
+* Return Value\r
+* なし\r
+*----------------------------------------------------------------------------*/\r
+void CalcExtentSize(TRANSPACKET *Pkt, LONGLONG Size)\r
+{\r
+ LONGLONG extent;\r
+\r
+ /* EXTENTS(4,28) MAXEXTENTS 978 */\r
+ if(Size < 56025088) {\r
+ Pkt->PriExt = DEF_PRIEXT;\r
+ Pkt->SecExt = DEF_SECEXT;\r
+ Pkt->MaxExt = DEF_MAXEXT;\r
+ } else {\r
+ /* 増加余地を残すため Used 75% 近辺になるように EXTENT サイズを調整) */\r
+ extent = (LONGLONG)(Size / ((DEF_MAXEXT * 0.75) * 2048LL));\r
+ /* 28未満にすると誤差でFile Fullになる可能性がある */\r
+ if(extent < 28)\r
+ extent = 28;\r
+\r
+ Pkt->PriExt = (int)extent;\r
+ Pkt->SecExt = (int)extent;\r
+ Pkt->MaxExt = DEF_MAXEXT;\r
+ }\r
+}\r
+#endif\r