| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- //---------------------------------------------------------------------------
- #ifndef CommonH
- #define CommonH
- #ifndef C_ONLY
- //---------------------------------------------------------------------------
- #define EXCEPTION throw ExtException(NULL, "")
- #define THROWIFFALSE(C) if (!(C)) EXCEPTION
- #define SCOPY(dest, source) \
- strncpy(dest, source, sizeof(dest)); \
- dest[sizeof(dest)-1] = '\0'
- #define SAFE_DESTROY(OBJ) { TObject * PObj = OBJ; OBJ = NULL; delete PObj; }
- #define ASCOPY(dest, source) SCOPY(dest, source.c_str())
- #define FORMAT(S, F) Format(S, ARRAYOFCONST(F))
- #define FMTLOAD(I, F) FmtLoadStr(I, ARRAYOFCONST(F))
- #define LENOF(x) ( (sizeof((x))) / (sizeof(*(x))))
- #define FLAGSET(SET, FLAG) (((SET) & (FLAG)) == (FLAG))
- #define FLAGCLEAR(SET, FLAG) (((SET) & (FLAG)) == 0)
- #define FLAGMASK(ENABLE, FLAG) ((ENABLE) ? (FLAG) : 0)
- #define SWAP(TYPE, FIRST, SECOND) \
- { TYPE __Backup = FIRST; FIRST = SECOND; SECOND = __Backup; }
- //---------------------------------------------------------------------------
- extern const char EngShortMonthNames[12][4];
- //---------------------------------------------------------------------------
- AnsiString ReplaceChar(AnsiString Str, Char A, Char B);
- AnsiString DeleteChar(AnsiString Str, Char C);
- void PackStr(AnsiString &Str);
- AnsiString MakeValidFileName(AnsiString FileName);
- AnsiString RootKeyToStr(HKEY RootKey);
- AnsiString BooleanToStr(bool B);
- AnsiString BooleanToEngStr(bool B);
- AnsiString CutToChar(AnsiString &Str, Char Ch, bool Trim);
- void __fastcall OemToAnsi(AnsiString & Str);
- void __fastcall AnsiToOem(AnsiString & Str);
- AnsiString ExceptionLogString(Exception *E);
- bool IsDots(const AnsiString Str);
- AnsiString __fastcall SystemTemporaryDirectory();
- AnsiString __fastcall StripPathQuotes(const AnsiString Path);
- AnsiString __fastcall AddPathQuotes(AnsiString Path);
- void __fastcall SplitCommand(AnsiString Command, AnsiString &Program,
- AnsiString & Params, AnsiString & Dir);
- AnsiString __fastcall ExtractProgram(AnsiString Command);
- AnsiString __fastcall FormatCommand(AnsiString Program, AnsiString Params);
- bool __fastcall IsDisplayableStr(const AnsiString Str);
- AnsiString __fastcall StrToHex(const AnsiString Str);
- AnsiString __fastcall HexToStr(const AnsiString Hex);
- unsigned int __fastcall HexToInt(const AnsiString Hex);
- AnsiString __fastcall DecodeUrlChars(AnsiString S);
- bool __fastcall RecursiveDeleteFile(const AnsiString FileName, bool ToRecycleBin);
- int __fastcall CancelAnswer(int Answers);
- int __fastcall AbortAnswer(int Answers);
- AnsiString __fastcall LoadStr(int Ident, unsigned int MaxLength);
- AnsiString __fastcall LoadStrPart(int Ident, int Part);
- struct TPasLibModule;
- TPasLibModule * __fastcall FindModule(void * Instance);
- //---------------------------------------------------------------------------
- typedef void __fastcall (__closure* TProcessLocalFileEvent)
- (const AnsiString FileName, const TSearchRec Rec, void * Param);
- bool __fastcall FileSearchRec(const AnsiString FileName, TSearchRec & Rec);
- void __fastcall ProcessLocalDirectory(AnsiString DirName,
- TProcessLocalFileEvent CallBackFunc, void * Param = NULL, int FindAttrs = -1);
- //---------------------------------------------------------------------------
- TDateTime __fastcall UnixToDateTime(__int64 TimeStamp, bool ConsiderDST);
- FILETIME __fastcall DateTimeToFileTime(const TDateTime DateTime, bool ConsiderDST);
- TDateTime __fastcall AdjustDateTimeFromUnix(TDateTime DateTime, bool ConsiderDST);
- void __fastcall UnifyDateTimePrecision(TDateTime & DateTime1, TDateTime & DateTime2);
- __int64 __fastcall ConvertTimestampToUnix(const FILETIME & FileTime,
- bool ConsiderDST);
- AnsiString __fastcall FixedLenDateTimeFormat(const AnsiString & Format);
- int __fastcall CompareFileTime(TDateTime T1, TDateTime T2);
- //---------------------------------------------------------------------------
- class TCriticalSection
- {
- public:
- __fastcall TCriticalSection();
- __fastcall ~TCriticalSection();
- void __fastcall Enter();
- void __fastcall Leave();
- private:
- TRTLCriticalSection FSection;
- };
- //---------------------------------------------------------------------------
- class TGuard
- {
- public:
- __fastcall TGuard(TCriticalSection * ACriticalSection);
- __fastcall ~TGuard();
- private:
- TCriticalSection * FCriticalSection;
- };
- //---------------------------------------------------------------------------
- class TUnguard
- {
- public:
- __fastcall TUnguard(TCriticalSection * ACriticalSection);
- __fastcall ~TUnguard();
- private:
- TCriticalSection * FCriticalSection;
- };
- //---------------------------------------------------------------------------
- // C++B TLibModule is invalid (differs from PAS definition)
- struct TPasLibModule
- {
- TPasLibModule * Next;
- void * Instance;
- void * CodeInstance;
- void * DataInstance;
- void * ResInstance;
- };
- //---------------------------------------------------------------------------
- #ifdef _DEBUG
- #define TRACEENV "WINSCPTRACE"
- void __fastcall Trace(const AnsiString SourceFile, const AnsiString Func,
- int Line, const AnsiString Message);
- #define TRACE(MESSAGE) Trace(__FILE__, __FUNC__, __LINE__, MESSAGE)
- #define TRACEFMT(MESSAGE, PARAMS) Trace(__FILE__, __FUNC__, __LINE__, FORMAT(MESSAGE, PARAMS))
- #else // ifdef _DEBUG
- #define TRACE(PARAMS)
- #define TRACEFMT(MESSAGE, PARAMS)
- #endif // ifdef _DEBUG
- //---------------------------------------------------------------------------
- #endif
- //---------------------------------------------------------------------------
- #include <assert.h>
- #ifndef _DEBUG
- #undef assert
- #define assert(p) ((void)0)
- #define CHECK(p) p
- #else
- #define CHECK(p) { bool __CHECK_RESULT__ = (p); assert(__CHECK_RESULT__); }
- #endif
- #define USEDPARAM(p) ((p) == (p))
- //---------------------------------------------------------------------------
- #endif
|