On Jueves, 3 de Septiembre de 2009 03:11:34 Allin Cottrell escribió:
> On Wed, 2 Sep 2009, Allin Cottrell wrote:
> > On Wed, 2 Sep 2009, chris wrote:
> > > Allin Cottrell wrote:
> > > > However, I'm not sure offhand whether gretl's ODBC routines will
> > > > handle this sort of input correctly.  I'll have to test.
> > >
> > > Did you change the string parsing code? Because with current windows
> > > snapshot the follwing snippet no longer works:
> > >
> > > <script>
> > > string a="\"
> > > </script>
> >
> > Yes, I considered that I had found a bug, in that you couldn't set
> > a string to contain literal quotes by doing, e.g.
> >
> > string quotefoo = "\"foo\""
> >
> > That's now fixed, but it has broken the idiom you mentioned.  But
> > I think that would be better done as
> >
> > string a = "\\"
> >
> > This doesn't yet work right, but it will soon.
>
> Sorry, let me not prejudge the issue.  One option is to proceed in
> the direction I indicated, allowing backslash-escaped quotes (and
> so, therefore, other escapes, including backslash-escaped
> backslashes) in the definition of string literals using
>
>  string s = "..."
>
> But another option is simply to revert the change I made, to which
> Chris has drawn attention.
>
> To clarify: before my recent change, when you defined a string
> literal using
>
>  string s = "..."
>
> gretl followed the simple procedure of making the string start
> at the first '"' and end at the next '"'.  So Chris's
>
>   string a = "\"
>
> would produce a string containing a single, literal backslash.
> This means that if you did
>
>   string quotefoo = "\"foo\""
>
> (in the hope of getting a quote-wrapped string) you'd get an
> error, since gretl would see a string comprising a single
> backslash followed by the bare identifier 'foo', and most likely
> you'd get a complaint about the symbol 'foo' being undefined.
>
> It seemed to me that this was a bug, but maybe it's OK: it
> doesn't agree with C usage, but it was consistent. And if you
> wanted to get fancier with escapes you could use sprintf.
>
> Any thoughts?  Should we just go back to the status quo ante?
> (And perhaps add a note to the manual.)
>
> Allin.
> _______________________________________________
> Gretl-users mailing list
> Gretl-users(a)lists.wfu.edu
> http://lists.wfu.edu/mailman/listinfo/gretl-users


In general, I don`t have any strong preference for any of the two 
alternatives, if the subject is well documented in the manual.

But I have many script files in which I use the backslash in a string, so it is 
probably that if the behavior of the "string" command is changed I will have 
to correct them.

Apart from that, I see the "string" command as something more simple to use 
for a not very experimented user, and "sprintf"  as a command more flexible and 
so more difflcult. With the old status of the "string" command, when this user 
has an error with a command similar to

string quotefoo = "\"foo\""

I think it is time he/she learn how to use "sprintf".

I mean: please go back to the state before.

-- 
Ignacio Diaz-Emparanza  
DEPARTAMENTO DE ECONOMÍA APLICADA III (ECONOMETRÍA Y ESTADÍSTICA)
UPV/EHU
Avda. Lehendakari Aguirre, 83 | 48015 BILBAO
T.: +34 946013732 | F.: +34 946013754
www.et.bs.ehu.es 

Reply via email to