diff options
author | weidai <weidai@57ff6487-cd31-0410-9ec3-f628ee90f5f0> | 2009-07-11 01:48:12 +0000 |
---|---|---|
committer | weidai <weidai@57ff6487-cd31-0410-9ec3-f628ee90f5f0> | 2009-07-11 01:48:12 +0000 |
commit | 4b53fa6f2956ccf4b0cdb98adeceeaf66b67612b (patch) | |
tree | 4315ffeaf27d7ecbe96c9cf2bf595ecdfb748900 /files.h | |
parent | bef47e9f5658b05b600bd6b873687ab80d39dd2e (diff) | |
download | cryptopp-4b53fa6f2956ccf4b0cdb98adeceeaf66b67612b.tar.gz |
handle Unicode filenames
git-svn-id: svn://svn.code.sf.net/p/cryptopp/code/trunk/c5@472 57ff6487-cd31-0410-9ec3-f628ee90f5f0
Diffstat (limited to 'files.h')
-rw-r--r-- | files.h | 17 |
1 files changed, 16 insertions, 1 deletions
@@ -27,6 +27,11 @@ public: {StoreInitialize(MakeParameters(Name::InputStreamPointer(), &in));} FileStore(const char *filename) {StoreInitialize(MakeParameters(Name::InputFileName(), filename));} +#if defined(CRYPTOPP_UNIX_AVAILABLE) || _MSC_VER >= 1400 + //! specify file with Unicode name. On non-Windows OS, this function assumes that setlocale() has been called. + FileStore(const wchar_t *filename) + {StoreInitialize(MakeParameters(Name::InputFileNameWide(), filename));} +#endif std::istream* GetStream() {return m_stream;} @@ -59,6 +64,11 @@ public: : SourceTemplate<FileStore>(attachment) {SourceInitialize(pumpAll, MakeParameters(Name::InputStreamPointer(), &in));} FileSource(const char *filename, bool pumpAll, BufferedTransformation *attachment = NULL, bool binary=true) : SourceTemplate<FileStore>(attachment) {SourceInitialize(pumpAll, MakeParameters(Name::InputFileName(), filename)(Name::InputBinaryMode(), binary));} +#if defined(CRYPTOPP_UNIX_AVAILABLE) || _MSC_VER >= 1400 + //! specify file with Unicode name. On non-Windows OS, this function assumes that setlocale() has been called. + FileSource(const wchar_t *filename, bool pumpAll, BufferedTransformation *attachment = NULL, bool binary=true) + : SourceTemplate<FileStore>(attachment) {SourceInitialize(pumpAll, MakeParameters(Name::InputFileNameWide(), filename)(Name::InputBinaryMode(), binary));} +#endif std::istream* GetStream() {return m_store.GetStream();} }; @@ -79,7 +89,12 @@ public: FileSink(std::ostream &out) {IsolatedInitialize(MakeParameters(Name::OutputStreamPointer(), &out));} FileSink(const char *filename, bool binary=true) - {IsolatedInitialize(MakeParameters(Name::OutputFileName(), filename)("OutputBinaryMode", binary));} + {IsolatedInitialize(MakeParameters(Name::OutputFileName(), filename)(Name::OutputBinaryMode(), binary));} +#if defined(CRYPTOPP_UNIX_AVAILABLE) || _MSC_VER >= 1400 + //! specify file with Unicode name. On non-Windows OS, this function assumes that setlocale() has been called. + FileSink(const wchar_t *filename, bool binary=true) + {IsolatedInitialize(MakeParameters(Name::OutputFileNameWide(), filename)(Name::OutputBinaryMode(), binary));} +#endif std::ostream* GetStream() {return m_stream;} |