mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-27 08:39:28 +08:00
148 lines
3.6 KiB
Plaintext
148 lines
3.6 KiB
Plaintext
From: ernst.molitor@uni-bonn.de
|
|
|
|
Hi,
|
|
|
|
thank you for the latest Postgres95 distribution!
|
|
|
|
>does the createuser bug still persist, or have
|
|
>we finally worked that one out?
|
|
|
|
As has been indication by Bruce Momjian, the createuser problem was
|
|
caused by a bug in flex 2.5.3 (which has been confirmed by Vern
|
|
Paxson, the flex maintainer - many thanks to them); the bug will be
|
|
fixed in flex 2.5.4. Vern Paxson has been so kind as to supply me with
|
|
a patch that will be part of the 2.5.4 release; I'm including it below
|
|
in case someone has installed flex 2.5.3 and doesn't want to go
|
|
back to 2.5.2...
|
|
|
|
Regards,
|
|
|
|
Ernst
|
|
---
|
|
*** flex-2.5.3/flex.skl Sat May 25 21:02:33 1996
|
|
--- flex.skl Tue Jul 2 16:35:49 1996
|
|
***************
|
|
*** 1,7 ****
|
|
/* A lexical scanner generated by flex */
|
|
|
|
/* Scanner skeleton version:
|
|
! * $Header: /cvsroot/pgsql/doc/Attic/README.flex,v 1.1.1.1 1996/08/18 22:14:17 scrappy Exp $
|
|
*/
|
|
|
|
#define FLEX_SCANNER
|
|
--- 1,7 ----
|
|
/* A lexical scanner generated by flex */
|
|
|
|
/* Scanner skeleton version:
|
|
! * $Header: /cvsroot/pgsql/doc/Attic/README.flex,v 1.1.1.1 1996/08/18 22:14:17 scrappy Exp $
|
|
*/
|
|
|
|
#define FLEX_SCANNER
|
|
***************
|
|
*** 783,789 ****
|
|
/* don't do the read, it's not guaranteed to return an EOF,
|
|
* just force an EOF
|
|
*/
|
|
! yy_n_chars = 0;
|
|
|
|
else
|
|
{
|
|
--- 783,789 ----
|
|
/* don't do the read, it's not guaranteed to return an EOF,
|
|
* just force an EOF
|
|
*/
|
|
! yy_current_buffer->yy_n_chars = yy_n_chars = 0;
|
|
|
|
else
|
|
{
|
|
***************
|
|
*** 838,843 ****
|
|
--- 838,845 ----
|
|
/* Read in more data. */
|
|
YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
|
|
yy_n_chars, num_to_read );
|
|
+
|
|
+ yy_current_buffer->yy_n_chars = yy_n_chars;
|
|
}
|
|
|
|
if ( yy_n_chars == 0 )
|
|
***************
|
|
*** 947,953 ****
|
|
|
|
yy_cp += (int) (dest - source);
|
|
yy_bp += (int) (dest - source);
|
|
! yy_n_chars = yy_current_buffer->yy_buf_size;
|
|
|
|
if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
|
|
YY_FATAL_ERROR( "flex scanner push-back overflow" );
|
|
--- 949,956 ----
|
|
|
|
yy_cp += (int) (dest - source);
|
|
yy_bp += (int) (dest - source);
|
|
! yy_current_buffer->yy_n_chars =
|
|
! yy_n_chars = yy_current_buffer->yy_buf_size;
|
|
|
|
if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
|
|
YY_FATAL_ERROR( "flex scanner push-back overflow" );
|
|
***************
|
|
*** 997,1009 ****
|
|
|
|
switch ( yy_get_next_buffer() )
|
|
{
|
|
case EOB_ACT_END_OF_FILE:
|
|
{
|
|
if ( yywrap() )
|
|
- {
|
|
- yy_c_buf_p = yytext_ptr + offset;
|
|
return EOF;
|
|
- }
|
|
|
|
if ( ! yy_did_buffer_switch_on_eof )
|
|
YY_NEW_FILE;
|
|
--- 1000,1025 ----
|
|
|
|
switch ( yy_get_next_buffer() )
|
|
{
|
|
+ case EOB_ACT_LAST_MATCH:
|
|
+ /* This happens because yy_g_n_b()
|
|
+ * sees that we've accumulated a
|
|
+ * token and flags that we need to
|
|
+ * try matching the token before
|
|
+ * proceeding. But for input(),
|
|
+ * there's no matching to consider.
|
|
+ * So convert the EOB_ACT_LAST_MATCH
|
|
+ * to EOB_ACT_END_OF_FILE.
|
|
+ */
|
|
+
|
|
+ /* Reset buffer status. */
|
|
+ yyrestart( yyin );
|
|
+
|
|
+ /* fall through */
|
|
+
|
|
case EOB_ACT_END_OF_FILE:
|
|
{
|
|
if ( yywrap() )
|
|
return EOF;
|
|
|
|
if ( ! yy_did_buffer_switch_on_eof )
|
|
YY_NEW_FILE;
|
|
***************
|
|
*** 1017,1031 ****
|
|
case EOB_ACT_CONTINUE_SCAN:
|
|
yy_c_buf_p = yytext_ptr + offset;
|
|
break;
|
|
-
|
|
- case EOB_ACT_LAST_MATCH:
|
|
- #ifdef __cplusplus
|
|
- YY_FATAL_ERROR(
|
|
- "unexpected last match in yyinput()" );
|
|
- #else
|
|
- YY_FATAL_ERROR(
|
|
- "unexpected last match in input()" );
|
|
- #endif
|
|
}
|
|
}
|
|
}
|
|
--- 1033,1038 ----
|
|
|