Patch from http://bugs.debian.org/cgi-bin/bugreport.cgi/flex-lvalue.diff?bug=194844;msg=10;att=1 according to posix 0,1,2 are already setup and this avoids the issues with | filter.c: In function 'filter_apply_chain': | filter.c:161: error: invalid lvalue in assignment | filter.c:163: error: invalid lvalue in assignment | filter.c:184: error: invalid lvalue in assignment diff -ur flex-2.5.31.ORIG/filter.c flex-2.5.31/filter.c --- flex-2.5.31.ORIG/filter.c 2003-03-25 16:39:08.000000000 +0000 +++ flex-2.5.31/filter.c 2003-05-27 17:00:26.000000000 +0000 @@ -157,11 +157,8 @@ if (chain->filter_func) { int r; - /* setup streams again */ - if ((stdin = fdopen (0, "r")) == NULL) - flexfatal (_("fdopen(0) failed")); - if ((stdout = fdopen (1, "w")) == NULL) - flexfatal (_("fdopen(1) failed")); + /* POSIX says we inherit fd[0-2], so we don't need + to do anything to them here */ if ((r = chain->filter_func (chain)) == -1) flexfatal (_("filter_func failed")); @@ -181,8 +178,6 @@ if (dup2 (pipes[1], 1) == -1) flexfatal (_("dup2(pipes[1],1)")); close (pipes[1]); - if ((stdout = fdopen (1, "w")) == NULL) - flexfatal (_("fdopen(1) failed")); return true; }