# HG changeset patch
# User Nick Alexander <ncalexander@gmail.com>
# Date 1234153008 28800
# Node ID 7d637c5fbf2da288a3472cb51487dea4a0b79601
# Parent  199a171f9d17f637d874dc1a16604530999c2d94
[mq]: trac_5212-normalize-names.patch

diff -r 199a171f9d17 -r 7d637c5fbf2d sage/structure/parent_gens.pyx
--- a/sage/structure/parent_gens.pyx	Tue Feb 03 19:05:45 2009 -0800
+++ b/sage/structure/parent_gens.pyx	Sun Feb 08 20:16:48 2009 -0800
@@ -139,12 +139,46 @@
     return tuple(v)
     
 def normalize_names(int ngens, names=None):    
+    r"""
+    Return a tuple of strings of variable names of length ngens given the input names.
+
+    INPUT: names can be a:
+        - tuple or list of strings, such as ('x', 'y')
+        - a string prefix, such as 'alpha'
+        - string of single character names, such as 'xyz'
+
+    EXAMPLES:
+        sage: from sage.structure.parent_gens import normalize_names as nn
+        sage: nn(1, 'a')
+        ('a',)
+        sage: nn(2, 'zzz')
+        ('zzz0', 'zzz1')
+        sage: nn(2, 'ab')
+        ('a', 'b')
+        sage: nn(3, ('a', 'bb', 'ccc'))
+        ('a', 'bb', 'ccc')
+        sage: nn(4, ['a1', 'a2', 'b1', 'b11'])
+        ('a1', 'a2', 'b1', 'b11')
+
+    TESTS:
+        sage: nn(2, 'z1')
+        ('z10', 'z11')
+        sage: PolynomialRing(QQ, 2, 'alpha0')
+        Multivariate Polynomial Ring in alpha00, alpha01 over Rational Field
+    """
     if names is None:
         return None
     if isinstance(names, str) and names.find(',') != -1:
         names = names.split(',')
     if isinstance(names, str) and ngens > 1 and len(names) == ngens:
-        names = tuple(names)
+        maybe_names = tuple(names)
+        try:
+            _certify_names(maybe_names)
+            names = maybe_names
+        except ValueError:
+            # this happens when you try for 2 names starting "x0"
+            # that gets split to "x", "0" and fails the certification
+            pass
     if isinstance(names, str):
         name = names
         names = sage.misc.defaults.variable_names(ngens, name)
