From d3fe721a40b153c59595926afea9ec6475fdd000 Mon Sep 17 00:00:00 2001
From: Teodor Sigaev <teodor@sigaev.ru>
Date: Fri, 15 Aug 2003 13:44:35 +0000
Subject: [PATCH] Eliminate function start_parse_fh and macro YY_INPUT

---
 contrib/tsearch/parser.h             |  1 -
 contrib/tsearch/parser.l             | 39 ----------------------------
 contrib/tsearch2/wordparser/parser.h |  1 -
 contrib/tsearch2/wordparser/parser.l | 38 ---------------------------
 4 files changed, 79 deletions(-)

diff --git a/contrib/tsearch/parser.h b/contrib/tsearch/parser.h
index f3aa0b8c06..469b9c043f 100644
--- a/contrib/tsearch/parser.h
+++ b/contrib/tsearch/parser.h
@@ -5,7 +5,6 @@ char	   *token;
 int			tokenlen;
 int			tsearch_yylex(void);
 void		start_parse_str(char *, int);
-void		start_parse_fh(FILE *, int);
 void		end_parse(void);
 
 #endif
diff --git a/contrib/tsearch/parser.l b/contrib/tsearch/parser.l
index 4323bda7ef..2bf3dcba07 100644
--- a/contrib/tsearch/parser.l
+++ b/contrib/tsearch/parser.l
@@ -22,36 +22,6 @@ char *s     = NULL;  /* to return WHOLE hyphenated-word */
 
 YY_BUFFER_STATE buf = NULL; /* buffer to parse; it need for parse from string */
 
-int lrlimit = -1;	/* for limiting read from filehandle ( -1 - unlimited read ) */
-int bytestoread = 0;	/* for limiting read from filehandle */
-
-/* redefine macro for read limited length */
-#define YY_INPUT(buf,result,max_size) \
-	if ( yy_current_buffer->yy_is_interactive ) { \
-                int c = '*', n; \
-                for ( n = 0; n < max_size && \
-                             (c = getc( tsearch_yyin )) != EOF && c != '\n'; ++n ) \
-                        buf[n] = (char) c; \
-                if ( c == '\n' ) \
-                        buf[n++] = (char) c; \
-                if ( c == EOF && ferror( tsearch_yyin ) ) \
-                        YY_FATAL_ERROR( "input in flex scanner failed" ); \
-                result = n; \
-        }  else { \
-		if ( lrlimit == 0 ) \
-			result=YY_NULL; \
-		else { \
-			if ( lrlimit>0 ) { \
-				bytestoread = ( lrlimit > max_size ) ? max_size : lrlimit; \
-				lrlimit -= bytestoread; \
-			} else \
-				bytestoread = max_size; \
-        		if ( ((result = fread( buf, 1, bytestoread, tsearch_yyin )) == 0) \
-                  		&& ferror( tsearch_yyin ) ) \
-                		YY_FATAL_ERROR( "input in flex scanner failed" ); \
-		} \
-	}
-
 %}
 
 %option 8bit
@@ -327,13 +297,4 @@ void start_parse_str(char* str, int limit) {
 	BEGIN INITIAL;
 }
 
-/* start parse from filehandle */
-void start_parse_fh( FILE* fh, int limit ) {
-	if (buf) end_parse();
-	lrlimit = ( limit ) ? limit : -1;
-	buf = tsearch_yy_create_buffer( fh, YY_BUF_SIZE );
-	tsearch_yy_switch_to_buffer( buf );
-	BEGIN INITIAL;
-}
-
 
diff --git a/contrib/tsearch2/wordparser/parser.h b/contrib/tsearch2/wordparser/parser.h
index 55cf0051ed..1ce1874197 100644
--- a/contrib/tsearch2/wordparser/parser.h
+++ b/contrib/tsearch2/wordparser/parser.h
@@ -5,7 +5,6 @@ char	   *token;
 int			tokenlen;
 int			tsearch2_yylex(void);
 void		start_parse_str(char *, int);
-void		start_parse_fh(FILE *, int);
 void		end_parse(void);
 
 #endif
diff --git a/contrib/tsearch2/wordparser/parser.l b/contrib/tsearch2/wordparser/parser.l
index 49824f5525..23cfedaa20 100644
--- a/contrib/tsearch2/wordparser/parser.l
+++ b/contrib/tsearch2/wordparser/parser.l
@@ -23,36 +23,6 @@ char *s     = NULL;  /* to return WHOLE hyphenated-word */
 
 YY_BUFFER_STATE buf = NULL; /* buffer to parse; it need for parse from string */
 
-int lrlimit = -1;	/* for limiting read from filehandle ( -1 - unlimited read ) */
-int bytestoread = 0;	/* for limiting read from filehandle */
-
-/* redefine macro for read limited length */
-#define YY_INPUT(buf,result,max_size) \
-	if ( yy_current_buffer->yy_is_interactive ) { \
-                int c = '*', n; \
-                for ( n = 0; n < max_size && \
-                             (c = getc( tsearch2_yyin )) != EOF && c != '\n'; ++n ) \
-                        buf[n] = (char) c; \
-                if ( c == '\n' ) \
-                        buf[n++] = (char) c; \
-                if ( c == EOF && ferror( tsearch2_yyin ) ) \
-                        YY_FATAL_ERROR( "input in flex scanner failed" ); \
-                result = n; \
-        }  else { \
-		if ( lrlimit == 0 ) \
-			result=YY_NULL; \
-		else { \
-			if ( lrlimit>0 ) { \
-				bytestoread = ( lrlimit > max_size ) ? max_size : lrlimit; \
-				lrlimit -= bytestoread; \
-			} else \
-				bytestoread = max_size; \
-        		if ( ((result = fread( buf, 1, bytestoread, tsearch2_yyin )) == 0) \
-                  		&& ferror( tsearch2_yyin ) ) \
-                		YY_FATAL_ERROR( "input in flex scanner failed" ); \
-		} \
-	}
-
 %}
 
 %option 8bit
@@ -334,13 +304,5 @@ void start_parse_str(char* str, int limit) {
 	BEGIN INITIAL;
 }
 
-/* start parse from filehandle */
-void start_parse_fh( FILE* fh, int limit ) {
-	if (buf) end_parse();
-	lrlimit = ( limit ) ? limit : -1;
-	buf = tsearch2_yy_create_buffer( fh, YY_BUF_SIZE );
-	tsearch2_yy_switch_to_buffer( buf );
-	BEGIN INITIAL;
-}