mirror of
				https://github.com/postgres/postgres.git
				synced 2025-10-31 10:30:33 +03:00 
			
		
		
		
	Fix for 1f0de66ea2: We need to prevent redeclaration of typedef
yyscan_t.  (This will work with C11 but not currently with C99.)  The
generated scanner files provide their own typedef, but we also need to
provide one for the interfaces that we expose.  So we need to add some
preprocessor guards to avoid a redefinition.  (This is how the
generated scanner files do it internally as well.)  This way
everything now works independent of the order in which things are
included.
Discussion: https://www.postgresql.org/message-id/flat/eb6faeac-2a8a-4b69-9189-c33c520e5b7b@eisentraut.org
		
	
		
			
				
	
	
		
			34 lines
		
	
	
		
			787 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			787 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * contrib/seg/segdata.h
 | |
|  */
 | |
| typedef struct SEG
 | |
| {
 | |
| 	float4		lower;
 | |
| 	float4		upper;
 | |
| 	char		l_sigd;
 | |
| 	char		u_sigd;
 | |
| 	char		l_ext;
 | |
| 	char		u_ext;
 | |
| } SEG;
 | |
| 
 | |
| /* in seg.c */
 | |
| extern int	significant_digits(const char *s);
 | |
| 
 | |
| /* for segscan.l and segparse.y */
 | |
| union YYSTYPE;
 | |
| #ifndef YY_TYPEDEF_YY_SCANNER_T
 | |
| #define YY_TYPEDEF_YY_SCANNER_T
 | |
| typedef void *yyscan_t;
 | |
| #endif
 | |
| 
 | |
| /* in segscan.l */
 | |
| extern int	seg_yylex(union YYSTYPE *yylval_param, yyscan_t yyscanner);
 | |
| extern void seg_yyerror(SEG *result, struct Node *escontext,
 | |
| 						yyscan_t yyscanner,
 | |
| 						const char *message);
 | |
| extern void seg_scanner_init(const char *str, yyscan_t *yyscannerp);
 | |
| extern void seg_scanner_finish(yyscan_t yyscanner);
 | |
| 
 | |
| /* in segparse.y */
 | |
| extern int	seg_yyparse(SEG *result, struct Node *escontext, yyscan_t yyscanner);
 |