X-Authentication-Warning: delorie.com: mail set sender to djgpp-workers-bounces using -f X-Authentication-Warning: itservs.wilkes.edu: apache set sender to fdonahoe AT wilkes DOT edu using -f Message-ID: <1104619376.41d727700c0c5@webmail.wilkes.edu> Date: Sat, 1 Jan 2005 17:42:56 -0500 From: fdonahoe AT wilkes DOT edu To: djgpp-workers AT delorie DOT com Cc: Andrew Cottrell Subject: Re: Strange failure of egrep stub MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit User-Agent: Internet Messaging Program (IMP) 3.2 X-Originating-IP: 146.94.1.203 Reply-To: djgpp-workers AT delorie DOT com Quoting Eli Zaretskii : > > Date: Fri, 31 Dec 2004 17:07:48 -0500 > > From: fdonahoe AT wilkes DOT edu > > > > The failure came on the very first time egrep was invoked. > > Rewritten as: > > > > egrep 'This is (ifnothtml|ifinfo|ifnottex) text' cond.out \ > > >./cond-1 || exit 2 > > > > fails with 0 bytes in cond-1. > > My first guess would be that we have some snafu with redirection. > > Let's first find out whether the problem is at all with egrep. > What version of Bash do you have installed, and does the behavior > change if you use a different version of Bash? bash 2.05b. I was using a bash which I compiled myself from bsh205bs using djdev 2.04. Substituting the bash.exe from the binary distribution bsh205bb which was compiled using djdev 2.03 makes no difference in the outcome of the test. > ......... (I understand > that the same command works if invoked from the cmd.exe prompt, > right? That is, assuming that you replace single quotes with > double quotes, to prevent the `|' characters from being > interpreted by cmd.exe.) > I have to look very closely at the original text, but those quotes have always been double quotes. From the command prompt I gave the command: .../tests> egrep 'This is (ifnothtml|ifinfo|ifnottex) text' cond.out > cond-1 and compared `cond-1' with the result produced by the successful run with Andy's grep.exe > > grep is never given the chance to produce its output which > > would be correct! If grep -E be substituted for egrep in > > all four instances, cond-[1-4] are left with correct data > > and the whole test is passed. > > What is egrep in your setup? Is it a Bash shell script that > invokes "grep -E" or something else? > It is a 2K stub produced by stubify -g egrep.exe stubedit egrep.exe runfile=grep argv0=egrep > > My conclusion is that egrep.exe invokes the djgpp2/coff grep > > differently from the unsuopported coff grep, so that exit 2 > > happens before grep produces its output. > > Sorry, I cannot understand this. What is djgpp2/coff and what > is ``unsupported coff grep'', and how is their invocation > relevant to this problem? > Sorry, I was grasping at straws there. The only measureable difference between the two greps, aside from byte count and time stamp was that one was compressible with UPX and the other wasn't. It is not significant. I compliled a grep.exe which UPX refuses to compile and it fails just as the one which can be compressed fails. You may remember that the grep package 2.5.1a built two 35 byte shell scripts called `egrep' and `fgrep.' egrep contains: #!/bin/sh exec grep -E ${1+"$@"} Well, grep invoked this way passes the test. Andrew Cottrell, where is the source of the grep binary of Nov 17, 2003? Regards, Frank ----------------------------------------------------------------------- This mail was sent through Wilkes Webmail: http://webmail.wilkes.edu Wilkes Webmail is using IMP: http://horde.org/imp/