diff options
author | Panu Matilainen <pmatilai@redhat.com> | 2009-08-17 12:07:48 +0300 |
---|---|---|
committer | Panu Matilainen <pmatilai@redhat.com> | 2009-08-17 12:07:48 +0300 |
commit | d8cde273e5523364df4f4f9ae7ad3374cf02e549 (patch) | |
tree | 65ad6ce822d294222754d252de2c05cbde2da065 /build | |
parent | 3fc58248d23d6f720942e5cbf4f92db246a802f0 (diff) | |
download | librpm-tizen-d8cde273e5523364df4f4f9ae7ad3374cf02e549.tar.gz librpm-tizen-d8cde273e5523364df4f4f9ae7ad3374cf02e549.tar.bz2 librpm-tizen-d8cde273e5523364df4f4f9ae7ad3374cf02e549.zip |
Avoid adding Lua sources and patches twice when recursing (ticket #82)
- parseSpec() operates on newly created empty spec structures even when
"recursing" but the lua variables are global and need recursion
protection to avoid adding multiple times
Diffstat (limited to 'build')
-rw-r--r-- | build/spec.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/build/spec.c b/build/spec.c index ca9710761..19974ef55 100644 --- a/build/spec.c +++ b/build/spec.c @@ -346,16 +346,16 @@ int addSource(rpmSpec spec, Package pkg, const char *field, rpmTag tag) addMacro(spec->macros, buf, NULL, p->fullSource, RMIL_SPEC); free(buf); #ifdef WITH_LUA - { - rpmlua lua = NULL; /* global state */ - const char * what = (flag & RPMBUILD_ISPATCH) ? "patches" : "sources"; - rpmluaPushTable(lua, what); - rpmluav var = rpmluavNew(); - rpmluavSetListMode(var, 1); - rpmluavSetValue(var, RPMLUAV_STRING, body); - rpmluaSetVar(lua, var); - var = rpmluavFree(var); - rpmluaPop(lua); + if (!spec->recursing) { + rpmlua lua = NULL; /* global state */ + const char * what = (flag & RPMBUILD_ISPATCH) ? "patches" : "sources"; + rpmluaPushTable(lua, what); + rpmluav var = rpmluavNew(); + rpmluavSetListMode(var, 1); + rpmluavSetValue(var, RPMLUAV_STRING, body); + rpmluaSetVar(lua, var); + var = rpmluavFree(var); + rpmluaPop(lua); } #endif body = _free(body); |