diff -u filtergen-0.12.4/scanner.c filtergen-0.12.4/scanner.c --- filtergen-0.12.4/scanner.c +++ filtergen-0.12.4/scanner.c @@ -1,5 +1,6 @@ +#line 2 "scanner.c" -#line 3 "scanner.c" +#line 4 "scanner.c" #define YY_INT_ALIGNED short int @@ -8,7 +9,7 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 31 +#define YY_FLEX_SUBMINOR_VERSION 35 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -30,7 +31,15 @@ /* C99 systems have . Non-C99 systems may or may not. */ -#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L +#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + +/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, + * if you want the limit (max/min) macros for int types. + */ +#ifndef __STDC_LIMIT_MACROS +#define __STDC_LIMIT_MACROS 1 +#endif + #include typedef int8_t flex_int8_t; typedef uint8_t flex_uint8_t; @@ -45,7 +54,6 @@ typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; -#endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN @@ -76,6 +84,8 @@ #define UINT32_MAX (4294967295U) #endif +#endif /* ! C99 */ + #endif /* ! FLEXINT_H */ #ifdef __cplusplus @@ -85,11 +95,12 @@ #else /* ! __cplusplus */ -#if __STDC__ +/* C99 requires __STDC__ to be defined as 1. */ +#if defined (__STDC__) #define YY_USE_CONST -#endif /* __STDC__ */ +#endif /* defined (__STDC__) */ #endif /* ! __cplusplus */ #ifdef YY_USE_CONST @@ -131,9 +142,21 @@ /* Size of default input buffer. */ #ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else #define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ #endif +/* The state buf must be large enough to hold one state per character in the main buffer. + */ +#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) + #ifndef YY_TYPEDEF_YY_BUFFER_STATE #define YY_TYPEDEF_YY_BUFFER_STATE typedef struct yy_buffer_state *YY_BUFFER_STATE; @@ -165,14 +188,9 @@ #define unput(c) yyunput( c, (yytext_ptr) ) -/* The following is because we cannot portably get our hands on size_t - * (without autoconf's help, which isn't available because we want - * flex-generated scanners to compile on their own). - */ - #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T -typedef unsigned int yy_size_t; +typedef size_t yy_size_t; #endif #ifndef YY_STRUCT_YY_BUFFER_STATE @@ -267,7 +285,7 @@ /* Points to current character in buffer. */ static char *yy_c_buf_p = (char *) 0; -static int yy_init = 1; /* whether we need to initialize */ +static int yy_init = 0; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ /* Flag which is used to allow yywrap()'s to do buffer switches @@ -592,7 +610,7 @@ char * filename(); static void scan_err(const char * fmt, ...); void include_file(const char *); -#line 596 "scanner.c" +#line 614 "scanner.c" #define INITIAL 0 #define include 1 @@ -609,6 +627,37 @@ #define YY_EXTRA_TYPE void * #endif +static int yy_init_globals (void ); + +/* Accessor methods to globals. + These are made visible to non-reentrant scanners for convenience. */ + +int yylex_destroy (void ); + +int yyget_debug (void ); + +void yyset_debug (int debug_flag ); + +YY_EXTRA_TYPE yyget_extra (void ); + +void yyset_extra (YY_EXTRA_TYPE user_defined ); + +FILE *yyget_in (void ); + +void yyset_in (FILE * in_str ); + +FILE *yyget_out (void ); + +void yyset_out (FILE * out_str ); + +int yyget_leng (void ); + +char *yyget_text (void ); + +int yyget_lineno (void ); + +void yyset_lineno (int line_number ); + /* Macros after this point can all be overridden by user definitions in * section 1. */ @@ -641,7 +690,12 @@ /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else #define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ @@ -649,7 +703,7 @@ /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ -#define ECHO (void) fwrite( yytext, yyleng, 1, yyout ) +#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, @@ -745,11 +799,11 @@ #line 53 "scanner.l" -#line 749 "scanner.c" +#line 803 "scanner.c" - if ( (yy_init) ) + if ( !(yy_init) ) { - (yy_init) = 0; + (yy_init) = 1; #ifdef YY_USER_INIT YY_USER_INIT; @@ -1072,7 +1126,7 @@ #line 153 "scanner.l" ECHO; YY_BREAK -#line 1076 "scanner.c" +#line 1130 "scanner.c" case YY_END_OF_BUFFER: { @@ -1256,7 +1310,7 @@ else { - size_t num_to_read = + int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) @@ -1301,7 +1355,7 @@ /* Read in more data. */ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), - (yy_n_chars), num_to_read ); + (yy_n_chars), (size_t) num_to_read ); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } @@ -1325,6 +1379,14 @@ else ret_val = EOB_ACT_CONTINUE_SCAN; + if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + /* Extend the array by 50%, plus the number we really need. */ + yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + } + (yy_n_chars) += number_to_move; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; @@ -1703,7 +1765,9 @@ (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); - + if ( ! (yy_buffer_stack) ) + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); (yy_buffer_stack_max) = num_to_alloc; @@ -1721,6 +1785,8 @@ ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); + if ( ! (yy_buffer_stack) ) + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); /* zero only the new slots.*/ memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); @@ -1765,27 +1831,26 @@ /** Setup the input buffer state to scan a string. The next call to yylex() will * scan from a @e copy of @a str. - * @param str a NUL-terminated string to scan - * @param yy_str a NUL-terminated string to scan + * @param yystr a NUL-terminated string to scan * * @return the newly allocated buffer state object. * @note If you want to scan bytes that may contain NUL values, then use * yy_scan_bytes() instead. */ -YY_BUFFER_STATE yy_scan_string (yyconst char * yy_str ) +YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) { - return yy_scan_bytes(yy_str,strlen(yy_str) ); + return yy_scan_bytes(yystr,strlen(yystr) ); } /** Setup the input buffer state to scan the given bytes. The next call to yylex() will * scan from a @e copy of @a bytes. - * @param bytes the byte buffer to scan - * @param len the number of bytes in the buffer pointed to by @a bytes. + * @param yybytes the byte buffer to scan + * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. * * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE yy_scan_bytes (yyconst char * bytes, int len ) +YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len ) { YY_BUFFER_STATE b; char *buf; @@ -1793,15 +1858,15 @@ int i; /* Get memory for full buffer, including space for trailing EOB's. */ - n = len + 2; + n = _yybytes_len + 2; buf = (char *) yyalloc(n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); - for ( i = 0; i < len; ++i ) - buf[i] = bytes[i]; + for ( i = 0; i < _yybytes_len; ++i ) + buf[i] = yybytes[i]; - buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR; + buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; b = yy_scan_buffer(buf,n ); if ( ! b ) @@ -1922,6 +1987,34 @@ yy_flex_debug = bdebug ; } +static int yy_init_globals (void) +{ + /* Initialization is the same as for the non-reentrant scanner. + * This function is called from yylex_destroy(), so don't allocate here. + */ + + (yy_buffer_stack) = 0; + (yy_buffer_stack_top) = 0; + (yy_buffer_stack_max) = 0; + (yy_c_buf_p) = (char *) 0; + (yy_init) = 0; + (yy_start) = 0; + +/* Defined in main.c */ +#ifdef YY_STDINIT + yyin = stdin; + yyout = stdout; +#else + yyin = (FILE *) 0; + yyout = (FILE *) 0; +#endif + + /* For future reference: Set errno on error, since we are called by + * yylex_init() + */ + return 0; +} + /* yylex_destroy is for both reentrant and non-reentrant scanners. */ int yylex_destroy (void) { @@ -1937,6 +2030,10 @@ yyfree((yy_buffer_stack) ); (yy_buffer_stack) = NULL; + /* Reset the globals. This is important in a non-reentrant scanner so the next time + * yylex() is called, initialization will occur. */ + yy_init_globals( ); + return 0; } @@ -1948,7 +2045,7 @@ static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) { register int i; - for ( i = 0; i < n; ++i ) + for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif @@ -1957,7 +2054,7 @@ static int yy_flex_strlen (yyconst char * s ) { register int n; - for ( n = 0; s[n]; ++n ) + for ( n = 0; s[n]; ++n ) ; return n; @@ -1988,18 +2085,6 @@ #define YYTABLES_NAME "yytables" -#undef YY_NEW_FILE -#undef YY_FLUSH_BUFFER -#undef yy_set_bol -#undef yy_new_buffer -#undef yy_set_interactive -#undef yytext_ptr -#undef YY_DO_BEFORE_ACTION - -#ifdef YY_DECL_IS_OURS -#undef YY_DECL_IS_OURS -#undef YY_DECL -#endif #line 153 "scanner.l" reverted: --- filtergen-0.12.4/debian/changelog.dch +++ filtergen-0.12.4.orig/debian/changelog.dch @@ -1,217 +0,0 @@ -filtergen (0.12.4-5) unstable; urgency=low - - * New maintainer. Closes: #543434. - * Bump standards version: - - Added Homepage field. - * Fix up a bunch of lintian warnings: - - Remove now-useless .arch-inventory file - - Add a ${misc:Depends} for debhelper's benefit - - Point to versioned GPL licence file - - Add copyright notices to debian/copyright - - Fix a formatting niggle in the filter_backends manpage - - Bump to dh compat 5 - - -- Matt Palmer Tue, 02 Feb 2010 21:25:57 +1100 - -filtergen (0.12.4-4.1) unstable; urgency=medium - - * Non-maintainer upload. - * scanner.l: Fix buffer overflow with nested include files. - Closes: #324908. - * debian/rules: Make sure clean doesn't accidentally run makefile - (and consequently autoconf). - - -- Matej Vela Wed, 5 Jul 2006 08:40:35 +0200 - -filtergen (0.12.4-4) unstable; urgency=low - - * Apply patch from Andreas Jochens to fix build failure on amd64. - (Closes: #285935) - * Added flex and bison to the build dependencies. - * Updated standards version, no other changes required. - - -- Jamie Wilkinson Tue, 23 Aug 2005 14:09:04 +1000 - -filtergen (0.12.4-3) unstable; urgency=high - - * Call the distclean target instead of clean, in our debian/rules clean - target, so that created files are cleaned up. Yes this is dumb, I - blame autogoats. (Closes: #273371) - - -- Jamie Wilkinson Wed, 13 Oct 2004 14:10:26 +1000 - -filtergen (0.12.4-2) unstable; urgency=low - - * Updated copyright to reflect new upstream location and author. - - -- Jamie Wilkinson Tue, 24 Aug 2004 12:34:16 +1000 - -filtergen (0.12.4-1) unstable; urgency=low - - * New upstream release. - - Fixes behavioural bugs in fgadm script. - - -- Jamie Wilkinson Tue, 24 Aug 2004 11:49:16 +1000 - -filtergen (0.12.3-2) unstable; urgency=low - - * Added watch file. - - -- Jamie Wilkinson Fri, 13 Aug 2004 16:47:45 +1000 - -filtergen (0.12.3-1) unstable; urgency=low - - * New upstream release. - - fixes critical port number resolver bug. - - -- Jamie Wilkinson Thu, 24 Jun 2004 11:35:03 +1000 - -filtergen (0.12.1-6) unstable; urgency=low - - * The Sixth Time Lucky release. - * Re-add netbase to the build dependencies. (Closes: #253631) - - -- Jamie Wilkinson Fri, 11 Jun 2004 10:05:34 +1000 - -filtergen (0.12.1-5) unstable; urgency=low - - * Removed unnecessary build dependency on flex. - * Fix path to filtergen in fgadm script. - * Alter test scripts to print diff output. - - -- Jamie Wilkinson Thu, 10 Jun 2004 20:04:17 +1000 - -filtergen (0.12.1-4) unstable; urgency=low - - * Applied a patch from upstream that fixes the test suite so it's not using - protocols that have more than one name in /etc/protocols. This really fixes - the build daemon errors (fingers crossed) so also remove netbase from the - build dependencies. - - -- Jamie Wilkinson Thu, 10 Jun 2004 18:54:42 +1000 - -filtergen (0.12.1-3) unstable; urgency=low - - * Add netbase to the build dependencies for /etc/protocols and /etc/services. - - -- Jamie Wilkinson Thu, 10 Jun 2004 18:14:38 +1000 - -filtergen (0.12.1-2) unstable; urgency=low - - * Regenerate the makefile so that -Wcast-align is gone. (Closes: #253432) - - -- Jamie Wilkinson Thu, 10 Jun 2004 09:09:56 +1000 - -filtergen (0.12.1-1) unstable; urgency=low - - * New upstream release. - + Fixes compiler errors on 64 bit platforms. - - -- Jamie Wilkinson Wed, 9 Jun 2004 23:52:22 +1000 - -filtergen (0.12-2) unstable; urgency=low - - * Remove an ugly and incorrect cast around gethosybyname and inet_ntoa - to fix builds on 64 bit systems. - * Added make check to the build target of rules. - - -- Jamie Wilkinson Wed, 9 Jun 2004 19:28:30 +1000 - -filtergen (0.12-1) unstable; urgency=low - - * New upstream release. - * Bumped standards version to 3.6.1. - * Moved DH_COMPAT to debian/compat. - * Upstream now uses configure, modified configure target. - - -- Jamie Wilkinson Wed, 9 Jun 2004 11:44:48 +1000 - -filtergen (0.11-4) unstable; urgency=low - - * Added "%option nounput" to the flex scanner to fix a build failure - with the new flex, thanks to Bastian Kleineidam. (Closes: #191188) - * Bumped standards version to 3.5.9. - - -- Jamie Wilkinson Mon, 12 May 2003 20:10:14 +1000 - -filtergen (0.11-3) unstable; urgency=low - - * Removed initscript, README.Debian, postinst, and debconf stuff. - Reverted to just the basic program, not trying to provide a - super-firewall-tool, just a filter generator. (Closes: #171951) - - -- Jamie Wilkinson Wed, 12 Feb 2003 18:38:43 +1100 - -filtergen (0.11-2) unstable; urgency=low - - * Bumped standards version to 3.5.8.0. - * Set DH_COMPAT to 4. - * Set versioned depends on debconf 1.2.9 for dpkg-reconfigure, - making lintian happy. - - -- Jamie Wilkinson Sat, 30 Nov 2002 12:14:22 +1100 - -filtergen (0.11-1) unstable; urgency=low - - * New upstream release. (Closes: #168985) - - Fixes documentation error (patch removed). - - Adds flush option (patch removed). - - Fixes compilation on 64 bit archs (patch removed). - * Bathed by the lint siblings. - * Bumped standards version to 3.5.7.0. - - -- Jamie Wilkinson Wed, 20 Nov 2002 14:12:35 +1100 - -filtergen (0.10-7) unstable; urgency=low - - * Fix builds on alpha and ia64. (Closes: #168352) - - -- Jamie Wilkinson Sat, 9 Nov 2002 10:14:02 +1100 - -filtergen (0.10-6) unstable; urgency=low - - * Mention the lack of a firewall on upgrade from a pre-0.10-5 version. - (Closes: #167561) - * Initscript cosmetic change, hack around stderr from filtergen. - - -- Jamie Wilkinson Sun, 3 Nov 2002 01:14:29 +1100 - -filtergen (0.10-5) unstable; urgency=low - - * Only `stop' the filter if GENERATE is true. (Closes: #167232) - - -- Jamie Wilkinson Sat, 2 Nov 2002 18:18:32 +1100 - -filtergen (0.10-4) unstable; urgency=low - - * Reworded an error message to be nicer. (s/permitted/supported) - * Removed debhelper templates from source. - - -- Jamie Wilkinson Wed, 30 Oct 2002 21:53:07 +1100 - -filtergen (0.10-3) unstable; urgency=low - - * Patched filtergen to add a command to generate flush rules, thus cleaning - the initscript a little. - - -- Jamie Wilkinson Wed, 30 Oct 2002 20:39:37 +1100 - -filtergen (0.10-2) unstable; urgency=low - - * Added a `check' argument to /etc/init.d/filtergen. - * Removed `ipfilter' from the backends that get piped into a shell. - Instead it should get piped into ipfilter somehow. I will worry about - that when ipfilter gets packaged. - - -- Jamie Wilkinson Wed, 30 Oct 2002 00:39:17 +1100 - -filtergen (0.10-1) unstable; urgency=low - - * Initial Release. (Closes: #166170) - * Applied patch from upstream fixing documentation error. - * Added NAME section to filter_backends.7, lintian clean. - * Depends on iptables or ipchains. - * Created initsctipt and filtergen.conf config file to control what - filtergen will do to your firewall. - - -- Jamie Wilkinson Sat, 26 Oct 2002 11:15:16 +1000 diff -u filtergen-0.12.4/debian/changelog filtergen-0.12.4/debian/changelog --- filtergen-0.12.4/debian/changelog +++ filtergen-0.12.4/debian/changelog @@ -1,3 +1,10 @@ +filtergen (0.12.4-5ubuntu1) maverick; urgency=low + + * Merge from debian testing. (LP: #595609) Remaining changes: + - Removed file debian/changelog.dch + + -- Bilal Akhtar Thu, 17 Jun 2010 21:23:13 +0300 + filtergen (0.12.4-5) unstable; urgency=low * New maintainer. Closes: #543434. @@ -6,6 +13,17 @@ -- Matt Palmer Tue, 02 Feb 2010 16:51:39 +1100 +filtergen (0.12.4-4.1ubuntu1) karmic; urgency=low + + * configure.in, configure: Disable -Werror to avoid Ubuntu's + warn_unused_result warnings (a number of false positives there). + * scanner.c: refresh from scanner.l (to make a few warn_unused_result + warnings go away). + * t/scan.c: if chdir fails, print an error message and bail out. + (Werror is still enabled for this subdirectory). + + -- Stefan Potyra Sun, 27 Sep 2009 13:59:03 +0200 + filtergen (0.12.4-4.1) unstable; urgency=medium * Non-maintainer upload. @@ -38,7 +56,7 @@ * Updated copyright to reflect new upstream location and author. -- Jamie Wilkinson Tue, 24 Aug 2004 12:34:16 +1000 - + filtergen (0.12.4-1) unstable; urgency=low * New upstream release. @@ -210,0 +229 @@ + diff -u filtergen-0.12.4/debian/control filtergen-0.12.4/debian/control --- filtergen-0.12.4/debian/control +++ filtergen-0.12.4/debian/control @@ -1,9 +1,10 @@ Source: filtergen Section: net Priority: optional -Maintainer: Matt Palmer +Maintainer: Ubuntu Developers +XSBC-Original-Maintainer: Jamie Wilkinson Build-Depends: debhelper (>= 5), netbase, flex, bison -Standards-Version: 3.8.3 +Standards-Version: 3.8.4 Homepage: http://spacepants.org/src/filtergen/ Package: filtergen only in patch2: unchanged: --- filtergen-0.12.4.orig/configure +++ filtergen-0.12.4/configure @@ -3926,7 +3926,7 @@ if test "x$ac_cv_c_compiler_gnu" = xyes ; then - CFLAGS="$CFLAGS -W -Wall -Werror -Waggregate-return" + CFLAGS="$CFLAGS -W -Wall -Waggregate-return" CFLAGS="$CFLAGS -Wcast-align -Wcast-qual -Wnested-externs" CFLAGS="$CFLAGS -Wshadow -Wbad-function-cast -Wwrite-strings" fi only in patch2: unchanged: --- filtergen-0.12.4.orig/configure.in +++ filtergen-0.12.4/configure.in @@ -47,7 +47,7 @@ dnl ----------------- if test "x$ac_cv_c_compiler_gnu" = xyes ; then - CFLAGS="$CFLAGS -W -Wall -Werror -Waggregate-return" + CFLAGS="$CFLAGS -W -Wall -Waggregate-return" CFLAGS="$CFLAGS -Wcast-align -Wcast-qual -Wnested-externs" CFLAGS="$CFLAGS -Wshadow -Wbad-function-cast -Wwrite-strings" fi only in patch2: unchanged: --- filtergen-0.12.4.orig/t/scan.c +++ filtergen-0.12.4/t/scan.c @@ -2,6 +2,7 @@ #include #include #include +#include #include "../parser.h" @@ -79,10 +80,16 @@ int main(int argc __attribute__((unused)), char ** argv __attribute__((unused))) { int c; + int ret; /* if running in make distcheck the cwd isn't the same as the srcdir */ if (getenv("srcdir")) { - chdir(getenv("srcdir")); + ret = chdir(getenv("srcdir")); + if (ret != 0) { + fprintf(stderr, "failed to change directory to %s (%s)\n", + getenv("srcdir"), strerror(errno)); + return 1; + } } while ((c = yylex())) {