]> granicus.if.org Git - python/commitdiff
Fix repr for negative imaginary part. Fixes #1013908.
authorMartin v. Löwis <martin@v.loewis.de>
Sun, 22 Aug 2004 21:09:15 +0000 (21:09 +0000)
committerMartin v. Löwis <martin@v.loewis.de>
Sun, 22 Aug 2004 21:09:15 +0000 (21:09 +0000)
Lib/test/test_complex.py
Objects/complexobject.c

index 20ae1deeb7ab0dd68e4436c54974f6afa0521e3a..15f4b654794e9172f7f772ca1585c5a268f4487a 100644 (file)
@@ -286,6 +286,7 @@ class ComplexTest(unittest.TestCase):
 
     def test_repr(self):
         self.assertEqual(repr(1+6j), '(1+6j)')
+        self.assertEqual(repr(1-6j), '(1-6j)')
 
     def test_neg(self):
         self.assertEqual(-(1+6j), -1-6j)
index 4023fa045e4160a9ce4e3ca4dbae9471ec348d5e..45adbcb975d6c6e0539b67cda020234ab3389e0f 100644 (file)
@@ -279,11 +279,15 @@ complex_to_buf(char *buf, int bufsz, PyComplexObject *v, int precision)
                strncat(buf, "j", bufsz);
        } else {
                char re[64], im[64];
-               
+               char *fmt;
                PyOS_snprintf(format, 32, "%%.%ig", precision);
                PyOS_ascii_formatd(re, 64, format, v->cval.real);
                PyOS_ascii_formatd(im, 64, format, v->cval.imag);
-               PyOS_snprintf(buf, bufsz, "(%s+%sj)", re, im);
+               if (v->cval.imag < 0.)
+                       fmt = "(%s%sj)";
+               else
+                       fmt = "(%s+%sj)";
+               PyOS_snprintf(buf, bufsz, fmt, re, im);
        }
 }