I am a little confused about how glColor4f, glColorPointer & Lights make up the final color for a primitive.

As I understand:
1. If lighting is disabled
1.1 The vertex gets the current color (possibly set by glColor4f).
1.2 Each vertex gets the color given by glColorPointer, if given (Is this correct ??)

2. If lighting is enabled Vertex color is calculated using current lighting parameters.
2.1 This lighting parameters include material properties, which can be taken from the current color (glColor4f), if COLOR_MATERIAL is enabled.
2.2 If COLOR_MATERIAL is disabled, only the current lighting parameters are used. (glColor & glColorPointer dont make any difference)(Is this correct ??)
2.3 If COLOR_MATERIAL is enabled and we have data given by glColorPointer , for each vertex we take the material color from the glColorPointer information and compute the lighting. (Is this correct ??)

Do let me know if my understanding of OpenGL ES color and lighting is right.

Thanks & regards,