Incomplete support for Z (size_t) logiclib integer tests and other minor fixes

git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@6713 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
anders_k 2016-03-07 14:34:21 +00:00
parent ebc900f4bb
commit d74c5acdcd
5 changed files with 30 additions and 8 deletions

View file

@ -123,7 +123,7 @@ const TCHAR *compressor_display_names[] = {_T("Defined in Script/Compiler Defaul
_T("LZMA"),
_T("LZMA (solid)"),
_T("Best Compressor")};
WORD compressor_commands[] = {IDM_COMPRESSOR_SCRIPT,
const WORD compressor_commands[] = {IDM_COMPRESSOR_SCRIPT,
IDM_ZLIB,
IDM_ZLIB_SOLID,
IDM_BZIP2,

View file

@ -635,7 +635,7 @@ void AddTip(HWND hWnd,LPCTSTR lpszToolTip) {
ti.uFlags = TTF_IDISHWND;
ti.hwnd = g_tip.tip_p;
ti.uId = (UINT_PTR) hWnd;
ti.lpszText = (LPTSTR) lpszToolTip;
ti.lpszText = const_cast<LPTSTR>(lpszToolTip);
SendMessage(g_tip.tip, TTM_ADDTOOL, 0, (LPARAM) (LPTOOLINFO) &ti);
}

View file

@ -243,12 +243,12 @@ static int my_strnicmp(char *b1, const char *b2, int l)
return 0;
}
char *_strstr(char *i, const char *s)
char *_strstr(const char *i, const char *s)
{
if (strlen(i)>=strlen(s)) while (i[strlen(s)-1])
{
int l=strlen(s)+1;
char *ii=i;
const char *ii=i;
const char *is=s;
while (--l>0)
{
@ -256,7 +256,7 @@ char *_strstr(char *i, const char *s)
ii++;
is++;
}
if (l==0) return i;
if (l==0) return const_cast<char*>(i);
i++;
}
return NULL;

View file

@ -226,7 +226,7 @@ void progress_callback(const char *msg, __int64 read_bytes)
}
}
extern char *_strstr(char *i, const char *s);
extern char *_strstr(const char *i, const char *s);
#define strstr _strstr
extern "C"

View file

@ -54,6 +54,8 @@
; a L= b; a L<> b; a L< b; a L>= b; a L> b; a L<= b
; ptrdiff_t integer tests
; a P= b; a P<> b; a P< b; a P>= b; a P> b; a P<= b
; size_t integer tests
; a Z= b; a Z<> b
; Built-in NSIS flag tests:
; ${Abort}; ${Errors}; ${RebootFlag}; ${Silent}
; Built-in NSIS other tests:
@ -253,9 +255,9 @@
!insertmacro _L> `${_a}` `${_b}` `${_f}` `${_t}`
!macroend
; ptrdiff_t tests
; ptrdiff_t & size_t tests
!macro LogicLib_PtrDiffTest _o _a _b _t _f
!if ${NSIS_PTR_SIZE} <= 4
!if "${NSIS_PTR_SIZE}" <= 4
!insertmacro _${_o} `${_a}` `${_b}` `${_t}` `${_f}`
!else
!insertmacro _L${_o} `${_a}` `${_b}` `${_t}` `${_f}`
@ -279,6 +281,26 @@
!macro _P<= _a _b _t _f
!insertmacro LogicLib_PtrDiffTest <= `${_a}` `${_b}` `${_t}` `${_f}`
!macroend
!macro _Z= _a _b _t _f
!insertmacro LogicLib_PtrDiffTest = `${_a}` `${_b}` `${_t}` `${_f}`
!macroend
!macro _Z<> _a _b _t _f
!insertmacro LogicLib_PtrDiffTest <> `${_a}` `${_b}` `${_t}` `${_f}`
!macroend
!if "${NSIS_PTR_SIZE}" <= 4 ; BUGBUG: System::Int64Op does not support unsigned operations!
!macro _Z< _a _b _t _f
!insertmacro _U< `${_a}` `${_b}` `${_t}` `${_f}`
!macroend
!macro _Z>= _a _b _t _f
!insertmacro _U>= `${_a}` `${_b}` `${_t}` `${_f}`
!macroend
!macro _Z> _a _b _t _f
!insertmacro _U> `${_a}` `${_b}` `${_t}` `${_f}`
!macroend
!macro _Z<= _a _b _t _f
!insertmacro _U<= `${_a}` `${_b}` `${_t}` `${_f}`
!macroend
!endif
; Flag tests
!macro _Abort _a _b _t _f