frontend/device.c, com_alter_common(), #1/4 rewrite for readability

This commit is contained in:
rlar 2015-12-28 12:47:06 +01:00
parent c442994a0a
commit a3e06831fd
1 changed files with 7 additions and 11 deletions

View File

@ -1124,9 +1124,10 @@ com_alter_common(wordlist *wl, int do_model)
/* DIE 2009_02_06 */
char *argument;
char **arglist;
int i = 0, step = 0, n, wlen, maxelem = 3;
int step = 0, n, wlen, maxelem = 3;
wordlist *wl2 = NULL, *wlin, *rhs;
bool eqfound = FALSE;
char *eqptr = NULL;
if (!ft_curckt) {
fprintf(cp_err, "Error: no circuit loaded\n");
@ -1152,16 +1153,14 @@ com_alter_common(wordlist *wl, int do_model)
while (wl) {
argument = wl->wl_word;
/* searching for '=' ... */
i = 0;
while (argument[i] != '=' && argument[i] != '\0')
i++;
eqptr = strchr(argument, '=');
/* argument may be '=', then do nothing
or =token
or token=
or token1=token2
...and if found split argument into three chars and make a new wordlist */
if (argument[i] != '\0') {
if (eqptr) {
/* We found '=' */
eqfound = TRUE;
if (strlen(argument) == 1) {
@ -1170,16 +1169,13 @@ com_alter_common(wordlist *wl, int do_model)
wl2 = wlin;
} else if (strlen(argument) > 1) {
arglist = TMALLOC(char*, 4);
arglist[3] = NULL;
arglist[0] = TMALLOC(char, i + 1);
arglist[2] = TMALLOC(char, strlen(&argument[i + 1]) + 1);
/* copy argument */
strncpy(arglist[0], argument, (size_t) i);
arglist[0][i] = '\0';
arglist[0] = copy_substring(argument, eqptr);
/* copy equal sign */
arglist[1] = copy("=");
/* copy expression */
strncpy(arglist[2], &argument[i+1], strlen(&argument[i+1])+1);
arglist[2] = copy(eqptr + 1);
arglist[3] = NULL;
/* create a new wordlist from array arglist */
wl2 = wl_build(arglist);