Remove outside-the-scanner references to "yyleng".
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 8 Sep 2009 04:25:41 +0000 (04:25 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 8 Sep 2009 04:25:41 +0000 (04:25 +0000)
It seems the flex developers have decided to change yyleng from int to size_t.
This has already happened in the latest release of OS X, and will start
happening elsewhere once the next release of flex appears.  Rather than trying
to divine how it's declared in any particular build, let's just remove the one
existing not-very-necessary external usage.

Back-patch to all supported branches; not so much because users in the field
are likely to care about building old branches with cutting-edge flex, as
to keep OSX-based buildfarm members from having problems with old branches.

src/interfaces/ecpg/preproc/extern.h
src/interfaces/ecpg/preproc/preproc.y

index 3581b35e3e1a10c784562936268a1416754a4af1..46a93f8fac2635553d21e63550f2432631dfc35f 100644 (file)
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/extern.h,v 1.63 2006/03/11 04:38:40 momjian Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/extern.h,v 1.63.2.1 2009/09/08 04:25:40 tgl Exp $ */
 
 #ifndef _ECPG_PREPROC_EXTERN_H
 #define _ECPG_PREPROC_EXTERN_H
@@ -32,8 +32,7 @@ extern char *yytext,
 #ifdef YYDEBUG
 extern int yydebug;
 #endif
-extern int yylineno,
-           yyleng;
+extern int yylineno;
 extern FILE *yyin,
           *yyout;
 
index 4161d071962aebd397a3ba5eed92e8d2034fb25a..64806cd051e028a9a3f976843566ef9246fc8a8d 100644 (file)
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/preproc.y,v 1.339.2.5 2008/10/10 12:19:47 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/preproc.y,v 1.339.2.6 2009/09/08 04:25:41 tgl Exp $ */
 
 /* Copyright comment */
 %{
@@ -164,11 +164,7 @@ make3_str(char *str1, char *str2, char *str3)
 static char *
 make_name(void)
 {
-   char * name = (char *)mm_alloc(yyleng + 1);
-
-   strncpy(name, yytext, yyleng);
-   name[yyleng] = '\0';
-   return(name);
+   return mm_strdup(yytext);
 }
 
 static char *