|
28 | 28 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
29 | 29 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
30 | 30 | *
|
31 |
| - * $PostgreSQL: pgsql/src/backend/regex/regcomp.c,v 1.41 2004/05/07 00:24:57 tgl Exp $ |
| 31 | + * $PostgreSQL: pgsql/src/backend/regex/regcomp.c,v 1.42 2004/11/24 22:56:54 tgl Exp $ |
32 | 32 | *
|
33 | 33 | */
|
34 | 34 |
|
@@ -589,8 +589,13 @@ makesearch(struct vars * v,
|
589 | 589 | break;
|
590 | 590 | if (b!=NULL)
|
591 | 591 | {/* must be split */
|
592 |
| -s->tmp=slist; |
593 |
| -slist=s; |
| 592 | +if (s->tmp==NULL) |
| 593 | +{/* if not already in the list */ |
| 594 | +/* (fixes bugs 505048, 230589, */ |
| 595 | +/* 840258, 504785) */ |
| 596 | +s->tmp=slist; |
| 597 | +slist=s; |
| 598 | +} |
594 | 599 | }
|
595 | 600 | }
|
596 | 601 |
|
@@ -2226,12 +2231,12 @@ stid(struct subre * t,
|
2226 | 2231 | size_tbufsize)
|
2227 | 2232 | {
|
2228 | 2233 | /* big enough for hex int or decimal t->retry? */
|
2229 |
| -if (bufsize<sizeof(int)*2+3||bufsize<sizeof(t->retry)*3+1) |
| 2234 | +if (bufsize<sizeof(void*)*2+3||bufsize<sizeof(t->retry)*3+1) |
2230 | 2235 | return"unable";
|
2231 | 2236 | if (t->retry!=0)
|
2232 | 2237 | sprintf(buf,"%d",t->retry);
|
2233 | 2238 | else
|
2234 |
| -sprintf(buf,"0x%x",(int)t);/* may lose bits, that's okay */ |
| 2239 | +sprintf(buf,"%p",t); |
2235 | 2240 | returnbuf;
|
2236 | 2241 | }
|
2237 | 2242 | #endif/* REG_DEBUG */
|
|