diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | Src/pattern.c | 6 |
2 files changed, 10 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog index 6e339b5ea..e7c7c8b07 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2016-10-20 Peter Stephenson <p.stephenson@samsung.com> + + * 39683: Src/pattern.c: Update scan pointer in pattern after + possible reallocation for meta handling. + 2016-10-19 Barton E. Schaefer <schaefer@zsh.org> * 39680: Src/mem.c: correctly handle case of popping last arena diff --git a/Src/pattern.c b/Src/pattern.c index 4e2f2369f..158bfd560 100644 --- a/Src/pattern.c +++ b/Src/pattern.c @@ -669,12 +669,16 @@ patcompile(char *exp, int inflags, char **endexp) nmeta++; if (nmeta) { char *oldpatout = patout; + ptrdiff_t pd; patadd(NULL, 0, nmeta, 0); /* * Yuk. */ p = (Patprog)patout; - opnd = patout + (opnd - oldpatout); + pd = patout - oldpatout; + opnd += pd; + pscan += pd; + next += pd; dst = patout + startoff; } |