OSDN Git Service

Add support for MLSD responses from some broken hosts.
[ffftp/ffftp.git] / encutf8 / encutf8.cpp
index ed73504..c6f0d6e 100644 (file)
@@ -1,63 +1,63 @@
-// encutf8.cpp : \83R\83\93\83\\81[\83\8b \83A\83v\83\8a\83P\81[\83V\83\87\83\93\82Ì\83G\83\93\83g\83\8a \83|\83C\83\93\83g\82ð\92è\8b`\82µ\82Ü\82·\81B
-//
-
-#include "stdafx.h"
-
-
-int _tmain(int argc, _TCHAR* argv[])
-{
-       FILE* fpIn;
-       FILE* fpOut;
-       fpos_t Length;
-       int InLength;
-       char* pInBuffer;
-       int UTF16Length;
-       wchar_t* pUTF16Buffer;
-       int OutLength;
-       char* pOutBuffer;
-       _tsetlocale(LC_ALL, _T(""));
-       if(argc != 3)
-       {
-               _tprintf(_T("\83}\83\8b\83`\83o\83C\83g\95\8e\9a\81i\83R\81[\83h\83y\81[\83W932\82Ü\82½\82ÍShift JIS\81j\82Å\8f\91\82©\82ê\82½\83e\83L\83X\83g\83t\83@\83C\83\8b\82ðUTF-8\82É\83G\83\93\83R\81[\83h\82µ\82Ü\82·\81B\n"));
-               _tprintf(_T("\83R\83}\83\93\83h\83\89\83C\83\93\n"));
-               _tprintf(_T("encutf8 [in] [out]\n"));
-               _tprintf(_T("[in]    \8c³\82Ì\83\\81[\83X\83t\83@\83C\83\8b\82Ì\83t\83@\83C\83\8b\96¼\n"));
-               _tprintf(_T("[out]   \95Û\91\90æ\82Ì\83t\83@\83C\83\8b\96¼\n"));
-               return 0;
-       }
-       fpIn = _tfopen(argv[1], _T("rb"));
-       if(!fpIn)
-       {
-               _tprintf(_T("\83t\83@\83C\83\8b\"%s\"\82ª\8aJ\82¯\82Ü\82¹\82ñ\81B\n"), argv[1]);
-               return 0;
-       }
-       fseek(fpIn, 0, SEEK_END);
-       fgetpos(fpIn, &Length);
-       fseek(fpIn, 0, SEEK_SET);
-       InLength = Length / sizeof(char);
-       pInBuffer = new char[InLength];
-       UTF16Length = InLength;
-       pUTF16Buffer = new wchar_t[InLength];
-       OutLength = InLength * 4;
-       pOutBuffer = new char[OutLength];
-       if(!pInBuffer || !pUTF16Buffer || !pOutBuffer)
-       {
-               _tprintf(_T("\83\81\83\82\83\8a\82ª\8am\95Û\82Å\82«\82Ü\82¹\82ñ\81B\n"));
-               return 0;
-       }
-       fread(pInBuffer, 1, InLength, fpIn);
-       fclose(fpIn);
-       fpOut = _tfopen(argv[2], _T("wb"));
-       if(!fpIn)
-       {
-               _tprintf(_T("\83t\83@\83C\83\8b\"%s\"\82ª\8dì\90¬\82Å\82«\82Ü\82¹\82ñ\81B\n"), argv[2]);
-               return 0;
-       }
-       fwrite("\xEF\xBB\xBF", 1, 3, fpOut);
-       UTF16Length = MultiByteToWideChar(CP_ACP, 0, pInBuffer, InLength / sizeof(char), pUTF16Buffer, UTF16Length);
-       OutLength = WideCharToMultiByte(CP_UTF8, 0, pUTF16Buffer, UTF16Length, pOutBuffer, OutLength / sizeof(char), NULL, NULL);
-       fwrite(pOutBuffer, sizeof(char), OutLength, fpOut);
-       fclose(fpOut);
-       return 0;
-}
-
+// encutf8.cpp : \83R\83\93\83\\81[\83\8b \83A\83v\83\8a\83P\81[\83V\83\87\83\93\82Ì\83G\83\93\83g\83\8a \83|\83C\83\93\83g\82ð\92è\8b`\82µ\82Ü\82·\81B\r
+//\r
+\r
+#include "stdafx.h"\r
+\r
+\r
+int _tmain(int argc, _TCHAR* argv[])\r
+{\r
+       FILE* fpIn;\r
+       FILE* fpOut;\r
+       fpos_t Length;\r
+       int InLength;\r
+       char* pInBuffer;\r
+       int UTF16Length;\r
+       wchar_t* pUTF16Buffer;\r
+       int OutLength;\r
+       char* pOutBuffer;\r
+       _tsetlocale(LC_ALL, _T(""));\r
+       if(argc != 3)\r
+       {\r
+               _tprintf(_T("\83}\83\8b\83`\83o\83C\83g\95\8e\9a\81i\83R\81[\83h\83y\81[\83W932\82Ü\82½\82ÍShift JIS\81j\82Å\8f\91\82©\82ê\82½\83e\83L\83X\83g\83t\83@\83C\83\8b\82ðUTF-8\82É\83G\83\93\83R\81[\83h\82µ\82Ü\82·\81B\n"));\r
+               _tprintf(_T("\83R\83}\83\93\83h\83\89\83C\83\93\n"));\r
+               _tprintf(_T("encutf8 [in] [out]\n"));\r
+               _tprintf(_T("[in]    \8c³\82Ì\83\\81[\83X\83t\83@\83C\83\8b\82Ì\83t\83@\83C\83\8b\96¼\n"));\r
+               _tprintf(_T("[out]   \95Û\91\90æ\82Ì\83t\83@\83C\83\8b\96¼\n"));\r
+               return 0;\r
+       }\r
+       fpIn = _tfopen(argv[1], _T("rb"));\r
+       if(!fpIn)\r
+       {\r
+               _tprintf(_T("\83t\83@\83C\83\8b\"%s\"\82ª\8aJ\82¯\82Ü\82¹\82ñ\81B\n"), argv[1]);\r
+               return 0;\r
+       }\r
+       fseek(fpIn, 0, SEEK_END);\r
+       fgetpos(fpIn, &Length);\r
+       fseek(fpIn, 0, SEEK_SET);\r
+       InLength = Length / sizeof(char);\r
+       pInBuffer = new char[InLength];\r
+       UTF16Length = InLength;\r
+       pUTF16Buffer = new wchar_t[InLength];\r
+       OutLength = InLength * 4;\r
+       pOutBuffer = new char[OutLength];\r
+       if(!pInBuffer || !pUTF16Buffer || !pOutBuffer)\r
+       {\r
+               _tprintf(_T("\83\81\83\82\83\8a\82ª\8am\95Û\82Å\82«\82Ü\82¹\82ñ\81B\n"));\r
+               return 0;\r
+       }\r
+       fread(pInBuffer, 1, InLength, fpIn);\r
+       fclose(fpIn);\r
+       fpOut = _tfopen(argv[2], _T("wb"));\r
+       if(!fpIn)\r
+       {\r
+               _tprintf(_T("\83t\83@\83C\83\8b\"%s\"\82ª\8dì\90¬\82Å\82«\82Ü\82¹\82ñ\81B\n"), argv[2]);\r
+               return 0;\r
+       }\r
+       fwrite("\xEF\xBB\xBF", 1, 3, fpOut);\r
+       UTF16Length = MultiByteToWideChar(CP_ACP, 0, pInBuffer, InLength / sizeof(char), pUTF16Buffer, UTF16Length);\r
+       OutLength = WideCharToMultiByte(CP_UTF8, 0, pUTF16Buffer, UTF16Length, pOutBuffer, OutLength / sizeof(char), NULL, NULL);\r
+       fwrite(pOutBuffer, sizeof(char), OutLength, fpOut);\r
+       fclose(fpOut);\r
+       return 0;\r
+}\r
+\r