mirror of
https://github.com/postgres/postgres.git
synced 2025-08-31 17:02:12 +03:00
When a macro is replaced by the preprocessor, pgc.l reaches a end of
file, which is not the actual end of the file. One side effect of that is that if you are i n a ifdef block, you get a wrong error telling you that a endif is missing. This patch corrects pgc.l and also adds a test of this problem to test1.pgc. To convince you apply the patch to test1.pgc first then try to compile the test the n apply the patch to pgc.l. The patch moves the test of the scope of an ifdef block to the end of the file b eeing parsed, including all includes files, ... . Nicolas Bazin
This commit is contained in:
@@ -12,7 +12,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.89 2002/03/24 18:22:21 tgl Exp $
|
||||
* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.90 2002/04/05 11:39:45 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -837,14 +837,14 @@ cppline {space}*#(.*\\{space})*.*
|
||||
}
|
||||
|
||||
<<EOF>> {
|
||||
if (yy_buffer == NULL) {
|
||||
if ( preproc_tos > 0 )
|
||||
{
|
||||
preproc_tos = 0;
|
||||
mmerror(PARSE_ERROR, ET_FATAL, "Missing 'EXEC SQL ENDIF;'");
|
||||
}
|
||||
|
||||
if (yy_buffer == NULL)
|
||||
yyterminate();
|
||||
}
|
||||
else
|
||||
{
|
||||
struct _yy_buffer *yb = yy_buffer;
|
||||
|
Reference in New Issue
Block a user