for (idx =0; idx < iLen; idx++) {
for (idx =0; idx < iLen && iExtCnt < maxExts; idx++) {
void fe_ParseExtList(const char * ext_string, int *num_exts, char **list) {	char * start, *cur, *newext;	int iLen, idx;	BOOL bInExt = FALSE;	char * copy = strdup(ext_string);  // make copy to muck with	int iExtCnt = 0;		start = cur = copy;	iLen = strlen(copy);	// traverse string		for (idx =0; idx < iLen; idx++) {		if (bInExt) {			// We are currently reading an extension			// If we have a character add it to the current extension			if (!isalnum(*cur))	{				// Found a delimiter character, end the extension				bInExt = FALSE;				*cur = 0; // mark end				list[iExtCnt] = strdup(newext);				iExtCnt++;							}		} else {			// We are not currently in an extension, search for next alpha numeric character			if (isalnum(*cur)) {				// found one! -- mark start of new extenison -- set flag				newext = cur;				bInExt = TRUE;			}		}		cur++;	}	// save last one	if (bInExt) {		list[iExtCnt] = strdup(newext);		iExtCnt++;					}	*num_exts = iExtCnt;		//	Be sure to free your copy to muck with	XP_FREE(copy);}