Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com To: cygwin AT cygwin DOT com From: "Hans Horn" Subject: Re: igawk problem Date: Sat, 14 Aug 2004 14:08:06 -0700 Lines: 68 Message-ID: References: X-Complaints-To: usenet AT sea DOT gmane DOT org X-Gmane-NNTP-Posting-Host: adsl-68-120-139-175.dsl.snfc21.pacbell.net X-Newsreader: Microsoft Outlook Express 6.00.2900.2180 X-RFC2646: Format=Flowed; Original X-IsSubscribed: yes Igor, thx for your good idea to look what igawk is doing under the hood. So I tracked things further down and found that the problem is one line further down than you thought, and does not seem to be cygwin/windows specific (doesn't work under AIX either): The real bad guy is: eval gawk $opts -- '"$processed_program"' '"$@"' The following workaround works under cygwin : ############### tmpname=`mktemp` echo "$processed_program" > $tmpname gawk -f $tmpname if [ $? -eq 0 ]; then rm -f $tmpname; fi ################# Interestingly, this doesn't work under AIX. There, the command echo "$processed_program" > $tmpname replaces all "\n" in the code (that may occur in printf statements), with explicit newlines. Unfortunately, I don't really understand fully what the construct eval gawk $opts -- '"$processed_program"' '"$@"' other than passing '"$processed_program"' to gawk. If you can offer any further isight, I'd be very appreciative! cheers, Hans Igor Pechtchanski wrote: > On Fri, 13 Aug 2004, Hans Horn wrote: > >> Group, >> >> I have a rather lengthy awk script (that internally includes a bunch >> of awk library functions; therefore I'm using igawk). >> >> When I invoke it, e.g. like >> >> echo | igawk -f script.awk >> eval: gawk: argument list too long >> >> The script and the awk library functions together make up approx. >> 34kByte. >> >> Does anybody have a clue whether I'm running here into a hard shell >> limit, or some internal limit of gawk? > > This looks like an upstream igawk portability bug -- the lines > > processed_program=`gawk -- "$expand_prog" /dev/stdin < $program > EOF > > look like the culprit. They should be using xargs instead... > This is a Win32 limit, and it has to do with the fact that gawk is > invoked using Win32 calls by default. There are a few solutions, one > of the easiest being to "mount -X" your /bin and /usr/bin > directories. Or, you can fix igawk to use xargs and submit your > patch upstream... ;-) > Igor -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/