From e93327fdb7caadbce6fc4e3023caa3f989d5ebe6 Mon Sep 17 00:00:00 2001 From: rlar Date: Sun, 4 Oct 2015 19:33:20 +0200 Subject: [PATCH] frontend/define.c, ntharg(), #7/15 substitute tail of ntharg() for `break' --- src/frontend/define.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/frontend/define.c b/src/frontend/define.c index 2591753c3..45f3ad118 100644 --- a/src/frontend/define.c +++ b/src/frontend/define.c @@ -410,22 +410,23 @@ ntharg(int num, struct pnode *args) // fact: num >= 1 for all known invocations of ntharg() for (;;) { if (--num <= 0) { - break; + if (args && args->pn_op && (args->pn_op->op_num == PT_OP_COMMA)) + return args->pn_left; + return args; } if (args && args->pn_op && (args->pn_op->op_num != PT_OP_COMMA)) { if (num <= 1) - break; + { + if (args && args->pn_op && (args->pn_op->op_num == PT_OP_COMMA)) + return args->pn_left; + return args; + } return NULL; } if (!args) return NULL; args = args->pn_right; } - - if (args && args->pn_op && (args->pn_op->op_num == PT_OP_COMMA)) - return args->pn_left; - - return args; }