|Anonymous | Login | Signup for a new account||2021-01-23 12:30 PST|
|Main | My View | View Issues | Change Log | Roadmap | Summary | My Account|
|View Issue Details|
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0007257||opensim||[REGION] Scripting Engine||public||2014-07-08 20:45||2014-07-08 20:45|
|Platform||Operating System||Operating System Version|
|Target Version||Fixed in Version|
|Summary||0007257: scripts do not compile|
|Description||Scripts with a statement like|
(status += 32 * !(status & 32));
do not compile. A statement like this comes from the expansion of a preprocessor macro. The macro is called 'SetStatus' in this case. I need it in my scripts --- which run through cpp --- for status handling.
The brackets around the statement are not required in above example. They are required because the macro can be used in an expression like
var1 = var2 * SetStatus(stSOMESTATUS) + var3;
The same goes for other macros that expand to assignments, like replacing elements of a list, for example. The result of an assignment can be used itself as a value, like
var1 = var2 = var3 = 25;
Using macros introduces brackets which are not needed in all instances. However:
+ these brackets don't hurt anything
+ the scripts compile just fine in second life
The syntax check that prevents scripts as described from compiling breaks compatibility with sl for no advantage at all. It should be removed, or changed so that the scripts compile.
It breaks pretty much all my scritps.
|Additional Information||I tried this on some sims of Metropolis. I haven't tried other grids; the scripts compile without issues in sl.|
I don't know what run mode etc. is used with the Metropolis grid.
|Tags||No tags attached.|
|Git Revision or version number|
|Run Mode||Standalone (1 Region)|
|2014-07-08 20:45||lee+||New Issue|
|Copyright © 2000 - 2012 MantisBT Group|