]> git.kaiwu.me - klib.git/commitdiff
command line assignment
authorHeng Li <lh3@me.com>
Fri, 22 May 2015 02:26:56 +0000 (22:26 -0400)
committerHeng Li <lh3@me.com>
Fri, 22 May 2015 02:26:56 +0000 (22:26 -0400)
kexpr.c

diff --git a/kexpr.c b/kexpr.c
index 87429d015f74b906ea37e3d54308ba1748466474..b897b8ccd131ce86ece0e64186fbb9cbe4d9c733 100644 (file)
--- a/kexpr.c
+++ b/kexpr.c
@@ -486,7 +486,16 @@ int main(int argc, char *argv[])
        if (!to_print) {
                int64_t vi;
                double vr;
-               int int_ret;
+               int i, int_ret;
+               if (argc - optind > 1) {
+                       for (i = optind + 1; i < argc; ++i) {
+                               char *p, *s = argv[i];
+                               for (p = s; *p && *p != '='; ++p);
+                               if (*p == 0) continue; // not an assignment
+                               *p = 0;
+                               ke_set_real(ke, s, strtod(p+1, &p));
+                       }
+               }
                err = ke_eval(ke, &vi, &vr, &int_ret);
                if (err) {
                        fprintf(stderr, "ERROR: 0x%x\n", err);