diff options
author | Michael J. Chudobiak <mjc@avtechpulse.com> | 2012-08-15 15:39:11 -0400 |
---|---|---|
committer | Michael J. Chudobiak <mjc@avtechpulse.com> | 2012-08-15 15:39:11 -0400 |
commit | b30576989c2dadd2fa4d64cf81da98b2be4cf584 (patch) | |
tree | b64a12fe071ecb93324096707874c8a79309a4a1 /parser.c | |
parent | f6d11094382e205d56b1c2b6b334265ab23b0803 (diff) |
fix errors in last commit; enhance regex filter
Diffstat (limited to 'parser.c')
-rw-r--r-- | parser.c | 24 |
1 files changed, 12 insertions, 12 deletions
@@ -528,12 +528,18 @@ static gchar* filter_input (gchar *raw_in) g_regex_unref (end_semi); g_free (step3); + // remove leading spaces, colons, semicolons + GRegex *leading = g_regex_new ("^[\\s:;]*", 0, 0, NULL); + gchar *step5 = g_regex_replace_literal (leading, step4, -1, 0, "", 0, NULL); + g_regex_unref (end_semi); + g_free (step4); + // last step may leave hanging whitespace at end - g_strstrip (step4); + g_strstrip (step5); // add single space to terminate - gchar *filt = g_strdup_printf ("%s ", step4); - g_free (step4); + gchar *filt = g_strdup_printf ("%s ", step5); + g_free (step5); return filt; } @@ -573,12 +579,6 @@ void Parser_main (char *raw_in, int interactive_terminal, void(*cbfunc)(gpointer old_command_depth=0; dont_use_this_header=NO; - while (isspace(in[in_pos]) || in[in_pos]==':' || in[in_pos]==';') { - /* ignore leading spaces */ - ++in_pos; - } - - /* examine each letter in the string until EOS */ while (in[in_pos] != 0) { @@ -968,7 +968,7 @@ static int query_min_max_int (gchar** response, char *parameter, int min_val, in return SyntaxError; } - *response = g_printf ("%d", report_val); + *response = g_strdup_printf ("%d", report_val); return OK; } @@ -1036,7 +1036,7 @@ static int process_float_param (char *parameter, float *value, float min_val, fl #define NO_ON_OFF 1 static int process_int_param (char *parameter, int *value, int item_count, int *valid_nums, int allow_on_off) { - int status, i, min_val, max_val, is_valid, items_in_list; + int status, i, min_val, max_val, is_valid; status = OK; is_valid = 0; @@ -1092,7 +1092,7 @@ static int process_int_range (char *parameter, int *value, int min_val, int max_ static int process_on_off (char *parameter, int *value) { - static const int valid_choices[2] = {0, 1}; + int valid_choices[2] = {0, 1}; return process_int_param (parameter, value, 2, valid_choices, USE_ON_OFF); } |