implemented RFE #1669513 - bitwise operators for !define /math
git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@4959 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
b8bf22affb
commit
695fddbc32
3 changed files with 8 additions and 2 deletions
|
@ -2795,6 +2795,12 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
|||
sprintf(value,"%d",value1-value2);
|
||||
} else if (!strcmp(mathop,"*")) {
|
||||
sprintf(value,"%d",value1*value2);
|
||||
} else if (!strcmp(mathop,"&")) {
|
||||
sprintf(value,"%d",value1&value2);
|
||||
} else if (!strcmp(mathop,"|")) {
|
||||
sprintf(value,"%d",value1|value2);
|
||||
} else if (!strcmp(mathop,"^")) {
|
||||
sprintf(value,"%d",value1^value2);
|
||||
} else if (!strcmp(mathop,"/")) {
|
||||
if (value2==0) {
|
||||
ERROR_MSG("!define /math: division by zero! (\"%i / %i\")\n",value1,value2);
|
||||
|
|
|
@ -237,7 +237,7 @@ static tokenType tokenlist[TOK__LAST] =
|
|||
{TOK_P_IFDEF,"!ifdef",1,-1,"symbol [| symbol2 [& symbol3 [...]]]",TP_ALL},
|
||||
{TOK_P_IFNDEF,"!ifndef",1,-1,"symbol [| symbol2 [& symbol3 [...]]]",TP_ALL},
|
||||
{TOK_P_ENDIF,"!endif",0,0,"",TP_ALL},
|
||||
{TOK_P_DEFINE,"!define",1,4,"([/date|/utcdate] symbol [value]) | (/math symbol val1 OP val2)\n OP=(+ - * / %)",TP_ALL},
|
||||
{TOK_P_DEFINE,"!define",1,4,"([/date|/utcdate] symbol [value]) | (/math symbol val1 OP val2)\n OP=(+ - * / % & | ^)",TP_ALL},
|
||||
{TOK_P_UNDEF,"!undef",1,1,"symbol [value]",TP_ALL},
|
||||
{TOK_P_ELSE,"!else",0,-1,"[if[macro][n][def] ...]",TP_ALL},
|
||||
{TOK_P_ECHO,"!echo",1,0,"message",TP_ALL},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue