IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 16884


Ignore:
Timestamp:
Mar 8, 2008, 11:24:02 AM (18 years ago)
Author:
eugene
Message:

remove bogus test at start of code, fix loop order to be like while not do

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/opihi/cmd.basic/run_while.c

    r14178 r16884  
    1515  }
    1616
    17   val = dvomath (1, &argv[1], &size, 0);
    18   if (val == NULL) return (FALSE);
    19   logic = atof (val); /* warning: round-off error is a danger */
    20   free (val);
    21  
    2217  NLINES = D_NLINES;
    2318  ALLOCATE (loop.line, char *, NLINES);
     
    7671  REALLOCATE (loop.line, char *, MAX (loop.Nlines, 1));
    7772
     73  // test the logic once before running the loop
     74  logic_line = strcreate (argv[1]);
     75  logic_line = expand_vars (logic_line);
     76  val = dvomath (1, &logic_line, &size, 0);
     77  free (logic_line);
     78
     79  // if we have a parse failure, return FALSE
     80  if (val == NULL) return (FALSE);
     81  logic = atof (val); /* warning: round-off error is a danger */
     82  free (val);
     83
    7884  /* execute for loop */
    79   do {
     85  while (logic) {
    8086    status = exec_loop (&loop);
    8187    if (loop_next) continue;
     
    8894    free (logic_line);
    8995
    90     if (val == NULL) return (FALSE);
    91     logic = atof (val); /* warning: round-off error is a danger */
    92     free (val);
    93   } while (logic && !interrupt);
     96    logic = FALSE;
     97    if (val) {
     98      logic = atof (val); /* warning: round-off error is a danger */
     99      free (val);
     100    }
     101  }
    94102  /* 'last' and 'next' should only affect one loop */
    95103  loop_last = loop_next = FALSE;
Note: See TracChangeset for help on using the changeset viewer.