From b40f748ccc279159b3f78715304de0685aa6da5a Mon Sep 17 00:00:00 2001 From: rlar Date: Thu, 3 Oct 2013 11:54:58 +0200 Subject: [PATCH] inp_fix_ternary_operator_str(), rewrite --- src/frontend/inpcom.c | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/src/frontend/inpcom.c b/src/frontend/inpcom.c index 5745fa7a0..af00e0b10 100644 --- a/src/frontend/inpcom.c +++ b/src/frontend/inpcom.c @@ -1957,22 +1957,19 @@ inp_fix_ternary_operator_str(char *line, bool all) } } - if (end_str != NULL) { - if (beg_str != NULL) { - new_str = TMALLOC(char, strlen(beg_str) + strlen("ternary_fcn") + strlen(conditional) + strlen(if_str) + strlen(else_str) + strlen(end_str) + 5); - sprintf(new_str, "%sternary_fcn(%s,%s,%s)%s", beg_str, conditional, if_str, else_str, end_str); - } else { - new_str = TMALLOC(char, strlen("ternary_fcn") + strlen(conditional) + strlen(if_str) + strlen(else_str) + strlen(end_str) + 5); - sprintf(new_str, "ternary_fcn(%s,%s,%s)%s", conditional, if_str, else_str, end_str); - } - } else { - if (beg_str != NULL) { - new_str = TMALLOC(char, strlen(beg_str) + strlen("ternary_fcn") + strlen(conditional) + strlen(if_str) + strlen(else_str) + 5); - sprintf(new_str, "%sternary_fcn(%s,%s,%s)", beg_str, conditional, if_str, else_str); - } else { - new_str = TMALLOC(char, strlen("ternary_fcn") + strlen(conditional) + strlen(if_str) + strlen(else_str) + 5); - sprintf(new_str, "ternary_fcn(%s,%s,%s)", conditional, if_str, else_str); - } + { + char *prolog = beg_str ? beg_str : ""; + char *epilog = end_str ? end_str : ""; + + size_t len = + strlen(prolog) + + strlen("ternary_fcn(,,)") + + strlen(conditional) + strlen(if_str) + strlen(else_str) + + strlen(epilog); + + new_str = TMALLOC(char, len + 1); + + sprintf(new_str, "%sternary_fcn(%s,%s,%s)%s", prolog, conditional, if_str, else_str, epilog); } tfree(line);