Start fixing some issues with uniform variables and their types.
diff --git a/src/mesa/shader/shader_api.c b/src/mesa/shader/shader_api.c
index 74bdef0..418ef5c 100644
--- a/src/mesa/shader/shader_api.c
+++ b/src/mesa/shader/shader_api.c
@@ -638,12 +638,8 @@
                          GLsizei maxLength, GLsizei *length, GLint *size,
                          GLenum *type, GLchar *nameOut)
 {
-   static const GLenum vec_types[] = {
-      GL_FLOAT, GL_FLOAT_VEC2, GL_FLOAT_VEC3, GL_FLOAT_VEC4
-   };
    struct gl_shader_program *shProg
       = _mesa_lookup_shader_program(ctx, program);
-   GLint sz;
    GLuint ind, j;
 
    if (!shProg) {
@@ -664,11 +660,10 @@
             /* found it */
             copy_string(nameOut, maxLength, length,
                         shProg->Uniforms->Parameters[j].Name);
-            sz = shProg->Uniforms->Parameters[j].Size;
             if (size)
-               *size = sz;
+               *size = shProg->Uniforms->Parameters[j].Size;
             if (type)
-               *type = vec_types[sz-1]; /* XXX this is a temporary hack */
+               *type = shProg->Uniforms->Parameters[j].DataType;
             return;
          }
          ind++;