Using percent signs with SafeConfigParser

MRAB google at mrabarnett.plus.com
Sat Apr 11 19:14:49 EDT 2009


Márcio Faustino wrote:
 > On 11 Abr, 20:06, Peter Otten <__pete... at web.de> wrote:
 >> I think you are right. Please file a bug report .
 >
 > I will.
 >
 >> IMO this doesn't fix the problem because
 >>
 >> (1) it allows "%%%" which is also incorrect
 >
 > You're right, how about this one "(?<!%)%(?:%%)*(?!%)"?
 >
Instead of checking for a 'bad' value, why not check for a 'good' one?

Change:

     _badpercent_re = re.compile(r"%[^%]|%$")

to:

     _goodpercent_re = re.compile(r"(?:%%|[^%])*$")

and then:

         m = self._badpercent_re.search(tmp_value)
         if m:

to:

         m = self._goodpercent_re.match(tmp_value)
         if not m:

 >> (2) _interpvar_re has already butchered values like "%%(alpha)s" to "%"
 >
 > Isn't that expected? I mean, one wouldn't write "%%(alpha)s", but
 > instead "%%%(alpha)s" or "%(alpha)s" right?
 >



More information about the Python-list mailing list