diff options
Diffstat (limited to 'contrib/seg/seg.c')
-rw-r--r-- | contrib/seg/seg.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/contrib/seg/seg.c b/contrib/seg/seg.c index 443fe3f5a2..c26f9d27cd 100644 --- a/contrib/seg/seg.c +++ b/contrib/seg/seg.c @@ -23,8 +23,10 @@ #define GIST_QUERY_DEBUG */ -extern void set_parse_buffer(char *str); extern int seg_yyparse(); +extern void seg_yyerror(const char *message); +extern void seg_scanner_init(const char *str); +extern void seg_scanner_finish(void); /* extern int seg_yydebug; @@ -99,16 +101,13 @@ seg_in(char *str) { SEG *result = palloc(sizeof(SEG)); - set_parse_buffer(str); + seg_scanner_init(str); - /* - * seg_yydebug = 1; - */ if (seg_yyparse(result) != 0) - { - pfree(result); - return NULL; - } + seg_yyerror("bogus input"); + + seg_scanner_finish(); + return (result); } @@ -880,7 +879,6 @@ seg_gt(SEG * a, SEG * b) return seg_cmp(a, b) > 0; } - bool seg_ge(SEG * a, SEG * b) { |