From e7aa6859f08565d58684fa4b9c40fed716f0ba17 Mon Sep 17 00:00:00 2001 From: Ian Jauslin Date: Mon, 21 Sep 2015 10:20:35 +0000 Subject: Add '-C' flag to meantools-derive Fix memory leak in meantools-derive --- src/definitions.cpp | 2 +- src/meantools_deriv.c | 42 +++++++++++++++++++++++++++++++++++++++--- src/types.h | 1 + 3 files changed, 41 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/definitions.cpp b/src/definitions.cpp index 1884488..25715e5 100644 --- a/src/definitions.cpp +++ b/src/definitions.cpp @@ -17,7 +17,7 @@ limitations under the License. #ifndef DEFINITIONS_GCC #define DEFINITIONS_GCC -#define VERSION "1.3" +#define VERSION "1.3.1" // number of entries in a configuration file #define ARG_COUNT 10 diff --git a/src/meantools_deriv.c b/src/meantools_deriv.c index 28d8641..b096380 100644 --- a/src/meantools_deriv.c +++ b/src/meantools_deriv.c @@ -46,6 +46,8 @@ int tool_deriv_read_args(int argc, const char* argv[], Str_Array* str_args, Mean (*opts).deriv_derivs=1; // derive with respect to all variables (*opts).deriv_vars.length=-1; + // do not chain + (*opts).chain=0; // loop over arguments @@ -61,6 +63,10 @@ int tool_deriv_read_args(int argc, const char* argv[], Str_Array* str_args, Mean case 'V': flag=CP_FLAG_VARS; break; + // chain + case 'C': + (*opts).chain=1; + break; } } } @@ -104,6 +110,8 @@ int tool_deriv(Str_Array str_args, Meantools_Options opts){ // flow equation for the derivatives Grouped_Polynomial flow_equation_deriv; int i; + // header of the entry + Char_Array arg_header; // parse flow equation @@ -142,6 +150,29 @@ int tool_deriv(Str_Array str_args, Meantools_Options opts){ // compute derivatives flow_equation_derivative(opts.deriv_derivs, opts.deriv_vars, flow_equation, &flow_equation_deriv); + // print + // if chain then print config file + if(opts.chain==1){ + for(i=0;i