diff -cr flex-2.5.2/FlexLexer.h flex-2.5.3/FlexLexer.h
*** flex-2.5.2/FlexLexer.h	Mon Apr 24 13:25:59 1995
--- flex-2.5.3/FlexLexer.h	Sat May 25 20:43:25 1996
***************
*** 1,4 ****
! // $Header: /home/daffy/u0/vern/flex/RCS/FlexLexer.h,v 1.18 95/04/24 13:25:54 vern Exp $
  
  // FlexLexer.h -- define interfaces for lexical analyzer classes generated
  //		  by flex
--- 1,4 ----
! // $Header: /home/daffy/u0/vern/flex/RCS/FlexLexer.h,v 1.19 96/05/25 20:43:02 vern Exp $
  
  // FlexLexer.h -- define interfaces for lexical analyzer classes generated
  //		  by flex
***************
*** 178,183 ****
--- 178,185 ----
  
  	int yy_more_flag;
  	int yy_more_len;
+ 	int yy_more_offset;
+ 	int yy_prev_more_offset;
  };
  
  #endif
Common subdirectories: flex-2.5.2/MISC and flex-2.5.3/MISC
diff -cr flex-2.5.2/NEWS flex-2.5.3/NEWS
*** flex-2.5.2/NEWS	Mon Apr 24 13:26:09 1995
--- flex-2.5.3/NEWS	Wed May 29 12:25:20 1996
***************
*** 1,3 ****
--- 1,19 ----
+ Changes between release 2.5.3 (29May96) and release 2.5.2:
+ 
+ 	- Some serious bugs in yymore() have been fixed.  In particular,
+ 	  when using AT&T-lex-compatibility or %array, you can intermix
+ 	  calls to input(), unput(), and yymore().  (This still doesn't
+ 	  work for %pointer, and isn't likely to in the future.)
+ 
+ 	- A bug in handling NUL's in the input stream of scanners using
+ 	  REJECT has been fixed.
+ 
+ 	- The default main() in libfl.a now repeatedly calls yylex() until
+ 	  it returns 0, rather than just calling it once.
+ 
+ 	- Minor tweak for Windows NT Makefile, MISC/NT/Makefile.
+ 
+ 
  Changes between release 2.5.2 (25Apr95) and release 2.5.1:
  
  	- The --prefix configuration option now works.
diff -cr flex-2.5.2/flex.skl flex-2.5.3/flex.skl
*** flex-2.5.2/flex.skl	Mon Apr 24 10:48:52 1995
--- flex-2.5.3/flex.skl	Sat May 25 21:02:33 1996
***************
*** 1,7 ****
  /* A lexical scanner generated by flex */
  
  /* Scanner skeleton version:
!  * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.85 95/04/24 10:48:47 vern Exp $
   */
  
  #define FLEX_SCANNER
--- 1,7 ----
  /* A lexical scanner generated by flex */
  
  /* Scanner skeleton version:
!  * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.89 96/05/25 21:02:21 vern Exp $
   */
  
  #define FLEX_SCANNER
***************
*** 133,138 ****
--- 133,139 ----
  		{ \
  		/* Undo effects of setting up yytext. */ \
  		*yy_cp = yy_hold_char; \
+ 		YY_RESTORE_YY_MORE_OFFSET \
  		yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
  		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
  		} \
***************
*** 319,324 ****
--- 320,329 ----
  static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
  #endif
  
+ #ifdef YY_NEED_STRLEN
+ static int yy_flex_strlen YY_PROTO(( yyconst char * ));
+ #endif
+ 
  #ifndef YY_NO_INPUT
  %- Standard (non-C++) definition
  #ifdef __cplusplus
***************
*** 518,523 ****
--- 523,529 ----
  
  		/* Undo the effects of YY_DO_BEFORE_ACTION. */
  		*yy_cp = yy_hold_char;
+ 		YY_RESTORE_YY_MORE_OFFSET
  
  		if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
  			{
***************
*** 655,660 ****
--- 661,667 ----
  	yy_looking_for_trail_begin = 0;
  	yy_more_flag = 0;
  	yy_more_len = 0;
+ 	yy_more_offset = yy_prev_more_offset = 0;
  
  	yy_start_stack_ptr = yy_start_stack_depth = 0;
  	yy_start_stack = 0;
***************
*** 749,755 ****
  		{ /* Don't try to fill the buffer, so this is an EOF. */
  		if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
  			{
! 			/* We matched a singled characater, the EOB, so
  			 * treat this as a final EOF.
  			 */
  			return EOB_ACT_END_OF_FILE;
--- 756,762 ----
  		{ /* Don't try to fill the buffer, so this is an EOF. */
  		if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
  			{
! 			/* We matched a single character, the EOB, so
  			 * treat this as a final EOF.
  			 */
  			return EOB_ACT_END_OF_FILE;
***************
*** 985,991 ****
  
  		else
  			{ /* need more input */
! 			yytext_ptr = yy_c_buf_p;
  			++yy_c_buf_p;
  
  			switch ( yy_get_next_buffer() )
--- 992,998 ----
  
  		else
  			{ /* need more input */
! 			int offset = yy_c_buf_p - yytext_ptr;
  			++yy_c_buf_p;
  
  			switch ( yy_get_next_buffer() )
***************
*** 994,1001 ****
  					{
  					if ( yywrap() )
  						{
! 						yy_c_buf_p =
! 						yytext_ptr + YY_MORE_ADJ;
  						return EOF;
  						}
  
--- 1001,1007 ----
  					{
  					if ( yywrap() )
  						{
! 						yy_c_buf_p = yytext_ptr + offset;
  						return EOF;
  						}
  
***************
*** 1009,1015 ****
  					}
  
  				case EOB_ACT_CONTINUE_SCAN:
! 					yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
  					break;
  
  				case EOB_ACT_LAST_MATCH:
--- 1015,1021 ----
  					}
  
  				case EOB_ACT_CONTINUE_SCAN:
! 					yy_c_buf_p = yytext_ptr + offset;
  					break;
  
  				case EOB_ACT_LAST_MATCH:
***************
*** 1435,1441 ****
  		{ \
  		/* Undo effects of setting up yytext. */ \
  		yytext[yyleng] = yy_hold_char; \
! 		yy_c_buf_p = yytext + n - YY_MORE_ADJ; \
  		yy_hold_char = *yy_c_buf_p; \
  		*yy_c_buf_p = '\0'; \
  		yyleng = n; \
--- 1441,1447 ----
  		{ \
  		/* Undo effects of setting up yytext. */ \
  		yytext[yyleng] = yy_hold_char; \
! 		yy_c_buf_p = yytext + n; \
  		yy_hold_char = *yy_c_buf_p; \
  		*yy_c_buf_p = '\0'; \
  		yyleng = n; \
***************
*** 1458,1463 ****
--- 1464,1485 ----
  	register int i;
  	for ( i = 0; i < n; ++i )
  		s1[i] = s2[i];
+ 	}
+ #endif
+ 
+ #ifdef YY_NEED_STRLEN
+ #ifdef YY_USE_PROTOS
+ static int yy_flex_strlen( yyconst char *s )
+ #else
+ static int yy_flex_strlen( s )
+ yyconst char *s;
+ #endif
+ 	{
+ 	register int n;
+ 	for ( n = 0; s[n]; ++n )
+ 		;
+ 
+ 	return n;
  	}
  #endif
  
diff -cr flex-2.5.2/gen.c flex-2.5.3/gen.c
*** flex-2.5.2/gen.c	Thu Apr 20 11:17:12 1995
--- flex-2.5.3/gen.c	Sat May 25 20:43:44 1996
***************
*** 26,32 ****
   * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   */
  
! /* $Header: /home/daffy/u0/vern/flex/RCS/gen.c,v 2.54 95/04/20 11:17:08 vern Exp $ */
  
  #include "flexdef.h"
  
--- 26,32 ----
   * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   */
  
! /* $Header: /home/daffy/u0/vern/flex/RCS/gen.c,v 2.56 96/05/25 20:43:38 vern Exp $ */
  
  #include "flexdef.h"
  
***************
*** 713,724 ****
  		(void) sprintf( NUL_ec_str, "%d", NUL_ec );
  		gen_next_compressed_state( NUL_ec_str );
  
- 		if ( reject )
- 			indent_puts( "*yy_state_ptr++ = yy_current_state;" );
- 
  		do_indent();
- 
  		out_dec( "yy_is_jam = (yy_current_state == %d);\n", jamstate );
  		}
  
  	/* If we've entered an accepting state, back up; note that
--- 713,732 ----
  		(void) sprintf( NUL_ec_str, "%d", NUL_ec );
  		gen_next_compressed_state( NUL_ec_str );
  
  		do_indent();
  		out_dec( "yy_is_jam = (yy_current_state == %d);\n", jamstate );
+ 
+ 		if ( reject )
+ 			{
+ 			/* Only stack this state if it's a transition we
+ 			 * actually make.  If we stack it on a jam, then
+ 			 * the state stack and yy_c_buf_p get out of sync.
+ 			 */
+ 			indent_puts( "if ( ! yy_is_jam )" );
+ 			indent_up();
+ 			indent_puts( "*yy_state_ptr++ = yy_current_state;" );
+ 			indent_down();
+ 			}
  		}
  
  	/* If we've entered an accepting state, back up; note that
***************
*** 1058,1064 ****
  	 */
  	set_indent( 1 );
  
! 	if ( yymore_used )
  		{
  		indent_puts( "yytext_ptr -= yy_more_len; \\" );
  		indent_puts( "yyleng = (int) (yy_cp - yytext_ptr); \\" );
--- 1066,1072 ----
  	 */
  	set_indent( 1 );
  
! 	if ( yymore_used && ! yytext_is_array )
  		{
  		indent_puts( "yytext_ptr -= yy_more_len; \\" );
  		indent_puts( "yyleng = (int) (yy_cp - yytext_ptr); \\" );
***************
*** 1071,1083 ****
  	skelout();
  	if ( yytext_is_array )
  		{
! 		indent_puts( "if ( yyleng >= YYLMAX ) \\" );
  		indent_up();
  		indent_puts(
  		"YY_FATAL_ERROR( \"token too large, exceeds YYLMAX\" ); \\" );
  		indent_down();
! 		indent_puts(
  		"yy_flex_strncpy( yytext, yytext_ptr, yyleng + 1 ); \\" );
  		}
  
  	set_indent( 0 );
--- 1079,1109 ----
  	skelout();
  	if ( yytext_is_array )
  		{
! 		if ( yymore_used )
! 			indent_puts(
! 				"if ( yyleng + yy_more_offset >= YYLMAX ) \\" );
! 		else
! 			indent_puts( "if ( yyleng >= YYLMAX ) \\" );
! 
  		indent_up();
  		indent_puts(
  		"YY_FATAL_ERROR( \"token too large, exceeds YYLMAX\" ); \\" );
  		indent_down();
! 
! 		if ( yymore_used )
! 			{
! 			indent_puts(
! "yy_flex_strncpy( &yytext[yy_more_offset], yytext_ptr, yyleng + 1 ); \\" );
! 			indent_puts( "yyleng += yy_more_offset; \\" );
! 			indent_puts(
! 				"yy_prev_more_offset = yy_more_offset; \\" );
! 			indent_puts( "yy_more_offset = 0; \\" );
! 			}
! 		else
! 			{
! 			indent_puts(
  		"yy_flex_strncpy( yytext, yytext_ptr, yyleng + 1 ); \\" );
+ 			}
  		}
  
  	set_indent( 0 );
***************
*** 1236,1247 ****
  		{
  		if ( ! C_plus_plus )
  			{
! 			indent_puts( "static int yy_more_flag = 0;" );
! 			indent_puts( "static int yy_more_len = 0;" );
  			}
  
! 		indent_puts( "#define yymore() (yy_more_flag = 1)" );
! 		indent_puts( "#define YY_MORE_ADJ yy_more_len" );
  		}
  
  	else
--- 1262,1300 ----
  		{
  		if ( ! C_plus_plus )
  			{
! 			if ( yytext_is_array )
! 				{
! 				indent_puts( "static int yy_more_offset = 0;" );
! 				indent_puts(
! 					"static int yy_prev_more_offset = 0;" );
! 				}
! 			else
! 				{
! 				indent_puts( "static int yy_more_flag = 0;" );
! 				indent_puts( "static int yy_more_len = 0;" );
! 				}
  			}
  
! 		if ( yytext_is_array )
! 			{
! 			indent_puts(
! 	"#define yymore() (yy_more_offset = yy_flex_strlen( yytext ))" );
! 			indent_puts( "#define YY_NEED_STRLEN" );
! 			indent_puts( "#define YY_MORE_ADJ 0" );
! 			indent_puts( "#define YY_RESTORE_YY_MORE_OFFSET \\" );
! 			indent_up();
! 			indent_puts( "{ \\" );
! 			indent_puts( "yy_more_offset = yy_prev_more_offset; \\" );
! 			indent_puts( "yyleng -= yy_more_offset; \\" );
! 			indent_puts( "}" );
! 			indent_down();
! 			}
! 		else
! 			{
! 			indent_puts( "#define yymore() (yy_more_flag = 1)" );
! 			indent_puts( "#define YY_MORE_ADJ yy_more_len" );
! 			indent_puts( "#define YY_RESTORE_YY_MORE_OFFSET" );
! 			}
  		}
  
  	else
***************
*** 1248,1253 ****
--- 1301,1307 ----
  		{
  		indent_puts( "#define yymore() yymore_used_but_not_detected" );
  		indent_puts( "#define YY_MORE_ADJ 0" );
+ 		indent_puts( "#define YY_RESTORE_YY_MORE_OFFSET" );
  		}
  
  	if ( ! C_plus_plus )
***************
*** 1331,1343 ****
  
  	set_indent( 2 );
  
! 	if ( yymore_used )
  		{
  		indent_puts( "yy_more_len = 0;" );
  		indent_puts( "if ( yy_more_flag )" );
  		indent_up();
  		indent_puts( "{" );
! 		indent_puts( "yy_more_len = yyleng;" );
  		indent_puts( "yy_more_flag = 0;" );
  		indent_puts( "}" );
  		indent_down();
--- 1385,1397 ----
  
  	set_indent( 2 );
  
! 	if ( yymore_used && ! yytext_is_array )
  		{
  		indent_puts( "yy_more_len = 0;" );
  		indent_puts( "if ( yy_more_flag )" );
  		indent_up();
  		indent_puts( "{" );
! 		indent_puts( "yy_more_len = yy_c_buf_p - yytext_ptr;" );
  		indent_puts( "yy_more_flag = 0;" );
  		indent_puts( "}" );
  		indent_down();
diff -cr flex-2.5.2/initscan.c flex-2.5.3/initscan.c
*** flex-2.5.2/initscan.c	Mon Apr 24 12:17:25 1995
--- flex-2.5.3/initscan.c	Sat May 25 21:03:45 1996
***************
*** 2,8 ****
  /* A lexical scanner generated by flex */
  
  /* Scanner skeleton version:
!  * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.85 95/04/24 10:48:47 vern Exp $
   */
  
  #define FLEX_SCANNER
--- 2,8 ----
  /* A lexical scanner generated by flex */
  
  /* Scanner skeleton version:
!  * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.89 96/05/25 21:02:21 vern Exp $
   */
  
  #define FLEX_SCANNER
***************
*** 127,132 ****
--- 127,133 ----
  		{ \
  		/* Undo effects of setting up yytext. */ \
  		*yy_cp = yy_hold_char; \
+ 		YY_RESTORE_YY_MORE_OFFSET \
  		yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
  		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
  		} \
***************
*** 1237,1242 ****
--- 1238,1244 ----
  #define REJECT reject_used_but_not_detected
  #define yymore() yymore_used_but_not_detected
  #define YY_MORE_ADJ 0
+ #define YY_RESTORE_YY_MORE_OFFSET
  char *yytext;
  #line 1 "scan.l"
  #define INITIAL 0
***************
*** 1327,1333 ****
  #define OPTION 17
  #define LINEDIR 18
  
! #line 1331 "scan.c"
  
  /* Macros after this point can all be overridden by user definitions in
   * section 1.
--- 1329,1335 ----
  #define OPTION 17
  #define LINEDIR 18
  
! #line 1333 "scan.c"
  
  /* Macros after this point can all be overridden by user definitions in
   * section 1.
***************
*** 1349,1354 ****
--- 1351,1360 ----
  static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
  #endif
  
+ #ifdef YY_NEED_STRLEN
+ static int yy_flex_strlen YY_PROTO(( yyconst char * ));
+ #endif
+ 
  #ifndef YY_NO_INPUT
  #ifdef __cplusplus
  static int yyinput YY_PROTO(( void ));
***************
*** 1488,1494 ****
  	Char nmdef[MAXLINE], myesc();
  
  
! #line 1492 "scan.c"
  
  	if ( yy_init )
  		{
--- 1494,1500 ----
  	Char nmdef[MAXLINE], myesc();
  
  
! #line 1498 "scan.c"
  
  	if ( yy_init )
  		{
***************
*** 2726,2732 ****
  #line 650 "scan.l"
  YY_FATAL_ERROR( "flex scanner jammed" );
  	YY_BREAK
! #line 2730 "scan.c"
  case YY_STATE_EOF(INITIAL):
  case YY_STATE_EOF(SECT2):
  case YY_STATE_EOF(CODEBLOCK):
--- 2732,2738 ----
  #line 650 "scan.l"
  YY_FATAL_ERROR( "flex scanner jammed" );
  	YY_BREAK
! #line 2736 "scan.c"
  case YY_STATE_EOF(INITIAL):
  case YY_STATE_EOF(SECT2):
  case YY_STATE_EOF(CODEBLOCK):
***************
*** 2750,2755 ****
--- 2756,2762 ----
  
  		/* Undo the effects of YY_DO_BEFORE_ACTION. */
  		*yy_cp = yy_hold_char;
+ 		YY_RESTORE_YY_MORE_OFFSET
  
  		if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
  			{
***************
*** 2895,2901 ****
  		{ /* Don't try to fill the buffer, so this is an EOF. */
  		if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
  			{
! 			/* We matched a singled characater, the EOB, so
  			 * treat this as a final EOF.
  			 */
  			return EOB_ACT_END_OF_FILE;
--- 2902,2908 ----
  		{ /* Don't try to fill the buffer, so this is an EOF. */
  		if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
  			{
! 			/* We matched a single character, the EOB, so
  			 * treat this as a final EOF.
  			 */
  			return EOB_ACT_END_OF_FILE;
***************
*** 3140,3146 ****
  
  		else
  			{ /* need more input */
! 			yytext_ptr = yy_c_buf_p;
  			++yy_c_buf_p;
  
  			switch ( yy_get_next_buffer() )
--- 3147,3153 ----
  
  		else
  			{ /* need more input */
! 			int offset = yy_c_buf_p - yytext_ptr;
  			++yy_c_buf_p;
  
  			switch ( yy_get_next_buffer() )
***************
*** 3149,3156 ****
  					{
  					if ( yywrap() )
  						{
! 						yy_c_buf_p =
! 						yytext_ptr + YY_MORE_ADJ;
  						return EOF;
  						}
  
--- 3156,3162 ----
  					{
  					if ( yywrap() )
  						{
! 						yy_c_buf_p = yytext_ptr + offset;
  						return EOF;
  						}
  
***************
*** 3164,3170 ****
  					}
  
  				case EOB_ACT_CONTINUE_SCAN:
! 					yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
  					break;
  
  				case EOB_ACT_LAST_MATCH:
--- 3170,3176 ----
  					}
  
  				case EOB_ACT_CONTINUE_SCAN:
! 					yy_c_buf_p = yytext_ptr + offset;
  					break;
  
  				case EOB_ACT_LAST_MATCH:
***************
*** 3529,3535 ****
  		{ \
  		/* Undo effects of setting up yytext. */ \
  		yytext[yyleng] = yy_hold_char; \
! 		yy_c_buf_p = yytext + n - YY_MORE_ADJ; \
  		yy_hold_char = *yy_c_buf_p; \
  		*yy_c_buf_p = '\0'; \
  		yyleng = n; \
--- 3535,3541 ----
  		{ \
  		/* Undo effects of setting up yytext. */ \
  		yytext[yyleng] = yy_hold_char; \
! 		yy_c_buf_p = yytext + n; \
  		yy_hold_char = *yy_c_buf_p; \
  		*yy_c_buf_p = '\0'; \
  		yyleng = n; \
***************
*** 3552,3557 ****
--- 3558,3579 ----
  	register int i;
  	for ( i = 0; i < n; ++i )
  		s1[i] = s2[i];
+ 	}
+ #endif
+ 
+ #ifdef YY_NEED_STRLEN
+ #ifdef YY_USE_PROTOS
+ static int yy_flex_strlen( yyconst char *s )
+ #else
+ static int yy_flex_strlen( s )
+ yyconst char *s;
+ #endif
+ 	{
+ 	register int n;
+ 	for ( n = 0; s[n]; ++n )
+ 		;
+ 
+ 	return n;
  	}
  #endif
  
diff -cr flex-2.5.2/libmain.c flex-2.5.3/libmain.c
*** flex-2.5.2/libmain.c	Thu Sep 16 20:32:36 1993
--- flex-2.5.3/libmain.c	Wed Sep 27 12:48:05 1995
***************
*** 1,6 ****
  /* libmain - flex run-time support library "main" function */
  
! /* $Header: /home/daffy/u0/vern/flex/RCS/libmain.c,v 1.3 93/04/14 22:41:55 vern Exp $ */
  
  extern int yylex();
  
--- 1,6 ----
  /* libmain - flex run-time support library "main" function */
  
! /* $Header: /home/daffy/u0/vern/flex/RCS/libmain.c,v 1.4 95/09/27 12:47:55 vern Exp $ */
  
  extern int yylex();
  
***************
*** 8,12 ****
  int argc;
  char *argv[];
  	{
! 	return yylex();
  	}
--- 8,15 ----
  int argc;
  char *argv[];
  	{
! 	while ( yylex() != 0 )
! 		;
! 
! 	return 0;
  	}
diff -cr flex-2.5.2/main.c flex-2.5.3/main.c
*** flex-2.5.2/main.c	Thu Apr 20 13:53:26 1995
--- flex-2.5.3/main.c	Sat May 25 20:42:56 1996
***************
*** 32,38 ****
   All rights reserved.\n";
  #endif /* not lint */
  
! /* $Header: /home/daffy/u0/vern/flex/RCS/main.c,v 2.63 95/04/20 13:53:23 vern Exp $ */
  
  
  #include "flexdef.h"
--- 32,38 ----
   All rights reserved.\n";
  #endif /* not lint */
  
! /* $Header: /home/daffy/u0/vern/flex/RCS/main.c,v 2.64 96/05/25 20:42:42 vern Exp $ */
  
  
  #include "flexdef.h"
***************
*** 585,591 ****
  char **argv;
  	{
  	int i, sawcmpflag;
! 	char *arg, *mktemp();
  
  	printstats = syntaxerror = trace = spprdflt = caseins = false;
  	lex_compat = C_plus_plus = backing_up_report = ddebug = fulltbl = false;
--- 585,591 ----
  char **argv;
  	{
  	int i, sawcmpflag;
! 	char *arg;
  
  	printstats = syntaxerror = trace = spprdflt = caseins = false;
  	lex_compat = C_plus_plus = backing_up_report = ddebug = fulltbl = false;
diff -cr flex-2.5.2/skel.c flex-2.5.3/skel.c
*** flex-2.5.2/skel.c	Mon Apr 24 10:49:12 1995
--- flex-2.5.3/skel.c	Sat May 25 21:03:18 1996
***************
*** 6,12 ****
    "/* A lexical scanner generated by flex */",
    "",
    "/* Scanner skeleton version:",
!   " * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.85 95/04/24 10:48:47 vern Exp $",
    " */",
    "",
    "#define FLEX_SCANNER",
--- 6,12 ----
    "/* A lexical scanner generated by flex */",
    "",
    "/* Scanner skeleton version:",
!   " * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.89 96/05/25 21:02:21 vern Exp $",
    " */",
    "",
    "#define FLEX_SCANNER",
***************
*** 138,143 ****
--- 138,144 ----
    "		{ \\",
    "		/* Undo effects of setting up yytext. */ \\",
    "		*yy_cp = yy_hold_char; \\",
+   "		YY_RESTORE_YY_MORE_OFFSET \\",
    "		yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \\",
    "		YY_DO_BEFORE_ACTION; /* set up yytext again */ \\",
    "		} \\",
***************
*** 324,329 ****
--- 325,334 ----
    "static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));",
    "#endif",
    "",
+   "#ifdef YY_NEED_STRLEN",
+   "static int yy_flex_strlen YY_PROTO(( yyconst char * ));",
+   "#endif",
+   "",
    "#ifndef YY_NO_INPUT",
    "%- Standard (non-C++) definition",
    "#ifdef __cplusplus",
***************
*** 523,528 ****
--- 528,534 ----
    "",
    "		/* Undo the effects of YY_DO_BEFORE_ACTION. */",
    "		*yy_cp = yy_hold_char;",
+   "		YY_RESTORE_YY_MORE_OFFSET",
    "",
    "		if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )",
    "			{",
***************
*** 660,665 ****
--- 666,672 ----
    "	yy_looking_for_trail_begin = 0;",
    "	yy_more_flag = 0;",
    "	yy_more_len = 0;",
+   "	yy_more_offset = yy_prev_more_offset = 0;",
    "",
    "	yy_start_stack_ptr = yy_start_stack_depth = 0;",
    "	yy_start_stack = 0;",
***************
*** 754,760 ****
    "		{ /* Don't try to fill the buffer, so this is an EOF. */",
    "		if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )",
    "			{",
!   "			/* We matched a singled characater, the EOB, so",
    "			 * treat this as a final EOF.",
    "			 */",
    "			return EOB_ACT_END_OF_FILE;",
--- 761,767 ----
    "		{ /* Don't try to fill the buffer, so this is an EOF. */",
    "		if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )",
    "			{",
!   "			/* We matched a single character, the EOB, so",
    "			 * treat this as a final EOF.",
    "			 */",
    "			return EOB_ACT_END_OF_FILE;",
***************
*** 990,996 ****
    "",
    "		else",
    "			{ /* need more input */",
!   "			yytext_ptr = yy_c_buf_p;",
    "			++yy_c_buf_p;",
    "",
    "			switch ( yy_get_next_buffer() )",
--- 997,1003 ----
    "",
    "		else",
    "			{ /* need more input */",
!   "			int offset = yy_c_buf_p - yytext_ptr;",
    "			++yy_c_buf_p;",
    "",
    "			switch ( yy_get_next_buffer() )",
***************
*** 999,1006 ****
    "					{",
    "					if ( yywrap() )",
    "						{",
!   "						yy_c_buf_p =",
!   "						yytext_ptr + YY_MORE_ADJ;",
    "						return EOF;",
    "						}",
    "",
--- 1006,1012 ----
    "					{",
    "					if ( yywrap() )",
    "						{",
!   "						yy_c_buf_p = yytext_ptr + offset;",
    "						return EOF;",
    "						}",
    "",
***************
*** 1014,1020 ****
    "					}",
    "",
    "				case EOB_ACT_CONTINUE_SCAN:",
!   "					yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;",
    "					break;",
    "",
    "				case EOB_ACT_LAST_MATCH:",
--- 1020,1026 ----
    "					}",
    "",
    "				case EOB_ACT_CONTINUE_SCAN:",
!   "					yy_c_buf_p = yytext_ptr + offset;",
    "					break;",
    "",
    "				case EOB_ACT_LAST_MATCH:",
***************
*** 1440,1446 ****
    "		{ \\",
    "		/* Undo effects of setting up yytext. */ \\",
    "		yytext[yyleng] = yy_hold_char; \\",
!   "		yy_c_buf_p = yytext + n - YY_MORE_ADJ; \\",
    "		yy_hold_char = *yy_c_buf_p; \\",
    "		*yy_c_buf_p = '\\0'; \\",
    "		yyleng = n; \\",
--- 1446,1452 ----
    "		{ \\",
    "		/* Undo effects of setting up yytext. */ \\",
    "		yytext[yyleng] = yy_hold_char; \\",
!   "		yy_c_buf_p = yytext + n; \\",
    "		yy_hold_char = *yy_c_buf_p; \\",
    "		*yy_c_buf_p = '\\0'; \\",
    "		yyleng = n; \\",
***************
*** 1463,1468 ****
--- 1469,1490 ----
    "	register int i;",
    "	for ( i = 0; i < n; ++i )",
    "		s1[i] = s2[i];",
+   "	}",
+   "#endif",
+   "",
+   "#ifdef YY_NEED_STRLEN",
+   "#ifdef YY_USE_PROTOS",
+   "static int yy_flex_strlen( yyconst char *s )",
+   "#else",
+   "static int yy_flex_strlen( s )",
+   "yyconst char *s;",
+   "#endif",
+   "	{",
+   "	register int n;",
+   "	for ( n = 0; s[n]; ++n )",
+   "		;",
+   "",
+   "	return n;",
    "	}",
    "#endif",
    "",
diff -cr flex-2.5.2/version.h flex-2.5.3/version.h
*** flex-2.5.2/version.h	Thu Apr 20 13:57:32 1995
--- flex-2.5.3/version.h	Wed May 29 11:59:16 1996
***************
*** 1 ****
! #define FLEX_VERSION "2.5.2"
--- 1 ----
! #define FLEX_VERSION "2.5.3"
Common subdirectories: flex-2.5.2/MISC/Amiga and flex-2.5.3/MISC/Amiga
Common subdirectories: flex-2.5.2/MISC/Atari and flex-2.5.3/MISC/Atari
Common subdirectories: flex-2.5.2/MISC/Borland and flex-2.5.3/MISC/Borland
Common subdirectories: flex-2.5.2/MISC/Borland.old and flex-2.5.3/MISC/Borland.old
Common subdirectories: flex-2.5.2/MISC/MSDOS and flex-2.5.3/MISC/MSDOS
Common subdirectories: flex-2.5.2/MISC/MVS and flex-2.5.3/MISC/MVS
Common subdirectories: flex-2.5.2/MISC/Macintosh and flex-2.5.3/MISC/Macintosh
Common subdirectories: flex-2.5.2/MISC/NT and flex-2.5.3/MISC/NT
Common subdirectories: flex-2.5.2/MISC/OS2 and flex-2.5.3/MISC/OS2
Common subdirectories: flex-2.5.2/MISC/VMS and flex-2.5.3/MISC/VMS
Common subdirectories: flex-2.5.2/MISC/fastwc and flex-2.5.3/MISC/fastwc
Common subdirectories: flex-2.5.2/MISC/texinfo and flex-2.5.3/MISC/texinfo
diff -cr flex-2.5.2/MISC/NT/Makefile flex-2.5.3/MISC/NT/Makefile
*** flex-2.5.2/MISC/NT/Makefile	Tue Mar 28 10:22:02 1995
--- flex-2.5.3/MISC/NT/Makefile	Wed Aug 16 12:05:48 1995
***************
*** 73,80 ****
  
  parse.h parse.c : parse.y
          $(YACC) -d parse.y
!         @mv y_tab.c parse.c
!         @mv y_tab.h parse.h
  
  scan.c : scan.l
          $(FLEX) $(FLEX_FLAGS) $(COMPRESSION) scan.l >scan.c
--- 73,80 ----
  
  parse.h parse.c : parse.y
          $(YACC) -d parse.y
!         @move y_tab.c parse.c
!         @move y_tab.h parse.h
  
  scan.c : scan.l
          $(FLEX) $(FLEX_FLAGS) $(COMPRESSION) scan.l >scan.c
