diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2011-09-03 22:39:04 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2011-09-03 22:39:04 +0300 |
commit | 86d47bad93db0031e87f09afabaceebd90ffea02 (patch) | |
tree | 938068fbe759a02ca86d54e8958e3eb5b85c30a3 /dfa.c | |
parent | cfba2eb6f221d0f94643a57c135c62f5bc66ee10 (diff) | |
download | egawk-86d47bad93db0031e87f09afabaceebd90ffea02.tar.gz egawk-86d47bad93db0031e87f09afabaceebd90ffea02.tar.bz2 egawk-86d47bad93db0031e87f09afabaceebd90ffea02.zip |
Sync again with GNU grep.
Diffstat (limited to 'dfa.c')
-rw-r--r-- | dfa.c | 48 |
1 files changed, 20 insertions, 28 deletions
@@ -3646,20 +3646,12 @@ static char * icatalloc (char *old, char const *new) { char *result; - size_t oldsize, newsize; - - newsize = (new == NULL) ? 0 : strlen(new); - if (old == NULL) - oldsize = 0; - else if (newsize == 0) + size_t oldsize = old == NULL ? 0 : strlen (old); + size_t newsize = new == NULL ? 0 : strlen (new); + if (newsize == 0) return old; - else oldsize = strlen(old); - if (old == NULL) - result = malloc(newsize + 1); - else - result = realloc(old, oldsize + newsize + 1); - if (result != NULL && new != NULL) - strcpy(result + oldsize, new); + result = xrealloc (old, oldsize + newsize + 1); + strcpy (result + oldsize, new); return result; } @@ -3767,8 +3759,16 @@ comsubs (char *left, char const *right) } if (len == 0) continue; - if ((cpp = enlist(cpp, lcp, len)) == NULL) - break; + { + char **p = enlist (cpp, lcp, len); + if (p == NULL) + { + freelist (cpp); + cpp = NULL; + break; + } + cpp = p; + } } return cpp; } @@ -3861,13 +3861,10 @@ dfamust (struct dfa *d) mp[i] = must0; for (i = 0; i <= d->tindex; ++i) { - mp[i].in = malloc(sizeof *mp[i].in); - mp[i].left = malloc(2); - mp[i].right = malloc(2); - mp[i].is = malloc(2); - if (mp[i].in == NULL || mp[i].left == NULL || - mp[i].right == NULL || mp[i].is == NULL) - goto done; + mp[i].in = xmalloc(sizeof *mp[i].in); + mp[i].left = xmalloc(2); + mp[i].right = xmalloc(2); + mp[i].is = xmalloc(2); mp[i].left[0] = mp[i].right[0] = mp[i].is[0] = '\0'; mp[i].in[0] = NULL; } @@ -3974,13 +3971,8 @@ dfamust (struct dfa *d) char *tp; tp = icpyalloc(lmp->right); - if (tp == NULL) - goto done; tp = icatalloc(tp, rmp->left); - if (tp == NULL) - goto done; - lmp->in = enlist(lmp->in, tp, - strlen(tp)); + lmp->in = enlist(lmp->in, tp, strlen(tp)); free(tp); if (lmp->in == NULL) goto done; |