-C Fix\sa\sbug\sin\ssqlite3_prepare_v2()\sintroduced\sby\scheckin\s(3578)\sand\sreported\non\sthe\smailing\slist.\s(CVS\s3592)
-D 2007-01-12T23:43:43
+C Make\ssure\sthe\sparser\sgenerated\sby\slemon\salways\scalls\sdestructors\son\nunused\ssymbols,\seven\sif\sthere\sis\sno\saction\sfollowing\sthe\srule.\nTicket\s#2171.\s(CVS\s3593)
+D 2007-01-16T03:09:03
F Makefile.in 7fa74bf4359aa899da5586e394d17735f221315f
F Makefile.linux-gcc 2d8574d1ba75f129aba2019f0b959db380a90935
F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
F test/where2.test 61d5b20d9bedc8788a773bbdc5b2ef887725928e
F test/where3.test 0a30fe9808b0fa01c46d0fcf4fac0bf6cf75bb30
F tool/diffdb.c 7524b1b5df217c20cd0431f6789851a4e0cb191b
-F tool/lemon.c 29d1bd8db8d5fbb1c577358632a96d716a435324
+F tool/lemon.c 2938bec507110397c937bd8a03b0c9596a709a04
F tool/lempar.c 0a2a5cf96a98a64a5594625ad8fbdbe41dbaca50
F tool/memleak.awk 4e7690a51bf3ed757e611273d43fe3f65b510133
F tool/memleak2.awk 9cc20c8e8f3c675efac71ea0721ee6874a1566e8
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513
-P f4ee5d83e177e7ed9f180454c01d46a395a5715d
-R 4b0815a55b922b31192db8cde97bb03b
+P 87248470362f444f2339fee18d3624e8544f5256
+R 215b3e2a99296aa81351d696d69a7c89
U drh
-Z 0214b95c1f9fb06ed7af23b4d12ac47e
+Z 05ac11539ce5473e2ed5468a4de2ce22
lhsused = 0;
append_str(0,0,0,0);
- for(cp=rp->code; *cp; cp++){
+ for(cp=(rp->code?rp->code:""); *cp; cp++){
if( isalpha(*cp) && (cp==rp->code || (!isalnum(cp[-1]) && cp[-1]!='_')) ){
char saved;
for(xp= &cp[1]; isalnum(*xp) || *xp=='_'; xp++);
}
}
}
- cp = append_str(0,0,0,0);
- rp->code = Strsafe(cp);
+ if( rp->code ){
+ cp = append_str(0,0,0,0);
+ rp->code = Strsafe(cp?cp:"");
+ }
}
/*
/* Generate code which execution during each REDUCE action */
for(rp=lemp->rule; rp; rp=rp->next){
- if( rp->code ) translate_code(lemp, rp);
+ translate_code(lemp, rp);
}
for(rp=lemp->rule; rp; rp=rp->next){
struct rule *rp2;