Re: [ADMIN] Re: [HACKERS] Problems with src/pl/tcl/mkMakefile.tcldefs.sh.in in 6.5

From: pgsql-hackers(at)thewrittenword(dot)com
To: Jan Wieck <wieck(at)debis(dot)com>
Cc: Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us>, pgsql-hackers(at)thewrittenword(dot)com, pgsql-hackers(at)postgreSQL(dot)org
Subject: Re: [ADMIN] Re: [HACKERS] Problems with src/pl/tcl/mkMakefile.tcldefs.sh.in in 6.5
Date: 1999-07-11 18:54:06
Message-ID: 199907111858.NAA24126@postal.thewrittenword.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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(at)thewrittenword(dot)com)

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 1999-07-11 19:37:32 Overgenerous parsing of UPDATE targetlist
Previous Message pgsql-hackers 1999-07-11 18:18:37 Re: your mail