Hello,
I'd like to contribute this small patch (attached) that I think will
help prevent some future bugs from occurring in paste.c.
By wrapping the macro's arguments in parentheses, we can ensure that the
correct order of evaluation will take place during preprocessing.
To illustrate, we can use the == operator which has lower evaluation
precedence than the < operator:
* With the current macro, imax2(3==4, 1) expands to 0.
* After applying this patch, imax2(3==4, 1) expands to 1 as expected.
Since I'm still relatively new to the mailing list, I've kept this patch
small.
I did notice other macros that have this same issue, so I can start
sending additional patches if this seems okay.
Thanks,
Sahil
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch.diff
Type: text/x-patch
Size: 363 bytes
Desc: not available
URL:
<https://stat.ethz.ch/pipermail/r-devel/attachments/20170522/0fd87568/attachment.bin>
Hi Duncan, Would you merge this patch? I'm planning on sending larger patches in the next few days that fix other macros I've seen, but I figured? it'd be best to start with a smaller patch. Thanks, Sahil
Duncan Murdoch
2017-May-23 16:35 UTC
[Rd] [PATCH] Ensure correct order of evaluation in macro
On 23/05/2017 11:47 AM, Sahil Kang wrote:> Hi Duncan, > > Would you merge this patch? > I'm planning on sending larger patches in the next few days that fix other macros I've seen, but I figured? it'd be best to start with a smaller patch.No, I generally try to leave the macro stuff to others. Duncan Murdoch