Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[patch] src/usr.bin/m4/eval.c function passed as argument to MIN()

5 views
Skip to first unread message

Michael W. Bombardieri

unread,
Aug 5, 2016, 3:42:04 AM8/5/16
to
Hi tech,

I noticed that atoi(3)/expr() is called within min() macro.
Both atoi(3) and expr() return int.
Store result in temporary variable so we don't call the function twice?

- Michael


Index: eval.c
===================================================================
RCS file: /cvs/src/usr.bin/m4/eval.c,v
retrieving revision 1.74
diff -u -p -u -r1.74 eval.c
--- eval.c 5 Feb 2015 12:59:57 -0000 1.74
+++ eval.c 5 Aug 2016 06:24:57 -0000
@@ -871,12 +871,15 @@ dosub(const char *argv[], int argc)
fc = ap + atoi(argv[3]); /* first char */
#endif
nc = strlen(fc);
- if (argc >= 5)
+ if (argc >= 5) {
+ int e;
#ifdef EXPR
- nc = min(nc, expr(argv[4]));
+ e = expr(argv[4]);
#else
- nc = min(nc, atoi(argv[4]));
+ e = atoi(argv[4]);
#endif
+ nc = min(nc, e);
+ }
if (fc >= ap && fc < ap + strlen(ap))
for (k = fc + nc - 1; k >= fc; k--)
pushback(*k);

0 new messages