[Mailman-Users] weird problems; a cry for help

John W Baxter jwblist at olympus.net
Sat Oct 28 07:03:13 CEST 2000


>The problem is that George's digest header had the string '% d'
>in it, and the 'string-mod' operation was trying to treat that
>as an integer format field.  (the text was "10% discount").
>
>Erk.  I think this is a Python bug; I think it should not
>treat '% d' the same as '%d'; but I'm having a hard time
>discovering anything formally specifying the format of a
>'printf-like string interpolation function of the % operator'
>in the Python documentation; any help appreciated.

I don't think it's a bug in Python but see also below.

It's a degenerate case of  a "% 6d"  form of specifier, in which the space
indicates that the result is space filled and the 6 gives the field width.
(a 0 indicates zero fill):

>>> "10% 6discount" % 7
'10     7iscount'
>>> "10%06discount" % 18
'10000018iscount'
>>>

The above comes from Python 2.0 on Mac (for convenience)...results are the
same in Python 1.5.2 on Red Hat Linux 6.2.

*Perhaps* it's a bug (or more likely mis-design) that the degenerate case
is allowed, in that there will never be fill if there isn't a width stated.

And the %% solution is the correct one (in C and in Python).

Someone with better C skills than mine (which haven't been exercised in
about 7 years) could try the samples in C (of various flavors).

  --John


-- 
John Baxter   jwblist at olympus.net      Port Ludlow, WA, USA




More information about the Mailman-Users mailing list