1313//
1414// You should have received a copy of the GNU General Public License
1515// along with this program. If not, see <https://www.gnu.org/licenses/>.
16+
1617#pragma once
1718#include < vector>
1819#include < string>
2425#include < algorithm>
2526#include < tchar.h>
2627
28+ #pragma deprecated(PathFileExists) // Use doesFileExist, doesDirectoryExist or doesPathExist (for file or directory) instead.
29+ #pragma deprecated(PathIsDirectory) // Use doesDirectoryExist instead.
30+
2731
2832const bool dirUp = true ;
2933const bool dirDown = false ;
@@ -46,35 +50,34 @@ const bool dirDown = false;
4650
4751#define NPP_INTERNAL_FUCTION_STR L" Notepad++::InternalFunction"
4852
49- typedef std::basic_string<TCHAR> generic_string;
50- typedef std::basic_stringstream<TCHAR> generic_stringstream;
5153
52- generic_string folderBrowser (HWND parent, const generic_string & title = TEXT( " " ) , int outputCtrlID = 0, const TCHAR *defaultStr = NULL);
53- generic_string getFolderName (HWND parent, const TCHAR *defaultDir = NULL );
54+ std::wstring folderBrowser (HWND parent, const std::wstring & title = L" " , int outputCtrlID = 0 , const wchar_t *defaultStr = NULL );
55+ std::wstring getFolderName (HWND parent, const wchar_t *defaultDir = NULL );
5456
5557void printInt (int int2print);
56- void printStr (const TCHAR *str2print);
57- generic_string commafyInt (size_t n);
58+ void printStr (const wchar_t *str2print);
59+ std::wstring commafyInt (size_t n);
5860
59- void writeLog (const TCHAR *logFileName, const char *log2write);
61+ void writeLog (const wchar_t * logFileName, const char * log2write);
62+ void writeLog (const wchar_t * logFileName, const wchar_t * log2write);
6063int filter (unsigned int code, struct _EXCEPTION_POINTERS *ep);
61- generic_string purgeMenuItemString (const TCHAR * menuItemStr, bool keepAmpersand = false );
62- std::vector<generic_string > tokenizeString (const generic_string & tokenString, const char delim);
64+ std::wstring purgeMenuItemString (const wchar_t * menuItemStr, bool keepAmpersand = false );
65+ std::vector<std::wstring > tokenizeString (const std::wstring & tokenString, const char delim);
6366
6467void ClientRectToScreenRect (HWND hWnd, RECT* rect);
6568void ScreenRectToClientRect (HWND hWnd, RECT* rect);
6669
6770std::wstring string2wstring (const std::string & rString, UINT codepage);
6871std::string wstring2string (const std::wstring & rwString, UINT codepage);
69- bool isInList (const TCHAR *token, const TCHAR *list);
70- generic_string BuildMenuFileName (int filenameLen, unsigned int pos, const generic_string &filename, bool ordinalNumber = true );
72+ bool isInList (const wchar_t *token, const wchar_t *list);
73+ std::wstring BuildMenuFileName (int filenameLen, unsigned int pos, const std::wstring &filename, bool ordinalNumber = true );
7174
72- std::string getFileContent (const TCHAR *file2read);
73- generic_string relativeFilePathToFullFilePath (const TCHAR *relativeFilePath);
74- void writeFileContent (const TCHAR *file2write, const char *content2write);
75- bool matchInList (const TCHAR *fileName, const std::vector<generic_string > & patterns);
76- bool matchInExcludeDirList (const TCHAR * dirName, const std::vector<generic_string >& patterns, size_t level);
77- bool allPatternsAreExclusion (const std::vector<generic_string> patterns);
75+ std::string getFileContent (const wchar_t *file2read);
76+ std::wstring relativeFilePathToFullFilePath (const wchar_t *relativeFilePath);
77+ void writeFileContent (const wchar_t *file2write, const char *content2write);
78+ bool matchInList (const wchar_t *fileName, const std::vector<std::wstring > & patterns);
79+ bool matchInExcludeDirList (const wchar_t * dirName, const std::vector<std::wstring >& patterns, size_t level);
80+ bool allPatternsAreExclusion (const std::vector<std::wstring>& patterns);
7881
7982class WcharMbcsConvertor final
8083{
@@ -151,41 +154,36 @@ class WcharMbcsConvertor final
151154
152155#define REBARBAND_SIZE sizeof (REBARBANDINFO)
153156
154- generic_string PathRemoveFileSpec (generic_string & path);
155- generic_string pathAppend (generic_string &strDest, const generic_string & str2append);
157+ std::wstring pathRemoveFileSpec (std::wstring & path);
158+ std::wstring pathAppend (std::wstring &strDest, const std::wstring & str2append);
156159COLORREF getCtrlBgColor (HWND hWnd);
157- generic_string stringToUpper (generic_string strToConvert);
158- generic_string stringToLower (generic_string strToConvert);
159- generic_string stringReplace (generic_string subject, const generic_string& search, const generic_string& replace);
160- void stringSplit (const generic_string& input, const generic_string& delimiter, std::vector<generic_string>& output);
161- bool str2numberVector (generic_string str2convert, std::vector<size_t >& numVect);
162- void stringJoin (const std::vector<generic_string>& strings, const generic_string& separator, generic_string& joinedString);
163- generic_string stringTakeWhileAdmissable (const generic_string& input, const generic_string& admissable);
164- double stodLocale (const generic_string& str, _locale_t loc, size_t * idx = NULL );
165-
166- int OrdinalIgnoreCaseCompareStrings (LPCTSTR sz1, LPCTSTR sz2);
167-
168- bool str2Clipboard (const generic_string &str2cpy, HWND hwnd);
160+ std::wstring stringToUpper (std::wstring strToConvert);
161+ std::wstring stringToLower (std::wstring strToConvert);
162+ std::wstring stringReplace (std::wstring subject, const std::wstring& search, const std::wstring& replace);
163+ void stringSplit (const std::wstring& input, const std::wstring& delimiter, std::vector<std::wstring>& output);
164+ bool str2numberVector (std::wstring str2convert, std::vector<size_t >& numVect);
165+ void stringJoin (const std::vector<std::wstring>& strings, const std::wstring& separator, std::wstring& joinedString);
166+ std::wstring stringTakeWhileAdmissable (const std::wstring& input, const std::wstring& admissable);
167+ double stodLocale (const std::wstring& str, _locale_t loc, size_t * idx = NULL );
168+
169+ bool str2Clipboard (const std::wstring &str2cpy, HWND hwnd);
169170class Buffer ;
170171bool buf2Clipboard (const std::vector<Buffer*>& buffers, bool isFullPath, HWND hwnd);
171172
172- generic_string GetLastErrorAsString (DWORD errorCode = 0 );
173+ std::wstring GetLastErrorAsString (DWORD errorCode = 0 );
173174
174- generic_string intToString (int val);
175- generic_string uintToString (unsigned int val);
175+ std::wstring intToString (int val);
176+ std::wstring uintToString (unsigned int val);
176177
177178HWND CreateToolTip (int toolID, HWND hDlg, HINSTANCE hInst, const PTSTR pszText, bool isRTL);
178179HWND CreateToolTipRect (int toolID, HWND hWnd, HINSTANCE hInst, const PTSTR pszText, const RECT rc);
179180
180- bool isCertificateValidated (const generic_string & fullFilePath, const generic_string & subjectName2check);
181+ bool isCertificateValidated (const std::wstring & fullFilePath, const std::wstring & subjectName2check);
181182bool isAssoCommandExisting (LPCTSTR FullPathName);
182183
183- std::wstring s2ws (const std::string& str);
184- std::string ws2s (const std::wstring& wstr);
185-
186- bool deleteFileOrFolder (const generic_string& f2delete);
184+ bool deleteFileOrFolder (const std::wstring& f2delete);
187185
188- void getFilesInFolder (std::vector<generic_string >& files, const generic_string & extTypeFilter, const generic_string & inFolder);
186+ void getFilesInFolder (std::vector<std::wstring >& files, const std::wstring & extTypeFilter, const std::wstring & inFolder);
189187
190188template <typename T> size_t vecRemoveDuplicates (std::vector<T>& vec, bool isSorted = false , bool canSort = false )
191189{
@@ -217,27 +215,27 @@ void trim(std::wstring& str);
217215
218216int nbDigitsFromNbLines (size_t nbLines);
219217
220- generic_string getDateTimeStrFrom (const generic_string & dateTimeFormat, const SYSTEMTIME& st);
218+ std::wstring getDateTimeStrFrom (const std::wstring & dateTimeFormat, const SYSTEMTIME& st);
221219
222- HFONT createFont (const TCHAR * fontName, int fontSize, bool isBold, HWND hDestParent);
220+ HFONT createFont (const wchar_t * fontName, int fontSize, bool isBold, HWND hDestParent);
223221bool removeReadOnlyFlagFromFileAttributes (const wchar_t * fileFullPath);
224222
225- bool isWin32NamespacePrefixedFileName (const generic_string & fileName);
226- bool isWin32NamespacePrefixedFileName (const TCHAR * szFileName);
227- bool isUnsupportedFileName (const generic_string & fileName);
228- bool isUnsupportedFileName (const TCHAR * szFileName);
223+ bool isWin32NamespacePrefixedFileName (const std::wstring & fileName);
224+ bool isWin32NamespacePrefixedFileName (const wchar_t * szFileName);
225+ bool isUnsupportedFileName (const std::wstring & fileName);
226+ bool isUnsupportedFileName (const wchar_t * szFileName);
229227
230228class Version final
231229{
232230public:
233231 Version () = default ;
234- Version (const generic_string & versionStr);
232+ Version (const std::wstring & versionStr);
235233
236- void setVersionFrom (const generic_string & filePath);
237- generic_string toString ();
238- bool isNumber (const generic_string & s) const {
234+ void setVersionFrom (const std::wstring & filePath);
235+ std::wstring toString ();
236+ bool isNumber (const std::wstring & s) const {
239237 return !s.empty () &&
240- find_if (s.begin (), s.end (), [](TCHAR c) { return !_istdigit (c); }) == s.end ();
238+ find_if (s.begin (), s.end (), [](wchar_t c) { return !_istdigit (c); }) == s.end ();
241239 };
242240
243241 int compareTo (const Version& v2c) const ;
@@ -280,3 +278,13 @@ class Version final
280278 unsigned long _patch = 0 ;
281279 unsigned long _build = 0 ;
282280};
281+
282+
283+ BOOL getDiskFreeSpaceWithTimeout (const wchar_t * dirPath, ULARGE_INTEGER* freeBytesForUser,
284+ DWORD milliSec2wait = 0 , bool * isTimeoutReached = nullptr );
285+ BOOL getFileAttributesExWithTimeout (const wchar_t * filePath, WIN32_FILE_ATTRIBUTE_DATA* fileAttr,
286+ DWORD milliSec2wait = 0 , bool * isTimeoutReached = nullptr , DWORD* pdwWin32ApiError = nullptr );
287+
288+ bool doesFileExist (const wchar_t * filePath, DWORD milliSec2wait = 0 , bool * isTimeoutReached = nullptr );
289+ bool doesDirectoryExist (const wchar_t * dirPath, DWORD milliSec2wait = 0 , bool * isTimeoutReached = nullptr );
290+ bool doesPathExist (const wchar_t * path, DWORD milliSec2wait = 0 , bool * isTimeoutReached = nullptr );
0 commit comments