Re: [ADMIN] Re: [HACKERS] Problems with src/pl/tcl/mkMakefile.tcldefs.sh.in in 6.5 - Mailing list pgsql-hackers

From pgsql-hackers@thewrittenword.com
Subject Re: [ADMIN] Re: [HACKERS] Problems with src/pl/tcl/mkMakefile.tcldefs.sh.in in 6.5
Date
Msg-id 199907111858.NAA24126@postal.thewrittenword.com
Whole thread Raw
In response to Re: [ADMIN] Re: [HACKERS] Problems with src/pl/tcl/mkMakefile.tcldefs.sh.in in 6.5  (wieck@debis.com (Jan Wieck))
List pgsql-hackers
On Sun, Jul 11, 1999 at 03:46:26PM +0200, Jan Wieck wrote:
> Bruce Momjian wrote:
> 
> >
> > > On Sat, Jul 10, 1999 at 02:45:47AM -0400, Bruce Momjian wrote:
> > > > I didn't understand this the first time you sent it either.
> > > >
> > > > Send me a patch to review, please.
> > >
> > > --- src/pl/tcl/mkMakefile.tcldefs.sh.in.orig  Fri Jul  9 08:29:09 1999
> > > +++ src/pl/tcl/mkMakefile.tcldefs.sh.in  Fri Jul  9 08:29:49 1999
> > > @@ -8,9 +8,6 @@
> > >
> > >  cat @TCL_CONFIG_SH@ |
> > >      egrep '^TCL_|^TK_' |
> > > -    while read inp
> > > -    do
> > > -         eval eval echo $inp
> > > -    done >Makefile.tcldefs
> > > +    sed -e "s/^\([^=]*\)='\(.*\)'$/\1=\2/" >Makefile.tcldefs
> > >
> >
> > I understand what your patch does, and it looks OK, but any idea why the
> > 'eval eval' was there, and is it safe to skip it?  I can apply this to
> > 6.6.
> 
>     As  far  as  I  can  recall,  the  first of all versions I've
>     created did it mainly that way (with a simple  sed(1)  call).
>     But  since  tclConfig.sh  is a shell script, there have to be
>     shell variable expansions done on  some  platforms  and  that
>     resulted  finally in the double eval. So I would consider the
>     above a little step for a man, but a big  leap  backward  for
>     mankind.
> 
>     Instead,  the  result  of  the  double  eval must get special
>     characters quoted in some way.

I just looked at the man for make on Solaris, Digital UNIX, HP-UX, and
IRIX and all support $() and ${} for variable expansion. BTW, I also
looked at the Makefile generated by Tk and it assumes make can handle
${}. It basically does one eval of tclConfig.sh and uses the result in
make variables. As Tk assumes make can handle ${}, can we safely
assume the same? With this, we'd do one eval rather than two before.
This is the same as the sed line I posted because everything in
tclConfig.sh is VAR='VAL' so the one eval would just strip the single
quotes (which sed did). But, if tclConfig.sh changes to some use of
double quotes in the future, we won't break.

> Jan

-- 
albert chin (china@thewrittenword.com)



pgsql-hackers by date:

Previous
From: pgsql-hackers@thewrittenword.com
Date:
Subject: Re: your mail
Next
From: Tom Lane
Date:
Subject: Overgenerous parsing of UPDATE targetlist