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