diff --git a/src/frontend/inpcom.c b/src/frontend/inpcom.c index e9c64cfd6..c42871dd0 100644 --- a/src/frontend/inpcom.c +++ b/src/frontend/inpcom.c @@ -976,10 +976,8 @@ inp_chk_for_multi_in_vcvs(struct line *deck, int *line_number) model_name = strdup(line); *str_ptr1 = keep; - str_ptr2 = bool_ptr - 1; str_ptr1 = skip_ws(str_ptr1); - str_ptr2 = skip_back_ws(str_ptr2); - str_ptr2++; + str_ptr2 = skip_back_ws(bool_ptr - 1) + 1; keep = *str_ptr2; *str_ptr2 = '\0'; node_str = strdup(str_ptr1); @@ -997,16 +995,13 @@ inp_chk_for_multi_in_vcvs(struct line *deck, int *line_number) fprintf(stderr, "ERROR: mal formed line: %s\n", line); controlled_exit(EXIT_FAILURE); } - str_ptr1++; - str_ptr2--; - str_ptr2 = skip_back_ws(str_ptr2); - str_ptr1 = skip_ws(str_ptr1); + str_ptr2 = skip_back_ws(str_ptr2 - 1); + str_ptr1 = skip_ws(str_ptr1 + 1); if (*str_ptr2 == '}') { while (*str_ptr2 != '{') str_ptr2--; xy_str1 = str_ptr2; - str_ptr2--; - str_ptr2 = skip_back_ws(str_ptr2) + 1; + str_ptr2 = skip_back_ws(str_ptr2 - 1) + 1; } else { str_ptr2 = skip_back_non_ws(str_ptr2); xy_str1 = str_ptr2 + 1; @@ -1017,8 +1012,7 @@ inp_chk_for_multi_in_vcvs(struct line *deck, int *line_number) ctrl_node_str = strdup(str_ptr1); *str_ptr2 = keep; - str_ptr1 = comma_ptr + 1; - str_ptr1 = skip_ws(str_ptr1); + str_ptr1 = skip_ws(comma_ptr + 1); if (*str_ptr1 == '{') { while (*str_ptr1 != '}') str_ptr1++; @@ -1258,8 +1252,7 @@ get_instance_subckt(char *line) // see if instance has parameters if ((equal_ptr = strstr(line, "=")) != NULL) { - end_ptr = equal_ptr - 1; - end_ptr = skip_back_ws(end_ptr); + end_ptr = skip_back_ws(equal_ptr - 1); end_ptr = skip_back_non_ws(end_ptr); end_ptr = skip_back_ws(end_ptr) + 1; keep = *end_ptr; @@ -1330,10 +1323,10 @@ get_model_name(char *line, int num_terminals) static char* get_model_type(char *line) { - char *model_type, *beg_ptr = line; + char *model_type, *beg_ptr; if (!(ciprefix(".model", line))) return NULL; - beg_ptr = skip_non_ws(beg_ptr); /* eat .model */ + beg_ptr = skip_non_ws(line); /* eat .model */ beg_ptr = skip_ws(beg_ptr); beg_ptr = skip_non_ws(beg_ptr); /* eat model name */ beg_ptr = skip_ws(beg_ptr); @@ -1349,9 +1342,7 @@ get_adevice_model_name(char *line) while (isspace(*(ptr_end-1))) ptr_end--; - ptr_beg = ptr_end - 1; - - ptr_beg = skip_back_non_ws(ptr_beg) + 1; + ptr_beg = skip_back_non_ws(ptr_end - 1) + 1; keep = *ptr_end; *ptr_end = '\0'; model_name = strdup(ptr_beg); @@ -1708,9 +1699,8 @@ inp_fix_ternary_operator_str(char *line, bool all) } // get conditional - str_ptr2 = question = strstr(str_ptr, "?"); - str_ptr2--; - str_ptr2 = skip_back_ws(str_ptr2); + question = strstr(str_ptr, "?"); + str_ptr2 = skip_back_ws(question - 1); if (*str_ptr2 == ')') { count = 1; str_ptr = str_ptr2; @@ -2052,12 +2042,11 @@ inp_fix_subckt(char *s) #ifndef NOBRACE /* alternative patch to cope with spaces: get expression between braces {...} */ - ptr2 = ptr1+1; + ptr2 = skip_ws(ptr1 + 1); ptr1 = skip_back_ws(ptr1 - 1); ptr1 = skip_back_non_ws(ptr1) + 1; /* ptr1 points to beginning of parameter */ - ptr2 = skip_ws(ptr2); /* if parameter is an expression and starts with '{', find closing '}' Braces maybe nested (will they ever be ?). */ if (*ptr2 == '{') { @@ -2405,8 +2394,7 @@ inp_get_subckt_name(char *s) char keep; if (end_ptr != NULL) { - end_ptr--; - end_ptr = skip_back_ws(end_ptr); + end_ptr = skip_back_ws(end_ptr - 1); end_ptr = skip_back_non_ws(end_ptr); } else { end_ptr = s + strlen(s); @@ -2510,8 +2498,7 @@ inp_fix_inst_line(char *inst_line, *inst_name_end = keep; if (end != NULL) { - end--; - end = skip_back_ws(end); + end = skip_back_ws(end - 1); end = skip_back_non_ws(end); *end = '\0'; } @@ -3362,8 +3349,7 @@ get_param_name(char *line) char keep; if ((equal_ptr = strstr(line, "=")) != NULL) { - equal_ptr--; - equal_ptr = skip_back_ws(equal_ptr) + 1; + equal_ptr = skip_back_ws(equal_ptr - 1) + 1; beg = equal_ptr-1; while (!isspace(*beg) && beg != line) @@ -3385,14 +3371,12 @@ get_param_name(char *line) static char* get_param_str(char *line) { - char *equal_ptr; + char *equal_ptr = strstr(line, "="); - if ((equal_ptr = strstr(line, "=")) != NULL) { - equal_ptr++; - equal_ptr = skip_ws(equal_ptr); - return equal_ptr; - } - return line; + if (equal_ptr) + return skip_ws(equal_ptr + 1); + else + return line; }