[Numpy-svn] r3326 - trunk/numpy/core/src

numpy-svn at scipy.org numpy-svn at scipy.org
Fri Oct 13 14:45:55 EDT 2006


Author: oliphant
Date: 2006-10-13 13:45:44 -0500 (Fri, 13 Oct 2006)
New Revision: 3326

Modified:
   trunk/numpy/core/src/multiarraymodule.c
Log:
Add fix so that '()type' is detected

Modified: trunk/numpy/core/src/multiarraymodule.c
===================================================================
--- trunk/numpy/core/src/multiarraymodule.c	2006-10-13 18:18:18 UTC (rev 3325)
+++ trunk/numpy/core/src/multiarraymodule.c	2006-10-13 18:45:44 UTC (rev 3326)
@@ -4686,22 +4686,35 @@
 	return NULL;
 }
 
+#define _chk_byteorder(arg) (arg == '>' || arg == '<' ||        \
+                             arg == '|' || arg == '=')
+
 static int
 _check_for_commastring(char *type, int len)
 {
 	int i;
 
+        /* Check for ints at start of string */
 	if ((type[0] >= '0' && type[0] <= '9') ||
-            ((len > 1) && (type[0] == '>' || type[0] == '<' ||  \
-                           type[0] == '|' || type[0] == '=') && \
+            ((len > 1) && _chk_byteorder(type[0]) && 
              (type[1] >= '0' && type[1] <= '9')))
                 return 1;
+
+        /* Check for empty tuple */
+        if (((len > 1) && (type[0] == '(' && type[1] == ')')) ||
+            ((len > 3) && _chk_byteorder(type[0]) && 
+             (type[1] == '(' && type[2] == ')')))
+                return 1;
+             
+        /* Check for presence of commas */
 	for (i=1;i<len;i++)
 		if (type[i] == ',') return 1;
 
         return 0;
 }
 
+#undef _chk_byteorder
+
 /*
    any object with
    the .fields attribute and/or .itemsize attribute




More information about the Numpy-svn mailing list